commit:     48b5e659f3b13315b05445a6d2ddf11e02fdb2ad
Author:     Petr Vaněk <arkamar <AT> atlas <DOT> cz>
AuthorDate: Tue May 30 21:22:25 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed May 31 10:49:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=48b5e659

dev-python/pbr: enable py3.12

- One test source file needs a patch due to removed library in py3.12,
  the patch was sent to github mirror[1] and later resend to
  upstream[2].
- Tests fail with dev-python/sphinx-7, because build_sphinx hook in
  setup.py was removed [3], sphinx is now limmited to
  <dev-python/sphinx-7.

[1] https://github.com/openstack/pbr/pull/22
[2] https://review.opendev.org/c/openstack/pbr/+/884789
[3] https://bugs.launchpad.net/pbr/+bug/2018453

Signed-off-by: Petr Vaněk <arkamar <AT> atlas.cz>
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../pbr/files/pbr-5.11.1-importlib-suffixes.patch  | 41 ++++++++++++++++++++++
 dev-python/pbr/pbr-5.11.1.ebuild                   | 19 +++++++---
 2 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch 
b/dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch
new file mode 100644
index 000000000000..27609131fc59
--- /dev/null
+++ b/dev-python/pbr/files/pbr-5.11.1-importlib-suffixes.patch
@@ -0,0 +1,41 @@
+Subject: [PATCH] Replace imp with importlib.machinery
+
+The imp was removed in Python 3.12 [1]. This commit replaces
+get_suffixes() method call with _SUFFIXES array from imprtlib.machinery.
+
+[1] https://github.com/python/cpython/issues/98040
+
+---
+
+This is original patch submitted to Github mirror, it was later resubmitted to
+upstream Gerrit, where they are taking care of Python2.7. We can stick with
+this version of patch for now because we don't care about py2.7 anymore.
+
+Original-PR: https://github.com/openstack/pbr/pull/22
+Upstream-PR: https://review.opendev.org/c/openstack/pbr/+/884789
+
+diff --git a/pbr/tests/test_packaging.py b/pbr/tests/test_packaging.py
+index c719d1e..068bab7 100644
+--- a/pbr/tests/test_packaging.py
++++ b/pbr/tests/test_packaging.py
+@@ -40,7 +40,7 @@
+ 
+ import email
+ import email.errors
+-import imp
++import importlib
+ import os
+ import re
+ import sysconfig
+@@ -1217,7 +1217,7 @@ def get_soabi():
+         # NOTE(sigmavirus24): PyPy only added support for the SOABI config var
+         # to sysconfig in 2015. That was well after 2.2.1 was published in the
+         # Ubuntu 14.04 archive.
+-        for suffix, _, _ in imp.get_suffixes():
++        for suffix, _, _ in importlib.machinery._SUFFIXES:
+             if suffix.startswith('.pypy') and suffix.endswith('.so'):
+                 soabi = suffix.split('.')[1]
+                 break
+-- 
+2.39.2
+

diff --git a/dev-python/pbr/pbr-5.11.1.ebuild b/dev-python/pbr/pbr-5.11.1.ebuild
index 016fd4a7679a..5448662cdd64 100644
--- a/dev-python/pbr/pbr-5.11.1.ebuild
+++ b/dev-python/pbr/pbr-5.11.1.ebuild
@@ -4,7 +4,7 @@
 EAPI=8
 
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_TESTED=( python3_{9..11} )
+PYTHON_TESTED=( python3_{10..12} )
 PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" pypy3 )
 PYTHON_REQ_USE="threads(+)"
 
@@ -24,9 +24,14 @@ KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~loong ~m68k 
~mips ppc ppc64 ~riscv
 RDEPEND="
        >=dev-python/setuptools-60.5.0[${PYTHON_USEDEP}]
 "
-# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and 
https://bugs.gentoo.org/show_bug.cgi?id=561038
-# docutils is needed for sphinx exceptions... 
https://bugs.gentoo.org/show_bug.cgi?id=603848
-# stestr is run as external tool
+
+# git is needed for tests, see https://bugs.launchpad.net/pbr/+bug/1326682 and
+# https://bugs.gentoo.org/show_bug.cgi?id=561038 docutils is needed for sphinx
+# exceptions... https://bugs.gentoo.org/show_bug.cgi?id=603848 stestr is run as
+# external tool.
+#
+# <dev-python/sphinx-7 is required because of removed build_sphinx hook in
+# setup.py, see https://bugs.launchpad.net/pbr/+bug/2018453
 BDEPEND="
        test? (
                $(python_gen_cond_dep '
@@ -34,7 +39,7 @@ BDEPEND="
                        >=dev-python/fixtures-3.0.0[${PYTHON_USEDEP}]
                        >=dev-python/mock-2.0.0[${PYTHON_USEDEP}]
                        >=dev-python/six-1.12.0[${PYTHON_USEDEP}]
-                       dev-python/sphinx[${PYTHON_USEDEP}]
+                       <dev-python/sphinx-7[${PYTHON_USEDEP}]
                        >=dev-python/testresources-2.0.0[${PYTHON_USEDEP}]
                        >=dev-python/testscenarios-0.4[${PYTHON_USEDEP}]
                        >=dev-python/testtools-2.2.0[${PYTHON_USEDEP}]
@@ -44,6 +49,10 @@ BDEPEND="
        )
 "
 
+PATCHES=(
+       "${FILESDIR}/${P}-importlib-suffixes.patch"
+)
+
 distutils_enable_tests unittest
 
 python_prepare_all() {

Reply via email to