Skip to content

Commit 222b0eb

Browse files
committed
Auto merge of #48295 - Keruspe:master, r=alexcrichton
rustbuild: pass datadir to rust-installer This fixes zsh completion install when $datadir != $prefix/share
2 parents 4eea359 + d14f07e commit 222b0eb

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

src/bootstrap/config.rs

+3-1
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ pub struct Config {
127127
pub musl_root: Option<PathBuf>,
128128
pub prefix: Option<PathBuf>,
129129
pub sysconfdir: Option<PathBuf>,
130+
pub datadir: Option<PathBuf>,
130131
pub docdir: Option<PathBuf>,
131132
pub bindir: Option<PathBuf>,
132133
pub libdir: Option<PathBuf>,
@@ -212,13 +213,13 @@ struct Build {
212213
struct Install {
213214
prefix: Option<String>,
214215
sysconfdir: Option<String>,
216+
datadir: Option<String>,
215217
docdir: Option<String>,
216218
bindir: Option<String>,
217219
libdir: Option<String>,
218220
mandir: Option<String>,
219221

220222
// standard paths, currently unused
221-
datadir: Option<String>,
222223
infodir: Option<String>,
223224
localstatedir: Option<String>,
224225
}
@@ -419,6 +420,7 @@ impl Config {
419420
if let Some(ref install) = toml.install {
420421
config.prefix = install.prefix.clone().map(PathBuf::from);
421422
config.sysconfdir = install.sysconfdir.clone().map(PathBuf::from);
423+
config.datadir = install.datadir.clone().map(PathBuf::from);
422424
config.docdir = install.docdir.clone().map(PathBuf::from);
423425
config.bindir = install.bindir.clone().map(PathBuf::from);
424426
config.libdir = install.libdir.clone().map(PathBuf::from);

src/bootstrap/install.rs

+7-2
Original file line numberDiff line numberDiff line change
@@ -67,18 +67,21 @@ fn install_sh(
6767

6868
let prefix_default = PathBuf::from("/usr/local");
6969
let sysconfdir_default = PathBuf::from("/etc");
70-
let docdir_default = PathBuf::from("share/doc/rust");
70+
let datadir_default = PathBuf::from("share");
71+
let docdir_default = datadir_default.join("doc/rust");
7172
let bindir_default = PathBuf::from("bin");
7273
let libdir_default = PathBuf::from("lib");
73-
let mandir_default = PathBuf::from("share/man");
74+
let mandir_default = datadir_default.join("man");
7475
let prefix = build.config.prefix.as_ref().unwrap_or(&prefix_default);
7576
let sysconfdir = build.config.sysconfdir.as_ref().unwrap_or(&sysconfdir_default);
77+
let datadir = build.config.datadir.as_ref().unwrap_or(&datadir_default);
7678
let docdir = build.config.docdir.as_ref().unwrap_or(&docdir_default);
7779
let bindir = build.config.bindir.as_ref().unwrap_or(&bindir_default);
7880
let libdir = build.config.libdir.as_ref().unwrap_or(&libdir_default);
7981
let mandir = build.config.mandir.as_ref().unwrap_or(&mandir_default);
8082

8183
let sysconfdir = prefix.join(sysconfdir);
84+
let datadir = prefix.join(datadir);
8285
let docdir = prefix.join(docdir);
8386
let bindir = prefix.join(bindir);
8487
let libdir = prefix.join(libdir);
@@ -88,6 +91,7 @@ fn install_sh(
8891

8992
let prefix = add_destdir(&prefix, &destdir);
9093
let sysconfdir = add_destdir(&sysconfdir, &destdir);
94+
let datadir = add_destdir(&datadir, &destdir);
9195
let docdir = add_destdir(&docdir, &destdir);
9296
let bindir = add_destdir(&bindir, &destdir);
9397
let libdir = add_destdir(&libdir, &destdir);
@@ -107,6 +111,7 @@ fn install_sh(
107111
.arg(sanitize_sh(&tmpdir(build).join(&package_name).join("install.sh")))
108112
.arg(format!("--prefix={}", sanitize_sh(&prefix)))
109113
.arg(format!("--sysconfdir={}", sanitize_sh(&sysconfdir)))
114+
.arg(format!("--datadir={}", sanitize_sh(&datadir)))
110115
.arg(format!("--docdir={}", sanitize_sh(&docdir)))
111116
.arg(format!("--bindir={}", sanitize_sh(&bindir)))
112117
.arg(format!("--libdir={}", sanitize_sh(&libdir)))

0 commit comments

Comments
 (0)