git: a3437369c8c2 - main - textproc/py-sphinx: Update to 9.0.4

From: Max Brazhnikov <makc_at_FreeBSD.org>
Date: Fri, 26 Jun 2026 17:25:42 UTC
The branch main has been updated by makc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=a3437369c8c261f7be6d543b0587a70b537b16da

commit a3437369c8c261f7be6d543b0587a70b537b16da
Author:     Max Brazhnikov <makc@FreeBSD.org>
AuthorDate: 2026-06-26 17:23:06 +0000
Commit:     Max Brazhnikov <makc@FreeBSD.org>
CommitDate: 2026-06-26 17:23:06 +0000

    textproc/py-sphinx: Update to 9.0.4
    
    Sphinx 9.0.4 is the last release with Python 3.11 support.
    
    Many thanks to Alastair Hogge for the initial patch, to Hiroo Ono for
    fixing numerous fallouts, and to Harley (SponiX on IRC) for providing
    the access to his building box.
    
    PR:             284845
    Exp-run by:     antoine
    Co-authored-by: Alastair Hogge <agh@riseup.net>
    Co-authored-by: Hiroo Ono <hiroo.ono+freebsd@gmail.com>
---
 textproc/py-sphinx/Makefile                   | 67 +++++++++++----------------
 textproc/py-sphinx/distinfo                   |  6 +--
 textproc/py-sphinx/files/patch-pyproject.toml | 11 -----
 3 files changed, 31 insertions(+), 53 deletions(-)

diff --git a/textproc/py-sphinx/Makefile b/textproc/py-sphinx/Makefile
index 9bbecbbd65bc..584ed26a66d5 100644
--- a/textproc/py-sphinx/Makefile
+++ b/textproc/py-sphinx/Makefile
@@ -1,11 +1,9 @@
 PORTNAME=	sphinx
-PORTVERSION=	5.3.0
-PORTREVISION=	3
+PORTVERSION=	9.0.4
 PORTEPOCH=	1
 CATEGORIES=	textproc python
 MASTER_SITES=	PYPI
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
-DISTNAME=	Sphinx-${PORTVERSION}
 DIST_SUBDIR=	python
 
 # NOTE: before committing to this port, contact portmgr to arrange for an
@@ -16,46 +14,37 @@ COMMENT=	Python documentation generator
 WWW=		https://www.sphinx-doc.org/
 
 LICENSE=	BSD2CLAUSE
-LICENSE_FILE=	${WRKSRC}/LICENSE
+LICENSE_FILE=	${WRKSRC}/LICENSE.rst
 
 BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}flit-core>=3.7:devel/py-flit-core@${PY_FLAVOR}
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinxcontrib-applehelp>=0:textproc/py-sphinxcontrib-applehelp@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-devhelp>=0:textproc/py-sphinxcontrib-devhelp@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-jsmath>=0:textproc/py-sphinxcontrib-jsmath@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-htmlhelp>=2.0.0:textproc/py-sphinxcontrib-htmlhelp@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-serializinghtml>=1.1.5:textproc/py-sphinxcontrib-serializinghtml@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-qthelp>=0:textproc/py-sphinxcontrib-qthelp@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0:devel/py-Jinja2@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pygments>=2.12:textproc/py-pygments@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}docutils>=0.14,1<0.22,1:textproc/py-docutils@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}snowballstemmer>=2.0:textproc/py-snowballstemmer@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}Babel>=2.9:devel/py-babel@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}alabaster>=0.7<0.8:textproc/py-alabaster@${PY_FLAVOR} \
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}sphinxcontrib-applehelp>=1.0.7:textproc/py-sphinxcontrib-applehelp@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-devhelp>=1.0.6:textproc/py-sphinxcontrib-devhelp@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-jsmath>=1.0.1:textproc/py-sphinxcontrib-jsmath@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-htmlhelp>=2.0.6:textproc/py-sphinxcontrib-htmlhelp@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-serializinghtml>=1.1.9:textproc/py-sphinxcontrib-serializinghtml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}sphinxcontrib-qthelp>=1.0.6:textproc/py-sphinxcontrib-qthelp@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Jinja2>=3.1:devel/py-Jinja2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pygments>=2.17:textproc/py-pygments@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}docutils>=0.21,1<0.23,1:textproc/py-docutils@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}snowballstemmer>=2.2:textproc/py-snowballstemmer@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Babel>=2.13:devel/py-babel@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}alabaster>=0.7.14<0.8:textproc/py-alabaster@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}imagesize>=1.3:graphics/py-imagesize@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}requests>=2.5.0:www/py-requests@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}packaging>=21.0:devel/py-packaging@${PY_FLAVOR} \
-		${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss
-TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}html5lib>=0:www/py-html5lib@${PY_FLAVOR}
+		${PYTHON_PKGNAMEPREFIX}requests>=2.30.0:www/py-requests@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}roman-numerals>=1.0.0:textproc/py-roman-numerals@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}packaging>=23.0:devel/py-packaging@${PY_FLAVOR} \
+		${LOCALBASE}/share/certs/ca-root-nss.crt:security/ca_root_nss \
+		${PYTHON_PKGNAMEPREFIX}typing-extensions>0:devel/py-typing-extensions@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}defusedxml>=0:devel/py-defusedxml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-xdist>=3.4:devel/py-pytest-xdist@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools>=70.0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}typing-extensions>=4.9:devel/py-typing-extensions@${PY_FLAVOR}
 
-USES=		python:3.10+
-USE_PYTHON=	autoplist concurrent cython_test pep517 pytest
+USES=		python:3.11+
+USE_PYTHON=	autoplist concurrent pep517 pytest
 
-NO_ARCH=	yes
-PYTEST_BROKEN_TESTS=	test_anchors_ignored \
-			test_defaults \
-			test_defaults_json \
-			test_ext_imgconverter \
-			test_latex_images
-
-# Upstream archive contains files with UTF-8 names (#246618)
-# https://github.com/sphinx-doc/sphinx/issues/2395
-EXTRACT_CMD=	${SETENV} LC_ALL=en_US.UTF-8 /usr/bin/bsdtar
+PYTEST_BROKEN_TESTS=	test_copy_images
 
-.include <bsd.port.pre.mk>
-
-# imghdr was removed from the standard library in Python 3.13
-.if ${PYTHON_REL} >= 31300
-RUN_DEPENDS+=	${PYTHON_PKGNAMEPREFIX}standard-imghdr>=3.13.0:devel/py-standard-imghdr@${PY_FLAVOR}
-.endif
+NO_ARCH=	yes
 
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/textproc/py-sphinx/distinfo b/textproc/py-sphinx/distinfo
index 113008ba7955..1cd0c4d7c516 100644
--- a/textproc/py-sphinx/distinfo
+++ b/textproc/py-sphinx/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1667762756
-SHA256 (python/Sphinx-5.3.0.tar.gz) = 51026de0a9ff9fc13c05d74913ad66047e104f56a129ff73e174eb5c3ee794b5
-SIZE (python/Sphinx-5.3.0.tar.gz) = 6811365
+TIMESTAMP = 1775943327
+SHA256 (python/sphinx-9.0.4.tar.gz) = 594ef59d042972abbc581d8baa577404abe4e6c3b04ef61bd7fc2acbd51f3fa3
+SIZE (python/sphinx-9.0.4.tar.gz) = 8710502
diff --git a/textproc/py-sphinx/files/patch-pyproject.toml b/textproc/py-sphinx/files/patch-pyproject.toml
deleted file mode 100644
index ede4dd8e0985..000000000000
--- a/textproc/py-sphinx/files/patch-pyproject.toml
+++ /dev/null
@@ -1,11 +0,0 @@
---- pyproject.toml.orig	2022-10-16 09:53:52 UTC
-+++ pyproject.toml
-@@ -65,7 +65,7 @@ dependencies = [
-     "sphinxcontrib-qthelp",
-     "Jinja2>=3.0",
-     "Pygments>=2.12",
--    "docutils>=0.14,<0.20",
-+    "docutils>=0.14,<0.22",
-     "snowballstemmer>=2.0",
-     "babel>=2.9",
-     "alabaster>=0.7,<0.8",