summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCédric Krier <cedk@gentoo.org>2024-08-24 08:19:38 +0200
committerCédric Krier <cedk@gentoo.org>2024-08-24 08:19:38 +0200
commit81549b33168154d1014a120bc28a2c7951bf1058 (patch)
tree7f19c8025a1c73611e92381f0837a546abd452ab /dev-vcs
parentxfce-base/libxfce4windowing: Bump to 4.19.4 (diff)
downloadgentoo-81549b33168154d1014a120bc28a2c7951bf1058.tar.gz
gentoo-81549b33168154d1014a120bc28a2c7951bf1058.tar.bz2
gentoo-81549b33168154d1014a120bc28a2c7951bf1058.zip
dev-vcs/mercurial: apply demand import patch for python 3.12.4
Closes: https://bugs.gentoo.org/938128 Signed-off-by: Cédric Krier <cedk@gentoo.org>
Diffstat (limited to 'dev-vcs')
-rw-r--r--dev-vcs/mercurial/files/python3.12.patch51
-rw-r--r--dev-vcs/mercurial/mercurial-6.5.3.ebuild2
-rw-r--r--dev-vcs/mercurial/mercurial-6.6.2.ebuild2
-rw-r--r--dev-vcs/mercurial/mercurial-6.7.4.ebuild2
4 files changed, 57 insertions, 0 deletions
diff --git a/dev-vcs/mercurial/files/python3.12.patch b/dev-vcs/mercurial/files/python3.12.patch
new file mode 100644
index 000000000000..ad0e5772739d
--- /dev/null
+++ b/dev-vcs/mercurial/files/python3.12.patch
@@ -0,0 +1,51 @@
+# HG changeset patch
+# User Julien Cristau <jcristau@debian.org>
+# Date 1721983948 -7200
+# Fri Jul 26 10:52:28 2024 +0200
+# Branch stable
+# Node ID 63ede7a43a3731fecc7e5b535144c6bd59911284
+# Parent e6508d1e0b47fb5437a36e1f5fe00dc032991b9b
+demandimport: don't delay threading import
+
+A recent cpython change breaks demandimport by importing threading
+locally in importlib.util.LazyLoader.exec_module; add it (plus warnings
+and _weakrefset, which are imported by threading) to demandimport's
+ignore list.
+
+```
+Traceback (most recent call last):
+ File "/usr/bin/hg", line 57, in <module>
+ from mercurial import dispatch
+ File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
+ File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
+ File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
+ File "/usr/lib/python3/dist-packages/hgdemandimport/demandimportpy3.py", line 52, in exec_module
+ super().exec_module(module)
+ File "<frozen importlib.util>", line 257, in exec_module
+ File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
+ File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
+ File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
+ File "/usr/lib/python3/dist-packages/hgdemandimport/demandimportpy3.py", line 52, in exec_module
+ super().exec_module(module)
+ File "<frozen importlib.util>", line 267, in exec_module
+AttributeError: partially initialized module 'threading' has no attribute 'RLock' (most likely due to a circular import)
+```
+
+Ref: https://github.com/python/cpython/issues/117983
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076449
+ https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1076747
+
+diff --git a/hgdemandimport/__init__.py b/hgdemandimport/__init__.py
+--- a/hgdemandimport/__init__.py
++++ b/hgdemandimport/__init__.py
+@@ -58,6 +58,10 @@
+ # setuptools uses this hack to inject it's own distutils at import time
+ 'setuptools',
+ '_distutils_hack.override',
++ # threading is locally imported by importlib.util.LazyLoader.exec_module
++ '_weakrefset',
++ 'warnings',
++ 'threading',
+ }
+
+ _pypy = '__pypy__' in sys.builtin_module_names
diff --git a/dev-vcs/mercurial/mercurial-6.5.3.ebuild b/dev-vcs/mercurial/mercurial-6.5.3.ebuild
index 8c1137cfcd01..be2e9ed6132c 100644
--- a/dev-vcs/mercurial/mercurial-6.5.3.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.5.3.ebuild
@@ -192,6 +192,8 @@ SITEFILE="70${PN}-gentoo.el"
RESTRICT="!test? ( test )"
+PATCHES=( "${FILESDIR}/python3.12.patch" )
+
src_unpack() {
default_src_unpack
if use rust; then
diff --git a/dev-vcs/mercurial/mercurial-6.6.2.ebuild b/dev-vcs/mercurial/mercurial-6.6.2.ebuild
index ed79e2235c03..f9b1e2544f31 100644
--- a/dev-vcs/mercurial/mercurial-6.6.2.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.6.2.ebuild
@@ -202,6 +202,8 @@ SITEFILE="70${PN}-gentoo.el"
RESTRICT="!test? ( test )"
+PATCHES=( "${FILESDIR}/python3.12.patch" )
+
src_unpack() {
default_src_unpack
if use rust; then
diff --git a/dev-vcs/mercurial/mercurial-6.7.4.ebuild b/dev-vcs/mercurial/mercurial-6.7.4.ebuild
index 6207efb0c49b..ffb9e0d727d7 100644
--- a/dev-vcs/mercurial/mercurial-6.7.4.ebuild
+++ b/dev-vcs/mercurial/mercurial-6.7.4.ebuild
@@ -213,6 +213,8 @@ SITEFILE="70${PN}-gentoo.el"
RESTRICT="!test? ( test )"
+PATCHES=( "${FILESDIR}/python3.12.patch" )
+
src_unpack() {
default_src_unpack
if use rust; then