Skip to content
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

Promote x86_64-linux-musl to tier 1 platform #8732

Closed
straight-shoota opened this issue Feb 2, 2020 · 8 comments · Fixed by crystal-lang/crystal-book#679
Closed

Promote x86_64-linux-musl to tier 1 platform #8732

straight-shoota opened this issue Feb 2, 2020 · 8 comments · Fixed by crystal-lang/crystal-book#679

Comments

@straight-shoota
Copy link
Member

x86_64-linux-musl is currently a tier 2 platform. With #7420 merged, automatic testing is now set up for this platform. Since Alpine Linux is already used in the compiler build workflow, it is naturally a core platform for Crystal.

Binary releases have already been provided for a long time in form of the generic Linux tarball.
That works for now, but a dedicated binary release which includes static libraries linked against musl-libc would be preferrable (see crystal-lang/distribution-scripts#29 (comment)). We might want to implement that first before moving to tier 1. But apart from that, I don't think there's anything standing in the way of promotion.

@RX14
Copy link
Contributor

RX14 commented Feb 7, 2020

Don't we still have some hacks around exceptions? Or is the shards require "llvm" not neccesary any more?

@j8r
Copy link
Contributor

j8r commented Feb 7, 2020

@RX14 That's not really linked to the platform itself, that's static linking, which appears to be only supported on Alpine: #4276
On glibc based distribution static linking is not supported at all.

@stakach
Copy link
Contributor

stakach commented Jun 2, 2021

this dedicated binary release would be amazing

@beta-ziliani
Copy link
Member

After revamping the platform support page, this issue came forward: we seem to have everything ticked to make x86_64-linux-musl a Tier 1 platform, except that, quoting the description of this issue, "a dedicated binary release which includes static libraries linked against musl-libc would be preferrable".

I might be wrong, but I consider this a "nice to have" but not really a blocking aspect. We are providing binaries that successfully run tests, so I consider this platform to be in Tier 1.

If that's agreed, we can proceed with crystal-lang/crystal-book#679

@stakach
Copy link
Contributor

stakach commented Mar 30, 2023

it would be nice to be able to install crystal via the alpine package manager - not sure if this is an official source?
https://pkgs.alpinelinux.org/packages?name=crystal&branch=edge&repo=&arch=&maintainer=

but that should be a sperate issue and otherwise agree with you and have not had any issues using crystal on musl and all our production releases run on it.

@jirutka
Copy link
Contributor

jirutka commented Mar 30, 2023

Yes, we do package crystal for x86_64 and aarch64 in Alpine Linux, since Alpine v3.8 (2020). I’m the maintainer of this package. https://pkgs.alpinelinux.org/packages?name=crystal is the official source.

@stakach
Copy link
Contributor

stakach commented Mar 30, 2023

sweet! good to know @jirutka
seems like there is nothing holding it back from Teir 1 then as the binaries are available via the alpine package manager

tar.gz files available
https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/
https://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/crystal-1.7.3-r0.apk

EDIT: looks like those are dynamically linked to /lib/ld-musl-x86_64.so.1
which i guess makes sense for that platform - but probably not too hard to generate a static binary as part of this workflow?
Maybe have a crystal-<version>-static musl release?

@straight-shoota
Copy link
Member Author

@stakach For the record: Package availability in downstream repositories is explicitly not required for Tier 1. The Crystal project does not have any direct control over that anyway.
Also note that x86_64-linux-musl is more than Alpine Linux. It is probably the most prominent but certainly not the only distribution using musl libc.

The generic binaries made available at https://github.com/crystal-lang/crystal/releases should work on any x86_64-linux platform and thus fulfill the "official binary releases are provided" requirement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants