Discussion:
Bug#1085218: mercurial FTBFS with Python 3.13
Add Reply
Stefano Rivera
2024-10-16 19:10:01 UTC
Reply
Permalink
Source: mercurial
Version: 6.8.1-1
Severity: normal
User: debian-***@lists.debian.org
Usertags: python3.13

This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

debian/rules override_dh_auto_build
make[1]: Entering directory '/<<PKGBUILDDIR>>'
/usr/bin/make all PYTHON=python3.13
make[2]: Entering directory '/<<PKGBUILDDIR>>'
python3.13 setup.py build
/<<PKGBUILDDIR>>/setup.py:470: DeprecationWarning: Use shutil.which instead of find_executable
if not find_executable('msgfmt'):
3185 translated messages, 102 fuzzy translations, 1301 untranslated messages.
5702 translated messages, 491 fuzzy translations, 864 untranslated messages.
i18n/ro.po:106: warning: header field 'Language' missing in header
677 translated messages, 4 fuzzy translations, 2805 untranslated messages.
2039 translated messages, 1 fuzzy translation, 2196 untranslated messages.
1950 translated messages, 92 fuzzy translations, 1830 untranslated messages.
1872 translated messages, 3 fuzzy translations, 1233 untranslated messages.
640 translated messages, 8 fuzzy translations, 2372 untranslated messages.
4668 translated messages, 10 untranslated messages.
i18n/el.po:7: warning: header field 'Language' missing in header
312 translated messages, 35 fuzzy translations, 1936 untranslated messages.
i18n/fr.po:86: warning: header field 'Language' missing in header
357 translated messages, 104 fuzzy translations, 1776 untranslated messages.
6735 translated messages, 326 untranslated messages.
i18n/zh_CN.po:47: warning: header field 'Language' missing in header
336 translated messages, 203 fuzzy translations, 1792 untranslated messages.
mercurial/cext/parsers.c: In function 'check_python_version':
mercurial/cext/parsers.c:1243:30: warning: 'Py_GetProgramFullPath' is deprecated [-Wdeprecated-declarations]
1243 | Py_GetProgramFullPath());
| ^~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/python3.13/Python.h:123,
from mercurial/cext/parsers.c:11:
/usr/include/python3.13/pylifecycle.h:43:43: note: declared here
43 | Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetProgramFullPath(void);
| ^~~~~~~~~~~~~~~~~~~~~
/usr/bin/make -C doc
make[3]: Entering directory '/<<PKGBUILDDIR>>/doc'
python3.13 gendoc.py "hg-ssh.8" > hg-ssh.8.txt.tmp
Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/doc/gendoc.py", line 39, in <module>
from mercurial.i18n import (
...<2 lines>...
)
File "<frozen importlib.util>", line 209, in __getattribute__
File "/<<PKGBUILDDIR>>/mercurial/i18n.py", line 14, in <module>
from typing import (
List,
)
File "<frozen importlib.util>", line 209, in __getattribute__
File "/usr/lib/python3.13/typing.py", line 2807, in <module>
Hashable = _alias(collections.abc.Hashable, 0) # Not generic.
^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib.util>", line 214, in __getattribute__
ValueError: module object for 'collections.abc' substituted in sys.modules during a lazy load
Traceback (most recent call last):
File "/<<PKGBUILDDIR>>/doc/gendoc.py", line 39, in <module>
from mercurial.i18n import (
File "<frozen importlib.util>", line 209, in __getattribute__
File "/<<PKGBUILDDIR>>/mercurial/i18n.py", line 14, in <module>
from typing import (
File "<frozen importlib.util>", line 209, in __getattribute__
File "/usr/lib/python3.13/typing.py", line 2807, in <module>
Hashable = _alias(collections.abc.Hashable, 0) # Not generic.
File "<frozen importlib.util>", line 214, in __getattribute__
ValueError: module object for 'collections.abc' substituted in sys.modules during a lazy load
make[3]: *** [Makefile:29: hg-ssh.8.txt] Error 1
make[3]: Leaving directory '/<<PKGBUILDDIR>>/doc'
make[2]: *** [Makefile:81: doc] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [debian/rules:23: build-python3.13] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:8: binary-arch] Error 2
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-10-16T16:12:06Z


If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/860580/

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano
Julien Cristau
2024-10-17 14:00:01 UTC
Reply
Permalink
Control: tag -1 upstream fixed-upstream
Control: forwarded -1 https://bz.mercurial-scm.org/show_bug.cgi?id=6926
Post by Stefano Rivera
This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.
[...]
Post by Stefano Rivera
File "/<<PKGBUILDDIR>>/doc/gendoc.py", line 39, in <module>
from mercurial.i18n import (
...<2 lines>...
)
File "<frozen importlib.util>", line 209, in __getattribute__
File "/<<PKGBUILDDIR>>/mercurial/i18n.py", line 14, in <module>
from typing import (
List,
)
File "<frozen importlib.util>", line 209, in __getattribute__
File "/usr/lib/python3.13/typing.py", line 2807, in <module>
Hashable = _alias(collections.abc.Hashable, 0) # Not generic.
^^^^^^^^^^^^^^^^^^^^^^^^
File "<frozen importlib.util>", line 214, in __getattribute__
ValueError: module object for 'collections.abc' substituted in sys.modules during a lazy load
Fixed by https://www.mercurial-scm.org/repo/hg/rev/141ed0bf72a1

Cheers,
Julien

Loading...