From: Marius Bakke <marius@gnu.org>
To: 57814@debbugs.gnu.org
Subject: [bug#57814] [PATCH 1/2] gnu: Add meson-python.
Date: Wed, 14 Sep 2022 23:42:09 +0200 [thread overview]
Message-ID: <20220914214210.16228-1-marius@gnu.org> (raw)
In-Reply-To: <20220914213630.15597-1-marius@gnu.org>
* gnu/packages/build-tools.scm (meson-python): New variable.
---
gnu/packages/build-tools.scm | 79 +++++++++++++++++++++++++++++++++++-
1 file changed, 78 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index b5b9d501f9..84a62d0fd6 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -45,9 +45,11 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages check)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages elf)
#:use-module (gnu packages linux)
#:use-module (gnu packages logging)
#:use-module (gnu packages lua)
+ #:use-module (gnu packages ninja)
#:use-module (gnu packages package-management)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pkg-config)
@@ -62,7 +64,7 @@ (define-module (gnu packages build-tools)
#:use-module (gnu packages rpc)
#:use-module (gnu packages sqlite)
#:use-module (gnu packages tls)
- #:use-module (gnu packages ninja)
+ #:use-module (gnu packages version-control)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python))
@@ -342,6 +344,81 @@ (define-public meson-0.59
;; TODO: Bump this in the next rebuild cycle.
(define-public meson meson-0.60)
+(define-public meson-python
+ (package
+ (name "meson-python")
+ (version "0.8.1")
+ (source (origin
+ (method url-fetch)
+ (uri (pypi-uri "meson_python" version))
+ (sha256
+ (base32
+ "0k2yn0iws1n184sdznzmfw4xgbqgq5cn02hpc7m0xdaxryj1ybs4"))))
+ (build-system python-build-system)
+ (arguments
+ (list #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'avoid-ninja-dependency
+ (lambda _
+ ;; Avoid dependency on the "ninja" PyPI distribution,
+ ;; which is a meta-package that simply downloads and
+ ;; installs ninja from the web ...
+ (substitute* "pyproject.toml"
+ (("'ninja',")
+ ""))))
+ (replace 'build
+ (lambda _
+ ;; ZIP does not support timestamps before 1980.
+ (setenv "SOURCE_DATE_EPOCH" "315532800")
+ (invoke "python" "-m" "build" "--wheel" "--no-isolation" ".")))
+ (replace 'install
+ (lambda _
+ (let ((whl (car (find-files "dist" "\\.whl$"))))
+ (invoke "pip" "--no-cache-dir" "--no-input"
+ "install" "--no-deps" "--prefix" #$output whl))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "pytest" "-vv" "tests" "-k"
+ (string-append
+ "not "
+ ;; These tests require a git checkout.
+ (string-join '("test_contents_unstaged"
+ "test_no_pep621"
+ "test_pep621"
+ "test_dynamic_version"
+ "test_contents"
+ "test_contents_subdirs")
+ " and not ")))))))))
+ (propagated-inputs
+ (list meson-0.63 ;>=0.62 required
+ ninja
+ ;; XXX: python-meson forcefully sets the RUNPATH of binaries
+ ;; for vendoring purposes, and uses PatchELF for that(!). This
+ ;; functionality is not useful in Guix, but removing this
+ ;; dependency is tricky. There is discussion upstream about making
+ ;; it optional, but for now we'll just carry it:
+ ;; https://github.com/FFY00/meson-python/issues/125
+ patchelf
+ python-colorama
+ python-pyproject-metadata
+ python-tomli
+ python-wheel))
+ (native-inputs
+ (list python-pypa-build
+ python-wheel
+
+ ;; For tests.
+ pkg-config
+ python-gitpython
+ python-pytest
+ python-pytest-mock))
+ (home-page "https://github.com/FFY00/mesonpy")
+ (synopsis "Meson-based build backend for Python")
+ (description
+ "meson-python is a PEP 517 build backend for Meson projects.")
+ (license license:expat)))
+
(define-public premake4
(package
(name "premake")
--
2.37.3
next prev parent reply other threads:[~2022-09-14 21:43 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-14 21:36 [bug#57814] [PATCH 0/2] SciPy 1.9.1 Marius Bakke
2022-09-14 21:42 ` Marius Bakke [this message]
2022-09-14 21:42 ` [bug#57814] [PATCH 2/2] gnu: python-scipy: Update to 1.9.1 Marius Bakke
2022-09-16 17:15 ` bug#57814: [PATCH 0/2] SciPy 1.9.1 Marius Bakke
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220914214210.16228-1-marius@gnu.org \
--to=marius@gnu.org \
--cc=57814@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).