b23b4d394a
This makes it easy to detect non-deterministic builds. * nix/libstore/build.cc (DerivationGoal): Remove 'InodesSeen'; add 'curRound', 'nrRound', and 'prevInfos'. (DerivationGoal::inputsRealised): Initialize 'nrRound'. (NotDeterministic): New error type. (DerivationGoal::buildDone): Check whether we need to repeat. (DerivationGoal::startBuilder): Adjust message. (DerivationGoal::registerOutputs): Check whether we get the same result. * nix/libstore/globals.cc (Settings::get(const string & name, int def)): New method. * nix/libstore/globals.hh (Settings): Add it. * nix/libstore/store-api.hh (ValidPathInfo): Add operator ==. * nix/nix-daemon/nix-daemon.cc (performOp): Allow "build-repeat" for "untrusted" users. Co-authored-by: Ludovic Courtès <ludo@gnu.org> |
||
---|---|---|
.. | ||
.gitignore | ||
build.cc | ||
derivations.cc | ||
derivations.hh | ||
gc.cc | ||
globals.cc | ||
globals.hh | ||
local-store.cc | ||
local-store.hh | ||
misc.cc | ||
misc.hh | ||
optimise-store.cc | ||
pathlocks.cc | ||
pathlocks.hh | ||
references.cc | ||
references.hh | ||
remote-store.cc | ||
remote-store.hh | ||
schema.sql | ||
store-api.cc | ||
store-api.hh | ||
worker-protocol.hh |