move unsafeDiscardReferences out of outputChecks

It's not a check.
This commit is contained in:
Naïm Favier 2023-01-03 18:53:01 +01:00
parent 15f7fa59be
commit 3c968191f1
No known key found for this signature in database
GPG key ID: 95AFCE8211908325
3 changed files with 9 additions and 13 deletions

View file

@ -26,7 +26,7 @@
to disable scanning a given output for runtime dependencies: to disable scanning a given output for runtime dependencies:
```nix ```nix
__structuredAttrs = true; __structuredAttrs = true;
outputChecks.out.unsafeDiscardReferences = true; unsafeDiscardReferences.out = true;
``` ```
This is useful e.g. when generating self-contained filesystem images with This is useful e.g. when generating self-contained filesystem images with
their own embedded Nix store: hashes found inside such an image refer their own embedded Nix store: hashes found inside such an image refer

View file

@ -2321,14 +2321,12 @@ DrvOutputs LocalDerivationGoal::registerOutputs()
bool discardReferences = false; bool discardReferences = false;
if (auto structuredAttrs = parsedDrv->getStructuredAttrs()) { if (auto structuredAttrs = parsedDrv->getStructuredAttrs()) {
if (auto outputChecks = get(*structuredAttrs, "outputChecks")) { if (auto udr = get(*structuredAttrs, "unsafeDiscardReferences")) {
if (auto output = get(*outputChecks, outputName)) { settings.requireExperimentalFeature(Xp::DiscardReferences);
if (auto unsafeDiscardReferences = get(*output, "unsafeDiscardReferences")) { if (auto output = get(*udr, outputName)) {
settings.requireExperimentalFeature(Xp::DiscardReferences); if (!output->is_boolean())
if (!unsafeDiscardReferences->is_boolean()) throw Error("attribute 'unsafeDiscardReferences.\"%s\"' of derivation '%s' must be a Boolean", outputName, drvPath.to_string());
throw Error("attribute 'outputChecks.\"%s\".unsafeDiscardReferences' of derivation '%s' must be a Boolean", outputName, drvPath.to_string()); discardReferences = output->get<bool>();
discardReferences = unsafeDiscardReferences->get<bool>();
}
} }
} }
} }

View file

@ -69,10 +69,8 @@ rec {
test11 = makeTest 11 { test11 = makeTest 11 {
__structuredAttrs = true; __structuredAttrs = true;
outputChecks.out = { unsafeDiscardReferences.out = true;
unsafeDiscardReferences = true; outputChecks.out.allowedReferences = [];
allowedReferences = [];
};
buildCommand = ''echo ${dep} > "''${outputs[out]}"''; buildCommand = ''echo ${dep} > "''${outputs[out]}"'';
}; };