summary refs log tree commit diff
path: root/pkgs/stdenv/booter.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/stdenv/booter.nix')
-rw-r--r--pkgs/stdenv/booter.nix18
1 files changed, 12 insertions, 6 deletions
diff --git a/pkgs/stdenv/booter.nix b/pkgs/stdenv/booter.nix
index 11ca8e1440e..6e5d073e55a 100644
--- a/pkgs/stdenv/booter.nix
+++ b/pkgs/stdenv/booter.nix
@@ -57,12 +57,18 @@ stageFuns: let
   # debugging purposes.
   folder = stageFun: finalSoFar: let
     args = stageFun finalSoFar;
-    stdenv = args.stdenv // {
-      # For debugging
-      __bootPackages = finalSoFar;
+    args' = args // {
+      stdenv = args.stdenv // {
+        # For debugging
+        __bootPackages = finalSoFar;
+      };
     };
-    args' = args // { inherit stdenv; };
-  in
-    (if args.__raw or false then lib.id else allPackages) args';
+    self =
+      if args.__raw or false
+      then args'
+      else allPackages ((builtins.removeAttrs args' ["selfBuild"]) // {
+        buildPackages = if args.selfBuild or true then self else finalSoFar;
+      });
+  in self;
 
 in lib.lists.fold folder {} withAllowCustomOverrides