Skip to content

bug: broot has an IFD #6616

@yajo

Description

@yajo

Are you following the right branch?

  • My Nixpkgs and Home Manager versions are in sync

Is there an existing issue for this?

  • I have searched the existing issues

Issue description

This module:

{
  programs.broot.enable = true;
}

Will produce an IFD.

This is a `nix flake show` stack trace for a nixos flake that contains this option in home-manager
error:
       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1057:36:
         1056|     set:
         1057|     listToAttrs (map (attr: f attr set.${attr}) (attrNames set));
             |                                    ^
         1058|

       … while calling anonymous lambda
         at /nix/store/jpa3655zkd34wg386bbl0jw8fmyz78sx-source/lib/default.nix:637:32:
          636|             (withPrefix "nixos-" (
          637|               lib.mapAttrs (_: x: x.config.system.build.toplevel) (
             |                                ^
          638|                 lib.filterAttrs (_: x: x.pkgs.system == system) (inputs.self.nixosConfigurations or { })from call site
         at /nix/store/jpa3655zkd34wg386bbl0jw8fmyz78sx-source/lib/default.nix:637:35:
          636|             (withPrefix "nixos-" (
          637|               lib.mapAttrs (_: x: x.config.system.build.toplevel) (
             |                                   ^
          638|                 lib.filterAttrs (_: x: x.pkgs.system == system) (inputs.self.nixosConfigurations or { })while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1570:24:
         1569|     let f = attrPath:
         1570|       zipAttrsWith (n: values:
             |                        ^
         1571|         let here = attrPath ++ [n]; inwhile calling the 'head' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1574:11:
         1573|         || pred here (elemAt values 1) (head values) then
         1574|           head values
             |           ^
         1575|         elsewhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1204:18:
         1203|         mapAttrs
         1204|           (name: value:
             |                  ^
         1205|             if isAttrs value && cond valuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1207:18:
         1206|             then recurse (path ++ [ name ]) value
         1207|             else f (path ++ [ name ]) value);
             |                  ^
         1208|     inwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:254:72:
          253|           # For definitions that have an associated option
          254|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          255|

       … while evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;while evaluating the option `system.build.toplevel':

       … while evaluating the attribute 'mergedValue'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:851:5:
          850|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          851|     mergedValue =
             |     ^
          852|       if isDefined thenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:852:7:
          851|     mergedValue =
          852|       if isDefined then
             |       ^
          853|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinalwhile evaluating the attribute 'values'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:845:9:
          844|       in {
          845|         values = defs''';
             |         ^
          846|         inherit (defs'') highestPrio;while evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:841:11:
          840|           # Avoid sorting if we don't have to.
          841|           if any (def: def.value._type or "" == "order") defs''.values
             |           ^
          842|           then sortProperties defs''.valueswhile calling the 'any' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:841:14:
          840|           # Avoid sorting if we don't have to.
          841|           if any (def: def.value._type or "" == "order") defs''.values
             |              ^
          842|           then sortProperties defs''.valueswhile evaluating the attribute 'values'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:944:7:
          943|     in {
          944|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |       ^
          945|       inherit highestPrio;while calling the 'concatMap' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:944:16:
          943|     in {
          944|       values = concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs;
             |                ^
          945|       inherit highestPrio;while calling the 'concatMap' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:831:17:
          830|         # Process mkMerge and mkIf properties.
          831|         defs' = concatMap (m:
             |                 ^
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:831:28:
          830|         # Process mkMerge and mkIf properties.
          831|         defs' = concatMap (m:
             |                            ^
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))while calling the 'map' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:832:11:
          831|         defs' = concatMap (m:
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |           ^
          833|         ) defs;while evaluating definitions from `/nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/activation/top-level.nix':

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:832:128:
          831|         defs' = concatMap (m:
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                ^
          833|         ) defs;while calling 'dischargeProperties'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:903:25:
          902|   */
          903|   dischargeProperties = def:
             |                         ^
          904|     if def._type or "" == "merge" thenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:904:5:
          903|   dischargeProperties = def:
          904|     if def._type or "" == "merge" then
             |     ^
          905|       concatMap dischargeProperties def.contentswhile evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:614:53:
          613|                 (n: value:
          614|                   [{ inherit (module) file; inherit value; }]
             |                                                     ^
          615|                 )from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/activation/top-level.nix:74:10:
           73|     then throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"
           74|     else showWarnings config.warnings baseSystem;
             |          ^
           75|

       … while calling 'showWarnings'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/trivial.nix:972:28:
          971|
          972|   showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
             |                            ^
          973|

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/trivial.nix:972:33:
          971|
          972|   showWarnings = warnings: res: lib.foldr (w: x: warn w x) res warnings;
             |                                 ^
          973|

       … while calling 'foldr'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:122:20:
          121|   */
          122|   foldr = op: nul: list:
             |                    ^
          123|     letfrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:129:8:
          128|         else op (elemAt list n) (fold' (n + 1));
          129|     in fold' 0;
             |        ^
          130|

       … while calling 'fold''
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:125:15:
          124|       len = length list;
          125|       fold' = n:
             |               ^
          126|         if n == lenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:126:9:
          125|       fold' = n:
          126|         if n == len
             |         ^
          127|         then nulwhile calling the 'length' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:124:13:
          123|     let
          124|       len = length list;
             |             ^
          125|       fold' = n:

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/activation/top-level.nix:74:23:
           73|     then throw "\nFailed assertions:\n${concatStringsSep "\n" (map (x: "- ${x}") failedAssertions)}"
           74|     else showWarnings config.warnings baseSystem;
             |                       ^
           75|

       … while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1204:18:
         1203|         mapAttrs
         1204|           (name: value:
             |                  ^
         1205|             if isAttrs value && cond valuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1207:18:
         1206|             then recurse (path ++ [ name ]) value
         1207|             else f (path ++ [ name ]) value);
             |                  ^
         1208|     inwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:254:72:
          253|           # For definitions that have an associated option
          254|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          255|

       … while evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;while evaluating the option `warnings':

       (10 duplicate frames omitted)while evaluating definitions from `/nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix':

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:832:128:
          831|         defs' = concatMap (m:
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                ^
          833|         ) defs;while calling 'dischargeProperties'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:903:25:
          902|   */
          903|   dischargeProperties = def:
             |                         ^
          904|     if def._type or "" == "merge" thenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:904:5:
          903|   dischargeProperties = def:
          904|     if def._type or "" == "merge" then
             |     ^
          905|       concatMap dischargeProperties def.contentswhile evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:614:53:
          613|                 (n: value:
          614|                   [{ inherit (module) file; inherit value; }]
             |                                                     ^
          615|                 )while calling the 'concatLists' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix:448:8:
          447|       mkMountNetOnlineWarns = typeStr: defs: lib.concatLists (map (m: mkOneNetOnlineWarn typeStr m.what m) defs);
          448|     in concatLists (
             |        ^
          449|       mapAttrsToListwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1095:10:
         1094|     attrs:
         1095|     map (name: f name attrs.${name}) (attrNames attrs);
             |          ^
         1096|

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1095:16:
         1094|     attrs:
         1095|     map (name: f name attrs.${name}) (attrNames attrs);
             |                ^
         1096|

       … while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix:450:16:
          449|       mapAttrsToList
          450|         (name: service:
             |                ^
          451|           letwhile calling the 'concatLists' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix:456:13:
          455|           in
          456|             concatLists [
             |             ^
          457|               (optional (type == "oneshot" && (restart == "always" || restart == "on-success"))from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix:457:16:
          456|             concatLists [
          457|               (optional (type == "oneshot" && (restart == "always" || restart == "on-success"))
             |                ^
          458|                 "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'"while calling 'optional'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:785:20:
          784|   */
          785|   optional = cond: elem: if cond then [elem] else [];
             |                    ^
          786|

       … while evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/lists.nix:785:26:
          784|   */
          785|   optional = cond: elem: if cond then [elem] else [];
             |                          ^
          786|

       … in the left operand of the AND (&&) operator
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix:457:44:
          456|             concatLists [
          457|               (optional (type == "oneshot" && (restart == "always" || restart == "on-success"))
             |                                            ^
          458|                 "Service '${name}.service' with 'Type=oneshot' cannot have 'Restart=always' or 'Restart=on-success'"from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/nixos/modules/system/boot/systemd.nix:452:20:
          451|           let
          452|             type = service.serviceConfig.Type or "";
             |                    ^
          453|             restart = service.serviceConfig.Restart or "no";while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1204:18:
         1203|         mapAttrs
         1204|           (name: value:
             |                  ^
         1205|             if isAttrs value && cond valuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1207:18:
         1206|             then recurse (path ++ [ name ]) value
         1207|             else f (path ++ [ name ]) value);
             |                  ^
         1208|     inwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:254:72:
          253|           # For definitions that have an associated option
          254|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          255|

       … while evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;while evaluating the option `systemd.services.home-manager-yajo.serviceConfig':

       … while evaluating the attribute 'mergedValue'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:851:5:
          850|     # Type-check the remaining definitions, and merge them. Or throw if no definitions.
          851|     mergedValue =
             |     ^
          852|       if isDefined thenfrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:853:59:
          852|       if isDefined then
          853|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                                                           ^
          854|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;while calling 'merge'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:576:20:
          575|       check = isAttrs;
          576|       merge = loc: defs:
             |                    ^
          577|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:

       … while calling the 'mapAttrs' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:577:9:
          576|       merge = loc: defs:
          577|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
             |         ^
          578|             (mergeDefinitions (loc ++ [name]) elemType defs).optionalValuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:577:35:
          576|       merge = loc: defs:
          577|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
             |                                   ^
          578|             (mergeDefinitions (loc ++ [name]) elemType defs).optionalValuewhile calling 'filterAttrs'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:646:5:
          645|     pred:
          646|     set:
             |     ^
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));while calling the 'removeAttrs' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:647:5:
          646|     set:
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));
             |     ^
          648|

       … while calling the 'filter' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:647:22:
          646|     set:
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));
             |                      ^
          648|

       … while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:647:30:
          646|     set:
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));
             |                              ^
          648|

       … in the argument of the not operator
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:647:38:
          646|     set:
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));
             |                                      ^
          648|

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:647:38:
          646|     set:
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));
             |                                      ^
          648|

       … while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:577:51:
          576|       merge = loc: defs:
          577|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
             |                                                   ^
          578|             (mergeDefinitions (loc ++ [name]) elemType defs).optionalValuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:647:48:
          646|     set:
          647|     removeAttrs set (filter (name: ! pred name set.${name}) (attrNames set));
             |                                                ^
          648|

       … while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:577:86:
          576|       merge = loc: defs:
          577|         mapAttrs (n: v: v.value) (filterAttrs (n: v: v ? value) (zipAttrsWith (name: defs:
             |                                                                                      ^
          578|             (mergeDefinitions (loc ++ [name]) elemType defs).optionalValuewhile evaluating the attribute 'optionalValue'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:863:5:
          862|
          863|     optionalValue =
             |     ^
          864|       if isDefined then { value = mergedValue; }while evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:864:7:
          863|     optionalValue =
          864|       if isDefined then { value = mergedValue; }
             |       ^
          865|       else {};

       (8 duplicate frames omitted)while evaluating definitions from `/nix/store/d103a294l386qn4f51i6nr464f5znsxy-source/modules/nixos/role-functional':

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:832:128:
          831|         defs' = concatMap (m:
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                ^
          833|         ) defs;while calling 'dischargeProperties'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:903:25:
          902|   */
          903|   dischargeProperties = def:
             |                         ^
          904|     if def._type or "" == "merge" thenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:904:5:
          903|   dischargeProperties = def:
          904|     if def._type or "" == "merge" then
             |     ^
          905|       concatMap dischargeProperties def.contentswhile evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:581:60:
          580|           # Push down position info.
          581|           (map (def: mapAttrs (n: v: { inherit (def) file; value = v; }) def.value) defs)));
             |                                                            ^
          582|       emptyValue = { value = {}; };while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:44:19:
           43|       value = commonAttrs // {
           44|         outPath = builtins.getAttr outputName strict;
             |                   ^
           45|         drvPath = strict.drvPath;while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:34:12:
           33|
           34|   strict = derivationStrict drvAttrs;
             |            ^
           35|

       … while evaluating derivation 'home-manager-generation'
         whose name attribute is located at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/stdenv/generic/make-derivation.nix:336:7while evaluating attribute 'buildCommand' of derivation 'home-manager-generation'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/build-support/trivial-builders/default.nix:59:17:
           58|         enableParallelBuilding = true;
           59|         inherit buildCommand name;
             |                 ^
           60|         passAsFile = [ "buildCommand" ]while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:44:19:
           43|       value = commonAttrs // {
           44|         outPath = builtins.getAttr outputName strict;
             |                   ^
           45|         drvPath = strict.drvPath;while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:34:12:
           33|
           34|   strict = derivationStrict drvAttrs;
             |            ^
           35|

       … while evaluating derivation 'home-manager-files'
         whose name attribute is located at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/stdenv/generic/make-derivation.nix:336:7while evaluating attribute 'buildCommand' of derivation 'home-manager-files'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/build-support/trivial-builders/default.nix:59:17:
           58|         enableParallelBuilding = true;
           59|         inherit buildCommand name;
             |                 ^
           60|         passAsFile = [ "buildCommand" ]while calling the 'concatStringsSep' builtin
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:352:12:
          351|         }
          352|       '' + concatStrings (
             |            ^
          353|         mapAttrsToList (n: v: ''

       … while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1095:10:
         1094|     attrs:
         1095|     map (name: f name attrs.${name}) (attrNames attrs);
             |          ^
         1096|

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1095:16:
         1094|     attrs:
         1095|     map (name: f name attrs.${name}) (attrNames attrs);
             |                ^
         1096|

       … while calling anonymous lambda
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:353:28:
          352|       '' + concatStrings (
          353|         mapAttrsToList (n: v: ''
             |                            ^
          354|           insertFile ${

       … from call site
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:355:13:
          354|           insertFile ${
          355|             escapeShellArgs [
             |             ^
          356|               (sourceStorePath v)while calling 'concatMapStringsSep'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/strings.nix:232:5:
          231|     f:
          232|     list: concatStringsSep sep (map f list);
             |     ^
          233|

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

       … while calling 'escapeShellArg'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/strings.nix:1056:20:
         1055|   */
         1056|   escapeShellArg = arg:
             |                    ^
         1057|     letwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/strings.nix:1060:7:
         1059|     in
         1060|       if match "[[:alnum:],._+:@%/-]+" string == null
             |       ^
         1061|       then "'${replaceStrings ["'"] ["'\\''"] string}'"

       … while calling the 'match' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/strings.nix:1060:10:
         1059|     in
         1060|       if match "[[:alnum:],._+:@%/-]+" string == null
             |          ^
         1061|       then "'${replaceStrings ["'"] ["'\\''"] string}'"

       … while evaluating the second argument passed to builtins.matchwhile calling the 'toString' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/strings.nix:1058:16:
         1057|     let
         1058|       string = toString arg;
             |                ^
         1059|     infrom call site
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:356:16:
          355|             escapeShellArgs [
          356|               (sourceStorePath v)
             |                ^
          357|               v.targetwhile calling 'sourceStorePath'
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:15:21:
           14|
           15|   sourceStorePath = file:
             |                     ^
           16|     letwhile evaluating a branch condition
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:20:7:
           19|     in
           20|       if builtins.hasContext sourcePath
             |       ^
           21|       then file.sourcewhile calling the 'hasContext' builtin
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:20:10:
           19|     in
           20|       if builtins.hasContext sourcePath
             |          ^
           21|       then file.sourcewhile evaluating the argument passed to builtins.hasContextwhile calling the 'toString' builtin
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:17:20:
           16|     let
           17|       sourcePath = toString file.source;
             |                    ^
           18|       sourceName = config.lib.strings.storeFileName (baseNameOf sourcePath);from call site
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/files.nix:17:29:
           16|     let
           17|       sourcePath = toString file.source;
             |                             ^
           18|       sourceName = config.lib.strings.storeFileName (baseNameOf sourcePath);while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1204:18:
         1203|         mapAttrs
         1204|           (name: value:
             |                  ^
         1205|             if isAttrs value && cond valuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1207:18:
         1206|             then recurse (path ++ [ name ]) value
         1207|             else f (path ++ [ name ]) value);
             |                  ^
         1208|     inwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:254:72:
          253|           # For definitions that have an associated option
          254|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          255|

       … while evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;while evaluating the option `home-manager.users.yajo.home.file."/home/yajo/.config/broot".source':

       (10 duplicate frames omitted)while evaluating definitions from `/nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/misc/xdg.nix':

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:832:128:
          831|         defs' = concatMap (m:
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                ^
          833|         ) defs;while calling 'dischargeProperties'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:903:25:
          902|   */
          903|   dischargeProperties = def:
             |                         ^
          904|     if def._type or "" == "merge" thenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:904:5:
          903|   dischargeProperties = def:
          904|     if def._type or "" == "merge" then
             |     ^
          905|       concatMap dischargeProperties def.contentswhile evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:614:53:
          613|                 (n: value:
          614|                   [{ inherit (module) file; inherit value; }]
             |                                                     ^
          615|                 )from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:614:53:
          613|                 (n: value:
          614|                   [{ inherit (module) file; inherit value; }]
             |                                                     ^
          615|                 )while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1204:18:
         1203|         mapAttrs
         1204|           (name: value:
             |                  ^
         1205|             if isAttrs value && cond valuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1207:18:
         1206|             then recurse (path ++ [ name ]) value
         1207|             else f (path ++ [ name ]) value);
             |                  ^
         1208|     inwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:254:72:
          253|           # For definitions that have an associated option
          254|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          255|

       … while evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;while evaluating the option `home-manager.users.yajo.xdg.configFile.broot.source':

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

       … while evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:853:9:
          852|       if isDefined then
          853|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |         ^
          854|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;while calling the 'all' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:853:12:
          852|       if isDefined then
          853|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |            ^
          854|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;while calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:853:17:
          852|       if isDefined then
          853|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                 ^
          854|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:853:22:
          852|       if isDefined then
          853|         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
             |                      ^
          854|         else let allInvalid = filter (def: ! type.check def.value) defsFinal;while calling 'check'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:528:15:
          527|       descriptionClass = "noun";
          528|       check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             |               ^
          529|       merge = mergeEqualOption;in the right operand of the AND (&&) operator
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:528:33:
          527|       descriptionClass = "noun";
          528|       check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             |                                 ^
          529|       merge = mergeEqualOption;while calling the 'substring' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:528:36:
          527|       descriptionClass = "noun";
          528|       check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             |                                    ^
          529|       merge = mergeEqualOption;while calling the 'toString' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/types.nix:528:60:
          527|       descriptionClass = "noun";
          528|       check = x: isStringLike x && builtins.substring 0 1 (toString x) == "/";
             |                                                            ^
          529|       merge = mergeEqualOption;while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:44:19:
           43|       value = commonAttrs // {
           44|         outPath = builtins.getAttr outputName strict;
             |                   ^
           45|         drvPath = strict.drvPath;while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:34:12:
           33|
           34|   strict = derivationStrict drvAttrs;
             |            ^
           35|

       … while evaluating derivation 'xdg.configFile.broot'
         whose name attribute is located at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/stdenv/generic/make-derivation.nix:336:7while evaluating attribute 'buildCommand' of derivation 'xdg.configFile.broot'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/build-support/trivial-builders/default.nix:59:17:
           58|         enableParallelBuilding = true;
           59|         inherit buildCommand name;
             |                 ^
           60|         passAsFile = [ "buildCommand" ]while calling the 'getAttr' builtin
         at <nix/derivation-internal.nix>:44:19:
           43|       value = commonAttrs // {
           44|         outPath = builtins.getAttr outputName strict;
             |                   ^
           45|         drvPath = strict.drvPath;while calling the 'derivationStrict' builtin
         at <nix/derivation-internal.nix>:34:12:
           33|
           34|   strict = derivationStrict drvAttrs;
             |            ^
           35|

       … while evaluating derivation 'broot-config'
         whose name attribute is located at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/stdenv/generic/make-derivation.nix:336:7while evaluating attribute 'value' of derivation 'broot-config'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/pkgs-lib/formats.nix:298:7:
          297|       nativeBuildInputs = [ remarshal ];
          298|       value = builtins.toJSON value;
             |       ^
          299|       passAsFile = [ "value" ];while calling the 'toJSON' builtin
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/pkgs/pkgs-lib/formats.nix:298:15:
          297|       nativeBuildInputs = [ remarshal ];
          298|       value = builtins.toJSON value;
             |               ^
          299|       passAsFile = [ "value" ];from call site
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/programs/broot.nix:220:48:
          219|           ln -s ${
          220|             tomlFormat.generate "broot-config" cfg.settings
             |                                                ^
          221|           } $out/conf.tomlwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1204:18:
         1203|         mapAttrs
         1204|           (name: value:
             |                  ^
         1205|             if isAttrs value && cond valuefrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/attrsets.nix:1207:18:
         1206|             then recurse (path ++ [ name ]) value
         1207|             else f (path ++ [ name ]) value);
             |                  ^
         1208|     inwhile calling anonymous lambda
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:254:72:
          253|           # For definitions that have an associated option
          254|           declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
             |                                                                        ^
          255|

       … while evaluating the attribute 'value'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:816:9:
          815|     in warnDeprecation opt //
          816|       { value = addErrorContext "while evaluating the option `${showOption loc}':" value;
             |         ^
          817|         inherit (res.defsFinal') highestPrio;while evaluating the option `home-manager.users.yajo.programs.broot.settings':

       (10 duplicate frames omitted)while evaluating definitions from `/nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/programs/broot.nix':

       … from call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:832:128:
          831|         defs' = concatMap (m:
          832|           map (value: { inherit (m) file; inherit value; }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
             |                                                                                                                                ^
          833|         ) defs;while calling 'dischargeProperties'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:903:25:
          902|   */
          903|   dischargeProperties = def:
             |                         ^
          904|     if def._type or "" == "merge" thenfrom call site
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:909:11:
          908|         if def.condition then
          909|           dischargeProperties def.content
             |           ^
          910|         elsewhile calling 'dischargeProperties'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:903:25:
          902|   */
          903|   dischargeProperties = def:
             |                         ^
          904|     if def._type or "" == "merge" thenwhile evaluating a branch condition
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:904:5:
          903|   dischargeProperties = def:
          904|     if def._type or "" == "merge" then
             |     ^
          905|       concatMap dischargeProperties def.contentswhile evaluating the attribute 'content'
         at /nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source/lib/modules.nix:1008:25:
         1007|     { _type = "if";
         1008|       inherit condition content;
             |                         ^
         1009|     };while calling the 'fromJSON' builtin
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/programs/broot.nix:229:31:
          228|
          229|     programs.broot.settings = builtins.fromJSON (builtins.readFile
             |                               ^
          230|       (pkgs.runCommand "default-conf.json" {while evaluating the first argument passed to builtins.fromJSONwhile calling the 'readFile' builtin
         at /nix/store/jn3ciar09jyfh2q713vpkh6dwxmmgbnw-source/modules/programs/broot.nix:229:50:
          228|
          229|     programs.broot.settings = builtins.fromJSON (builtins.readFile
             |                                                  ^
          230|       (pkgs.runCommand "default-conf.json" {while realising the context of path '/nix/store/w7s13dhk6a1d2bn6c43ryaqcjmjd7zax-default-conf.json'

       error: cannot build '/nix/store/z4rplahcpcxss6gifa17d2x7slg68gi3-default-conf.json.drv^out' during evaluation because the option 'allow-import-from-derivation' is disabled

Maintainer CC

@aheaume @dermetfan

System information

- system: `"x86_64-linux"`
 - host os: `Linux 6.12.10-zen1, NixOS, 24.11 (Vicuna), 24.11.20250304.6af28b8`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.24.12`
 - nixpkgs: `/nix/store/cdjqlnn7kx4hfmxkry9yjfdvqp2pradh-source`

@moduon MT-9339

Metadata

Metadata

Labels

bugtriageIssues or feature request that have not been triaged yet

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions