Source: python-time-machine
Version: 2.13.0-2
Severity: normal
Tags: upstream patch
User: debian-pyt...@lists.debian.org
Usertags: python3.13
Forwarded: https://github.com/adamchainz/time-machine/pull/425

This package failed build from source when test-built against a version of
python3-defaults that incudes 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

This has been resolved upstream, as have a few other 3.13 issues.

Log snippet:

adding 'time_machine-2.13.0.dist-info/top_level.txt'
adding 'time_machine-2.13.0.dist-info/RECORD'
removing build/bdist.linux-aarch64/wheel
Successfully built time_machine-2.13.0-cp313-cp313-linux_aarch64.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with 
"installer" module
I: pybuild plugin_pyproject:129: Building wheel for python3.12 with "build" 
module
I: pybuild base:311: python3.12 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_time-machine  
* Building wheel...
running bdist_wheel
running build
running build_py
creating build/lib.linux-aarch64-cpython-312
creating build/lib.linux-aarch64-cpython-312/time_machine
copying src/time_machine/__init__.py -> 
build/lib.linux-aarch64-cpython-312/time_machine
running egg_info
writing src/time_machine.egg-info/PKG-INFO
writing dependency_links to src/time_machine.egg-info/dependency_links.txt
writing entry points to src/time_machine.egg-info/entry_points.txt
writing requirements to src/time_machine.egg-info/requires.txt
writing top-level names to src/time_machine.egg-info/top_level.txt
reading manifest file 'src/time_machine.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'tests'
adding license file 'LICENSE'
writing manifest file 'src/time_machine.egg-info/SOURCES.txt'
copying src/time_machine/py.typed -> 
build/lib.linux-aarch64-cpython-312/time_machine
running build_ext
building '_time_machine' extension
creating build/temp.linux-aarch64-cpython-312
creating build/temp.linux-aarch64-cpython-312/src
aarch64-linux-gnu-gcc -fno-strict-overflow -Wsign-compare -DNDEBUG -g -O2 -Wall 
-g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC 
-I/usr/include/python3.12 -c src/_time_machine.c -o 
build/temp.linux-aarch64-cpython-312/src/_time_machine.o
aarch64-linux-gnu-gcc -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -g 
-fwrapv -O2 -Wl,-z,relro -g -O2 -Werror=implicit-function-declaration 
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong 
-fstack-clash-protection -Wformat -Werror=format-security 
-mbranch-protection=standard -Wdate-time -D_FORTIFY_SOURCE=2 
build/temp.linux-aarch64-cpython-312/src/_time_machine.o 
-L/usr/lib/aarch64-linux-gnu -o 
build/lib.linux-aarch64-cpython-312/_time_machine.cpython-312-aarch64-linux-gnu.so
installing to build/bdist.linux-aarch64/wheel
running install
running install_lib
creating build/bdist.linux-aarch64/wheel
creating build/bdist.linux-aarch64/wheel/time_machine
copying build/lib.linux-aarch64-cpython-312/time_machine/__init__.py -> 
build/bdist.linux-aarch64/wheel/./time_machine
copying build/lib.linux-aarch64-cpython-312/time_machine/py.typed -> 
build/bdist.linux-aarch64/wheel/./time_machine
copying 
build/lib.linux-aarch64-cpython-312/_time_machine.cpython-312-aarch64-linux-gnu.so
 -> build/bdist.linux-aarch64/wheel/.
running install_egg_info
Copying src/time_machine.egg-info to 
build/bdist.linux-aarch64/wheel/./time_machine-2.13.0.egg-info
running install_scripts
creating build/bdist.linux-aarch64/wheel/time_machine-2.13.0.dist-info/WHEEL
creating 
'/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_time-machine/.tmp-evrlovll/time_machine-2.13.0-cp312-cp312-linux_aarch64.whl'
 and adding 'build/bdist.linux-aarch64/wheel' to it
adding '_time_machine.cpython-312-aarch64-linux-gnu.so'
adding 'time_machine/__init__.py'
adding 'time_machine/py.typed'
adding 'time_machine-2.13.0.dist-info/LICENSE'
adding 'time_machine-2.13.0.dist-info/METADATA'
adding 'time_machine-2.13.0.dist-info/WHEEL'
adding 'time_machine-2.13.0.dist-info/entry_points.txt'
adding 'time_machine-2.13.0.dist-info/top_level.txt'
adding 'time_machine-2.13.0.dist-info/RECORD'
removing build/bdist.linux-aarch64/wheel
Successfully built time_machine-2.13.0-cp312-cp312-linux_aarch64.whl
I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.12 with 
"installer" module
   dh_auto_test -O--buildsystem=pybuild
I: pybuild base:311: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_time-machine/build; python3.13 -m 
pytest 
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/usr/lib/python3/dist-packages/pytest/__main__.py", line 9, in <module>
    raise SystemExit(pytest.console_main())
                     ~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 201, 
in console_main
    code = main()
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 156, 
in main
    config = _prepareconfig(args, plugins)
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 341, 
in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
        pluginmanager=pluginmanager, args=args
    )
  File "/usr/lib/python3/dist-packages/pluggy/_hooks.py", line 513, in __call__
    return self._hookexec(self.name, self._hookimpls.copy(), kwargs, 
firstresult)
           
~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 120, in 
_hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 139, in 
_multicall
    raise exception.with_traceback(exception.__traceback__)
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 122, in 
_multicall
    teardown.throw(exception)  # type: ignore[union-attr]
    ~~~~~~~~~~~~~~^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/_pytest/helpconfig.py", line 105, in 
pytest_cmdline_parse
    config = yield
             ^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_callers.py", line 103, in 
_multicall
    res = hook_impl.function(*args)
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 1140, 
in pytest_cmdline_parse
    self.parse(args)
    ~~~~~~~~~~^^^^^^
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 1490, 
in parse
    self._preparse(args, addopts=addopts)
    ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/_pytest/config/__init__.py", line 1377, 
in _preparse
    self.pluginmanager.load_setuptools_entrypoints("pytest11")
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/pluggy/_manager.py", line 421, in 
load_setuptools_entrypoints
    plugin = ep.load()
  File "/usr/lib/python3.13/importlib/metadata/__init__.py", line 179, in load
    module = import_module(match.group('module'))
  File "/usr/lib/python3.13/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  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/_pytest/assertion/rewrite.py", line 174, 
in exec_module
    exec(co, module.__dict__)
    ~~~~^^^^^^^^^^^^^^^^^^^^^
  File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_time-machine/build/time_machine/__init__.py",
 line 223, in <module>
    uuid._load_system_functions  # type: ignore[attr-defined]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: module 'uuid' has no attribute '_load_system_functions'
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_time-machine/build; python3.13 -m 
pytest 
I: pybuild base:311: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_time-machine/build; python3.12 -m 
pytest 
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.2, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
configfile: pyproject.toml
plugins: time_machine-2.13.0, typeguard-4.3.0
collected 1 item

tests/test_basics.py .                                                   [100%]

============================== 1 passed in 0.01s ===============================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 
3.12" returned exit code 13
make: *** [debian/rules:6: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-11T15:46:43Z


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

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

Reply via email to