Package: src:python-sphinxcontrib.apidoc Version: 0.3.0-6 Severity: serious Tags: ftbfs forky sid
Dear maintainer: During a rebuild of all packages in unstable, your package failed to build. Below you will find how the build ends (probably the most relevant part, but not necessarily). If required, the full build log is available here: https://people.debian.org/~sanvila/build-logs/202509/ 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 could not 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-sphinxcontrib.apidoc, so that this is still visible in the BTS web page for this package. Thanks. -------------------------------------------------------------------------------- [...] debian/rules clean make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh clean --buildsystem=pybuild --with python3 debian/rules override_dh_auto_clean make[1]: Entering directory '/<<PKGBUILDDIR>>' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions rm -rf build .stestr .pytest_cache *.egg-info find . -iname '*.pyc' -delete for i in $(find . -type d -iname __pycache__) ; do rm -rf $i ; done make[1]: Leaving directory '/<<PKGBUILDDIR>>' dh_autoreconf_clean -O--buildsystem=pybuild dh_clean -O--buildsystem=pybuild debian/rules binary make: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions dh binary --buildsystem=pybuild --with python3 dh_update_autotools_config -O--buildsystem=pybuild dh_autoreconf -O--buildsystem=pybuild dh_auto_configure -O--buildsystem=pybuild I: pybuild base:311: 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 :: BSD License See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details. ******************************************************************************** !! self._finalize_license_expression() /usr/lib/python3/dist-packages/setuptools/__init__.py:94: _DeprecatedInstaller: setuptools.installer and fetch_build_eggs are deprecated. !! ******************************************************************************** Requirements should be satisfied by a PEP 517 installer. If you are using pip, you can try `pip install --use-pep517`. ******************************************************************************** !! dist.fetch_build_eggs(dist.setup_requires) /usr/lib/python3/dist-packages/setuptools/command/develop.py:41: EasyInstallDeprecationWarning: easy_install command is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` and ``easy_install``. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://github.com/pypa/setuptools/issues/917 for details. ******************************************************************************** !! easy_install.initialize_options(self) /usr/lib/python3/dist-packages/setuptools/_distutils/cmd.py:90: SetuptoolsDeprecationWarning: setup.py install is deprecated. !! ******************************************************************************** Please avoid running ``setup.py`` directly. Instead, use pypa/build, pypa/installer or other standards-based tools. See https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html for details. ******************************************************************************** !! self.initialize_options() /usr/lib/python3/dist-packages/pbr/core.py:140: UserWarning: Unknown distribution option: 'tests_require' warnings.warn(msg) /usr/lib/python3/dist-packages/setuptools/dist.py:806: SetuptoolsDeprecationWarning: The namespace_packages parameter is deprecated. !! ******************************************************************************** Please replace its usage with implicit namespaces (PEP 420). See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages for details. ******************************************************************************** !! ep.load()(self, ep.name, value) /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 config debian/rules override_dh_auto_build make[1]: Entering directory '/<<PKGBUILDDIR>>' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions echo "Nothing here..." Nothing here... make[1]: Leaving directory '/<<PKGBUILDDIR>>' debian/rules override_dh_auto_test make[1]: Entering directory '/<<PKGBUILDDIR>>' make[1]: pyversions: No such file or directory py3versions: no X-Python3-Version in control file, using supported versions set -e ; for pyvers in 3.13; do \ PYTHONPATH=. PYTHON=python$pyvers python$pyvers -m pytest tests ; \ done ============================= test session starts ============================== platform linux -- Python 3.13.7, pytest-8.4.1, pluggy-1.6.0 rootdir: /<<PKGBUILDDIR>> plugins: typeguard-4.4.4 collected 5 items tests/test_ext.py FFF.. [100%] =================================== FAILURES =================================== _________________________________ test_basics __________________________________ app = <SphinxTestApp buildername='html'> status = <_io.StringIO object at 0x7f1d7c423ac0> warning = <_io.StringIO object at 0x7f1d7c423d00> @pytest.mark.sphinx('html', testroot='basics') def test_basics(app, status, warning): logging.setup(app, status, warning) app.builder.build_all() assert (app.srcdir / 'api').is_dir() assert (app.srcdir / 'api' / 'modules.rst').exists() assert (app.srcdir / 'api' / 'apidoc_dummy_module.rst').exists() assert not (app.srcdir / 'api' / 'conf.rst').exists() assert (app.outdir / 'api').is_dir() assert (app.outdir / 'api' / 'modules.html').exists() assert (app.outdir / 'api' / 'apidoc_dummy_module.html').exists() assert not (app.outdir / 'api' / 'conf.html').exists() > assert not warning.getvalue() E assert not "\x1b[91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset\x1b[39;49;00m\n" E + where "\x1b[91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset\x1b[39;49;00m\n" = <built-in method getvalue of _io.StringIO object at 0x7f1d7c423d00>() E + where <built-in method getvalue of _io.StringIO object at 0x7f1d7c423d00> = <_io.StringIO object at 0x7f1d7c423d00>.getvalue tests/test_ext.py:32: AssertionError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/apidoc-xt3q0hjx/basics # outdir: /tmp/apidoc-xt3q0hjx/basics/_build/html # status: [01mRunning Sphinx v8.2.3[39;49;00m [01mloading translations [en]... [39;49;00mdone Creating file /tmp/apidoc-xt3q0hjx/basics/api/apidoc_dummy_module.rst. Creating file /tmp/apidoc-xt3q0hjx/basics/api/modules.rst. [01mbuilding [mo]: [39;49;00mall of 0 po files [01mwriting output... [39;49;00m [01mbuilding [html]: [39;49;00mall source files [01mupdating environment: [39;49;00m[new config] 3 added, 0 changed, 0 removed [01mreading sources... [39;49;00m[ 33%] [35mapi/apidoc_dummy_module[39;49;00m [01mreading sources... [39;49;00m[ 67%] [35mapi/modules[39;49;00m [01mreading sources... [39;49;00m[100%] [35mindex[39;49;00m [01mlooking for now-outdated files... [39;49;00mnone found [01mpickling environment... [39;49;00mdone [01mchecking consistency... [39;49;00mdone [01mpreparing documents... [39;49;00mdone [01mcopying assets... [39;49;00m [01mcopying static files... [39;49;00m Writing evaluated template result to /tmp/apidoc-xt3q0hjx/basics/_build/html/_static/language_data.js Writing evaluated template result to /tmp/apidoc-xt3q0hjx/basics/_build/html/_static/basic.css Writing evaluated template result to /tmp/apidoc-xt3q0hjx/basics/_build/html/_static/documentation_options.js [01mcopying static files: [39;49;00mdone [01mcopying extra files... [39;49;00m [01mcopying extra files: [39;49;00mdone [01mcopying assets: [39;49;00mdone [01mwriting output... [39;49;00m[ 33%] [32mapi/apidoc_dummy_module[39;49;00m [01mwriting output... [39;49;00m[ 67%] [32mapi/modules[39;49;00m [01mwriting output... [39;49;00m[100%] [32mindex[39;49;00m [01mgenerating indices... [39;49;00mgenindex py-modindex done [01mwriting additional pages... [39;49;00msearch done [01mdumping search index in English (code: en)... [39;49;00mdone [01mdumping object inventory... [39;49;00mdone # warning: [91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset[39;49;00m ________________________________ test_advanced _________________________________ app = <SphinxTestApp buildername='html'> status = <_io.StringIO object at 0x7f1d7b15a8c0> warning = <_io.StringIO object at 0x7f1d7b15ba00> @pytest.mark.sphinx('html', testroot='advanced') def test_advanced(app, status, warning): if sphinx.version_info < (1, 8, 0): pytest.xfail('This should fail on older Sphinx versions') logging.setup(app, status, warning) app.builder.build_all() assert (app.srcdir / 'api').is_dir() assert (app.srcdir / 'api' / 'custom.rst').exists() for module in [ 'apidoc_dummy_module.rst', 'apidoc_dummy_package.apidoc_dummy_submodule_a.rst', 'apidoc_dummy_package.apidoc_dummy_submodule_b.rst', 'apidoc_dummy_package._apidoc_private_dummy_submodule.rst', ]: assert (app.srcdir / 'api' / module).exists() assert (app.srcdir / 'api' / 'apidoc_dummy_package.rst').exists() assert not (app.srcdir / 'api' / 'conf.rst').exists() with open(app.srcdir / 'api' / 'apidoc_dummy_package.rst') as fh: package_doc = [x.strip() for x in fh.readlines()] # The 'Module contents' header isn't present if '--module-first' used assert 'Module contents' not in package_doc assert (app.outdir / 'api').is_dir() assert (app.outdir / 'api' / 'custom.html').exists() for module in [ 'apidoc_dummy_module.html', 'apidoc_dummy_package.apidoc_dummy_submodule_a.html', 'apidoc_dummy_package.apidoc_dummy_submodule_b.html', 'apidoc_dummy_package._apidoc_private_dummy_submodule.html', ]: assert (app.outdir / 'api' / module).exists() assert (app.outdir / 'api' / 'apidoc_dummy_package.html').exists() assert not (app.outdir / 'api' / 'conf.html').exists() > assert not warning.getvalue() E assert not "\x1b[91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset\x1b[39;49;00m\n" E + where "\x1b[91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset\x1b[39;49;00m\n" = <built-in method getvalue of _io.StringIO object at 0x7f1d7b15ba00>() E + where <built-in method getvalue of _io.StringIO object at 0x7f1d7b15ba00> = <_io.StringIO object at 0x7f1d7b15ba00>.getvalue tests/test_ext.py:73: AssertionError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/apidoc-xt3q0hjx/advanced # outdir: /tmp/apidoc-xt3q0hjx/advanced/_build/html # status: [01mRunning Sphinx v8.2.3[39;49;00m [01mloading translations [en]... [39;49;00mdone Creating file /tmp/apidoc-xt3q0hjx/advanced/api/apidoc_dummy_module.rst. Creating file /tmp/apidoc-xt3q0hjx/advanced/api/apidoc_dummy_package.rst. Creating file /tmp/apidoc-xt3q0hjx/advanced/api/apidoc_dummy_package._apidoc_private_dummy_submodule.rst. Creating file /tmp/apidoc-xt3q0hjx/advanced/api/apidoc_dummy_package.apidoc_dummy_submodule_a.rst. Creating file /tmp/apidoc-xt3q0hjx/advanced/api/apidoc_dummy_package.apidoc_dummy_submodule_b.rst. Creating file /tmp/apidoc-xt3q0hjx/advanced/api/custom.rst. [01mbuilding [mo]: [39;49;00mall of 0 po files [01mwriting output... [39;49;00m [01mbuilding [html]: [39;49;00mall source files [01mupdating environment: [39;49;00m[new config] 7 added, 0 changed, 0 removed [01mreading sources... [39;49;00m[ 14%] [35mapi/apidoc_dummy_module[39;49;00m [01mreading sources... [39;49;00m[ 29%] [35mapi/apidoc_dummy_package[39;49;00m [01mreading sources... [39;49;00m[ 43%] [35mapi/apidoc_dummy_package._apidoc_private_dummy_submodule[39;49;00m [01mreading sources... [39;49;00m[ 57%] [35mapi/apidoc_dummy_package.apidoc_dummy_submodule_a[39;49;00m [01mreading sources... [39;49;00m[ 71%] [35mapi/apidoc_dummy_package.apidoc_dummy_submodule_b[39;49;00m [01mreading sources... [39;49;00m[ 86%] [35mapi/custom[39;49;00m [01mreading sources... [39;49;00m[100%] [35mindex[39;49;00m [01mlooking for now-outdated files... [39;49;00mnone found [01mpickling environment... [39;49;00mdone [01mchecking consistency... [39;49;00mdone [01mpreparing documents... [39;49;00mdone [01mcopying assets... [39;49;00m [01mcopying static files... [39;49;00m Writing evaluated template result to /tmp/apidoc-xt3q0hjx/advanced/_build/html/_static/language_data.js Writing evaluated template result to /tmp/apidoc-xt3q0hjx/advanced/_build/html/_static/basic.css Writing evaluated template result to /tmp/apidoc-xt3q0hjx/advanced/_build/html/_static/documentation_options.js [01mcopying static files: [39;49;00mdone [01mcopying extra files... [39;49;00m [01mcopying extra files: [39;49;00mdone [01mcopying assets: [39;49;00mdone [01mwriting output... [39;49;00m[ 14%] [32mapi/apidoc_dummy_module[39;49;00m [01mwriting output... [39;49;00m[ 29%] [32mapi/apidoc_dummy_package[39;49;00m [01mwriting output... [39;49;00m[ 43%] [32mapi/apidoc_dummy_package._apidoc_private_dummy_submodule[39;49;00m [01mwriting output... [39;49;00m[ 57%] [32mapi/apidoc_dummy_package.apidoc_dummy_submodule_a[39;49;00m [01mwriting output... [39;49;00m[ 71%] [32mapi/apidoc_dummy_package.apidoc_dummy_submodule_b[39;49;00m [01mwriting output... [39;49;00m[ 86%] [32mapi/custom[39;49;00m [01mwriting output... [39;49;00m[100%] [32mindex[39;49;00m [01mgenerating indices... [39;49;00mgenindex py-modindex done [01mwriting additional pages... [39;49;00msearch done [01mdumping search index in English (code: en)... [39;49;00mdone [01mdumping object inventory... [39;49;00mdone # warning: [91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset[39;49;00m ____________________________ test_advanced_negative ____________________________ app = <SphinxTestApp buildername='html'> status = <_io.StringIO object at 0x7f1d7b7d2e00> warning = <_io.StringIO object at 0x7f1d7b15b4c0> @pytest.mark.sphinx('html', testroot='advanced-negative') def test_advanced_negative(app, status, warning): """The "test_advanced" test but with boolean options toggled.""" logging.setup(app, status, warning) app.builder.build_all() assert (app.srcdir / 'api').is_dir() for module in [ 'apidoc_dummy_module.rst', ]: assert (app.srcdir / 'api' / module).exists() assert (app.srcdir / 'api' / 'apidoc_dummy_package.rst').exists() assert not (app.srcdir / 'api' / 'custom.rst').exists() assert not (app.srcdir / 'api' / 'conf.rst').exists() with open(app.srcdir / 'api' / 'apidoc_dummy_package.rst') as fh: package_doc = [x.strip() for x in fh.readlines()] # The 'Module contents' header is present if '--module-first' isn't used assert 'Module contents' in package_doc assert (app.outdir / 'api').is_dir() for module in [ 'apidoc_dummy_module.html', ]: assert (app.outdir / 'api' / module).exists() assert (app.outdir / 'api' / 'apidoc_dummy_package.html').exists() assert not (app.outdir / 'api' / 'custom.html').exists() assert not (app.outdir / 'api' / 'conf.html').exists() > assert not warning.getvalue() E assert not "\x1b[91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset\x1b[39;49;00m\n" E + where "\x1b[91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset\x1b[39;49;00m\n" = <built-in method getvalue of _io.StringIO object at 0x7f1d7b15b4c0>() E + where <built-in method getvalue of _io.StringIO object at 0x7f1d7b15b4c0> = <_io.StringIO object at 0x7f1d7b15b4c0>.getvalue tests/test_ext.py:106: AssertionError --------------------------- Captured stdout teardown --------------------------- # testroot: root # builder: html # srcdir: /tmp/apidoc-xt3q0hjx/advanced-negative # outdir: /tmp/apidoc-xt3q0hjx/advanced-negative/_build/html # status: [01mRunning Sphinx v8.2.3[39;49;00m [01mloading translations [en]... [39;49;00mdone Creating file /tmp/apidoc-xt3q0hjx/advanced-negative/api/apidoc_dummy_module.rst. Creating file /tmp/apidoc-xt3q0hjx/advanced-negative/api/apidoc_dummy_package.rst. [01mbuilding [mo]: [39;49;00mall of 0 po files [01mwriting output... [39;49;00m [01mbuilding [html]: [39;49;00mall source files [01mupdating environment: [39;49;00m[new config] 3 added, 0 changed, 0 removed [01mreading sources... [39;49;00m[ 33%] [35mapi/apidoc_dummy_module[39;49;00m [01mreading sources... [39;49;00m[ 67%] [35mapi/apidoc_dummy_package[39;49;00m [01mreading sources... [39;49;00m[100%] [35mindex[39;49;00m [01mlooking for now-outdated files... [39;49;00mnone found [01mpickling environment... [39;49;00mdone [01mchecking consistency... [39;49;00mdone [01mpreparing documents... [39;49;00mdone [01mcopying assets... [39;49;00m [01mcopying static files... [39;49;00m Writing evaluated template result to /tmp/apidoc-xt3q0hjx/advanced-negative/_build/html/_static/language_data.js Writing evaluated template result to /tmp/apidoc-xt3q0hjx/advanced-negative/_build/html/_static/basic.css Writing evaluated template result to /tmp/apidoc-xt3q0hjx/advanced-negative/_build/html/_static/documentation_options.js [01mcopying static files: [39;49;00mdone [01mcopying extra files... [39;49;00m [01mcopying extra files: [39;49;00mdone [01mcopying assets: [39;49;00mdone [01mwriting output... [39;49;00m[ 33%] [32mapi/apidoc_dummy_module[39;49;00m [01mwriting output... [39;49;00m[ 67%] [32mapi/apidoc_dummy_package[39;49;00m [01mwriting output... [39;49;00m[100%] [32mindex[39;49;00m [01mgenerating indices... [39;49;00mgenindex py-modindex done [01mwriting additional pages... [39;49;00msearch done [01mdumping search index in English (code: en)... [39;49;00mdone [01mdumping object inventory... [39;49;00mdone # warning: [91mWARNING: while setting up extension sphinxcontrib.apidoc: Failed to convert [[<class 'str'>]] to a frozenset[39;49;00m =============================== warnings summary =============================== tests/test_ext.py::test_basics /<<PKGBUILDDIR>>/sphinxcontrib/__init__.py:12: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html __import__('pkg_resources').declare_namespace(__name__) tests/test_ext.py::test_basics /<<PKGBUILDDIR>>/sphinxcontrib/__init__.py:12: DeprecationWarning: Deprecated call to `pkg_resources.declare_namespace('sphinxcontrib')`. Implementing implicit namespace packages (as specified in PEP 420) is preferred to `pkg_resources.declare_namespace`. See https://setuptools.pypa.io/en/latest/references/keywords.html#keyword-namespace-packages __import__('pkg_resources').declare_namespace(__name__) -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html =========================== short test summary info ============================ FAILED tests/test_ext.py::test_basics - assert not "\x1b[91mWARNING: while se... FAILED tests/test_ext.py::test_advanced - assert not "\x1b[91mWARNING: while ... FAILED tests/test_ext.py::test_advanced_negative - assert not "\x1b[91mWARNIN... =================== 3 failed, 2 passed, 2 warnings in 0.72s ==================== make[1]: *** [debian/rules:22: override_dh_auto_test] Error 1 make[1]: Leaving directory '/<<PKGBUILDDIR>>' make: *** [debian/rules:7: binary] Error 2 dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

