diff options
author | John Ericson <Ericson2314@Yahoo.com> | 2016-11-27 12:35:58 -0800 |
---|---|---|
committer | John Ericson <jericson@galois.com> | 2016-11-30 19:10:59 -0500 |
commit | d240a0da1ab03ef8838553229b72b9b37a0ef3e7 (patch) | |
tree | a1a6eeec3d31abe66228d2c14534d50dfc95e882 /pkgs/stdenv | |
parent | 07a2b17cbf541c485e04f1a8ec98ffe8c24ac713 (diff) | |
download | nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.tar nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.tar.gz nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.tar.bz2 nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.tar.lz nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.tar.xz nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.tar.zst nixpkgs-d240a0da1ab03ef8838553229b72b9b37a0ef3e7.zip |
top-level: Remove cycles: stdenv calls in top-level but not vice versa
This commit changes the dependencies of stdenv, and clean-up the stdenv story by removing the `defaultStdenv` attribute as well as the `bootStdenv` parameter. Before, the final bootstrapping stage's stdenv was provided by all-packages, which was iterating multiple times over the top-level/default.nix expression, and non-final bootstrapping stages' stdenvs were explicitly specified with the `bootStdenv` parameter. Now, all stages' stdenvs are specified with the `stdenv` parameter. For non-final bootstrapping stages, this is a small change---basically just rename the parameter. For the final stage, top-level/default.nix takes the chosen stdenv and makes the final stage with it. `allPackages` is used to make all bootstrapping stages, final and non-final alike. It's basically the expression of `stage.nix` (along with a few partially-applied default arguments) Note, the make-bootstrap-tools scripts are temporarily broken
Diffstat (limited to 'pkgs/stdenv')
-rw-r--r-- | pkgs/stdenv/cross/default.nix | 2 | ||||
-rw-r--r-- | pkgs/stdenv/custom/default.nix | 2 | ||||
-rw-r--r-- | pkgs/stdenv/darwin/default.nix | 5 | ||||
-rw-r--r-- | pkgs/stdenv/default.nix | 5 | ||||
-rw-r--r-- | pkgs/stdenv/freebsd/default.nix | 2 | ||||
-rw-r--r-- | pkgs/stdenv/linux/default.nix | 3 | ||||
-rw-r--r-- | pkgs/stdenv/native/default.nix | 3 |
7 files changed, 13 insertions, 9 deletions
diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index e48124f1c4d..fcf06bcf1da 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -20,7 +20,7 @@ rec { inherit system platform crossSystem config; # It's OK to change the built-time dependencies allowCustomOverrides = true; - bootStdenv = vanillaStdenv; + stdenv = vanillaStdenv; }; stdenvCross = buildPackages.makeStdenvCross diff --git a/pkgs/stdenv/custom/default.nix b/pkgs/stdenv/custom/default.nix index 4c14d6411f1..e8f203d69cf 100644 --- a/pkgs/stdenv/custom/default.nix +++ b/pkgs/stdenv/custom/default.nix @@ -10,7 +10,7 @@ rec { inherit system platform crossSystem config; # It's OK to change the built-time dependencies allowCustomOverrides = true; - bootStdenv = vanillaStdenv; + stdenv = vanillaStdenv; }; stdenvCustom = config.replaceStdenv { pkgs = buildPackages; }; diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 1bc983d6312..49c4d9b8b2b 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -22,7 +22,7 @@ let (import "${./standard-sandbox.sb}") ''; in rec { - allPackages = import ../../..; + inherit allPackages; commonPreHook = '' export NIX_ENFORCE_PURITY="''${NIX_ENFORCE_PURITY-1}" @@ -101,7 +101,8 @@ in rec { thisPkgs = allPackages { inherit system platform; - bootStdenv = thisStdenv; + allowCustomOverrides = false; + stdenv = thisStdenv; }; in { stdenv = thisStdenv; pkgs = thisPkgs; }; diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index ac84ea0f9a0..bd515181fc6 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -5,7 +5,7 @@ # Posix utilities, the GNU C compiler, and so on. On other systems, # we use the native C library. -{ system, allPackages ? import ../.., platform, config, crossSystem, lib }: +{ system, allPackages ? import ../top-level, platform, config, crossSystem, lib }: let @@ -19,7 +19,8 @@ let inherit (import ./native { inherit system allPackages config; }) stdenvNative; stdenvNativePkgs = allPackages { - bootStdenv = stdenvNative; + allowCustomOverrides = false; + stdenv = stdenvNative; noSysDirs = false; }; diff --git a/pkgs/stdenv/freebsd/default.nix b/pkgs/stdenv/freebsd/default.nix index 4c7ebc16239..13cb21fe1d8 100644 --- a/pkgs/stdenv/freebsd/default.nix +++ b/pkgs/stdenv/freebsd/default.nix @@ -5,7 +5,7 @@ }: rec { - allPackages = import ../../..; + inherit allPackages; bootstrapTools = derivation { inherit system; diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index e3aeafe178d..e0a68bdca2f 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -107,7 +107,8 @@ rec { thisPkgs = allPackages { inherit system platform; - bootStdenv = thisStdenv; + allowCustomOverrides = false; + stdenv = thisStdenv; }; in { stdenv = thisStdenv; pkgs = thisPkgs; }; diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix index fcd0805275b..22b4dc1400f 100644 --- a/pkgs/stdenv/native/default.nix +++ b/pkgs/stdenv/native/default.nix @@ -127,7 +127,8 @@ rec { stdenvBoot1Pkgs = allPackages { inherit system; - bootStdenv = stdenvBoot1; + allowCustomOverrides = false; + stdenv = stdenvBoot1; }; |