summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2022-10-09 15:25:46 -0700
committerAlyssa Ross <hi@alyssa.is>2023-01-11 19:31:52 +0000
commit0b90e548b5aabea90f01437467467bc73dc61bf1 (patch)
tree6f5ebcd6a2c35d5f7d1886226a4cda7d72ca8b62 /lib
parent8e0e5f43f1657088d39896422785535f93cce9fa (diff)
lib/meta(availableOn): handle missing meta and empty meta.platform
Diffstat (limited to 'lib')
-rw-r--r--lib/meta.nix7
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