nixos/nixpkgs: Only error when nixpkgs options are actually used
This commit is contained in:
parent
028b21a597
commit
1e9864c85e
2 changed files with 12 additions and 1 deletions
|
@ -55,6 +55,11 @@ let
|
|||
check = builtins.isAttrs;
|
||||
};
|
||||
|
||||
# Whether `pkgs` was constructed by this module - not if nixpkgs.pkgs or
|
||||
# _module.args.pkgs is set. However, determining whether _module.args.pkgs
|
||||
# is defined elsewhere does not seem feasible.
|
||||
constructedByMe = !opt.pkgs.isDefined;
|
||||
|
||||
hasBuildPlatform = opt.buildPlatform.highestPrio < (mkOptionDefault {}).priority;
|
||||
hasHostPlatform = opt.hostPlatform.isDefined;
|
||||
hasPlatform = hasHostPlatform || hasBuildPlatform;
|
||||
|
@ -358,7 +363,7 @@ in
|
|||
}
|
||||
)
|
||||
{
|
||||
assertion = hasPlatform -> legacyOptionsDefined == [];
|
||||
assertion = constructedByMe -> hasPlatform -> legacyOptionsDefined == [];
|
||||
message = ''
|
||||
Your system configures nixpkgs with the platform parameter${optionalString hasBuildPlatform "s"}:
|
||||
${hostPlatformLine
|
||||
|
|
|
@ -59,5 +59,11 @@ lib.recurseIntoAttrs {
|
|||
For a future proof system configuration, we recommend to remove
|
||||
the legacy definitions.
|
||||
''];
|
||||
assert getErrors {
|
||||
nixpkgs.localSystem = pkgs.stdenv.hostPlatform;
|
||||
nixpkgs.hostPlatform = pkgs.stdenv.hostPlatform;
|
||||
nixpkgs.pkgs = pkgs;
|
||||
} == [];
|
||||
|
||||
pkgs.emptyFile;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue