-
Notifications
You must be signed in to change notification settings - Fork 4.4k
Try to build with musl on CI #19571
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Try to build with musl on CI #19571
Conversation
4ef512c
to
511aaae
Compare
bac24a5
to
3d8e1b7
Compare
|
||
|
||
# Ensure that remote_server does not depend on libssl nor libcrypto, as we got rid of these deps. | ||
! ldd "${target_dir}/${target_triple}/release/remote_server" | grep -q 'libcrypto\|libssl' | ||
! ldd "${target_dir}/${musl_triple}/release/remote_server" | grep -q 'libcrypto\|libssl' |
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.
Would it make sense to also check for libc here?
Also, why by default you want to use musl? On my system default is glibc and I want to use it. |
We strongly rely on the rustc version from https://github.com/zed-industries/zed/blob/main/rust-toolchain.toml and do not guarantee that other set-ups work. Other people with alternatives should know what they are doing and are expected to handle fall-outs of their cleverness themselves.
Because Linux is extremely fragmented and libc is yet another part of this, and it is chore to maintain various builds for other people who want their things. Just because of some not-dead-yet-but-in-6-months-maybe EOL Ubuntu we have to do all this work: And much more, as now we have ssh remoting, which ascends this chore to the next level, as we're
The latter seems much more practical, as we have a huge backlog already, without fighting with libc.
Religious preferences aside, any other reason for that? And I want to stop dealing with libc issues once and for all. |
rustup is
it's not part of toolchain, and as developer I want to have my own way to install rust.
thank you! It's a good tickets to understand situation. Because I build Zed by myself I have no a such issue, I think build scripts should be good enough to produce not only static bin for publication but also system level builds. Most apps what I am using everyday have no issue to build it specially for my system with my libc. Especial because musl can break a lot of things for Linux. Mixing 2 libc (in app and system) can produce a lot of issues. (I shared links in my ticket)
it's not religious, it's just how I use Zed on my Gentoo Linux. I believe many others who will be prefer to build zed by themself (for development for example) can have the same issue (not only on Gentoo). |
And you're welcome to do so without coming here and demanding reverts, since
For the rest of the users, there's a TFM here: https://github.com/zed-industries/zed/blob/c12a9f26733e0791ba99b015c3695712ae40322a/docs/src/development/linux.md and guess what is in the first bullet of the "Dependencies" section there. You should have either seen this (and ignored, so the consequences are all yours to handle) or have not bothered to look at it at all (not sure why should I bother discussing things with you then). The rest of the points seem to reinstate the same "I build myself and this is how I want things" position, so see above of this comment for them. Not even sure why are we continuing this discussion, this will be my last message here (I'll comment on the closed issue too, once):
|
Thank you for explanation your position. I did revert of this commit by myself and plan to prepare my script. |
Hard to say without looking at the PR first. If that changes things too much or adds more compromises or friction to our builds on top, we might not accept it, but overall the PRs are sure welcome. I would personally prefer a PR (if it had some effort and testing in it) over any discussion(s), as words in the issues are dust; it's the code that gets shipped. |
Please mind that while musl triple in Rust is currently producing statically linked objects (for some targets), this will be changed in future. Anyone relying on that behaviour should explicitly pass |
Thank you a lot for this bit, added the flag with #19813 |
Release Notes: