• Bug#1105683: python-urlobject: FTBFS with make --shuffle=reverse: make:

    From Lucas Nussbaum@21:1/5 to All on Tue May 13 21:30:20 2025
    Source: python-urlobject
    Version: 2.4.3-7
    Severity: minor
    Tags: trixie sid ftbfs
    User: lucas@debian.org
    Usertags: ftbfs-shuffle

    Hi,

    GNU Make now has a --shuffle option that simulates non-deterministic ordering of target prerequisites. See https://trofi.github.io/posts/238-new-make-shuffle-mode.html and also previous work in Debian by Santiago Vila: https://people.debian.org/~sanvila/make-shuffle/

    This package fails to build with make --shuffle=reverse.
    This is likely to be caused by a missing dependency in
    debian/rules or an upstream Makefile.

    More information about this mass bug filing is available at https://wiki.debian.org/qa.debian.org/FTBFS/Shuffle

    Relevant part (hopefully):
    make[2]: Entering directory '/build/reproducible-path/python-urlobject-2.4.3/doc'
    Makefile:45: update target 'html' due to: target is .PHONY
    sphinx-build -b html -d .build/doctrees -N . .build/html
    Running Sphinx v8.1.3
    loading translations [en]... done
    making output directory... done
    WARNING: html_static_path entry '.static' does not exist
    Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`.
    building [mo]: targets for 0 po files that are out of date
    writing output...
    building [html]: targets for 3 source files that are out of date
    updating environment: [new config] 3 added, 0 changed, 0 removed
    reading sources... [ 33%] api
    reading sources... [ 67%] index
    reading sources... [100%] quickstart

    WARNING: autodoc: failed to import class 'URLObject' from module 'urlobject'; the following exception was raised:
    No module named 'urlobject' [autodoc.import_object]
    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 /build/reproducible-path/python-urlobject-2.4.3/doc/.build/html/_static/language_data.js
    Writing evaluated template result to /build/reproducible-path/python-urlobject-2.4.3/doc/.build/html/_static/documentation_options.js
    Writing evaluated template result to /build/reproducible-path/python-urlobject-2.4.3/doc/.build/html/_static/basic.css
    Writing evaluated template result to /build/reproducible-path/python-urlobject-2.4.3/doc/.build/html/_static/sidebar.js
    Writing evaluated template result to /build/reproducible-path/python-urlobject-2.4.3/doc/.build/html/_static/classic.css
    copying static files: done
    copying extra files...
    copying extra files: done
    copying assets: done
    writing output... [ 33%] api
    writing output... [ 67%] index
    writing output... [100%] quickstart

    generating indices... genindex done
    highlighting module code...
    writing additional pages... search done
    dumping search index in English (code: en)... done
    dumping object inventory... done
    build succeeded, 2 warnings.

    The HTML pages are in .build/html.
    echo

    echo "Build finished. The HTML pages are in .build/html."
    Build finished. The HTML pages are in .build/html.
    Makefile:42: update target 'clean' due to: target is .PHONY
    rm -rf .build/*
    make[2]: Leaving directory '/build/reproducible-path/python-urlobject-2.4.3/doc'
    make[1]: Leaving directory '/build/reproducible-path/python-urlobject-2.4.3'
    dh_auto_test -O--buildsystem=pybuild
    I: pybuild base:311: cd /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build; python3.13 -m unittest discover -v

    ----------------------------------------------------------------------
    Ran 0 tests in 0.000s

    NO TESTS RAN
    create-stamp debian/debhelper-build-stamp
    dh_testroot -O--buildsystem=pybuild
    dh_prep -O--buildsystem=pybuild
    dh_auto_install --destdir=debian/python3-urlobject/ -O--buildsystem=pybuild
    I: pybuild base:311: /usr/bin/python3 setup.py install --root /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject
    /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 :: Public Domain

    See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
    ********************************************************************************

    !!
    self._finalize_license_expression()
    running install /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()
    running build
    running build_py
    running install_lib
    creating /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages
    creating /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/path.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/query_string.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/netloc.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/compat.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    creating /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/compat.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__
    pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/path.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__
    pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/__init__.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__
    pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/query_string.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/
    urlobject/__pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/ports.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__
    pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/netloc.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__
    pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__pycache__/urlobject.cpython-313.pyc -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/_
    _pycache__
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/urlobject.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/ports.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    copying /build/reproducible-path/python-urlobject-2.4.3/.pybuild/cpython3_3.13/build/urlobject/__init__.py -> /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/path.py to path.cpython-313.pyc
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/query_string.py to query_string.cpython-313.pyc
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/netloc.py to netloc.cpython-313.pyc
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/compat.py to compat.cpython-313.pyc
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/urlobject.py to urlobject.cpython-313.pyc
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/ports.py to ports.cpython-313.pyc
    byte-compiling /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/urlobject/__init__.py to __init__.cpython-313.pyc
    running install_egg_info
    running egg_info
    creating URLObject.egg-info
    writing URLObject.egg-info/PKG-INFO
    writing dependency_links to URLObject.egg-info/dependency_links.txt
    writing top-level names to URLObject.egg-info/top_level.txt
    writing manifest file 'URLObject.egg-info/SOURCES.txt'
    reading manifest file 'URLObject.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    writing manifest file 'URLObject.egg-info/SOURCES.txt'
    Copying URLObject.egg-info to /build/reproducible-path/python-urlobject-2.4.3/debian/python3-urlobject/usr/lib/python3.13/dist-packages/URLObject-2.4.3.egg-info
    Skipping SOURCES.txt
    running install_scripts
    dh_installdocs -O--buildsystem=pybuild
    dh_installdocs: error: Cannot find (any matches for) "doc/.build/html" (tried in ., debian/tmp)

    make: *** [debian/rules:6: binary] Error 25 shuffle=reverse


    The full build log is available from: http://qa-logs.debian.net/2025/05/05/shuffle/reverse/python-urlobject_2.4.3-7_unstable_reverse.log

    If you reassign this bug to another package, please mark it as 'affects'-ing this package. See https://www.debian.org/Bugs/server-control#affects

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)