summary refs log tree commit diff
path: root/nixos/modules/misc
diff options
context:
space:
mode:
authorRobert Hensing <robert@roberthensing.nl>2023-06-16 21:45:09 +0200
committerRobert Hensing <robert@roberthensing.nl>2023-06-16 22:08:16 +0200
commit8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d (patch)
treecf11b02693f255776261e0d632276cde32272b88 /nixos/modules/misc
parent36ea2bbfe81ccf1118fd0ef66b13868fa3cc27e4 (diff)
downloadnixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.tar
nixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.tar.gz
nixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.tar.bz2
nixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.tar.lz
nixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.tar.xz
nixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.tar.zst
nixpkgs-8f31bff7940ed8d8d3e250e6ab7e7bc5b6160f1d.zip
nixos/nixpkgs: Don't check when _module.args.pkgs is set
Diffstat (limited to 'nixos/modules/misc')
-rw-r--r--nixos/modules/misc/nixpkgs.nix17
1 files changed, 11 insertions, 6 deletions
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index 8a20e31d513..f9d8bccea28 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -55,11 +55,6 @@ let
     description = "An evaluation of Nixpkgs; the top level attribute set of packages";
   };
 
-  # 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;
@@ -348,7 +343,17 @@ in
           finalPkgs.__splicedPackages;
     };
 
-    assertions = [
+    assertions = let
+      # Whether `pkgs` was constructed by this module. This is false when any of
+      # nixpkgs.pkgs or _module.args.pkgs is set.
+      constructedByMe =
+        # We set it with default priority and it can not be merged, so if the
+        # pkgs module argument has that priority, it's from us.
+        (lib.modules.mergeAttrDefinitionsWithPrio options._module.args).pkgs.highestPrio
+          == lib.modules.defaultOverridePriority
+        # Although, if nixpkgs.pkgs is set, we did forward it, but we did not construct it.
+          && !opt.pkgs.isDefined;
+    in [
       (
         let
           nixosExpectedSystem =