commit: e5d628898d31a72c705c6cf0f069d2cf0da987fb Author: Sam James <sam <AT> gentoo <DOT> org> AuthorDate: Sun Jun 5 20:38:30 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sun Jun 12 08:47:21 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e5d62889
dev-python/meson-python: add gentoo defaults; fix pyproject-python support Signed-off-by: Sam James <sam <AT> gentoo.org> .../files/meson-python-0.5.0-defaults.patch | 23 +++++ .../meson-python-0.5.0-pyproject-metadata.patch | 110 +++++++++++++++++++++ .../meson-python/meson-python-0.5.0-r1.ebuild | 46 +++++++++ 3 files changed, 179 insertions(+) diff --git a/dev-python/meson-python/files/meson-python-0.5.0-defaults.patch b/dev-python/meson-python/files/meson-python-0.5.0-defaults.patch new file mode 100644 index 000000000000..07077ba4fdc2 --- /dev/null +++ b/dev-python/meson-python/files/meson-python-0.5.0-defaults.patch @@ -0,0 +1,23 @@ +See https://github.com/FFY00/meson-python/blob/main/mesonpy/__init__.py#L452. + +(Also: https://github.com/FFY00/meson-python/issues/54) +--- a/mesonpy/__init__.py ++++ b/mesonpy/__init__.py +@@ -452,7 +452,7 @@ class Project(): + f'--native-file={os.fspath(self._meson_native_file)}', + # TODO: Allow configuring these arguments + '-Ddebug=false', +- '-Dstrip=true', ++ '-Dstrip=false', + '-Doptimization=2', + *setup_args, + ) +@@ -464,7 +464,7 @@ class Project(): + + @functools.lru_cache(maxsize=None) + def build(self) -> None: +- self._meson('compile') ++ self._meson('compile', '--verbose') + self._meson('install', '--destdir', os.fspath(self._install_dir)) + + @classmethod diff --git a/dev-python/meson-python/files/meson-python-0.5.0-pyproject-metadata.patch b/dev-python/meson-python/files/meson-python-0.5.0-pyproject-metadata.patch new file mode 100644 index 000000000000..fd96d942eb73 --- /dev/null +++ b/dev-python/meson-python/files/meson-python-0.5.0-pyproject-metadata.patch @@ -0,0 +1,110 @@ +https://github.com/FFY00/meson-python/commit/678a586427088a58dfac15bb3fe89b3d7ff0178e +https://github.com/FFY00/meson-python/commit/c01645aa3617ccd424ef3ec052d13ac25e7df433 + +From 678a586427088a58dfac15bb3fe89b3d7ff0178e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Filipe=20La=C3=ADns?= <[email protected]> +Date: Thu, 9 Jun 2022 20:24:32 +0100 +Subject: [PATCH] mesonpy: replace pep621 dependency with pyproject-metadata +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fixes #33 + +Signed-off-by: Filipe Laíns <[email protected]> +--- a/mesonpy/__init__.py ++++ b/mesonpy/__init__.py +@@ -46,7 +46,7 @@ + + + if typing.TYPE_CHECKING: # pragma: no cover +- import pep621 as _pep621 # noqa: F401 ++ import pyproject_metadata # noqa: F401 + import wheel.wheelfile # noqa: F401 + + +@@ -353,7 +353,7 @@ class Project(): + _ALLOWED_DYNAMIC_FIELDS: ClassVar[List[str]] = [ + 'version', + ] +- _metadata: Optional[_pep621.StandardMetadata] ++ _metadata: Optional[pyproject_metadata.StandardMetadata] + + def __init__( + self, +@@ -372,11 +372,11 @@ def __init__( + self._pep621 = 'project' in self._config + if self.pep621: + try: +- import pep621 # noqa: F811 ++ import pyproject_metadata # noqa: F811 + except ModuleNotFoundError: # pragma: no cover + self._metadata = None + else: +- self._metadata = pep621.StandardMetadata.from_pyproject(self._config, self._source_dir) ++ self._metadata = pyproject_metadata.StandardMetadata.from_pyproject(self._config, self._source_dir) + else: + print( + '{yellow}{bold}! Using Meson to generate the project metadata ' +@@ -550,8 +550,8 @@ def metadata(self) -> bytes: # noqa: C901 + Name: {self.name} + Version: {self.version} + ''').strip().encode() +- # re-import pep621 to raise ModuleNotFoundError if it is really missing +- import pep621 # noqa: F401, F811 ++ # re-import pyproject_metadata to raise ModuleNotFoundError if it is really missing ++ import pyproject_metadata # noqa: F401, F811 + assert self._metadata + # use self.version as the version may be dynamic -- fetched from Meson + core_metadata = self._metadata.as_rfc822() +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -4,7 +4,7 @@ backend-path = ['.'] + requires = [ + 'meson>=0.62.0', + 'ninja', +- 'pep621>=0.3.0', ++ 'pyproject-metadata>=0.5.0', + 'tomli>=1.0.0', + 'typing-extensions>=3.7.4; python_version<"3.8"', + ] +@@ -29,7 +29,7 @@ dependencies = [ + 'colorama; os_name == "nt"', + 'meson>=0.60.0', + 'ninja', +- 'pep621>=0.3.0', # not a hard dependency, only needed for projects that use PEP 621 metadata ++ 'pyproject-metadata>=0.5.0', # not a hard dependency, only needed for projects that use PEP 621 metadata + 'tomli>=1.0.0', + 'typing-extensions>=3.7.4; python_version<"3.8"', + ] +@@ -41,7 +41,6 @@ test = [ + 'pytest-mock', + 'GitPython', + 'auditwheel', +- 'pep621 >= 0.4.0', + ] + docs = [ + 'furo>=2021.08.31', + +From c01645aa3617ccd424ef3ec052d13ac25e7df433 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Filipe=20La=C3=ADns?= <[email protected]> +Date: Thu, 9 Jun 2022 20:27:49 +0100 +Subject: [PATCH] mesonpy: update code to pyproject-metadata 0.5.0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Filipe Laíns <[email protected]> +--- a/mesonpy/__init__.py ++++ b/mesonpy/__init__.py +@@ -424,9 +424,6 @@ def __init__( + # set version if dynamic (this fetches it from Meson) + if self._metadata and 'version' in self._metadata.dynamic: + self._metadata.version = self.version +- # version is no longer dynamic +- # XXX: Should this be automatically handled by pep621/pyproject-metadata? +- self._metadata.dynamic.remove('version') + + def _proc(self, *args: str) -> None: + print('{cyan}{bold}+ {}{reset}'.format(' '.join(args), **_STYLES)) + diff --git a/dev-python/meson-python/meson-python-0.5.0-r1.ebuild b/dev-python/meson-python/meson-python-0.5.0-r1.ebuild new file mode 100644 index 000000000000..708c817c7349 --- /dev/null +++ b/dev-python/meson-python/meson-python-0.5.0-r1.ebuild @@ -0,0 +1,46 @@ +# Copyright 2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{8..10} ) + +inherit distutils-r1 + +DESCRIPTION="Meson PEP 517 Python build backend" +HOMEPAGE=" + https://pypi.org/project/meson-python/ + https://github.com/FFY00/meson-python/ +" +SRC_URI=" + https://github.com/FFY00/meson-python/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="EUPL-1.2" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/pyproject-metadata-0.3.0[${PYTHON_USEDEP}] + >=dev-python/tomli-1.0.0[${PYTHON_USEDEP}] + >=dev-util/meson-0.60.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/GitPython[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-util/patchelf + ) +" + +PATCHES=( + "${FILESDIR}"/${P}-pyproject-metadata.patch + "${FILESDIR}"/${PN}-0.5.0-defaults.patch +) + +distutils_enable_sphinx docs \ + dev-python/furo \ + dev-python/sphinx-autodoc-typehints +distutils_enable_tests pytest
