Skip to content

stdenv: fix withCFlags when NIX_CFLAGS_COMPILE exists outside of env#438709

Open
SuperSandro2000 wants to merge 1 commit intoNixOS:masterfrom
SuperSandro2000:withCFlags
Open

stdenv: fix withCFlags when NIX_CFLAGS_COMPILE exists outside of env#438709
SuperSandro2000 wants to merge 1 commit intoNixOS:masterfrom
SuperSandro2000:withCFlags

Conversation

@SuperSandro2000
Copy link
Member

@SuperSandro2000 SuperSandro2000 commented Aug 30, 2025

But now it fails in php

Nix Stack Trace

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/customisation.nix:163:18:
          162|       let
          163|         result = f origArgs;
             |                  ^
          164|

       … while calling anonymous lambda
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/8.4.nix:1:1:
            1| { callPackage, ... }@_args:
             | ^
            2|

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/8.4.nix:4:10:
            3| let
            4|   base = callPackage ./generic.nix (
             |          ^
            5|     _args

       (7 duplicate frames omitted)

       … while calling 'generic'
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:6:5:
            5|   generic =
            6|     {
             |     ^
            7|       callPackage,

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:224:5:
          223|     in
          224|     stdenv.mkDerivation (
             |     ^
          225|       finalAttrs:

       … while calling anonymous lambda
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/stdenv/adapters.nix:37:8:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |        ^
           38|     );

       … while calling anonymous lambda
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/stdenv/adapters.nix:37:7:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |       ^
           38|     );

       … while calling 'overrideAttrs'
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:384:15:
          383|             overrideAttrs =
          384|               f:
             |               ^
          385|               let

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:389:23:
          388|                 );
          389|                 php = generic (args // { phpAttrsOverrides = newPhpAttrsOverrides; });
             |                       ^
          390|               in

       (13130 duplicate frames omitted)

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/stdenv/generic/make-derivation.nix:84:14:
           83|       # An infinite recursion here can be caused by having the attribute names of expression `e` in `.overrideAttrs(finalAttrs: previousAttrs: e)` depend on `finalAttrs`. Only the attribute values of `e` can depend on `finalAttrs`.
           84|       args = rattrs (args // { inherit finalPackage overrideAttrs; });
             |              ^
           85|       #              ^^^^

       … while calling anonymous lambda
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:225:7:
          224|     stdenv.mkDerivation (
          225|       finalAttrs:
             |       ^
          226|       let

       … in the right operand of the update (//) operator
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:417:23:
          416|         };
          417|         final = attrs // (lib.toExtension phpAttrsOverrides) final attrs;
             |                       ^
          418|       in

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/pkgs/development/interpreters/php/generic.nix:417:27:
          416|         };
          417|         final = attrs // (lib.toExtension phpAttrsOverrides) final attrs;
             |                           ^
          418|       in

       … while calling anonymous lambda
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:512:14:
          511|     if lib.isFunction f then
          512|       final: prev:
             |              ^
          513|       let

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:518:9:
          517|         # f is (final: prev: { ... })
          518|         f final prev
             |         ^
          519|       else

       … while calling 'composeExtensions'
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:335:18:
          334|   composeExtensions =
          335|     f: g: final: prev:
             |                  ^
          336|     let

       … in the left operand of the update (//) operator
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:340:14:
          339|     in
          340|     fApplied // g final prev';
             |              ^
          341|

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:337:18:
          336|     let
          337|       fApplied = f final prev;
             |                  ^
          338|       prev' = prev // fApplied;

       (8196 duplicate frames omitted)

       … while evaluating a branch condition
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:516:7:
          515|       in
          516|       if lib.isFunction fPrev then
             |       ^
          517|         # f is (final: prev: { ... })

       … from call site
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/fixed-points.nix:516:10:
          515|       in
          516|       if lib.isFunction fPrev then
             |          ^
          517|         # f is (final: prev: { ... })

       … while calling 'isFunction'
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/trivial.nix:1023:16:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                ^
         1024|

       … in the left operand of the OR (||) operator
         at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/trivial.nix:1023:41:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                                         ^
         1024|

       error: stack overflow; max-call-depth exceeded
       at /nix/store/pp0ch7rrc6ciswnhncnwvd5pmmbn3p3d-source/lib/trivial.nix:1023:19:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                   ^
         1024|
error: some errors were encountered during the evaluation

Things done

  • Built on platform:
    • x86_64-linux
    • aarch64-linux
    • x86_64-darwin
    • aarch64-darwin
  • Tested, as applicable:
  • Ran nixpkgs-review on this PR. See nixpkgs-review usage.
  • Tested basic functionality of all binary files, usually in ./result/bin/.
  • Nixpkgs Release Notes
    • Package update: when the change is major or breaking.
  • NixOS Release Notes
    • Module addition: when adding a new NixOS module.
    • Module update: when the change is significant.
  • Fits CONTRIBUTING.md, pkgs/README.md, maintainers/README.md and other READMEs.

Add a 👍 reaction to pull requests you find important.

error: The `env` attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping:
 - NIX_CFLAGS_COMPILE: in `env`: " -O2 -pipe"; in derivation arguments: null
@nixpkgs-ci nixpkgs-ci bot added 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux. 6.topic: stdenv Standard environment labels Aug 30, 2025
@nixpkgs-ci nixpkgs-ci bot added 9.needs: reviewer This PR currently has no reviewers requested and needs attention. and removed 9.needs: reviewer This PR currently has no reviewers requested and needs attention. labels Aug 30, 2025
Copy link
Contributor

@philiptaron philiptaron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From the PR headmatter:

But now it fails in php

This giant callstack makes me believe this PR isn't suitable for merging yet. I'd like to merge something that fixes an entire problem, rather than moving the symptom from one location to another.

This appears to be a __structuredAttrs-related issue. Is that right?

It also undoes the last change to the helper by @Artturin in #225929. Let's direct our attention to making the location of NIX_CFLAGS_COMPILE canonical throughout nixpkgs, or having a more compelling reason for the code in this PR other than a symptom shifting from one location to another.

NIX_CFLAGS_COMPILE = toString (args.env.NIX_CFLAGS_COMPILE or "") + " ${toString compilerFlags}";
};
});
mkDerivationFromStdenv = extendMkDerivationArgs old (
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was introduced in #135533 and last modified in #225929.

@github-project-automation github-project-automation bot moved this to In Progress in Stdenv Sep 1, 2025
@philiptaron
Copy link
Contributor

See also the closed PR #393458 which attempted much the same thing.

@SuperSandro2000
Copy link
Member Author

SuperSandro2000 commented Sep 1, 2025

That is the full trace I got first:

Nix Stack Trace

       … while checking the derivation 'checks.x86_64-linux.nextcloud-plain'

       … from call site
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:16:15:
           15| in
           16| lib.mapAttrs (name: value: let
             |               ^
           17|   inherit (value.config.system.build) toplevel;

       … while calling anonymous lambda
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:16:21:
           15| in
           16| lib.mapAttrs (name: value: let
             |                     ^
           17|   inherit (value.config.system.build) toplevel;

       … in the left operand of the update (//) operator
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:18:13:
           17|   inherit (value.config.system.build) toplevel;
           18| in toplevel // {
             |             ^
           19|   inherit (value) config options;

       … from call site
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:17:39:
           16| lib.mapAttrs (name: value: let
           17|   inherit (value.config.system.build) toplevel;
             |                                       ^
           18| in toplevel // {

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/attrsets.nix:1529:14:
         1528|         zipAttrsWith (
         1529|           n: values:
             |              ^
         1530|           let

       … while calling the 'head' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/attrsets.nix:1534:13:
         1533|           if length values == 1 || pred here (elemAt values 1) (head values) then
         1534|             head values
             |             ^
         1535|           else

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/attrsets.nix:1182:17:
         1181|         mapAttrs (
         1182|           name: value:
             |                 ^
         1183|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/attrsets.nix:1183:85:
         1182|           name: value:
         1183|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
             |                                                                                     ^
         1184|         );

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:274:71:
          273|           # For definitions that have an associated option
          274|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                                                                       ^
          275|

       … while evaluating the attribute 'value'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1086:7:
         1085|     // {
         1086|       value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |       ^
         1087|       inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.build.toplevel':

       … while evaluating the attribute 'mergedValue'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1133:5:
         1132|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
         1133|     mergedValue =
             |     ^
         1134|       if isDefined then

       … while evaluating a branch condition
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1134:7:
         1133|     mergedValue =
         1134|       if isDefined then
             |       ^
         1135|         if all (def: type.check def.value) defsFinal then

       … while evaluating the attribute 'values'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1127:9:
         1126|       {
         1127|         values = defs''';
             |         ^
         1128|         inherit (defs'') highestPrio;

       … while evaluating a branch condition
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1121:11:
         1120|           # Avoid sorting if we don't have to.
         1121|           if any (def: def.value._type or "" == "order") defs''.values then
             |           ^
         1122|             sortProperties defs''.values

       … while calling the 'any' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1121:14:
         1120|           # Avoid sorting if we don't have to.
         1121|           if any (def: def.value._type or "" == "order") defs''.values then
             |              ^
         1122|             sortProperties defs''.values

       … while evaluating the attribute 'values'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1254:7:
         1253|     {
         1254|       values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
             |       ^
         1255|       inherit highestPrio;

       … while calling the 'concatMap' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1254:16:
         1253|     {
         1254|       values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
             |                ^
         1255|       inherit highestPrio;

       … while calling the 'concatMap' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1101:17:
         1100|         # Process mkMerge and mkIf properties.
         1101|         defs' = concatMap (
             |                 ^
         1102|           m:

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1102:11:
         1101|         defs' = concatMap (
         1102|           m:
             |           ^
         1103|           map (

       … while calling the 'map' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1103:11:
         1102|           m:
         1103|           map (
             |           ^
         1104|             value:

       … while evaluating definitions from `/nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/nixos/modules/system/activation/top-level.nix':

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1112:80:
         1111|               }
         1112|           ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                ^
         1113|         ) defs;

       … while calling 'dischargeProperties'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1205:5:
         1204|   dischargeProperties =
         1205|     def:
             |     ^
         1206|     if def._type or "" == "merge" then

       … while evaluating a branch condition
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:1206:5:
         1205|     def:
         1206|     if def._type or "" == "merge" then
             |     ^
         1207|       concatMap dischargeProperties def.contents

       … while evaluating the attribute 'value'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/modules.nix:772:21:
          771|             inherit (module) file;
          772|             inherit value;
             |                     ^
          773|           }) module.config

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/nixos/modules/system/activation/top-level.nix:80:26:
           79|   # Handle assertions and warnings
           80|   baseSystemAssertWarn = lib.asserts.checkAssertWarn config.assertions config.warnings baseSystem;
             |                          ^
           81|

       … while calling 'checkAssertWarn'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:193:27:
          192|   checkAssertWarn =
          193|     assertions: warnings: val:
             |                           ^
          194|     let

       … while evaluating a branch condition
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:197:5:
          196|     in
          197|     if failedAssertions != [ ] then
             |     ^
          198|       throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"

       … while calling the 'map' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:195:26:
          194|     let
          195|       failedAssertions = map (x: x.message) (filter (x: !x.assertion) assertions);
             |                          ^
          196|     in

       … while calling the 'filter' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:195:46:
          194|     let
          195|       failedAssertions = map (x: x.message) (filter (x: !x.assertion) assertions);
             |                                              ^
          196|     in

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:195:54:
          194|     let
          195|       failedAssertions = map (x: x.message) (filter (x: !x.assertion) assertions);
             |                                                      ^
          196|     in

       … in the argument of the not operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:195:58:
          194|     let
          195|       failedAssertions = map (x: x.message) (filter (x: !x.assertion) assertions);
             |                                                          ^
          196|     in

       … while evaluating the attribute 'assertion'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/nixos/modules/config/users-groups.nix:1168:17:
         1167|               (shell: {
         1168|                 assertion =
             |                 ^
         1169|                   !user.ignoreShellProgramCheck

       … in the right operand of the IMPL (->) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/nixos/modules/config/users-groups.nix:1170:19:
         1169|                   !user.ignoreShellProgramCheck
         1170|                   -> (user.shell == pkgs.${shell})
             |                   ^
         1171|                   -> (config.programs.${shell}.enable == true);

       … in the left operand of the IMPL (->) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/nixos/modules/config/users-groups.nix:1171:19:
         1170|                   -> (user.shell == pkgs.${shell})
         1171|                   -> (config.programs.${shell}.enable == true);
             |                   ^
         1172|                 message = ''

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'fish-4.0.2'
         whose name attribute is located at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:482:13

       … while evaluating attribute 'cargoDeps' of derivation 'fish-4.0.2'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/by-name/fi/fish/package.nix:170:3:
          169|
          170|   cargoDeps = rustPlatform.fetchCargoVendor {
             |   ^
          171|     inherit (finalAttrs) src patches;

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'cargo-deps-vendor'
         whose name attribute is located at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:482:13

       … while evaluating attribute 'nativeBuildInputs' of derivation 'cargo-deps-vendor'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:534:13:
          533|             depsBuildBuild = elemAt (elemAt dependencies 0) 0;
          534|             nativeBuildInputs = elemAt (elemAt dependencies 0) 1;
             |             ^
          535|             depsBuildTarget = elemAt (elemAt dependencies 0) 2;

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'fetch-cargo-vendor-util'
         whose name attribute is located at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:482:13

       … while evaluating attribute 'interpreter' of derivation 'fetch-cargo-vendor-util'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/build-support/writers/scripts.nix:120:35:
          119|                 {
          120|                   inherit content interpreter;
             |                                   ^
          121|                   passAsFile = [ "content" ];

       … while evaluating a branch condition
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/build-support/writers/scripts.nix:1196:11:
         1195|         interpreter =
         1196|           if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then
             |           ^
         1197|             if libraries == [ ] then

       … in the left operand of the OR (||) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/build-support/writers/scripts.nix:1196:51:
         1195|         interpreter =
         1196|           if pythonPackages != pkgs.pypy2Packages || pythonPackages != pkgs.pypy3Packages then
             |                                                   ^
         1197|             if libraries == [ ] then

       … while evaluating the attribute 'pypy2Packages'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/top-level/all-packages.nix:6590:3:
         6589|   pypyPackages = pypy.pkgs;
         6590|   pypy2Packages = pypy2.pkgs;
             |   ^
         6591|   pypy27Packages = pypy27.pkgs;

       … while evaluating the attribute 'pypy27'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/development/interpreters/python/default.nix:148:5:
          147|
          148|     pypy27 = callPackage ./pypy {
             |     ^
          149|       self = __splicedPackages.pypy27;

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/development/interpreters/python/default.nix:148:14:
          147|
          148|     pypy27 = callPackage ./pypy {
             |              ^
          149|       self = __splicedPackages.pypy27;

       … while calling 'callPackageWith'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:240:19:
          239|   callPackageWith =
          240|     autoArgs: fn: args:
             |                   ^
          241|     let

       … while calling a functor (an attribute set with a '__functor' attribute)
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:306:7:
          305|     if missingArgs == { } then
          306|       makeOverridable f allArgs
             |       ^
          307|     # This needs to be an abort so it can't be caught with `builtins.tryEval`,

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/trivial.nix:989:5:
          988|     # TODO: Should we add call-time "type" checking like built in?
          989|     __functor = self: f;
             |     ^
          990|     __functionArgs = args;

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:161:7:
          160|     mirrorArgs (
          161|       origArgs:
             |       ^
          162|       let

       … while evaluating a branch condition
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:173:7:
          172|       in
          173|       if isAttrs result then
             |       ^
          174|         result

       … while calling the 'isAttrs' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:173:10:
          172|       in
          173|       if isAttrs result then
             |          ^
          174|         result

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:163:18:
          162|       let
          163|         result = f origArgs;
             |                  ^
          164|

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/development/interpreters/python/pypy/default.nix:1:1:
            1| {
             | ^
            2|   lib,

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/development/interpreters/python/pypy/default.nix:75:1:
           74| with passthru;
           75| stdenv.mkDerivation rec {
             | ^
           76|   inherit pname version;

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/adapters.nix:37:8:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |        ^
           38|     );

       … while calling anonymous lambda
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/adapters.nix:37:7:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |       ^
           38|     );

       … while calling 'overrideAttrs'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:88:9:
           87|       overrideAttrs =
           88|         f0:
             |         ^
           89|         let

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:132:9:
          131|         in
          132|         makeDerivationExtensible (extends' (lib.toExtension f0) rattrs);
             |         ^
          133|

       … while calling 'makeDerivationExtensible'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:77:5:
           76|   makeDerivationExtensible =
           77|     rattrs:
             |     ^
           78|     let

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:134:22:
          133|
          134|       finalPackage = mkDerivationSimple overrideAttrs args;
             |                      ^
          135|

       … while calling 'mkDerivationSimple'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:711:5:
          710|     # * [package attributes]: https://nixos.org/manual/nix/stable/glossary#package-attribute-set
          711|     {
             |     ^
          712|

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:813:5:
          812|
          813|     extendDerivation validity.handled (
             |     ^
          814|       {

       … while calling 'extendDerivation'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:383:26:
          382|   extendDerivation =
          383|     condition: passthru: drv:
             |                          ^
          384|     let

       … in the left operand of the update (//) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:417:5:
          416|     commonAttrs
          417|     // {
             |     ^
          418|       drvPath =

       … in the left operand of the update (//) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/customisation.nix:388:13:
          387|       commonAttrs =
          388|         drv // (listToAttrs outputsList) // ({ all = map (x: x.value) outputsList; }) // passthru;
             |             ^
          389|

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:885:8:
          884|         passthru
          885|     ) (derivation (derivationArg // optionalAttrs envIsExportable checkedEnv));
             |        ^
          886|

       … in the right operand of the update (//) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:885:34:
          884|         passthru
          885|     ) (derivation (derivationArg // optionalAttrs envIsExportable checkedEnv));
             |                                  ^
          886|

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:885:37:
          884|         passthru
          885|     ) (derivation (derivationArg // optionalAttrs envIsExportable checkedEnv));
             |                                     ^
          886|

       … while calling 'optionalAttrs'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/attrsets.nix:1316:25:
         1315|   */
         1316|   optionalAttrs = cond: as: if cond then as else { };
             |                         ^
         1317|

       … in the condition of the assert statement
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:792:9:
          791|           "When using structured attributes, `env` must be an attribute set of environment variables.";
          792|         assert assertMsg (overlappingNames == [ ])
             |         ^
          793|           "The `env` attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping:\n${errors}";

       … from call site
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/pkgs/stdenv/generic/make-derivation.nix:792:16:
          791|           "When using structured attributes, `env` must be an attribute set of environment variables.";
          792|         assert assertMsg (overlappingNames == [ ])
             |                ^
          793|           "The `env` attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping:\n${errors}";

       … while calling 'assertMsg'
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:50:21:
           49|   # TODO(Profpatsch): add tests that check stderr
           50|   assertMsg = pred: msg: pred || builtins.throw msg;
             |                     ^
           51|

       … in the right operand of the OR (||) operator
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:50:31:
           49|   # TODO(Profpatsch): add tests that check stderr
           50|   assertMsg = pred: msg: pred || builtins.throw msg;
             |                               ^
           51|

       … while calling the 'throw' builtin
         at /nix/store/n8gf8yr0571s1ld4nr6dmk143iv3rvmh-source/lib/asserts.nix:50:34:
           49|   # TODO(Profpatsch): add tests that check stderr
           50|   assertMsg = pred: msg: pred || builtins.throw msg;
             |                                  ^
           51|

       error: The `env` attribute set cannot contain any attributes passed to derivation. The following attributes are overlapping:
         - NIX_CFLAGS_COMPILE: in `env`: " -O2 -pipe"; in derivation arguments: null

@SuperSandro2000
Copy link
Member Author

SuperSandro2000 commented Sep 1, 2025

I fixed some of the NIX_CFLAGS_COMPILE in #439203 but now I run also in the same infinite recursion with php:

Nix Stack Trace

error (ignored): error:
       … while checking the derivation 'checks.x86_64-linux.acme-staging'

       … from call site
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:16:15:
           15| in
           16| lib.mapAttrs (name: value: let
             |               ^
           17|   inherit (value.config.system.build) toplevel;

       … while calling anonymous lambda
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:16:21:
           15| in
           16| lib.mapAttrs (name: value: let
             |                     ^
           17|   inherit (value.config.system.build) toplevel;

       … in the left operand of the update (//) operator
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:18:13:
           17|   inherit (value.config.system.build) toplevel;
           18| in toplevel // {
             |             ^
           19|   inherit (value) config options;

       … from call site
         at /nix/store/9qrkvnhqz5bv3gvcx5jnlbdlbqi5y6ra-source/tests/default.nix:17:39:
           16| lib.mapAttrs (name: value: let
           17|   inherit (value.config.system.build) toplevel;
             |                                       ^
           18| in toplevel // {

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1576:14:
         1575|         zipAttrsWith (
         1576|           n: values:
             |              ^
         1577|           let

       … while calling the 'head' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1581:13:
         1580|           if length values == 1 || pred here (elemAt values 1) (head values) then
         1581|             head values
             |             ^
         1582|           else

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1192:17:
         1191|         mapAttrs (
         1192|           name: value:
             |                 ^
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1193:85:
         1192|           name: value:
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
             |                                                                                     ^
         1194|         );

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:275:71:
          274|           # For definitions that have an associated option
          275|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                                                                       ^
          276|

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1118:7:
         1117|     // {
         1118|       value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |       ^
         1119|       inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.build.toplevel':

       … while evaluating the attribute 'mergedValue'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1166:5:
         1165|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
         1166|     mergedValue =
             |     ^
         1167|       if isDefined then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1167:7:
         1166|     mergedValue =
         1167|       if isDefined then
             |       ^
         1168|         if type.merge ? v2 then

       … while evaluating the attribute 'values'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1160:9:
         1159|       {
         1160|         values = defs''';
             |         ^
         1161|         inherit (defs'') highestPrio;

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1154:11:
         1153|           # Avoid sorting if we don't have to.
         1154|           if any (def: def.value._type or "" == "order") defs''.values then
             |           ^
         1155|             sortProperties defs''.values

       … while calling the 'any' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1154:14:
         1153|           # Avoid sorting if we don't have to.
         1154|           if any (def: def.value._type or "" == "order") defs''.values then
             |              ^
         1155|             sortProperties defs''.values

       … while evaluating the attribute 'values'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1331:7:
         1330|     {
         1331|       values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
             |       ^
         1332|       inherit highestPrio;

       … while calling the 'concatMap' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1331:16:
         1330|     {
         1331|       values = concatMap (def: if getPrio def == highestPrio then [ (strip def) ] else [ ]) defs;
             |                ^
         1332|       inherit highestPrio;

       … while calling the 'concatMap' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1134:17:
         1133|         # Process mkMerge and mkIf properties.
         1134|         defs' = concatMap (
             |                 ^
         1135|           m:

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1135:11:
         1134|         defs' = concatMap (
         1135|           m:
             |           ^
         1136|           map (

       … while calling the 'map' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1136:11:
         1135|           m:
         1136|           map (
             |           ^
         1137|             value:

       … while evaluating definitions from `/nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/top-level.nix':

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1145:80:
         1144|               }
         1145|           ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                ^
         1146|         ) defs;

       … while calling 'dischargeProperties'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1282:5:
         1281|   dischargeProperties =
         1282|     def:
             |     ^
         1283|     if def._type or "" == "merge" then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1283:5:
         1282|     def:
         1283|     if def._type or "" == "merge" then
             |     ^
         1284|       concatMap dischargeProperties def.contents

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:805:21:
          804|             inherit (module) file;
          805|             inherit value;
             |                     ^
          806|           }) module.config

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/top-level.nix:80:26:
           79|   # Handle assertions and warnings
           80|   baseSystemAssertWarn = lib.asserts.checkAssertWarn config.assertions config.warnings baseSystem;
             |                          ^
           81|

       … while calling 'checkAssertWarn'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/asserts.nix:193:27:
          192|   checkAssertWarn =
          193|     assertions: warnings: val:
             |                           ^
          194|     let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/asserts.nix:200:7:
          199|     else
          200|       showWarnings warnings val;
             |       ^
          201|

       … while calling 'showWarnings'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:962:28:
          961|
          962|   showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
             |                            ^
          963|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:962:33:
          961|
          962|   showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
             |                                 ^
          963|

       … while calling 'foldr'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:139:14:
          138|   foldr =
          139|     op: nul: list:
             |              ^
          140|     let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:144:5:
          143|     in
          144|     fold' 0;
             |     ^
          145|

       … while calling 'fold''
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:142:15:
          141|       len = length list;
          142|       fold' = n: if n == len then nul else op (elemAt list n) (fold' (n + 1));
             |               ^
          143|     in

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/top-level.nix:62:16:
           61|   # makes it bootable. See `activatable-system.nix`.
           62|   baseSystem = pkgs.stdenvNoCC.mkDerivation (
             |                ^
           63|     {

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/adapters.nix:37:8:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |        ^
           38|     );

       … while calling 'mkDerivation'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:66:18:
           65|   */
           66|   mkDerivation = fnOrAttrs: makeDerivationExtensible (toFunction fnOrAttrs);
             |                  ^
           67|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:66:29:
           65|   */
           66|   mkDerivation = fnOrAttrs: makeDerivationExtensible (toFunction fnOrAttrs);
             |                             ^
           67|

       … while calling 'makeDerivationExtensible'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:77:5:
           76|   makeDerivationExtensible =
           77|     rattrs:
             |     ^
           78|     let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:138:22:
          137|
          138|       finalPackage = mkDerivationSimple overrideAttrs args;
             |                      ^
          139|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:66:55:
           65|   */
           66|   mkDerivation = fnOrAttrs: makeDerivationExtensible (toFunction fnOrAttrs);
             |                                                       ^
           67|

       … while calling 'toFunction'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1100:16:
         1099|   */
         1100|   toFunction = v: if isFunction v then v else k: v;
             |                ^
         1101|

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1100:19:
         1099|   */
         1100|   toFunction = v: if isFunction v then v else k: v;
             |                   ^
         1101|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1100:22:
         1099|   */
         1100|   toFunction = v: if isFunction v then v else k: v;
             |                      ^
         1101|

       … while calling 'isFunction'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:16:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                ^
         1024|

       … in the left operand of the OR (||) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:41:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                                         ^
         1024|

       … while calling the 'isFunction' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:19:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                   ^
         1024|

       … in the right operand of the update (//) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/top-level.nix:76:5:
           75|     }
           76|     // config.system.systemBuilderArgs
             |     ^
           77|   );

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/top-level.nix:76:8:
           75|     }
           76|     // config.system.systemBuilderArgs
             |        ^
           77|   );

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1192:17:
         1191|         mapAttrs (
         1192|           name: value:
             |                 ^
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1193:85:
         1192|           name: value:
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
             |                                                                                     ^
         1194|         );

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:275:71:
          274|           # For definitions that have an associated option
          275|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                                                                       ^
          276|

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1118:7:
         1117|     // {
         1118|       value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |       ^
         1119|       inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.systemBuilderArgs':

       … while evaluating the attribute 'mergedValue'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1166:5:
         1165|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
         1166|     mergedValue =
             |     ^
         1167|       if isDefined then

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:847:17:
          846|                 headError = checkDefsForError check loc defs;
          847|                 value = mapAttrs (
             |                 ^
          848|                   n: v:

       … while calling the 'mapAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:847:25:
          846|                 headError = checkDefsForError check loc defs;
          847|                 value = mapAttrs (
             |                         ^
          848|                   n: v:

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:841:21:
          840|                     # Meaning it is less lazy
          841|                     filterAttrs (n: v: v.optionalValue ? value) (
             |                     ^
          842|                       zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs)

       … while calling 'filterAttrs'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:667:23:
          666|   */
          667|   filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
             |                       ^
          668|

       … while calling the 'removeAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:667:28:
          666|   */
          667|   filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
             |                            ^
          668|

       … while calling the 'filter' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:667:45:
          666|   */
          667|   filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
             |                                             ^
          668|

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:667:53:
          666|   */
          667|   filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
             |                                                     ^
          668|

       … in the argument of the not operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:667:60:
          666|   */
          667|   filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
             |                                                            ^
          668|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:667:60:
          666|   */
          667|   filterAttrs = pred: set: removeAttrs set (filter (name: !pred name set.${name}) (attrNames set));
             |                                                            ^
          668|

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:841:37:
          840|                     # Meaning it is less lazy
          841|                     filterAttrs (n: v: v.optionalValue ? value) (
             |                                     ^
          842|                       zipAttrsWith (name: defs: mergeDefinitions (loc ++ [ name ]) elemType defs) (pushPositions defs)

       … while evaluating the attribute 'optionalValue'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1227:5:
         1226|
         1227|     optionalValue = if isDefined then { value = mergedValue; } else { };
             |     ^
         1228|   };

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1227:21:
         1226|
         1227|     optionalValue = if isDefined then { value = mergedValue; } else { };
             |                     ^
         1228|   };

       (8 duplicate frames omitted)

       … while evaluating definitions from `/nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activatable-system.nix':

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1145:80:
         1144|               }
         1145|           ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                ^
         1146|         ) defs;

       … while calling 'dischargeProperties'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1282:5:
         1281|   dischargeProperties =
         1282|     def:
             |     ^
         1283|     if def._type or "" == "merge" then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1283:5:
         1282|     def:
         1283|     if def._type or "" == "merge" then
             |     ^
         1284|       concatMap dischargeProperties def.contents

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:791:15:
          790|               inherit (def) file;
          791|               value = v;
             |               ^
          792|             }) def.value

       … while evaluating the attribute 'system.activationScripts.script'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activation-script.nix:172:11:
          171|         // {
          172|           script = systemActivationScript set false;
             |           ^
          173|         };

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activation-script.nix:172:20:
          171|         // {
          172|           script = systemActivationScript set false;
             |                    ^
          173|         };

       … while calling 'systemActivationScript'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activation-script.nix:30:10:
           29|   systemActivationScript =
           30|     set: onlyDry:
             |          ^
           31|     let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activation-script.nix:71:9:
           70|
           71|       ${textClosureMap id (withDrySnippets) (attrNames withDrySnippets)}
             |         ^
           72|

       … while calling 'textClosureMap'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings-with-deps.nix:168:20:
          167|   textClosureMap =
          168|     f: predefined: names:
             |                    ^
          169|     concatStringsSep "\n" (map f (textClosureList predefined names));

       … while calling the 'concatStringsSep' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings-with-deps.nix:169:5:
          168|     f: predefined: names:
          169|     concatStringsSep "\n" (map f (textClosureList predefined names));
             |     ^
          170|

       … while calling 'id'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:40:8:
           39|   */
           40|   id = x: x;
             |        ^
           41|

       … while evaluating the attribute 'text'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activation-script.nix:17:7:
           16|     // {
           17|       text = ''
             |       ^
           18|         #### Activation script snippet ${a}:

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/activation/activation-script.nix:20:11:
           19|         _localstatus=0
           20|         ${v.text}
             |           ^
           21|

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1192:17:
         1191|         mapAttrs (
         1192|           name: value:
             |                 ^
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1193:85:
         1192|           name: value:
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
             |                                                                                     ^
         1194|         );

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:275:71:
          274|           # For definitions that have an associated option
          275|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                                                                       ^
          276|

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1118:7:
         1117|     // {
         1118|       value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |       ^
         1119|       inherit (res.defsFinal') highestPrio;

       … while evaluating the option `system.activationScripts.etc.text':

       (10 duplicate frames omitted)

       … while evaluating definitions from `/nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc-activation.nix':

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1145:80:
         1144|               }
         1145|           ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                ^
         1146|         ) defs;

       … while calling 'dischargeProperties'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1282:5:
         1281|   dischargeProperties =
         1282|     def:
             |     ^
         1283|     if def._type or "" == "merge" then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1283:5:
         1282|     def:
         1283|     if def._type or "" == "merge" then
             |     ^
         1284|       concatMap dischargeProperties def.contents

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:805:21:
          804|             inherit (module) file;
          805|             inherit value;
             |                     ^
          806|           }) module.config

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc-activation.nix:19:9:
           18|         "specialfs"
           19|       ] config.system.build.etcActivationCommands;
             |         ^
           20|     }

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1576:14:
         1575|         zipAttrsWith (
         1576|           n: values:
             |              ^
         1577|           let

       … while calling the 'head' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1581:13:
         1580|           if length values == 1 || pred here (elemAt values 1) (head values) then
         1581|             head values
             |             ^
         1582|           else

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:848:22:
          847|                 value = mapAttrs (
          848|                   n: v:
             |                      ^
          849|                   if lazy then

       … while evaluating the attribute 'optionalValue.value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1227:5:
         1226|
         1227|     optionalValue = if isDefined then { value = mergedValue; } else { };
             |     ^
         1228|   };

       (9 duplicate frames omitted)

       … while evaluating definitions from `/nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc.nix':

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1145:80:
         1144|               }
         1145|           ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                ^
         1146|         ) defs;

       … while calling 'dischargeProperties'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1282:5:
         1281|   dischargeProperties =
         1282|     def:
             |     ^
         1283|     if def._type or "" == "merge" then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1283:5:
         1282|     def:
         1283|     if def._type or "" == "merge" then
             |     ^
         1284|       concatMap dischargeProperties def.contents

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:791:15:
          790|               inherit (def) file;
          791|               value = v;
             |               ^
          792|             }) def.value

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:293:73:
          292|       len = length attrPath;
          293|       atDepth = n: if n == len then value else { ${elemAt attrPath n} = atDepth (n + 1); };
             |                                                                         ^
          294|     in

       … while calling 'atDepth'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:293:17:
          292|       len = length attrPath;
          293|       atDepth = n: if n == len then value else { ${elemAt attrPath n} = atDepth (n + 1); };
             |                 ^
          294|     in

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:805:21:
          804|             inherit (module) file;
          805|             inherit value;
             |                     ^
          806|           }) module.config

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'etc'
         whose name attribute is located at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:538:13

       … while evaluating attribute 'buildCommand' of derivation 'etc'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/trivial-builders/default.nix:80:17:
           79|         enableParallelBuilding = true;
           80|         inherit buildCommand name;
             |                 ^
           81|         passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]);

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc.nix:56:11:
           55|         mkdir -p "$out/etc"
           56|         ${lib.concatMapStringsSep "\n" (
             |           ^
           57|           etcEntry:

       … while calling 'concatMapStringsSep'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:231:13:
          230|   concatMapStringsSep =
          231|     sep: f: list:
             |             ^
          232|     concatStringsSep sep (map f list);

       … while calling the 'concatStringsSep' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:232:5:
          231|     sep: f: list:
          232|     concatStringsSep sep (map f list);
             |     ^
          233|

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc.nix:57:11:
           56|         ${lib.concatMapStringsSep "\n" (
           57|           etcEntry:
             |           ^
           58|           lib.escapeShellArgs [

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc.nix:58:11:
           57|           etcEntry:
           58|           lib.escapeShellArgs [
             |           ^
           59|             "makeEtcEntry"

       … while calling 'concatMapStringsSep'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:231:13:
          230|   concatMapStringsSep =
          231|     sep: f: list:
             |             ^
          232|     concatStringsSep sep (map f list);

       … while calling the 'concatStringsSep' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:232:5:
          231|     sep: f: list:
          232|     concatStringsSep sep (map f list);
             |     ^
          233|

       … while calling 'escapeShellArg'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:1171:5:
         1170|   escapeShellArg =
         1171|     arg:
             |     ^
         1172|     let

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:1175:5:
         1174|     in
         1175|     if match "[[:alnum:],._+:@%/-]+" string == null then
             |     ^
         1176|       "'${replaceString "'" "'\\''" string}'"

       … while calling the 'match' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:1175:8:
         1174|     in
         1175|     if match "[[:alnum:],._+:@%/-]+" string == null then
             |        ^
         1176|       "'${replaceString "'" "'\\''" string}'"

       … while evaluating the second argument passed to builtins.match

       … while calling the 'toString' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/strings.nix:1173:16:
         1172|     let
         1173|       string = toString arg;
             |                ^
         1174|     in

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/modules/system/etc/etc.nix:61:16:
           60|             # Force local source paths to be added to the store
           61|             "${etcEntry.source}"
             |                ^
           62|             etcEntry.target

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1192:17:
         1191|         mapAttrs (
         1192|           name: value:
             |                 ^
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1193:85:
         1192|           name: value:
         1193|           if isAttrs value && cond value then recurse (path ++ [ name ]) value else f (path ++ [ name ]) value
             |                                                                                     ^
         1194|         );

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:275:71:
          274|           # For definitions that have an associated option
          275|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                                                                       ^
          276|

       … while evaluating the attribute 'value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1118:7:
         1117|     // {
         1118|       value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |       ^
         1119|       inherit (res.defsFinal') highestPrio;

       … while evaluating the option `environment.etc.dbus-1.source':

       … while evaluating the attribute 'mergedValue'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1166:5:
         1165|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
         1166|     mergedValue =
             |     ^
         1167|       if isDefined then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1175:14:
         1174|             checkedAndMerged.value
         1175|         else if all (def: type.check def.value) defsFinal then
             |              ^
         1176|           type.merge loc defsFinal

       … while calling the 'all' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1175:17:
         1174|             checkedAndMerged.value
         1175|         else if all (def: type.check def.value) defsFinal then
             |                 ^
         1176|           type.merge loc defsFinal

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1175:22:
         1174|             checkedAndMerged.value
         1175|         else if all (def: type.check def.value) defsFinal then
             |                      ^
         1176|           type.merge loc defsFinal

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1175:27:
         1174|             checkedAndMerged.value
         1175|         else if all (def: type.check def.value) defsFinal then
             |                           ^
         1176|           type.merge loc defsFinal

       … while calling 'check'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:686:15:
          685|             check =
          686|               x:
             |               ^
          687|               let

       … in the right operand of the AND (&&) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:703:15:
          702|               && (inStore == null || inStore == isInStore)
          703|               && (absolute == null || absolute == isAbsolute);
             |               ^
          704|           };

       … in the right operand of the OR (||) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:703:36:
          702|               && (inStore == null || inStore == isInStore)
          703|               && (absolute == null || absolute == isAbsolute);
             |                                    ^
          704|           };

       … while calling the 'substring' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:696:30:
          695|                 );
          696|                 isAbsolute = builtins.substring 0 1 (toString x) == "/";
             |                              ^
          697|                 isExpectedType = (

       … while calling the 'toString' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:696:54:
          695|                 );
          696|                 isAbsolute = builtins.substring 0 1 (toString x) == "/";
             |                                                      ^
          697|                 isExpectedType = (

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'dbus-1'
         whose name attribute is located at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:538:13

       … while evaluating attribute 'serviceDirectories' of derivation 'dbus-1'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/libraries/dbus/make-dbus-conf.nix:19:13:
           18|   {
           19|     inherit serviceDirectories suidHelper apparmor;
             |             ^
           20|     preferLocalBuild = true;

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:741:30:
          740|                 headError = checkDefsForError check loc defs;
          741|                 value = map (x: x.optionalValue.value or x.mergedValue) evals;
             |                              ^
          742|                 valueMeta.list = map (v: v.checkedAndMerged.valueMeta) evals;

       … while evaluating the attribute 'optionalValue.value'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:1227:41:
         1226|
         1227|     optionalValue = if isDefined then { value = mergedValue; } else { };
             |                                         ^
         1228|   };

       (11 duplicate frames omitted)

       … while evaluating derivation 'system-path'
         whose name attribute is located at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:538:13

       … while evaluating attribute 'passAsFile' of derivation 'system-path'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/trivial-builders/default.nix:81:9:
           80|         inherit buildCommand name;
           81|         passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]);
             |         ^
           82|       }

       … while evaluating the attribute 'passAsFile'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:113:9:
          112|         # XXX: The size is somewhat arbitrary
          113|         passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
             |         ^
          114|       }

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:113:22:
          112|         # XXX: The size is somewhat arbitrary
          113|         passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
             |                      ^
          114|       }

       … in the argument of the not operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:113:52:
          112|         # XXX: The size is somewhat arbitrary
          113|         passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
             |                                                    ^
          114|       }

       … while calling the 'lessThan' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:113:52:
          112|         # XXX: The size is somewhat arbitrary
          113|         passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
             |                                                    ^
          114|       }

       … while calling the 'stringLength' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:113:25:
          112|         # XXX: The size is somewhat arbitrary
          113|         passAsFile = if builtins.stringLength pkgs >= 128 * 1024 then [ "pkgs" ] else [ ];
             |                         ^
          114|       }

       … while calling the 'toJSON' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:108:16:
          107|           ;
          108|         pkgs = builtins.toJSON chosenOutputs;
             |                ^
          109|         extraPathsFrom = lib.optional includeClosures (writeClosure pathsForClosure);

       … while evaluating list element at index 73

       … while evaluating attribute 'paths'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:68:7:
           67|     chosenOutputs = map (drv: {
           68|       paths =
             |       ^
           69|         # First add the usual output(s): respect if user has chosen explicitly,

       … while evaluating list element at index 0
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/buildenv/default.nix:68:7:
           67|     chosenOutputs = map (drv: {
           68|       paths =
             |       ^
           69|         # First add the usual output(s): respect if user has chosen explicitly,

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'nixos-configuration-reference-manpage'
         whose name attribute is located at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:538:13

       … while evaluating attribute 'buildCommand' of derivation 'nixos-configuration-reference-manpage'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/build-support/trivial-builders/default.nix:80:17:
           79|         enableParallelBuilding = true;
           80|         inherit buildCommand name;
             |                 ^
           81|         passAsFile = [ "buildCommand" ] ++ (derivationArgs.passAsFile or [ ]);

       … while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:50:17:
           49|     value = commonAttrs // {
           50|       outPath = builtins.getAttr outputName strict;
             |                 ^
           51|       drvPath = strict.drvPath;

       … while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:37:12:
           36|
           37|   strict = derivationStrict drvAttrs;
             |            ^
           38|

       … while evaluating derivation 'options.json'
         whose name attribute is located at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:538:13

       … while evaluating attribute 'options' of derivation 'options.json'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:217:9:
          216|         ];
          217|         options = builtins.toFile "options.json" (
             |         ^
          218|           builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix)

       … while calling the 'toFile' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:217:19:
          216|         ];
          217|         options = builtins.toFile "options.json" (
             |                   ^
          218|           builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix)

       … while evaluating the second argument passed to builtins.toFile

       … while calling the 'unsafeDiscardStringContext' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:218:11:
          217|         options = builtins.toFile "options.json" (
          218|           builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix)
             |           ^
          219|         );

       … while calling the 'toJSON' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:218:48:
          217|         options = builtins.toFile "options.json" (
          218|           builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix)
             |                                                ^
          219|         );

       … while calling the 'listToAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:164:16:
          163|
          164|   optionsNix = builtins.listToAttrs (
             |                ^
          165|     map (o: {

       … while calling the 'map' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:165:5:
          164|   optionsNix = builtins.listToAttrs (
          165|     map (o: {
             |     ^
          166|       name = o.name;

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:117:17:
          116|   filteredOpts = lib.filter (opt: opt.visible && !opt.internal) transformedOpts;
          117|   optionsList = lib.flip map filteredOpts (
             |                 ^
          118|     opt:

       … while calling 'flip'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:306:11:
          305|   flip =
          306|     f: a: b:
             |           ^
          307|     f b a;

       … while calling the 'map' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:307:5:
          306|     f: a: b:
          307|     f b a;
             |     ^
          308|

       … while calling the 'filter' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:116:18:
          115|   transformedOpts = map transformOptions rawOpts;
          116|   filteredOpts = lib.filter (opt: opt.visible && !opt.internal) transformedOpts;
             |                  ^
          117|   optionsList = lib.flip map filteredOpts (

       … while calling the 'map' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:115:21:
          114|   rawOpts = lib.optionAttrSetToDocList options;
          115|   transformedOpts = map transformOptions rawOpts;
             |                     ^
          116|   filteredOpts = lib.filter (opt: opt.visible && !opt.internal) transformedOpts;

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/nixos/lib/make-options-doc/default.nix:114:13:
          113| let
          114|   rawOpts = lib.optionAttrSetToDocList options;
             |             ^
          115|   transformedOpts = map transformOptions rawOpts;

       … while calling 'optionAttrSetToDocList''
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/options.nix:570:8:
          569|   optionAttrSetToDocList' =
          570|     _: options:
             |        ^
          571|     concatMap (

       … while calling the 'concatMap' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/options.nix:571:5:
          570|     _: options:
          571|     concatMap (
             |     ^
          572|       opt:

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/options.nix:572:7:
          571|     concatMap (
          572|       opt:
             |       ^
          573|       let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/options.nix:608:24:
          607|       # builtins.trace opt.loc
          608|       [ docOption ] ++ optionals subOptionsVisible subOptions
             |                        ^
          609|     ) (collect isOption options);

       … while calling 'optionals'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:811:21:
          810|   */
          811|   optionals = cond: elems: if cond then elems else [ ];
             |                     ^
          812|

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/options.nix:603:11:
          602|           in
          603|           if ss != { } then optionAttrSetToDocList' opt.loc ss else [ ];
             |           ^
          604|         subOptionsVisible = docOption.visible && opt.visible or null != "shallow";

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/options.nix:601:18:
          600|           let
          601|             ss = opt.type.getSubOptions opt.loc;
             |                  ^
          602|           in

       … while calling 'getSubOptions'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:1274:13:
         1273|           getSubOptions =
         1274|             prefix:
             |             ^
         1275|             let

       … in the left operand of the update (//) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/types.nix:1287:13:
         1286|             docsEval.options
         1287|             // optionalAttrs (freeformType != null) {
             |             ^
         1288|               # Expose the sub options of the freeform type. Note that the option

       … while evaluating the attribute 'options'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:360:9:
          359|         _type = "configuration";
          360|         options = checked options;
             |         ^
          361|         config = checked (removeAttrs config [ "_module" ]);

       … while calling the 'seq' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:360:19:
          359|         _type = "configuration";
          360|         options = checked options;
             |                   ^
          361|         config = checked (removeAttrs config [ "_module" ]);

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:297:9:
          296|       checkUnmatched =
          297|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |         ^
          298|           let

       … in the left operand of the AND (&&) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:297:72:
          296|       checkUnmatched =
          297|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |                                                                        ^
          298|           let

       … in the left operand of the AND (&&) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:297:33:
          296|       checkUnmatched =
          297|         if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [ ] then
             |                                 ^
          298|           let

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:288:9:
          287|         in
          288|         if declaredConfig._module.freeformType == null then
             |         ^
          289|           declaredConfig

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:275:28:
          274|           # For definitions that have an associated option
          275|           declaredConfig = mapAttrsRecursiveCond (v: !isOption v) (_: v: v.value) options;
             |                            ^
          276|

       … while calling 'mapAttrsRecursiveCond'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1187:14:
         1186|   mapAttrsRecursiveCond =
         1187|     cond: f: set:
             |              ^
         1188|     let

       … while calling the 'mapAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/attrsets.nix:1196:5:
         1195|     in
         1196|     recurse [ ] set;
             |     ^
         1197|

       … while evaluating the attribute 'matchedOptions'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:891:15:
          890|     {
          891|       inherit matchedOptions;
             |               ^
          892|

       … while calling the 'mapAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:881:24:
          880|
          881|       matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
             |                        ^
          882|

       … while calling the 'mapAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:829:23:
          828|
          829|       resultsByName = mapAttrs (
             |                       ^
          830|         name: decls:

       … while calling the 'zipAttrsWith' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:745:21:
          744|       # an attrset 'name' => list of submodules that declare ‘name’.
          745|       declsByName = zipAttrsWith (n: v: v) (
             |                     ^
          746|         map (

       … while calling the 'map' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:746:9:
          745|       declsByName = zipAttrsWith (n: v: v) (
          746|         map (
             |         ^
          747|           module:

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:267:37:
          266|
          267|       merged = mergeModules prefix (reverseList (doCollect { }).modules);
             |                                     ^
          268|

       … while calling 'reverseList'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:1103:5:
         1102|   reverseList =
         1103|     xs:
             |     ^
         1104|     let

       … while calling the 'genList' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:1107:5:
         1106|     in
         1107|     genList (n: elemAt xs (l - n - 1)) l;
             |     ^
         1108|

       … while evaluating the second argument passed to builtins.genList

       … while calling the 'length' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:1105:11:
         1104|     let
         1105|       l = length xs;
             |           ^
         1106|     in

       … while evaluating the attribute 'modules'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:550:7:
          549|     modulesPath: initialModules: args: {
          550|       modules = filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
             |       ^
          551|       graph = toGraph modulesPath (collectStructuredModules unknownModule "" initialModules args);

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:550:17:
          549|     modulesPath: initialModules: args: {
          550|       modules = filterModules modulesPath (collectStructuredModules unknownModule "" initialModules args);
             |                 ^
          551|       graph = toGraph modulesPath (collectStructuredModules unknownModule "" initialModules args);

       … while calling 'filterModules'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:525:9:
          524|         modulesPath:
          525|         { disabled, modules }:
             |         ^
          526|         let

       … while calling the 'map' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:529:9:
          528|         in
          529|         map (attrs: attrs.module) (genericClosure {
             |         ^
          530|           startSet = keyFilter modules;

       … while calling the 'genericClosure' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:529:36:
          528|         in
          529|         map (attrs: attrs.module) (genericClosure {
             |                                    ^
          530|           startSet = keyFilter modules;

       … while calling the 'filter' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:530:22:
          529|         map (attrs: attrs.module) (genericClosure {
          530|           startSet = keyFilter modules;
             |                      ^
          531|           operator = attrs: keyFilter attrs.modules;

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:527:31:
          526|         let
          527|           keyFilter = filter (attrs: !isDisabled modulesPath disabled attrs);
             |                               ^
          528|         in

       … in the argument of the not operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:527:39:
          526|         let
          527|           keyFilter = filter (attrs: !isDisabled modulesPath disabled attrs);
             |                                       ^
          528|         in

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:527:39:
          526|         let
          527|           keyFilter = filter (attrs: !isDisabled modulesPath disabled attrs);
             |                                       ^
          528|         in

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:456:9:
          455|         in
          456|         structuredModule: elem structuredModule.key disabledKeys;
             |         ^
          457|

       … while calling the 'elem' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:456:27:
          455|         in
          456|         structuredModule: elem structuredModule.key disabledKeys;
             |                           ^
          457|

       … while calling the 'concatMap' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:454:26:
          453|
          454|           disabledKeys = concatMap ({ file, disabled }: map (moduleKey file) disabled) disabledList;
             |                          ^
          455|         in

       … while calling the 'concatLists' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:486:24:
          485|           collectResults = modules: {
          486|             disabled = concatLists (catAttrs "disabled" modules);
             |                        ^
          487|             inherit modules;

       … while evaluating the attribute 'disabled'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:486:13:
          485|           collectResults = modules: {
          486|             disabled = concatLists (catAttrs "disabled" modules);
             |             ^
          487|             inherit modules;

       … while calling the 'concatLists' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:486:24:
          485|           collectResults = modules: {
          486|             disabled = concatLists (catAttrs "disabled" modules);
             |                        ^
          487|             inherit modules;

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:504:19:
          503|                 (
          504|                   if module.disabledModules != [ ] then
             |                   ^
          505|                     [

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:495:24:
          494|             let
          495|               module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
             |                        ^
          496|               collectedImports = collectStructuredModules module._file module.key module.imports args;

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:427:11:
          426|         else
          427|           m: m;
             |           ^
          428|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:495:37:
          494|             let
          495|               module = checkModule (loadModule args parentFile "${parentKey}:anon-${toString n}" x);
             |                                     ^
          496|               collectedImports = collectStructuredModules module._file module.key module.imports args;

       … while calling 'loadModule'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:379:42:
          378|       loadModule =
          379|         args: fallbackFile: fallbackKey: m:
             |                                          ^
          380|         if isFunction m then

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:380:9:
          379|         args: fallbackFile: fallbackKey: m:
          380|         if isFunction m then
             |         ^
          381|           unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/modules.nix:380:12:
          379|         args: fallbackFile: fallbackKey: m:
          380|         if isFunction m then
             |            ^
          381|           unifyModuleSyntax fallbackFile fallbackKey (applyModuleArgs fallbackKey m args)

       … while calling 'isFunction'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:16:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                ^
         1024|

       … in the left operand of the OR (||) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:41:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                                         ^
         1024|

       … while calling the 'isFunction' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:19:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                   ^
         1024|

       … while calling the 'elemAt' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/lists.nix:345:43:
          344|   */
          345|   imap1 = f: list: genList (n: f (n + 1) (elemAt list n)) (length list);
             |                                           ^
          346|

       … while evaluating the attribute 'php.services.default'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/top-level/all-packages.nix:6137:3:
         6136|   # Set default PHP interpreter, extensions and packages
         6137|   php = php84;
             |   ^
         6138|   phpExtensions = php.extensions;

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/top-level/all-packages.nix:6142:11:
         6141|   # Import PHP84 interpreter, extensions and packages
         6142|   php84 = callPackage ../development/interpreters/php/8.4.nix {
             |           ^
         6143|     stdenv = if stdenv.cc.isClang then llvmPackages.stdenv else stdenv;

       … while calling 'callPackageWith'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/customisation.nix:259:19:
          258|   callPackageWith =
          259|     autoArgs: fn: args:
             |                   ^
          260|     let

       … while calling a functor (an attribute set with a '__functor' attribute)
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/customisation.nix:316:7:
          315|     if missingArgs == { } then
          316|       makeOverridable f allArgs
             |       ^
          317|     # This needs to be an abort so it can't be caught with `builtins.tryEval`,

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:989:5:
          988|     # TODO: Should we add call-time "type" checking like built in?
          989|     __functor = self: f;
             |     ^
          990|     __functionArgs = args;

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/customisation.nix:161:7:
          160|     mirrorArgs (
          161|       origArgs:
             |       ^
          162|       let

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/customisation.nix:182:7:
          181|       in
          182|       if isAttrs result then
             |       ^
          183|         result

       … while calling the 'isAttrs' builtin
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/customisation.nix:182:10:
          181|       in
          182|       if isAttrs result then
             |          ^
          183|         result

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/customisation.nix:163:18:
          162|       let
          163|         result = f origArgs;
             |                  ^
          164|

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/8.4.nix:1:1:
            1| { callPackage, ... }@_args:
             | ^
            2|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/8.4.nix:4:10:
            3| let
            4|   base = callPackage ./generic.nix (
             |          ^
            5|     _args

       (7 duplicate frames omitted)

       … while calling 'generic'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:6:5:
            5|   generic =
            6|     {
             |     ^
            7|       callPackage,

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:224:5:
          223|     in
          224|     stdenv.mkDerivation (
             |     ^
          225|       finalAttrs:

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/adapters.nix:37:8:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |        ^
           38|     );

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/adapters.nix:36:29:
           35|     withOldMkDerivation old (
           36|       _: mkDerivationSuper: args:
             |                             ^
           37|       (mkDerivationSuper args).overrideAttrs f

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/adapters.nix:37:7:
           36|       _: mkDerivationSuper: args:
           37|       (mkDerivationSuper args).overrideAttrs f
             |       ^
           38|     );

       … while calling 'overrideAttrs'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:384:15:
          383|             overrideAttrs =
          384|               f:
             |               ^
          385|               let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:389:23:
          388|                 );
          389|                 php = generic (args // { phpAttrsOverrides = newPhpAttrsOverrides; });
             |                       ^
          390|               in

       (13130 duplicate frames omitted)

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/stdenv/generic/make-derivation.nix:84:14:
           83|       # An infinite recursion here can be caused by having the attribute names of expression `e` in `.overrideAttrs(finalAttrs: previousAttrs: e)` depend on `finalAttrs`. Only the attribute values of `e` can depend on `finalAttrs`.
           84|       args = rattrs (args // { inherit finalPackage overrideAttrs; });
             |              ^
           85|       #              ^^^^

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:225:7:
          224|     stdenv.mkDerivation (
          225|       finalAttrs:
             |       ^
          226|       let

       … in the right operand of the update (//) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:417:23:
          416|         };
          417|         final = attrs // (lib.toExtension phpAttrsOverrides) final attrs;
             |                       ^
          418|       in

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/pkgs/development/interpreters/php/generic.nix:417:27:
          416|         };
          417|         final = attrs // (lib.toExtension phpAttrsOverrides) final attrs;
             |                           ^
          418|       in

       … while calling anonymous lambda
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:512:14:
          511|     if lib.isFunction f then
          512|       final: prev:
             |              ^
          513|       let

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:518:9:
          517|         # f is (final: prev: { ... })
          518|         f final prev
             |         ^
          519|       else

       … while calling 'composeExtensions'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:335:18:
          334|   composeExtensions =
          335|     f: g: final: prev:
             |                  ^
          336|     let

       … in the left operand of the update (//) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:340:14:
          339|     in
          340|     fApplied // g final prev';
             |              ^
          341|

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:337:18:
          336|     let
          337|       fApplied = f final prev;
             |                  ^
          338|       prev' = prev // fApplied;

       (8196 duplicate frames omitted)

       … while evaluating a branch condition
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:516:7:
          515|       in
          516|       if lib.isFunction fPrev then
             |       ^
          517|         # f is (final: prev: { ... })

       … from call site
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/fixed-points.nix:516:10:
          515|       in
          516|       if lib.isFunction fPrev then
             |          ^
          517|         # f is (final: prev: { ... })

       … while calling 'isFunction'
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:16:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                ^
         1024|

       … in the left operand of the OR (||) operator
         at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:41:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                                         ^
         1024|

       error: stack overflow; max-call-depth exceeded
       at /nix/store/30ab56jg1jlww6pfp8bcb8nmq97n0xcj-source/lib/trivial.nix:1023:19:
         1022|   */
         1023|   isFunction = f: builtins.isFunction f || (f ? __functor && isFunction (f.__functor f));
             |                   ^
         1024|

@SigmaSquadron

This comment was marked as off-topic.

@nixpkgs-ci nixpkgs-ci bot added the 2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md label Mar 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

2.status: stale https://github.com/NixOS/nixpkgs/blob/master/.github/STALE-BOT.md 6.topic: stdenv Standard environment 10.rebuild-darwin: 0 This PR does not cause any packages to rebuild on Darwin. 10.rebuild-linux: 0 This PR does not cause any packages to rebuild on Linux.

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

3 participants