nixos/activation: use eval-config's system argument for nesting
This avoids a possible surprise if the user is using `nixpkgs.system` and `nesting.children`. `nesting.children` is expected to ignore all parent configuration so we shouldn't propagate the user-facing option `nixpkgs.system`. To avoid doing so, we introduce a new internal option for holding the value passed to eval-config.nix, and use that when recursing for nesting.
This commit is contained in:
parent
b83164a049
commit
ce416779bb
@ -41,6 +41,12 @@ let
|
||||
# default to the argument. That way this new default could propagate all
|
||||
# they way through, but has the last priority behind everything else.
|
||||
nixpkgs.system = lib.mkDefault system;
|
||||
|
||||
# Stash the value of the `system` argument. When using `nesting.children`
|
||||
# we want to have the same default value behavior (immediately above)
|
||||
# without any interference from the user's configuration.
|
||||
nixpkgs.initialSystem = system;
|
||||
|
||||
_module.args.pkgs = lib.mkIf (pkgs_ != null) (lib.mkForce pkgs_);
|
||||
};
|
||||
};
|
||||
|
@ -216,6 +216,14 @@ in
|
||||
Ignored when <code>nixpkgs.pkgs</code> is set.
|
||||
'';
|
||||
};
|
||||
|
||||
initialSystem = mkOption {
|
||||
type = types.str;
|
||||
internal = true;
|
||||
description = ''
|
||||
Preserved value of <literal>system</literal> passed to <literal>eval-config.nix</literal>.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
|
@ -15,7 +15,7 @@ let
|
||||
map (childConfig:
|
||||
(import ../../../lib/eval-config.nix {
|
||||
inherit baseModules;
|
||||
system = config.nixpkgs.system;
|
||||
system = config.nixpkgs.initialSystem;
|
||||
modules =
|
||||
(optionals inheritParent modules)
|
||||
++ [ ./no-clone.nix ]
|
||||
|
Loading…
Reference in New Issue
Block a user