Inspect constructor values and contexts without unrelated derivation closures (#931)

This commit is contained in:
Quixos Development Agent 01f26965-84fa-4a79-8069-725682c13065
2026-11-05 21:32:42 +00:00
parent 61881f9cda
commit 4f672d027d
3 changed files with 59 additions and 33 deletions
+34
View File
@@ -0,0 +1,34 @@
# Read actual constructor attributes as comparison data. Their values AND
# dependency contexts remain visible; none is substituted for a build input.
derivation:
let
fields = [
"name"
"system"
"src"
"stdenv"
"nativeBuildInputs"
"buildInputs"
"propagatedBuildInputs"
"propagatedNativeBuildInputs"
"configurePhase"
"buildPhase"
"checkPhase"
"installPhase"
"doCheck"
"strictDeps"
"outputs"
"__structuredAttrs"
];
selected = builtins.intersectAttrs (builtins.listToAttrs (
map (name: {
inherit name;
value = null;
}) fields
)) derivation;
in
builtins.mapAttrs (_: value: {
type = builtins.typeOf value;
value = builtins.unsafeDiscardStringContext (toString value);
context = builtins.getContext (toString value);
}) selected