Skip to content

Commit 561fb39

Browse files
committed
Auto merge of #49778 - tamird:install-relative-prefix, r=Mark-Simulacrum
rustbuild: canonicalize prefix `install_sh` Testing: ``` $ git diff diff --git a/config.toml.example b/config.toml.example index 9dd3002506..b47bc490cd 100644 --- a/config.toml.example +++ b/config.toml.example @@ -196,7 +196,7 @@ [install] # Instead of installing to /usr/local, install to this path instead. -#prefix = "/usr/local" +prefix = "install-prefix" # Where to install system configuration files # If this is a relative path, it will get installed in `prefix` above $ mkdir install-prefix $ ./x.py install -i --stage 0 --config config.toml.example ... $ ls install-prefix/ bin lib share ``` Closes #36989. r? @Mark-Simulacrum
2 parents 8ae79ef + 9487902 commit 561fb39

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

src/bootstrap/install.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,9 @@ fn install_sh(
7272
let bindir_default = PathBuf::from("bin");
7373
let libdir_default = PathBuf::from("lib");
7474
let mandir_default = datadir_default.join("man");
75-
let prefix = build.config.prefix.as_ref().unwrap_or(&prefix_default);
75+
let prefix = build.config.prefix.as_ref().map_or(prefix_default, |p| {
76+
fs::canonicalize(p).expect(&format!("could not canonicalize {}", p.display()))
77+
});
7678
let sysconfdir = build.config.sysconfdir.as_ref().unwrap_or(&sysconfdir_default);
7779
let datadir = build.config.datadir.as_ref().unwrap_or(&datadir_default);
7880
let docdir = build.config.docdir.as_ref().unwrap_or(&docdir_default);

0 commit comments

Comments
 (0)