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

Respect prefix when sysconfdir isn't set in config.toml #113733

Closed
wants to merge 1 commit into from

Conversation

jyn514
Copy link
Member

@jyn514 jyn514 commented Jul 15, 2023

fixes #113728

@rustbot
Copy link
Collaborator

rustbot commented Jul 15, 2023

r? @Mark-Simulacrum

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap) labels Jul 15, 2023
Comment on lines +58 to +63
// if prefix isn't specified, we want this to be an absolute path, outside `/usr/local`. but if it is specified, make sysconfdir relative.
let sysconfdir = if builder.config.prefix.is_some() {
prefix.join(default_path(&builder.config.sysconfdir, "etc"))
} else {
"/etc/".into()
};
Copy link
Member Author

@jyn514 jyn514 Jul 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i am not quite sure if this is the right fix - maybe it should just be changing /etc to etc so that it's always relative to the prefix? that seems more consistent at least (we'd end up with /usr/local/etc by default). but i don't know if people are depending on the existing behavior.

cc @cuviper, what are your thoughts?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See also #113580, where I was suggesting this should just be a diagnostic.

When the prefix is /usr, you almost surely want /etc, not /usr/etc. But for /usr/local prefix, there is often a /usr/local/etc too, so the "local" installations are completely contained. So, I don't think there's a universally great answer, but changing the default feels a little risky.

For my part in distro builds: prefix, sysconfdir, and all the other installation dirs are explicitly set by the distro-default %configure rpm macro, so I shouldn't be affected by changes here either way.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe a simpler option is to require users to set prefix? I'm not sure how widespread source installs of Rust are, but my very rough guess is that many of those users either are using a non-default prefix today or may want to (e.g., distros probably don't want /usr/local, users installing themselves may want something in $HOME, etc.).

@Mark-Simulacrum Mark-Simulacrum added S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Jul 31, 2023
@Dylan-DPC
Copy link
Member

@jyn514 any updates on this? thanks

@jyn514
Copy link
Member Author

jyn514 commented Aug 21, 2023

no rust-lang/team#1051

@jyn514 jyn514 closed this Aug 21, 2023
@Dylan-DPC
Copy link
Member

sorry wasn't aware of that, thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. T-bootstrap Relevant to the bootstrap subteam: Rust's build system (x.py and src/bootstrap)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Compiler build toolchain does not respect build-dir for cargo bash completions
5 participants