~ruther/guix-local

27b14dee50af460af439909f3b052ba2ffc5e1ef — Greg Hogan 1 year, 3 months ago 9db3e6f
gnu: ninja: Update to 1.13.1.

* gnu/packages/ninja (ninja): Rename to ...
(ninja-pinned): ... this and update to 1.13.1.
[arguments]<#:tests?>: Disable.
[inputs]: Add re2c.
(ninja): Inherit from ninja/pinned.
* guix/build-system/cmake.scm, guix/build-system/meson.scm,
guix/build-system/qt.scm (default-ninja): Use ninja/pinned.
* gnu/packages/build-tools.scm (meson)[inputs],
(meson-python)[propagated-inputs]: Replace ninja with ninja/pinned.
* gnu/packages/python-xyz.scm (python-dbus-python, python-scikit-build)
[native-inputs]: Replace ninja with ninja/pinned.

Change-Id: I1b0291a37e83280ed66fd8042df962ada6d475be
M gnu/packages/build-tools.scm => gnu/packages/build-tools.scm +2 -2
@@ 329,7 329,7 @@ files and generates build instructions for the Ninja build system.")
import sys
sys.path.insert(0, '~a')
# EASY-INSTALL-ENTRY-SCRIPT" (site-packages inputs outputs)))))))))
    (inputs (list python ninja))
    (inputs (list python ninja/pinned))
    (home-page "https://mesonbuild.com/")
    (synopsis "Build system designed to be fast and user-friendly")
    (description


@@ 359,7 359,7 @@ resembles Python.")
                                "-k" "not test_pep518")))
    (propagated-inputs
     (list meson
           ninja
           ninja/pinned
           python-colorama
           python-cython-3
           python-pyproject-metadata

M gnu/packages/ninja.scm => gnu/packages/ninja.scm +56 -45
@@ 25,61 25,72 @@
  #:use-module ((guix licenses) #:select (asl2.0 expat))
  #:use-module (guix gexp)
  #:use-module (guix packages)
  #:use-module (guix utils)
  #:use-module (guix git-download)
  #:use-module (guix build-system gnu)
  #:use-module (guix build-system trivial)
  #:use-module (guix utils)
  #:use-module (gnu packages)
  #:use-module (gnu packages bash)
  #:use-module (gnu packages python))
  #:use-module (gnu packages python)
  #:use-module (gnu packages re2c)
  #:use-module (srfi srfi-1))

(define-public ninja
  (package
    (name "ninja")
    (version "1.11.1")
    (source (origin
              (method git-fetch)
              (uri (git-reference
                    (url "https://github.com/ninja-build/ninja")
                    (commit (string-append "v" version))))
              (file-name (git-file-name name version))
              (sha256
               (base32
                "14kshkxdn833nkz2qkzb3w531dcqj6haad90gxj70ic05lb7zx9f"))))
    (build-system gnu-build-system)
    (inputs (list python-wrapper))
    (arguments
     '(#:phases
       (modify-phases %standard-phases
         (replace 'configure
           (lambda _
             (substitute* "src/subprocess-posix.cc"
               (("/bin/sh") (which "sh")))
             (substitute* "src/subprocess_test.cc"
               (("/bin/echo") (which "echo")))))
         (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)))))))
    (home-page "https://ninja-build.org/")
    (synopsis "Small build system")
    (description
     "Ninja is a small build system with a focus on speed.  It differs from
(define-public ninja/pinned
  (hidden-package
   (package
     (name "ninja")
     (version "1.13.1")
     (source (origin
               (method git-fetch)
               (uri (git-reference
                     (url "https://github.com/ninja-build/ninja")
                     (commit (string-append "v" version))))
               (file-name (git-file-name name version))
               (sha256
                (base32
                 "0vil4mz0h1z39d2airzdi8cia8xhn3n5p94pv4sd3mqk0pkha40s"))))
     (build-system gnu-build-system)
     (inputs (list python-wrapper re2c))
     (arguments
      '(; Tests now require googletest, which is a circular dependency.
        #:tests? #f
        #:phases
        (modify-phases %standard-phases
          (replace 'configure
            (lambda _
              (substitute* "src/subprocess-posix.cc"
                (("/bin/sh") (which "sh")))
              (substitute* "src/subprocess_test.cc"
                (("/bin/echo") (which "echo")))))
          (replace 'build
            (lambda _
              (invoke "./configure.py" "--bootstrap")))
          (replace 'check
            (lambda* (#:key tests? #:allow-other-keys)
              (when tests?
                (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)))))))
     (home-page "https://ninja-build.org/")
     (synopsis "Small build system")
     (description
      "Ninja is a small build system with a focus on speed.  It differs from
other build systems in two major respects: it is designed to have its input
files generated by a higher-level build system, and it is designed to run
builds as fast as possible.")
    (license asl2.0)))
    (license asl2.0))))

(define-public ninja
  (package/inherit ninja/pinned
    (properties (alist-delete 'hidden? (package-properties ninja/pinned)))))

(define-public samurai
  (package

M gnu/packages/python-xyz.scm => gnu/packages/python-xyz.scm +2 -2
@@ 31781,7 31781,7 @@ Its algorithms are based on the kakasi library, which is written in C.")
     (list pkg-config
           python-meson-python
           meson
           ninja
           ninja/pinned
           patchelf
           python-setuptools
           python-sphinx


@@ 35537,7 35537,7 @@ and frame grabber interface.")
     (list cmake-minimal
           gfortran
           git-minimal/pinned           ;for tests
           ninja
           ninja/pinned
           python-coverage
           python-cython
           python-hatchling

M guix/build-system/cmake.scm => guix/build-system/cmake.scm +11 -5
@@ 31,7 31,9 @@
  #:use-module (guix packages)
  #:export (%cmake-build-system-modules
            cmake-build
            cmake-build-system))
            cmake-build-system
            default-cmake
            default-ninja))

;; Commentary:
;;


@@ 64,10 66,17 @@
                    'cmake-minimal-cross
                    'cmake-minimal))))

(define (default-ninja)
  "Return the default ninja package."
  ;; Lazily resolve the binding to avoid a circular dependency.
  (let ((module (resolve-interface '(gnu packages ninja))))
    (module-ref module 'ninja/pinned)))

(define* (lower name
                #:key source inputs native-inputs outputs system target
                (implicit-inputs? #t) (implicit-cross-inputs? #t)
                (cmake (default-cmake target))
                (ninja (default-ninja))
                #:allow-other-keys
                #:rest arguments)
  "Return a bag for NAME."


@@ 84,10 93,7 @@
                          `(("source" ,source))
                          '())
                    ,@`(("cmake" ,cmake))
                    ,@`(("ninja" ,(module-ref
                                   (resolve-interface
                                    '(gnu packages ninja))
                                   'ninja)))
                    ,@`(("ninja" ,ninja))
                    ,@native-inputs
                    ,@(if target '() inputs)
                    ,@(if (and target implicit-cross-inputs?)

M guix/build-system/meson.scm => guix/build-system/meson.scm +1 -1
@@ 137,7 137,7 @@ TRIPLET."
  "Return the default ninja package."
  ;; Lazily resolve the binding to avoid a circular dependency.
  (let ((module (resolve-interface '(gnu packages ninja))))
    (module-ref module 'ninja)))
    (module-ref module 'ninja/pinned)))

(define (default-meson)
  "Return the default meson package."

M guix/build-system/qt.scm => guix/build-system/qt.scm +3 -12
@@ 61,13 61,6 @@
    (guix build qt-utils)
    ,@%cmake-build-system-modules))

(define (default-cmake)
  "Return the default CMake package."

  ;; Do not use `@' to avoid introducing circular dependencies.
  (let ((module (resolve-interface '(gnu packages cmake))))
    (module-ref module 'cmake-minimal)))

(define (default-qtbase)
  "Return the default qtbase package."



@@ 79,7 72,8 @@
;; the variables defined here.
(define* (lower name
                #:key source inputs native-inputs outputs system target
                (cmake (default-cmake))
                (cmake (default-cmake target))
                (ninja (default-ninja))
                (qtbase (default-qtbase))
                #:allow-other-keys
                #:rest arguments)


@@ 96,10 90,7 @@
                          `(("source" ,source))
                          '())
                    ,@`(("cmake" ,cmake))
                    ,@`(("ninja" ,(module-ref
                                   (resolve-interface
                                    '(gnu packages ninja))
                                   'ninja)))
                    ,@`(("ninja" ,ninja))
                    ,@`(("qtbase" ,qtbase))
                    ,@native-inputs
                    ,@(if target