-
Notifications
You must be signed in to change notification settings - Fork 13.5k
Fix --libdir installs #29878
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 --libdir installs #29878
Conversation
Rather than modifying the installer to disable directory rewriting, this patch modifies the directory structure passed to the installer so that the rewriting gives the correct results. This means that if a non-standard --libdir is passed to configure then the same --libdir option (relative to the --prefix) must be passed to the install script. In the `make install` case this is handled automatically. Binary distributions are generally generated using the default --libdir and then have paths optionally rewritten by the installer, which should continue to work. This has the advantage of not complicating the installer interface intended for end-user use. Fixes rust-lang#29561
(rust_highfive has picked a reviewer for you, use r? to override) |
r? @brson Seems fine to me though. Just a standard "oh my god I can't read anything here and this is madness" it seems! |
Although I have not tested, I believe making Edit: Actually, that presumably applies to building the stage2 compiler, not just running the test suite. |
Hm, you may be right about that. I still might be inclined to complexify the Although, I think I recall my preferred option for fixing this problem previously was actually to kind of do the opposite of where this patch is going (and what I'm currently suggesting): remove the Can you remind me the gentoo file system layout, why |
Adding another fallback in The only downsides I see to removing the libdir rewriting in the installer are (1) rewriting Gentoo wants to allow multiple versions of Rust to be installed simultaneously. In theory you could have stable, beta, nightly, and git versions of rust installed simultaneously (and also binary distributions of the first three). I was not involved in deciding on the structure, so I can only report what is going on, not give reasons. The executables are installed to, for example, The The man pages are put in There are also packages that don't compile from source, which appear to install to someplace in |
Oh, good point. Argh. Thanks for the explanation of what Gentoo is doing. OK, I'm going to accept this as-is to get it working - it's a small change that does improve the current state. I'd like to come up with a side-by-side scheme that we can feel confident about supporting and that is workable for all distros, but right now I don't have great ideas. I'd suggest that gentoo consider setting up their custom filesystem layout differently though, in a way that doesn't tax our build / install system so much. Instead of using the @bors r+ |
📌 Commit ea798b9 has been approved by |
⌛ Testing commit ea798b9 with merge edcfeb7... |
Rather than modifying the installer to disable directory rewriting, this patch modifies the directory structure passed to the installer so that the rewriting gives the correct results. This means that if a non-standard --libdir is passed to configure then the same --libdir option (relative to the --prefix) must be passed to the install script. In the `make install` case this is handled automatically. Binary distributions are generally generated using the default --libdir and then have paths optionally rewritten by the installer, which should continue to work. This has the advantage of not complicating the installer interface intended for end-user use. Fixes #29561
Rather than modifying the installer to disable directory rewriting,
this patch modifies the directory structure passed to the installer so
that the rewriting gives the correct results. This means that if a
non-standard --libdir is passed to configure then the same --libdir
option (relative to the --prefix) must be passed to the install
script. In the
make install
case this is handled automatically.Binary distributions are generally generated using the default
--libdir and then have paths optionally rewritten by the installer,
which should continue to work.
This has the advantage of not complicating the installer interface
intended for end-user use.
Fixes #29561