summary refs log tree commit diff
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2019-02-23 00:00:00 +0000
committerdanbst <abcz2.uprola@gmail.com>2019-03-08 11:37:20 +0200
commit83ae1ffed43f5dc54bcfd58655974293d215df6e (patch)
tree55558ec1d2444341995889f3ebf9c4a5c563286c
parent5aa813dcc942d05485b89a89e734d231f31eaa9f (diff)
downloadnixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.tar
nixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.tar.gz
nixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.tar.bz2
nixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.tar.lz
nixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.tar.xz
nixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.tar.zst
nixpkgs-83ae1ffed43f5dc54bcfd58655974293d215df6e.zip
pkgs/top-level/stage.nix: don't override `overlays` and `config` in `nixpkgsFun`
`nixpkgsFun` already sets them via `args`. Doing this also introduces unexpected
hard to debug errors, see the patch.
-rw-r--r--pkgs/top-level/default.nix8
-rw-r--r--pkgs/top-level/stage.nix2
2 files changed, 8 insertions, 2 deletions
diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix
index 4afea6d7fdf..b6de076a570 100644
--- a/pkgs/top-level/default.nix
+++ b/pkgs/top-level/default.nix
@@ -98,6 +98,14 @@ in let
   # compiling toolchains and 32-bit packages on x86_64). In both those cases we
   # want the provided non-native `localSystem` argument to affect the stdenv
   # chosen.
+  #
+  # NB!!! This thing gets its `config` argument from `args`, i.e. it's actually
+  # `config0`. It is important to keep it to `config0` format (as opposed to the
+  # result of `evalModules`, i.e. the `config` variable above) throughout all
+  # nixpkgs evaluations since the above function `config0 -> config` implemented
+  # via `evalModules` is not idempotent. In other words, if you add `config` to
+  # `newArgs`, expect strange very hard to debug errors! (Yes, I'm speaking from
+  # experience here.)
   nixpkgsFun = newArgs: import ./. (args // newArgs);
 
   # Partially apply some arguments for building bootstraping stage pkgs
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 835a2883845..0ee5c25b010 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -135,7 +135,6 @@ let
     # default GNU libc on Linux systems. Non-Linux systems are not
     # supported.
     pkgsMusl = if stdenv.hostPlatform.isLinux then nixpkgsFun {
-      inherit overlays config;
       ${if stdenv.hostPlatform == stdenv.buildPlatform
         then "localSystem" else "crossSystem"} = {
         parsed = stdenv.hostPlatform.parsed // {
@@ -152,7 +151,6 @@ let
     # All packages built for i686 Linux.
     # Used by wine, firefox with debugging version of Flash, ...
     pkgsi686Linux = if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86 then nixpkgsFun {
-      inherit overlays config;
       ${if stdenv.hostPlatform == stdenv.buildPlatform
         then "localSystem" else "crossSystem"} = {
         parsed = stdenv.hostPlatform.parsed // {