diff options
author | John Ericson <John.Ericson@Obsidian.Systems> | 2018-03-19 18:03:46 -0400 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2018-03-19 19:29:16 -0400 |
commit | e547bd0dc419cdbe2e8d8440224b252f723590ab (patch) | |
tree | 56bcf02f80daba865e1aa7e5c9cf9b65ad21a62d /pkgs/top-level/release-lib.nix | |
parent | eae19f3c28503a8623b0fee10bfb0b3322122637 (diff) | |
download | nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.tar nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.tar.gz nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.tar.bz2 nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.tar.lz nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.tar.xz nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.tar.zst nixpkgs-e547bd0dc419cdbe2e8d8440224b252f723590ab.zip |
lib: Factor in tiny bit of `meta.platform` checking
I need it in stdenv and release-lib, so that seems motivation enough.
Diffstat (limited to 'pkgs/top-level/release-lib.nix')
-rw-r--r-- | pkgs/top-level/release-lib.nix | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index e377ca30f3a..dbeb13d4bd3 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 |