commit:     6e26f683b520a7dc58601ec1cffc4f2655ed34dc
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu May 25 03:07:48 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu May 25 03:14:22 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6e26f683

dev-python/lxml: enable py3.12

Same failures as with other Pythons (new libxslt/libxml2).

Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../lxml-4.9.2-py3.12-drop-deprecated-imp.patch    | 49 ++++++++++++++++++++++
 dev-python/lxml/lxml-4.9.2.ebuild                  |  3 +-
 2 files changed, 51 insertions(+), 1 deletion(-)

diff --git a/dev-python/lxml/files/lxml-4.9.2-py3.12-drop-deprecated-imp.patch 
b/dev-python/lxml/files/lxml-4.9.2-py3.12-drop-deprecated-imp.patch
new file mode 100644
index 000000000000..a59a60e74822
--- /dev/null
+++ b/dev-python/lxml/files/lxml-4.9.2-py3.12-drop-deprecated-imp.patch
@@ -0,0 +1,49 @@
+https://github.com/lxml/lxml/commit/07db761f9f027d1814a43686cda6fca26e37a931
+https://github.com/lxml/lxml/commit/c6b7e621e4696c02bf8f6ea423ffbbf2109748ab
+
+From 07db761f9f027d1814a43686cda6fca26e37a931 Mon Sep 17 00:00:00 2001
+From: Stefan Behnel <stefan...@behnel.de>
+Date: Thu, 11 May 2023 10:29:02 +0200
+Subject: [PATCH] Avoid using the deprecated "imp" module.
+
+Closes https://bugs.launchpad.net/lxml/+bug/2018137
+--- a/src/lxml/html/tests/test_html5parser.py
++++ b/src/lxml/html/tests/test_html5parser.py
+@@ -1,5 +1,4 @@
+ import os
+-import imp
+ try:
+     from StringIO import StringIO
+ except ImportError:                     # python 3
+@@ -45,7 +44,10 @@ def find_module(self, fullname, path=None):
+             return None
+ 
+         def load_module(self, fullname):
+-            mod = sys.modules.setdefault(fullname, imp.new_module(fullname))
++            fake_module = object()
++            fake_module.__qualname__ = fullname
++            fake_module.__name__ = fullname.rsplit('.', 1)[-1]
++            mod = sys.modules.setdefault(fullname, fake_module)
+             mod.__file__, mod.__loader__, mod.__path__ = "<dummy>", self, []
+             mod.__dict__.update(self.mocks[fullname])
+             return mod
+
+From c6b7e621e4696c02bf8f6ea423ffbbf2109748ab Mon Sep 17 00:00:00 2001
+From: Stefan Behnel <stefan...@behnel.de>
+Date: Thu, 11 May 2023 10:30:15 +0200
+Subject: [PATCH] Avoid using the deprecated "imp" module.
+
+Closes https://bugs.launchpad.net/lxml/+bug/2018137
+--- a/src/lxml/html/tests/test_html5parser.py
++++ b/src/lxml/html/tests/test_html5parser.py
+@@ -44,7 +44,8 @@ def find_module(self, fullname, path=None):
+             return None
+ 
+         def load_module(self, fullname):
+-            fake_module = object()
++            class Cls: pass
++            fake_module = Cls()
+             fake_module.__qualname__ = fullname
+             fake_module.__name__ = fullname.rsplit('.', 1)[-1]
+             mod = sys.modules.setdefault(fullname, fake_module)
+

diff --git a/dev-python/lxml/lxml-4.9.2.ebuild 
b/dev-python/lxml/lxml-4.9.2.ebuild
index b7b3efc9de22..aed3280a3b2c 100644
--- a/dev-python/lxml/lxml-4.9.2.ebuild
+++ b/dev-python/lxml/lxml-4.9.2.ebuild
@@ -5,7 +5,7 @@ EAPI=8
 
 DISTUTILS_EXT=1
 DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9..11} pypy3 )
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
 
 inherit distutils-r1 optfeature toolchain-funcs
 
@@ -54,6 +54,7 @@ BDEPEND="
 
 PATCHES=(
        "${FILESDIR}"/${PN}-4.6.0-tests-pypy.patch
+       "${FILESDIR}"/${P}-py3.12-drop-deprecated-imp.patch
 )
 
 python_check_deps() {

Reply via email to