summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohn Ericson <Ericson2314@Yahoo.com>2016-12-03 17:21:07 -0800
committerJohn Ericson <Ericson2314@Yahoo.com>2016-12-03 17:21:07 -0800
commit5c6234a7d3f0b430d7dc941dc1ab059c42729611 (patch)
tree2bfcee5413e6d751274dd57d378a179c0dcb5fd3
parent4751d9e5ad124284dbd719d3a58f42d56f1b9514 (diff)
top-level: Allow manually specifying a stdenv, and fix stdenv tests
- The darwin test can now force the use of the freshly-booted darwin stdenv - The linux test now passes enough dummy arguments This may make debugging harder, if so, check out #20889
-rw-r--r--pkgs/stdenv/darwin/make-bootstrap-tools.nix8
-rw-r--r--pkgs/stdenv/linux/make-bootstrap-tools.nix7
-rw-r--r--pkgs/top-level/default.nix6
3 files changed, 16 insertions, 5 deletions
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 10d2b4decddd..bd581f71a436 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -332,10 +332,10 @@ in rec {
};
# The ultimate test: bootstrap a whole stdenv from the tools specified above and get a package set out of it
- test-pkgs = let
- stdenv = import (test-pkgspath + "/pkgs/stdenv/darwin") { inherit system bootstrapFiles; };
- in import test-pkgspath {
+ test-pkgs = import test-pkgspath {
inherit system;
- bootStdenv = stdenv.stdenvDarwin;
+ stdenv = args: let
+ args' = args // { inherit bootstrapFiles; };
+ in (import (test-pkgspath + "/pkgs/stdenv/darwin") args').stdenvDarwin;
};
}
diff --git a/pkgs/stdenv/linux/make-bootstrap-tools.nix b/pkgs/stdenv/linux/make-bootstrap-tools.nix
index 1ecb222af3ec..7063d7bfcb6a 100644
--- a/pkgs/stdenv/linux/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/linux/make-bootstrap-tools.nix
@@ -175,6 +175,13 @@ rec {
bootstrapTools = (import ./default.nix {
inherit system bootstrapFiles;
+
+ lib = assert false; null;
+ allPackages = assert false; null;
+
+ platform = assert false; null;
+ crossSystem = assert false; null;
+ config = assert false; null;
}).bootstrapTools;
test = derivation {
diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix
index a1f3a1c38c5c..31c51215676b 100644
--- a/pkgs/top-level/default.nix
+++ b/pkgs/top-level/default.nix
@@ -23,6 +23,10 @@
, # Allow a configuration attribute set to be passed in as an argument.
config ? {}
+, # The standard environment for building packages, or rather a function
+ # providing it. See below for the arguments given to that function.
+ stdenv ? assert false; null
+
, crossSystem ? null
, platform ? assert false; null
} @ args:
@@ -72,7 +76,7 @@ in let
inherit lib nixpkgsFun;
} // newArgs);
- stdenv = import ../stdenv {
+ stdenv = (args.stdenv or (import ../stdenv)) {
inherit lib allPackages system platform crossSystem config;
};