1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-24 22:11:15 +02:00

Merge pull request #13259 from NixOS/mergify/bp/2.29-maintenance/pr-13256

Fix nlohmann error in fromStructuredAttrs() (backport #13256)
This commit is contained in:
mergify[bot] 2025-05-25 06:35:47 +00:00 committed by GitHub
commit d761dad79c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 13 additions and 6 deletions

View file

@ -211,8 +211,13 @@ DerivationOptions::fromStructuredAttrs(const StringMap & env, const StructuredAt
auto e = optionalValueAt(parsed->structuredAttrs, "exportReferencesGraph");
if (!e || !e->is_object())
return ret;
for (auto & [key, storePathsJson] : getObject(*e)) {
ret.insert_or_assign(key, storePathsJson);
for (auto & [key, value] : getObject(*e)) {
if (value.is_array())
ret.insert_or_assign(key, value);
else if (value.is_string())
ret.insert_or_assign(key, StringSet{value});
else
throw Error("'exportReferencesGraph' value is not an array or a string");
}
} else {
auto s = getOr(env, "exportReferencesGraph", "");

View file

@ -176,13 +176,13 @@ protected:
void getFile(const std::string & path,
Callback<std::optional<std::string>> callback) noexcept override
{
auto callbackPtr = std::make_shared<decltype(callback)>(std::move(callback));
try {
checkEnabled();
auto request(makeRequest(path));
auto callbackPtr = std::make_shared<decltype(callback)>(std::move(callback));
getFileTransfer()->enqueueFileTransfer(request,
{[callbackPtr, this](std::future<FileTransferResult> result) {
try {
@ -198,7 +198,7 @@ protected:
}});
} catch (...) {
callback.rethrow();
callbackPtr->rethrow();
return;
}
}

View file

@ -225,6 +225,8 @@ void Store::queryMissing(const std::vector<DerivedPath> & targets,
auto parsedDrv = StructuredAttrs::tryParse(drv->env);
DerivationOptions drvOptions;
try {
// FIXME: this is a lot of work just to get the value
// of `allowSubstitutes`.
drvOptions = DerivationOptions::fromStructuredAttrs(
drv->env,
parsedDrv ? &*parsedDrv : nullptr);

View file

@ -21,7 +21,7 @@ mkDerivation {
"b"
"c"
];
exportReferencesGraph.refs = [ dep ];
exportReferencesGraph.refs = dep;
buildCommand = ''
touch ''${outputs[out]}; touch ''${outputs[dev]}
'';