From patchwork Fri Aug 1 18:06:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: vspefs X-Patchwork-Id: 43343 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 4A57527BC4A; Sat, 2 Aug 2025 15:15:09 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 4FCA827BC49 for ; Sat, 2 Aug 2025 15:15:08 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uiD0m-0002aJ-3e; Sat, 02 Aug 2025 10:15:01 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ui5hv-0002XF-LI for guix-patches@gnu.org; Sat, 02 Aug 2025 02:27:07 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1ui5hu-0005Yc-MS for guix-patches@gnu.org; Sat, 02 Aug 2025 02:27:03 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:From:Date:To:Subject; bh=9TgI9hI2zr67A7kxuaBwK07hdoQQ0391/mD0wR5h4mc=; b=O4xOeGeSqWmdrgUGb4xBi4sSDgUfTLrdmUI4exRFy7OWelSQRljxJ2bfwYWGor1Rni6nlB3mecX1bQDOZY8E1hKxELO/xpsS41u8zNfY4Z+AuD5oXdf41vpRTtPwrQ7C1Wc0UgGX4bNiKymsx6cFk+9go1HnQKafIUXDBKMctmJI8OcV6BAn8DEVfqw4FCVHBZe4j1l6AcsMl54VER0R9/4GixjS/oo8sWtIVx/WbmWfvImnLWg2rvqrUeWTu7OVogazNXLqDU3L7rGGf+IssdM+r42so2dYhka2p5P9JyD0cbvOhtAo1l3+ApCij2ErZRAz8cH7A9BYCzBkQN2yNw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ui5hu-0002vD-90 for guix-patches@gnu.org; Sat, 02 Aug 2025 02:27:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#79146] [PATCH] Update build tools. Deprecate python-meson-python. Resent-From: vspefs Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 02 Aug 2025 06:27:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 79146 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 79146@debbugs.gnu.org X-Debbugs-Original-To: "guix-patches@gnu.org" Received: via spool by submit@debbugs.gnu.org id=B.175411599111128 (code B ref -1); Sat, 02 Aug 2025 06:27:02 +0000 Received: (at submit) by debbugs.gnu.org; 2 Aug 2025 06:26:31 +0000 Received: from localhost ([127.0.0.1]:33194 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ui5hO-0002tQ-P3 for submit@debbugs.gnu.org; Sat, 02 Aug 2025 02:26:30 -0400 Received: from lists.gnu.org ([2001:470:142::17]:34400) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uhuA7-0008MO-LN for submit@debbugs.gnu.org; Fri, 01 Aug 2025 14:07:23 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uhu9z-0004ri-Bo for guix-patches@gnu.org; Fri, 01 Aug 2025 14:07:15 -0400 Received: from mail-05.mail-europe.com ([85.9.206.169]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uhu9u-0002Oo-2M for guix-patches@gnu.org; Fri, 01 Aug 2025 14:07:14 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=protonmail.com; s=protonmail3; t=1754071617; x=1754330817; bh=9TgI9hI2zr67A7kxuaBwK07hdoQQ0391/mD0wR5h4mc=; h=Date:To:From:Subject:Message-ID:Feedback-ID:From:To:Cc:Date: Subject:Reply-To:Feedback-ID:Message-ID:BIMI-Selector; b=VaNgWG/NE6wNmExpZG6iBbiLNMOYm9KyoPRYmYkmj3dOPU456VazpuCZcxm66f9za bEYcS8ekp9ao84DqS2pa/RZNEe7vSXdchQ6WXwhZa9B5QSrol9Z8CA1ZlalcygELh2 W+Hyp+R+n8Il6thZKAaILyrZQQlBrGyOvEjB/KlKhvS4caTSjUv+Llfwb79OEL3uAK 9MZTEnhwoKAnNr4AsTRdxmwHrxyloY2j53XkdCe3D7kkANlZPjUC+E0agim43BIUA6 rwdAQiNnTVXARzKnDiFUNnZk0AbdHGLWT62+qJLUQg2HcNSVN1096xvdkchgSRU0pH EnmqsdkqU7+MA== Date: Fri, 01 Aug 2025 18:06:52 +0000 Message-ID: Feedback-ID: 21206607:user:proton X-Pm-Message-ID: 61786decae0be9da1f2a6351a1dc75a48ead0d18 MIME-Version: 1.0 Received-SPF: pass client-ip=85.9.206.169; envelope-from=vspefs@protonmail.com; helo=mail-05.mail-europe.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 02 Aug 2025 02:26:29 -0400 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-Mailman-Approved-At: Sat, 02 Aug 2025 10:13:07 -0400 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: vspefs X-ACL-Warn: , vspefs via Guix-patches X-Patchwork-Original-From: vspefs via Guix-patches via From: vspefs Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches A patch is attached to this email. ThispatchupdatesmanybuildtoolsandrelatedpackagesinGNUrepo,the formerincludinggn,meson,cmake,muon,osc,genie,pdpmake,andninja,the latterincludingcpm-cmake,bear,compiledb,andpython-pyproject-medatada. Thispatchalsodeprecatespython-meson-pythoninfavorofmeson-python.All packagesthatusepython-meson-pythonaremanuallymitigated. Rationale:Theyrefertothesamepackage.Thename"meson-python"ispreferred becauseupstreamname"meson-python"alreadycontainsa"python".Otherpackage managers (e.g. pacmanforArch) also use the name "meson-python". Only 4 packagesinGNUrepouse"python-meson-python",comparedtomorethan10 "meson-python"s. Someothermodificationsaremade.Seecommitmessagefordetailedinformation. Allpackagesinvolved,exceptforcmakeandosc,aretestedandcanbe successfullybuiltonmysystem. cmakeandoscrequirerusttobuild,whichtakesahugeamountoftimeto bootstraponmycomputer.TheGuixserverdidn't seem to have substitutes whenI tested. Sorry about that. This is my first time submitting a patch. What should be many commits are bulked together in a single commit because my local edit history ain't that clean. Apology in advance if inconvience is caused. Feel free to modify the patch. From c1a75bc3501514bea909e3b07c49647aedac0520 Mon Sep 17 00:00:00 2001 Message-ID: From: vspefs Date: Fri, 1 Aug 2025 05:55:55 +0800 Subject: [PATCH] gnu: Update build tools. Deprecate python-meson-python. * gnu/packages/build-tools.scm (bear): Update to 3.1.6. [inputs] Fix mismatched input name. * gnu/packages/build-tools.scm (gn): Update to 0.0-2271.93cc2d3. * gnu/packages/build-tools.scm (meson): Update to 1.8.3. * gnu/packages/build-tools.scm (meson-python): Update to 0.18.0. [build-system] Switch to meson-build-system to avoid circular dependency between files. [package] Move meson-python to... * gnu/packages/python-xyz.scm (meson-python): ...here. * gnu/packages/build-tools.scm (muon): Update to 0.5.0. * gnu/packages/build-tools.scm (osc): Update to 0.19.0. * gnu/packages/build-tools.scm (compiledb): Update to 0.10.7. [arguments] Discard support for python<3.3 as upstream does. [arguments] Patch hardcoded "/bin/echo" in tests. * gnu/packages/build-tools.scm (genie): Update to 1190-0.18vdlcf. * gnu/packages/build-tools.scm (pdpmake): Update to 2.0.3. * gnu/packages/cmake.scm (cmake): Update to 4.0.3. * gnu/packages/cmake.scm (cpm-cmake): Update to 0.42.0 * gnu/packages/finance.scm (beancount): [native-inputs] Switch from python-meson-python to meson-python. * gnu/packages/python-science.scm (python-scikit-misc): Likewise. * gnu/packages/python-xyz.scm (python-pywavelets): Likewise. * gnu/packages/python-xyz.scm (python-mccabe): Likewise. * gnu/packages/python-xyz-scm (python-dbus-python): Likewise. * gnu/packages/ninja.scm (ninja): Update to 1.13.1. [inputs]: Add google test source for testing. [arguments]: Use fetched google test source for testing. * gnu/packages/python-xyz.scm (python-pyproject-metadata): Update to 0.9.1. [native-inputs] Add python-flit-core. * gnu/packages/python-xyz.scm (python-meson-python): Deprecated in favor of meson-python. --- gnu/packages/build-tools.scm | 464 ++++++++++++++++---------------- gnu/packages/cmake.scm | 39 +-- gnu/packages/finance.scm | 34 ++- gnu/packages/ninja.scm | 81 +++--- gnu/packages/python-build.scm | 1 - gnu/packages/python-science.scm | 2 +- gnu/packages/python-xyz.scm | 63 +++-- 7 files changed, 344 insertions(+), 340 deletions(-) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index c466e03139..112e98100b 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -129,7 +129,7 @@ (define-public bam (define-public bear (package (name "bear") - (version "3.1.4") + (version "3.1.6") (source (origin (method git-fetch) @@ -138,7 +138,7 @@ (define-public bear (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1x99d2cycgxay62cz2ypjjkmjgrbdvz5d3pg4fyv0gnq2srnlcnm")))) + (base32 "0pnrsnwvsqby0vgb33zsrjznb7l82ji7i4aigk32hg3rl674qqvx")))) (build-system cmake-build-system) (arguments `(#:phases (modify-phases %standard-phases @@ -146,7 +146,8 @@ (define-public bear (lambda _ (substitute* "CMakeLists.txt" ;; Delete the matching line—and comment out the next. - ((".*TEST_(BEFORE_INSTALL|COMMAND).*") "#")))) + ((".*TEST_(BEFORE_INSTALL|COMMAND).*") + "#")))) (add-before 'check 'set-build-environment (lambda _ (setenv "CC" "gcc"))) @@ -155,25 +156,24 @@ (define-public bear (lambda* (#:key tests? #:allow-other-keys) (when tests? (invoke "ctest"))))))) - (inputs - `(("c-ares" ,c-ares) - ("fmt" ,fmt-8) - ("grpc" ,grpc) - ("nlohmann-json" ,nlohmann-json) - ("protobuf" ,protobuf) - ("python" ,python-wrapper) - ("re2" ,re2) - ("spdlog" ,spdlog-1.10))) - (native-inputs - `(("abseil-cpp" ,abseil-cpp-cxxstd11) - ("googletest" ,googletest) - ("openssl" ,openssl) - ("pkg-config" ,pkg-config) - ("python-lit" ,python-lit) - ("zlib" ,zlib))) + (inputs `(("c-ares" ,c-ares) + ("fmt" ,fmt-8) + ("grpc" ,grpc) + ("nlohmann-json" ,nlohmann-json) + ("protobuf" ,protobuf) + ("python-wrapper" ,python-wrapper) + ("re2" ,re2) + ("spdlog" ,spdlog-1.10))) + (native-inputs `(("abseil-cpp" ,abseil-cpp-cxxstd11) + ("googletest" ,googletest) + ("openssl" ,openssl) + ("pkg-config" ,pkg-config) + ("python-lit" ,python-lit) + ("zlib" ,zlib))) (home-page "https://github.com/rizsotto/Bear") (synopsis "Tool for generating a compilation database") - (description "A JSON compilation database is used in the Clang project to + (description + "A JSON compilation database is used in the Clang project to provide information on how a given compilation unit is processed. With this, it is easy to re-run the compilation with alternate programs. Bear is used to generate such a compilation database.") @@ -232,40 +232,42 @@ (define-public bmake (license license:bsd-3))) (define-public gn - (let ((commit "1c4151ff5c1d6fbf7fa800b8d4bb34d3abc03a41") - (revision "2072")) ;as returned by `git describe`, used below + (let ((commit "93cc2d3fa6bdcc7dc580e3382ea40e19feb7f004") + (revision "2271")) + ;; as returned by `git describe`, used below (package (name "gn") (version (git-version "0.0" revision commit)) (home-page "https://gn.googlesource.com/gn") - (source (origin - (method git-fetch) - (uri (git-reference (url home-page) (commit commit))) - (sha256 - (base32 - "02621c9nqpr4pwcapy31x36l5kbyd0vdgd0wdaxj5p8hrxk67d6b")) - (file-name (git-file-name name version)))) + (source + (origin + (method git-fetch) + (uri (git-reference + (url home-page) + (commit commit))) + (sha256 + (base32 "1mdnkl4crhgbgl3zz5pyrfw1b4vz643pbki88s52d35fgjyw74ag")) + (file-name (git-file-name name version)))) (build-system gnu-build-system) (arguments - (list #:phases - #~(modify-phases %standard-phases - (add-before 'configure 'set-build-environment - (lambda _ - (setenv "CC" "gcc") - (setenv "CXX" "g++") - (setenv "CXXFLAGS" "-g -O2 -Wno-error=redundant-move") - (setenv "AR" "ar"))) - (replace 'configure - (lambda _ - (invoke "python" "build/gen.py" - "--no-last-commit-position"))) - (add-after 'configure 'create-last-commit-position - (lambda _ - ;; Mimic GenerateLastCommitPosition from gen.py. - (call-with-output-file "out/last_commit_position.h" - (lambda (port) - (format port - "// Generated by Guix. + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'configure 'set-build-environment + (lambda _ + (setenv "CC" "gcc") + (setenv "CXX" "g++") + (setenv "CXXFLAGS" "-g -O2 -Wno-error=redundant-move") + (setenv "AR" "ar"))) + (replace 'configure + (lambda _ + (invoke "python" "build/gen.py" "--no-last-commit-position"))) + (add-after 'configure 'create-last-commit-position + (lambda _ + ;; Mimic GenerateLastCommitPosition from gen.py. + (call-with-output-file "out/last_commit_position.h" + (lambda (port) + (format port "// Generated by Guix. #ifndef OUT_LAST_COMMIT_POSITION_H_ #define OUT_LAST_COMMIT_POSITION_H_ @@ -275,25 +277,34 @@ (define-public gn #endif // OUT_LAST_COMMIT_POSITION_H_ " - #$revision #$revision - #$(string-take commit 12)))))) - (replace 'build - (lambda _ - (invoke "ninja" "-C" "out" "gn" - "-j" (number->string (parallel-job-count))))) - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (if tests? - (begin - (invoke "ninja" "-C" "out" "gn_unittests" - "-j" (number->string (parallel-job-count))) - (invoke "./out/gn_unittests")) - (format #t "test suite not run~%")))) - (replace 'install - (lambda _ - (install-file "out/gn" (string-append #$output "/bin"))))))) - (native-inputs - (list ninja python-wrapper)) + #$revision + #$revision + #$(string-take commit 12)))))) + (replace 'build + (lambda _ + (invoke "ninja" + "-C" + "out" + "gn" + "-j" + (number->string (parallel-job-count))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (if tests? + (begin + (invoke "ninja" + "-C" + "out" + "gn_unittests" + "-j" + (number->string (parallel-job-count))) + (invoke "./out/gn_unittests")) + (format #t "test suite not run~%")))) + (replace 'install + (lambda _ + (install-file "out/gn" + (string-append #$output "/bin"))))))) + (native-inputs (list ninja python-wrapper)) (synopsis "Generate Ninja build files") (description "GN is a tool that collects information about a project from @file{.gn} @@ -305,30 +316,34 @@ (define-public gn (define-public meson (package (name "meson") - (version "1.5.2") - (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mesonbuild/meson/" - "releases/download/" version "/meson-" - version ".tar.gz")) - (sha256 - (base32 - "02wi62k9w7716xxdgrrx68q89vaq3ncnbpw5ms0g27npn2df0mgr")))) + (version "1.8.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/mesonbuild/meson/" + "releases/download/" + version + "/meson-" + version + ".tar.gz")) + (sha256 + (base32 "1gvs2mm6z2b4pgsv1d9gl7cm68gqvcr244nh5p63g8f01y8sl67i")))) (build-system python-build-system) (arguments - (list #:tests? #f ;disabled to avoid extra dependencies - #:phases - #~(modify-phases %standard-phases - ;; Meson calls the various executables in out/bin through the - ;; Python interpreter, so we cannot use the shell wrapper. - (replace 'wrap - (lambda* (#:key inputs outputs #:allow-other-keys) - (substitute* (search-input-file outputs "bin/meson") - (("# EASY-INSTALL-ENTRY-SCRIPT") - (format #f "\ -import sys + (list + #:tests? #f ;disabled to avoid extra dependencies + #:phases + #~(modify-phases %standard-phases + ;; Meson calls the various executables in out/bin through the + ;; Python interpreter, so we cannot use the shell wrapper. + (replace 'wrap + (lambda* (#:key inputs outputs #:allow-other-keys) + (substitute* (search-input-file outputs "bin/meson") + (("# EASY-INSTALL-ENTRY-SCRIPT") + (format #f "import sys sys.path.insert(0, '~a') -# EASY-INSTALL-ENTRY-SCRIPT" (site-packages inputs outputs))))))))) +# EASY-INSTALL-ENTRY-SCRIPT" + (site-packages inputs outputs))))))))) (inputs (list python ninja)) (home-page "https://mesonbuild.com/") (synopsis "Build system designed to be fast and user-friendly") @@ -341,113 +356,82 @@ (define-public meson resembles Python.") (license license:asl2.0))) -(define-public meson-python +(define-public muon (package - (name "meson-python") - (version "0.17.1") - (source (origin - (method url-fetch) - (uri (pypi-uri "meson_python" version)) - (sha256 - (base32 - "10szxcqgki4zwkrwmsirdg68h03k9qmfswd4r5xyz7p1y9lizfgg")))) - (build-system pyproject-build-system) + (name "muon") + (version "0.5.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/muon-build/muon") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1w0vkishj7r3swzg4m1fl3hacs8mycwhsrr5vw8sy67y81cihqbd")))) + (build-system meson-build-system) (arguments - (list #:test-flags #~(list "tests" - ;; The test_pep518 tries to install - ;; dependencies from the network using pip. - "-k" "not test_pep518"))) - (propagated-inputs - (list meson - ninja - python-colorama - python-cython-3 - python-pyproject-metadata - python-tomli - python-typing-extensions - python-wheel)) - (native-inputs - (list ;; For tests. - git-minimal/pinned - patchelf - pkg-config - python-cython-3 - python-gitpython - python-pytest - python-pytest-cov - python-pytest-mock)) - (home-page "https://github.com/mesonbuild/meson-python") - (synopsis "Meson-based build backend for Python") - (description "Meson-python is a PEP 517 build backend for Meson projects.") - (license license:expat))) - -(define-public muon - ;; Use the latest commit, as there hasn't yet been a new release including - ;; recent changes (see: https://github.com/muon-build/muon/issues/146). - (let ((commit "55b7285a92779bd8b8870482e5535ce878f3e09f") - (revision "0")) - (package - (name "muon") - (version (git-version "0.4.0" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/muon-build/muon") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0kpk1h82djb0brxkwy5ylpvdpp2l1489bq822dmryhmsd573ii48")))) - (build-system meson-build-system) - (arguments - (list #:meson (computed-file "null-package" #~(mkdir #$output)) - #:ninja samu-as-ninja-wrapper - #:configure-flags #~(list "-Dsamurai=disabled") - #:tests? #f ;to avoid extra dependencies - #:phases - #~(modify-phases %standard-phases - (add-after 'unpack 'patch-/bin/sh - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "tools/generate_test_check_script.py" - (("#!/bin/sh") - (string-append "#!" (search-input-file inputs - "bin/sh")))))) - (add-after 'patch-source-shebangs 'build-muon-bootstrap - (lambda _ - (setenv "CC" #$(cc-for-target)) - (setenv "CFLAGS" "-DBOOTSTRAP_NO_SAMU") - (invoke "./bootstrap.sh" "build"))) - (add-after 'build-muon-bootstrap 'setup-muon-bootstrap-as-meson - (lambda _ - (mkdir "bin") - (symlink "../build/muon-bootstrap" "bin/meson") - (setenv "PATH" (string-append (getcwd) "/bin:" - (getenv "PATH")))))))) - (native-inputs (list samurai)) - (inputs (list bash-minimal pkgconf)) - (native-search-paths (list $PKG_CONFIG_PATH)) - (home-page "https://muon.build/") - (synopsis "Meson build system alternative implementation in C99") - (description "Muon is an implementation of the meson build system in c99 + (list + #:meson (computed-file "null-package" + #~(mkdir #$output)) + #:ninja samu-as-ninja-wrapper + #:configure-flags + #~(list "-Dsamurai=disabled") + #:tests? #f ;to avoid extra dependencies + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "tools/generate_test_check_script.py" + (("#!/bin/sh") + (string-append "#!" + (search-input-file inputs "bin/sh")))))) + (add-after 'patch-source-shebangs 'build-muon-bootstrap + (lambda _ + (setenv "CC" + #$(cc-for-target)) + (setenv "CFLAGS" "-DBOOTSTRAP_NO_SAMU") + (invoke "./bootstrap.sh" "build"))) + (add-after 'build-muon-bootstrap 'setup-muon-bootstrap-as-meson + (lambda _ + (mkdir "bin") + (symlink "../build/muon-bootstrap" "bin/meson") + (setenv "PATH" + (string-append (getcwd) "/bin:" + (getenv "PATH")))))))) + (native-inputs (list samurai)) + (inputs (list bash-minimal pkgconf)) + (native-search-paths + (list $PKG_CONFIG_PATH)) + (home-page "https://muon.build/") + (synopsis "Meson build system alternative implementation in C99") + (description "Muon is an implementation of the meson build system in c99 with minimal dependencies.") - (license license:gpl3)))) ;for the combined work + (license license:gpl3))) (define-public muon-as-meson-wrapper (package/inherit muon (name "muon-as-meson-wrapper") (build-system trivial-build-system) - (arguments - (list #:builder - (with-imported-modules '((guix build utils)) - #~(begin - (use-modules (guix build utils)) - (let ((bindir (string-append #$output "/bin")) - (samu (string-append #$(this-package-input "muon") - "/bin/muon"))) - (mkdir-p bindir) - (symlink samu (string-append bindir "/meson"))))))) + (arguments (list #:builder (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix + build + utils)) + (let ((bindir (string-append #$output + "/bin")) + (samu (string-append #$ + (this-package-input + "muon") + "/bin/muon"))) + (mkdir-p bindir) + (symlink samu + (string-append + bindir + "/meson"))))))) (inputs (list muon)) - (description "This package provides the @command{meson} command, + (description + "This package provides the @command{meson} command, implemented as a symbolic link to the @command{muon} command of @code{muon} package."))) @@ -710,7 +694,7 @@ (define-public tup (define-public osc (package (name "osc") - (version "0.172.0") + (version "0.19.0") (source (origin (method git-fetch) @@ -719,7 +703,7 @@ (define-public osc (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "1sqdnkka3c6b6hwnrmlwrgy7w62cp8raq8mph9pgd2lydzzbvwlp")))) + (base32 "09an4c5gjc99a6bfy4ax5yyng14v7b4fknkdzwl0hn89q5990xab")))) (build-system python-build-system) (arguments `(#:phases @@ -772,30 +756,28 @@ (define-public compdb (define-public compiledb (package (name "compiledb") - (version "0.10.1") + (version "0.10.7") (source - (origin - (method url-fetch) - (uri (pypi-uri "compiledb" version)) - (sha256 - (base32 "0vlngsdxfakyl8b7rnvn8h3l216lhbrrydr04yhy6kd03zflgfq6")))) - (build-system python-build-system) + (origin + (method url-fetch) + (uri (pypi-uri "compiledb" version)) + (sha256 + (base32 "0wc2mzb3cpqkph9a6pfvpiri9dzn3g2cs8hsl5a7d5xn2242sxcp")))) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'no-compat-shim-dependency - ;; shutilwhich is only needed for python 3.3 and earlier - (lambda _ - (substitute* "setup.py" (("^ *'shutilwhich'\n") "")) - (substitute* "compiledb/compiler.py" (("shutilwhich") "shutil"))))))) - (propagated-inputs - (list python-bashlex python-click)) - (native-inputs - (list python-pytest)) - (home-page - "https://github.com/nickdiego/compiledb") + `(#:phases (modify-phases %standard-phases + (add-after 'unpack 'avoid-bin-echo + ;; absolute path '/bin/echo' is used in tests. + ;; changing that to 'echo' + (lambda _ + (substitute* "tests/data/multiple_commands_oneline.txt" + (("/bin/echo") + (which "echo")))))))) + (propagated-inputs (list python-bashlex python-click)) + (native-inputs (list python-setuptools python-wheel python-pytest)) + (home-page "https://github.com/nickdiego/compiledb") (synopsis - "Generate Clang JSON Compilation Database files for make-based build systems") + "Generate Clang JSON Compilation Database files for make-based build systems") (description "@code{compiledb} provides a @code{make} python wrapper script which, besides executing the make build command, updates the JSON compilation @@ -844,29 +826,31 @@ (define-public build (license license:gpl2+))) (define-public genie - (let ((commit "22cc907a4351db46c55f73e6aa901f1b2f0c52ad") + (let ((commit "bf3bf3f051a5f829e9f77d792c169ff866528f8d") (revision "0")) (package (name "genie") - (version (git-version "1170" revision commit)) - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/bkaradzic/genie") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "1wxhbdnr52qa2xr1i83577mwr25fxr5vby4r7m5brp9z5a08fwry")))) + (version (git-version "1190" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/bkaradzic/genie") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "18vdlcfbhynbp6h7g98hdy6gmwrgzyv3nl3dbx70kkf8ph4r2xk2")))) (build-system gnu-build-system) (arguments - (list #:phases #~(modify-phases %standard-phases - (delete 'configure) - (replace 'install - (lambda _ - (install-file "bin/linux/genie" - (string-append #$output "/bin"))))) - #:tests? #f)) ;no tests + (list + #:phases + #~(modify-phases %standard-phases + (delete 'configure) + (replace 'install + (lambda _ + (install-file "bin/linux/genie" + (string-append #$output "/bin"))))) + #:tests? #f)) ;no tests (home-page "https://github.com/bkaradzic/genie") (synopsis "Project generator") (description @@ -1093,16 +1077,16 @@ (define-public gnulib (define-public pdpmake (package (name "pdpmake") - (version "1.4.1") - (source (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/rmyorston/pdpmake") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0fjx5imd7s0h0yy8h2qc4vkdq7kxqcljnrw6h8n88720xha5z3cb")))) + (version "2.0.3") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/rmyorston/pdpmake") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1aka7iyrg97w9bayj7pp3cbx3fg3awmc1s4qhxj7zia8fcmzx6kr")))) (build-system gnu-build-system) (arguments (list @@ -1110,8 +1094,10 @@ (define-public pdpmake #:parallel-tests? #f #:make-flags #~(list "DESTDIR=\"\"" - (string-append "CC=" #$(cc-for-target)) - (string-append "PREFIX=" #$output)) + (string-append "CC=" + #$(cc-for-target)) + (string-append "PREFIX=" + #$output)) #:phases #~(modify-phases %standard-phases (delete 'configure)))) diff --git a/gnu/packages/cmake.scm b/gnu/packages/cmake.scm index 608080954f..d1e36477cb 100644 --- a/gnu/packages/cmake.scm +++ b/gnu/packages/cmake.scm @@ -425,22 +425,22 @@ (define-public cmake (define-public cmake-next (package (inherit cmake) - (version "4.0.1") - (source (origin - (method url-fetch) - (uri (string-append "https://cmake.org/files/v" - (version-major+minor version) - "/cmake-" version ".tar.gz")) - (sha256 - (base32 - "1q9119wg68vz3ki4g3yw3dkb90zpbr13vy2raar21rb31vhafc6n")))) - (native-inputs - (modify-inputs (package-native-inputs cmake) - ;; Avoid circular dependency with (gnu packages debug). Note: cppdap - ;; is built with cmake, so when the default cmake is updated to this - ;; version this circular dependency will need to be worked around. - (prepend (module-ref (resolve-interface '(gnu packages debug)) - 'cppdap)))))) + (version "4.0.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://cmake.org/files/v" + (version-major+minor version) "/cmake-" version + ".tar.gz")) + (sha256 + (base32 "1yrzkwkr2nxl8hcjkk333l9ycbw9prkg363k4km609kknyvkfdcd")))) + (native-inputs (modify-inputs (package-native-inputs cmake) + ;; Avoid circular dependency with (gnu packages debug). Note: cppdap + ;; is built with cmake, so when the default cmake is updated to this + ;; version this circular dependency will need to be worked around. + (prepend (module-ref (resolve-interface '(gnu packages + debug)) + 'cppdap)))))) (define-public cmake-minimal-3.30 (package @@ -635,7 +635,7 @@ (define-public tinycmmc (define-public cpm-cmake (package (name "cpm-cmake") - (version "0.38.6") + (version "0.42.0") (source (origin (method git-fetch) @@ -644,11 +644,12 @@ (define-public cpm-cmake (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1qbbhdq6cz2y7qfyy1k11i98d13s229r3phd5y3n5maq51ky8bgb")))) + (base32 "0c28y8n1n6li5x73lfyb2vyd147d3lnc3iqbzay3ls8msqpz9983")))) (build-system copy-build-system) (arguments (list - #:install-plan #~'(("cmake/CPM.cmake" "lib/cmake/CPM.cmake")))) + #:install-plan + #~'(("cmake/CPM.cmake" "lib/cmake/CPM.cmake")))) (home-page "https://github.com/cpm-cmake/CPM.cmake") (synopsis "Package manager for CMake") (description "CPM.cmake is a cross-platform CMake script that adds diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm index 1bc64735b7..54fadaddd6 100644 --- a/gnu/packages/finance.scm +++ b/gnu/packages/finance.scm @@ -2053,7 +2053,7 @@ (define-public beancount-3 (version "3.1.0") (source (origin - (method git-fetch) ; Pypi archive doesn't contain the test suite. + (method git-fetch) ;Pypi archive doesn't contain the test suite. (uri (git-reference (url "https://github.com/beancount/beancount") (commit version))) @@ -2069,25 +2069,23 @@ (define-public beancount-3 #:test-flags #~(list ;; run tests against the built library - "--pyargs" "beancount" + "--pyargs" + "beancount" ;; disable tests supposed to run from the source repo - "-k" "not test_export_basic and not test_example_files"))) + "-k" + "not test_export_basic and not test_example_files"))) (build-system pyproject-build-system) - (native-inputs - (list bison - flex - gnupg - meson - ninja - python-meson-python - python-pytest - python-setuptools - python-wheel)) - (propagated-inputs - (list python-bottle - python-click - python-dateutil - python-regex)) + (native-inputs (list bison + flex + gnupg + meson + ninja + meson-python + python-pytest + python-setuptools + python-wheel)) + (propagated-inputs (list python-bottle python-click python-dateutil + python-regex)) (home-page "https://beancount.github.io/") (synopsis "Command-line double-entry accounting tool") (description diff --git a/gnu/packages/ninja.scm b/gnu/packages/ninja.scm index 398c4be10f..ece1917181 100644 --- a/gnu/packages/ninja.scm +++ b/gnu/packages/ninja.scm @@ -36,42 +36,55 @@ (define-module (gnu packages ninja) (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")))) + (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)) + (inputs (list python-wrapper + (origin + (method git-fetch) + (uri (git-reference (url + "https://github.com/google/googletest") + (commit "v1.17.0"))) + (file-name (string-append "gtest-source-for-ninja-" + version)) + (sha256 (base32 + "1zn701fgmbk29y45p49sajaswm01i2bv89ds2kkbiq8i0p2cr08w"))))) (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))))))) + '(#:phases (modify-phases %standard-phases + (replace 'configure + (lambda _ + (setenv "CXXFLAGS" "-std=gnu++17") + (substitute* "src/subprocess-posix.cc" + (("/bin/sh") + (which "sh"))) + (substitute* "src/subprocess_test.cc" + (("/bin/echo") + (which "echo"))))) + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (invoke "./configure.py" "--bootstrap" + (string-append "--gtest-source-dir=" + (search-input-directory inputs + "googletest") "/..")))) + (replace 'check + (lambda _ + (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 diff --git a/gnu/packages/python-build.scm b/gnu/packages/python-build.scm index 8e189c05dc..deda45d33e 100644 --- a/gnu/packages/python-build.scm +++ b/gnu/packages/python-build.scm @@ -911,4 +911,3 @@ (define-public python-pdm-backend "PDM-Backend is a build backend that supports the latest packaging standards, which includes PEP 517, PEP 621 and PEP 660.") (license license:expat))) - diff --git a/gnu/packages/python-science.scm b/gnu/packages/python-science.scm index b71f693538..3c7952ee92 100644 --- a/gnu/packages/python-science.scm +++ b/gnu/packages/python-science.scm @@ -2822,7 +2822,7 @@ (define-public python-scikit-misc (native-inputs (list gfortran pkg-config python-cython-3 - python-meson-python + meson-python python-numpy python-pytest python-pytest-cov diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index ce7ef03d47..625b1b7980 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -13053,7 +13053,7 @@ (define-public python-pywavelets ninja pkg-config python-cython-3 - python-meson-python + meson-python python-numpy python-pytest)) (propagated-inputs @@ -16381,17 +16381,16 @@ (define-public python-pep517 (define-public python-pyproject-metadata (package (name "python-pyproject-metadata") - (version "0.7.1") + (version "0.9.1") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/FFY00/python-pyproject-metadata") + (url "https://github.com/pypa/python-pyproject-metadata") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "0yvs59ymz5gdix34a95wxlxvk9bnvjgrzsnmnc3ws7whpfv3yasm")))) + (base32 "14vwnzzpyq0raqq26vw8s4k27dcyicxpb2wkg4xxwjp2cixgshzm")))) (build-system pyproject-build-system) (arguments (list @@ -16400,11 +16399,16 @@ (define-public python-pyproject-metadata ;; tests' regular expressions no longer match. '(list "--ignore=tests/test_standard_metadata.py"))) (propagated-inputs (list python-packaging)) - (native-inputs (list python-pypa-build python-pytest python-setuptools - python-tomli python-wheel)) - (home-page "https://github.com/FFY00/python-pyproject-metadata") + (native-inputs (list python-pypa-build + python-pytest + python-setuptools + python-tomli + python-wheel + python-flit-core)) + (home-page "https://github.com/pypa/python-pyproject-metadata") (synopsis "Dataclass for PEP 621 metadata") - (description "This project does not implement the parsing of + (description + "This project does not implement the parsing of @file{pyproject.toml} containing PEP 621 metadata. Instead, given a Python data structure representing PEP 621 metadata (already parsed), it will validate this input and generate a PEP 643-compliant metadata @@ -16415,24 +16419,6 @@ (define-public python-pyproject-metadata (define-public python-pep621 (deprecated-package "python-pep621" python-pyproject-metadata)) -(define-public python-meson-python - (package - (name "python-meson-python") - (version "0.15.0") - (source - (origin - (method url-fetch) - (uri (pypi-uri "meson_python" version)) - (sha256 - (base32 "0vyjhjabvm41hqijifk33idbdl62i76kfyf884f9rs29rpp77nzx")))) - (build-system meson-build-system) - (propagated-inputs (list python-pyproject-metadata python-tomli)) - (home-page "https://github.com/mesonbuild/meson-python") - (synopsis "Meson Python build backend (PEP 517)") - (description "This package provides a PEP 517 build backend that makes -use of the Meson build system.") - (license license:expat))) - (define-public python-mccabe (package (name "python-mccabe") @@ -31737,7 +31723,7 @@ (define-public python-dbus-python (("(ninja|patchelf)") ""))))))) (native-inputs (list pkg-config - python-meson-python + meson-python meson ninja patchelf @@ -40168,6 +40154,27 @@ (define-public pythoncapi-compat base, via the @file{pythoncapi_compat.h} header file.") (license license:bsd-0)))) +(define-public meson-python + (package + (name "meson-python") + (version "0.18.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "meson_python" version)) + (sha256 + (base32 "13c44f765h89hwidn53c20a4nvmg441rcipyc83a8sgnkpn9jsn5")))) + (build-system meson-build-system) + (propagated-inputs (list python-pyproject-metadata python-tomli)) + (home-page "https://github.com/mesonbuild/meson-python") + (synopsis "Meson Python build backend (PEP 517)") + (description "This package provides a PEP 517 build backend that makes +use of the Meson build system.") + (license license:expat))) + +(define-public python-meson-python + (deprecated-package "python-meson-python" meson-python)) + ;;; ;;; Avoid adding new packages to the end of this file. To reduce the chances ;;; of a merge conflict, place them above by existing packages with similar -- 2.50.1