Package: src:python-makefun Version: 1.15.4-2 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, this package failed to build. Below you will find the last part of the build log (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202608/ About the archive rebuild: The build was made on virtual machines from AWS, using sbuild and a reduced chroot with only build-essential packages. If you cannot reproduce the bug please contact me privately, as I am willing to provide ssh access to a virtual machine where the bug is fully reproducible. If this is really a bug in one of the build-depends, please use reassign and add an affects on src:python-makefun, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --buildsystem=pybuild dh_auto_clean -O--buildsystem=pybuild dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild dh_auto_build -O--buildsystem=pybuild I: pybuild plugin_pyproject:142: Building wheel for python3.14 with "build" module I: pybuild base:385: python3.14 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14 * Building wheel... <string>:19: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html toml section missing PosixPath('pyproject.toml') does not contain a tool.setuptools_scm section toml section missing PosixPath('pyproject.toml') does not contain a tool.setuptools_scm section /usr/lib/python3/dist-packages/setuptools/dist.py:759: SetuptoolsDeprecationWarning: License classifiers are deprecated. !! ******************************************************************************** Please consider removing the following classifiers in favor of a SPDX license expression: License :: OSI Approved :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() running bdist_wheel /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:135: SetuptoolsDeprecationWarning: bdist_wheel.universal is deprecated !! ******************************************************************************** With Python 2.7 end-of-life, support for building universal wheels (i.e., wheels that support both Python 2 and Python 3) is being obviated. Please discontinue using this option, or if you still need it, file an issue with pypa/setuptools describing your use case. This deprecation is overdue, please update your project and remove deprecated calls to avoid build errors in the future. ******************************************************************************** !! self.finalize_options() running build running build_py creating build/lib/makefun copying src/makefun/_main_py35_and_higher.py -> build/lib/makefun copying src/makefun/_main_legacy_py.py -> build/lib/makefun copying src/makefun/_version.py -> build/lib/makefun copying src/makefun/__init__.py -> build/lib/makefun copying src/makefun/_main_py36_and_higher.py -> build/lib/makefun copying src/makefun/main.py -> build/lib/makefun copying src/makefun/py.typed -> build/lib/makefun installing to build/bdist.linux-x86_64/wheel running install running install_lib creating build/bdist.linux-x86_64/wheel creating build/bdist.linux-x86_64/wheel/makefun copying build/lib/makefun/_main_py35_and_higher.py -> build/bdist.linux-x86_64/wheel/./makefun copying build/lib/makefun/_main_legacy_py.py -> build/bdist.linux-x86_64/wheel/./makefun copying build/lib/makefun/_version.py -> build/bdist.linux-x86_64/wheel/./makefun copying build/lib/makefun/__init__.py -> build/bdist.linux-x86_64/wheel/./makefun copying build/lib/makefun/py.typed -> build/bdist.linux-x86_64/wheel/./makefun copying build/lib/makefun/_main_py36_and_higher.py -> build/bdist.linux-x86_64/wheel/./makefun copying build/lib/makefun/main.py -> build/bdist.linux-x86_64/wheel/./makefun running install_egg_info running egg_info creating src/makefun.egg-info writing src/makefun.egg-info/PKG-INFO writing dependency_links to src/makefun.egg-info/dependency_links.txt writing top-level names to src/makefun.egg-info/top_level.txt writing manifest file 'src/makefun.egg-info/SOURCES.txt' reading manifest file 'src/makefun.egg-info/SOURCES.txt' adding license file 'LICENSE' writing manifest file 'src/makefun.egg-info/SOURCES.txt' Copying src/makefun.egg-info to build/bdist.linux-x86_64/wheel/./makefun-1.15.4.egg-info running install_scripts creating build/bdist.linux-x86_64/wheel/makefun-1.15.4.dist-info/WHEEL creating '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/.tmp-jradxegj/makefun-1.15.4-py2.py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it adding 'makefun/__init__.py' adding 'makefun/_main_legacy_py.py' adding 'makefun/_main_py35_and_higher.py' adding 'makefun/_main_py36_and_higher.py' adding 'makefun/_version.py' adding 'makefun/main.py' adding 'makefun/py.typed' adding 'makefun-1.15.4.dist-info/licenses/LICENSE' adding 'makefun-1.15.4.dist-info/METADATA' adding 'makefun-1.15.4.dist-info/WHEEL' adding 'makefun-1.15.4.dist-info/top_level.txt' adding 'makefun-1.15.4.dist-info/RECORD' removing build/bdist.linux-x86_64/wheel Successfully built makefun-1.15.4-py2.py3-none-any.whl I: pybuild plugin_pyproject:168: Unpacking wheel built for python3.14 with "installer" module dh_auto_test -O--buildsystem=pybuild I: pybuild base:385: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build; python3.14 -m pytest tests ============================= test session starts ============================== platform linux -- Python 3.14.6, pytest-9.1.1, pluggy-1.6.0 -- /usr/bin/python3.14 cachedir: .pytest_cache rootdir: /<<PKGBUILDDIR>> configfile: setup.cfg plugins: typeguard-4.4.4 collecting ... collected 97 items tests/test_advanced.py::test_non_representable_defaults PASSED [ 1%] tests/test_advanced.py::test_preserve_attributes PASSED [ 2%] tests/test_advanced.py::test_empty_name_in_string PASSED [ 3%] tests/test_advanced.py::test_same_than_wraps_basic PASSED [ 4%] tests/test_advanced.py::tests_wraps_sigchange PASSED [ 5%] tests/test_advanced.py::tests_wraps_lambda PASSED [ 6%] tests/test_advanced.py::tests_wraps_renamed_lambda PASSED [ 7%] tests/test_advanced.py::test_lambda_signature_str PASSED [ 8%] tests/test_advanced.py::test_co_name PASSED [ 9%] tests/test_advanced.py::test_with_signature_lambda PASSED [ 10%] tests/test_advanced.py::test_create_wrapper_lambda PASSED [ 11%] tests/test_advanced.py::test_invalid_co_name PASSED [ 12%] tests/test_advanced.py::test_invalid_func_name PASSED [ 13%] tests/test_advanced.py::test_qualname_when_nested PASSED [ 14%] tests/test_advanced.py::test_type_hint_error PASSED [ 15%] tests/test_advanced.py::test_type_hint_error2 PASSED [ 16%] tests/test_advanced.py::test_type_hint_error_sigchange PASSED [ 17%] tests/test_compile_deco.py::test_compilefun PASSED [ 18%] tests/test_compile_deco.py::test_compilefun_nested PASSED [ 19%] tests/test_compile_deco.py::test_compilefun_nested_already_compiled PASSED [ 20%] tests/test_compile_deco.py::test_compilefun_nested_exclude[variant=all] PASSED [ 21%] tests/test_compile_deco.py::test_compilefun_nested_exclude[variant=named] PASSED [ 22%] tests/test_compile_deco.py::test_compilefun_co_names PASSED [ 23%] tests/test_compile_deco.py::test_compilefun_nameerror PASSED [ 24%] tests/test_compile_deco.py::test_compilefun_method PASSED [ 25%] tests/test_compile_deco.py::test_compileclass_decorator PASSED [ 26%] tests/test_create_from_signature.py::test_positional_only PASSED [ 27%] tests/test_create_from_string.py::test_basic[type_hints=False-self_ref=True] PASSED [ 28%] tests/test_create_from_string.py::test_basic[type_hints=False-self_ref=False] PASSED [ 29%] tests/test_create_from_string.py::test_basic[type_hints=1-self_ref=True] PASSED [ 30%] tests/test_create_from_string.py::test_basic[type_hints=1-self_ref=False] PASSED [ 31%] tests/test_create_from_string.py::test_basic[type_hints=2-self_ref=True] PASSED [ 32%] tests/test_create_from_string.py::test_basic[type_hints=2-self_ref=False] PASSED [ 34%] tests/test_create_from_string.py::test_type_comments SKIPPED (This t...) [ 35%] tests/test_create_from_string.py::TestArguments::test_case_simple PASSED [ 36%] tests/test_create_from_string.py::TestArguments::test_case_simple_with_star PASSED [ 37%] tests/test_create_from_string.py::TestArguments::test_case_simple_with_star_args1 PASSED [ 38%] tests/test_create_from_string.py::TestArguments::test_case_simple_with_star_args2 PASSED [ 39%] tests/test_create_from_string.py::TestArguments::test_case_with_type_comments_and_newlines PASSED [ 40%] tests/test_doc.py::test_ex_nihilo[type=str-decorator=False] PASSED [ 41%] tests/test_doc.py::test_ex_nihilo[type=str-decorator=True] PASSED [ 42%] tests/test_doc.py::test_ex_nihilo[type=Signature-decorator=False] PASSED [ 43%] tests/test_doc.py::test_ex_nihilo[type=Signature-decorator=True] PASSED [ 44%] tests/test_doc.py::test_ex_nihilo_kw_only PASSED [ 45%] tests/test_doc.py::test_from_sig_wrapper[use_decorator=False] PASSED [ 46%] tests/test_doc.py::test_from_sig_wrapper[use_decorator=True] PASSED [ 47%] tests/test_doc.py::test_helper_functions PASSED [ 48%] tests/test_doc.py::test_injection PASSED [ 49%] tests/test_doc.py::test_var_length PASSED [ 50%] tests/test_doc.py::test_positional_only PASSED [ 51%] tests/test_doc.py::test_with_signature PASSED [ 52%] tests/test_doc.py::test_with_signature_none PASSED [ 53%] tests/test_doc.py::test_wraps hello! b=2 hello! b=0 hello! b=1 PASSED [ 54%] tests/test_doc.py::test_wraps_functools hello! b=0 hello! PASSED [ 55%] tests/test_doc.py::test_wraps_remove PASSED [ 56%] tests/test_doc.py::test_wraps_add_doc PASSED [ 57%] tests/test_doc.py::test_wraps_add[prepend=True] PASSED [ 58%] tests/test_doc.py::test_wraps_add[prepend=False] PASSED [ 59%] tests/test_generators_coroutines.py::test_generator PASSED [ 60%] tests/test_generators_coroutines.py::test_generator_with_signature PASSED [ 61%] tests/test_generators_coroutines.py::test_generator_based_coroutine PASSED [ 62%] tests/test_generators_coroutines.py::test_native_coroutine FAILED [ 63%] tests/test_generators_coroutines.py::test_issue_96 FAILED [ 64%] tests/test_issues.py::test_wraps_varpositional_issue_34 PASSED [ 65%] tests/test_issues.py::test_varpositional2 PASSED [ 67%] tests/test_issues.py::test_invalid_signature_str PASSED [ 68%] tests/test_issues.py::test_invalid_signature_str_py3 PASSED [ 69%] tests/test_issues.py::test_return_annotation_in_py2 PASSED [ 70%] tests/test_issues.py::test_init_replaced PASSED [ 71%] tests/test_issues.py::test_issue_55 PASSED [ 72%] tests/test_issues.py::test_partial_noargs PASSED [ 73%] tests/test_issues.py::test_wraps_dict PASSED [ 74%] tests/test_issues.py::test_issue_62 PASSED [ 75%] tests/test_issues.py::test_issue_63 PASSED [ 76%] tests/test_issues.py::test_issue_66 PASSED [ 77%] tests/test_issues.py::test_issue_pr_67 PASSED [ 78%] tests/test_issues.py::test_issue_76 PASSED [ 79%] tests/test_issues.py::test_issue_77_async_generator_wraps FAILED [ 80%] tests/test_issues.py::test_issue_77_async_generator_partial FAILED [ 81%] tests/test_issues.py::test_issue_85_wrapped_forwardref_annotation PASSED [ 82%] tests/test_issues.py::test_issue_91 PASSED [ 83%] tests/test_issues.py::test_issue_98 PASSED [ 84%] tests/test_partial_and_macros.py::test_doc PASSED [ 85%] tests/test_partial_and_macros.py::test_partial PASSED [ 86%] tests/test_partial_and_macros.py::test_issue_57 PASSED [ 87%] tests/test_partial_and_macros.py::test_create_with_partial PASSED [ 88%] tests/test_partial_and_macros.py::test_args_order_and_kind PASSED [ 89%] tests/test_partial_and_macros.py::test_simple_partial_copy[False] PASSED [ 90%] tests/test_partial_and_macros.py::test_simple_partial_copy[True] PASSED [ 91%] tests/test_so.py::test_create_facades This is generic impl called by func1 called from func1 ! This is generic impl called by func2 This is generic impl called by func3 PASSED [ 92%] tests/test_so.py::test_so_decorator PASSED [ 93%] tests/test_so.py::test_so_facade PASSED [ 94%] tests/test_so.py::test_so_sig_preserving Help on function my_func in module tests.test_so: my_func(x) my function PASSED [ 95%] tests/test_so.py::test_sig_preserving_2 wrapper executes 22 Help on function funny_function in module tests.test_so: funny_function(x, y, z=3) Computes x*y + 2*z PASSED [ 96%] tests/test_so.py::test_so_partial Help on function foo in module tests.test_so: foo(a, *, b=10, c=1) <This function is equivalent to 'foo(a, b=10, c=1)', see original 'foo' doc below.> Return (a+b)*c. PASSED [ 97%] tests/test_so.py::test_so_partial2 hello world 1 2 Help on function test in module tests.test_so: test(*, a='hello', b='world', x, y) <This function is equivalent to 'test(a='hello', b='world', x, y)'.> Help on function test in module tests.test_so: test(*, a='hello', b='world', x, y) <This function is equivalent to 'test(a='hello', b='world', x, y)', see original 'test' doc below.> Here is a doc PASSED [ 98%] tests/test_so.py::test_so_partial_posargs Help on function test in module tests.test_so: test(*, b='world', x, y) <This function is equivalent to 'test('hello', b='world', x, y)'.> PASSED [100%] =================================== FAILURES =================================== ____________________________ test_native_coroutine _____________________________ @pytest.mark.skipif(sys.version_info < (3, 5), reason="native coroutines with async/await require python3.6 or higher") def test_native_coroutine(): """ Tests that we can use a native async coroutine as function_handler in `create_function`""" # define the handler that should be called from tests._test_py35 import make_native_coroutine_handler my_native_coroutine_handler = make_native_coroutine_handler() # create the dynamic function dynamic_fun = create_function("foo(sleep_time=2)", my_native_coroutine_handler) # check that this is a coroutine for inspect and for asyncio assert iscoroutinefunction(dynamic_fun) from asyncio import iscoroutinefunction as is_native_co assert is_native_co(dynamic_fun) # verify that the new function is a native coroutine and behaves correctly from asyncio import get_event_loop > out = get_event_loop().run_until_complete(dynamic_fun(0.1)) ^^^^^^^^^^^^^^^^ tests/test_generators_coroutines.py:96: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7f7aa20b57f0> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:718: RuntimeError ________________________________ test_issue_96 _________________________________ @pytest.mark.skipif(sys.version_info < (3, 5), reason="native coroutines with async/await require python3.6 or higher") def test_issue_96(): """Same as `test_native_coroutine` but tests that we can use 'return' in the coroutine name""" # define the handler that should be called from tests._test_py35 import make_native_coroutine_handler my_native_coroutine_handler = make_native_coroutine_handler() # create the dynamic function dynamic_fun = create_function("foo_returns_bar(sleep_time=2)", my_native_coroutine_handler) # check that this is a coroutine for inspect and for asyncio assert iscoroutinefunction(dynamic_fun) from asyncio import iscoroutinefunction as is_native_co assert is_native_co(dynamic_fun) # verify that the new function is a native coroutine and behaves correctly from asyncio import get_event_loop > out = get_event_loop().run_until_complete(dynamic_fun(0.1)) ^^^^^^^^^^^^^^^^ tests/test_generators_coroutines.py:118: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7f7aa20b57f0> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:718: RuntimeError _____________________ test_issue_77_async_generator_wraps ______________________ @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python 3.6 or higher (async generator)") def test_issue_77_async_generator_wraps(): import asyncio from ._test_py36 import make_async_generator, make_async_generator_wrapper f = make_async_generator() wrapper = wraps(f)(make_async_generator_wrapper(f)) assert inspect.isasyncgenfunction(f) assert inspect.isasyncgenfunction(wrapper) > assert > asyncio.get_event_loop().run_until_complete(asyncio.ensure_future(wrapper(1).__anext__())) > == 1 ^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_issues.py:241: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7f7aa20b57f0> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:718: RuntimeError ____________________ test_issue_77_async_generator_partial _____________________ @pytest.mark.skipif(sys.version_info < (3, 6), reason="requires python 3.6 or higher (async generator)") def test_issue_77_async_generator_partial(): import asyncio from ._test_py36 import make_async_generator f = make_async_generator() f_partial = partial(f, v=1) assert inspect.isasyncgenfunction(f) assert inspect.isasyncgenfunction(f_partial) > assert > asyncio.get_event_loop().run_until_complete(asyncio.ensure_future(f_partial().__anext__())) > == 1 ^^^^^^^^^^^^^^^^^^^^^^^^ tests/test_issues.py:255: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <asyncio.unix_events._UnixDefaultEventLoopPolicy object at 0x7f7aa20b57f0> def get_event_loop(self): """Get the event loop for the current context. Returns an instance of EventLoop or raises an exception. """ if self._local._loop is None: > raise RuntimeError('There is no current event loop in thread %r.' % threading.current_thread().name) E RuntimeError: There is no current event loop in thread 'MainThread'. /usr/lib/python3.14/asyncio/events.py:718: RuntimeError =============================== warnings summary =============================== .pybuild/cpython3_3.14/build/tests/test_generators_coroutines.py::test_native_coroutine /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_generators_coroutines.py:92: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead assert is_native_co(dynamic_fun) .pybuild/cpython3_3.14/build/tests/test_generators_coroutines.py::test_issue_96 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build/tests/test_generators_coroutines.py:114: DeprecationWarning: 'asyncio.iscoroutinefunction' is deprecated and slated for removal in Python 3.16; use inspect.iscoroutinefunction() instead assert is_native_co(dynamic_fun) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_generators_coroutines.py::test_native_coroutine - RuntimeEr... FAILED tests/test_generators_coroutines.py::test_issue_96 - RuntimeError: The... FAILED tests/test_issues.py::test_issue_77_async_generator_wraps - RuntimeErr... FAILED tests/test_issues.py::test_issue_77_async_generator_partial - RuntimeE... ============= 4 failed, 92 passed, 1 skipped, 2 warnings in 0.19s ============== E: pybuild pybuild:485: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14/build; python3.14 -m pytest tests dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.14 --parallel=2 returned exit code 13 make: *** [debian/rules:4: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess failed with exit status 2 --------------------------------------------------------------------------------

