commit: 4b7bae6873a5b1f9be36a9d5c2226e92f2a14dd8 Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Wed May 24 15:18:58 2023 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Wed May 24 15:18:58 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b7bae68
dev-python/distlib: Enable py3.12 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> dev-python/distlib/distlib-0.3.6.ebuild | 12 ++++-- dev-python/distlib/files/distlib-0.3.6-py312.patch | 50 ++++++++++++++++++++++ 2 files changed, 58 insertions(+), 4 deletions(-) diff --git a/dev-python/distlib/distlib-0.3.6.ebuild b/dev-python/distlib/distlib-0.3.6.ebuild index 6f1be5b2fb7b..2fb434b9de26 100644 --- a/dev-python/distlib/distlib-0.3.6.ebuild +++ b/dev-python/distlib/distlib-0.3.6.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{10..11} pypy3 ) +PYTHON_COMPAT=( python3_{10..12} pypy3 ) inherit distutils-r1 @@ -31,12 +31,16 @@ BDEPEND=" " src_prepare() { + local PATCHES=( + "${FILESDIR}/${P}-py312.patch" + + # use system pypiserver instead of bundled one + "${FILESDIR}"/distlib-0.3.2-system-pypiserver.py + ) + # make sure they're not used rm tests/pypi-server-standalone.py || die - # use system pypiserver instead of broken bundled one - eapply "${FILESDIR}"/distlib-0.3.2-system-pypiserver.py || die - distutils-r1_src_prepare } diff --git a/dev-python/distlib/files/distlib-0.3.6-py312.patch b/dev-python/distlib/files/distlib-0.3.6-py312.patch new file mode 100644 index 000000000000..4e1d8927b745 --- /dev/null +++ b/dev-python/distlib/files/distlib-0.3.6-py312.patch @@ -0,0 +1,50 @@ +From fe769c72e4f9d613b2ce066325d2fb28317833d5 Mon Sep 17 00:00:00 2001 +From: Lumir Balhar <lbal...@redhat.com> +Date: Thu, 18 May 2023 14:09:34 +0200 +Subject: [PATCH 1/2] Check for cert_file attribute before accessing it + +In Python 3.12, HTTPSConnection no longer has cert_file attribute +so unless something adds it to the subclass, the attribute doesn't +exist by default. + +CPython change: https://github.com/python/cpython/commit/ef0e72b31d22f780d3a165d7d0471806061fe380#diff-3cf29d90eb758d0fe5ec013bbfda9b0bb60be4f7d899583bd5f490a7a5a5dc5f +--- + distlib/util.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/distlib/util.py b/distlib/util.py +index dd01849..ddfc992 100644 +--- a/distlib/util.py ++++ b/distlib/util.py +@@ -1435,7 +1435,7 @@ def connect(self): + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + if hasattr(ssl, 'OP_NO_SSLv2'): + context.options |= ssl.OP_NO_SSLv2 +- if self.cert_file: ++ if hasattr(self, "cert_file") and self.cert_file: + context.load_cert_chain(self.cert_file, self.key_file) + kwargs = {} + if self.ca_certs: + +From 440a7b57b9521ba2eca749e26945eaf16bc7c472 Mon Sep 17 00:00:00 2001 +From: Vinay Sajip <vinay_sa...@yahoo.co.uk> +Date: Wed, 24 May 2023 15:50:44 +0100 +Subject: [PATCH 2/2] Use single quotes. + +--- + distlib/util.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/distlib/util.py b/distlib/util.py +index ddfc992..d1ec58a 100644 +--- a/distlib/util.py ++++ b/distlib/util.py +@@ -1435,7 +1435,7 @@ def connect(self): + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + if hasattr(ssl, 'OP_NO_SSLv2'): + context.options |= ssl.OP_NO_SSLv2 +- if hasattr(self, "cert_file") and self.cert_file: ++ if hasattr(self, 'cert_file') and self.cert_file: + context.load_cert_chain(self.cert_file, self.key_file) + kwargs = {} + if self.ca_certs: