diff --git a/pkgs/stdenv/cross/default.nix b/pkgs/stdenv/cross/default.nix index fcf06bcf1da..10e2a766356 100644 --- a/pkgs/stdenv/cross/default.nix +++ b/pkgs/stdenv/cross/default.nix @@ -1,14 +1,14 @@ -{ system, allPackages, platform, crossSystem, config, ... } @ args: +{ lib, allPackages +, system, platform, crossSystem, config +}: rec { - argClobber = { + vanillaStdenv = (import ../. { + inherit lib allPackages system platform; crossSystem = null; # Ignore custom stdenvs when cross compiling for compatability config = builtins.removeAttrs config [ "replaceStdenv" ]; - }; - vanillaStdenv = (import ../. (args // argClobber // { - allPackages = args: allPackages (argClobber // args); - })) // { + }) // { # Needed elsewhere as a hacky way to pass the target cross = crossSystem; }; diff --git a/pkgs/stdenv/custom/default.nix b/pkgs/stdenv/custom/default.nix index e8f203d69cf..174b8593c0a 100644 --- a/pkgs/stdenv/custom/default.nix +++ b/pkgs/stdenv/custom/default.nix @@ -1,10 +1,13 @@ -{ system, allPackages, platform, crossSystem, config, ... } @ args: +{ lib, allPackages +, system, platform, crossSystem, config +}: rec { - vanillaStdenv = import ../. (args // { + vanillaStdenv = import ../. { + inherit lib allPackages system platform crossSystem; # Remove config.replaceStdenv to ensure termination. config = builtins.removeAttrs config [ "replaceStdenv" ]; - }); + }; buildPackages = allPackages { inherit system platform crossSystem config; diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix index 49c4d9b8b2b..6182c8cc0c7 100644 --- a/pkgs/stdenv/darwin/default.nix +++ b/pkgs/stdenv/darwin/default.nix @@ -100,7 +100,7 @@ in rec { }; thisPkgs = allPackages { - inherit system platform; + inherit system platform config; allowCustomOverrides = false; stdenv = thisStdenv; }; diff --git a/pkgs/stdenv/default.nix b/pkgs/stdenv/default.nix index bd515181fc6..246e656f33b 100644 --- a/pkgs/stdenv/default.nix +++ b/pkgs/stdenv/default.nix @@ -5,12 +5,13 @@ # Posix utilities, the GNU C compiler, and so on. On other systems, # we use the native C library. -{ system, allPackages ? import ../top-level, platform, config, crossSystem, lib }: - +{ # Args just for stdenvs' usage + lib, allPackages + # Args to pass on to `allPacakges` too +, system, platform, crossSystem, config +}: let - - # The native (i.e., impure) build environment. This one uses the # tools installed on the system outside of the Nix environment, # i.e., the stuff in /bin, /usr/bin, etc. This environment should @@ -19,6 +20,7 @@ let inherit (import ./native { inherit system allPackages config; }) stdenvNative; stdenvNativePkgs = allPackages { + inherit system platform crossSystem config; allowCustomOverrides = false; stdenv = stdenvNative; noSysDirs = false; diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix index e0a68bdca2f..e4bf87c5202 100644 --- a/pkgs/stdenv/linux/default.nix +++ b/pkgs/stdenv/linux/default.nix @@ -106,7 +106,7 @@ rec { }; thisPkgs = allPackages { - inherit system platform; + inherit system platform config; allowCustomOverrides = false; stdenv = thisStdenv; }; diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix index 22b4dc1400f..0f9aee214b3 100644 --- a/pkgs/stdenv/native/default.nix +++ b/pkgs/stdenv/native/default.nix @@ -126,7 +126,7 @@ rec { } // {inherit fetchurl;}; stdenvBoot1Pkgs = allPackages { - inherit system; + inherit system platform config; allowCustomOverrides = false; stdenv = stdenvBoot1; }; diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix index d1e824a8070..9464a8012b3 100644 --- a/pkgs/top-level/default.nix +++ b/pkgs/top-level/default.nix @@ -69,9 +69,10 @@ in let # deterministically inferred the same way. nixpkgsFun = newArgs: import ./. (args // newArgs); - # Partially apply some args for building bootstraping stage pkgs sets + # Partially apply some arguments for building bootstraping stage pkgs + # sets. Only apply arguments which no stdenv would want to override. allPackages = newArgs: import ./stage.nix ({ - inherit lib nixpkgsFun config; + inherit lib nixpkgsFun; } // newArgs); stdenv = import ../stdenv {