libstore: remove duplicate builder variable

The `builder` local variable and duplicate `args.push_back` are no
longer required since the Darwin sandbox stopped using `sandbox-exec`.
The `drv->isBuiltin` check is not required either, as args are not
accessed when the builder is builtin.

Change-Id: I80b939bbd6f727b01793809921810ff09b579d54
This commit is contained in:
Artemis Tosini 2024-05-25 22:14:55 +00:00
parent dd53bce476
commit 53e2b0740c
Signed by untrusted user: artemist
GPG key ID: EE5227935FE3FF18

View file

@ -2008,8 +2008,6 @@ void LocalDerivationGoal::runChild()
/* Fill in the arguments. */
Strings args;
std::string builder = "invalid";
#if __APPLE__
/* This has to appear before import statements. */
std::string sandboxProfile = "(version 1)\n";
@ -2130,16 +2128,10 @@ void LocalDerivationGoal::runChild()
_exit(1);
}
}
builder = drv->builder;
args.push_back(std::string(baseNameOf(drv->builder)));
#else
if (!drv->isBuiltin()) {
builder = drv->builder;
args.push_back(std::string(baseNameOf(drv->builder)));
}
#endif
args.push_back(std::string(baseNameOf(drv->builder)));
for (auto & i : drv->args)
args.push_back(rewriteStrings(i, inputRewrites));
@ -2193,9 +2185,9 @@ void LocalDerivationGoal::runChild()
posix_spawnattr_setbinpref_np(&attrp, 1, &cpu, NULL);
}
posix_spawn(NULL, builder.c_str(), NULL, &attrp, stringsToCharPtrs(args).data(), stringsToCharPtrs(envStrs).data());
posix_spawn(NULL, drv->builder.c_str(), NULL, &attrp, stringsToCharPtrs(args).data(), stringsToCharPtrs(envStrs).data());
#else
execve(builder.c_str(), stringsToCharPtrs(args).data(), stringsToCharPtrs(envStrs).data());
execve(drv->builder.c_str(), stringsToCharPtrs(args).data(), stringsToCharPtrs(envStrs).data());
#endif
throw SysError("executing '%1%'", drv->builder);