summary refs log tree commit diff
path: root/gnu/packages/patches/ninja-zero-mtime.patch
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-07-18 23:27:18 +0200
committerLudovic Courtès <ludo@gnu.org>2015-07-18 23:27:18 +0200
commit2e839545c7f363b50ae760c9b9c15da9e7619da9 (patch)
treeca2cb9147e50431b4e1fcd7626e2c50812c826ad /gnu/packages/patches/ninja-zero-mtime.patch
parentc5c4c4b437f977f4aaedb34a258cd94146c93d4d (diff)
downloadguix-2e839545c7f363b50ae760c9b9c15da9e7619da9.tar.gz
gnu: ninja: Do not report files with mtime = 0 as missing.
This is a followup to 47f315a.

* gnu/packages/patches/ninja-zero-mtime.patch: New file.
* gnu-system.am (dist_patch_DATA): Add it.
* gnu/packages/ninja.scm (ninja)[source]: Reinstate 'patches' field and add
  this patch.
  [arguments]: Remove 'apply-ninja-tests.patch' phase.
Diffstat (limited to 'gnu/packages/patches/ninja-zero-mtime.patch')
-rw-r--r--gnu/packages/patches/ninja-zero-mtime.patch19
1 files changed, 19 insertions, 0 deletions
diff --git a/gnu/packages/patches/ninja-zero-mtime.patch b/gnu/packages/patches/ninja-zero-mtime.patch
new file mode 100644
index 0000000000..c9b9e8d798
--- /dev/null
+++ b/gnu/packages/patches/ninja-zero-mtime.patch
@@ -0,0 +1,19 @@
+Work around a design defect in Ninja whereby a zero mtime is used to
+denote missing files (we happen to produce files that have a zero mtime
+and yet really do exist.)
+
+--- ninja-1.5.3/src/disk_interface.cc	2014-11-24 18:37:47.000000000 +0100
++++ ninja-1.5.3/src/disk_interface.cc	2015-07-18 23:20:38.572290139 +0200
+@@ -194,6 +194,12 @@ TimeStamp RealDiskInterface::Stat(const
+     }
+     return -1;
+   }
++
++  if (st.st_mtime == 0)
++    // All the code assumes that mtime == 0 means "file missing".  Here we
++    // know the file is not missing, so tweak the mtime.
++    st.st_mtime = 1;
++
+   return st.st_mtime;
+ #endif
+ }