Closed
Description
Expected Behavior
Following the steps listed in the start guide I should not get an error
Current Behavior
infinite recursion encountered
error: infinite recursion encountered
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:585:9:
584| in warnDeprecation opt //
585| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
586| inherit (res.defsFinal') highestPrio;
Possible Solution
noidea just reporting
Steps to Reproduce
- nix-shell -p cachix --run "cachix use nrdxp"
- nix-shell https://github.com/divnix/devos/archive/main.tar.gz -A shell --run "bud get main"
- cd devos
- nix-shell
infinite recursion error
Context
Trying to start a new config (no existing state should be causing the issue, right?)
Your Environment
nix 2.4
--show-trace full output
error: infinite recursion encountered
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:585:9:
584| in warnDeprecation opt //
585| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
586| inherit (res.defsFinal') highestPrio;
… while evaluating the attribute 'value'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:585:9:
584| in warnDeprecation opt //
585| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
586| inherit (res.defsFinal') highestPrio;
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:171:72:
170| # For definitions that have an associated option
171| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
| ^
172|
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:304:20:
303| then recurse (path ++ [name]) value
304| else f (path ++ [name]) value;
| ^
305| in mapAttrs g set;
… while evaluating 'g'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:301:19:
300| g =
301| name: value:
| ^
302| if isAttrs value && cond value
… from call site
… while evaluating the attribute 'checks'
at /nix/store/nvkkhnbjmghwl4d2sbr4s8qpv5fg5i9k-source/src/mkFlake/outputs-builder.nix:64:3:
63|
64| checks =
| ^
65| (
… while evaluating anonymous lambda
at /nix/store/zzp9cqzfqmsqxkxbz3k17q5kp5n48xsv-source/flake.nix:34:20:
33| lhs // mapAttrs
34| (name: value:
| ^
35| if isAttrs value then lhs.${name} or { } // value
… from call site
… while evaluating 'id'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/trivial.nix:14:5:
13| # The value to return
14| x: x;
| ^
15|
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:217:47:
216| let
217| evalNext = x: mapAny (depth + 1) (transform (depth + 1) x);
| ^
218| in
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:215:40:
214| else id;
215| mapAny = with builtins; depth: v:
| ^
216| let
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:217:27:
216| let
217| evalNext = x: mapAny (depth + 1) (transform (depth + 1) x);
| ^
218| in
… while evaluating 'evalNext'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:217:24:
216| let
217| evalNext = x: mapAny (depth + 1) (transform (depth + 1) x);
| ^
218| in
… from call site
… while evaluating 'go'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:237:18:
236| let
237| go = indent: v: with builtins;
| ^
238| let isPath = v: typeOf v == "path";
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:282:57:
281| (name: value:
282| "${libStr.escapeNixIdentifier name} = ${go (indent + " ") value};") v)
| ^
283| + outroSpace + "}"
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:281:22:
280| + libStr.concatStringsSep introSpace (libAttr.mapAttrsToList
281| (name: value:
| ^
282| "${libStr.escapeNixIdentifier name} = ${go (indent + " ") value};") v)
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:259:16:
258| mapAttrsToList = f: attrs:
259| map (name: f name attrs.${name}) (attrNames attrs);
| ^
260|
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:259:10:
258| mapAttrsToList = f: attrs:
259| map (name: f name attrs.${name}) (attrNames attrs);
| ^
260|
… from call site
… while evaluating 'go'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:237:18:
236| let
237| go = indent: v: with builtins;
| ^
238| let isPath = v: typeOf v == "path";
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:282:57:
281| (name: value:
282| "${libStr.escapeNixIdentifier name} = ${go (indent + " ") value};") v)
| ^
283| + outroSpace + "}"
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:281:22:
280| + libStr.concatStringsSep introSpace (libAttr.mapAttrsToList
281| (name: value:
| ^
282| "${libStr.escapeNixIdentifier name} = ${go (indent + " ") value};") v)
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:259:16:
258| mapAttrsToList = f: attrs:
259| map (name: f name attrs.${name}) (attrNames attrs);
| ^
260|
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:259:10:
258| mapAttrsToList = f: attrs:
259| map (name: f name attrs.${name}) (attrNames attrs);
| ^
260|
… from call site
… while evaluating 'go'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/generators.nix:237:18:
236| let
237| go = indent: v: with builtins;
| ^
238| let isPath = v: typeOf v == "path";
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/options.nix:269:10:
268| prettyEval = builtins.tryEval
269| (lib.generators.toPretty { }
| ^
270| (lib.generators.withRecursion { depthLimit = 10; throwOnDepthLimit = false; } def.value));
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/options.nix:265:38:
264|
265| showDefs = defs: concatMapStrings (def:
| ^
266| let
… from call site
… while evaluating 'concatMapStrings'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/strings.nix:53:25:
52| */
53| concatMapStrings = f: list: concatStrings (map f list);
| ^
54|
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/options.nix:265:20:
264|
265| showDefs = defs: concatMapStrings (def:
| ^
266| let
… while evaluating 'showDefs'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/options.nix:265:14:
264|
265| showDefs = defs: concatMapStrings (def:
| ^
266| let
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:621:121:
620| else let allInvalid = filter (def: ! type.check def.value) defsFinal;
621| in throw "A definition for option `${showOption loc}' is not of type `${type.description}'. Definition values:${showDefs allInvalid}"
| ^
622| else
… while evaluating the attribute 'mergedValue'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:617:5:
616| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
617| mergedValue =
| ^
618| if isDefined then
… while evaluating the option `self':
… while evaluating the attribute 'value'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:585:9:
584| in warnDeprecation opt //
585| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
586| inherit (res.defsFinal') highestPrio;
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:171:72:
170| # For definitions that have an associated option
171| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
| ^
172|
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:304:20:
303| then recurse (path ++ [name]) value
304| else f (path ++ [name]) value;
| ^
305| in mapAttrs g set;
… while evaluating 'g'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:301:19:
300| g =
301| name: value:
| ^
302| if isAttrs value && cond value
… from call site
… while evaluating the attribute 'default'
at /nix/store/nvkkhnbjmghwl4d2sbr4s8qpv5fg5i9k-source/src/mkFlake/options.nix:258:7:
257| type = flakeType;
258| default = config.self.inputs.${name};
| ^
259| defaultText = "config.self.inputs.<name>";
… while evaluating the attribute 'value.content'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:768:14:
767| { _type = "override";
768| inherit priority content;
| ^
769| };
… while evaluating the attribute 'value._type'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:708:73:
707| highestPrio = foldl' (prio: def: min (getPrio def) prio) 9999 defs;
708| strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def;
| ^
709| in {
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:607:19:
606| # Avoid sorting if we don't have to.
607| if any (def: def.value._type or "" == "order") defs''.values
| ^
608| then sortProperties defs''.values
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:607:14:
606| # Avoid sorting if we don't have to.
607| if any (def: def.value._type or "" == "order") defs''.values
| ^
608| then sortProperties defs''.values
… while evaluating the attribute 'values'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:611:9:
610| in {
611| values = defs''';
| ^
612| inherit (defs'') highestPrio;
… while evaluating the attribute 'mergedValue'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:617:5:
616| # Type-check the remaining definitions, and merge them. Or throw if no definitions.
617| mergedValue =
| ^
618| if isDefined then
… while evaluating the option `channels.nixos.input':
… while evaluating the attribute 'value'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:585:9:
584| in warnDeprecation opt //
585| { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
| ^
586| inherit (res.defsFinal') highestPrio;
… while evaluating anonymous lambda
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/modules.nix:171:72:
170| # For definitions that have an associated option
171| declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
| ^
172|
… from call site
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:304:20:
303| then recurse (path ++ [name]) value
304| else f (path ++ [name]) value;
| ^
305| in mapAttrs g set;
… while evaluating 'g'
at /nix/store/bxapqbai4fnwm7297y02m9gjhz9w959n-source/lib/attrsets.nix:301:19:
300| g =
301| name: value:
| ^
302| if isAttrs value && cond value
… from call site
… while evaluating 'patchChannel'
at /nix/store/zzp9cqzfqmsqxkxbz3k17q5kp5n48xsv-source/flake.nix:41:41:
40|
41| patchChannel = system: channel: patches:
| ^
42| if patches == [ ] then channel else
… from call site
at /nix/store/zzp9cqzfqmsqxkxbz3k17q5kp5n48xsv-source/lib/mkFlake.nix:211:47:
210| let
211| importChannel = name: value: (import (patchChannel system value.input (value.patches or [ ])) {
| ^
212| inherit system;
… while evaluating 'importChannel'
at /nix/store/zzp9cqzfqmsqxkxbz3k17q5kp5n48xsv-source/lib/mkFlake.nix:211:31:
210| let
211| importChannel = name: value: (import (patchChannel system value.input (value.patches or [ ])) {
| ^
212| inherit system;
… from call site
… while evaluating the attribute 'shell'
at /nix/store/497ak1gmjg2zpd52ivbzcbq0gp9rapiv-source/modules/default.nix:23:3:
22|
23| shell = module.config.devshell.shell;
| ^
24| }
… while evaluating the attribute 'devShell'
at /nix/store/nvkkhnbjmghwl4d2sbr4s8qpv5fg5i9k-source/src/mkFlake/outputs-builder.nix:51:3:
50|
51| devShell =
| ^
52| let
… while evaluating anonymous lambda
at /nix/store/zzp9cqzfqmsqxkxbz3k17q5kp5n48xsv-source/flake.nix:34:20:
33| lhs // mapAttrs
34| (name: value:
| ^
35| if isAttrs value then lhs.${name} or { } // value
… from call site
… while evaluating the attribute 'devShell.x86_64-linux'
at /nix/store/qcvnd2dsa5a3h4gq8x5x7hds6z85i4dw-source/default.nix:103:26:
102| then (pushDownSystem system (attrs.hydraJobs or {}) ret.hydraJobs)
103| else { ${system} = ret.${key}; };
| ^
104| in attrs //