• Bug#1100270: python-markdown: FTBFS: ModuleNotFoundError: No module nam

    From Santiago Vila@21:1/5 to All on Wed Mar 12 17:40:09 2025
    Package: src:python-markdown
    Version: 3.7-2
    Severity: serious
    Tags: ftbfs trixie sid

    Dear maintainer:

    During a rebuild of all packages in unstable, your package failed to build:

    --------------------------------------------------------------------------------
    [...]
    debian/rules clean
    dh clean --buildsystem=pybuild
    dh_auto_clean -O--buildsystem=pybuild
    dh_autoreconf_clean -O--buildsystem=pybuild
    dh_clean -O--buildsystem=pybuild
    debian/rules binary
    dh binary --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
    debian/rules override_dh_auto_build
    make[1]: Entering directory '/<<PKGBUILDDIR>>'
    dh_auto_build
    I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" module
    I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation --wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_markdown
    * Building wheel...
    running bdist_wheel
    running build
    running build_py
    creating build/lib/markdown
    copying markdown/postprocessors.py -> build/lib/markdown
    copying markdown/serializers.py -> build/lib/markdown
    copying markdown/__meta__.py -> build/lib/markdown
    copying markdown/test_tools.py -> build/lib/markdown
    copying markdown/core.py -> build/lib/markdown
    copying markdown/inlinepatterns.py -> build/lib/markdown
    copying markdown/__init__.py -> build/lib/markdown
    copying markdown/preprocessors.py -> build/lib/markdown
    copying markdown/blockparser.py -> build/lib/markdown
    copying markdown/htmlparser.py -> build/lib/markdown
    copying markdown/__main__.py -> build/lib/markdown
    copying markdown/blockprocessors.py -> build/lib/markdown
    copying markdown/util.py -> build/lib/markdown
    copying markdown/treeprocessors.py -> build/lib/markdown
    creating build/lib/markdown/extensions
    copying markdown/extensions/fenced_code.py -> build/lib/markdown/extensions copying markdown/extensions/wikilinks.py -> build/lib/markdown/extensions copying markdown/extensions/attr_list.py -> build/lib/markdown/extensions copying markdown/extensions/sane_lists.py -> build/lib/markdown/extensions copying markdown/extensions/codehilite.py -> build/lib/markdown/extensions copying markdown/extensions/meta.py -> build/lib/markdown/extensions
    copying markdown/extensions/nl2br.py -> build/lib/markdown/extensions
    copying markdown/extensions/extra.py -> build/lib/markdown/extensions
    copying markdown/extensions/toc.py -> build/lib/markdown/extensions
    copying markdown/extensions/footnotes.py -> build/lib/markdown/extensions copying markdown/extensions/legacy_attrs.py -> build/lib/markdown/extensions copying markdown/extensions/smarty.py -> build/lib/markdown/extensions
    copying markdown/extensions/__init__.py -> build/lib/markdown/extensions copying markdown/extensions/def_list.py -> build/lib/markdown/extensions copying markdown/extensions/md_in_html.py -> build/lib/markdown/extensions copying markdown/extensions/legacy_em.py -> build/lib/markdown/extensions copying markdown/extensions/tables.py -> build/lib/markdown/extensions
    copying markdown/extensions/admonition.py -> build/lib/markdown/extensions copying markdown/extensions/abbr.py -> build/lib/markdown/extensions
    running egg_info
    creating Markdown.egg-info
    writing Markdown.egg-info/PKG-INFO
    writing dependency_links to Markdown.egg-info/dependency_links.txt
    writing entry points to Markdown.egg-info/entry_points.txt
    writing requirements to Markdown.egg-info/requires.txt
    writing top-level names to Markdown.egg-info/top_level.txt
    writing manifest file 'Markdown.egg-info/SOURCES.txt'
    reading manifest file 'Markdown.egg-info/SOURCES.txt'
    reading manifest template 'MANIFEST.in'
    warning: no files found matching 'MANIFEST'
    warning: no files found matching '*-requirements.txt'
    adding license file 'LICENSE.md'
    writing manifest file 'Markdown.egg-info/SOURCES.txt'
    installing to build/bdist.linux-x86_64/wheel
    running install
    running install_lib
    creating build/bdist.linux-x86_64/wheel
    creating build/bdist.linux-x86_64/wheel/markdown
    copying build/lib/markdown/postprocessors.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/serializers.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/__meta__.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/test_tools.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/core.py -> build/bdist.linux-x86_64/wheel/./markdown copying build/lib/markdown/inlinepatterns.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/__init__.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/preprocessors.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/blockparser.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/htmlparser.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/__main__.py -> build/bdist.linux-x86_64/wheel/./markdown
    copying build/lib/markdown/blockprocessors.py -> build/bdist.linux-x86_64/wheel/./markdown
    creating build/bdist.linux-x86_64/wheel/markdown/extensions
    copying build/lib/markdown/extensions/fenced_code.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/wikilinks.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/attr_list.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/sane_lists.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/codehilite.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/meta.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/nl2br.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/extra.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/toc.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/footnotes.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/legacy_attrs.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/smarty.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/__init__.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/def_list.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/md_in_html.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/legacy_em.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/tables.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/admonition.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/extensions/abbr.py -> build/bdist.linux-x86_64/wheel/./markdown/extensions
    copying build/lib/markdown/util.py -> build/bdist.linux-x86_64/wheel/./markdown copying build/lib/markdown/treeprocessors.py -> build/bdist.linux-x86_64/wheel/./markdown
    running install_egg_info
    Copying Markdown.egg-info to build/bdist.linux-x86_64/wheel/./Markdown-3.7.egg-info
    running install_scripts
    creating build/bdist.linux-x86_64/wheel/Markdown-3.7.dist-info/WHEEL
    creating '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_markdown/.tmp-31h4yro3/Markdown-3.7-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
    adding 'markdown/__init__.py'
    adding 'markdown/__main__.py'
    adding 'markdown/__meta__.py'
    adding 'markdown/blockparser.py'
    adding 'markdown/blockprocessors.py'
    adding 'markdown/core.py'
    adding 'markdown/htmlparser.py'
    adding 'markdown/inlinepatterns.py'
    adding 'markdown/postprocessors.py'
    adding 'markdown/preprocessors.py'
    adding 'markdown/serializers.py'
    adding 'markdown/test_tools.py'
    adding 'markdown/treeprocessors.py'
    adding 'markdown/util.py'
    adding 'markdown/extensions/__init__.py'
    adding 'markdown/extensions/abbr.py'
    adding 'markdown/extensions/admonition.py'
    adding 'markdown/extensions/attr_list.py'
    adding 'markdown/extensions/codehilite.py'
    adding 'markdown/extensions/def_list.py'
    adding 'markdown/extensions/extra.py'
    adding 'markdown/extensions/fenced_code.py'
    adding 'markdown/extensions/footnotes.py'
    adding 'markdown/extensions/legacy_attrs.py'
    adding 'markdown/extensions/legacy_em.py'
    adding 'markdown/extensions/md_in_html.py'
    adding 'markdown/extensions/meta.py'
    adding 'markdown/extensions/nl2br.py'
    adding 'markdown/extensions/sane_lists.py'
    adding 'markdown/extensions/smarty.py'
    adding 'markdown/extensions/tables.py'
    adding 'markdown/extensions/toc.py'
    adding 'markdown/extensions/wikilinks.py'
    adding 'Markdown-3.7.dist-info/LICENSE.md'
    adding 'Markdown-3.7.dist-info/METADATA'
    adding 'Markdown-3.7.dist-info/WHEEL'
    adding 'Markdown-3.7.dist-info/entry_points.txt'
    adding 'Markdown-3.7.dist-info/top_level.txt'
    adding 'Markdown-3.7.dist-info/RECORD'
    removing build/bdist.linux-x86_64/wheel
    Successfully built Markdown-3.7-py3-none-any.whl
    I: pybuild plugin_pyproject:144: Unpacking wheel built for python3.13 with "installer" module
    LC_ALL=C.UTF-8 XDG_CACHE_HOME=/<<PKGBUILDDIR>>/build/cache PYTHONPATH=/<<PKGBUILDDIR>> mkdocs build -d build/docs
    Traceback (most recent call last):
    File "/usr/bin/mkdocs", line 6, in <module>
    cli()
    ~~~^^
    File "/usr/lib/python3/dist-packages/click/core.py", line 1161, in __call__
    return self.main(*args, **kwargs)
    ~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/click/core.py", line 1082, in main
    rv = self.invoke(ctx)
    File "/usr/lib/python3/dist-packages/click/core.py", line 1697, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
    File "/usr/lib/python3/dist-packages/click/core.py", line 1443, in invoke
    return ctx.invoke(self.callback, **ctx.params)
    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/click/core.py", line 788, in invoke
    return __callback(*args, **kwargs)
    File "/usr/lib/python3/dist-packages/mkdocs/__main__.py", line 285, in build_command
    cfg = config.load_config(**kwargs)
    File "/usr/lib/python3/dist-packages/mkdocs/config/base.py", line 374, in load_config
    errors, warnings = cfg.validate()
    ~~~~~~~~~~~~^^
    File "/usr/lib/python3/dist-packages/mkdocs/config/base.py", line 231, in validate
    run_failed, run_warnings = self._validate()
    ~~~~~~~~~~~~~~^^
    File "/usr/lib/python3/dist-packages/mkdocs/config/base.py", line 188, in _validate
    self[key] = config_option.validate(value)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^
    File "/usr/lib/python3/dist-packages/mkdocs/config/config_options.py", line 186, in validate
    return self.run_validation(value)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^
    File "/usr/lib/python3/dist-packages/mkdocs/config/config_options.py", line 1065, in run_validation
    self.load_plugin_with_namespace(name, cfg)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/mkdocs/config/config_options.py", line 1103, in load_plugin_with_namespace
    return (name, self.load_plugin(name, config))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
    File "/usr/lib/python3/dist-packages/mkdocs/config/config_options.py", line 1121, in load_plugin
    plugin_cls = self.installed_plugins[name].load()
    File "/usr/lib/python3.13/importlib/metadata/__init__.py", line 179, in load
    module = import_module(match.group('module'))
    File "/usr/lib/python3.13/importlib/__init__.py", line 88, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
    File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
    File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
    File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
    File "<frozen importlib._bootstrap_external>", line 1026, in exec_module
    File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
    File "/usr/lib/python3/dist-packages/mkdocstrings/plugin.py", line 29, in <module>
    from mkdocstrings.extension import MkdocstringsExtension
    File "/usr/lib/python3/dist-packages/mkdocstrings/extension.py", line 38, in <module>
    from mkdocstrings.handlers.base import BaseHandler, CollectionError, CollectorItem, Handlers
    File "/usr/lib/python3/dist-packages/mkdocstrings/handlers/base.py", line 26, in <module>
    from mkdocs_get_deps.cache import download_and_cache_url ModuleNotFoundError: No module named 'mkdocs_get_deps'
    make[1]: *** [debian/rules:12: override_dh_auto_build] Error 1
    make[1]: Leaving directory '/<<PKGBUILDDIR>>'
    make: *** [debian/rules:8: binary] Error 2
    dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2 --------------------------------------------------------------------------------

    The above is just how the build ends and not necessarily the most relevant part.
    If required, the full build log is available here:

    https://people.debian.org/~sanvila/build-logs/202503/

    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-markdown, so that this is still visible in the BTS web page for this package.

    Thanks.

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