summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorJohn Ericson <Ericson2314@yahoo.com>2018-03-19 20:12:50 -0400
committerGitHub <noreply@github.com>2018-03-19 20:12:50 -0400
commit3c331bff5b1c00a2c6d24f889b684d7331220b5b (patch)
tree97721246695f6039d5592b86cb65ed264be1c9c5 /pkgs
parente8fe2e15489665ac02c3702763b9dcd817beca13 (diff)
parente547bd0dc419cdbe2e8d8440224b252f723590ab (diff)
downloadnixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.tar
nixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.tar.gz
nixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.tar.bz2
nixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.tar.lz
nixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.tar.xz
nixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.tar.zst
nixlib-3c331bff5b1c00a2c6d24f889b684d7331220b5b.zip
Merge pull request #37395 from obsidiansystems/lib-meta-platform
lib: Factor in tiny bit of `meta.platform` checking
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/stdenv/generic/check-meta.nix6
-rw-r--r--pkgs/top-level/release-lib.nix16
2 files changed, 7 insertions, 15 deletions
diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix
index 4774d7602437..113b95f3ab00 100644
--- a/pkgs/stdenv/generic/check-meta.nix
+++ b/pkgs/stdenv/generic/check-meta.nix
@@ -173,10 +173,8 @@ let
     else "key '${k}' is unrecognized; expected one of: \n\t      [${lib.concatMapStringsSep ", " (x: "'${x}'") (lib.attrNames metaTypes)}]";
   checkMeta = meta: if shouldCheckMeta then lib.remove null (lib.mapAttrsToList checkMetaAttr meta) else [];
 
-  checkPlatform = attrs: let
-      raw = attrs.meta.platforms;
-      uniform = map (x: if builtins.isString x then { system = x; } else { parsed = x; }) raw;
-    in lib.any (pat: lib.matchAttrs pat hostPlatform) uniform;
+  checkPlatform = attrs:
+    lib.any (lib.meta.platformMatch hostPlatform) attrs.meta.platforms;
 
   # Check if a derivation is valid, that is whether it passes checks for
   # e.g brokenness or license.
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index e377ca30f3ac..dbeb13d4bd31 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -98,18 +98,12 @@ rec {
   packagePlatforms = mapAttrs (name: value:
     let res = builtins.tryEval (
       if isDerivation value then
-        # TODO(@Ericson2314) deduplicate with `checkPlatform` in
-        # `pkgs/stdenv/generic/check-meta.nix`.
         value.meta.hydraPlatforms or (let
-            raw = value.meta.platforms or [ "x86_64-linux" ];
-            toPattern = x: if builtins.isString x
-                           then { system = x; }
-                           else { parsed = x; };
-            uniform = map toPattern raw;
-            pred = hostPlatform:
-              lib.any (pat: lib.matchAttrs pat hostPlatform) uniform;
-            pred' = system: pred (lib.systems.elaborate { inherit system; });
-         in lib.filter pred' supportedSystems)
+            linuxDefaulted = value.meta.platforms or [ "x86_64-linux" ];
+            pred = system: lib.any
+              (lib.meta.platformMatch (lib.systems.elaborate { inherit system; }))
+              linuxDefaulted;
+          in lib.filter pred supportedSystems)
       else if value.recurseForDerivations or false || value.recurseForRelease or false then
         packagePlatforms value
       else