-
Notifications
You must be signed in to change notification settings - Fork 86
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
fix musl versiondb links and generator #764
base: main
Are you sure you want to change the base?
Conversation
I think that looks right to me, but I need to double check that this doesn't break things on systems with the GNU libc. I have a vague memory that we statically link musl in Juliaup itself even on GNU systems so that we don't rely on the system libc, and we just need to double check that this PR here doesn't lead to a situation where then on GNU systems it also downloads the musl version of Julia. Also, just for my own sanity, if @staticfloat could take a quit think about this here as well that would be great. In general, the musl builds of Julia are just as official as everything else, right? |
04c26be
to
678c057
Compare
678c057
to
cf7f151
Compare
cf7f151
to
a2dfe0c
Compare
Hi @davidanthoff @staticfloat happy new year! Do you guys expect to find time to review this soon, should I keep up rebasing as the main branch changes? Alpine have asked me to either complete this work or close the PR on their repo, but I am blocked until this bugfix PR is merged and a new version of juliaup is released. |
Yes, but note that we only build for |
Thanks for the response! Does that mean we should delete I understand 32-bit arch isn't supported due to dependencies and this is really a separate issue for the julia repo, but would you consider adding aarch64 musl builds? |
x86_64 musl already has lots of problems due to lack of developers that are experienced with the platform and able to track down bugs, I don't think it's viable for us to find people able to debug aarch64+musl issues as well. The current |
Alright, I looked into this now, and this is more complicated, unfortunately. The current logic here is as follows: The target platform of the Juliaup binaries determines which version db json is going to be used here. So, for e.g. the x64 Juliaup build that uses musl, So in general on Linux the situation is that we will be using musl build version of Juliaup itself always, so we can't use the fact that Juliaup is built using musl as the decision criterion for whether we want musl or gnu versions of Julia to be the default. I think what we probably need to do is this: add another cargo feature named Another question on that topic in general: would it make sense that Linux users could access musl/gnu versions via more platform specifiers always? Say I think another question is whether we should support anything other than tier 1 platforms? I think probably yes, but probably also worth discussing. |
Resolves #762
While attempting to package Juliaup for Alpine Linux (musl libc) I experienced failures during
cargo test
due tojuliaup
incorrectly downloading glibc binaries to a musl libc system.No such file or directory
occurs while trying to execute the binary on a system where/lib64/ld-linux-x86-64.so.2
is not present. This PR adjusts the download links in the versiondb directory, and naively attempts to update what I think is the generator script for these files. I don't see any tests for this generator, and I'm not sure how to actually build and execute Julia code. I was however able to successfully build a package based on this branch, so cargo tests work on musl now.