Remove trailing whitespace
This commit is contained in:
parent
1fb762d11f
commit
e14e62fddd
|
@ -200,7 +200,7 @@ static int _main(int argc, char * * argv)
|
||||||
|
|
||||||
} catch (std::exception & e) {
|
} catch (std::exception & e) {
|
||||||
auto msg = chomp(drainFD(5, false));
|
auto msg = chomp(drainFD(5, false));
|
||||||
logError({
|
logError({
|
||||||
.name = "Remote build",
|
.name = "Remote build",
|
||||||
.hint = hintfmt("cannot build on '%s': %s%s",
|
.hint = hintfmt("cannot build on '%s': %s%s",
|
||||||
bestMachine->storeUri, e.what(),
|
bestMachine->storeUri, e.what(),
|
||||||
|
|
|
@ -62,7 +62,7 @@ std::pair<Value *, Pos> findAlongAttrPath(EvalState & state, const string & attr
|
||||||
throw TypeError(
|
throw TypeError(
|
||||||
"the expression selected by the selection path '%1%' should be a set but is %2%",
|
"the expression selected by the selection path '%1%' should be a set but is %2%",
|
||||||
attrPath,
|
attrPath,
|
||||||
showType(*v));
|
showType(*v));
|
||||||
if (attr.empty())
|
if (attr.empty())
|
||||||
throw Error("empty attribute name in selection path '%1%'", attrPath);
|
throw Error("empty attribute name in selection path '%1%'", attrPath);
|
||||||
|
|
||||||
|
@ -79,7 +79,7 @@ std::pair<Value *, Pos> findAlongAttrPath(EvalState & state, const string & attr
|
||||||
throw TypeError(
|
throw TypeError(
|
||||||
"the expression selected by the selection path '%1%' should be a list but is %2%",
|
"the expression selected by the selection path '%1%' should be a list but is %2%",
|
||||||
attrPath,
|
attrPath,
|
||||||
showType(*v));
|
showType(*v));
|
||||||
if (attrIndex >= v->listSize())
|
if (attrIndex >= v->listSize())
|
||||||
throw AttrPathNotFound("list index %1% in selection path '%2%' is out of range", attrIndex, attrPath);
|
throw AttrPathNotFound("list index %1% in selection path '%2%' is out of range", attrIndex, attrPath);
|
||||||
|
|
||||||
|
|
|
@ -219,4 +219,3 @@ or { return OR_KW; }
|
||||||
}
|
}
|
||||||
|
|
||||||
%%
|
%%
|
||||||
|
|
||||||
|
|
|
@ -267,7 +267,7 @@ void ExprVar::bindVars(const StaticEnv & env)
|
||||||
/* Otherwise, the variable must be obtained from the nearest
|
/* Otherwise, the variable must be obtained from the nearest
|
||||||
enclosing `with'. If there is no `with', then we can issue an
|
enclosing `with'. If there is no `with', then we can issue an
|
||||||
"undefined variable" error now. */
|
"undefined variable" error now. */
|
||||||
if (withLevel == -1)
|
if (withLevel == -1)
|
||||||
throw UndefinedVarError({
|
throw UndefinedVarError({
|
||||||
.hint = hintfmt("undefined variable '%1%'", name),
|
.hint = hintfmt("undefined variable '%1%'", name),
|
||||||
.nixCode = NixCode { .errPos = pos }
|
.nixCode = NixCode { .errPos = pos }
|
||||||
|
|
|
@ -133,7 +133,7 @@ public:
|
||||||
{
|
{
|
||||||
auto state(state_.lock());
|
auto state(state_.lock());
|
||||||
|
|
||||||
std::stringstream oss;
|
std::stringstream oss;
|
||||||
oss << ei;
|
oss << ei;
|
||||||
|
|
||||||
log(*state, ei.level, oss.str());
|
log(*state, ei.level, oss.str());
|
||||||
|
|
|
@ -77,7 +77,7 @@ struct TunnelLogger : public Logger
|
||||||
{
|
{
|
||||||
if (ei.level > verbosity) return;
|
if (ei.level > verbosity) return;
|
||||||
|
|
||||||
std::stringstream oss;
|
std::stringstream oss;
|
||||||
oss << ei;
|
oss << ei;
|
||||||
|
|
||||||
StringSink buf;
|
StringSink buf;
|
||||||
|
|
|
@ -599,9 +599,9 @@ struct curlFileTransfer : public FileTransfer
|
||||||
workerThreadMain();
|
workerThreadMain();
|
||||||
} catch (nix::Interrupted & e) {
|
} catch (nix::Interrupted & e) {
|
||||||
} catch (std::exception & e) {
|
} catch (std::exception & e) {
|
||||||
logError({
|
logError({
|
||||||
.name = "File transfer",
|
.name = "File transfer",
|
||||||
.hint = hintfmt("unexpected error in download thread: %s",
|
.hint = hintfmt("unexpected error in download thread: %s",
|
||||||
e.what())
|
e.what())
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,7 +87,7 @@ LocalStore::LocalStore(const Params & params)
|
||||||
|
|
||||||
struct group * gr = getgrnam(settings.buildUsersGroup.get().c_str());
|
struct group * gr = getgrnam(settings.buildUsersGroup.get().c_str());
|
||||||
if (!gr)
|
if (!gr)
|
||||||
logError({
|
logError({
|
||||||
.name = "'build-users-group' not found",
|
.name = "'build-users-group' not found",
|
||||||
.hint = hintfmt(
|
.hint = hintfmt(
|
||||||
"warning: the group '%1%' specified in 'build-users-group' does not exist",
|
"warning: the group '%1%' specified in 'build-users-group' does not exist",
|
||||||
|
@ -1223,7 +1223,7 @@ bool LocalStore::verifyStore(bool checkContents, RepairFlag repair)
|
||||||
Path linkPath = linksDir + "/" + link.name;
|
Path linkPath = linksDir + "/" + link.name;
|
||||||
string hash = hashPath(htSHA256, linkPath).first.to_string(Base32, false);
|
string hash = hashPath(htSHA256, linkPath).first.to_string(Base32, false);
|
||||||
if (hash != link.name) {
|
if (hash != link.name) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Invalid hash",
|
.name = "Invalid hash",
|
||||||
.hint = hintfmt(
|
.hint = hintfmt(
|
||||||
"link '%s' was modified! expected hash '%s', got '%s'",
|
"link '%s' was modified! expected hash '%s', got '%s'",
|
||||||
|
@ -1261,7 +1261,7 @@ bool LocalStore::verifyStore(bool checkContents, RepairFlag repair)
|
||||||
auto current = hashSink->finish();
|
auto current = hashSink->finish();
|
||||||
|
|
||||||
if (info->narHash != nullHash && info->narHash != current.first) {
|
if (info->narHash != nullHash && info->narHash != current.first) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Invalid hash - path modified",
|
.name = "Invalid hash - path modified",
|
||||||
.hint = hintfmt("path '%s' was modified! expected hash '%s', got '%s'",
|
.hint = hintfmt("path '%s' was modified! expected hash '%s', got '%s'",
|
||||||
printStorePath(i), info->narHash.to_string(Base32, true), current.first.to_string(Base32, true))
|
printStorePath(i), info->narHash.to_string(Base32, true), current.first.to_string(Base32, true))
|
||||||
|
@ -1316,7 +1316,7 @@ void LocalStore::verifyPath(const Path & pathS, const StringSet & store,
|
||||||
if (!done.insert(pathS).second) return;
|
if (!done.insert(pathS).second) return;
|
||||||
|
|
||||||
if (!isStorePath(pathS)) {
|
if (!isStorePath(pathS)) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Nix path not found",
|
.name = "Nix path not found",
|
||||||
.hint = hintfmt("path '%s' is not in the Nix store", pathS)
|
.hint = hintfmt("path '%s' is not in the Nix store", pathS)
|
||||||
});
|
});
|
||||||
|
@ -1342,7 +1342,7 @@ void LocalStore::verifyPath(const Path & pathS, const StringSet & store,
|
||||||
auto state(_state.lock());
|
auto state(_state.lock());
|
||||||
invalidatePath(*state, path);
|
invalidatePath(*state, path);
|
||||||
} else {
|
} else {
|
||||||
logError({
|
logError({
|
||||||
.name = "Missing path with referrers",
|
.name = "Missing path with referrers",
|
||||||
.hint = hintfmt("path '%s' disappeared, but it still has valid referrers!", pathS)
|
.hint = hintfmt("path '%s' disappeared, but it still has valid referrers!", pathS)
|
||||||
});
|
});
|
||||||
|
|
|
@ -130,7 +130,7 @@ void LocalStore::optimisePath_(Activity * act, OptimiseStats & stats,
|
||||||
NixOS (example: $fontconfig/var/cache being modified). Skip
|
NixOS (example: $fontconfig/var/cache being modified). Skip
|
||||||
those files. FIXME: check the modification time. */
|
those files. FIXME: check the modification time. */
|
||||||
if (S_ISREG(st.st_mode) && (st.st_mode & S_IWUSR)) {
|
if (S_ISREG(st.st_mode) && (st.st_mode & S_IWUSR)) {
|
||||||
logWarning({
|
logWarning({
|
||||||
.name = "Suspicious file",
|
.name = "Suspicious file",
|
||||||
.hint = hintfmt("skipping suspicious writable file '%1%'", path)
|
.hint = hintfmt("skipping suspicious writable file '%1%'", path)
|
||||||
});
|
});
|
||||||
|
@ -197,7 +197,7 @@ void LocalStore::optimisePath_(Activity * act, OptimiseStats & stats,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (st.st_size != stLink.st_size) {
|
if (st.st_size != stLink.st_size) {
|
||||||
logWarning({
|
logWarning({
|
||||||
.name = "Corrupted link",
|
.name = "Corrupted link",
|
||||||
.hint = hintfmt("removing corrupted link '%1%'", linkPath)
|
.hint = hintfmt("removing corrupted link '%1%'", linkPath)
|
||||||
});
|
});
|
||||||
|
@ -235,7 +235,7 @@ void LocalStore::optimisePath_(Activity * act, OptimiseStats & stats,
|
||||||
/* Atomically replace the old file with the new hard link. */
|
/* Atomically replace the old file with the new hard link. */
|
||||||
if (rename(tempLink.c_str(), path.c_str()) == -1) {
|
if (rename(tempLink.c_str(), path.c_str()) == -1) {
|
||||||
if (unlink(tempLink.c_str()) == -1)
|
if (unlink(tempLink.c_str()) == -1)
|
||||||
logError({
|
logError({
|
||||||
.name = "Unlink error",
|
.name = "Unlink error",
|
||||||
.hint = hintfmt("unable to unlink '%1%'", tempLink)
|
.hint = hintfmt("unable to unlink '%1%'", tempLink)
|
||||||
});
|
});
|
||||||
|
|
|
@ -777,7 +777,7 @@ bool ValidPathInfo::isContentAddressed(const Store & store) const
|
||||||
auto warn = [&]() {
|
auto warn = [&]() {
|
||||||
logWarning(
|
logWarning(
|
||||||
ErrorInfo{
|
ErrorInfo{
|
||||||
.name = "Path not content-addressed",
|
.name = "Path not content-addressed",
|
||||||
.hint = hintfmt("path '%s' claims to be content-addressed but isn't", store.printStorePath(path))
|
.hint = hintfmt("path '%s' claims to be content-addressed but isn't", store.printStorePath(path))
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -61,7 +61,7 @@ void printCodeLines(std::ostream &out, const string &prefix, const NixCode &nixC
|
||||||
{
|
{
|
||||||
// previous line of code.
|
// previous line of code.
|
||||||
if (nixCode.prevLineOfCode.has_value()) {
|
if (nixCode.prevLineOfCode.has_value()) {
|
||||||
out << std::endl
|
out << std::endl
|
||||||
<< fmt("%1% %|2$5d|| %3%",
|
<< fmt("%1% %|2$5d|| %3%",
|
||||||
prefix,
|
prefix,
|
||||||
(nixCode.errPos.line - 1),
|
(nixCode.errPos.line - 1),
|
||||||
|
|
|
@ -273,7 +273,7 @@ bool handleJSONLogMessage(const std::string & msg,
|
||||||
}
|
}
|
||||||
|
|
||||||
} catch (std::exception & e) {
|
} catch (std::exception & e) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Json log message",
|
.name = "Json log message",
|
||||||
.hint = hintfmt("bad log message from builder: %s", e.what())
|
.hint = hintfmt("bad log message from builder: %s", e.what())
|
||||||
});
|
});
|
||||||
|
|
|
@ -314,7 +314,7 @@ string readFile(const Path & path)
|
||||||
void readFile(const Path & path, Sink & sink)
|
void readFile(const Path & path, Sink & sink)
|
||||||
{
|
{
|
||||||
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_CLOEXEC);
|
AutoCloseFD fd = open(path.c_str(), O_RDONLY | O_CLOEXEC);
|
||||||
if (!fd)
|
if (!fd)
|
||||||
throw SysError("opening file '%s'", path);
|
throw SysError("opening file '%s'", path);
|
||||||
drainFD(fd.get(), sink);
|
drainFD(fd.get(), sink);
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ using namespace nix::daemon;
|
||||||
#define SPLICE_F_MOVE 0
|
#define SPLICE_F_MOVE 0
|
||||||
static ssize_t splice(int fd_in, void *off_in, int fd_out, void *off_out, size_t len, unsigned int flags)
|
static ssize_t splice(int fd_in, void *off_in, int fd_out, void *off_out, size_t len, unsigned int flags)
|
||||||
{
|
{
|
||||||
// We ignore most parameters, we just have them for conformance with the linux syscall
|
// We ignore most parameters, we just have them for conformance with the linux syscall
|
||||||
std::vector<char> buf(8192);
|
std::vector<char> buf(8192);
|
||||||
auto read_count = read(fd_in, buf.data(), buf.size());
|
auto read_count = read(fd_in, buf.data(), buf.size());
|
||||||
if (read_count == -1)
|
if (read_count == -1)
|
||||||
|
@ -57,7 +57,7 @@ static void sigChldHandler(int sigNo)
|
||||||
{
|
{
|
||||||
// Ensure we don't modify errno of whatever we've interrupted
|
// Ensure we don't modify errno of whatever we've interrupted
|
||||||
auto saved_errno = errno;
|
auto saved_errno = errno;
|
||||||
// Reap all dead children.
|
// Reap all dead children.
|
||||||
while (waitpid(-1, 0, WNOHANG) > 0) ;
|
while (waitpid(-1, 0, WNOHANG) > 0) ;
|
||||||
errno = saved_errno;
|
errno = saved_errno;
|
||||||
}
|
}
|
||||||
|
@ -106,7 +106,7 @@ struct PeerInfo
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
// Get the identity of the caller, if possible.
|
// Get the identity of the caller, if possible.
|
||||||
static PeerInfo getPeerInfo(int remote)
|
static PeerInfo getPeerInfo(int remote)
|
||||||
{
|
{
|
||||||
PeerInfo peer = { false, 0, false, 0, false, 0 };
|
PeerInfo peer = { false, 0, false, 0, false, 0 };
|
||||||
|
@ -154,12 +154,12 @@ static void daemonLoop(char * * argv)
|
||||||
if (chdir("/") == -1)
|
if (chdir("/") == -1)
|
||||||
throw SysError("cannot change current directory");
|
throw SysError("cannot change current directory");
|
||||||
|
|
||||||
// Get rid of children automatically; don't let them become zombies.
|
// Get rid of children automatically; don't let them become zombies.
|
||||||
setSigChldAction(true);
|
setSigChldAction(true);
|
||||||
|
|
||||||
AutoCloseFD fdSocket;
|
AutoCloseFD fdSocket;
|
||||||
|
|
||||||
// Handle socket-based activation by systemd.
|
// Handle socket-based activation by systemd.
|
||||||
auto listenFds = getEnv("LISTEN_FDS");
|
auto listenFds = getEnv("LISTEN_FDS");
|
||||||
if (listenFds) {
|
if (listenFds) {
|
||||||
if (getEnv("LISTEN_PID") != std::to_string(getpid()) || listenFds != "1")
|
if (getEnv("LISTEN_PID") != std::to_string(getpid()) || listenFds != "1")
|
||||||
|
@ -168,17 +168,17 @@ static void daemonLoop(char * * argv)
|
||||||
closeOnExec(fdSocket.get());
|
closeOnExec(fdSocket.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Otherwise, create and bind to a Unix domain socket.
|
// Otherwise, create and bind to a Unix domain socket.
|
||||||
else {
|
else {
|
||||||
createDirs(dirOf(settings.nixDaemonSocketFile));
|
createDirs(dirOf(settings.nixDaemonSocketFile));
|
||||||
fdSocket = createUnixDomainSocket(settings.nixDaemonSocketFile, 0666);
|
fdSocket = createUnixDomainSocket(settings.nixDaemonSocketFile, 0666);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Loop accepting connections.
|
// Loop accepting connections.
|
||||||
while (1) {
|
while (1) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// Accept a connection.
|
// Accept a connection.
|
||||||
struct sockaddr_un remoteAddr;
|
struct sockaddr_un remoteAddr;
|
||||||
socklen_t remoteAddrLen = sizeof(remoteAddr);
|
socklen_t remoteAddrLen = sizeof(remoteAddr);
|
||||||
|
|
||||||
|
@ -214,7 +214,7 @@ static void daemonLoop(char * * argv)
|
||||||
% (peer.pidKnown ? std::to_string(peer.pid) : "<unknown>")
|
% (peer.pidKnown ? std::to_string(peer.pid) : "<unknown>")
|
||||||
% (peer.uidKnown ? user : "<unknown>"));
|
% (peer.uidKnown ? user : "<unknown>"));
|
||||||
|
|
||||||
// Fork a child to handle the connection.
|
// Fork a child to handle the connection.
|
||||||
ProcessOptions options;
|
ProcessOptions options;
|
||||||
options.errorPrefix = "unexpected Nix daemon error: ";
|
options.errorPrefix = "unexpected Nix daemon error: ";
|
||||||
options.dieWithParent = false;
|
options.dieWithParent = false;
|
||||||
|
@ -223,20 +223,20 @@ static void daemonLoop(char * * argv)
|
||||||
startProcess([&]() {
|
startProcess([&]() {
|
||||||
fdSocket = -1;
|
fdSocket = -1;
|
||||||
|
|
||||||
// Background the daemon.
|
// Background the daemon.
|
||||||
if (setsid() == -1)
|
if (setsid() == -1)
|
||||||
throw SysError("creating a new session");
|
throw SysError("creating a new session");
|
||||||
|
|
||||||
// Restore normal handling of SIGCHLD.
|
// Restore normal handling of SIGCHLD.
|
||||||
setSigChldAction(false);
|
setSigChldAction(false);
|
||||||
|
|
||||||
// For debugging, stuff the pid into argv[1].
|
// For debugging, stuff the pid into argv[1].
|
||||||
if (peer.pidKnown && argv[1]) {
|
if (peer.pidKnown && argv[1]) {
|
||||||
string processName = std::to_string(peer.pid);
|
string processName = std::to_string(peer.pid);
|
||||||
strncpy(argv[1], processName.c_str(), strlen(argv[1]));
|
strncpy(argv[1], processName.c_str(), strlen(argv[1]));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle the connection.
|
// Handle the connection.
|
||||||
FdSource from(remote.get());
|
FdSource from(remote.get());
|
||||||
FdSink to(remote.get());
|
FdSink to(remote.get());
|
||||||
processConnection(openUncachedStore(), from, to, trusted, NotRecursive, user, peer.uid);
|
processConnection(openUncachedStore(), from, to, trusted, NotRecursive, user, peer.uid);
|
||||||
|
@ -263,7 +263,7 @@ static int _main(int argc, char * * argv)
|
||||||
|
|
||||||
parseCmdLine(argc, argv, [&](Strings::iterator & arg, const Strings::iterator & end) {
|
parseCmdLine(argc, argv, [&](Strings::iterator & arg, const Strings::iterator & end) {
|
||||||
if (*arg == "--daemon")
|
if (*arg == "--daemon")
|
||||||
; // ignored for backwards compatibility
|
; // ignored for backwards compatibility
|
||||||
else if (*arg == "--help")
|
else if (*arg == "--help")
|
||||||
showManPage("nix-daemon");
|
showManPage("nix-daemon");
|
||||||
else if (*arg == "--version")
|
else if (*arg == "--version")
|
||||||
|
@ -278,7 +278,7 @@ static int _main(int argc, char * * argv)
|
||||||
|
|
||||||
if (stdio) {
|
if (stdio) {
|
||||||
if (getStoreType() == tDaemon) {
|
if (getStoreType() == tDaemon) {
|
||||||
// Forward on this connection to the real daemon
|
// Forward on this connection to the real daemon
|
||||||
auto socketPath = settings.nixDaemonSocketFile;
|
auto socketPath = settings.nixDaemonSocketFile;
|
||||||
auto s = socket(PF_UNIX, SOCK_STREAM, 0);
|
auto s = socket(PF_UNIX, SOCK_STREAM, 0);
|
||||||
if (s == -1)
|
if (s == -1)
|
||||||
|
|
|
@ -123,7 +123,7 @@ static void getAllExprs(EvalState & state,
|
||||||
if (hasSuffix(attrName, ".nix"))
|
if (hasSuffix(attrName, ".nix"))
|
||||||
attrName = string(attrName, 0, attrName.size() - 4);
|
attrName = string(attrName, 0, attrName.size() - 4);
|
||||||
if (!attrs.insert(attrName).second) {
|
if (!attrs.insert(attrName).second) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Name collision",
|
.name = "Name collision",
|
||||||
.hint = hintfmt("warning: name collision in input Nix expressions, skipping '%1%'", path2)
|
.hint = hintfmt("warning: name collision in input Nix expressions, skipping '%1%'", path2)
|
||||||
});
|
});
|
||||||
|
@ -874,7 +874,7 @@ static void queryJSON(Globals & globals, vector<DrvInfo> & elems)
|
||||||
auto placeholder = metaObj.placeholder(j);
|
auto placeholder = metaObj.placeholder(j);
|
||||||
Value * v = i.queryMeta(j);
|
Value * v = i.queryMeta(j);
|
||||||
if (!v) {
|
if (!v) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Invalid meta attribute",
|
.name = "Invalid meta attribute",
|
||||||
.hint = hintfmt("derivation '%s' has invalid meta attribute '%s'",
|
.hint = hintfmt("derivation '%s' has invalid meta attribute '%s'",
|
||||||
i.queryName(), j)
|
i.queryName(), j)
|
||||||
|
@ -1128,8 +1128,8 @@ static void opQuery(Globals & globals, Strings opFlags, Strings opArgs)
|
||||||
XMLAttrs attrs2;
|
XMLAttrs attrs2;
|
||||||
attrs2["name"] = j;
|
attrs2["name"] = j;
|
||||||
Value * v = i.queryMeta(j);
|
Value * v = i.queryMeta(j);
|
||||||
if (!v)
|
if (!v)
|
||||||
logError({
|
logError({
|
||||||
.name = "Invalid meta attribute",
|
.name = "Invalid meta attribute",
|
||||||
.hint = hintfmt(
|
.hint = hintfmt(
|
||||||
"derivation '%s' has invalid meta attribute '%s'",
|
"derivation '%s' has invalid meta attribute '%s'",
|
||||||
|
|
|
@ -704,7 +704,7 @@ static void opVerify(Strings opFlags, Strings opArgs)
|
||||||
else throw UsageError("unknown flag '%1%'", i);
|
else throw UsageError("unknown flag '%1%'", i);
|
||||||
|
|
||||||
if (store->verifyStore(checkContents, repair)) {
|
if (store->verifyStore(checkContents, repair)) {
|
||||||
logWarning({
|
logWarning({
|
||||||
.name = "Store consistency",
|
.name = "Store consistency",
|
||||||
.description = "not all errors were fixed"
|
.description = "not all errors were fixed"
|
||||||
});
|
});
|
||||||
|
@ -729,7 +729,7 @@ static void opVerifyPath(Strings opFlags, Strings opArgs)
|
||||||
store->narFromPath(path, sink);
|
store->narFromPath(path, sink);
|
||||||
auto current = sink.finish();
|
auto current = sink.finish();
|
||||||
if (current.first != info->narHash) {
|
if (current.first != info->narHash) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Hash mismatch",
|
.name = "Hash mismatch",
|
||||||
.hint = hintfmt(
|
.hint = hintfmt(
|
||||||
"path '%s' was modified! expected hash '%s', got '%s'",
|
"path '%s' was modified! expected hash '%s', got '%s'",
|
||||||
|
|
|
@ -99,12 +99,12 @@ struct CmdVerify : StorePathsCommand
|
||||||
if (hash.first != info->narHash) {
|
if (hash.first != info->narHash) {
|
||||||
corrupted++;
|
corrupted++;
|
||||||
act2.result(resCorruptedPath, store->printStorePath(info->path));
|
act2.result(resCorruptedPath, store->printStorePath(info->path));
|
||||||
logError({
|
logError({
|
||||||
.name = "Hash error - path modified",
|
.name = "Hash error - path modified",
|
||||||
.hint = hintfmt(
|
.hint = hintfmt(
|
||||||
"path '%s' was modified! expected hash '%s', got '%s'",
|
"path '%s' was modified! expected hash '%s', got '%s'",
|
||||||
store->printStorePath(info->path),
|
store->printStorePath(info->path),
|
||||||
info->narHash.to_string(Base32, true),
|
info->narHash.to_string(Base32, true),
|
||||||
hash.first.to_string(Base32, true))
|
hash.first.to_string(Base32, true))
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -154,7 +154,7 @@ struct CmdVerify : StorePathsCommand
|
||||||
if (!good) {
|
if (!good) {
|
||||||
untrusted++;
|
untrusted++;
|
||||||
act2.result(resUntrustedPath, store->printStorePath(info->path));
|
act2.result(resUntrustedPath, store->printStorePath(info->path));
|
||||||
logError({
|
logError({
|
||||||
.name = "Untrusted path",
|
.name = "Untrusted path",
|
||||||
.hint = hintfmt("path '%s' is untrusted",
|
.hint = hintfmt("path '%s' is untrusted",
|
||||||
store->printStorePath(info->path))
|
store->printStorePath(info->path))
|
||||||
|
|
|
@ -39,7 +39,7 @@ std::set<std::string> runResolver(const Path & filename)
|
||||||
throw SysError("statting '%s'", filename);
|
throw SysError("statting '%s'", filename);
|
||||||
|
|
||||||
if (!S_ISREG(st.st_mode)) {
|
if (!S_ISREG(st.st_mode)) {
|
||||||
logError({
|
logError({
|
||||||
.name = "Regular MACH file",
|
.name = "Regular MACH file",
|
||||||
.hint = hintfmt("file '%s' is not a regular file", filename)
|
.hint = hintfmt("file '%s' is not a regular file", filename)
|
||||||
});
|
});
|
||||||
|
@ -47,7 +47,7 @@ std::set<std::string> runResolver(const Path & filename)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (st.st_size < sizeof(mach_header_64)) {
|
if (st.st_size < sizeof(mach_header_64)) {
|
||||||
logError({
|
logError({
|
||||||
.name = "File too short",
|
.name = "File too short",
|
||||||
.hint = hintfmt("file '%s' is too short for a MACH binary", filename)
|
.hint = hintfmt("file '%s' is too short for a MACH binary", filename)
|
||||||
});
|
});
|
||||||
|
@ -72,7 +72,7 @@ std::set<std::string> runResolver(const Path & filename)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mach64_offset == 0) {
|
if (mach64_offset == 0) {
|
||||||
logError({
|
logError({
|
||||||
.name = "No mach64 blobs",
|
.name = "No mach64 blobs",
|
||||||
.hint = hintfmt("Could not find any mach64 blobs in file '%1%', continuing...", filename)
|
.hint = hintfmt("Could not find any mach64 blobs in file '%1%', continuing...", filename)
|
||||||
});
|
});
|
||||||
|
@ -81,7 +81,7 @@ std::set<std::string> runResolver(const Path & filename)
|
||||||
} else if (magic == MH_MAGIC_64 || magic == MH_CIGAM_64) {
|
} else if (magic == MH_MAGIC_64 || magic == MH_CIGAM_64) {
|
||||||
mach64_offset = 0;
|
mach64_offset = 0;
|
||||||
} else {
|
} else {
|
||||||
logError({
|
logError({
|
||||||
.name = "Magic number",
|
.name = "Magic number",
|
||||||
.hint = hintfmt("Object file has unknown magic number '%1%', skipping it...", magic)
|
.hint = hintfmt("Object file has unknown magic number '%1%', skipping it...", magic)
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue