Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 827712 - dev-dotnet/dotnet-sdk-bin miss workload file
Summary: dev-dotnet/dotnet-sdk-bin miss workload file
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: dotnet project
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2021-11-28 05:06 UTC by Andrii Kurdiumov
Modified: 2021-12-04 20:07 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrii Kurdiumov 2021-11-28 05:06:04 UTC
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
Comment 1 Andrii Kurdiumov 2021-12-04 17:53:33 UTC
I file pull request on the GitHub with the required changes

https://github.com/gentoo/gentoo/pull/23182
Comment 2 Larry the Git Cow gentoo-dev 2021-12-04 20:07:59 UTC
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(+)