Classic confinement request for dotnet-sdk-riscv


I understand that strict confinement is generally preferred over classic.

I’ve tried the existing interfaces to make the snap to work under strict confinement.


Context

I will add a bit more context here. .NET is not officially supported on riscv64, but it starts to become needed to bootstrap other software. Particularly, we have the following dependency chain:

.NET need RISC-V hardware builders to build on RISC-V => Hardware builders will need Juju, MicroCloud, LXD, and other Canonical software full support => This software is tested and built with GitHub Actions => GitHub Action Runner software needs .NET.

This is why I want to provide this community-supported dotnet-sdk-riscv snap, providing the bootstrap sdk for RISC-V. This is a temporary snap that will help us build GitHub Action Runner, and once everything is set, the goal is to reach support in the main .NET and delete this snap, but this might take up to 6 months.

I also plan to do the same for the dotnet snap (into a dotnet-riscv snap) that will also require classic confinement, and provides .NET 10 instead of .NET 8.

Thanks for reading!

This request has been added to the queue for review by the @reviewers team.

hey @vhaudiquet , the classic makes sense in this snap case, since it is dotnet-sdk snap in riscv, can you try to contact @mateus-morais to see if this architecture support can be part of their published snap (dotnet-sdk-80 or dotnet-sdk itself)?

Unfortunately, given the build times, this cannot be part of the official .NET SDK snap right now (I have already had a discussion with Mateus about this). The build that I have in this experimental snap is a cross-build of the bootstrap SDK. It is usable to build and run .NET applications but cannot be guaranteed any support and cannot be maintained easily. Only one specific feature band can be built and it might not have all the latest security updates as I try to build this on a best-effort basis.

My current workaround is to have the .snap hosted somewhere else and install it with --dangerous to perform the build. Having it in the store would be more convenient and would also allow the community to tinker with .NET on RISC-V. However if you think this is not fitted for the store because of the classic requirements, I can also accept this decision. I would still prefer to have it in the store if possible. Let me know what you think

The build that I have in this experimental snap is a cross-build of the bootstrap SDK. It is usable to build and run .NET applications but cannot be guaranteed any support and cannot be maintained easily. Only one specific feature band can be built and it might not have all the latest security updates as I try to build this on a best-effort basis.

Hey, since this is a very experimental snap and in future it might be part of the official dotnet-sdk snap only, I would suggest not having classic confinement for this snap, as it does not fit the requirements for classic confinement. Your current solution is the best possible path for this short period of time imo.

thanks for working on this. Feel free to reach out if need any help.