3
0
Fork 0
forked from mirrors/nixpkgs

Fix nixos-rebuild.sh to depend on Nix

And therefore always choose the correct architecture for the rebuilt
system regardless for the PATH setting of the user.
This commit is contained in:
Gergely Risko 2014-06-10 20:09:48 +02:00
parent a46c4d976c
commit 068c7fd037
2 changed files with 11 additions and 0 deletions

View file

@ -97,6 +97,16 @@ if [ -n "$upgrade" -a -z "$_NIXOS_REBUILD_REEXEC" ]; then
nix-channel --update nixos nix-channel --update nixos
fi fi
# Make sure that we use the Nix package we depend on, not something
# else from the PATH for nix-{env,instantiate,build}. This is
# important, because NixOS defaults the architecture of the rebuilt
# system to the architecture of the nix-* binaries used. So if on an
# amd64 system the user has an i686 Nix package in her PATH, then we
# would silently downgrade the whole system to be i686 NixOS on the
# next reboot.
if [ -z "$_NIXOS_REBUILD_REEXEC" ]; then
export PATH=@nix@/bin:$PATH
fi
# Re-execute nixos-rebuild from the Nixpkgs tree. # Re-execute nixos-rebuild from the Nixpkgs tree.
if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" ]; then if [ -z "$_NIXOS_REBUILD_REEXEC" -a -n "$canRun" ]; then

View file

@ -32,6 +32,7 @@ let
nixos-rebuild = makeProg { nixos-rebuild = makeProg {
name = "nixos-rebuild"; name = "nixos-rebuild";
src = ./nixos-rebuild.sh; src = ./nixos-rebuild.sh;
nix = config.nix.package;
}; };
nixos-generate-config = makeProg { nixos-generate-config = makeProg {