Hello,

I have uploaded 2.3.0-1.1 to delayed/10 to address this issue. I simply added the upstream fix for this issue:

https://github.com/mongodb/mongo-c-driver/commit/e5038f25d9088a9efe5befaf44e9316c0e5a927c


diff -Naur old/mongo-c-driver-2.3.0/debian/changelog mongo-c-driver-2.3.0/debian/changelog --- old/mongo-c-driver-2.3.0/debian/changelog   2026-04-22 22:22:27.000000000 +0200 +++ mongo-c-driver-2.3.0/debian/changelog       2026-05-21 11:02:19.875533238 +0200
@@ -1,3 +1,11 @@
+mongo-c-driver (2.3.0-1.1) unstable; urgency=medium
+
+  * Non-maintainer upload.
+  * Add upstream patch 0002_Remove_HTML_redirect_tricks to fix a FTBFS.
+    Closes: #1135502
+
+ -- Patrick Matthäi <[email protected]>  Thu, 21 May 2026 10:58:04 +0200
+
 mongo-c-driver (2.3.0-1) unstable; urgency=medium

   * New upstream release
diff -Naur old/mongo-c-driver-2.3.0/debian/files mongo-c-driver-2.3.0/debian/files --- old/mongo-c-driver-2.3.0/debian/files       1970-01-01 01:00:00.000000000 +0100
+++ mongo-c-driver-2.3.0/debian/files   2026-05-21 11:02:36.607496297 +0200
@@ -0,0 +1 @@
+mongo-c-driver_2.3.0-1.1_source.buildinfo libs optional
diff -Naur old/mongo-c-driver-2.3.0/debian/patches/0002_Remove_HTML_redirect_tricks.diff mongo-c-driver-2.3.0/debian/patches/0002_Remove_HTML_redirect_tricks.diff --- old/mongo-c-driver-2.3.0/debian/patches/0002_Remove_HTML_redirect_tricks.diff      1970-01-01 01:00:00.000000000 +0100 +++ mongo-c-driver-2.3.0/debian/patches/0002_Remove_HTML_redirect_tricks.diff  2026-05-21 10:56:19.936325889 +0200
@@ -0,0 +1,138 @@
+From e5038f25d9088a9efe5befaf44e9316c0e5a927c Mon Sep 17 00:00:00 2001
+From: Colby Pike <[email protected]>
+Date: Thu, 7 May 2026 12:35:07 -0600
+Subject: [PATCH] [CDRIVER-6031] Remove HTML redirect tricks from docs build
+ (#2286)
+
+This fixes our HTML documentation builds with Sphinx 9.0+. After some inspection, it was found that the HTML-based redirects where never published to our official documentation, as the dirhtml builder wasn't being used there. As such, the redirects were never relied on by any users, so they can be removed without issue.
+---
+ build/cmake/SphinxBuild.cmake | 31 ++++++------------------------
+ build/sphinx/mongoc_common.py | 36 -----------------------------------
+ build/sphinx/redirect.t.html  | 12 ------------
+ 3 files changed, 6 insertions(+), 73 deletions(-)
+ delete mode 100644 build/sphinx/redirect.t.html
+
+diff --git a/build/cmake/SphinxBuild.cmake b/build/cmake/SphinxBuild.cmake
+index a25434fd2dd..d35c057410d 100644
+--- a/build/cmake/SphinxBuild.cmake
++++ b/build/cmake/SphinxBuild.cmake
+@@ -25,30 +25,11 @@ function (sphinx_build_html target_name doc_dir)
+
+    file (GLOB_RECURSE doc_rsts RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} CONFIGURE_DEPENDS *.rst)
+
+-   # Select a builder: The Sphinx `dirhtml` builder will result in "prettier" URLs, +-   # as each page is an `index.html` within a directory. This relies on "autoindex"-style +-   # static file URL resolution in the HTTP server, which is extremely common. For +-   # EVG, however, we host build results on a server that does not support this, +-   # so instead use the traditional HTML builder so that the built documentation
+-   # artifact can be easily viewed in a web browser
+-   set(is_evg_docs_build "$ENV{EVG_DOCS_BUILD}")
+-   if(NOT is_evg_docs_build)
+-      set (builder dirhtml)
+-      # We have an extension in place that generates stub page redirects for
+-      # old HTML file URLs that now point to the auto-index URL for the
+-      # corresponding page. As such, every .rst builds two corresponding .html
+-      # files:
+-      list (TRANSFORM doc_rsts
+-            REPLACE "^(.+)\\.rst$" "html/\\1.html;html/\\1/index.html"
+-            OUTPUT_VARIABLE doc_htmls)
+-   else()
+-      set (builder html)
+-      # We use the regular html builder in this case, which generates exactly
+-      # one HTML page for each input rST file
+-      list (TRANSFORM doc_rsts
+-            REPLACE "^(.+)\\.rst$" "html/\\1.html"
+-            OUTPUT_VARIABLE doc_htmls)
+-   endif()
++   # We use the regular html builder in this case, which generates exactly
++   # one HTML page for each input rST file
++   list (TRANSFORM doc_rsts
++         REPLACE "^(.+)\\.rst$" "html/\\1.html"
++         OUTPUT_VARIABLE doc_htmls)
+
+    # Set PYTHONDONTWRITEBYTECODE to prevent .pyc clutter in the source directory
+    add_custom_command (OUTPUT ${doc_htmls}
+@@ -57,7 +38,7 @@ function (sphinx_build_html target_name doc_dir)
+       ${CMAKE_COMMAND} -E env
+          "PYTHONDONTWRITEBYTECODE=1"
+       ${SPHINX_EXECUTABLE}
+-         -qnW -b "${builder}"
++         -qnW -b html
+          -j "${NPROCS}"
+          -c "${CMAKE_CURRENT_SOURCE_DIR}"
+          -d "${doctrees_dir}"
+diff --git a/build/sphinx/mongoc_common.py b/build/sphinx/mongoc_common.py
+index 4247d649083..d7fcabe916b 100644
+--- a/build/sphinx/mongoc_common.py
++++ b/build/sphinx/mongoc_common.py
+@@ -6,13 +6,7 @@
+ from docutils import nodes
+ from docutils.nodes import Node, document
+ from sphinx.application import Sphinx
+-from sphinx.application import logger as sphinx_log
+
+-try:
+-    from sphinx.builders.dirhtml import DirectoryHTMLBuilder
+-except ImportError:
+-    # Try importing from older Sphinx version path.
+-    from sphinx.builders.html import DirectoryHTMLBuilder
+ from docutils.parsers.rst import Directive
+
+ # Do not require newer sphinx. EPEL packages build man pages with Sphinx 1.7.6. Refer: CDRIVER-4767
+@@ -136,38 +130,8 @@ def run(self) -> Sequence[Node]:
+         return [header, blist]
+
+
+-def generate_html_redirs(app: Sphinx, page: str, templatename: str, context: Dict[str, Any], doctree: Any) -> None:
+-    builder = app.builder
+-    if not isinstance(builder, DirectoryHTMLBuilder) or 'writing-redirect' in context:
+-        return
+-    if page == 'index' or page.endswith('.index'):
+-        return
+-    path = app.project.doc2path(page, True)
+-    out_index_html = Path(builder.get_outfilename(page))
+-    slug = out_index_html.parent.name
+-    redirect_file = out_index_html.parent.parent / f'{slug}.html'
+-    # HACK: handle_page() is not properly reentrant. Save and restore state for
+-    # this page while we generate our redirects page:
+-    prev_scripts = builder.script_files[:]
+-    prev_css = builder.css_files[:]
+-    builder.handle_page(
+-        f'redirect-for-{page}',
+-        {'target': page, 'writing-redirect': 1},
+-        str(Path(__file__).parent.resolve() / 'redirect.t.html'),
+-        # Note: In Sphinx 8.2, this argument changed from `str` to `Path`, but +-        # continues to work with `str`. A future version might need this changed
+-        # to pass a `Path`, but we can keep `str` for now.
+-        outfilename=str(redirect_file),  # type: ignore
+-    )
+-    # Restore prior state:
+-    builder.script_files[:] = prev_scripts
+-    builder.css_files[:] = prev_css
+-    sphinx_log.debug('Wrote redirect: %r -> %r', path, page)
+-
+-
+ def mongoc_common_setup(app: Sphinx):
+     _collect_man(app)
+-    app.connect('html-page-context', generate_html_redirs)
+     app.connect('html-page-context', add_ga_javascript)
+     # Run sphinx-build -D analytics=1 to enable Google Analytics.
+     app.add_config_value('analytics', False, 'html')
+diff --git a/build/sphinx/redirect.t.html b/build/sphinx/redirect.t.html
+deleted file mode 100644
+index bbc16085932..00000000000
+--- a/build/sphinx/redirect.t.html
++++ /dev/null
+@@ -1,12 +0,0 @@
+-{%- extends "!page.html" %}
+-
+-{% block extrahead -%}
+-<meta http-equiv="refresh" content="3; url={{ pathto(target, 1) | e }}">
+-{%- endblock %}
+-
+-{% block content %}
+-<p>
+-    This page has been migrated to <pre>{{ pathto(target) | e }}</pre>. You should be
+-    redirected to this location automatically in a few seconds.
+-</p>
+-{% endblock %}
diff -Naur old/mongo-c-driver-2.3.0/debian/patches/series mongo-c-driver-2.3.0/debian/patches/series --- old/mongo-c-driver-2.3.0/debian/patches/series      2026-04-22 22:22:27.000000000 +0200 +++ mongo-c-driver-2.3.0/debian/patches/series  2026-05-21 10:57:41.808145936 +0200
@@ -1 +1,2 @@
 0001_local_mathjax.diff
+0002_Remove_HTML_redirect_tricks.diff

Reply via email to