From 917e06bf6398ed77a23e5e1fc894321a7fc7f86e Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 7 Mar 2007 15:53:11 +0000 Subject: [PATCH] * Delete the output paths before invoking the build hook. --- src/libstore/build.cc | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/libstore/build.cc b/src/libstore/build.cc index bee0466550..368d5751ff 100644 --- a/src/libstore/build.cc +++ b/src/libstore/build.cc @@ -1262,6 +1262,20 @@ bool DerivationGoal::prepareBuild() % drvPath); } + /* If any of the outputs already exist but are not registered, + delete them. */ + for (DerivationOutputs::iterator i = drv.outputs.begin(); + i != drv.outputs.end(); ++i) + { + Path path = i->second.path; + if (store->isValidPath(path)) + throw BuildError(format("obstructed build: path `%1%' exists") % path); + if (pathExists(path)) { + debug(format("removing unregistered path `%1%'") % path); + deletePathWrapped(path); + } + } + /* Gather information necessary for computing the closure and/or running the build hook. */ @@ -1318,20 +1332,6 @@ void DerivationGoal::startBuilder() format("a `%1%' is required to build `%3%', but I am a `%2%'") % drv.platform % thisSystem % drvPath); - /* If any of the outputs already exist but are not registered, - delete them. */ - for (DerivationOutputs::iterator i = drv.outputs.begin(); - i != drv.outputs.end(); ++i) - { - Path path = i->second.path; - if (store->isValidPath(path)) - throw BuildError(format("obstructed build: path `%1%' exists") % path); - if (pathExists(path)) { - debug(format("removing unregistered path `%1%'") % path); - deletePathWrapped(path); - } - } - /* Construct the environment passed to the builder. */ typedef map Environment; Environment env;