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: 
Running Sphinx v8.2.3
loading translations [en]... done
Creating file /tmp/apidoc-xt3q0hjx/basics/api/apidoc_dummy_module.rst.
Creating file /tmp/apidoc-xt3q0hjx/basics/api/modules.rst.
building [mo]: all of 0 po files
writing output... 
building [html]: all source files
updating environment: [new config] 3 added, 0 changed, 0 removed
reading sources... [ 33%] 
api/apidoc_dummy_module
reading sources... [ 67%] api/modules
reading sources... [100%] index

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 
/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
copying static files: done
copying extra files... 
copying extra files: done
copying assets: done
writing output... [ 33%] api/apidoc_dummy_module
writing output... [ 67%] api/modules
writing output... [100%] index

generating indices... genindex py-modindex done
writing additional pages... search done
dumping search index in English (code: en)... done
dumping object inventory... done

# warning: 
WARNING: while setting up extension sphinxcontrib.apidoc: Failed to 
convert [[<class 'str'>]] to a frozenset

________________________________ 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: 
Running Sphinx v8.2.3
loading translations [en]... done
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.
building [mo]: all of 0 po files
writing output... 
building [html]: all source files
updating environment: [new config] 7 added, 0 changed, 0 removed
reading sources... [ 14%] 
api/apidoc_dummy_module
reading sources... [ 29%] 
api/apidoc_dummy_package
reading sources... [ 43%] 
api/apidoc_dummy_package._apidoc_private_dummy_submodule
reading sources... [ 57%] 
api/apidoc_dummy_package.apidoc_dummy_submodule_a
reading sources... [ 71%] 
api/apidoc_dummy_package.apidoc_dummy_submodule_b
reading sources... [ 86%] api/custom
reading sources... [100%] index

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 
/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
copying static files: done
copying extra files... 
copying extra files: done
copying assets: done
writing output... [ 14%] api/apidoc_dummy_module
writing output... [ 29%] 
api/apidoc_dummy_package
writing output... [ 43%] 
api/apidoc_dummy_package._apidoc_private_dummy_submodule
writing output... [ 57%] 
api/apidoc_dummy_package.apidoc_dummy_submodule_a
writing output... [ 71%] 
api/apidoc_dummy_package.apidoc_dummy_submodule_b
writing output... [ 86%] api/custom
writing output... [100%] index

generating indices... genindex py-modindex done
writing additional pages... search done
dumping search index in English (code: en)... done
dumping object inventory... done

# warning: 
WARNING: while setting up extension sphinxcontrib.apidoc: Failed to 
convert [[<class 'str'>]] to a frozenset

____________________________ 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: 
Running Sphinx v8.2.3
loading translations [en]... done
Creating file 
/tmp/apidoc-xt3q0hjx/advanced-negative/api/apidoc_dummy_module.rst.
Creating file 
/tmp/apidoc-xt3q0hjx/advanced-negative/api/apidoc_dummy_package.rst.
building [mo]: all of 0 po files
writing output... 
building [html]: all source files
updating environment: [new config] 3 added, 0 changed, 0 removed
reading sources... [ 33%] 
api/apidoc_dummy_module
reading sources... [ 67%] 
api/apidoc_dummy_package
reading sources... [100%] index

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 
/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
copying static files: done
copying extra files... 
copying extra files: done
copying assets: done
writing output... [ 33%] api/apidoc_dummy_module
writing output... [ 67%] 
api/apidoc_dummy_package
writing output... [100%] index

generating indices... genindex py-modindex done
writing additional pages... search done
dumping search index in English (code: en)... done
dumping object inventory... done

# warning: 
WARNING: while setting up extension sphinxcontrib.apidoc: Failed to 
convert [[<class 'str'>]] to a frozenset

=============================== 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 ---

Reply via email to