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 index e859f97..bf51472 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,20 @@ /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 diff --git a/13527.patch b/13527.patch new file mode 100644 index 0000000..f253845 --- /dev/null +++ b/13527.patch @@ -0,0 +1,314 @@ +From 93312460e37be0ba1acbbefa553bfc25f4fc5ea9 Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+aa-turner@users.noreply.github.com> +Date: Sun, 27 Apr 2025 21:00:40 +0100 +Subject: [PATCH 1/9] Fix tests for Python 3.14a7+ + +--- + tests/test_extensions/test_ext_autodoc.py | 2 +- + tests/test_extensions/test_ext_autodoc_configs.py | 1 - + 2 files changed, 1 insertion(+), 2 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autodoc.py b/tests/test_extensions/test_ext_autodoc.py +index a06c1bbe30d..bdcd6ef2b95 100644 +--- a/tests/test_extensions/test_ext_autodoc.py ++++ b/tests/test_extensions/test_ext_autodoc.py +@@ -941,7 +941,7 @@ def test_autodoc_special_members(app): + actual = do_autodoc(app, 'class', 'target.Class', options) + assert list(filter(lambda l: '::' in l, actual)) == [ + '.. py:class:: Class(arg)', +- ' .. py:attribute:: Class.__annotations__', ++ ' .. py:attribute:: Class.__annotations_cache__', + ' .. py:attribute:: Class.__dict__', + ' .. py:method:: Class.__init__(arg)', + ' .. py:attribute:: Class.__module__', +diff --git a/tests/test_extensions/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py +index ab7539190e0..d520e7f9cfe 100644 +--- a/tests/test_extensions/test_ext_autodoc_configs.py ++++ b/tests/test_extensions/test_ext_autodoc_configs.py +@@ -1368,7 +1368,6 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', +- ' :type: int', + '', + ' docstring', + '', + +From 523f290134f644b115e18e347dce093fa0fbd662 Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+aa-turner@users.noreply.github.com> +Date: Sun, 27 Apr 2025 21:03:35 +0100 +Subject: [PATCH 2/9] Fix tests for Python 3.14a7+ + +--- + tests/test_extensions/test_ext_autodoc_configs.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_extensions/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py +index d520e7f9cfe..2f8dc75d082 100644 +--- a/tests/test_extensions/test_ext_autodoc_configs.py ++++ b/tests/test_extensions/test_ext_autodoc_configs.py +@@ -1368,6 +1368,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', ++ ' :type: int', + '', + ' docstring', + '', +@@ -1440,7 +1441,6 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', +- ' :type: myint', + '', + ' docstring', + '', + +From a81bcf834822fac1cf96a2ab43c5b0d260ec532b Mon Sep 17 00:00:00 2001 +From: James Addison +Date: Tue, 6 May 2025 22:06:24 +0100 +Subject: [PATCH 3/9] Tests: make test expectations pyversion-conditional + +Relates-to commits 93312460e37be0ba1acbbefa553bfc25f4fc5ea9, 523f290134f644b115e18e347dce093fa0fbd662. +--- + tests/test_extensions/test_ext_autodoc.py | 6 +++++- + tests/test_extensions/test_ext_autodoc_configs.py | 10 +++++++++- + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autodoc.py b/tests/test_extensions/test_ext_autodoc.py +index bdcd6ef2b95..d7cef59056e 100644 +--- a/tests/test_extensions/test_ext_autodoc.py ++++ b/tests/test_extensions/test_ext_autodoc.py +@@ -938,10 +938,14 @@ def test_autodoc_special_members(app): + } + if sys.version_info >= (3, 13, 0, 'alpha', 5): + options['exclude-members'] = '__static_attributes__,__firstlineno__' ++ if sys.version_info >= (3, 14, 0, 'alpha', 7): ++ annotations_attributes = [' .. py:attribute:: Class.__annotations_cache__'] ++ else: ++ annotations_attributes = [' .. py:attribute:: Class.__annotations__'] + actual = do_autodoc(app, 'class', 'target.Class', options) + assert list(filter(lambda l: '::' in l, actual)) == [ + '.. py:class:: Class(arg)', +- ' .. py:attribute:: Class.__annotations_cache__', ++ ] + annotations_attributes + [ + ' .. py:attribute:: Class.__dict__', + ' .. py:method:: Class.__init__(arg)', + ' .. py:attribute:: Class.__module__', +diff --git a/tests/test_extensions/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py +index 2f8dc75d082..f449bb57809 100644 +--- a/tests/test_extensions/test_ext_autodoc_configs.py ++++ b/tests/test_extensions/test_ext_autodoc_configs.py +@@ -1348,6 +1348,10 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + # default + options = {'members': None} + actual = do_autodoc(app, 'module', 'target.autodoc_type_aliases', options) ++ if sys.version_info >= (3, 14, 0, 'alpha', 7): ++ attr2_typeinfo = [] ++ else: ++ attr2_typeinfo = [' :type: int'] + assert list(actual) == [ + '', + '.. py:module:: target.autodoc_type_aliases', +@@ -1368,7 +1372,6 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', +- ' :type: int', + '', + ' docstring', + '', +@@ -1421,6 +1424,10 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + 'io.StringIO': 'my.module.StringIO', + } + actual = do_autodoc(app, 'module', 'target.autodoc_type_aliases', options) ++ if sys.version_info >= (3, 14, 0, 'alpha', 7): ++ attr2_typeinfo = [] ++ else: ++ attr2_typeinfo = [' :type: myint'] + assert list(actual) == [ + '', + '.. py:module:: target.autodoc_type_aliases', +@@ -1441,6 +1448,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', ++ ] + attr2_typeinfo + [ + '', + ' docstring', + '', + +From 26e7a6435ad9840345455f35f62c063cb588bba7 Mon Sep 17 00:00:00 2001 +From: James Addison +Date: Tue, 6 May 2025 22:16:42 +0100 +Subject: [PATCH 4/9] Tests: fixup: actually insert updated expectation + +Relates-to commit a81bcf834822fac1cf96a2ab43c5b0d260ec532b. +--- + tests/test_extensions/test_ext_autodoc_configs.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/tests/test_extensions/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py +index f449bb57809..fe2561aea00 100644 +--- a/tests/test_extensions/test_ext_autodoc_configs.py ++++ b/tests/test_extensions/test_ext_autodoc_configs.py +@@ -1372,6 +1372,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', ++ ] + attr2_typeinfo + [ + '', + ' docstring', + '', + +From 52c7010c4b673898af115d3a86728274a8dd620d Mon Sep 17 00:00:00 2001 +From: James Addison +Date: Tue, 6 May 2025 22:19:30 +0100 +Subject: [PATCH 5/9] Tests: linting: use iterable unpacking as suggested by + `ruff` + +--- + tests/test_extensions/test_ext_autodoc_configs.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py +index fe2561aea00..39fdc454e31 100644 +--- a/tests/test_extensions/test_ext_autodoc_configs.py ++++ b/tests/test_extensions/test_ext_autodoc_configs.py +@@ -1372,7 +1372,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', +- ] + attr2_typeinfo + [ ++ *attr2_typeinfo, + '', + ' docstring', + '', +@@ -1449,7 +1449,7 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + '', + ' .. py:attribute:: Foo.attr2', + ' :module: target.autodoc_type_aliases', +- ] + attr2_typeinfo + [ ++ *attr2_typeinfo, + '', + ' docstring', + '', + +From 7b3ce9b642e636fe2ec58f1e090dc79d51b1f2f0 Mon Sep 17 00:00:00 2001 +From: James Addison +Date: Tue, 6 May 2025 22:21:24 +0100 +Subject: [PATCH 6/9] Tests: linting: use iterable unpacking as suggested by + `ruff` (uno mas) + +--- + tests/test_extensions/test_ext_autodoc.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_extensions/test_ext_autodoc.py b/tests/test_extensions/test_ext_autodoc.py +index d7cef59056e..4f38634cf51 100644 +--- a/tests/test_extensions/test_ext_autodoc.py ++++ b/tests/test_extensions/test_ext_autodoc.py +@@ -945,7 +945,7 @@ def test_autodoc_special_members(app): + actual = do_autodoc(app, 'class', 'target.Class', options) + assert list(filter(lambda l: '::' in l, actual)) == [ + '.. py:class:: Class(arg)', +- ] + annotations_attributes + [ ++ *annotations_attributes, + ' .. py:attribute:: Class.__dict__', + ' .. py:method:: Class.__init__(arg)', + ' .. py:attribute:: Class.__module__', + +From 386ba32af878b23c5857be588f932fe2af4a2d88 Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> +Date: Mon, 12 May 2025 17:36:04 +0100 +Subject: [PATCH 7/9] Style + +--- + tests/test_extensions/test_ext_autodoc.py | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autodoc.py b/tests/test_extensions/test_ext_autodoc.py +index 4f38634cf51..012e708a2f3 100644 +--- a/tests/test_extensions/test_ext_autodoc.py ++++ b/tests/test_extensions/test_ext_autodoc.py +@@ -939,9 +939,9 @@ def test_autodoc_special_members(app): + if sys.version_info >= (3, 13, 0, 'alpha', 5): + options['exclude-members'] = '__static_attributes__,__firstlineno__' + if sys.version_info >= (3, 14, 0, 'alpha', 7): +- annotations_attributes = [' .. py:attribute:: Class.__annotations_cache__'] ++ annotations_attributes = (' .. py:attribute:: Class.__annotations_cache__',) + else: +- annotations_attributes = [' .. py:attribute:: Class.__annotations__'] ++ annotations_attributes = (' .. py:attribute:: Class.__annotations__',) + actual = do_autodoc(app, 'class', 'target.Class', options) + assert list(filter(lambda l: '::' in l, actual)) == [ + '.. py:class:: Class(arg)', + +From 1f381ec05015fcbc695d1f0991e77241daef49c7 Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+aa-turner@users.noreply.github.com> +Date: Mon, 12 May 2025 17:38:28 +0100 +Subject: [PATCH 8/9] fstr + +--- + tests/test_extensions/test_ext_autodoc.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autodoc.py b/tests/test_extensions/test_ext_autodoc.py +index 012e708a2f3..7aa12db3c32 100644 +--- a/tests/test_extensions/test_ext_autodoc.py ++++ b/tests/test_extensions/test_ext_autodoc.py +@@ -939,13 +939,13 @@ def test_autodoc_special_members(app): + if sys.version_info >= (3, 13, 0, 'alpha', 5): + options['exclude-members'] = '__static_attributes__,__firstlineno__' + if sys.version_info >= (3, 14, 0, 'alpha', 7): +- annotations_attributes = (' .. py:attribute:: Class.__annotations_cache__',) ++ ann_attr_name = '__annotations_cache__' + else: +- annotations_attributes = (' .. py:attribute:: Class.__annotations__',) ++ ann_attr_name = '__annotations__' + actual = do_autodoc(app, 'class', 'target.Class', options) + assert list(filter(lambda l: '::' in l, actual)) == [ + '.. py:class:: Class(arg)', +- *annotations_attributes, ++ f' .. py:attribute:: Class.{ann_attr_name}', + ' .. py:attribute:: Class.__dict__', + ' .. py:method:: Class.__init__(arg)', + ' .. py:attribute:: Class.__module__', + +From 0bd1f9d1615c20078677b48a09180c4b68e27796 Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+aa-turner@users.noreply.github.com> +Date: Mon, 12 May 2025 17:40:13 +0100 +Subject: [PATCH 9/9] tuple + +--- + tests/test_extensions/test_ext_autodoc_configs.py | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autodoc_configs.py b/tests/test_extensions/test_ext_autodoc_configs.py +index 39fdc454e31..c88496ee506 100644 +--- a/tests/test_extensions/test_ext_autodoc_configs.py ++++ b/tests/test_extensions/test_ext_autodoc_configs.py +@@ -1349,9 +1349,9 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + options = {'members': None} + actual = do_autodoc(app, 'module', 'target.autodoc_type_aliases', options) + if sys.version_info >= (3, 14, 0, 'alpha', 7): +- attr2_typeinfo = [] ++ attr2_typeinfo = () + else: +- attr2_typeinfo = [' :type: int'] ++ attr2_typeinfo = (' :type: int',) + assert list(actual) == [ + '', + '.. py:module:: target.autodoc_type_aliases', +@@ -1426,9 +1426,9 @@ def test_autodoc_type_aliases(app: SphinxTestApp) -> None: + } + actual = do_autodoc(app, 'module', 'target.autodoc_type_aliases', options) + if sys.version_info >= (3, 14, 0, 'alpha', 7): +- attr2_typeinfo = [] ++ attr2_typeinfo = () + else: +- attr2_typeinfo = [' :type: myint'] ++ attr2_typeinfo = (' :type: myint',) + assert list(actual) == [ + '', + '.. py:module:: target.autodoc_type_aliases', diff --git a/13610.patch b/13610.patch new file mode 100644 index 0000000..7cebb25 --- /dev/null +++ b/13610.patch @@ -0,0 +1,49 @@ +From 69998bdf8848614eb52ddd80923ffde7af64c0a8 Mon Sep 17 00:00:00 2001 +From: James Addison +Date: Mon, 2 Jun 2025 21:55:15 +0100 +Subject: [PATCH] tests: update LaTeX label test expectations from docutils + r10151 + +--- + tests/test_builders/test_build_latex.py | 11 +++++++++-- + 1 file changed, 9 insertions(+), 2 deletions(-) + +diff --git a/tests/test_builders/test_build_latex.py b/tests/test_builders/test_build_latex.py +index 0d1c607462d..37e708a021e 100644 +--- a/tests/test_builders/test_build_latex.py ++++ b/tests/test_builders/test_build_latex.py +@@ -12,6 +12,7 @@ + from subprocess import CalledProcessError + from typing import TYPE_CHECKING + ++import docutils + import pygments + import pytest + +@@ -1959,10 +1960,16 @@ def test_latex_labels(app: SphinxTestApp) -> None: + + result = (app.outdir / 'projectnamenotset.tex').read_text(encoding='utf8') + ++ # ref: docutils r10151 ++ if docutils.__version_info__[:2] < (0, 22): ++ figure_id, table_id = 'id1', 'id2' ++ else: ++ figure_id, table_id = 'id2', 'id3' ++ + # figures + assert ( + r'\caption{labeled figure}' +- r'\label{\detokenize{index:id1}}' ++ r'\label{\detokenize{index:' + figure_id + '}}' + r'\label{\detokenize{index:figure2}}' + r'\label{\detokenize{index:figure1}}' + r'\end{figure}' +@@ -1988,7 +1995,7 @@ def test_latex_labels(app: SphinxTestApp) -> None: + # tables + assert ( + r'\sphinxcaption{table caption}' +- r'\label{\detokenize{index:id2}}' ++ r'\label{\detokenize{index:' + table_id + '}}' + r'\label{\detokenize{index:table2}}' + r'\label{\detokenize{index:table1}}' + ) in result diff --git a/13883.patch b/13883.patch new file mode 100644 index 0000000..480de01 --- /dev/null +++ b/13883.patch @@ -0,0 +1,30 @@ +From 4d842a2c4909fe360172826a46eb88b442f44858 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?G=C3=BCnter=20Milde?= +Date: Tue, 9 Sep 2025 16:17:15 +0200 +Subject: [PATCH] Fix test setup for directive tests. + +Set the "parent" attribute of RSTState instances to the `document` +instead of None. The attribute holds the state machines "current node" +which is initialized to the `document` in `RSTStateMachine.run()` and +required since Docutils 0.22.1 in `RSTState.nested_parse()` to correctly +support sections in nested parsing. +--- + tests/test_util/test_util_docutils_sphinx_directive.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tests/test_util/test_util_docutils_sphinx_directive.py b/tests/test_util/test_util_docutils_sphinx_directive.py +index ecfcab0..7a26e96 100644 +--- a/tests/test_util/test_util_docutils_sphinx_directive.py ++++ b/tests/test_util/test_util_docutils_sphinx_directive.py +@@ -38,7 +38,7 @@ def make_directive_and_state( + inliner = Inliner() + inliner.init_customizations(state.document.settings) + state.inliner = inliner +- state.parent = None ++ state.parent = state.document + state.memo = SimpleNamespace( + document=state.document, + language=english, +-- +2.51.1 + diff --git a/8962398b761c3d85a.patch b/8962398b761c3d85a.patch new file mode 100644 index 0000000..3b49f67 --- /dev/null +++ b/8962398b761c3d85a.patch @@ -0,0 +1,29 @@ +From 8962398b761c3d85a7c74b6f789b3ffb127bde0c Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+AA-Turner@users.noreply.github.com> +Date: Thu, 6 Mar 2025 16:03:44 +0000 +Subject: [PATCH] autosummary: Update test for Python 3.14.0a5+ (#13418) + +`types.UnionType` and `typing.Union` have been merged. +--- + tests/test_extensions/test_ext_autosummary.py | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/tests/test_extensions/test_ext_autosummary.py b/tests/test_extensions/test_ext_autosummary.py +index 35dc7d180ef..c807ddba3d1 100644 +--- a/tests/test_extensions/test_ext_autosummary.py ++++ b/tests/test_extensions/test_ext_autosummary.py +@@ -447,8 +447,12 @@ def test_autosummary_generate_content_for_module_imported_members(app): + ] + assert context['functions'] == ['bar'] + assert context['all_functions'] == ['_quux', 'bar'] +- assert context['classes'] == ['Class', 'Foo'] +- assert context['all_classes'] == ['Class', 'Foo', '_Baz'] ++ if sys.version_info >= (3, 14, 0, 'alpha', 5): ++ assert context['classes'] == ['Class', 'Foo', 'Union'] ++ assert context['all_classes'] == ['Class', 'Foo', 'Union', '_Baz'] ++ else: ++ assert context['classes'] == ['Class', 'Foo'] ++ assert context['all_classes'] == ['Class', 'Foo', '_Baz'] + assert context['exceptions'] == ['Exc'] + assert context['all_exceptions'] == ['Exc', '_Exc'] + assert context['attributes'] == ['CONSTANT1', 'qux', 'quuz', 'non_imported_member'] diff --git a/Make-the-first-party-extensions-optional.patch b/Make-the-first-party-extensions-optional.patch new file mode 100644 index 0000000..d7b039e --- /dev/null +++ b/Make-the-first-party-extensions-optional.patch @@ -0,0 +1,205 @@ +From f3fba803e1c39232f86acc9a21657cad171ce71b 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 + +Co-authored-by: Miro Hrončok +--- + pyproject.toml | 33 ++++++++++++++++---- + 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, 48 insertions(+), 13 deletions(-) + +diff --git a/pyproject.toml b/pyproject.toml +index c4b1b6d..4e59e90 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.20,<0.22", +@@ -88,8 +82,35 @@ 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]", ++] + docs = [ + "sphinxcontrib-websupport", ++ "sphinx[extensions]", + ] + lint = [ + "ruff==0.9.9", +diff --git a/sphinx/application.py b/sphinx/application.py +index fe0e8bd..dcb3d75 100644 +--- a/sphinx/application.py ++++ b/sphinx/application.py +@@ -284,7 +284,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: +@@ -478,7 +478,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 +@@ -486,7 +486,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 ce52a03..3bc90d5 100644 +--- a/sphinx/registry.py ++++ b/sphinx/registry.py +@@ -519,7 +519,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 +@@ -540,10 +540,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 ec143fa..e6d9da1 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 cc21142..16382e3 100644 +--- a/tests/test_builders/test_build_html_maths.py ++++ b/tests/test_builders/test_build_html_maths.py +@@ -37,6 +37,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', +@@ -62,6 +63,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', +@@ -75,6 +77,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.48.1 + 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/display-typing-objects-correctly-with-Python-310.patch b/display-typing-objects-correctly-with-Python-310.patch deleted file mode 100644 index 50f98f2..0000000 --- a/display-typing-objects-correctly-with-Python-310.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 648af37d864b5d76bbe833785d664e40d56d9768 Mon Sep 17 00:00:00 2001 -From: Takeshi KOMIYA -Date: Wed, 11 Aug 2021 01:36:46 +0900 -Subject: [PATCH] Fix #9537: autodoc: Some typing.* objects are broken - -At the HEAD of 3.10, the implementation of `typing._GenericAlias` has -been changed to have correct _name and __name__. ---- - sphinx/util/typing.py | 6 ++++-- - 2 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py -index f856950bf2..df5277ae7b 100644 ---- a/sphinx/util/typing.py -+++ b/sphinx/util/typing.py -@@ -148,7 +148,9 @@ def _restify_py37(cls: Optional[Type]) -> str: - args = ', '.join(restify(a) for a in cls.__args__) - return ':obj:`~typing.Union`\\ [%s]' % args - elif inspect.isgenericalias(cls): -- if getattr(cls, '_name', None): -+ if isinstance(cls.__origin__, typing._SpecialForm): -+ text = restify(cls.__origin__) # type: ignore -+ elif getattr(cls, '_name', None): - if cls.__module__ == 'typing': - text = ':class:`~%s.%s`' % (cls.__module__, cls._name) - else: -@@ -344,7 +346,7 @@ def _stringify_py37(annotation: Any) -> str: - if not isinstance(annotation.__args__, (list, tuple)): - # broken __args__ found - pass -- elif qualname == 'Union': -+ elif qualname in ('Optional', 'Union'): - if len(annotation.__args__) > 1 and annotation.__args__[-1] is NoneType: - if len(annotation.__args__) > 2: - args = ', '.join(stringify(a) for a in annotation.__args__[:-1]) diff --git a/e01e42f5fc738815b.patch b/e01e42f5fc738815b.patch new file mode 100644 index 0000000..a42c216 --- /dev/null +++ b/e01e42f5fc738815b.patch @@ -0,0 +1,40 @@ +From e01e42f5fc738815b8499c4ede30c6caf130f0a4 Mon Sep 17 00:00:00 2001 +From: Adam Turner <9087854+aa-turner@users.noreply.github.com> +Date: Wed, 19 Mar 2025 20:11:35 +0000 +Subject: [PATCH] Fix ``INVALID_BUILTIN_CLASSES`` test for Python 3.14.0a6+ + +--- + tests/test_util/test_util_typing.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tests/test_util/test_util_typing.py b/tests/test_util/test_util_typing.py +index 35ee240f7b8..8a561c378ed 100644 +--- a/tests/test_util/test_util_typing.py ++++ b/tests/test_util/test_util_typing.py +@@ -205,7 +205,7 @@ def test_is_invalid_builtin_class() -> None: + zipfile.Path, + zipfile.CompleteDirs, + ) +- if sys.version_info[:2] >= (3, 13): ++ if sys.version_info[:2] == (3, 13): + invalid_types += ( + # pathlib + Path, +@@ -217,7 +217,7 @@ def test_is_invalid_builtin_class() -> None: + ) + + invalid_names = {(cls.__module__, cls.__qualname__) for cls in invalid_types} +- if sys.version_info[:2] < (3, 13): ++ if sys.version_info[:2] != (3, 13): + invalid_names |= { + ('pathlib._local', 'Path'), + ('pathlib._local', 'PosixPath'), +@@ -231,7 +231,7 @@ def test_is_invalid_builtin_class() -> None: + ('zipfile._path', 'Path'), + ('zipfile._path', 'CompleteDirs'), + } +- assert _INVALID_BUILTIN_CLASSES.keys() == invalid_names ++ assert set(_INVALID_BUILTIN_CLASSES) == invalid_names + + + def test_restify_type_hints_containers(): diff --git a/fix-tests-with-pygments-210.patch b/fix-tests-with-pygments-210.patch deleted file mode 100644 index 8577fc0..0000000 --- a/fix-tests-with-pygments-210.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 06ec5b027d01e8f7717e4687f89f335e83545ff9 Mon Sep 17 00:00:00 2001 -From: Takeshi KOMIYA -Date: Wed, 18 Aug 2021 01:50:08 +0900 -Subject: [PATCH] Fix test: Tests has been broken with pygments-2.10+ - ---- - tests/test_intl.py | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/tests/test_intl.py b/tests/test_intl.py -index 7791b4aeed5..e9e7ee9e24b 100644 ---- a/tests/test_intl.py -+++ b/tests/test_intl.py -@@ -12,6 +12,7 @@ - import os - import re - -+import pygments - import pytest - from babel.messages import mofile, pofile - from babel.messages.catalog import Catalog -@@ -30,6 +31,8 @@ - }, - ) - -+pygments_version = tuple(int(v) for v in pygments.__version__.split('.')) -+ - - def read_po(pathname): - with pathname.open() as f: -@@ -1060,8 +1063,13 @@ def test_additional_targets_should_not_be_translated(app): - assert_count(expected_expr, result, 1) - - # C code block with lang should not be translated but be *C* highlighted -- expected_expr = ("""#include """ -- """<stdio.h>""") -+ if pygments_version < (2, 10, 0): -+ expected_expr = ("""#include """ -+ """<stdio.h>""") -+ else: -+ expected_expr = ("""#include""" -+ """ """ -+ """<stdio.h>""") - assert_count(expected_expr, result, 1) - - # literal block in list item should not be translated -@@ -1138,8 +1146,13 @@ def test_additional_targets_should_be_translated(app): - assert_count(expected_expr, result, 1) - - # C code block with lang should be translated and be *C* highlighted -- expected_expr = ("""#include """ -- """<STDIO.H>""") -+ if pygments_version < (2, 10, 0): -+ expected_expr = ("""#include """ -+ """<STDIO.H>""") -+ else: -+ expected_expr = ("""#include""" -+ """ """ -+ """<STDIO.H>""") - assert_count(expected_expr, result, 1) - - # literal block in list item should be translated diff --git a/generate-correct-reference-to-parent-class.patch b/generate-correct-reference-to-parent-class.patch deleted file mode 100644 index 1ad91d9..0000000 --- a/generate-correct-reference-to-parent-class.patch +++ /dev/null @@ -1,36 +0,0 @@ -From d0c97e9eb57126e38b7b018a101df1ecb1ad12b8 Mon Sep 17 00:00:00 2001 -From: Takeshi KOMIYA -Date: Sat, 31 Jul 2021 01:41:35 +0900 -Subject: [PATCH] Fix #9504: autodoc: generate incorrect reference to the - parent class - -Autodoc generates incorrect references to the parent class the target -class inherites the class having `_name` attribute. It conciders the -parent is a kind of SpecialForm'ed class by mistake. This uses -`isinstance(X, SpecialForm)` to check that. - -Note: SpecialForm became a class since Python 3.7. ---- - CHANGES | 2 ++ - sphinx/util/typing.py | 8 ++------ - 2 files changed, 4 insertions(+), 6 deletions(-) - -diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py -index 012d32e524..f856950bf2 100644 ---- a/sphinx/util/typing.py -+++ b/sphinx/util/typing.py -@@ -171,12 +171,8 @@ def _restify_py37(cls: Optional[Type]) -> str: - text += r"\ [%s]" % ", ".join(restify(a) for a in cls.__args__) - - return text -- elif hasattr(cls, '_name'): -- # SpecialForm -- if cls.__module__ == 'typing': -- return ':obj:`~%s.%s`' % (cls.__module__, cls._name) -- else: -- return ':obj:`%s.%s`' % (cls.__module__, cls._name) -+ elif isinstance(cls, typing._SpecialForm): -+ return ':obj:`~%s.%s`' % (cls.__module__, cls._name) - elif hasattr(cls, '__qualname__'): - if cls.__module__ == 'typing': - return ':class:`~%s.%s`' % (cls.__module__, cls.__qualname__) 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 227350b..ed77d83 100644 --- a/python-sphinx.spec +++ b/python-sphinx.spec @@ -1,66 +1,69 @@ -# When bootstrapping sphinx, we don't yet have sphinxcontrib-websupport -# Without it we have warnings in docs, but it's not a hard dependency -%bcond_without websupport +# 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_without tests +%bcond tests 1 # Unset -s on python shebang to allow RPM-installed sphinx to be used # with user-installed modules (#1903763) -%global py3_shebang_flags %nil +%undefine _py3_shebang_s # No internet in Koji -%bcond_with internet +%bcond internet 0 -%if 0%{?rhel} > 7 # Build without BuildRequires ImageMagick, to skip imgconverter tests -%bcond_with imagemagick_tests -%else -%bcond_without imagemagick_tests -%endif +%bcond imagemagick_tests %{undefined rhel} # During texlive updates, sometimes the latex environment is unstable -%bcond_without latex_tests - -%global upstream_name Sphinx +# NOTE: LaTeX tests are never run when building for ELN. +%bcond latex_tests 1 Name: python-sphinx -%global general_version 4.1.2 +%global general_version 8.2.3 #global prerel ... %global upstream_version %{general_version}%{?prerel} Version: %{general_version}%{?prerel:~%{prerel}} -Release: 3%{?dist} +Release: %autorelease Epoch: 1 Summary: Python documentation generator -# Unless otherwise noted, the license for code is BSD -# sphinx/util/inspect.py has bits licensed with PSF license v2 (Python) +# Unless otherwise noted, the license for code is BSD-2-Clause # sphinx/themes/haiku/static/haiku.css_t has bits licensed with MIT -# JS: JQuery, Underscore, css3-mediaqueries are available under MIT -License: BSD and Python and MIT +License: BSD-2-Clause AND MIT URL: https://www.sphinx-doc.org/ -Source0: %{pypi_source %{upstream_name} %{upstream_version}} +Source: %{pypi_source sphinx %{upstream_version}} # Allow extra themes to exist. We pull in python3-sphinx-theme-alabaster # which causes that test to fail. -Patch1: sphinx-test_theming.diff -# `types.Union` was renamed to `types.UnionType` on the HEAD of Python 3.10 -# (refs: python/cpython#27342). Afterwars, sphinx-build crashes because of ImportError -# Merged upstream: https://github.com/sphinx-doc/sphinx/pull/9513 -Patch2: rename-types-Union-to-types-UnionType.patch -# Fix test failures with python-pygments 2.10+ -# https://github.com/sphinx-doc/sphinx/pull/9557 -Patch3: fix-tests-with-pygments-210.patch -# Some objects under ``typing`` module are not displayed well -# with the HEAD of Python 3.10.0rc2+ -# Merged upstream: https://github.com/sphinx-doc/sphinx/pull/9538 -Patch4: display-typing-objects-correctly-with-Python-310.patch -# Render typing.Annotated correctly with Python 3.10 -# Merged upstream: https://github.com/sphinx-doc/sphinx/pull/9590 -Patch5: render-typing-Annotated-correctly-with-Python-3.10.patch -# Generate correct reference to the parent class -# Merged upstream: https://github.com/sphinx-doc/sphinx/pull/9515/ -Patch6: generate-correct-reference-to-parent-class.patch +Patch: sphinx-test_theming.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 + +# Compatibility with Python 3.14 +Patch: https://github.com/sphinx-doc/sphinx/commit/8962398b761c3d85a.patch +Patch: https://github.com/sphinx-doc/sphinx/commit/e01e42f5fc738815b.patch +Patch: https://github.com/sphinx-doc/sphinx/pull/13527.patch +# Compatibility with docutils 0.22+ +Patch: https://github.com/sphinx-doc/sphinx/pull/13610.patch +Patch: https://github.com/sphinx-doc/sphinx/pull/13883.patch BuildArch: noarch @@ -68,13 +71,15 @@ BuildRequires: make BuildRequires: python%{python3_pkgversion}-devel BuildRequires: pyproject-rpm-macros -%if %{with websupport} +%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 -# for fixes -BuildRequires: dos2unix - %if %{with tests} # tests import _testcapi BuildRequires: python%{python3_pkgversion}-test @@ -88,36 +93,68 @@ BuildRequires: texinfo BuildRequires: ImageMagick %endif -%if %{with latex_tests} +%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(article.cls) +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(color.sty) -BuildRequires: tex(ctablestack.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(FreeSerif.otf) 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(substitutefont.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(utf8x.def) +BuildRequires: tex(varwidth.sty) BuildRequires: tex(wrapfig.sty) +BuildRequires: tex(xcolor.sty) %endif %endif @@ -156,11 +193,17 @@ Summary: Python documentation generator Recommends: graphviz Recommends: ImageMagick +Recommends: make -# Bundled JavaScript -Provides: bundled(jquery) = 3.5.1 -Provides: bundled(underscore) = 1.3.1 -Provides: bundled(css3-mediaqueries) = 1.0 +# 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 @@ -191,39 +234,93 @@ the Python docs: 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(article.cls) +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(color.sty) -Requires: tex(ctablestack.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(FreeSerif.otf) 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(substitutefont.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(utf8x.def) +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 @@ -238,11 +335,12 @@ 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 +License: BSD-2-Clause Recommends: python%{python3_pkgversion}-sphinx = %{epoch}:%{version}-%{release} %description doc @@ -253,23 +351,46 @@ 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 reST and HTML formats. +This package contains documentation in the HTML format. %prep -%autosetup -n %{upstream_name}-%{upstream_version} -p1 +%autosetup -n sphinx-%{upstream_version} -p1 -# fix line encoding of bundled jquery.js -dos2unix -k ./sphinx/themes/basic/static/jquery.js - -%if %{without imagemagick_tests} -rm tests/test_ext_imgconverter.py +# 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 -# Don't measure coverage: -sed -i '/pytest-cov/d' setup.py -# Not needed on recent Pythons, https://github.com/sphinx-doc/sphinx/pull/8483 -sed -i '/typed_ast/d' setup.py +# Support for docutils 0.22+ +sed -i -e 's/docutils>=0.20,<0.22/docutils>=0.20,<0.23/' pyproject.toml + +# 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 tests/test_extensions/test_ext_imgconverter.py +%endif %generate_buildrequires @@ -285,6 +406,10 @@ 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 .. popd @@ -311,12 +436,6 @@ do done popd -# Deliver rst files -rm -rf doc/_build -sed -i 's|python ../sphinx-build.py|/usr/bin/sphinx-build|' doc/Makefile -mv doc reST -rm reST/make.bat - # Move language files to /usr/share; # patch to support this incorporated in 0.6.6 pushd %{buildroot}%{python3_sitelib} @@ -350,526 +469,48 @@ mkdir %{buildroot}%{python3_sitelib}/sphinxcontrib %if %{with tests} %check # Currently, all linkcheck tests and test_latex_images need internet -%pytest \ +# 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 "not linkcheck and not test_latex_images" \ -%endif -; +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 + +%pytest -k "${k}" +%endif %files -n python%{python3_pkgversion}-sphinx -f sphinx.lang -%license LICENSE -%doc AUTHORS CHANGES EXAMPLES README.rst +%license LICENSE.rst +%doc README.rst %{_bindir}/sphinx-* %{python3_sitelib}/sphinx/ %dir %{python3_sitelib}/sphinxcontrib/ -%{python3_sitelib}/Sphinx-%{upstream_version}.dist-info/ +%{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 -%license LICENSE -%doc html reST +%license LICENSE.rst +%doc html %changelog -* 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 +%autochangelog diff --git a/rename-types-Union-to-types-UnionType.patch b/rename-types-Union-to-types-UnionType.patch deleted file mode 100644 index a6b8c35..0000000 --- a/rename-types-Union-to-types-UnionType.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 8b2031c747e7c7e6b845ee2e3db47de617d33cc6 Mon Sep 17 00:00:00 2001 -From: Takeshi KOMIYA -Date: Fri, 30 Jul 2021 01:27:38 +0900 -Subject: [PATCH] Fix #9512: sphinx-build: crashed with the HEAD of Python 3.10 - -Recently, `types.Union` was renamed to `types.UnionType` on the HEAD -of 3.10 (refs: python/cpython#27342). After this change, sphinx-build -has been crashed because of ImportError. ---- - sphinx/util/typing.py | 12 ++++++------ - 1 files changed, 8 insertions(+), 6 deletions(-) - -diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py -index f1723c035a..012d32e524 100644 ---- a/sphinx/util/typing.py -+++ b/sphinx/util/typing.py -@@ -33,10 +33,10 @@ def _evaluate(self, globalns: Dict, localns: Dict) -> Any: - ref = _ForwardRef(self.arg) - return ref._eval_type(globalns, localns) - --if sys.version_info > (3, 10): -- from types import Union as types_Union --else: -- types_Union = None -+try: -+ from types import UnionType # type: ignore # python 3.10 or above -+except ImportError: -+ UnionType = None - - if False: - # For type annotation -@@ -114,7 +114,7 @@ def restify(cls: Optional[Type]) -> str: - return ':class:`%s`' % INVALID_BUILTIN_CLASSES[cls] - elif inspect.isNewType(cls): - return ':class:`%s`' % cls.__name__ -- elif types_Union and isinstance(cls, types_Union): -+ elif UnionType and isinstance(cls, UnionType): - if len(cls.__args__) > 1 and None in cls.__args__: - args = ' | '.join(restify(a) for a in cls.__args__ if a) - return 'Optional[%s]' % args -@@ -337,7 +337,7 @@ def _stringify_py37(annotation: Any) -> str: - elif hasattr(annotation, '__origin__'): - # instantiated generic provided by a user - qualname = stringify(annotation.__origin__) -- elif types_Union and isinstance(annotation, types_Union): # types.Union (for py3.10+) -+ elif UnionType and isinstance(annotation, UnionType): # types.Union (for py3.10+) - qualname = 'types.Union' - else: - # we weren't able to extract the base type, appending arguments would diff --git a/render-typing-Annotated-correctly-with-Python-3.10.patch b/render-typing-Annotated-correctly-with-Python-3.10.patch deleted file mode 100644 index 041de41..0000000 --- a/render-typing-Annotated-correctly-with-Python-3.10.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b82d3ef05a75b6dad9679f8746db5ef89785c7c0 Mon Sep 17 00:00:00 2001 -From: Takeshi KOMIYA -Date: Sun, 29 Aug 2021 15:40:49 +0900 -Subject: [PATCH] Fix #9589: autodoc: typing.Annotated has wrongly been - rendered - -At the HEAD of 3.10, the implementation of `typing.Annotated` has -been changed to have __qualname__. ---- - CHANGES | 4 ++-- - sphinx/util/typing.py | 2 ++ - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/sphinx/util/typing.py b/sphinx/util/typing.py -index df5277ae7b..35f808211b 100644 ---- a/sphinx/util/typing.py -+++ b/sphinx/util/typing.py -@@ -306,6 +306,8 @@ def stringify(annotation: Any) -> str: - return 'None' - elif annotation in INVALID_BUILTIN_CLASSES: - return INVALID_BUILTIN_CLASSES[annotation] -+ elif str(annotation).startswith('typing.Annotated'): # for py310+ -+ pass - elif (getattr(annotation, '__module__', None) == 'builtins' and - getattr(annotation, '__qualname__', None)): - return annotation.__qualname__ 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 6773ca8..df7d90d 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (Sphinx-4.1.2.tar.gz) = 1fe998de7b8fc47989e186835748b7fb5d0b523db95434515b6af29b56d28372f2f92ab917c27cbed51aa0cad13175eda8bf4fc93a8726eb5e93e9bc6995e457 +SHA512 (sphinx-8.2.3.tar.gz) = e7cbe251e4f44eb59ef6fd84d3918b1b29941943b75265da75aa9533379746e76331ac8a3ba8c1694840adeebd6886e0fc8eebf5407271aaeddf39594d8e1523 diff --git a/sphinx-test_theming.diff b/sphinx-test_theming.diff deleted file mode 100644 index 966528a..0000000 --- a/sphinx-test_theming.diff +++ /dev/null @@ -1,12 +0,0 @@ -diff -ru Sphinx-1.7.6/tests/test_theming.py Sphinx-1.7.6_patched/tests/test_theming.py ---- Sphinx-1.7.6/tests/test_theming.py 2018-07-16 11:24:40.000000000 +0200 -+++ Sphinx-1.7.6_patched/tests/test_theming.py 2018-07-20 15:17:35.049263077 +0200 -@@ -31,7 +31,7 @@ - themes.append('alabaster') - - # test Theme class API -- assert set(app.html_themes.keys()) == set(themes) -+ assert set(app.html_themes.keys()) >= set(themes) - assert app.html_themes['test-theme'] == app.srcdir / 'test_theme' / 'test-theme' - assert app.html_themes['ziptheme'] == app.srcdir / 'ziptheme.zip' - assert app.html_themes['staticfiles'] == app.srcdir / 'test_theme' / 'staticfiles' 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 '