Package: src:pexpect Version: 4.9-3 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/202512/ 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:pexpect, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean dh clean --with sphinxdoc --buildsystem=pybuild debian/rules override_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' dh_auto_clean I: pybuild base:317: python3.14 setup.py clean /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 :: ISC License (ISCL) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.14' does not exist -- can't clean it I: pybuild base:317: python3.13 setup.py clean /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 :: ISC License (ISCL) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() 'build/bdist.linux-x86_64' does not exist -- can't clean it 'build/scripts-3.13' does not exist -- can't clean it rm -rf .coverage make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary dh binary --with sphinxdoc --buildsystem=pybuild dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:317: python3.14 setup.py config /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 :: ISC License (ISCL) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() I: pybuild base:317: python3.13 setup.py config /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 :: ISC License (ISCL) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() debian/rules override_dh_auto_build make[1]: Entering directory '/<<PKGBUILDDIR>>' dh_auto_build I: pybuild base:317: /usr/bin/python3.14 setup.py build /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 :: ISC License (ISCL) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() I: pybuild base:317: /usr/bin/python3 setup.py build /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 :: ISC License (ISCL) See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() PYTHONPATH=. http_proxy='127.0.0.1:9' python3 -m sphinx -N -bhtml doc/ build/html Running Sphinx v8.2.3 loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. loading intersphinx inventory 'python' from http://docs.python.org/3/objects.inv ... WARNING: failed to reach any of the inventories with the following issues: intersphinx inventory 'http://docs.python.org/3/objects.inv' not fetchable due to <class 'requests.exceptions.ProxyError'>: HTTPConnectionPool(host='127.0.0.1', port=9): Max retries exceeded with url: http://docs.python.org/3/objects.inv (Caused by ProxyError('Unable to connect to proxy', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f5ca1206900>: Failed to establish a new connection: [Errno 111] Connection refused'))) building [mo]: targets for 0 po files that are out of date writing output... building [html]: targets for 13 source files that are out of date updating environment: [new config] 13 added, 0 changed, 0 removed [2Kreading sources... [ 8%] FAQ [2Kreading sources... [ 15%] api/fdpexpect [2Kreading sources... [ 23%] api/index [2Kreading sources... [ 31%] api/pexpect [2Kreading sources... [ 38%] api/popen_spawn [2Kreading sources... [ 46%] api/pxssh [2Kreading sources... [ 54%] api/replwrap [2Kreading sources... [ 62%] api/socket_pexpect [2Kreading sources... [ 69%] commonissues [2Kreading sources... [ 77%] examples [2Kreading sources... [ 85%] index [2Kreading sources... [ 92%] install [2Kreading sources... [100%] overview /<<PKGBUILDDIR>>/doc/index.rst:25: WARNING: toctree contains reference to excluded document 'history' [toc.excluded] looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying static files... Writing evaluated template result to /<<PKGBUILDDIR>>/build/html/_static/basic.css Writing evaluated template result to /<<PKGBUILDDIR>>/build/html/_static/language_data.js Writing evaluated template result to /<<PKGBUILDDIR>>/build/html/_static/documentation_options.js Writing evaluated template result to /<<PKGBUILDDIR>>/build/html/_static/classic.css Writing evaluated template result to /<<PKGBUILDDIR>>/build/html/_static/sidebar.js copying static files: done copying extra files... copying extra files: done copying assets: done [2Kwriting output... [ 8%] FAQ [2Kwriting output... [ 15%] api/fdpexpect [2Kwriting output... [ 23%] api/index [2Kwriting output... [ 31%] api/pexpect [2Kwriting output... [ 38%] api/popen_spawn [2Kwriting output... [ 46%] api/pxssh [2Kwriting output... [ 54%] api/replwrap [2Kwriting output... [ 62%] api/socket_pexpect [2Kwriting output... [ 69%] commonissues [2Kwriting output... [ 77%] examples [2Kwriting output... [ 85%] index [2Kwriting output... [ 92%] install [2Kwriting output... [100%] overview /<<PKGBUILDDIR>>/pexpect/pxssh.py:docstring of pexpect.pxssh.pxssh.__init__:41: WARNING: more than one target found for cross-reference 'expect': pexpect.fdpexpect.fdspawn.expect, pexpect.spawn.expect, pexpect.popen_spawn.PopenSpawn.expect, pexpect.socket_pexpect.SocketSpawn.expect [ref.python] /<<PKGBUILDDIR>>/pexpect/pxssh.py:docstring of pexpect.pxssh.pxssh.__init__:48: WARNING: more than one target found for cross-reference 'expect': pexpect.fdpexpect.fdspawn.expect, pexpect.spawn.expect, pexpect.popen_spawn.PopenSpawn.expect, pexpect.socket_pexpect.SocketSpawn.expect [ref.python] /<<PKGBUILDDIR>>/pexpect/pxssh.py:docstring of pexpect.pxssh.pxssh.__init__:48: WARNING: more than one target found for cross-reference 'expect': pexpect.fdpexpect.fdspawn.expect, pexpect.spawn.expect, pexpect.popen_spawn.PopenSpawn.expect, pexpect.socket_pexpect.SocketSpawn.expect [ref.python] generating indices... genindex py-modindex done [2Khighlighting module code... [ 11%] pexpect.exceptions [2Khighlighting module code... [ 22%] pexpect.fdpexpect [2Khighlighting module code... [ 33%] pexpect.popen_spawn [2Khighlighting module code... [ 44%] pexpect.pty_spawn [2Khighlighting module code... [ 56%] pexpect.pxssh [2Khighlighting module code... [ 67%] pexpect.replwrap [2Khighlighting module code... [ 78%] pexpect.run [2Khighlighting module code... [ 89%] pexpect.socket_pexpect [2Khighlighting module code... [100%] pexpect.utils writing additional pages... search done dumping search index in English (code: en)... done dumping object inventory... done build succeeded, 5 warnings. The HTML pages are in build/html. make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_auto_test -O--buildsystem=pybuild I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pexpect/build; python3.14 -m pytest -k 'not (pxssh or replwrap or test_before_across_chunks or test_spawn_uses_env or test_socket)' ============================= test session starts ============================== platform linux -- Python 3.14.2, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> configfile: setup.cfg plugins: typeguard-4.4.4 collected 257 items / 62 deselected / 195 selected tests/test_FSM.py . [ 0%] tests/test_ansi.py ......... [ 5%] tests/test_async.py ....... [ 8%] tests/test_command_list_split.py . [ 9%] tests/test_constructor.py .. [ 10%] tests/test_ctrl_chars.py ..... [ 12%] tests/test_delay.py .. [ 13%] tests/test_destructor.py . [ 14%] tests/test_dotall.py .. [ 15%] tests/test_env.py ... [ 16%] tests/test_expect.py .................................FF.... [ 36%] tests/test_filedescriptor.py ..... [ 39%] tests/test_interact.py ... [ 41%] tests/test_isalive.py ......... [ 45%] tests/test_log.py .... [ 47%] tests/test_misc.py .............................. [ 63%] tests/test_missing_command.py . [ 63%] tests/test_performance.py .. [ 64%] tests/test_pickling.py . [ 65%] tests/test_popen_spawn.py ........... [ 70%] tests/test_repr.py ... [ 72%] tests/test_run.py ................. [ 81%] tests/test_screen.py ........... [ 86%] tests/test_timeout_pattern.py ..... [ 89%] tests/test_unicode.py ........... [ 94%] tests/test_which.py ....... [ 98%] tests/test_winsize.py ... [100%] =================================== FAILURES =================================== _______________________ ExpectTestCase.test_stdin_closed _______________________ self = <tests.test_expect.ExpectTestCase testMethod=test_stdin_closed> def test_stdin_closed(self): ''' Ensure pexpect continues to operate even when stdin is closed ''' class Closed_stdin_proc(multiprocessing.Process): def run(self): sys.__stdin__.close() cat = pexpect.spawn('cat') cat.sendeof() cat.expect(pexpect.EOF) proc = Closed_stdin_proc() > proc.start() tests/test_expect.py:693: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) ^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) ^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = <Closed_stdin_proc name='Closed_stdin_proc-1' parent=103 initial> file = <_io.BytesIO object at 0x7fc570b03510>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object <class 'tests.test_expect.ExpectTestCase.test_stdin_closed.<locals>.Closed_stdin_proc'> E when serializing tests.test_expect.ExpectTestCase.test_stdin_closed.<locals>.Closed_stdin_proc class E when serializing tests.test_expect.ExpectTestCase.test_stdin_closed.<locals>.Closed_stdin_proc object /usr/lib/python3.14/multiprocessing/reduction.py:60: PicklingError ----------------------------- Captured stdout call ----------------------------- tests.test_expect.ExpectTestCase.test_stdin_closed ___________________ ExpectTestCase.test_stdin_stdout_closed ____________________ self = <tests.test_expect.ExpectTestCase testMethod=test_stdin_stdout_closed> def test_stdin_stdout_closed(self): ''' Ensure pexpect continues to operate even when stdin and stdout is closed ''' class Closed_stdin_stdout_proc(multiprocessing.Process): def run(self): sys.__stdin__.close() sys.__stdout__.close() cat = pexpect.spawn('cat') cat.sendeof() cat.expect(pexpect.EOF) proc = Closed_stdin_stdout_proc() > proc.start() tests/test_expect.py:710: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ /usr/lib/python3.14/multiprocessing/process.py:121: in start self._popen = self._Popen(self) ^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:224: in _Popen return _default_context.get_context().Process._Popen(process_obj) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/context.py:300: in _Popen return Popen(process_obj) ^^^^^^^^^^^^^^^^^^ /usr/lib/python3.14/multiprocessing/popen_forkserver.py:35: in __init__ super().__init__(process_obj) /usr/lib/python3.14/multiprocessing/popen_fork.py:20: in __init__ self._launch(process_obj) /usr/lib/python3.14/multiprocessing/popen_forkserver.py:47: in _launch reduction.dump(process_obj, buf) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ obj = <Closed_stdin_stdout_proc name='Closed_stdin_stdout_proc-2' parent=103 initial> file = <_io.BytesIO object at 0x7fc570b2b5b0>, protocol = None def dump(obj, file, protocol=None): '''Replacement for pickle.dump() using ForkingPickler.''' > ForkingPickler(file, protocol).dump(obj) E _pickle.PicklingError: Can't pickle local object <class 'tests.test_expect.ExpectTestCase.test_stdin_stdout_closed.<locals>.Closed_stdin_stdout_proc'> E when serializing tests.test_expect.ExpectTestCase.test_stdin_stdout_closed.<locals>.Closed_stdin_stdout_proc class E when serializing tests.test_expect.ExpectTestCase.test_stdin_stdout_closed.<locals>.Closed_stdin_stdout_proc object /usr/lib/python3.14/multiprocessing/reduction.py:60: PicklingError ----------------------------- Captured stdout call ----------------------------- tests.test_expect.ExpectTestCase.test_stdin_stdout_closed =============================== warnings summary =============================== pexpect/ANSI.py:29 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pexpect/build/pexpect/ANSI.py:29: UserWarning: pexpect.screen and pexpect.ANSI are deprecated. We recommend using pyte to emulate a terminal screen: https://pypi.python.org/pypi/pyte from . import screen .pybuild/cpython3_3.14_pexpect/build/tests/test_filedescriptor.py::ExpectTestCase::test_fileobj /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored while finalizing file <_io.TextIOWrapper name='TESTDATA.txt' mode='r' encoding='UTF-8'>: None Traceback (most recent call last): File "/usr/lib/python3.14/unittest/case.py", line 615, in _callTestMethod result = method() OSError: [Errno 9] Bad file descriptor warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) .pybuild/cpython3_3.14_pexpect/build/tests/test_repr.py: 2 warnings .pybuild/cpython3_3.14_pexpect/build/tests/test_run.py: 17 warnings .pybuild/cpython3_3.14_pexpect/build/tests/test_timeout_pattern.py: 4 warnings .pybuild/cpython3_3.14_pexpect/build/tests/test_unicode.py: 11 warnings .pybuild/cpython3_3.14_pexpect/build/tests/test_winsize.py: 3 warnings /usr/lib/python3.14/pty.py:66: DeprecationWarning: This process (pid=103) is multi-threaded, use of forkpty() may lead to deadlocks in the child. pid, fd = os.forkpty() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_expect.py::ExpectTestCase::test_stdin_closed - _pickle.PicklingError: Can't pickle local object <class 'tests.test_expect.ExpectTestCase.test_stdin_closed.<locals>.Closed_stdin_proc'> when serializing tests.test_expect.ExpectTestCase.test_stdin_closed.<locals>.Closed_stdin_proc class when serializing tests.test_expect.ExpectTestCase.test_stdin_closed.<locals>.Closed_stdin_proc object FAILED tests/test_expect.py::ExpectTestCase::test_stdin_stdout_closed - _pickle.PicklingError: Can't pickle local object <class 'tests.test_expect.ExpectTestCase.test_stdin_stdout_closed.<locals>.Closed_stdin_stdout_proc'> when serializing tests.test_expect.ExpectTestCase.test_stdin_stdout_closed.<locals>.Closed_stdin_stdout_proc class when serializing tests.test_expect.ExpectTestCase.test_stdin_stdout_closed.<locals>.Closed_stdin_stdout_proc object ==== 2 failed, 193 passed, 62 deselected, 39 warnings in 121.26s (0:02:01) ===== E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.14_pexpect/build; python3.14 -m pytest -k 'not (pxssh or replwrap or test_before_across_chunks or test_spawn_uses_env or test_socket)' I: pybuild base:317: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pexpect/build; python3.13 -m pytest -k 'not (pxssh or replwrap or test_before_across_chunks or test_spawn_uses_env or test_socket)' ============================= test session starts ============================== platform linux -- Python 3.13.11, pytest-9.0.2, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> configfile: setup.cfg plugins: typeguard-4.4.4 collected 257 items / 62 deselected / 195 selected tests/test_FSM.py . [ 0%] tests/test_ansi.py ......... [ 5%] tests/test_async.py ....... [ 8%] tests/test_command_list_split.py . [ 9%] tests/test_constructor.py .. [ 10%] tests/test_ctrl_chars.py ..... [ 12%] tests/test_delay.py .. [ 13%] tests/test_destructor.py . [ 14%] tests/test_dotall.py .. [ 15%] tests/test_env.py ... [ 16%] tests/test_expect.py ....................................... [ 36%] tests/test_filedescriptor.py ..... [ 39%] tests/test_interact.py ... [ 41%] tests/test_isalive.py ......... [ 45%] tests/test_log.py .... [ 47%] tests/test_misc.py .............................. [ 63%] tests/test_missing_command.py . [ 63%] tests/test_performance.py .. [ 64%] tests/test_pickling.py . [ 65%] tests/test_popen_spawn.py ........... [ 70%] tests/test_repr.py ... [ 72%] tests/test_run.py ................. [ 81%] tests/test_screen.py ........... [ 86%] tests/test_timeout_pattern.py ..... [ 89%] tests/test_unicode.py ........... [ 94%] tests/test_which.py ....... [ 98%] tests/test_winsize.py ... [100%] =============================== warnings summary =============================== pexpect/ANSI.py:29 /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_pexpect/build/pexpect/ANSI.py:29: UserWarning: pexpect.screen and pexpect.ANSI are deprecated. We recommend using pyte to emulate a terminal screen: https://pypi.python.org/pypi/pyte from . import screen .pybuild/cpython3_3.13_pexpect/build/tests/test_filedescriptor.py::ExpectTestCase::test_fileobj /usr/lib/python3/dist-packages/_pytest/unraisableexception.py:67: PytestUnraisableExceptionWarning: Exception ignored in: <_io.TextIOWrapper name='TESTDATA.txt' mode='r' encoding='UTF-8'> Traceback (most recent call last): File "/usr/lib/python3.13/unittest/case.py", line 606, in _callTestMethod if method() is not None: ~~~~~~^^ OSError: [Errno 9] Bad file descriptor Enable tracemalloc to get traceback where the object was allocated. See https://docs.pytest.org/en/stable/how-to/capture-warnings.html#resource-warnings for more info. warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) .pybuild/cpython3_3.13_pexpect/build/tests/test_repr.py: 2 warnings .pybuild/cpython3_3.13_pexpect/build/tests/test_run.py: 17 warnings .pybuild/cpython3_3.13_pexpect/build/tests/test_timeout_pattern.py: 4 warnings .pybuild/cpython3_3.13_pexpect/build/tests/test_unicode.py: 11 warnings .pybuild/cpython3_3.13_pexpect/build/tests/test_winsize.py: 3 warnings /usr/lib/python3.13/pty.py:95: DeprecationWarning: This process (pid=368) is multi-threaded, use of forkpty() may lead to deadlocks in the child. pid, fd = os.forkpty() -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========= 195 passed, 62 deselected, 39 warnings in 122.56s (0:02:02) ========== dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.14 3.13" returned exit code 13 make: *** [debian/rules:18: binary] Error 25 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

