jtojnar / nixpkgs-hammering

Beat your package expressions into a shape
MIT License
241 stars 15 forks source link

error: getting status of '/nix/store/lib': No such file or directory #144

Closed jtojnar closed 8 months ago

jtojnar commented 8 months ago

When I try to bump Nixpkgs revision, hammering will fail with evaluation error:

$ nix shell -c nixpkgs-hammer -f ./tests --json no-flags-array.make-finalAttrs --show-trace
Nix expression: 
let
    packageSet = /home/jtojnar/Projects/nixpkgs-hammering/tests;
    cleanPkgs = import packageSet { };

    pkgs = import packageSet {
        overlays = [
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/name-and-version.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/unnecessary-parallel-building.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/python-imports-check-typo.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/python-include-tests.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/no-flags-spaces.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/meson-cmake.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/license-missing.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/build-tools-in-build-inputs.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/no-flags-array.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/unclear-gpl.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/maintainers-missing.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/patch-phase.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/duplicate-check-inputs.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/python-explicit-check-phase.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/python-inconsistent-interpreters.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/explicit-phases.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/missing-phase-hooks.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/fixup-phase.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/attribute-ordering.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/environment-variables-go-to-env.nix)
            (import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/attribute-typo.nix)
        ];
    };
in {

    "no-flags-array.make-finalAttrs" =
      let
        result = builtins.tryEval pkgs."no-flags-array"."make-finalAttrs" or null;
        maybeReport = builtins.tryEval (result.value.__nixpkgs-hammering-state.reports or []);
      in
        if !(result.success && maybeReport.success) then
          {
            report = [ {
              name = "EvalError";
              msg = "Cannot evaluate attribute ‘no-flags-array.make-finalAttrs’ in ‘${packageSet}’.";
              severity = "warning";
              link = false;
            } ];
            location = null;
            outputPath = null;
            drvPath = null;
          }
        else if result.value == null then
          {
            report = [ {
              name = "AttrPathNotFound";
              msg = "Packages in ‘${packageSet}’ do not contain ‘no-flags-array.make-finalAttrs’ attribute.";
              severity = "error";
              link = false;
            } ];
            location = null;
            outputPath = null;
            drvPath = null;
          }
        else
          {
            report = if maybeReport.success then maybeReport.value else [];
            location =
              let
                position = result.value.meta.position or null;
                posSplit = builtins.split ":" result.value.meta.position;
              in
                if position == null then
                  null
                else {
                  file = builtins.elemAt posSplit 0;
                  line = builtins.elemAt posSplit 2;
                };
            outputPath = result.value.outPath;
            drvPath = result.value.drvPath;
          };

}

error:
       … while evaluating a branch condition

         at «stdin»:38:9:

           37|       in
           38|         if !(result.success && maybeReport.success) then
             |         ^
           39|           {

       … in the argument of the not operator

         at «none»:0: (source not available)

       … in the left operand of the AND (&&) operator

         at «stdin»:38:29:

           37|       in
           38|         if !(result.success && maybeReport.success) then
             |                             ^
           39|           {

       … while calling the 'tryEval' builtin

         at «stdin»:35:18:

           34|       let
           35|         result = builtins.tryEval pkgs."no-flags-array"."make-finalAttrs" or null;
             |                  ^
           36|         maybeReport = builtins.tryEval (result.value.__nixpkgs-hammering-state.reports or []);

       … while evaluating the attribute 'no-flags-array.make-finalAttrs'

         at /home/jtojnar/Projects/nixpkgs-hammering/tests/default.nix:20:3:

           19|   name-and-version = pkgs.recurseIntoAttrs (pkgs.callPackage ./name-and-version { });
           20|   no-flags-array = pkgs.recurseIntoAttrs (pkgs.callPackage ./no-flags-array { });
             |   ^
           21|   no-flags-spaces = pkgs.recurseIntoAttrs (pkgs.callPackage ./no-flags-spaces { });

       … from call site

         at /home/jtojnar/Projects/nixpkgs-hammering/tests/default.nix:2:10:

            1| { overlays ? []
            2| , pkgs ? import (import ../default.nix).inputs.nixpkgs.outPath { inherit overlays; }
             |          ^
            3| }:

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/impure.nix:14:1:

           13|
           14| { # We put legacy `system` into `localSystem`, if `localSystem` was not passed.
             | ^
           15|   # If neither is passed, assume we are building packages on the current

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/impure.nix:87:1:

           86|
           87| import ./. (builtins.removeAttrs args [ "system" ] // {
             | ^
           88|   inherit config overlays localSystem;

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/default.nix:19:1:

           18|
           19| { # The system packages will be built on. See the manual for the
             | ^
           20|   # subtle division of labor between these two `*System`s and the three

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/default.nix:144:4:

          143|
          144| in checked pkgs
             |    ^
          145|

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/default.nix:58:108:

           57|     throwIfNot (lib.isList crossOverlays) "The crossOverlays argument to nixpkgs must be a list."
           58|     lib.foldr (x: throwIfNot (lib.isFunction x) "All crossOverlays passed to nixpkgs must be functions.") (r: r) crossOverlays
             |                                                                                                            ^
           59|     ;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/default.nix:142:10:

          141|
          142|   pkgs = boot stages;
             |          ^
          143|

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:42:1:

           41| # other words, this does a foldr not foldl.
           42| stageFuns: let
             | ^
           43|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:142:4:

          141|
          142| in dfold folder postStage (_: {}) withAllowCustomOverrides
             |    ^
          143|

       … while calling 'dfold'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:60:27:

           59|   */
           60|   dfold = op: lnul: rnul: list:
             |                           ^
           61|     let

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:72:13:

           71|       lapp = lnul cur;
           72|       cur = go lapp 0;
             |             ^
           73|     in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:682:4:

          681|   # This "no-op" stage is just a place to put the assertions about stage5.
          682|   (prevStage:
             |    ^
          683|     # previous stage5 stdenv; see stage3 comment regarding gcc,

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:685:12:

          684|     # which applies here as well.
          685|     assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped;
             |            ^
          686|     assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc};

       … while calling 'isBuiltByNixpkgsCompiler'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:5:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |     ^
          108|   isBuiltByBootstrapFilesCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:10:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |          ^
          108|   isBuiltByBootstrapFilesCompiler =

       … while calling 'isFromNixpkgs'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:19:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                   ^
          104|   isFromBootstrapFiles =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:26:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                          ^
          104|   isFromBootstrapFiles =

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:590:4:

          589|   #
          590|   (prevStage:
             |    ^
          591|     # previous stage4 stdenv; see stage3 comment regarding gcc,

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:593:12:

          592|     # which applies here as well.
          593|     assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped;
             |            ^
          594|     assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc};

       … while calling 'isBuiltByNixpkgsCompiler'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:5:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |     ^
          108|   isBuiltByBootstrapFilesCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:10:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |          ^
          108|   isBuiltByBootstrapFilesCompiler =

       … while calling 'isFromNixpkgs'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:19:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                   ^
          104|   isFromBootstrapFiles =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:26:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                          ^
          104|   isFromBootstrapFiles =

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:528:4:

          527|   #
          528|   (prevStage:
             |    ^
          529|     # previous stage3 stdenv:

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:530:12:

          529|     # previous stage3 stdenv:
          530|     assert isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped;
             |            ^
          531|     assert isBuiltByNixpkgsCompiler prevStage.${localSystem.libc};

       … while calling 'isBuiltByNixpkgsCompiler'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:5:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |     ^
          108|   isBuiltByBootstrapFilesCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:10:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |          ^
          108|   isBuiltByBootstrapFilesCompiler =

       … while calling 'isFromNixpkgs'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:19:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                   ^
          104|   isFromBootstrapFiles =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:26:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                          ^
          104|   isFromBootstrapFiles =

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:486:4:

          485|   # binutils and rest of the bootstrap tools, including GCC.
          486|   (prevStage:
             |    ^
          487|     # previous stage2 stdenv:

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:488:19:

          487|     # previous stage2 stdenv:
          488|     assert        isBuiltByNixpkgsCompiler prevStage.binutils-unwrapped;
             |                   ^
          489|     assert        isBuiltByNixpkgsCompiler prevStage.${localSystem.libc};

       … while calling 'isBuiltByNixpkgsCompiler'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:5:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |     ^
          108|   isBuiltByBootstrapFilesCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:107:10:

          106|   isBuiltByNixpkgsCompiler =
          107|     pkg: isFromNixpkgs pkg && isFromNixpkgs pkg.stdenv.cc.cc;
             |          ^
          108|   isBuiltByBootstrapFilesCompiler =

       … while calling 'isFromNixpkgs'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:19:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                   ^
          104|   isFromBootstrapFiles =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:26:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                          ^
          104|   isFromBootstrapFiles =

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:400:4:

          399|   #
          400|   (prevStage:
             |    ^
          401|     # previous stage1 stdenv:

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:402:12:

          401|     # previous stage1 stdenv:
          402|     assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped;
             |            ^
          403|     assert            isFromBootstrapFiles prevStage."${localSystem.libc}";

       … while calling 'isBuiltByBootstrapFilesCompiler'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:109:5:

          108|   isBuiltByBootstrapFilesCompiler =
          109|     pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc;
             |     ^
          110|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:109:10:

          108|   isBuiltByBootstrapFilesCompiler =
          109|     pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc;
             |          ^
          110|

       … while calling 'isFromNixpkgs'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:19:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                   ^
          104|   isFromBootstrapFiles =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:26:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                          ^
          104|   isFromBootstrapFiles =

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:321:4:

          320|   # is not part of the final stdenv.
          321|   (prevStage:
             |    ^
          322|     assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:322:12:

          321|   (prevStage:
          322|     assert isBuiltByBootstrapFilesCompiler prevStage.binutils-unwrapped;
             |            ^
          323|     assert            isFromBootstrapFiles prevStage."${localSystem.libc}";

       … while calling 'isBuiltByBootstrapFilesCompiler'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:109:5:

          108|   isBuiltByBootstrapFilesCompiler =
          109|     pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc;
             |     ^
          110|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:109:10:

          108|   isBuiltByBootstrapFilesCompiler =
          109|     pkg: isFromNixpkgs pkg && isFromBootstrapFiles pkg.stdenv.cc.cc;
             |          ^
          110|

       … while calling 'isFromNixpkgs'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:19:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                   ^
          104|   isFromBootstrapFiles =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:103:26:

          102|
          103|   isFromNixpkgs = pkg: !(isFromBootstrapFiles pkg);
             |                          ^
          104|   isFromBootstrapFiles =

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:90:12:

           89|   folder = nextStage: stageFun: prevStage: let
           90|     args = stageFun prevStage;
             |            ^
           91|     args' = args // {

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:79:23:

           78|   withAllowCustomOverrides = lib.lists.imap1
           79|     (index: stageFun: prevStage:
             |                       ^
           80|       # So true by default for only the first element because one

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:84:11:

           83|       { allowCustomOverrides = index == 1; }
           84|       // (stageFun prevStage))
             |           ^
           85|     (lib.lists.reverseList stageFuns);

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:284:4:

          283|   # overrides attribute and the inherit syntax.
          284|   (prevStage:
             |    ^
          285|     # previous stage0 stdenv:

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:286:12:

          285|     # previous stage0 stdenv:
          286|     assert isFromBootstrapFiles prevStage.binutils.bintools;
             |            ^
          287|     assert isFromBootstrapFiles prevStage."${localSystem.libc}";

       … while calling 'isFromBootstrapFiles'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/linux/default.nix:105:5:

          104|   isFromBootstrapFiles =
          105|     pkg: pkg.passthru.isFromBootstrapFiles or false;
             |     ^
          106|   isBuiltByNixpkgsCompiler =

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:69:18:

           68|           cur  = op pred (builtins.elemAt list n) succ;
           69|           succ = go cur (n + 1);
             |                  ^
           70|         in cur;

       … while calling 'go'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:63:18:

           62|       len = builtins.length list;
           63|       go = pred: n:
             |                  ^
           64|         if n == len

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:68:18:

           67|           # Note the cycle -- call-by-need ensures finite fold.
           68|           cur  = op pred (builtins.elemAt list n) succ;
             |                  ^
           69|           succ = go cur (n + 1);

       … while calling 'folder'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:89:33:

           88|   # debugging purposes.
           89|   folder = nextStage: stageFun: prevStage: let
             |                                 ^
           90|     args = stageFun prevStage;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/stdenv/booter.nix:101:12:

          100|       then args'
          101|       else allPackages ((builtins.removeAttrs args' ["selfBuild"]) // {
             |            ^
          102|         adjacentPackages = if args.selfBuild or true then null else rec {

       … while calling 'allPackages'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/default.nix:132:17:

          131|   # sets. Only apply arguments which no stdenv would want to override.
          132|   allPackages = newArgs: import ./stage.nix ({
             |                 ^
          133|     inherit lib nixpkgsFun;

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/default.nix:132:26:

          131|   # sets. Only apply arguments which no stdenv would want to override.
          132|   allPackages = newArgs: import ./stage.nix ({
             |                          ^
          133|     inherit lib nixpkgsFun;

       … while calling anonymous lambda

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/stage.nix:19:1:

           18|
           19| { ## Misc parameters kept the same for all stages
             | ^
           20|   ##

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/pkgs/top-level/stage.nix:299:3:

          298|   # Return the complete set of packages.
          299|   lib.fix toFix
             |   ^
          300|

       … while calling 'fix'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:75:9:

           74|   */
           75|   fix = f: let x = f x; in x;
             |         ^
           76|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:75:20:

           74|   */
           75|   fix = f: let x = f x; in x;
             |                    ^
           76|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:42:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                          ^
          142|

       … while calling 'extends'

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:24:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                        ^
          142|

       … from call site

         at /nix/store/11hm07gdcjrzrqv73ii0n3j7jiqnq23w-source/lib/fixed-points.nix:141:67:

          140|   */
          141|   extends = f: rattrs: self: let super = rattrs self; in super // f self super;
             |                                                                   ^
          142|

       … while calling anonymous lambda

         at /nix/store/2qb5zx252km4cxic363lnd9a7hrv68n6-overlays/name-and-version.nix:1:8:

            1| final: prev:
             |        ^
            2| let

       error: getting status of '/nix/store/lib': No such file or directory
Traceback (most recent call last):
  File "/nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/bin/.nixpkgs-hammer-wrapped", line 410, in <module>
    main(args)
  File "/nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/bin/.nixpkgs-hammer-wrapped", line 331, in main
    overlay_data = nix_eval_json(all_messages_nix, args.show_trace)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/bin/.nixpkgs-hammer-wrapped", line 136, in nix_eval_json
    json_text = subprocess.check_output(args, text=True, input=expr)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/ffll6glz3gwx342z0ch8wx30p5cnqz1z-python3-3.11.5/lib/python3.11/subprocess.py", line 466, in check_output
    return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/nix/store/ffll6glz3gwx342z0ch8wx30p5cnqz1z-python3-3.11.5/lib/python3.11/subprocess.py", line 571, in run
    raise CalledProcessError(retcode, process.args,
subprocess.CalledProcessError: Command '['nix-instantiate', '--strict', '--json', '--eval', '-', '--show-trace']' returned non-zero exit status 1.

Bisecting against Nixpkgs points to https://github.com/NixOS/nixpkgs/commit/3132d2406edadbc1a3f0f5dc13aaf7c285fe4263

jtojnar commented 8 months ago

I managed to shrink the reproducer to:

echo "let packageSet = /home/jtojnar/Projects/nixpkgs; pkgs = import packageSet {overlays = [(import /nix/store/22l6rrv003f9v05ciaaj95fq848sahbi-nixpkgs-hammering/overlays/no-flags-array.nix) ]; }; in pkgs.hello" | nix-instantiate --strict --json --eval -

Then I bisected it against Nix to https://github.com/NixOS/nix/commit/94812cca98fbb157e5f64a15a85a2b852d289feb

Turns out it was because of imports across symlinks:

https://github.com/jtojnar/nixpkgs-hammering/blob/6141217e55cafe05603495065fefd9d4ab59e706/flake.nix#L59-L60 https://github.com/jtojnar/nixpkgs-hammering/blob/6141217e55cafe05603495065fefd9d4ab59e706/overlays/no-flags-array.nix#L4

That allowed me to further simplify the reproducer to:

mkdir -p repro-144/over
echo 'import ../bar.nix' > repro-144/over/foo.nix
storePath=$(nix-build -I "nixpkgs=$HOME/Projects/nixpkgs" -E 'let pkgs = import <nixpkgs> {}; in pkgs.runCommand "nixpkgs-hammering" {} "mkdir -p $out; echo \"\\\"test\\\"\" > $out/bar.nix; ln -s ${./repro-144/over} $out/over"')
echo "import $storePath/over/foo.nix" | nix-instantiate --strict --json --eval -
jtojnar commented 8 months ago

Even simple reproduction:

rm -r 144-store
mkdir -p 144-store/overlays
echo 'import ../lib' > 144-store/overlays/overlay.nix

mkdir -p 144-store/foo/lib
echo '"test"' > 144-store/foo/lib/default.nix
ln -s $PWD/144-store/overlays 144-store/foo/overlays
nix-instantiate --eval --strict "144-store/foo/overlays/overlay.nix"