aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/build.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/build.cc')
-rw-r--r--src/libstore/build.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index 057ad2bdf..fc800f430 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -274,6 +274,10 @@ public:
uint64_t expectedNarSize = 0;
uint64_t doneNarSize = 0;
+ /* Whether to ask the build hook if it can build a derivation. If
+ it answers with "decline-permanently", we don't try again. */
+ bool tryBuildHook = true;
+
Worker(LocalStore & store);
~Worker();
@@ -1622,7 +1626,7 @@ void DerivationGoal::buildDone()
HookReply DerivationGoal::tryBuildHook()
{
- if (!settings.useBuildHook || !useDerivation) return rpDecline;
+ if (!worker.tryBuildHook || !useDerivation) return rpDecline;
if (!worker.hook)
worker.hook = std::make_unique<HookInstance>();
@@ -1662,7 +1666,7 @@ HookReply DerivationGoal::tryBuildHook()
if (reply == "decline")
return rpDecline;
else if (reply == "decline-permanently") {
- settings.useBuildHook = false;
+ worker.tryBuildHook = false;
worker.hook = 0;
return rpDecline;
}