about summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-11-26T17·25+0100
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-11-26T17·25+0100
commit5943f41b8bd95b8559cb6768bb0a1151f6bee68d (patch)
tree3c1c6da357e21e10eb340fd2a72224fe0531b5fb /src/libstore
parent08964d7328f09a703467e4045e34023837a4cc01 (diff)
queryMissing(): Handle partially valid derivations
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/misc.cc11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc
index ecba0c419dd2..899e4764c1d6 100644
--- a/src/libstore/misc.cc
+++ b/src/libstore/misc.cc
@@ -126,11 +126,12 @@ void queryMissing(StoreAPI & store, const PathSet & targets,
             if (settings.useSubstitutes) {
                 foreach (DerivationOutputs::iterator, j, drv.outputs) {
                     if (!wantOutput(j->first, i2.second)) continue;
-                    if (!store.isValidPath(j->second.path) &&
-                        infos.find(j->second.path) == infos.end())
-                        mustBuild = true;
-                    else
-                        outputs.insert(j->second.path);
+                    if (!store.isValidPath(j->second.path)) {
+                        if (infos.find(j->second.path) == infos.end())
+                            mustBuild = true;
+                        else
+                            outputs.insert(j->second.path);
+                    }
                 }
             } else
                 mustBuild = true;