-
Notifications
You must be signed in to change notification settings - Fork 15
Initial Alpine support #192
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
Conversation
Bug with
Caused by crossgen2 pointing to non-musl libc:
This issue does not exist on x64. Does this mean that the Crossgen2 nuget package for musl-arm64 on |
Indeed, this is a bug with the official build of CrossGen2 for musl-arm64 platform, as the one built by Alpine links to the correct libc. Where should I report this bug? |
Thanks for finding this. Crossgen2 is part of dotnet/runtime. Please report it there: https://github.com/dotnet/runtime/issues/new?assignees=&labels=&template=01_bug_report.yml |
Thanks! I'll do so. I suspect the same for arm:
Although I can't actually ldd it, as I don't have shell access to an arm environment. |
I am not sure about the arm32 error. The exit code, 139, is computed by adding 128 to the signal code. 139 - 128 is 11, which is the signal value for The crossgen of |
distribution-packages/test.sh
Outdated
@@ -8,6 +8,9 @@ runtime_id=$(../runtime-id) | |||
# This might be the final/only netstandard version from now on | |||
netstandard_version=2.1 | |||
|
|||
# disabled for alpine | |||
[ -z "${runtime_id##alpine*}" ] && { echo Disabled for Alpine; exit 0; } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We generally add the RID to ignoredRIDs
element in the test.json
file. That said, I am not sure our test runner knows about linux-musl-
yet.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's what I figured, which is what prompted this. Eventually we should test using apk
, like was done with other tests (like man-page
, but alas I don't have the time for that, and I'd need to brush up on python.
PR as it is works on Alpine pipelines, as long as the following is disabled: |
Strangest thing is that rhis doesn't always occur. Build of |
Testing suite was successfully integrated in the Alpine package builder, using this patch and by disabling the following tests:
|
@omajid |
Hey! Sorry about sitting on this without any movement. There's a few things here that I think we should probably fix in https://github.com/redhat-developer/dotnet-bunny first and then merge this. Would be okay with waiting, or would you rather we got this in and then fix https://github.com/redhat-developer/dotnet-bunny later (and undo some changes being made here)? |
1 similar comment
This comment was marked as duplicate.
This comment was marked as duplicate.
No worries, ya'll can take your time on this, as I've already integrated this patch with Alpine's patching logics. |
Parse `ldd --version` output and use that to detect musl-based platforms. Add the additional RIDs `linux-musl` and `linux-musl-$ARCH` for them, so those strings can be used to filter tests on those platforms. Also remove the last version number string from Alpine, Rocky, Alma and Oracle Linux. Add alpine to CI matrix, and enable unit tests for it. I am not enabling reproducers on it right now, because that needs fixes from redhat-developer/dotnet-regular-tests#192 to be merged first.
Parse `ldd --version` output and use that to detect musl-based platforms. Add the additional RIDs `linux-musl` and `linux-musl-$ARCH` for them, so those strings can be used to filter tests on those platforms. Also remove the last version number string from Alpine, Rocky, Alma and Oracle Linux. Add alpine to CI matrix, and enable unit tests for it. I am not enabling reproducers on it right now, because that needs fixes from redhat-developer/dotnet-regular-tests#192 to be merged first.
I made some improvements via 9c1fa19 that I would like to add on top of this PR. It requires redhat-developer/dotnet-bunny@71880bd to work, though. @ayakael any chance you could try this out? If it looks okay to you, I would like to merge this PR and then add my commit on top. |
On it, I'll come back to you shortly. |
Looks good on my side! |
- Use recent features from dotnet-bunny to filter on linux-musl - Fix some weird looking process launching code in assemblies-valid - Handle more musl-based distributions in runtime-id script
Description
Alpine support
Modifications
#!/usr/bin/env bash
assemblies-valid
: explicitely call bash for built-in commandcommand
when looking for dotnet binarycgroup-limit
: disable when init system not systemddistribution-packages
: disabled for Alpine as test usesrpm
iblttng-ust_sys-sdt.h
: adapted for use withapk
lttng
: look forbabeltrace2
if cannot findbabeltrace
man-page
: adapted for use withapk
omnisharp
: disabled for Alpine as omnisharp has no linux-musl releaseruntime-id
: adapted to parse Alpine runtime-id correctlyProblematic tests
liblttng-ust_sys-sdt.h
/lttng
: test works: no 'NT_STAPSDTon Alpine's
lttng-ustpackage +
lttng-ust` 2.13 breaks tracing (see LTTNG-UST 2.13 changes soname breaking loading of libcoreclrtraceptprovider dotnet/runtime#57784)workload
/createdump-aspnet
: permission issue,Inadequate permissions. Run the command with elevated privileges
publish-ready-to-run
/publish-ready-to-run-linux
(onarm
/arm64
only, fixed by Delete unused Crossgen2PackageRID property dotnet/runtime#66814)omnisharp
: nolinux-musl
release (see Nolinux-musl-$(Platform)
release OmniSharp/omnisharp-roslyn#2366)Related PRs / Issues
dotnet/installer#13074
Made as part of Alpine Linux dotnet6 packaging project, see dotnet/source-build#2782