dev-python/distlib: Enable py3.12

Signed-off-by: Michał Górny <mgorny@gentoo.org>
This commit is contained in:
Michał Górny
2023-05-24 17:18:58 +02:00
parent a16301ba17
commit 4b7bae6873
2 changed files with 58 additions and 4 deletions

View File

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

View File

@@ -0,0 +1,50 @@
From fe769c72e4f9d613b2ce066325d2fb28317833d5 Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@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_sajip@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: