commit:     85f543b5bee9b3229a809223b7ac7de28fb4b3bc
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Oct  9 08:14:42 2024 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Oct  9 11:45:24 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=85f543b5

dev-python/multiprocess: Fix wheel tags / platform compatibility

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../files/multiprocess-0.70.17-wheel-tag.patch     | 65 ++++++++++++++++++++++
 ...70.17.ebuild => multiprocess-0.70.17-r1.ebuild} | 17 +++++-
 2 files changed, 81 insertions(+), 1 deletion(-)

diff --git a/dev-python/multiprocess/files/multiprocess-0.70.17-wheel-tag.patch 
b/dev-python/multiprocess/files/multiprocess-0.70.17-wheel-tag.patch
new file mode 100644
index 000000000000..5f834c829af5
--- /dev/null
+++ b/dev-python/multiprocess/files/multiprocess-0.70.17-wheel-tag.patch
@@ -0,0 +1,65 @@
+From 6008b92ab778f845b8425f215e0e78d4238b7693 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <[email protected]>
+Date: Wed, 9 Oct 2024 09:47:07 +0200
+Subject: [PATCH] enforce correct python tags for pure wheels from setup.py
+
+Enforce correct python tags for pure Python wheels directly from
+`setup.py`.  This should be more reliable than the current approach.
+While at it, switch to correct tags for each platforms -- CPython
+uses "cp" (which unlike "py" is not accepted for PyPy), and PyPy can use
+pure "pp" without platform specifiers (since no extensions are
+installed).
+
+Fixes #196
+---
+ pyproject.toml |  1 +
+ setup.py       | 10 ++++++++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 5d64e77..38dd6b7 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,7 @@
+ [build-system]
+ # Further build requirements come from setup.py via the PEP 517 interface
+ requires = [
++    "packaging",
+     "setuptools>=42",
+ ]
+ build-backend = "setuptools.build_meta"
+diff --git a/setup.py b/setup.py
+index aeefecb..5dbca89 100644
+--- a/setup.py
++++ b/setup.py
+@@ -221,6 +221,7 @@ def has_ext_modules(foo):
+ 
+ def run_setup(with_extensions=True):
+     extensions = []
++    options = {}
+     if with_extensions:
+         extensions = [
+             Extension(
+@@ -232,6 +233,14 @@ def run_setup(with_extensions=True):
+                 depends=glob.glob('%s/*.h' % srcdir) + ['setup.py'],
+             ),
+         ]
++    else:
++        import packaging.tags
++
++        tag_name = packaging.tags.interpreter_name()
++        tag_version = packaging.tags.interpreter_version()
++        options['bdist_wheel'] = {
++            'python_tag':tag_name+tag_version,
++        }
+     packages = find_packages(
+         where=pkgdir,
+         exclude=['ez_setup', 'examples', 'doc',],
+@@ -276,6 +285,7 @@ def run_setup(with_extensions=True):
+         packages=packages,
+         package_dir={'': pkgdir},
+         ext_modules=extensions,
++        options=options,
+     )
+     # add dependencies
+     depend = [dill_version]

diff --git a/dev-python/multiprocess/multiprocess-0.70.17.ebuild 
b/dev-python/multiprocess/multiprocess-0.70.17-r1.ebuild
similarity index 61%
rename from dev-python/multiprocess/multiprocess-0.70.17.ebuild
rename to dev-python/multiprocess/multiprocess-0.70.17-r1.ebuild
index c1bc58bac6d9..774339852044 100644
--- a/dev-python/multiprocess/multiprocess-0.70.17.ebuild
+++ b/dev-python/multiprocess/multiprocess-0.70.17-r1.ebuild
@@ -29,6 +29,21 @@ BDEPEND="
        )
 "
 
+distutils_enable_tests unittest
+
+src_prepare() {
+       local PATCHES=(
+               # https://github.com/uqfoundation/multiprocess/pull/197
+               "${FILESDIR}/${P}-wheel-tag.patch"
+       )
+
+       distutils-r1_src_prepare
+
+       # https://github.com/uqfoundation/multiprocess/issues/196
+       sed -i -e '/python-tag/d' setup.cfg || die
+}
+
 python_test() {
-       "${EPYTHON}" py${EPYTHON#python}/multiprocess/tests/__main__.py -v || 
die
+       cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+       eunittest
 }

Reply via email to