diff options
-rw-r--r-- | src/libstore/normalise.cc | 7 | ||||
-rw-r--r-- | 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; } |