aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/manual/src/release-notes/rl-next.md2
-rw-r--r--src/libstore/build/local-derivation-goal.cc14
-rw-r--r--tests/check-refs.nix6
3 files changed, 9 insertions, 13 deletions
diff --git a/doc/manual/src/release-notes/rl-next.md b/doc/manual/src/release-notes/rl-next.md
index 51320d50a..1e8a035b0 100644
--- a/doc/manual/src/release-notes/rl-next.md
+++ b/doc/manual/src/release-notes/rl-next.md
@@ -26,7 +26,7 @@
to disable scanning a given output for runtime dependencies:
```nix
__structuredAttrs = true;
- outputChecks.out.unsafeDiscardReferences = true;
+ unsafeDiscardReferences.out = true;
```
This is useful e.g. when generating self-contained filesystem images with
their own embedded Nix store: hashes found inside such an image refer
diff --git a/src/libstore/build/local-derivation-goal.cc b/src/libstore/build/local-derivation-goal.cc
index 65340d6ce..d4ea68f93 100644
--- a/src/libstore/build/local-derivation-goal.cc
+++ b/src/libstore/build/local-derivation-goal.cc
@@ -2321,14 +2321,12 @@ DrvOutputs LocalDerivationGoal::registerOutputs()
bool discardReferences = false;
if (auto structuredAttrs = parsedDrv->getStructuredAttrs()) {
- if (auto outputChecks = get(*structuredAttrs, "outputChecks")) {
- if (auto output = get(*outputChecks, outputName)) {
- if (auto unsafeDiscardReferences = get(*output, "unsafeDiscardReferences")) {
- settings.requireExperimentalFeature(Xp::DiscardReferences);
- if (!unsafeDiscardReferences->is_boolean())
- throw Error("attribute 'outputChecks.\"%s\".unsafeDiscardReferences' of derivation '%s' must be a Boolean", outputName, drvPath.to_string());
- discardReferences = unsafeDiscardReferences->get<bool>();
- }
+ if (auto udr = get(*structuredAttrs, "unsafeDiscardReferences")) {
+ settings.requireExperimentalFeature(Xp::DiscardReferences);
+ if (auto output = get(*udr, outputName)) {
+ if (!output->is_boolean())
+ throw Error("attribute 'unsafeDiscardReferences.\"%s\"' of derivation '%s' must be a Boolean", outputName, drvPath.to_string());
+ discardReferences = output->get<bool>();
}
}
}
diff --git a/tests/check-refs.nix b/tests/check-refs.nix
index a5e40c9e5..99d69a226 100644
--- a/tests/check-refs.nix
+++ b/tests/check-refs.nix
@@ -69,10 +69,8 @@ rec {
test11 = makeTest 11 {
__structuredAttrs = true;
- outputChecks.out = {
- unsafeDiscardReferences = true;
- allowedReferences = [];
- };
+ unsafeDiscardReferences.out = true;
+ outputChecks.out.allowedReferences = [];
buildCommand = ''echo ${dep} > "''${outputs[out]}"'';
};