guix_mirror_bot pushed a commit to branch master
in repository guix.

commit a86a1d13d0e709594605ac7b6be6364d36c316ca
Author: Maxim Cournoyer <[email protected]>
AuthorDate: Tue Jun 30 12:55:34 2026 +0900

    gnu: Add python-sphinxcontrib-httpdomain.
    
    * gnu/packages/sphinx.scm (python-sphinxcontrib-httpdomain): New variable.
    * gnu/packages/patches/python-sphinxcontrib-httpdomain-texinfo.patch: New 
file.
    * gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                                       |  1 +
 .../python-sphinxcontrib-httpdomain-texinfo.patch  | 43 ++++++++++++++++++++++
 gnu/packages/sphinx.scm                            | 34 +++++++++++++++--
 3 files changed, 74 insertions(+), 4 deletions(-)

diff --git a/gnu/local.mk b/gnu/local.mk
index 568f4d7a5c..f5b89d7255 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2182,6 +2182,7 @@ dist_patch_DATA =                                         
\
   %D%/packages/patches/python-sgmllib3k-assertions.patch       \
   %D%/packages/patches/python-sphobjinv-defer-ssl-import.patch \
   %D%/packages/patches/python-sphinx-prompt-docutils-0.19.patch        \
+  %D%/packages/patches/python-sphinxcontrib-httpdomain-texinfo.patch    \
   %D%/packages/patches/python-sshtunnel-pep518.patch   \
   %D%/packages/patches/python-twtxt-replace-pkg-resources.patch        \
   %D%/packages/patches/python-zeroc-ice-3.6.5-python-3.11-support.patch        
\
diff --git a/gnu/packages/patches/python-sphinxcontrib-httpdomain-texinfo.patch 
b/gnu/packages/patches/python-sphinxcontrib-httpdomain-texinfo.patch
new file mode 100644
index 0000000000..d9d40771d5
--- /dev/null
+++ b/gnu/packages/patches/python-sphinxcontrib-httpdomain-texinfo.patch
@@ -0,0 +1,43 @@
+Upstream-status: Partially integrated 
<https://github.com/sphinx-contrib/httpdomain/pull/110>
+
+TODO: Find a better fix than the HTTPIndex removal, and resubmit to upstream
+(probably in Sphinx).
+
+diff --git a/src/sphinxcontrib/httpdomain/__init__.py 
b/src/sphinxcontrib/httpdomain/__init__.py
+index 48bb580..2cf41d7 100644
+--- a/src/sphinxcontrib/httpdomain/__init__.py
++++ b/src/sphinxcontrib/httpdomain/__init__.py
+@@ -207,6 +207,7 @@ HTTP_STATUS_CODES = {
+     304: 'Not Modified',
+     305: 'Use Proxy',
+     307: 'Temporary Redirect',
++    308: 'Permanent Redirect',
+     400: 'Bad Request',
+     401: 'Unauthorized',
+     402: 'Payment Required',     # unused
+@@ -221,7 +222,7 @@ HTTP_STATUS_CODES = {
+     411: 'Length Required',
+     412: 'Precondition Failed',
+     413: 'Request Entity Too Large',
+-    414: 'Request URI Too Long',
++    414: 'URI Too Long',
+     415: 'Unsupported Media Type',
+     416: 'Requested Range Not Satisfiable',
+     417: 'Expectation Failed',
+@@ -229,6 +230,7 @@ HTTP_STATUS_CODES = {
+     422: 'Unprocessable Entity',
+     423: 'Locked',
+     424: 'Failed Dependency',
++    425: 'Too Early',           # RFC 8470
+     426: 'Upgrade Required',
+     429: 'Too Many Requests',
+     449: 'Retry With',           # proprietary MS extension
+@@ -651,7 +653,7 @@ class HTTPDomain(Domain):
+         'any': {}
+     }
+ 
+-    indices = [HTTPIndex]
++    indices = []
+ 
+     @property
+     def routes(self):
diff --git a/gnu/packages/sphinx.scm b/gnu/packages/sphinx.scm
index 69002a379b..40339f35bd 100644
--- a/gnu/packages/sphinx.scm
+++ b/gnu/packages/sphinx.scm
@@ -17,7 +17,7 @@
 ;;; Copyright © 2021 Eric Bavier <[email protected]>
 ;;; Copyright © 2021, 2022, 2024 Vinicius Monego <[email protected]>
 ;;; Copyright © 2021 Hugo Lecomte <[email protected]>
-;;; Copyright © 2021, 2022, 2024, 2025 Maxim Cournoyer <[email protected]>
+;;; Copyright © 2021-2022, 2024-2026 Maxim Cournoyer <[email protected]>
 ;;; Copyright © 2024 Troy Figiel <[email protected]>
 ;;; Copyright © 2021 Maxime Devos <[email protected]>
 ;;; Copyright © 2026 Yan Abu Arab <[email protected]>
@@ -48,25 +48,26 @@
   #:use-module (guix build-system pyproject)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (gnu packages)
-  #:use-module (gnu packages nss)
+  #:use-module (gnu packages build-tools)
   #:use-module (gnu packages check)
   #:use-module (gnu packages documentation)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages graph)
   #:use-module (gnu packages graphviz)
   #:use-module (gnu packages haskell-xyz)
   #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages jupyter)
+  #:use-module (gnu packages nss)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-build)
   #:use-module (gnu packages python-check)
   #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-science)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages time)
-  #:use-module (gnu packages python-science)
-  #:use-module (gnu packages graph)
   #:use-module (gnu packages statistics)
   #:use-module (gnu packages tex)
   #:use-module (gnu packages web)
@@ -605,6 +606,31 @@ users from Sphinx docs.")
 HTML help files.")
     (license license:bsd-2)))
 
+(define-public python-sphinxcontrib-httpdomain
+  (package
+    (name "python-sphinxcontrib-httpdomain")
+    (version "2.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/sphinx-contrib/httpdomain";)
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "056l5h5ykmdh1nlrxsqp548m6fdky6638w9vfc8c1g911xhvjc8c"))
+       (patches
+        (search-patches "python-sphinxcontrib-httpdomain-texinfo.patch"))))
+    (arguments (list #:tests? #f))      ;no real tests
+    (build-system pyproject-build-system)
+    (propagated-inputs (list python-sphinx))
+    (native-inputs (list python-uv-build))
+    (home-page "https://github.com/sphinx-contrib/httpdomain";)
+    (synopsis "Sphinx extension for documenting HTTP APIs")
+    (description "The @code{sphinxcontrib.httpdomain} extension provides a
+Sphinx domain for documenting RESTful HTTP APIs.")
+    (license license:bsd-3)))
+
 (define-public python-sphinxcontrib-jsmath
   (package
     (name "python-sphinxcontrib-jsmath")

Reply via email to