Your message dated Mon, 29 Sep 2025 14:32:51 +0200
with message-id <[email protected]>
and subject line Done
has caused the Debian Bug report #1114334,
regarding python-sphinxcontrib.apidoc: FTBFS: dpkg-buildpackage: error:
debian/rules binary subprocess returned exit status 2
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)
--
1114334: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1114334
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
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
--------------------------------------------------------------------------------
--- End Message ---
--- Begin Message ---
Building 0.6.0 in Unstable showed now issue. Maybe latest upstream
release fixed it?
Cheers,
Thomas Goirand (zigo)
--- End Message ---