~ruther/guix-local

5bb12e1462c4ecfbed829b09ed011853dd74209d — Tobias Geerinckx-Rice 8 years ago 5d0bd1f
gnu: ninja: Update to 1.8.2.

* gnu/packages/ninja.scm (ninja): Update to 1.8.2.
[source]: Remove upstreamed patch.
[arguments]: Substitute INVOKE for SYSTEM*.  Use standard indentation.
* gnu/packages/patches/ninja-zero-mtime.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Remove it.
3 files changed, 24 insertions(+), 48 deletions(-)

M gnu/local.mk
M gnu/packages/ninja.scm
D gnu/packages/patches/ninja-zero-mtime.patch
M gnu/local.mk => gnu/local.mk +0 -1
@@ 925,7 925,6 @@ dist_patch_DATA =						\
  %D%/packages/patches/netsurf-y2038-tests.patch		\
  %D%/packages/patches/netsurf-longer-test-timeout.patch	\
  %D%/packages/patches/ngircd-handle-zombies.patch		\
  %D%/packages/patches/ninja-zero-mtime.patch			\
  %D%/packages/patches/node-test-http2-server-rst-stream.patch	\
  %D%/packages/patches/nss-increase-test-timeout.patch		\
  %D%/packages/patches/nss-pkgconfig.patch			\

M gnu/packages/ninja.scm => gnu/packages/ninja.scm +24 -28
@@ 2,6 2,7 @@
;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 29,7 30,7 @@
(define-public ninja
  (package
    (name "ninja")
    (version "1.7.2")
    (version "1.8.2")
    (source (origin
              (method url-fetch)
              (uri (string-append "https://github.com/martine/ninja/"


@@ 37,38 38,33 @@
              (file-name (string-append name "-" version ".tar.gz"))
              (sha256
               (base32
                "1n8n3g26ppwh7zwrc37n3alkbpbj0wki34ih53s3rkhs8ajs1p9f"))
              (patches (search-patches "ninja-zero-mtime.patch"))))
                "1x66q6494ml1p1f74mxzik1giakl4zj7rxig9jsc50087l671f46"))))
    (build-system gnu-build-system)
    (native-inputs `(("python" ,python-2)))
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (replace
          'configure
          (lambda _
            (substitute* "src/subprocess-posix.cc"
              (("/bin/sh") (which "sh")))
            #t))
         (replace
          'build
          (lambda _
            (zero? (system* "./configure.py" "--bootstrap"))))
         (replace
          'check
          (lambda _
            (and (zero? (system* "./configure.py"))
                 (zero? (system* "./ninja" "ninja_test"))
                 (zero? (system* "./ninja_test")))))
         (replace
          'install
          (lambda* (#:key outputs #:allow-other-keys)
            (let* ((out (assoc-ref outputs "out"))
                   (bin (string-append out "/bin"))
                   (doc (string-append out "/share/doc/ninja")))
              (install-file "ninja" bin)
              (install-file "doc/manual.asciidoc" doc)
              #t))))))
         (replace 'configure
           (lambda _
             (substitute* "src/subprocess-posix.cc"
               (("/bin/sh") (which "sh")))
             #t))
         (replace 'build
           (lambda _
             (invoke "./configure.py" "--bootstrap")))
         (replace 'check
           (lambda _
             (invoke "./configure.py")
             (invoke "./ninja" "ninja_test")
             (invoke "./ninja_test")))
         (replace 'install
           (lambda* (#:key outputs #:allow-other-keys)
             (let* ((out (assoc-ref outputs "out"))
                    (bin (string-append out "/bin"))
                    (doc (string-append out "/share/doc/ninja")))
               (install-file "ninja" bin)
               (install-file "doc/manual.asciidoc" doc)
               #t))))))
    (home-page "https://ninja-build.org/")
    (synopsis "Small build system")
    (description

D gnu/packages/patches/ninja-zero-mtime.patch => gnu/packages/patches/ninja-zero-mtime.patch +0 -19
@@ 1,19 0,0 @@
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
 }