diff options
author | Adam Joseph <adam@westernsemico.com> | 2022-10-09 15:25:46 -0700 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-01-11 19:31:52 +0000 |
commit | 0b90e548b5aabea90f01437467467bc73dc61bf1 (patch) | |
tree | 6f5ebcd6a2c35d5f7d1886226a4cda7d72ca8b62 /lib | |
parent | 8e0e5f43f1657088d39896422785535f93cce9fa (diff) |
lib/meta(availableOn): handle missing meta and empty meta.platform
Diffstat (limited to 'lib')
-rw-r--r-- | lib/meta.nix | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/meta.nix b/lib/meta.nix index 893c671b04fa..8f4e7e2c7bf7 100644 --- a/lib/meta.nix +++ b/lib/meta.nix @@ -92,12 +92,15 @@ rec { A package is available on a platform if both - 1. One of `meta.platforms` pattern matches the given platform. + 1. One of `meta.platforms` pattern matches the given + platform, or `meta.platforms` is not present. 2. None of `meta.badPlatforms` pattern matches the given platform. */ availableOn = platform: pkg: - lib.any (platformMatch platform) pkg.meta.platforms && + if !(pkg?meta) then true else + (!(pkg.meta ? platforms) || + lib.any (platformMatch platform) pkg.meta.platforms) && lib.all (elem: !platformMatch platform elem) (pkg.meta.badPlatforms or []); /* Get the corresponding attribute in lib.licenses |