bootstrap: add config option for nix patching
On NixOS systems, bootstrap will patch rustc used in bootstrapping after checking `/etc/os-release` (to confirm the current distribution is NixOS). However, when using Nix on a non-NixOS system, it can be desirable for bootstrap to patch rustc. In this commit, a `patch-binaries-for-nix` option is added to `config.toml`, which allows for user opt-in to bootstrap's Nix patching. Signed-off-by: David Wood <david.wood@huawei.com>
This commit is contained in:
parent
4e4942dfa6
commit
e552c0d86b
3 changed files with 23 additions and 12 deletions
|
@ -594,19 +594,23 @@ class RustBuild(object):
|
|||
if ostype != "Linux":
|
||||
return
|
||||
|
||||
# Use `/etc/os-release` instead of `/etc/NIXOS`.
|
||||
# The latter one does not exist on NixOS when using tmpfs as root.
|
||||
try:
|
||||
with open("/etc/os-release", "r") as f:
|
||||
if not any(line.strip() == "ID=nixos" for line in f):
|
||||
return
|
||||
except FileNotFoundError:
|
||||
return
|
||||
if os.path.exists("/lib"):
|
||||
return
|
||||
# If the user has asked binaries to be patched for Nix, then
|
||||
# don't check for NixOS or `/lib`, just continue to the patching.
|
||||
if self.get_toml('patch-binaries-for-nix', 'build') != 'true':
|
||||
# Use `/etc/os-release` instead of `/etc/NIXOS`.
|
||||
# The latter one does not exist on NixOS when using tmpfs as root.
|
||||
try:
|
||||
with open("/etc/os-release", "r") as f:
|
||||
if not any(line.strip() == "ID=nixos" for line in f):
|
||||
return
|
||||
except FileNotFoundError:
|
||||
return
|
||||
if os.path.exists("/lib"):
|
||||
return
|
||||
|
||||
# At this point we're pretty sure the user is running NixOS
|
||||
nix_os_msg = "info: you seem to be running NixOS. Attempting to patch"
|
||||
# At this point we're pretty sure the user is running NixOS or
|
||||
# using Nix
|
||||
nix_os_msg = "info: you seem to be using Nix. Attempting to patch"
|
||||
print(nix_os_msg, fname)
|
||||
|
||||
# Only build `.nix-deps` once.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue