summary refs log tree commit diff
path: root/pkgs/stdenv
diff options
context:
space:
mode:
authorJohn Ericson <Ericson2314@Yahoo.com>2016-11-27 12:35:58 -0800
committerJohn Ericson <jericson@galois.com>2016-11-30 19:10:59 -0500
commitd240a0da1ab03ef8838553229b72b9b37a0ef3e7 (patch)
treea1a6eeec3d31abe66228d2c14534d50dfc95e882 /pkgs/stdenv
parent07a2b17cbf541c485e04f1a8ec98ffe8c24ac713 (diff)
downloadnixpkgs-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.nix2
-rw-r--r--pkgs/stdenv/custom/default.nix2
-rw-r--r--pkgs/stdenv/darwin/default.nix5
-rw-r--r--pkgs/stdenv/default.nix5
-rw-r--r--pkgs/stdenv/freebsd/default.nix2
-rw-r--r--pkgs/stdenv/linux/default.nix3
-rw-r--r--pkgs/stdenv/native/default.nix3
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;
   };