about summary refs log tree commit diff
path: root/src/libstore/misc.cc
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2005-01-20T14·10+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2005-01-20T14·10+0000
commit05f0430de1d8eeae222a1306d4d0f7f407c8ce7d (patch)
tree2bd947476885025bd52f61430c269398008fb093 /src/libstore/misc.cc
parent6ff48e77f6da3c523a29c254b315d83e310290b3 (diff)
* Another change to low-level derivations. The last one this year, I
  promise :-) This allows derivations to specify on *what* output
  paths of input derivations they are dependent.  This helps to
  prevent unnecessary downloads.  For instance, a build might be
  dependent on the `devel' and `lib' outputs of some library
  component, but not the `docs' output.

Diffstat (limited to 'src/libstore/misc.cc')
-rw-r--r--src/libstore/misc.cc7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libstore/misc.cc b/src/libstore/misc.cc
index c585a9aeac5c..dbb9273f7955 100644
--- a/src/libstore/misc.cc
+++ b/src/libstore/misc.cc
@@ -39,9 +39,12 @@ void storePathRequisites(const Path & storePath,
         
         Derivation drv = derivationFromPath(storePath);
 
-        for (PathSet::iterator i = drv.inputDrvs.begin();
+        for (DerivationInputs::iterator i = drv.inputDrvs.begin();
              i != drv.inputDrvs.end(); ++i)
-            storePathRequisites(*i, includeOutputs, paths);
+            /* !!! Maybe this is too strict, since it will include
+               *all* output paths of the input derivation, not just
+               the ones needed by this derivation. */
+            storePathRequisites(i->first, includeOutputs, paths);
 
         for (PathSet::iterator i = drv.inputSrcs.begin();
              i != drv.inputSrcs.end(); ++i)