When using .NET 6 there magic file which required to be present in the system. /opt/dotnet-sdk-bin-6.0/metadata/workloads/6.0.100/userlocal That file is responsible to registering "workloads" which is new feature in .NET 6. Without that file, any other ebuilds which depends on it, would not pass validation inside sandbox on clean system. Validation not passed, since Nuget assume that either `/opt/dotnet-sdk-bin-6.0/metadata/workloads/6.0.100/installation/msi` or `/opt/dotnet-sdk-bin-6.0/metadata/workloads/6.0.100/userlocal` should be present in valid installation, and try to fix "corrupt" installation, which rubs sandbox in wrong way. According to this discussion https://github.com/dotnet/sdk/pull/18823#issuecomment-915597337 just create that file would be enough to be happy. Reproducible: Always Steps to Reproduce: 1. Install dev-dotnet/dotnet-sdk-bin-6.0.100 2. Check that file /opt/dotnet-sdk-bin-6.0/metadata/workloads/6.0.100/userlocal not present 3. Add overlay https://github.com/zeule/gentoo-zeule/ (that's for having clangsharp ebuild) you can use any other ebuilds which require .NET 6 4. ebuild /var/db/repos/zeule/dev-dotnet/clangsharp/clangsharp-9999.ebuild compile Actual Results: One error produced ``` * ----------------------- SANDBOX ACCESS VIOLATION SUMMARY ----------------------- * LOG FILE: "/var/tmp/portage/dev-dotnet/clangsharp-9999/temp/sandbox.log" * VERSION 1.0 FORMAT: F - Function called FORMAT: S - Access Status FORMAT: P - Path as passed to function FORMAT: A - Absolute Path (not canonical) FORMAT: R - Canonical Path FORMAT: C - Command Line F: mkdir S: deny P: /opt/dotnet_core/metadata A: /opt/dotnet_core/metadata R: /opt/dotnet_core/metadata C: dotnet build --no-restore -c Release -f net6.0 /bl:test.binlog sources/ClangSharp/ClangSharp.csproj * -------------------------------------------------------------------------------- ``` Expected Results: No errors from sandbox
I file pull request on the GitHub with the required changes https://github.com/gentoo/gentoo/pull/23182
The bug has been closed via the following commit(s): https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b8c18f5e5717d32105547c60950e1e4925b797f7 commit b8c18f5e5717d32105547c60950e1e4925b797f7 Author: Andrii Kurdiumov <kant2002@gmail.com> AuthorDate: 2021-12-04 17:31:56 +0000 Commit: Zac Medico <zmedico@gentoo.org> CommitDate: 2021-12-04 20:07:48 +0000 dev-dotnet/dotnet-sdk-bin: Add workload definition for 6.0.100 Add /opt/dotnet-sdk-bin-6.0/metadata/workloads/6.0.100/userlocal file which used to indicate which workloads are installed. Without that file Nuget think this is broken installation and attempt to create that file which become a problem for ebuilds which depends on dotnet. See: https://github.com/dotnet/sdk/pull/18823#issuecomment-915603684 Closes: https://github.com/gentoo/gentoo/pull/23182 Closes: https://bugs.gentoo.org/827712 Signed-off-by: Andrii Kurdiumov <kant2002@gmail.com> Signed-off-by: Zac Medico <zmedico@gentoo.org> dev-dotnet/dotnet-sdk-bin/dotnet-sdk-bin-6.0.100.ebuild | 6 ++++++ 1 file changed, 6 insertions(+)