From e3a50f7e25c552a78974fae684484d27a36b7c60 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 4 Aug 2004 09:25:21 +0000 Subject: [PATCH] * 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. --- src/libstore/normalise.cc | 7 +++++-- src/libutil/util.cc | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/libstore/normalise.cc b/src/libstore/normalise.cc index ae743c136..877478370 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 43ec2b9f3..2a2dffb25 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; }