diff --git a/pkgs/stdenv/generic/check-meta.nix b/pkgs/stdenv/generic/check-meta.nix index 3a35b750d5f3f..b9e2367573454 100644 --- a/pkgs/stdenv/generic/check-meta.nix +++ b/pkgs/stdenv/generic/check-meta.nix @@ -713,6 +713,7 @@ let } ) possibleCPEPartsFuns; + evaluateSrc = !isMarkedBroken attrs && !hasUnsupportedPlatform attrs; purlParts = attrs.meta.identifiers.purlParts or { }; purlPartsFormatted = if purlParts ? type && purlParts ? spec then "pkg:${purlParts.type}/${purlParts.spec}" else null; @@ -722,6 +723,8 @@ let # 1) locally set through API if purlPartsFormatted != null then purlPartsFormatted + else if !evaluateSrc || !(builtins.tryEval attrs.src or null).success then + null else # 2) locally overwritten through meta.identifiers.purl (attrs.src.meta.identifiers.purl or null); @@ -733,6 +736,12 @@ let # 2) locally set through API if purlPartsFormatted != null then [ purlPartsFormatted ] + else if + !evaluateSrc + || !(builtins.tryEval attrs.src or [ ]).success + || !(builtins.tryEval attrs.srcs or [ ]).success + then + [ ] else # 3) src.meta.PURL (attrs.src.meta.identifiers.purls or (