-
Notifications
You must be signed in to change notification settings - Fork 132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for banana linux #297
Comments
I think that's how dotnet-install.sh determines the os. Incase we replace it, we might need a file/placeholder that would contain the RID? |
I think For example, |
It seems better to me to look at it from a dev's point of view: what do I expect source-build to do when it can't recognize my OS? My understanding is that the point of adding banana (which I think is a really good idea) is to find situations like that. For the prebuilt SDK, I imagine I'll normally need linux-x64 (glibc). Then I'd probably want a non-portable build with my new RID in the right place in the RID graph that allows me to restore Microsoft assets if necessary for cross-RID publish, etc. Specifying those each time I want to build seems reasonable, because my OS is unknown (not mentioned in the sources). (Edit: Sounds like I may only need to specify the RID I want, or not even that.) |
I like this idea, it'll keep us on top of new versions and unknown distros. It does seem like we'll probably have to soft-patch the RID graph though, unless something in the runtime changes to allow arbitrary unknown RIDs. We can try this out and see what all breaks. |
I thought we were already doing that with: source-build/repos/corefx.proj Lines 97 to 107 in be813df
|
Oh, I think |
Yes. Source-build should figure out the target rid from /etc/os-release and assume a parent of For this issue, I think we can focus on patching |
Yeah, we'll assign this to someone in triage. Thanks for the discussion around how to do this everyone! |
And considering #1428, we should build the source-tarball on banana Linux, and verify it builds on pineapple Linux. |
Issues have come up with versions--stuff like source-build/tools-local/tasks/Microsoft.DotNet.SourceBuild.Tasks.XPlat/PublishCoreSetupBinaries.cs Lines 26 to 31 in 1eba1a6
Concretely, @lupin-de-mid hit this issue with I think this problem will repro on Ubuntu too (e.g. |
I workaround problem by changing |
We actually run Ubuntu 18.04 CI, which doesn't hit this, so I'm wrong here. Will need to look deeper. |
Something to consider for this issue is patching up the RID graph in the prebuilt/tooling SDK that we download in the tarball production build. It isn't necessary in all cases (the catch-all |
RHEL 9 is Banana Linux: we can't build .NET Core on it until the rids have rippled through :/ |
Also starting to see issues on the recently-forked Fedora 35 :( |
Now that dotnet/runtime#50818 is in. Can we add a CI job to source-build that verifies we can build a source-tarball on banana Linux, and use it to build .NET on pineapple Linux? The CI job can write to @MichaelSimons @crummel @dseefeld can you take a look into this? |
cc @ericstj |
@MichaelSimons @crummel @dseefeld friendly reminder. It would be great if we can close the circle by adding a CI job to verify source-build is no longer blocked by unknown rids. |
I'm looking into this now, I'll hopefully have some x64 RHEL machines soon so I'm planning on making CI changes for that anyway. |
I've updated the top-level comment with a task list. |
This is fixed as part of dotnet/installer#14549. We should add a CI test for it. Preferably it does two builds where the second build consumes the output of the first. For the two builds we should use two different unknown rids (e.g. To control the rids, we can make We can update @omajid's PR (dotnet/dotnet-buildtools-prereqs-docker#679) to enable the test scenario. |
This is working. Closing old issue. |
.NET can't source-build on a distro it doesn't know (that is: not yet in the rid graph).
This is an impediment when building .NET on new versions of an existing distro, or when building it on a new distro.
The build should handle the unknown rid appropriately.
Package maintainers shouldn't have to become rid graph maintainers.
Tasks:
@dotnet/source-build-contrib
The text was updated successfully, but these errors were encountered: