oom pushed a commit to branch c++-team in repository guix. commit f8e202ca6a78681bc447d547ee98232f18e1ba34 Author: Greg Hogan <c...@greghogan.com> AuthorDate: Wed Apr 2 16:29:24 2025 +0000
gnu: ninja: Update to 1.12.1. * gnu/packages/ninja (ninja): Rename to ... (ninja-pinned): ... this and update to 1.12.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 --- gnu/packages/build-tools.scm | 4 +- gnu/packages/ninja.scm | 103 ++++++++++++++++++++++++------------------- gnu/packages/python-xyz.scm | 4 +- guix/build-system/cmake.scm | 16 ++++--- guix/build-system/meson.scm | 2 +- guix/build-system/qt.scm | 15 ++----- 6 files changed, 77 insertions(+), 67 deletions(-) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index 1335989bb2..c13b9928e6 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -322,7 +322,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 @@ -352,7 +352,7 @@ resembles Python.") "-k" "not test_pep518"))) (propagated-inputs (list meson - ninja + ninja/pinned python-colorama python-cython-3 python-pyproject-metadata diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm index 42c9309b82..e20b3510c2 100644 --- a/gnu/packages/ninja.scm +++ b/gnu/packages/ninja.scm @@ -23,55 +23,68 @@ (define-module (gnu packages ninja) #:use-module ((guix licenses) #:select (asl2.0)) #:use-module (guix packages) + #:use-module (guix utils) #:use-module (guix git-download) #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) #:use-module (gnu packages) - #: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.12.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 + "00033jmh30z2vjxs40hjfnn74inlfwzn412l26wi2nzg63wnwgj5")))) + (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))))) + diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 0fc26f3dcb..3146242861 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -31636,7 +31636,7 @@ for YAML and JSON.") (list pkg-config python-meson-python meson - ninja + ninja/pinned patchelf python-setuptools python-sphinx @@ -35417,7 +35417,7 @@ and frame grabber interface.") (list cmake-minimal gfortran git-minimal/pinned ;for tests - ninja + ninja/pinned python-coverage python-cython python-hatchling diff --git a/guix/build-system/cmake.scm b/guix/build-system/cmake.scm index 785dd17fe6..a453ee8868 100644 --- a/guix/build-system/cmake.scm +++ b/guix/build-system/cmake.scm @@ -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?) diff --git a/guix/build-system/meson.scm b/guix/build-system/meson.scm index 5eeeb59e65..612e148fb6 100644 --- a/guix/build-system/meson.scm +++ b/guix/build-system/meson.scm @@ -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." diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index ea1095a64c..85ae2f0047 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -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