From 0b90e548b5aabea90f01437467467bc73dc61bf1 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Sun, 9 Oct 2022 15:25:46 -0700 Subject: [PATCH] lib/meta(availableOn): handle missing meta and empty meta.platform --- lib/meta.nix | 7 +++++-- 1 file 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