diff --git a/doc/manual/writing-nix-expressions.xml b/doc/manual/writing-nix-expressions.xml index aca5c7c6ca..1151b0f33a 100644 --- a/doc/manual/writing-nix-expressions.xml +++ b/doc/manual/writing-nix-expressions.xml @@ -1432,7 +1432,7 @@ command-line argument. See After the build, Nix sets the last-modified - timestamp on all files in the build result to 0 (00:00:00 1/1/1970 + timestamp on all files in the build result to 1 (00:00:01 1/1/1970 UTC), sets the group to the default group, and sets the mode of the file to 0444 or 0555 (i.e., read-only, with execute permission enabled if the file was originally executable). Note that possible diff --git a/src/libstore/local-store.cc b/src/libstore/local-store.cc index 51a32a3d1e..704bb1a066 100644 --- a/src/libstore/local-store.cc +++ b/src/libstore/local-store.cc @@ -153,7 +153,7 @@ void canonicalisePathMetaData(const Path & path, bool recurse) if (st.st_mtime != 0) { struct utimbuf utimbuf; utimbuf.actime = st.st_atime; - utimbuf.modtime = 0; + utimbuf.modtime = 1; /* 1 second into the epoch */ if (utime(path.c_str(), &utimbuf) == -1) throw SysError(format("changing modification time of `%1%'") % path); } diff --git a/src/libstore/local-store.hh b/src/libstore/local-store.hh index a422af3981..03b3b389f9 100644 --- a/src/libstore/local-store.hh +++ b/src/libstore/local-store.hh @@ -190,8 +190,8 @@ void copyPath(const Path & src, const Path & dst); /* "Fix", or canonicalise, the meta-data of the files in a store path after it has been built. In particular: - - the last modification date on each file is set to 0 (i.e., - 00:00:00 1/1/1970 UTC) + - the last modification date on each file is set to 1 (i.e., + 00:00:01 1/1/1970 UTC) - the permissions are set of 444 or 555 (i.e., read-only with or without execute permission; setuid bits etc. are cleared) - the owner and group are set to the Nix user and group, if we're