diff --git a/.cvsignore b/.cvsignore deleted file mode 100644 index 1bf367a..0000000 --- a/.cvsignore +++ /dev/null @@ -1 +0,0 @@ -Sphinx-0.5.1.tar.gz diff --git a/.fmf/version b/.fmf/version new file mode 100644 index 0000000..d00491f --- /dev/null +++ b/.fmf/version @@ -0,0 +1 @@ +1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8c5d9ff --- /dev/null +++ b/.gitignore @@ -0,0 +1,52 @@ +/Sphinx-1.2.3.tar.gz +/Sphinx-1.3.1.tar.gz +/Sphinx-1.4.4.tar.gz +/Sphinx-1.4.5.tar.gz +/Sphinx-1.4.6.tar.gz +/Sphinx-1.4.8.tar.gz +/Sphinx-1.4.9.tar.gz +/Sphinx-1.5.1.tar.gz +/Sphinx-1.5.2.tar.gz +/Sphinx-1.6.3.tar.gz +/Sphinx-1.6.4.tar.gz +/Sphinx-1.6.5.tar.gz +/Sphinx-1.6.6.tar.gz +/Sphinx-1.7.1.tar.gz +/Sphinx-1.7.2.tar.gz +/Sphinx-1.7.5.tar.gz +/Sphinx-1.7.6.tar.gz +/Sphinx-1.8.4.tar.gz +/Sphinx-2.0.0b1.tar.gz +/Sphinx-2.0.0b2.tar.gz +/Sphinx-2.0.1.tar.gz +/Sphinx-2.1.2.tar.gz +/Sphinx-2.2.0.tar.gz +/Sphinx-2.2.2.tar.gz +/Sphinx-3.1.1.tar.gz +/Sphinx-3.1.2.tar.gz +/Sphinx-3.2.1.tar.gz +/Sphinx-3.3.1.tar.gz +/Sphinx-3.4.3.tar.gz +/Sphinx-3.5.2.tar.gz +/Sphinx-3.5.3.tar.gz +/Sphinx-3.5.4.tar.gz +/Sphinx-4.0.2.tar.gz +/Sphinx-4.1.2.tar.gz +/Sphinx-4.2.0.tar.gz +/Sphinx-4.3.0.tar.gz +/Sphinx-4.3.1.tar.gz +/Sphinx-4.4.0.tar.gz +/Sphinx-4.5.0.tar.gz +/Sphinx-5.0.2.tar.gz +/Sphinx-5.1.1.tar.gz +/Sphinx-5.2.3.tar.gz +/Sphinx-5.3.0.tar.gz +/Sphinx-6.1.3.tar.gz +/Sphinx-6.2.1.tar.gz +/Sphinx-7.0.1.tar.gz +/sphinx-7.1.2.tar.gz +/sphinx-7.2.6.tar.gz +/sphinx-7.3.7.tar.gz +/sphinx-8.1.3.tar.gz +/sphinx-8.2.3.tar.gz +/sphinx-9.1.0.tar.gz diff --git a/14474.patch b/14474.patch new file mode 100644 index 0000000..b4417aa --- /dev/null +++ b/14474.patch @@ -0,0 +1,166 @@ +From d1fd6eb79e7949aa802d8849aa9ce311be79f2d2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= + <10796600+picnixz@users.noreply.github.com> +Date: Sun, 7 Jun 2026 11:27:41 +0200 +Subject: [PATCH 1/6] Fix `test_search.py` with long-word splitting + +--- + tests/test_search.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_search.py b/tests/test_search.py +index f94ae987bb7..b6b72bcfff7 100644 +--- a/tests/test_search.py ++++ b/tests/test_search.py +@@ -144,7 +144,7 @@ def test_stemmer(app: SphinxTestApp) -> None: + searchindex = load_searchindex(app.outdir / 'searchindex.js') + print(searchindex) + assert is_registered_term(searchindex, 'findthisstemmedkey') +- assert is_registered_term(searchindex, 'intern') ++ assert is_registered_term(searchindex, 'internat') + + + @pytest.mark.sphinx('html', testroot='search') + +From 469773d068aadc85c6a1dda17b9db0334cca8db2 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= + <10796600+picnixz@users.noreply.github.com> +Date: Sun, 7 Jun 2026 11:30:08 +0200 +Subject: [PATCH 2/6] probably more fixes + +--- + tests/roots/test-search/index.rst | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/roots/test-search/index.rst b/tests/roots/test-search/index.rst +index b38fd0271f6..c618633c345 100644 +--- a/tests/roots/test-search/index.rst ++++ b/tests/roots/test-search/index.rst +@@ -19,6 +19,7 @@ International + + .. tip:: + :class: no-search ++ + bat cat + + .. toctree:: + +From 6f824176535f4b873cbdfe7c9e99d5f23262a857 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= + <10796600+picnixz@users.noreply.github.com> +Date: Sun, 7 Jun 2026 11:39:03 +0200 +Subject: [PATCH 3/6] better fix + +--- + tests/test_search.py | 10 +++++++++- + 1 file changed, 9 insertions(+), 1 deletion(-) + +diff --git a/tests/test_search.py b/tests/test_search.py +index b6b72bcfff7..b55788091b2 100644 +--- a/tests/test_search.py ++++ b/tests/test_search.py +@@ -76,6 +76,14 @@ def is_registered_term(index: Any, keyword: str) -> bool: + return index['terms'].get(keyword, []) != [] + + ++def is_registered_prefix(index: Any, prefix: str) -> bool: ++ terms = index["terms"] ++ for key, value in terms.items(): ++ if key.startswith(prefix) and value != []: ++ return True ++ return False ++ ++ + FILE_CONTENTS = """\ + section_title + ============= +@@ -144,7 +152,7 @@ def test_stemmer(app: SphinxTestApp) -> None: + searchindex = load_searchindex(app.outdir / 'searchindex.js') + print(searchindex) + assert is_registered_term(searchindex, 'findthisstemmedkey') +- assert is_registered_term(searchindex, 'internat') ++ assert is_registered_prefix(searchindex, 'intern') + + + @pytest.mark.sphinx('html', testroot='search') + +From c638919f7ea87104c25a77508e15163cfb466b30 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= + <10796600+picnixz@users.noreply.github.com> +Date: Sun, 7 Jun 2026 11:40:31 +0200 +Subject: [PATCH 4/6] fixup + +--- + tests/test_search.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_search.py b/tests/test_search.py +index b55788091b2..57cf310f036 100644 +--- a/tests/test_search.py ++++ b/tests/test_search.py +@@ -77,7 +77,7 @@ def is_registered_term(index: Any, keyword: str) -> bool: + + + def is_registered_prefix(index: Any, prefix: str) -> bool: +- terms = index["terms"] ++ terms = index['terms'] + for key, value in terms.items(): + if key.startswith(prefix) and value != []: + return True + +From 55f34f425547c521eaa982c1f01ee87e7fbdc4e7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= + <10796600+picnixz@users.noreply.github.com> +Date: Sun, 7 Jun 2026 11:41:09 +0200 +Subject: [PATCH 5/6] fixup + +--- + tests/test_search.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/test_search.py b/tests/test_search.py +index 57cf310f036..3643794f8b8 100644 +--- a/tests/test_search.py ++++ b/tests/test_search.py +@@ -78,10 +78,10 @@ def is_registered_term(index: Any, keyword: str) -> bool: + + def is_registered_prefix(index: Any, prefix: str) -> bool: + terms = index['terms'] +- for key, value in terms.items(): +- if key.startswith(prefix) and value != []: +- return True +- return False ++ return any( ++ key.startswith(prefix) and value != [] ++ for key, value in terms.items() ++ ) + + + FILE_CONTENTS = """\ + +From 6510fb585219bc218a32f7d520fa40a540828aad Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= + <10796600+picnixz@users.noreply.github.com> +Date: Sun, 7 Jun 2026 11:41:34 +0200 +Subject: [PATCH 6/6] ruff + +--- + tests/test_search.py | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/tests/test_search.py b/tests/test_search.py +index 3643794f8b8..64ec4670085 100644 +--- a/tests/test_search.py ++++ b/tests/test_search.py +@@ -78,10 +78,7 @@ def is_registered_term(index: Any, keyword: str) -> bool: + + def is_registered_prefix(index: Any, prefix: str) -> bool: + terms = index['terms'] +- return any( +- key.startswith(prefix) and value != [] +- for key, value in terms.items() +- ) ++ return any(k.startswith(prefix) and v != [] for k, v in terms.items()) + + + FILE_CONTENTS = """\ diff --git a/14507.patch b/14507.patch new file mode 100644 index 0000000..3cea526 --- /dev/null +++ b/14507.patch @@ -0,0 +1,29 @@ +From b9386884a3a4d65db1d69b83026339c5d72442d5 Mon Sep 17 00:00:00 2001 +From: Karolina Surma +Date: Mon, 29 Jun 2026 11:00:42 +0200 +Subject: [PATCH] Fix test_gettext_literalblock_additional to use the correct + test root + +test-root doesn't contain the source file for literalblock.pot. The test +passed sequentially because other tests using test root 'intl' left the +file in the same srcdir. With pytest-xdist, the test started correctly failing, +as no leftover file was available during the test run. +Using the test root 'intl', which contains literalblock.txt, fixes the +test. +--- + tests/test_builders/test_build_gettext.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_builders/test_build_gettext.py b/tests/test_builders/test_build_gettext.py +index 30798cc5070..8a1827ba281 100644 +--- a/tests/test_builders/test_build_gettext.py ++++ b/tests/test_builders/test_build_gettext.py +@@ -288,7 +288,7 @@ def test_gettext_prolog_epilog_substitution_excluded(app: SphinxTestApp) -> None + + @pytest.mark.sphinx( + 'gettext', +- testroot='root', ++ testroot='intl', + srcdir='gettext', + confoverrides={ + 'gettext_compact': False, diff --git a/Make-the-first-party-extensions-optional.patch b/Make-the-first-party-extensions-optional.patch new file mode 100644 index 0000000..501e4d8 --- /dev/null +++ b/Make-the-first-party-extensions-optional.patch @@ -0,0 +1,215 @@ +From 7b731f7ceb8161b11a529f182bf567b77993bdeb Mon Sep 17 00:00:00 2001 +From: Karolina Surma +Date: Wed, 5 Mar 2025 12:14:49 +0100 +Subject: [PATCH] Make the first party extensions optional, add [extensions] + extra +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Co-authored-by: Miro Hrončok +--- + pyproject.toml | 35 ++++++++++++++++---- + sphinx/application.py | 6 ++-- + sphinx/registry.py | 10 +++--- + sphinx/testing/fixtures.py | 7 ++++ + tests/test_builders/test_build_html_maths.py | 3 ++ + tests/test_writers/test_api_translator.py | 2 ++ + 6 files changed, 50 insertions(+), 13 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index 1195b04..9a7213f 100644 +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -67,12 +67,6 @@ classifiers = [ + "Typing :: Typed", + ] + dependencies = [ +- "sphinxcontrib-applehelp>=1.0.7", +- "sphinxcontrib-devhelp>=1.0.6", +- "sphinxcontrib-htmlhelp>=2.0.6", +- "sphinxcontrib-jsmath>=1.0.1", +- "sphinxcontrib-qthelp>=1.0.6", +- "sphinxcontrib-serializinghtml>=1.1.9", + "Jinja2>=3.1", + "Pygments>=2.17", + "docutils>=0.21,<0.23", +@@ -87,6 +81,34 @@ dependencies = [ + ] + dynamic = ["version"] + ++[project.optional-dependencies] ++applehelp = [ ++ "sphinxcontrib-applehelp>=1.0.7", ++] ++devhelp = [ ++ "sphinxcontrib-devhelp>=1.0.6", ++] ++jsmath = [ ++ "sphinxcontrib-jsmath>=1.0.1", ++] ++htmlhelp = [ ++ "sphinxcontrib-htmlhelp>=2.0.6", ++] ++serializinghtml = [ ++ "sphinxcontrib-serializinghtml>=1.1.9", ++] ++qthelp = [ ++ "sphinxcontrib-qthelp>=1.0.6", ++] ++extensions = [ ++ "sphinx[applehelp]", ++ "sphinx[devhelp]", ++ "sphinx[jsmath]", ++ "sphinx[htmlhelp]", ++ "sphinx[serializinghtml]", ++ "sphinx[qthelp]", ++] ++ + [[project.authors]] + name = "Adam Turner" + email = "aa-turner@users.noreply.github.com" +@@ -104,6 +126,7 @@ sphinx-autogen = "sphinx.ext.autosummary.generate:main" + [dependency-groups] + docs = [ + "sphinxcontrib-websupport", ++ "sphinx[extensions]", + ] + lint = [ + "ruff==0.14.9", +diff --git a/sphinx/application.py b/sphinx/application.py +index 5349c36..4da1635 100644 +--- a/sphinx/application.py ++++ b/sphinx/application.py +@@ -292,7 +292,7 @@ class Sphinx: + # load all built-in extension modules, first-party extension modules, + # and first-party themes + for extension in builtin_extensions: +- self.setup_extension(extension) ++ self.setup_extension(extension, skip_nonimportable=extension in _first_party_extensions) + + # load all user-given extension modules + for extension in self.config.extensions: +@@ -494,7 +494,7 @@ class Sphinx: + + # ---- general extensibility interface ------------------------------------- + +- def setup_extension(self, extname: str) -> None: ++ def setup_extension(self, extname: str, skip_nonimportable: bool = False) -> None: + """Import and setup a Sphinx extension module. + + Load the extension given by the module *name*. Use this if your +@@ -502,7 +502,7 @@ class Sphinx: + called twice. + """ + logger.debug('[app] setting up extension: %r', extname) +- self.registry.load_extension(self, extname) ++ self.registry.load_extension(self, extname, skip_nonimportable=skip_nonimportable) + + @staticmethod + def require_sphinx(version: tuple[int, int] | str) -> None: +diff --git a/sphinx/registry.py b/sphinx/registry.py +index da72924..b6f6122 100644 +--- a/sphinx/registry.py ++++ b/sphinx/registry.py +@@ -528,7 +528,7 @@ class SphinxComponentRegistry: + def add_html_theme(self, name: str, theme_path: str | os.PathLike[str]) -> None: + self.html_themes[name] = _StrPath(theme_path) + +- def load_extension(self, app: Sphinx, extname: str) -> None: ++ def load_extension(self, app: Sphinx, extname: str, skip_nonimportable: bool = False) -> None: + """Load a Sphinx extension.""" + if extname in app.extensions: # already loaded + return +@@ -549,10 +549,12 @@ class SphinxComponentRegistry: + try: + mod = import_module(extname) + except ImportError as err: ++ msg = __('Could not import extension %s') ++ if skip_nonimportable: ++ logger.debug(msg % extname) ++ return + logger.verbose(__('Original exception:\n') + traceback.format_exc()) +- raise ExtensionError( +- __('Could not import extension %s') % extname, err +- ) from err ++ raise ExtensionError(msg % extname, err) from err + + setup: _ExtensionSetupFunc | None = getattr(mod, 'setup', None) + if setup is None: +diff --git a/sphinx/testing/fixtures.py b/sphinx/testing/fixtures.py +index c6fdebe..e9f98a8 100644 +--- a/sphinx/testing/fixtures.py ++++ b/sphinx/testing/fixtures.py +@@ -31,6 +31,7 @@ DEFAULT_ENABLED_MARKERS = [ + 'builddir=None, docutils_conf=None' + '): arguments to initialize the sphinx test application.' + ), ++ 'sphinxcontrib(...): required sphinxcontrib.* extensions', + 'test_params(shared_result=...): test parameters.', + ] + +@@ -79,6 +80,12 @@ def app_params( + """Parameters that are specified by 'pytest.mark.sphinx' for + sphinx.application.Sphinx initialization + """ ++ ++ # ##### process pytest.mark.sphinxcontrib ++ for info in reversed(list(request.node.iter_markers("sphinxcontrib"))): ++ for arg in info.args: ++ pytest.importorskip("sphinxcontrib." + arg) ++ + # ##### process pytest.mark.sphinx + + pargs: dict[int, Any] = {} +diff --git a/tests/test_builders/test_build_html_maths.py b/tests/test_builders/test_build_html_maths.py +index 8654ca9..8ad006f 100644 +--- a/tests/test_builders/test_build_html_maths.py ++++ b/tests/test_builders/test_build_html_maths.py +@@ -40,6 +40,7 @@ def test_html_math_renderer_is_imgmath(app: SphinxTestApp) -> None: + assert app.builder.math_renderer_name == 'imgmath' + + ++@pytest.mark.sphinxcontrib('serializinghtml', 'jsmath') + @pytest.mark.sphinx( + 'html', + testroot='basic', +@@ -67,6 +68,7 @@ def test_html_math_renderer_is_duplicated2(app: SphinxTestApp) -> None: + assert app.builder.math_renderer_name == 'imgmath' # The another one is chosen + + ++@pytest.mark.sphinxcontrib('jsmath') + @pytest.mark.sphinx( + 'html', + testroot='basic', +@@ -80,6 +82,7 @@ def test_html_math_renderer_is_chosen(app: SphinxTestApp) -> None: + assert app.builder.math_renderer_name == 'imgmath' + + ++@pytest.mark.sphinxcontrib('jsmath') + @pytest.mark.sphinx( + 'html', + testroot='basic', +diff --git a/tests/test_writers/test_api_translator.py b/tests/test_writers/test_api_translator.py +index 1220192..8e8bb33 100644 +--- a/tests/test_writers/test_api_translator.py ++++ b/tests/test_writers/test_api_translator.py +@@ -47,6 +47,7 @@ def test_singlehtml_set_translator_for_singlehtml(app: SphinxTestApp) -> None: + assert translator_class.__name__ == 'ConfSingleHTMLTranslator' + + ++@pytest.mark.sphinxcontrib('serializinghtml') + @pytest.mark.sphinx('pickle', testroot='api-set-translator') + def test_pickle_set_translator_for_pickle(app: SphinxTestApp) -> None: + translator_class = app.builder.get_translator_class() +@@ -54,6 +55,7 @@ def test_pickle_set_translator_for_pickle(app: SphinxTestApp) -> None: + assert translator_class.__name__ == 'ConfPickleTranslator' + + ++@pytest.mark.sphinxcontrib('serializinghtml') + @pytest.mark.sphinx('json', testroot='api-set-translator') + def test_json_set_translator_for_json(app: SphinxTestApp) -> None: + translator_class = app.builder.get_translator_class() +-- +2.52.0 + diff --git a/Makefile b/Makefile deleted file mode 100644 index b609317..0000000 --- a/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile for source rpm: python-sphinx -# $Id$ -NAME := python-sphinx -SPECFILE = $(firstword $(wildcard *.spec)) - -define find-makefile-common -for d in common ../common ../../common ; do if [ -f $$d/Makefile.common ] ; then if [ -f $$d/CVS/Root -a -w $$/Makefile.common ] ; then cd $$d ; cvs -Q update ; fi ; echo "$$d/Makefile.common" ; break ; fi ; done -endef - -MAKEFILE_COMMON := $(shell $(find-makefile-common)) - -ifeq ($(MAKEFILE_COMMON),) -# attept a checkout -define checkout-makefile-common -test -f CVS/Root && { cvs -Q -d $$(cat CVS/Root) checkout common && echo "common/Makefile.common" ; } || { echo "ERROR: I can't figure out how to checkout the 'common' module." ; exit -1 ; } >&2 -endef - -MAKEFILE_COMMON := $(shell $(checkout-makefile-common)) -endif - -include $(MAKEFILE_COMMON) diff --git a/changelog b/changelog new file mode 100644 index 0000000..bdb1639 --- /dev/null +++ b/changelog @@ -0,0 +1,608 @@ +* Wed Jan 24 2024 Karolina Surma - 1:7.2.6-6 +- Suppress traceback when importing the weakened sphinxcontrib* dependencies + +* Mon Jan 22 2024 Fedora Release Engineering - 1:7.2.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Tue Dec 12 2023 Karolina Surma - 1:7.2.6-4 +- Fix the tests run when building with Python 3.11.7, 3.12.1 and later + +* Thu Nov 16 2023 Miro Hrončok - 1:7.2.6-3 +- On Fedora, BuildRequire the sphinxcontrib packages to build the documentation + +* Wed Nov 08 2023 Miro Hrončok - 1:7.2.6-2 +- Weaken the runtime dependency on: + - python3-sphinxcontrib-applehelp + - python3-sphinxcontrib-devhelp + - python3-sphinxcontrib-jsmath + - python3-sphinxcontrib-htmlhelp + - python3-sphinxcontrib-serializinghtml + - python3-sphinxcontrib-qthelp +- Packages that want to use them during build need to BuildRequire them explicitly + +* Thu Oct 26 2023 Karolina Surma - 1:7.2.6-1 +- Update to 7.2.6 +- Fixes rhbz#2232469 + +* Thu Sep 21 2023 Karolina Surma - 1:7.1.2-2 +- Fix FTBFS with Pygments 2.16+ + +* Mon Aug 14 2023 Karolina Surma - 1:7.1.2-1 +- Update to 7.1.2 +- Fixes rhbz#2225274 + +* Mon Aug 07 2023 Karolina Surma - 1:7.0.1-1 +- Update to 7.0.1 + +* Thu Jul 27 2023 Miro Hrončok - 1:6.2.1-4 +- Don't use filelock to test this package on RHEL + +* Fri Jul 21 2023 Fedora Release Engineering - 1:6.2.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Thu Jul 13 2023 Karolina Surma - 1:6.2.1-2 +- Don't use websupport to build documentation on RHEL + +* Mon Jun 26 2023 Karolina Surma - 1:6.2.1-1 +- Update to 6.2.1 +- Fixes rhbz#2188968 + +* Fri Jun 16 2023 Python Maint - 1:6.1.3-4 +- Rebuilt for Python 3.12 + +* Tue Jun 13 2023 Python Maint - 1:6.1.3-3 +- Bootstrap for Python 3.12 + +* Wed May 31 2023 Yaakov Selkowitz - 1:6.1.3-2 +- Avoid html5lib test dependency in RHEL builds + +* Fri Mar 10 2023 Karolina Surma - 1:6.1.3-1 +- Update to 6.1.3 +- Fixes rhbz#2135122 + +* Thu Mar 09 2023 Karolina Surma - 1:5.3.0-4 +- Fix tests related to missing setuptools and Babel 2.12 +- Fixes rhbz#2176685 + +* Tue Jan 31 2023 Karolina Surma - 1:5.3.0-3 +- Fix tests with python-pygments 2.14+ + +* Fri Jan 20 2023 Fedora Release Engineering - 1:5.3.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Tue Nov 08 2022 Karolina Surma - 1:5.3.0-1 +- Update to 5.3.0 +- Fixes rhbz#2129546 + +* Mon Aug 15 2022 Karolina Surma - 1:5.1.1-1 +- Update to 5.1.1 +- Fixes rhbz#2110473 +- Remove reST documentation from the -doc package, ship only HTML + +* Fri Jul 22 2022 Fedora Release Engineering - 1:5.0.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Jun 21 2022 Karolina Surma - 1:5.0.2-1 +- Update to 5.0.2 + +* Mon Jun 13 2022 Python Maint - 1:4.5.0-3 +- Rebuilt for Python 3.11 + +* Mon Jun 13 2022 Python Maint - 1:4.5.0-2 +- Bootstrap for Python 3.11 + +* Fri Apr 01 2022 Karolina Surma - 1:4.5.0-1 +- Update to 4.5.0 +- Fixes rhbz#2068924 + +* Tue Feb 01 2022 Karolina Surma - 1:4.4.0-1 +- Update to 4.4.0 +- Fixes rhbz#2033955 + +* Fri Jan 21 2022 Fedora Release Engineering - 1:4.3.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Mon Nov 29 2021 Karolina Surma - 1:4.3.1-1 +- Update to 4.3.1 +- Fixes rhbz#2027059 + +* Fri Nov 19 2021 Karolina Surma - 1:4.3.0-1 +- Update to 4.3.0 +- Fixes rhbz#2022111 + +* Fri Sep 17 2021 Karolina Surma - 1:4.2.0-1 +- Update to 4.2.0 +- Fixes rhbz#2003427 + +* Thu Sep 16 2021 Karolina Surma - 1:4.1.2-3 +- Display typing objects correctly with Python 3.10 (fix FTBFS) +- Generate correct reference to parent class if class has `_name` attribute +- Enable previously deselected test + +* Wed Aug 18 2021 Karolina Surma - 1:4.1.2-2 +- Patch python-sphinx to work with python-pygments >=2.10 + +* Mon Aug 02 2021 Karolina Surma - 1:4.1.2-1 +- Update to 4.1.2 +- Fixes rhbz#1979326 +- Backport commit to fix python-sphinx with Python 3.10-rc1 + +* Fri Jul 23 2021 Fedora Release Engineering - 1:4.0.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Fri Jun 11 2021 Karolina Surma - 1:4.0.2-1 +- Update to 4.0.2 +- Fixes rhbz#1948279 + +* Thu Jun 03 2021 Python Maint - 1:3.5.4-3 +- Rebuilt for Python 3.10 + +* Wed Jun 02 2021 Python Maint - 1:3.5.4-2 +- Bootstrap for Python 3.10 + +* Mon May 10 2021 Karolina Surma - 1:3.5.4-1 +- Update to 3.5.4 +- Fixes rhbz#1949477 + +* Thu Apr 01 2021 Karolina Surma - 1:3.5.3-1 +- Update to 3.5.3 +- Fixes rhbz#1941161 + +* Wed Mar 10 2021 Charalampos Stratakis - 1:3.5.2-1 +- Update 3.5.2 +- Fixes rhbz#1928459 + +* Wed Jan 27 2021 Fedora Release Engineering - 1:3.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Tue Jan 19 2021 Charalampos Stratakis - 1:3.4.3-1 +- Update to 3.4.3 +- Fixes rhbz#1909494 + +* Sat Dec 05 2020 Mattia Verga - 1:3.3.1-2 +- Unset -s from python shebang +- Fixes: rhbz#1903763 + +* Mon Nov 23 2020 Miro Hrončok - 1:3.3.1-1 +- Update to 3.3.1 +- Fixes: rhbz#1893752 + +* Wed Oct 14 2020 Tomas Hrnciar - 1:3.2.1-2 +- Backport commit to fix python-sphinx with python-pygments v2.7.1 + +* Tue Aug 18 2020 Miro Hrončok - 1:3.2.1-1 +- Update to 3.2.1 +- Remove compatibility symbolic links from /usr/libexec/ +- Fixes rhbz#1867294 + +* Fri Aug 07 2020 Miro Hrončok - 1:3.1.2-1 +- Update to 3.1.2 +- Fixes rhbz#1853901 + +* Wed Jul 29 2020 Fedora Release Engineering - 1:3.1.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Tue Jun 30 2020 Charalampos Stratakis - 1:3.1.1-1 +- Update to 3.1.1 (#1783776) + +* Sat May 23 2020 Miro Hrončok - 1:2.2.2-4 +- Rebuilt for Python 3.9 + +* Fri May 22 2020 Miro Hrončok - 1:2.2.2-3 +- Bootstrap for Python 3.9 + +* Thu Jan 30 2020 Fedora Release Engineering - 1:2.2.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Tue Dec 10 2019 Miro Hrončok - 1:2.2.2-1 +- Update to 2.2.2 (rhbz#1743018) + +* Thu Oct 03 2019 Miro Hrončok - 1:2.1.2-6 +- Rebuilt for Python 3.8.0rc1 (#1748018) + +* Fri Aug 16 2019 Miro Hrončok - 1:2.1.2-5 +- Rebuilt for Python 3.8 + +* Thu Aug 15 2019 Miro Hrončok - 1:2.1.2-4 +- Bootstrap for Python 3.8 + +* Thu Aug 15 2019 Richard Shaw - 1:2.1.2-3 +- Rebuild for Python 3.8. + +* Fri Jul 26 2019 Fedora Release Engineering - 1:2.1.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jun 23 2019 Miro Hrončok - 1:2.1.2-1 +- Update to 2.1.2 (#1716158) + +* Wed Apr 10 2019 Miro Hrončok - 1:2.0.1-1 +- Update to 2.0.1 (#1697544) +- Own the sphinxcontrib directory (#1669790) + +* Wed Mar 27 2019 Charalampos Stratakis - 1:2.0.0~b2-1 +- Update to 2.0.0b2 + +* Wed Feb 27 2019 Miro Hrončok - 1:2.0.0~b1-1 +- Update to 2.0.0b1 +- Drop Python 2 package +- https://fedoraproject.org/wiki/Changes/Sphinx2 + +* Thu Feb 07 2019 Alfredo Moralejo - 1:1.8.4-1 +- Update to 1.8.4. + +* Sat Feb 02 2019 Fedora Release Engineering - 1:1.7.6-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild + +* Sun Nov 18 2018 Zbigniew Jędrzejewski-Szmek - 1:1.7.6-2 +- Drop explicit locale setting for python3, use C.UTF-8 for python2 + See https://fedoraproject.org/wiki/Changes/Remove_glibc-langpacks-all_from_buildroot + +* Mon Jul 23 2018 Marcel Plch - 1:1.7.6-1 +- Update to 1.7.6 + +* Fri Jul 13 2018 Miro Hrončok - 1:1.7.5-6 +- Remove unused dependencies on xapian and simplejson + +* Thu Jul 5 2018 Zbigniew Jędrzejewski-Szmek - 1:1.7.5-5 +- Add patch to fix build if alabaster theme is installed +- Add patch for #1589868 + +* Mon Jul 02 2018 Miro Hrončok - 1:1.7.5-4 +- Enable tests + +* Mon Jul 02 2018 Miro Hrončok - 1:1.7.5-3 +- Enable websupport + +* Mon Jul 02 2018 Miro Hrončok - 1:1.7.5-2 +- Rebuilt for Python 3.7 + +* Tue Jun 19 2018 Charalampos Stratakis - 1:1.7.5-1 +- Update to 1.7.5 (bz#1570451) + +* Mon Jun 18 2018 Miro Hrončok - 1:1.7.2-5 +- Rebuilt for Python 3.7 + +* Fri Jun 15 2018 Miro Hrončok - 1:1.7.2-4 +- Bootstrap for Python 3.7 + +* Thu Jun 14 2018 Miro Hrončok - 1:1.7.2-3 +- Bootstrap for Python 3.7 + +* Wed Apr 11 2018 Petr Viktorin - 1:1.7.2-2 +- Conditionalize the ImageMagick build dependency & tests + +* Wed Apr 11 2018 Petr Viktorin - 1:1.7.2-1 +- Update to 1.7.2 (bz#1558968) + +* Tue Mar 13 2018 Charalampos Stratakis - 1:1.7.1-1 +- Update to 1.7.1 (bz#1534802) + +* Fri Feb 09 2018 Fedora Release Engineering - 1:1.6.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 09 2018 Charalampos Stratakis - 1:1.6.6-1 +- Update to 1.6.6 (bz#1532435) + +* Mon Dec 11 2017 Iryna Shcherbina - 1:1.6.5-2 +- Fix ambiguous Python 2 dependency declarations + (See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3) + +* Mon Nov 06 2017 Charalampos Stratakis - 1:1.6.5-1 +- Update to 1.6.5 (bz#1508237) + +* Mon Oct 09 2017 Troy Dawson - 1:1.6.4-2 +- Cleanup spec file conditionals + +* Tue Sep 26 2017 Charalampos Stratakis - 1:1.6.4-1 +- Update to 1.6.4 (bz#1426928) + +* Wed Sep 20 2017 Charalampos Stratakis - 1:1.6.3-3 +- Provide the epoch tag in order to keep the upgrade path clean. + +* Thu Jul 27 2017 Fedora Release Engineering - 1.6.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Thu Jul 20 2017 Charalampos Stratakis - - 1.6.3-1 +- Update to 1.6.3 (bz#1426928) + +* Sat Feb 18 2017 Toshio Kuratomi - - 1.5.2-2 +- Cleanup source files that should not be installed +- Fix the __init__.pyc that was byte compiled for the wrong python + +* Fri Feb 17 2017 Toshio Kuratomi - - 1.5.2-1 +- Update to 1.5.2 +- Remove a few latex dependencies that are no longer needed +- Remove xapian patch; now in upstream tarball + +* Sat Feb 11 2017 Fedora Release Engineering - 1.5.1-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Tue Jan 31 2017 Toshio Kuratomi - - 1.5.1-5 +- environment-modules is less featureful than Lmod. + - Select the default version in a different way since environment-modules + didn't understand the symlink + - Ignore error messsages in the shell startup script as environment-modules + prints an error message if a module has already been loaded. The command + is doing the right thing for this case except that it's also printing an + error message. + +* Thu Jan 26 2017 Toshio Kuratomi - - 1.5.1-4 +- Add recipe for setting the system default to the README.fedora + +* Wed Jan 18 2017 Toshio Kuratomi - - 1.5.1-3 +- Move the unversioned executables into the python2 package as they are now + using python2 to run + +* Wed Jan 18 2017 Toshio Kuratomi - - 1.5.1-2 +- Add README.fedora so people know how to use environment-modules to switch. +- Change the default to be the python2 version to match with the guidelines +- Switch to generic environment(modules) instead of Lmod specifically. + +* Fri Dec 30 2016 Orion Poplawski - 1.5.1-1 +- Update to 1.5.1 + +* Fri Dec 30 2016 Toshio Kuratomi - 1.4.9-2 +- Remove alternatives. Alternatives should only be used for a very small + number of packages (system daemons which also have a compatible command line + interface). +- Use environment-modules to switch between the python2 and python3 packages + *but* be aware that no amount of manual switching can get this 100% right. + The code has to be fixed upstream, not in packaging. + +* Tue Dec 13 2016 Charalampos Stratakis - 1.4.9-1 +- Update to 1.4.9 +- Enable python3 tests + +* Mon Dec 12 2016 Charalampos Stratakis - 1.4.8-3 +- Rebuild for Python 3.6 +- Disable python3 tests for now + +* Thu Oct 6 2016 Avram Lubkin - 1.4.8-2 +- Added tex(luatex85.sty) dependency to support TexLive 2016 + +* Thu Oct 6 2016 Avram Lubkin - 1.4.8-1 +- Update to 1.4.8 +- Alternatives fails for scripts sometimes (bz#1382405) + +* Sun Sep 4 2016 Avram Lubkin - 1.4.6-2 +- Alternatives fails for man pages due to existing files + +* Fri Sep 2 2016 Avram Lubkin - 1.4.6-1 +- Update to 1.4.6 (bz#1370810) +- Fix unversioned Obsoletes +- Add alternatives slaves for man pages + +* Fri Aug 12 2016 Avram Lubkin - 1.4.5-1 +- Update to 1.4.5 (bz#1356336) +- Remove Recommends for latex, locale, and doc subpackages (bz#1366624) +- Remove Requires from locale subpackage (bz#1366624) +- Set executable scripts via alternatives (bz#1321413) +- Change graphviz Requires to Recommends (bz#1366706) + +* Sun Jul 03 2016 Avram Lubkin - 1.4.4-2 +- doc and locale no longer specifically require python2-sphinx +- Colapsed python3-sphinx-latex into python-latex + +* Sun Jun 12 2016 Avram Lubkin - 1.4.4-1 +- Updated to 1.4.4 +- Added python-sphinx-locale for common locale files + +* Thu Feb 04 2016 Fedora Release Engineering - 1.3.1-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Fri Nov 27 2015 Zbigniew Jędrzejewski-Szmek - 1.3.1-4 +- Obsolete napoleon extension, it is now packaged with sphinx (#1286275) +- Rename python2-Sphinx to python2-sphinx +- Add conflicts to disallow parallel installation of different versions, + which causes file conflicts because of the shared documentation files. + +* Wed Nov 25 2015 Zbigniew Jędrzejewski-Szmek - 1.3.1-3 +- Restore using python2 scripts by default (#1285535) + +* Wed Nov 25 2015 Zbigniew Jędrzejewski-Szmek - 1.3.1-2 +- Fix requirements of python2- subpackage +- Provide sphinx-*-{3.5,3} symlinks for each script + +* Tue Nov 24 2015 Julien Enselme - 1.3.1-1 +- Update to 1.3.1 (#1136284) +- Update to new guidelines +- Make the default executable use python3 + +* Tue Oct 13 2015 Robert Kuska - 1.2.3-5 +- Rebuilt for Python3.5 rebuild +- add patch to reflect that Python3.5 dropped HTMLParserError + +* Mon Jul 20 2015 Michel Alexandre Salim - 1.2.3-4 +- Fix line encoding of bundled jquery.js + +* Mon Jul 20 2015 Michel Alexandre Salim - 1.2.3-3 +- Re-introduce LaTeX subpackage, solely for pulling in LaTeX dependencies + +* Thu Jun 18 2015 Fedora Release Engineering - 1.2.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Thu Feb 5 2015 Michel Alexandre Salim - 1.2.3-1 +- Update to 1.2.3 +- Mark license file with %%license instead of %%doc + +* Thu Feb 5 2015 Michel Alexandre Salim - 1.2.2-10 +- Complete LaTeX builder deps (fixes bz#882166) +- Make test output verbose +- Add BRs needed to enable all tests + +* Tue Feb 3 2015 Michel Alexandre Salim - 1.2.2-9 +- python3-sphinx package also Provides: python3-sphinx-latex + +* Tue Feb 3 2015 Michel Alexandre Salim - 1.2.2-8 +- If a separate LaTeX subpackage is not generated, the main package should have + a virtual Provides: for it (bz#1187989) + +* Tue Jan 27 2015 Michel Alexandre Salim - 1.2.2-7 +- Disable separate LaTeX builder for now (bz#1185574) + +* Thu Jan 22 2015 Michel Alexandre Salim - 1.2.2-6 +- Split off LaTeX builder into its own subpackages, to remove TeXLive + dependencies from the main package. + Thanks to Robert Kuska for feedback +- Clean up python3-sphinx's locale files, they ended up in the python2 package. + Share the locale files in /usr/share instead + +* Sat Jun 07 2014 Fedora Release Engineering - 1.2.2-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 27 2014 Bohuslav Kabrda - 1.2.2-4 +- Don't own the -3 scripts by python 2 package + +* Thu May 22 2014 Bohuslav Kabrda - 1.2.2-3 +- Add sphinx-*-3 links to scripts +Resolves: #1098109 + +* Fri May 9 2014 Orion Poplawski - 1.2.2-2 +- Rebuild for Python 3.4 + +* Fri May 9 2014 Orion Poplawski - 1.2.2-1 +- Update to 1.2.2 + +* Thu Feb 13 2014 Michel Salim - 1.2.1-1 +- Update to 1.2.1 + +* Sun Aug 04 2013 Fedora Release Engineering - 1.1.3-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Sat Mar 9 2013 Michel Salim - 1.1.3-7 +- Fix inheritance_diagram quoting bug, exposed by the newer, stricter dot + +* Thu Feb 14 2013 Fedora Release Engineering - 1.1.3-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Tue Aug 21 2012 Toshio Kuratomi - 1.1.3-5 +- Fix for use of sphinx's manpage writer with docutils-0.10 + +* Mon Aug 6 2012 Michel Salim - 1.1.3-4 +- Rebuild for Python 3.3 + +* Fri Aug 3 2012 David Malcolm - 1.1.3-3 +- remove rhel logic from with_python3 conditional + +* Sat Jul 21 2012 Fedora Release Engineering - 1.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Thu Apr 5 2012 Michel Salim - 1.1.3-1 +- Update to 1.1.3 + +* Sun Feb 5 2012 Michel Salim - 1.1.2-5 +- Move python3 runtime dependencies to the right subpackage +- Properly exclude python3 binaries + +* Sat Jan 14 2012 Fedora Release Engineering - 1.1.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Sat Dec 17 2011 Michel Salim - 1.1.2-3 +- BR on texlive-latex for LaTeX tests + +* Thu Dec 8 2011 Michel Salim - 1.1.2-2 +- Enable python3 subpackage + +* Mon Nov 28 2011 Toshio Kuratomi - 1.1.2-1 +- Update to upstream 1.1.2 + +* Wed Feb 09 2011 Fedora Release Engineering - 1.0.7-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Tue Jan 18 2011 Toshio Kuratomi - 1.0.7-1 +- Update to upstream 1.0.7 + +* Mon Jan 17 2011 Toshio Kuratomi - 1.0.6-1 +- Update to upstream 1.0.6 + +* Mon Nov 1 2010 Michel Salim - 1.0.4-3 +- Fix -doc Makefile to allow regeneration of .rst files + +* Mon Nov 1 2010 Michel Salim - 1.0.4-2 +- Actually include *.js locale files +- Generate manpages + +* Fri Sep 17 2010 Michel Salim - 1.0.4-1 +- Update to 1.0.4 +- Remove BuildRoot and %%clean declarations + +* Thu Jul 22 2010 David Malcolm - 1.0-0.1.b2.1 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Mon May 31 2010 Toshio Kuratomi - 1.0-0.2.b2 +- Update to 1.0 beta 2 +- Fixes problem building html documentation in non-English locales + +* Wed May 26 2010 Michel Salim - 1.0-0.1.b1 +- Update to 1.0 beta 1 + +* Tue May 25 2010 Michel Salim - 0.6.6-1 +- Update to 0.6.6 + +* Fri May 21 2010 Toshio Kuratomi - 0.6.5-2 +- Few minor tweaks to Gareth's spec file update + +* Mon May 10 2010 Gareth Armstrong - 0.6.5-1.hp +- Update to 0.6.5 +- Initial import of python-sphinx from Fedora Rawhide for use in HP CMS +- Enforce that Sphinx requires Python 2.4 or later via an explicit BR +- Minor tweaks to spec file +- Move language files to %%{_datadir}, idea borrowed from Debian's sphinx + package +- Deliver man pages for sphinx-build & sphinx-quickstart +- Deliver rst documentation files to reST directory in doc sub-package +- Add %%check section for Python2 and add BR on python-nose + +* Wed Jan 13 2010 Toshio Kuratomi - 0.6.4-1 +- Update to 0.6.4 +- Fixes a problem using autodoc with pylons projects. + +* Fri Sep 4 2009 Michel Salim - 0.6.3-1 +- Update to 0.6.3 + +* Mon Aug 17 2009 Toshio Kuratomi - 0.6.2-1 +- Update to 0.6.2 -- upstream bugfix requested inside bz#512438 + +* Sun Jul 26 2009 Fedora Release Engineering - 0.6.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Fri Jun 05 2009 Luke Macken - 0.6.1-2 +- Add a patch to use our own setuptools package + +* Fri Apr 17 2009 Michel Salim - 0.6.1-1 +- Update to 0.6.1 + +* Thu Feb 26 2009 Fedora Release Engineering - 0.5.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Jan 2 2009 Michel Salim - 0.5.1-1 +- Update to 0.5.1 + +* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 0.5-2 +- Rebuild for Python 2.6 + +* Mon Nov 24 2008 Michel Salim - 0.5-1 +- Update to 0.5 + +* Fri Oct 10 2008 Michel Salim - 0.4.3-1 +- Update to 0.4.3 + +* Wed Aug 27 2008 Toshio Kuratomi - 0.4.2-1.1 +- Fix for EL-5 build. + +* Mon Aug 25 2008 Michel Salim - 0.4.2-1 +- Update to 0.4.2 + +* Mon May 26 2008 Michel Salim - 0.3-1 +- Update to 0.3 + +* Fri May 2 2008 Michel Salim - 0.1.61950-3 +- Split documentation into subpackage +- Exclude C files (not built by default anyway) + +* Wed Apr 16 2008 José Matos - 0.1.61950-2 +- Build html documentation, include it and include the rst + documentation. + +* Thu Mar 27 2008 Michel Salim 0.1.61950-1 +- Initial package diff --git a/plan.fmf b/plan.fmf new file mode 100644 index 0000000..94cb32d --- /dev/null +++ b/plan.fmf @@ -0,0 +1,5 @@ +discover: + how: fmf +execute: + how: tmt + diff --git a/python-sphinx.spec b/python-sphinx.spec index a180df6..e656d49 100644 --- a/python-sphinx.spec +++ b/python-sphinx.spec @@ -1,22 +1,164 @@ -%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} -%{!?pyver: %define pyver %(%{__python} -c "import sys ; print sys.version[:3]")} +# When bootstrapping sphinx in Fedora, we don't yet have sphinxcontrib-* +# Without the packages, we have warnings in docs, but it's not a hard dependency +# We don't want to support sphinxcontrib-* in RHEL, hence disabling the dependencies +%bcond sphinxcontrib %{undefined rhel} +# RHEL does not include python3-snowballstemmer (SRPM: snowball) +%bcond snowballstemmer %{undefined rhel} +# Also, we don't have all the tests requirements +%bcond tests 1 -%define upstream_name Sphinx +# Unset -s on python shebang to allow RPM-installed sphinx to be used +# with user-installed modules (#1903763) +%undefine _py3_shebang_s -Name: python-sphinx -Version: 0.5.1 -Release: 2%{?dist} -Summary: Python documentation generator +# No internet in Koji +%bcond internet 0 -Group: Development/Tools -License: BSD -URL: http://sphinx.pocoo.org/ -Source0: http://pypi.python.org/packages/source/S/%{upstream_name}/%{upstream_name}-%{version}.tar.gz -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +# Build without BuildRequires ImageMagick, to skip imgconverter tests +%bcond imagemagick_tests %{undefined rhel} -BuildArch: noarch -BuildRequires: python-devel python-docutils python-jinja python-setuptools -Requires: python-docutils python-jinja python-pygments +# During texlive updates, sometimes the latex environment is unstable +# NOTE: LaTeX tests are never run when building for ELN. +%bcond latex_tests 1 + +Name: python-sphinx +%global general_version 9.1.0 +#global prerel ... +%global upstream_version %{general_version}%{?prerel} +Version: %{general_version}%{?prerel:~%{prerel}} +Release: %autorelease +Epoch: 1 +Summary: Python documentation generator + +# Unless otherwise noted, the license for code is BSD-2-Clause +# sphinx/themes/haiku/static/haiku.css_t has bits licensed with MIT +License: BSD-2-Clause AND MIT + +URL: https://www.sphinx-doc.org/ +Source: %{pypi_source sphinx %{upstream_version}} + +# Allow extra themes to exist. We pull in python3-sphinx-theme-alabaster +# which causes that test to fail. +Patch: sphinx-test_theming.patch + +# Fix for test_stemmer failing with Python 3.15+, merged upstream +Patch: https://github.com/sphinx-doc/sphinx/pull/14474.patch + +# Fix test_gettext_literalblock_additional failure with pytest-xdist: +# the test used testroot='root' which lacks literalblock.txt +Patch: https://github.com/sphinx-doc/sphinx/pull/14507.patch + +# Make the first party extensions optional +# This removes the runtime dependencies on: +# - sphinxcontrib.applehelp +# - sphinxcontrib.devhelp +# - sphinxcontrib.jsmath +# - sphinxcontrib.htmlhelp +# - sphinxcontrib.serializinghtml +# - sphinxcontrib.qthelp +# The majority of Fedora RPM packages does not need any of those. +# By removing the dependencies, we minimize the stuff that's pulled into +# the buildroots of 700+ of packages. +# +# This is a downstream-only change - rejected upstream. +# https://github.com/sphinx-doc/sphinx/pull/11747 +Patch: Make-the-first-party-extensions-optional.patch + +BuildArch: noarch + +BuildRequires: make +BuildRequires: python%{python3_pkgversion}-devel +BuildRequires: pyproject-rpm-macros + +%if %{with sphinxcontrib} +# applehelp and jsmath have been orphaned, we cannot use the [docs] extra directly +BuildRequires: python%{python3_pkgversion}-sphinxcontrib-devhelp +BuildRequires: python%{python3_pkgversion}-sphinxcontrib-htmlhelp +BuildRequires: python%{python3_pkgversion}-sphinxcontrib-serializinghtml +BuildRequires: python%{python3_pkgversion}-sphinxcontrib-qthelp +BuildRequires: python%{python3_pkgversion}-sphinxcontrib-websupport +%endif + +%if %{with tests} +# tests import _testcapi +BuildRequires: python%{python3_pkgversion}-test + +BuildRequires: gcc +BuildRequires: gettext +BuildRequires: graphviz +BuildRequires: texinfo + +%if %{with imagemagick_tests} +BuildRequires: ImageMagick +%endif + +%if %{undefined rhel} +BuildRequires: python%{python3_pkgversion}-pytest-xdist +%endif + +%if %{undefined rhel} && %{with latex_tests} +BuildRequires: texlive-collection-fontsrecommended +BuildRequires: texlive-collection-latex +BuildRequires: texlive-gnu-freefont +BuildRequires: latexmk +BuildRequires: texlive-dvipng +BuildRequires: texlive-dvisvgm +BuildRequires: tex(article.cls) +BuildRequires: tex(utf8x.def) +# Other dependencies. +BuildRequires: tex(alltt.sty) +BuildRequires: tex(amsfonts.sty) +BuildRequires: tex(amsmath.sty) +BuildRequires: tex(amssymb.sty) +BuildRequires: tex(amstext.sty) +BuildRequires: tex(amsthm.sty) +BuildRequires: tex(anyfontsize.sty) +BuildRequires: tex(atbegshi.sty) +BuildRequires: tex(babel.sty) +BuildRequires: tex(bm.sty) +BuildRequires: tex(booktabs.sty) +BuildRequires: tex(capt-of.sty) +BuildRequires: tex(cmap.sty) +BuildRequires: tex(colortbl.sty) +BuildRequires: tex(ellipse.sty) +BuildRequires: tex(etoolbox.sty) +BuildRequires: tex(fancyhdr.sty) +BuildRequires: tex(fancyvrb.sty) +BuildRequires: tex(float.sty) +BuildRequires: tex(fncychap.sty) +BuildRequires: tex(fontawesome.sty) +BuildRequires: tex(fontawesome5.sty) +BuildRequires: tex(fontenc.sty) +BuildRequires: tex(fontspec.sty) +BuildRequires: tex(framed.sty) +BuildRequires: tex(geometry.sty) +BuildRequires: tex(graphicx.sty) +BuildRequires: tex(hypcap.sty) +BuildRequires: tex(hyperref.sty) +BuildRequires: tex(inputenc.sty) +BuildRequires: tex(kvoptions.sty) +BuildRequires: tex(longtable.sty) +BuildRequires: tex(ltxcmds.sty) +BuildRequires: tex(luatex85.sty) +BuildRequires: tex(makeidx.sty) +BuildRequires: tex(multicol.sty) +BuildRequires: tex(needspace.sty) +BuildRequires: tex(parskip.sty) +BuildRequires: tex(pict2e.sty) +BuildRequires: tex(polyglossia.sty) +BuildRequires: tex(remreset.sty) +BuildRequires: tex(tabulary.sty) +BuildRequires: tex(textalpha.sty) +BuildRequires: tex(textcomp.sty) +BuildRequires: tex(tgheros.sty) +BuildRequires: tex(tgtermes.sty) +BuildRequires: tex(titlesec.sty) +BuildRequires: tex(upquote.sty) +BuildRequires: tex(varwidth.sty) +BuildRequires: tex(wrapfig.sty) +BuildRequires: tex(xcolor.sty) +%endif +%endif %description @@ -48,14 +190,24 @@ the Python docs: snippets and inclusion of appropriately formatted docstrings. -%package doc -Summary: Documentation for %{name} -Group: Documentation -License: BSD -Requires: %{name} = %{version}-%{release} +%package -n python%{python3_pkgversion}-sphinx +Summary: Python documentation generator +Recommends: graphviz +Recommends: ImageMagick +Recommends: make -%description doc +# Upstream Requires those, but we have a patch to remove the dependency. +# We keep them Recommended to preserve the default user experience. +%if %{with sphinxcontrib} +# applehelp and jsmath have been orphaned +Recommends: python%{python3_pkgversion}-sphinxcontrib-devhelp +Recommends: python%{python3_pkgversion}-sphinxcontrib-htmlhelp +Recommends: python%{python3_pkgversion}-sphinxcontrib-serializinghtml +Recommends: python%{python3_pkgversion}-sphinxcontrib-qthelp +%endif + +%description -n python%{python3_pkgversion}-sphinx Sphinx is a tool that makes it easy to create intelligent and beautiful documentation for Python projects (or other documents consisting of multiple reStructuredText sources), written by Georg @@ -63,81 +215,306 @@ Brandl. It was originally created to translate the new Python documentation, but has now been cleaned up in the hope that it will be useful to many other projects. -This package contains documentation in rST and HTML formats +Sphinx uses reStructuredText as its markup language, and many of its +strengths come from the power and straightforwardness of +reStructuredText and its parsing and translating suite, the Docutils. + +Although it is still under constant development, the following +features are already present, work fine and can be seen "in action" in +the Python docs: + + * Output formats: HTML (including Windows HTML Help) and LaTeX, + for printable PDF versions + * Extensive cross-references: semantic markup and automatic links + for functions, classes, glossary terms and similar pieces of + information + * Hierarchical structure: easy definition of a document tree, with + automatic links to siblings, parents and children + * Automatic indices: general index as well as a module index + * Code handling: automatic highlighting using the Pygments highlighter + * Various extensions are available, e.g. for automatic testing of + snippets and inclusion of appropriately formatted docstrings. + + +%if %{undefined rhel} +%package -n python%{python3_pkgversion}-sphinx-latex +Summary: LaTeX builder dependencies for python%{python3_pkgversion}-sphinx + +Requires: python%{python3_pkgversion}-sphinx = %{epoch}:%{version}-%{release} +# Required dependencies as stated in the documentation [1]: +# +# - texlive-collection-latexrecommended +# - texlive-collection-fontsrecommended +# - texlive-collection-fontsextra +# - texlive-collection-latexextra +# - texlive-tex-gyre +# - latexmk +# +# [1] https://www.sphinx-doc.org/en/master/usage/builders/index.html#sphinx.builders.latex.LaTeXBuilder +# +# These packages install 2500+ other packages requiring ~3 GiB of space. +# Therefore, a more precise list of dependencies. + +Requires: texlive-collection-fontsrecommended +Requires: texlive-collection-latex +Requires: texlive-gnu-freefont +Requires: latexmk + +# Required by sphinx.ext.imgmath – Render math as images +Requires: texlive-dvipng +Requires: texlive-dvisvgm +#Requires: tex(preview.sty) Pulls in texlive-collection-latexrecommended + +Requires: tex(article.cls) +Requires: tex(utf8x.def) + +# Other dependencies. +# -- After searching for \RequirePackage{..} and \usepackage{..}. +Requires: tex(alltt.sty) +Requires: tex(amsfonts.sty) +Requires: tex(amsmath.sty) +Requires: tex(amssymb.sty) +Requires: tex(amstext.sty) +Requires: tex(amsthm.sty) +Requires: tex(anyfontsize.sty) +Requires: tex(atbegshi.sty) +Requires: tex(babel.sty) +Requires: tex(bm.sty) +Requires: tex(booktabs.sty) +Requires: tex(capt-of.sty) +Requires: tex(cmap.sty) +Requires: tex(colortbl.sty) +Requires: tex(ellipse.sty) +Requires: tex(etoolbox.sty) +Requires: tex(fancyhdr.sty) +Requires: tex(fancyvrb.sty) +Requires: tex(float.sty) +Requires: tex(fncychap.sty) +Requires: tex(fontawesome.sty) +Requires: tex(fontawesome5.sty) +Requires: tex(fontenc.sty) +Requires: tex(fontspec.sty) +Requires: tex(framed.sty) +Requires: tex(geometry.sty) +Requires: tex(graphicx.sty) +Requires: tex(hypcap.sty) +Requires: tex(hyperref.sty) +Requires: tex(inputenc.sty) +Requires: tex(kvoptions.sty) +Requires: tex(longtable.sty) +Requires: tex(ltxcmds.sty) +Requires: tex(luatex85.sty) +Requires: tex(makeidx.sty) +Requires: tex(multicol.sty) +Requires: tex(needspace.sty) +Requires: tex(parskip.sty) +Requires: tex(pict2e.sty) +Requires: tex(polyglossia.sty) +Requires: tex(remreset.sty) +Requires: tex(tabulary.sty) +Requires: tex(textalpha.sty) +Requires: tex(textcomp.sty) +Requires: tex(tgheros.sty) +Requires: tex(tgtermes.sty) +Requires: tex(titlesec.sty) +Requires: tex(upquote.sty) +Requires: tex(varwidth.sty) +Requires: tex(wrapfig.sty) +Requires: tex(xcolor.sty) +#Requires: tex(xeCJK.sty) Pulls in pLaTeX and upLaTeX + +# No files in this package, automatic provides don't work: +%py_provides python%{python3_pkgversion}-sphinx-latex + +%description -n python%{python3_pkgversion}-sphinx-latex +Sphinx is a tool that makes it easy to create intelligent and +beautiful documentation for Python projects (or other documents +consisting of multiple reStructuredText sources), written by Georg +Brandl. It was originally created to translate the new Python +documentation, but has now been cleaned up in the hope that it will be +useful to many other projects. + +This package pulls in the TeX dependencies needed by Sphinx's LaTeX +builder. +%endif + + +%package doc +Summary: Documentation for %{name} +License: BSD-2-Clause +Recommends: python%{python3_pkgversion}-sphinx = %{epoch}:%{version}-%{release} + +%description doc +Sphinx is a tool that makes it easy to create intelligent and +beautiful documentation for Python projects (or other documents +consisting of multiple reStructuredText sources), written by Georg +Brandl. It was originally created to translate the new Python +documentation, but has now been cleaned up in the hope that it will be +useful to many other projects. + +This package contains documentation in the HTML format. %prep -%setup -q -n %{upstream_name}-%{version} +%autosetup -n sphinx-%{upstream_version} -p1 + +# Drop test-dependency on pytest-xdist +# This allows for parallel testing, but has a lot of dependencies. +# We want to avoid the dependency in RHEL, where it is not available. +%if 0%{?rhel} +sed -i -e '/pytest-xdist/d' pyproject.toml +%endif + +# sphinx 9.1.0 requires pytest >= 9, which we don't have in Fedora yet +sed -i '/"pytest>=/ s/>=[^",]*//' pyproject.toml + +# docutils moves faster than sphinx +%pyproject_patch_dependency docutils:drop_upper + +# Drop test-dependency on defusedxml, +# use xml from the standard library instead. +# defusedxml is safer but this is only used in tests. +# Upstream uses defusedxml to be "safer for future contributors when they +# create/open branches and pull requests" -- that does not concern us. +# https://github.com/sphinx-doc/sphinx/pull/12168#discussion_r1535383868 +# We want to avoid the dependency in RHEL, but no harm in doing so unconditionally. +sed -i '/"defusedxml/d' pyproject.toml +sed -i 's/from defusedxml./from xml.etree./' sphinx/testing/util.py tests/test_theming/test_theming.py + +%if %{without snowballstemmer} +# Drop dependency on snowballstemmer for RHEL, implement dummy method instead +sed -i -e '/snowballstemmer/d' pyproject.toml +sed -i -e 's/^import \(snowballstemmer\)/from . import dummystemmer as \1/' sphinx/search/*.py +cat > sphinx/search/dummystemmer.py <<_EOF +class stemmer: + def __init__(self, *args, **kwargs): pass + def stemWord(self, word): return word +_EOF +%endif + +%if %{without imagemagick_tests} +rm -r tests/test_ext_imgconverter/ +%endif + + +%generate_buildrequires +%pyproject_buildrequires %{?with_tests:-g test} %build -%{__python} setup.py build -cd doc -make html +%pyproject_wheel + +export PYTHONPATH=$PWD +pushd doc +export SPHINXBUILD="%{python3} ../sphinx/cmd/build.py" +make html SPHINXBUILD="$SPHINXBUILD" +make man SPHINXBUILD="$SPHINXBUILD" +rm -rf _build/html/.buildinfo +# Those files are copied to _build/html/_images and loaded to the +# html pages from there - we can safely remove the duplicated and unused files +rm -rf _build/html/_static/themes _build/html/_static/tutorial +rm -f _build/html/_static/more.png _build/html/_static/translation.svg mv _build/html .. -rm -rf _* +popd %install -rm -rf $RPM_BUILD_ROOT -# Fix EOL delimiters -sed -i 's|\r||g' LICENSE -%{__python} setup.py install --skip-build --root $RPM_BUILD_ROOT +%pyproject_install -# Language files; not under /usr/share, need to be handled manually -(cd $RPM_BUILD_ROOT && find . -name 'sphinx.mo') | sed -e 's|^.||' | sed -e \ - 's:\(.*/locale/\)\([^/_]\+\)\(.*\.mo$\):%lang(\2) \1\2\3:' \ - >> %{name}.lang +# For backwards compatibility. Remove with care, if at all +for i in sphinx-{apidoc,autogen,build,quickstart}; do + ln -s %{_bindir}/$i %{buildroot}%{_bindir}/$i-%{python3_version} + ln -s %{_bindir}/$i %{buildroot}%{_bindir}/$i-3 +done + +# Clean up non-python files +rm -f %{buildroot}%{python3_sitelib}/sphinx/locale/.DS_Store +rm -rf %{buildroot}%{python3_sitelib}/sphinx/locale/.tx + +pushd doc +# Deliver man pages +install -d %{buildroot}%{_mandir}/man1 +for f in _build/man/sphinx-*.1; +do + cp -p $f %{buildroot}%{_mandir}/man1/$(basename $f) +done +popd + +# Move language files to /usr/share; +# patch to support this incorporated in 0.6.6 +pushd %{buildroot}%{python3_sitelib} + +for lang in `find sphinx/locale -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -printf "%f "`; +do + test $lang == __pycache__ && continue + install -d %{buildroot}%{_datadir}/sphinx/locale/$lang + install -d %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES + mv sphinx/locale/$lang/LC_MESSAGES/sphinx.js \ + %{buildroot}%{_datadir}/sphinx/locale/$lang/ + mv sphinx/locale/$lang/LC_MESSAGES/sphinx.mo \ + %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/ + rm -rf sphinx/locale/$lang +done +popd + +# Create the sphinxcontrib directory, so we can own it +# See https://bugzilla.redhat.com/show_bug.cgi?id=1669790 for rationale +mkdir %{buildroot}%{python3_sitelib}/sphinxcontrib + +%find_lang sphinx + +# Language files; Since these are javascript, it's not immediately obvious to +# find_lang that they need to be marked with a language. +(cd %{buildroot} && find . -name 'sphinx.js') | sed -e 's|^.||' | sed -e \ + 's:\(.*/locale/\)\([^/_]\+\)\(.*\.js$\):%lang(\2) \1\2\3:' \ + >> sphinx.lang -%clean -rm -rf $RPM_BUILD_ROOT +%if %{with tests} +%check +# Currently, all linkcheck tests and test_latex_images need internet +# test_build_latex_doc needs internet to download pictures, +# but fails also with it enabled, we decided to skip it entirely +# test_autodoc_type_aliases fails with Python 3.12.4, 3.13.0b3 +# skip temporarily until resolved: +# https://github.com/sphinx-doc/sphinx/issues/12430 +k="not test_autodoc_type_aliases" +%if %{without internet} +k="${k} and not linkcheck and not test_latex_images and not test_build_latex_doc" +%endif +%if %{without snowballstemmer} +# Without snowballstemmer, some tests have to be skipped as well, +# as the results with dummystemmer do not exactly match the testcases +k="${k} and not test_meta_keys_are_handled_for_language_en and not test_stemmer" +k="${k} and not test_term_in_heading_and_section and not test_IndexBuilder" +k="${k} and not test_check_js_search_indexes" +%endif -%files -f %{name}.lang -%defattr(-,root,root,-) -%doc AUTHORS CHANGES LICENSE README TODO +%pytest -k "${k}" %{!?rhel:-n auto} +%endif + +%files -n python%{python3_pkgversion}-sphinx -f sphinx.lang +%license LICENSE.rst +%doc README.rst %{_bindir}/sphinx-* -%{python_sitelib}/sphinx -%{python_sitelib}/*.egg-info +%{python3_sitelib}/sphinx/ +%dir %{python3_sitelib}/sphinxcontrib/ +%{python3_sitelib}/sphinx-%{upstream_version}.dist-info/ +%dir %{_datadir}/sphinx/ +%dir %{_datadir}/sphinx/locale +%dir %{_datadir}/sphinx/locale/* +%{_mandir}/man1/sphinx-* + +%if %{undefined rhel} +%files -n python%{python3_pkgversion}-sphinx-latex +# empty, this is a metapackage +%endif %files doc -%defattr(-,root,root,-) -%doc doc html +%license LICENSE.rst +%doc html %changelog -* Thu Feb 26 2009 Fedora Release Engineering - 0.5.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Jan 2 2009 Michel Salim - 0.5.1-1 -- Update to 0.5.1 - -* Sat Nov 29 2008 Ignacio Vazquez-Abrams - 0.5-2 -- Rebuild for Python 2.6 - -* Mon Nov 24 2008 Michel Salim - 0.5-1 -- Update to 0.5 - -* Fri Oct 10 2008 Michel Salim - 0.4.3-1 -- Update to 0.4.3 - -* Wed Aug 27 2008 Toshio Kuratomi - 0.4.2-1.1 -- Fix for EL-5 build. - -* Mon Aug 25 2008 Michel Salim - 0.4.2-1 -- Update to 0.4.2 - -* Mon May 26 2008 Michel Salim - 0.3-1 -- Update to 0.3 - -* Fri May 2 2008 Michel Salim - 0.1.61950-3 -- Split documentation into subpackage -- Exclude C files (not built by default anyway) - -* Wed Apr 16 2008 José Matos - 0.1.61950-2 -- Build html documentation, include it and include the rst - documentation. - -* Thu Mar 27 2008 Michel Salim 0.1.61950-1 -- Initial package +%autochangelog diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..bd3a5a4 --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,4 @@ +# exclude XML template (not always valid) from XML validity check: +xml: + ignore: + - /usr/lib/python*/site-packages/sphinx/themes/basic/opensearch.xml diff --git a/sources b/sources index f90f6b5..0c7eb51 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -11456e362d75c1a4c5a5847921d3f4c7 Sphinx-0.5.1.tar.gz +SHA512 (sphinx-9.1.0.tar.gz) = 2c8b16935e14a8f827110461c530275f431949159eef47380198115d8abadaafdca06680c09722c0df7fd8ed8e16dbe1e3aa62a774164b7987247f6d8f8a20d3 diff --git a/sphinx-test_theming.patch b/sphinx-test_theming.patch new file mode 100644 index 0000000..818a74e --- /dev/null +++ b/sphinx-test_theming.patch @@ -0,0 +1,25 @@ +From 399ae81dfbedb7b8acf84e56b0e4b2d5023432ec Mon Sep 17 00:00:00 2001 +From: Karolina Surma +Date: Wed, 26 Feb 2025 10:43:44 +0100 +Subject: [PATCH] Patch test_theming to accomodate for Fedora-added theme + +--- + tests/test_theming/test_theming.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_theming/test_theming.py b/tests/test_theming/test_theming.py +index 173e0c9..515e546 100644 +--- a/tests/test_theming/test_theming.py ++++ b/tests/test_theming/test_theming.py +@@ -58,7 +58,7 @@ def test_theme_api(app: SphinxTestApp) -> None: + ] + + # test Theme class API +- assert set(app.registry.html_themes.keys()) == set(themes) ++ assert set(app.registry.html_themes.keys()) >= set(themes) + assert app.registry.html_themes['test-theme'] == ( + app.srcdir / 'test_theme' / 'test-theme' + ) +-- +2.48.1 + diff --git a/tests/include-sphinxcontrib-jquery/main.fmf b/tests/include-sphinxcontrib-jquery/main.fmf new file mode 100644 index 0000000..e447827 --- /dev/null +++ b/tests/include-sphinxcontrib-jquery/main.fmf @@ -0,0 +1,11 @@ +summary: run the basic documentation build +test: | + sphinx-build -M html source/ build/ && + grep '