Use getuid to check instead of USER env var in rustbuild
This makes it consistent with `x.py` as changed in #95671 Fixes #100459
This commit is contained in:
parent
8a13871b69
commit
b9c47f624e
@ -793,6 +793,8 @@ class RustBuild(object):
|
||||
|
||||
def check_vendored_status(self):
|
||||
"""Check that vendoring is configured properly"""
|
||||
# keep this consistent with the equivalent check in rustbuild:
|
||||
# https://github.com/rust-lang/rust/blob/a8a33cf27166d3eabaffc58ed3799e054af3b0c6/src/bootstrap/lib.rs#L399-L405
|
||||
if 'SUDO_USER' in os.environ and not self.use_vendored_sources:
|
||||
if os.getuid() == 0:
|
||||
self.use_vendored_sources = True
|
||||
|
@ -396,13 +396,18 @@ pub fn new(config: Config) -> Build {
|
||||
let src = config.src.clone();
|
||||
let out = config.out.clone();
|
||||
|
||||
#[cfg(unix)]
|
||||
// keep this consistent with the equivalent check in x.py:
|
||||
// https://github.com/rust-lang/rust/blob/a8a33cf27166d3eabaffc58ed3799e054af3b0c6/src/bootstrap/bootstrap.py#L796-L797
|
||||
let is_sudo = match env::var_os("SUDO_USER") {
|
||||
Some(sudo_user) => match env::var_os("USER") {
|
||||
Some(user) => user != sudo_user,
|
||||
None => false,
|
||||
},
|
||||
Some(_sudo_user) => {
|
||||
let uid = unsafe { libc::getuid() };
|
||||
uid == 0
|
||||
}
|
||||
None => false,
|
||||
};
|
||||
#[cfg(not(unix))]
|
||||
let is_sudo = false;
|
||||
|
||||
let ignore_git = config.ignore_git;
|
||||
let rust_info = channel::GitInfo::new(ignore_git, &src);
|
||||
|
Loading…
Reference in New Issue
Block a user