-
-
Notifications
You must be signed in to change notification settings - Fork 402
ci: build fully-static Linux binary with musl to fix glibc version errors #1236
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
Added a new job to build a static binary using musl and updated dependencies for the draft release step.
Add step to install musl-tools in CI workflow
illyrius666
left a comment
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.
the comments, remove them or make them english.
Co-authored-by: Illyrius <[email protected]>
Co-authored-by: Illyrius <[email protected]>
|
We could also use cargo-zigbuild to build Pumpkin for an older glibc version. This might avoid some of the negative effects of using musl, such as increased binary size. |
|
Hey, I'm sorry but i don' think this is necessary and the "userbase" for this is very small, glibc 2.39 released a year ago, enough time for the most distros to update their glibc package, Also if using an older distro the user still always has the option to install glibc manually |
For some users, there are various reasons why they may still be on older systems. Upgrading glibc is not as straightforward as it might seem and can easily introduce system instability or breakages. Keeping a statically linked build provides a safer alternative and helps these users avoid the risks associated with manually upgrading glibc. |
Problem
The current nightly release (
pumpkin-X64-Linux) is linked against glibc 2.39, so it fails on older distributions with:Solution
Add a new job
build_release_staticthat compiles forx86_64-unknown-linux-musland uploads the fully-static binary.The new artifact is named
pumpkin-x86_64-linux-musland is shipped together with the existing GNU build in the nightly release.Changes
musl-tools(providesx86_64-linux-musl-gcc)rustup target add x86_64-unknown-linux-muslcargo build --release --target x86_64-unknown-linux-musldraft_releaseVerification
pumpkin-x86_64-linux-muslstatically linkedviafile pumpkin-x86_64-linux-musl