about summary refs log tree commit diff
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-08-04T09·25+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-08-04T09·25+0000
commite3a50f7e25c552a78974fae684484d27a36b7c60 (patch)
tree8637f3284a2adf65fdb82e974177873c3b9c19f4
parent18ebd7b03071ebbb38cea9eca39a5e7e2e0cf2ea (diff)
* Creating a file nix-support/no-scan in the output path of a
  derivation disables scanning for dependencies.  Use at your own
  risk.  This is a quick hack to speed up UML image generation (image
  are very big, say 1 GB).

  It would be better if the scanner were faster, and didn't read the
  whole file into memory.

-rw-r--r--src/libstore/normalise.cc7
-rw-r--r--src/libutil/util.cc2
2 files changed, 6 insertions, 3 deletions
diff --git a/src/libstore/normalise.cc b/src/libstore/normalise.cc
index ae743c136f..8774783708 100644
--- a/src/libstore/normalise.cc
+++ b/src/libstore/normalise.cc
@@ -1049,8 +1049,11 @@ void NormalisationGoal::createClosure()
 	   in it. */
         startNest(nest2, lvlChatty,
             format("scanning for store references in `%1%'") % path);
-        Strings refPaths = filterReferences(path, 
-            Strings(allPaths.begin(), allPaths.end()));
+        Strings refPaths;
+        if (!pathExists(path + "/nix-support/no-scan")) {
+            refPaths = filterReferences(path, 
+                Strings(allPaths.begin(), allPaths.end()));
+        }
         nest2.close();
 
 	/* Construct a closure element for this output path. */
diff --git a/src/libutil/util.cc b/src/libutil/util.cc
index 43ec2b9f3b..2a2dffb25d 100644
--- a/src/libutil/util.cc
+++ b/src/libutil/util.cc
@@ -115,7 +115,7 @@ bool pathExists(const Path & path)
     struct stat st;
     res = lstat(path.c_str(), &st);
     if (!res) return true;
-    if (errno != ENOENT)
+    if (errno != ENOENT && errno != ENOTDIR)
         throw SysError(format("getting status of %1%") % path);
     return false;
 }