fix(3p/nix): revert "apply all clang-tidy fixes"
This reverts commit ef54f5da9f.
Resolved conflicts:
third_party/nix/src/libexpr/eval.cc
third_party/nix/src/libstore/builtins/fetchurl.cc
third_party/nix/src/libstore/references.cc
third_party/nix/src/libutil/hash.cc
third_party/nix/src/nix-daemon/nix-daemon.cc
Change-Id: Ib9cf6e96a79a23bde3983579ced3f92e530cb011
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1547
Reviewed-by: glittershark <grfn@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
parent
cc3c45f739
commit
72fc2fd27e
64 changed files with 479 additions and 555 deletions
|
|
@ -35,17 +35,15 @@ static void createLinks(const Path& srcDir, const Path& dstDir, int priority) {
|
|||
}
|
||||
|
||||
for (const auto& ent : srcFiles) {
|
||||
if (ent.name[0] == '.') { /* not matched by glob */
|
||||
if (ent.name[0] == '.') /* not matched by glob */
|
||||
continue;
|
||||
}
|
||||
auto srcFile = srcDir + "/" + ent.name;
|
||||
auto dstFile = dstDir + "/" + ent.name;
|
||||
|
||||
struct stat srcSt {};
|
||||
struct stat srcSt;
|
||||
try {
|
||||
if (stat(srcFile.c_str(), &srcSt) == -1) {
|
||||
if (stat(srcFile.c_str(), &srcSt) == -1)
|
||||
throw SysError("getting status of '%1%'", srcFile);
|
||||
}
|
||||
} catch (SysError& e) {
|
||||
if (e.errNo == ENOENT || e.errNo == ENOTDIR) {
|
||||
LOG(ERROR) << "warning: skipping dangling symlink '" << dstFile << "'";
|
||||
|
|
@ -63,12 +61,11 @@ static void createLinks(const Path& srcDir, const Path& dstDir, int priority) {
|
|||
if (absl::EndsWith(srcFile, "/propagated-build-inputs") ||
|
||||
absl::EndsWith(srcFile, "/nix-support") ||
|
||||
absl::EndsWith(srcFile, "/perllocal.pod") ||
|
||||
absl::EndsWith(srcFile, "/info/dir") ||
|
||||
absl::EndsWith(srcFile, "/log")) {
|
||||
absl::EndsWith(srcFile, "/info/dir") || absl::EndsWith(srcFile, "/log"))
|
||||
continue;
|
||||
|
||||
} else if (S_ISDIR(srcSt.st_mode)) {
|
||||
struct stat dstSt {};
|
||||
else if (S_ISDIR(srcSt.st_mode)) {
|
||||
struct stat dstSt;
|
||||
auto res = lstat(dstFile.c_str(), &dstSt);
|
||||
if (res == 0) {
|
||||
if (S_ISDIR(dstSt.st_mode)) {
|
||||
|
|
@ -76,53 +73,45 @@ static void createLinks(const Path& srcDir, const Path& dstDir, int priority) {
|
|||
continue;
|
||||
} else if (S_ISLNK(dstSt.st_mode)) {
|
||||
auto target = canonPath(dstFile, true);
|
||||
if (!S_ISDIR(lstat(target).st_mode)) {
|
||||
if (!S_ISDIR(lstat(target).st_mode))
|
||||
throw Error("collision between '%1%' and non-directory '%2%'",
|
||||
srcFile, target);
|
||||
}
|
||||
if (unlink(dstFile.c_str()) == -1) {
|
||||
if (unlink(dstFile.c_str()) == -1)
|
||||
throw SysError(format("unlinking '%1%'") % dstFile);
|
||||
}
|
||||
if (mkdir(dstFile.c_str(), 0755) == -1) {
|
||||
if (mkdir(dstFile.c_str(), 0755) == -1)
|
||||
throw SysError(format("creating directory '%1%'"));
|
||||
}
|
||||
createLinks(target, dstFile, priorities[dstFile]);
|
||||
createLinks(srcFile, dstFile, priority);
|
||||
continue;
|
||||
}
|
||||
} else if (errno != ENOENT) {
|
||||
} else if (errno != ENOENT)
|
||||
throw SysError(format("getting status of '%1%'") % dstFile);
|
||||
}
|
||||
}
|
||||
|
||||
else {
|
||||
struct stat dstSt {};
|
||||
struct stat dstSt;
|
||||
auto res = lstat(dstFile.c_str(), &dstSt);
|
||||
if (res == 0) {
|
||||
if (S_ISLNK(dstSt.st_mode)) {
|
||||
auto prevPriority = priorities[dstFile];
|
||||
if (prevPriority == priority) {
|
||||
if (prevPriority == priority)
|
||||
throw Error(
|
||||
"packages '%1%' and '%2%' have the same priority %3%; "
|
||||
"use 'nix-env --set-flag priority NUMBER INSTALLED_PKGNAME' "
|
||||
"to change the priority of one of the conflicting packages"
|
||||
" (0 being the highest priority)",
|
||||
srcFile, readLink(dstFile), priority);
|
||||
}
|
||||
if (prevPriority < priority) {
|
||||
continue;
|
||||
}
|
||||
if (unlink(dstFile.c_str()) == -1) {
|
||||
if (unlink(dstFile.c_str()) == -1)
|
||||
throw SysError(format("unlinking '%1%'") % dstFile);
|
||||
}
|
||||
} else if (S_ISDIR(dstSt.st_mode)) {
|
||||
} else if (S_ISDIR(dstSt.st_mode))
|
||||
throw Error(
|
||||
"collision between non-directory '%1%' and directory '%2%'",
|
||||
srcFile, dstFile);
|
||||
}
|
||||
} else if (errno != ENOENT) {
|
||||
} else if (errno != ENOENT)
|
||||
throw SysError(format("getting status of '%1%'") % dstFile);
|
||||
}
|
||||
}
|
||||
|
||||
createSymlink(srcFile, dstFile);
|
||||
|
|
@ -212,11 +201,10 @@ void builtinBuildenv(const BasicDerivation& drv) {
|
|||
return a.priority < b.priority ||
|
||||
(a.priority == b.priority && a.path < b.path);
|
||||
});
|
||||
for (const auto& pkg : pkgs) {
|
||||
for (const auto& pkg : pkgs)
|
||||
if (pkg.active) {
|
||||
addPkg(pkg.path, pkg.priority);
|
||||
}
|
||||
}
|
||||
|
||||
/* Symlink to the packages that have been "propagated" by packages
|
||||
* installed by the user (i.e., package X declares that it wants Y
|
||||
|
|
|
|||
|
|
@ -20,9 +20,8 @@ void builtinFetchurl(const BasicDerivation& drv, const std::string& netrcData) {
|
|||
|
||||
auto getAttr = [&](const std::string& name) {
|
||||
auto i = drv.env.find(name);
|
||||
if (i == drv.env.end()) {
|
||||
if (i == drv.env.end())
|
||||
throw Error(format("attribute '%s' missing") % name);
|
||||
}
|
||||
return i->second;
|
||||
};
|
||||
|
||||
|
|
@ -48,17 +47,15 @@ void builtinFetchurl(const BasicDerivation& drv, const std::string& netrcData) {
|
|||
decompressor->finish();
|
||||
});
|
||||
|
||||
if (unpack) {
|
||||
if (unpack)
|
||||
restorePath(storePath, *source);
|
||||
} else {
|
||||
else
|
||||
writeFile(storePath, *source);
|
||||
}
|
||||
|
||||
auto executable = drv.env.find("executable");
|
||||
if (executable != drv.env.end() && executable->second == "1") {
|
||||
if (chmod(storePath.c_str(), 0755) == -1) {
|
||||
if (chmod(storePath.c_str(), 0755) == -1)
|
||||
throw SysError(format("making '%1%' executable") % storePath);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue