diff options
author | Bernardo Meurer <bernardo@meurer.org> | 2022-10-20 09:10:29 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-20 09:10:29 -0400 |
commit | d473597e332a0bf83f826192684dad128ced147f (patch) | |
tree | c8601e5c0de466bd94467c144acabffc98157aae /nixos | |
parent | 2521de4cc454996affe809d65c295f333a515810 (diff) | |
parent | 1e9864c85ebe6cf2fcc4dd0a7e5307a491ab549b (diff) |
Merge pull request #196904 from hercules-ci/nixos-nixpkgs-only-error-when-used
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/misc/nixpkgs.nix | 7 | ||||
-rw-r--r-- | nixos/modules/misc/nixpkgs/test.nix | 6 |
2 files changed, 12 insertions, 1 deletions
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix index e8becb6bf8cc7..5bd7eb1408b2a 100644 --- a/nixos/modules/misc/nixpkgs.nix +++ b/nixos/modules/misc/nixpkgs.nix @@ -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 diff --git a/nixos/modules/misc/nixpkgs/test.nix b/nixos/modules/misc/nixpkgs/test.nix index 9e8851707f8fc..a6d8877ae0700 100644 --- a/nixos/modules/misc/nixpkgs/test.nix +++ b/nixos/modules/misc/nixpkgs/test.nix @@ -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; } |