mkDerivation: make allowedReferences/allowedRequisites nullable when __structuredAttrs is true

This commit is contained in:
Yueh-Shun Li 2025-11-16 06:01:30 +08:00 committed by Philip Taron
parent 4d3c76c4d3
commit eddb12ac9d
No known key found for this signature in database
2 changed files with 17 additions and 2 deletions

View file

@ -15,6 +15,7 @@ let
elemAt
extendDerivation
filter
filterAttrs
getDev
head
imap1
@ -709,8 +710,12 @@ let
];
}
// (
let
attrsOutputChecks = makeOutputChecks attrs;
attrsOutputChecksFiltered = filterAttrs (_: v: v != null) attrsOutputChecks;
in
if !__structuredAttrs then
makeOutputChecks attrs
attrsOutputChecks
else
{
outputChecks = builtins.listToAttrs (
@ -719,7 +724,7 @@ let
value =
let
raw = zipAttrsWith (_: builtins.concatLists) [
(makeOutputChecks attrs)
attrsOutputChecksFiltered
(makeOutputChecks attrs.outputChecks.${name} or { })
];
in

View file

@ -68,6 +68,16 @@ let
}).pname;
expected = "hello-no-final-attrs-overridden";
};
structuredAttrs-allowedRequisites-nullability = {
expr =
lib.hasPrefix builtins.storeDir
(pkgs.stdenv.mkDerivation {
__structuredAttrs = true;
inherit (pkgs.hello) pname version src;
allowedRequisites = null;
}).drvPath;
expected = true;
};
};
test-extendMkDerivation =