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@atlas.cz>
Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Petr Vaněk
2023-05-30 23:22:25 +02:00
committed by Michał Górny
parent 9764759085
commit 48b5e659f3
2 changed files with 55 additions and 5 deletions

View File

@@ -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

View File

@@ -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() {