Compare commits

..

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

24 changed files with 1269 additions and 429 deletions

1
.fmf/version Normal file
View File

@ -0,0 +1 @@
1

49
.gitignore vendored
View File

@ -1 +1,48 @@
SOURCES/Sphinx-1.7.6.tar.gz
/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

View File

@ -1 +0,0 @@
3caa8c2d3f9b283e32df259baee885c0340c5d02 SOURCES/Sphinx-1.7.6.tar.gz

69
11774.patch Normal file
View File

@ -0,0 +1,69 @@
From bc8939b34037f81b8610f3b26caec128ee20a2f4 Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Tue, 28 Nov 2023 14:43:58 +0100
Subject: [PATCH] Adjust the expected string to match Python 3.11+ changed
output
---
tests/test_ext_autodoc_configs.py | 21 +++++++++++++++++----
1 file changed, 17 insertions(+), 4 deletions(-)
diff --git a/tests/test_ext_autodoc_configs.py b/tests/test_ext_autodoc_configs.py
index 45bc729b73e..0994c08e899 100644
--- a/tests/test_ext_autodoc_configs.py
+++ b/tests/test_ext_autodoc_configs.py
@@ -11,6 +11,7 @@
from .test_ext_autodoc import do_autodoc
IS_PYPY = platform.python_implementation() == 'PyPy'
+IS_PY311_AND_LATER = sys.version_info >= (3, 11)
@contextmanager
@@ -1627,7 +1628,10 @@ def test_autodoc_default_options(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' in actual
- assert ' list of weak references to the object (if defined)' in actual
+ if IS_PY311_AND_LATER:
+ assert ' list of weak references to the object' in actual
+ else:
+ assert ' list of weak references to the object (if defined)' in actual
# :exclude-members: None - has no effect. Unlike :members:,
# :special-members:, etc. where None == "include all", here None means
@@ -1651,7 +1655,10 @@ def test_autodoc_default_options(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' in actual
- assert ' list of weak references to the object (if defined)' in actual
+ if IS_PY311_AND_LATER:
+ assert ' list of weak references to the object' in actual
+ else:
+ assert ' list of weak references to the object (if defined)' in actual
assert ' .. py:method:: CustomIter.snafucate()' in actual
assert ' Makes this snafucated.' in actual
@@ -1698,7 +1705,10 @@ def test_autodoc_default_options_with_values(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' not in actual
- assert ' list of weak references to the object (if defined)' not in actual
+ if IS_PY311_AND_LATER:
+ assert ' list of weak references to the object' not in actual
+ else:
+ assert ' list of weak references to the object (if defined)' not in actual
# with :exclude-members:
app.config.autodoc_default_options = {
@@ -1722,6 +1732,9 @@ def test_autodoc_default_options_with_values(app):
assert ' Iterate squares of each value.' in actual
if not IS_PYPY:
assert ' .. py:attribute:: CustomIter.__weakref__' not in actual
- assert ' list of weak references to the object (if defined)' not in actual
+ if IS_PY311_AND_LATER:
+ assert ' list of weak references to the object' not in actual
+ else:
+ assert ' list of weak references to the object (if defined)' not in actual
assert ' .. py:method:: CustomIter.snafucate()' not in actual
assert ' Makes this snafucated.' not in actual

View File

@ -0,0 +1,51 @@
From 22caeb2631922c3f5e3f4bb45d8c1610edb6ef74 Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Thu, 22 Aug 2024 12:33:34 +0200
Subject: [PATCH] Fix autodoc tests with Python 3.12.3+
---
tests/test_ext_autodoc.py | 5 ++++-
tests/test_ext_autodoc_configs.py | 4 ++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/tests/test_ext_autodoc.py b/tests/test_ext_autodoc.py
index 7062763..5f63214 100644
--- a/tests/test_ext_autodoc.py
+++ b/tests/test_ext_autodoc.py
@@ -1407,7 +1407,10 @@ def test_enum_class(app):
options = {"members": None}
actual = do_autodoc(app, 'class', 'target.enums.EnumCls', options)
- if sys.version_info[:2] >= (3, 12):
+ if sys.version_info[:3] >= (3, 12, 3):
+ args = ('(value, names=<not given>, *values, module=None, '
+ 'qualname=None, type=None, start=1, boundary=None)')
+ elif sys.version_info[:2] >= (3, 12):
args = ('(value, names=None, *values, module=None, '
'qualname=None, type=None, start=1, boundary=None)')
elif sys.version_info[:2] >= (3, 11):
diff --git a/tests/test_ext_autodoc_configs.py b/tests/test_ext_autodoc_configs.py
index 0994c08..a240c4b 100644
--- a/tests/test_ext_autodoc_configs.py
+++ b/tests/test_ext_autodoc_configs.py
@@ -1273,7 +1273,7 @@ def test_autodoc_type_aliases(app):
' docstring',
'',
'',
- '.. py:function:: mult(x: int, y: int) -> int',
+ '.. py:function:: mult(x: myint, y: myint) -> myint',
' mult(x: float, y: float) -> float',
' :module: target.autodoc_type_aliases',
'',
@@ -1344,7 +1344,7 @@ def test_autodoc_type_aliases(app):
' docstring',
'',
'',
- '.. py:function:: mult(x: myint, y: myint) -> myint',
+ '.. py:function:: mult(x: myint, y: myint) -> myint',
' mult(x: float, y: float) -> float',
' :module: target.autodoc_type_aliases',
'',
--
2.46.0

View File

@ -0,0 +1,204 @@
From 9699465414515f0eba76d05069e755b5bcf34eef Mon Sep 17 00:00:00 2001
From: Karolina Surma <ksurma@redhat.com>
Date: Mon, 15 Jan 2024 16:19:32 +0100
Subject: [PATCH] Make the first party extensions optional, add [extensions]
extra
Co-authored-by: Miro Hrončok <miro@hroncok.cz>
---
pyproject.toml | 33 +++++++++++++++++++++++++++------
sphinx/application.py | 6 +++---
sphinx/registry.py | 9 ++++++---
sphinx/testing/fixtures.py | 6 ++++++
tests/test_api_translator.py | 2 ++
tests/test_build_html.py | 3 +++
6 files changed, 47 insertions(+), 12 deletions(-)
diff --git a/pyproject.toml b/pyproject.toml
index 8f93701..41c28c5 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -55,12 +55,6 @@ classifiers = [
"Topic :: Utilities",
]
dependencies = [
- "sphinxcontrib-applehelp",
- "sphinxcontrib-devhelp",
- "sphinxcontrib-jsmath",
- "sphinxcontrib-htmlhelp>=2.0.0",
- "sphinxcontrib-serializinghtml>=1.1.9",
- "sphinxcontrib-qthelp",
"Jinja2>=3.0",
"Pygments>=2.14",
"docutils>=0.18.1,<0.21",
@@ -76,8 +70,35 @@ dependencies = [
dynamic = ["version"]
[project.optional-dependencies]
+applehelp = [
+ "sphinxcontrib-applehelp",
+]
+devhelp = [
+ "sphinxcontrib-devhelp",
+]
+jsmath = [
+ "sphinxcontrib-jsmath",
+]
+htmlhelp = [
+ "sphinxcontrib-htmlhelp>=2.0.0",
+]
+serializinghtml = [
+ "sphinxcontrib-serializinghtml>=1.1.9",
+]
+qthelp = [
+ "sphinxcontrib-qthelp",
+]
+extensions = [
+ "sphinx[applehelp]",
+ "sphinx[devhelp]",
+ "sphinx[jsmath]",
+ "sphinx[htmlhelp]",
+ "sphinx[serializinghtml]",
+ "sphinx[qthelp]",
+]
docs = [
"sphinxcontrib-websupport",
+ "sphinx[extensions]",
]
lint = [
"flake8>=3.5.0",
diff --git a/sphinx/application.py b/sphinx/application.py
index d5fbaa9..b030dab 100644
--- a/sphinx/application.py
+++ b/sphinx/application.py
@@ -226,7 +226,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:
@@ -395,7 +395,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
@@ -403,7 +403,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 501661d..96d4554 100644
--- a/sphinx/registry.py
+++ b/sphinx/registry.py
@@ -430,7 +430,7 @@ class SphinxComponentRegistry:
def add_html_theme(self, name: str, theme_path: str) -> None:
self.html_themes[name] = 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
@@ -446,9 +446,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 = getattr(mod, 'setup', None)
if setup is None:
diff --git a/sphinx/testing/fixtures.py b/sphinx/testing/fixtures.py
index 0cc4882..f57f709 100644
--- a/sphinx/testing/fixtures.py
+++ b/sphinx/testing/fixtures.py
@@ -22,6 +22,7 @@ DEFAULT_ENABLED_MARKERS = [
'sphinx(builder, testroot=None, freshenv=False, confoverrides=None, tags=None,'
' docutilsconf=None, parallel=0): arguments to initialize the sphinx test application.'
),
+ 'sphinxcontrib(...): required sphinxcontrib.* extensions',
'test_params(shared_result=...): test parameters.',
]
@@ -67,6 +68,11 @@ def app_params(request: Any, test_params: dict, shared_result: SharedResult,
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 = {}
diff --git a/tests/test_api_translator.py b/tests/test_api_translator.py
index 9f2bd44..81575b7 100644
--- a/tests/test_api_translator.py
+++ b/tests/test_api_translator.py
@@ -36,6 +36,7 @@ def test_singlehtml_set_translator_for_singlehtml(app, status, warning):
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, status, warning):
translator_class = app.builder.get_translator_class()
@@ -43,6 +44,7 @@ def test_pickle_set_translator_for_pickle(app, status, warning):
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, status, warning):
translator_class = app.builder.get_translator_class()
diff --git a/tests/test_build_html.py b/tests/test_build_html.py
index 07f101d..c512a33 100644
--- a/tests/test_build_html.py
+++ b/tests/test_build_html.py
@@ -1544,6 +1544,7 @@ def test_html_math_renderer_is_imgmath(app, status, warning):
assert app.builder.math_renderer_name == 'imgmath'
+@pytest.mark.sphinxcontrib('serializinghtml', 'jsmath')
@pytest.mark.sphinx('html', testroot='basic',
confoverrides={'extensions': ['sphinxcontrib.jsmath',
'sphinx.ext.imgmath']})
@@ -1564,6 +1565,7 @@ def test_html_math_renderer_is_duplicated2(app, status, warning):
assert app.builder.math_renderer_name == 'imgmath' # The another one is chosen
+@pytest.mark.sphinxcontrib('jsmath')
@pytest.mark.sphinx('html', testroot='basic',
confoverrides={'extensions': ['sphinxcontrib.jsmath',
'sphinx.ext.imgmath'],
@@ -1572,6 +1574,7 @@ def test_html_math_renderer_is_chosen(app, status, warning):
assert app.builder.math_renderer_name == 'imgmath'
+@pytest.mark.sphinxcontrib('jsmath')
@pytest.mark.sphinx('html', testroot='basic',
confoverrides={'extensions': ['sphinxcontrib.jsmath',
'sphinx.ext.mathjax'],
--
2.43.0

View File

@ -0,0 +1,265 @@
From ec721111162a24a960b8c725340e183f970d4a1c Mon Sep 17 00:00:00 2001
From: Lumir Balhar <lbalhar@redhat.com>
Date: Mon, 10 Jun 2024 16:53:08 +0200
Subject: [PATCH] Patch-out snowballstemmer and replace it with a dummy
implementation
---
pyproject.toml | 1 -
sphinx/search/da.py | 2 +-
sphinx/search/de.py | 2 +-
sphinx/search/dummystemmer.py | 8 ++++++++
sphinx/search/en.py | 2 +-
sphinx/search/es.py | 2 +-
sphinx/search/fi.py | 2 +-
sphinx/search/fr.py | 2 +-
sphinx/search/hu.py | 2 +-
sphinx/search/it.py | 2 +-
sphinx/search/nl.py | 2 +-
sphinx/search/no.py | 2 +-
sphinx/search/pt.py | 2 +-
sphinx/search/ro.py | 2 +-
sphinx/search/ru.py | 2 +-
sphinx/search/sv.py | 2 +-
sphinx/search/tr.py | 2 +-
sphinx/search/zh.py | 2 +-
18 files changed, 24 insertions(+), 17 deletions(-)
create mode 100644 sphinx/search/dummystemmer.py
diff --git a/pyproject.toml b/pyproject.toml
index 0d19435..32cf5bf 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -58,7 +58,6 @@ dependencies = [
"Jinja2>=3.0",
"Pygments>=2.14",
"docutils>=0.18.1,<0.21",
- "snowballstemmer>=2.0",
"babel>=2.9",
"alabaster>=0.7,<0.8",
"imagesize>=1.3",
diff --git a/sphinx/search/da.py b/sphinx/search/da.py
index 9b5b9f5..0ff9a56 100644
--- a/sphinx/search/da.py
+++ b/sphinx/search/da.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/de.py b/sphinx/search/de.py
index 1c253fd..76af961 100644
--- a/sphinx/search/de.py
+++ b/sphinx/search/de.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/dummystemmer.py b/sphinx/search/dummystemmer.py
new file mode 100644
index 0000000..46f8fb7
--- /dev/null
+++ b/sphinx/search/dummystemmer.py
@@ -0,0 +1,8 @@
+# Dummy stemmer implementation doing nothing
+
+class stemmer:
+ def __init__(self, *args, **kwargs):
+ pass
+
+ def stemWord(self, word):
+ return word
diff --git a/sphinx/search/en.py b/sphinx/search/en.py
index caa6f66..1e3fbb8 100644
--- a/sphinx/search/en.py
+++ b/sphinx/search/en.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage
diff --git a/sphinx/search/es.py b/sphinx/search/es.py
index c5d9a5c..96956be 100644
--- a/sphinx/search/es.py
+++ b/sphinx/search/es.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/fi.py b/sphinx/search/fi.py
index 70114f8..5de87ad 100644
--- a/sphinx/search/fi.py
+++ b/sphinx/search/fi.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/fr.py b/sphinx/search/fr.py
index 01319dd..9b43d74 100644
--- a/sphinx/search/fr.py
+++ b/sphinx/search/fr.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/hu.py b/sphinx/search/hu.py
index eed08db..4dde945 100644
--- a/sphinx/search/hu.py
+++ b/sphinx/search/hu.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/it.py b/sphinx/search/it.py
index 7bf712b..9e44732 100644
--- a/sphinx/search/it.py
+++ b/sphinx/search/it.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/nl.py b/sphinx/search/nl.py
index a610b12..f85bec7 100644
--- a/sphinx/search/nl.py
+++ b/sphinx/search/nl.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/no.py b/sphinx/search/no.py
index a69380b..8f9be62 100644
--- a/sphinx/search/no.py
+++ b/sphinx/search/no.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/pt.py b/sphinx/search/pt.py
index 908a417..ee266ef 100644
--- a/sphinx/search/pt.py
+++ b/sphinx/search/pt.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/ro.py b/sphinx/search/ro.py
index b6c9d67..ee77c77 100644
--- a/sphinx/search/ro.py
+++ b/sphinx/search/ro.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict, Set
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage
diff --git a/sphinx/search/ru.py b/sphinx/search/ru.py
index b8412c1..bda63bd 100644
--- a/sphinx/search/ru.py
+++ b/sphinx/search/ru.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/sv.py b/sphinx/search/sv.py
index 88cc560..52e4983 100644
--- a/sphinx/search/sv.py
+++ b/sphinx/search/sv.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage, parse_stop_word
diff --git a/sphinx/search/tr.py b/sphinx/search/tr.py
index f4a865c..934fd41 100644
--- a/sphinx/search/tr.py
+++ b/sphinx/search/tr.py
@@ -4,7 +4,7 @@ from __future__ import annotations
from typing import TYPE_CHECKING, Dict, Set
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage
diff --git a/sphinx/search/zh.py b/sphinx/search/zh.py
index 2a3a6e7..e3ee9d0 100644
--- a/sphinx/search/zh.py
+++ b/sphinx/search/zh.py
@@ -6,7 +6,7 @@ import os
import re
from typing import TYPE_CHECKING, Dict, List
-import snowballstemmer
+from . import dummystemmer as snowballstemmer
from sphinx.search import SearchLanguage
--
2.45.2

View File

@ -1,149 +0,0 @@
diff --git a/sphinx/builders/html.py b/sphinx/builders/html.py
index 8b63352..1a95c77 100644
--- a/sphinx/builders/html.py
+++ b/sphinx/builders/html.py
@@ -14,7 +14,6 @@ import posixpath
import re
import sys
import warnings
-from hashlib import md5
from os import path
import docutils
@@ -40,7 +39,7 @@ from sphinx.highlighting import PygmentsBridge
from sphinx.locale import _, __, l_
from sphinx.search import js_index
from sphinx.theming import HTMLThemeFactory
-from sphinx.util import jsonimpl, logging, status_iterator
+from sphinx.util import jsonimpl, logging, status_iterator, md5
from sphinx.util.console import bold, darkgreen # type: ignore
from sphinx.util.docutils import is_html5_writer_available, new_document
from sphinx.util.fileutil import copy_asset
diff --git a/sphinx/ext/graphviz.py b/sphinx/ext/graphviz.py
index 08707b7..9d53a0e 100644
--- a/sphinx/ext/graphviz.py
+++ b/sphinx/ext/graphviz.py
@@ -13,7 +13,6 @@
import codecs
import posixpath
import re
-from hashlib import sha1
from os import path
from subprocess import Popen, PIPE
@@ -25,7 +24,7 @@ from six import text_type
import sphinx
from sphinx.errors import SphinxError
from sphinx.locale import _, __
-from sphinx.util import logging
+from sphinx.util import logging, sha1
from sphinx.util.i18n import search_image_for_language
from sphinx.util.osutil import ensuredir, ENOENT, EPIPE, EINVAL
diff --git a/sphinx/ext/imgmath.py b/sphinx/ext/imgmath.py
index 5f9d7a1..23f89ed 100644
--- a/sphinx/ext/imgmath.py
+++ b/sphinx/ext/imgmath.py
@@ -14,7 +14,6 @@ import posixpath
import re
import shutil
import tempfile
-from hashlib import sha1
from os import path
from subprocess import Popen, PIPE
@@ -26,7 +25,7 @@ from sphinx.errors import SphinxError, ExtensionError
from sphinx.ext.mathbase import get_node_equation_number
from sphinx.ext.mathbase import setup_math as mathbase_setup, wrap_displaymath
from sphinx.locale import _
-from sphinx.util import logging
+from sphinx.util import logging, sha1
from sphinx.util.osutil import ensuredir, ENOENT, cd
from sphinx.util.png import read_png_depth, write_png_depth
from sphinx.util.pycompat import sys_encoding
diff --git a/sphinx/ext/inheritance_diagram.py b/sphinx/ext/inheritance_diagram.py
index 14593ac..9576d07 100644
--- a/sphinx/ext/inheritance_diagram.py
+++ b/sphinx/ext/inheritance_diagram.py
@@ -39,7 +39,6 @@ r"""
import inspect
import re
import sys
-from hashlib import md5
from docutils import nodes
from docutils.parsers.rst import Directive, directives
@@ -50,7 +49,7 @@ import sphinx
from sphinx.ext.graphviz import render_dot_html, render_dot_latex, \
render_dot_texinfo, figure_wrapper
from sphinx.pycode import ModuleAnalyzer
-from sphinx.util import force_decode
+from sphinx.util import force_decode, md5
if False:
# For type annotation
diff --git a/sphinx/transforms/post_transforms/images.py b/sphinx/transforms/post_transforms/images.py
index 6dd135e..d1c50bd 100644
--- a/sphinx/transforms/post_transforms/images.py
+++ b/sphinx/transforms/post_transforms/images.py
@@ -10,14 +10,13 @@
"""
import os
-from hashlib import sha1
from math import ceil
from docutils import nodes
from six import text_type
from sphinx.transforms import SphinxTransform
-from sphinx.util import epoch_to_rfc1123, rfc1123_to_epoch
+from sphinx.util import epoch_to_rfc1123, rfc1123_to_epoch, sha1
from sphinx.util import logging, requests
from sphinx.util.images import guess_mimetype, get_image_extension, parse_data_uri
from sphinx.util.osutil import ensuredir, movefile
diff --git a/sphinx/util/__init__.py b/sphinx/util/__init__.py
index dda3fb0..9c1c441 100644
--- a/sphinx/util/__init__.py
+++ b/sphinx/util/__init__.py
@@ -11,6 +11,7 @@
from __future__ import absolute_import
import fnmatch
+import hashlib
import os
import posixpath
import re
@@ -164,6 +165,32 @@ class FilenameUniqDict(dict):
# type: (Set[unicode]) -> None
self._existing = state
+def md5(data=b'', **kwargs):
+ """Wrapper around hashlib.md5
+ Attempt call with 'usedforsecurity=False' if we get a ValueError, which happens when
+ OpenSSL FIPS mode is enabled:
+ ValueError: error:060800A3:digital envelope routines:EVP_DigestInit_ex:disabled for fips
+ See: https://github.com/sphinx-doc/sphinx/issues/7611
+ """
+
+ try:
+ return hashlib.md5(data, **kwargs) # type: ignore
+ except ValueError:
+ return hashlib.md5(data, **kwargs, usedforsecurity=False) # type: ignore
+
+
+def sha1(data=b'', **kwargs):
+ """Wrapper around hashlib.sha1
+ Attempt call with 'usedforsecurity=False' if we get a ValueError
+ See: https://github.com/sphinx-doc/sphinx/issues/7611
+ """
+
+ try:
+ return hashlib.sha1(data, **kwargs) # type: ignore
+ except ValueError:
+ return hashlib.sha1(data, **kwargs, usedforsecurity=False) # type: ignore
+
+
def copy_static_entry(source, targetdir, builder, context={},
exclude_matchers=(), level=0):

View File

@ -1,13 +0,0 @@
diff --git a/tests/test_build_latex.py b/tests/test_build_latex.py
index 55f48cd..78ccecd 100644
--- a/tests/test_build_latex.py
+++ b/tests/test_build_latex.py
@@ -1009,7 +1009,7 @@ def test_latex_raw_directive(app, status, warning):
assert 'HTML: abc ghi' in result
assert 'LaTeX: abc def ghi' in result
-
+@pytest.mark.xfail(reason="this test requires internet connection")
@pytest.mark.sphinx('latex', testroot='images')
def test_latex_remote_images(app, status, warning):
app.builder.build_all()

5
gating.yaml Normal file
View File

@ -0,0 +1,5 @@
--- !Policy
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

5
plan.fmf Normal file
View File

@ -0,0 +1,5 @@
discover:
how: fmf
execute:
how: tmt

View File

@ -1,99 +1,132 @@
# Build without BuildRequires ImageMagick, to skip imgconverter tests
%bcond_with imagemagick_tests
# 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}
# Also, we don't have all the tests requirements
%bcond tests 1
%global 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
# No internet in Koji
%bcond internet 0
# Build without BuildRequires ImageMagick, to skip imgconverter tests
%bcond imagemagick_tests %{undefined rhel}
# Same for filelock -- we don't want it in RHEL just to run a handful of tests here
%bcond filelock_tests %{undefined rhel}
# During texlive updates, sometimes the latex environment is unstable
%bcond latex_tests 1
Name: python-sphinx
Version: 1.7.6
Release: 3%{?dist}
%global general_version 7.2.6
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 10%{?dist}
Epoch: 1
Summary: Python documentation generator
# Unless otherwise noted, the license for code is BSD
# sphinx/util/stemmer.py Public Domain
# sphinx/pycode/pgen2 Python
# jquery (MIT or GPLv2)
License: BSD and Public Domain and Python and (MIT or GPLv2)
URL: http://sphinx-doc.org/
Source0: https://files.pythonhosted.org/packages/source/S/%{upstream_name}/%{upstream_name}-%{version}.tar.gz
# 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
# Make the test_latex_remote_images an expected failure
# since it requires an active internet connection
# to fetch images, which is not possible in koji or mock.
Patch0: xfail-test_latex_remote_images.patch
URL: https://www.sphinx-doc.org/
Source: %{pypi_source sphinx %{upstream_version}}
# Building the documentation of other projects under FIPS mode
# might fail in some cases due to the md5 algorithm being disabled.
# Backport an upstream fix to resolve that:
# https://github.com/sphinx-doc/sphinx/pull/7614
Patch1: fix-build-under-fips.patch
# Allow extra themes to exist. We pull in python3-sphinx-theme-alabaster
# which causes that test to fail.
Patch: sphinx-test_theming.diff
# 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
# Fix the expected test docstring to match output in Python 3.11.7, 3.12.1 and later
# Proposed upstream.
Patch: https://github.com/sphinx-doc/sphinx/pull/11774.patch
# Downstream-only patch replacing snowballstemmer
# with a dummy implementation doing nothing.
Patch: Patch-out-snowballstemmer.patch
# Account for the changes is enum and type aliases representations
Patch: Fix-autodoc-tests-with-Python-3.12.3.patch
BuildArch: noarch
# for fixes
BuildRequires: dos2unix
BuildRequires: make
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: pyproject-rpm-macros
# for testing
%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: texinfo
BuildRequires: graphviz
BuildRequires: texinfo
%if %{with imagemagick_tests}
BuildRequires: ImageMagick
%endif
%if %{with latex_tests}
BuildRequires: texlive-collection-fontsrecommended
BuildRequires: texlive-collection-latex
BuildRequires: texlive-dvipng
BuildRequires: texlive-dvisvgm
BuildRequires: texlive-ucs
BuildRequires: tex(cmap.sty)
BuildRequires: tex(ecrm1000.tfm)
BuildRequires: tex(footnote.sty)
BuildRequires: tex(framed.sty)
BuildRequires: tex(multirow.sty)
BuildRequires: tex(parskip.sty)
BuildRequires: tex(titlesec.sty)
BuildRequires: tex(threeparttable.sty)
BuildRequires: tex(upquote.sty)
BuildRequires: tex(wrapfig.sty)
BuildRequires: tex(capt-of.sty)
BuildRequires: tex(needspace.sty)
BuildRequires: tex(eqparbox.sty)
BuildRequires: tex(amsmath.sty)
BuildRequires: tex(amsthm.sty)
BuildRequires: tex(amssymb.sty)
BuildRequires: tex(amsfonts.sty)
BuildRequires: tex(bm.sty)
BuildRequires: tex(palatino.sty)
BuildRequires: tex(multirow.sty)
BuildRequires: tex(eqparbox.sty)
BuildRequires: tex(atbegshi.sty)
BuildRequires: tex(anyfontsize.sty)
BuildRequires: tex(luatex85.sty)
BuildRequires: tex(fncychap.sty)
BuildRequires: tex(tabulary.sty)
BuildRequires: tex(polyglossia.sty)
BuildRequires: tex(article.cls)
BuildRequires: tex(capt-of.sty)
BuildRequires: tex(cmap.sty)
BuildRequires: tex(color.sty)
BuildRequires: tex(ctablestack.sty)
BuildRequires: tex(eu1enc.def)
BuildRequires: python3-devel
BuildRequires: python3-babel
BuildRequires: python3-setuptools
BuildRequires: python3-docutils
BuildRequires: python3-jinja2
BuildRequires: python3-pygments
BuildRequires: python3-nose
BuildRequires: python3-pytest
BuildRequires: python3-mock
BuildRequires: python3-html5lib
BuildRequires: python3-whoosh
BuildRequires: python3-snowballstemmer
BuildRequires: python3-six
BuildRequires: python3-sphinx_rtd_theme
BuildRequires: python3-sphinx-theme-alabaster
BuildRequires: python3-sphinxcontrib-websupport
BuildRequires: python3-packaging
BuildRequires: python3-imagesize
BuildRequires: python3-requests
BuildRequires: tex(fancyhdr.sty)
BuildRequires: tex(fancyvrb.sty)
BuildRequires: tex(fncychap.sty)
BuildRequires: tex(framed.sty)
BuildRequires: tex(FreeSerif.otf)
BuildRequires: tex(geometry.sty)
BuildRequires: tex(hyperref.sty)
BuildRequires: tex(kvoptions.sty)
BuildRequires: tex(luatex85.sty)
BuildRequires: tex(needspace.sty)
BuildRequires: tex(parskip.sty)
BuildRequires: tex(polyglossia.sty)
BuildRequires: tex(tabulary.sty)
BuildRequires: tex(titlesec.sty)
BuildRequires: tex(upquote.sty)
BuildRequires: tex(utf8x.def)
BuildRequires: tex(wrapfig.sty)
%endif
%endif
%description
@ -125,38 +158,23 @@ the Python docs:
snippets and inclusion of appropriately formatted docstrings.
%package -n python2-sphinx
%package -n python%{python3_pkgversion}-sphinx
Summary: Python documentation generator
Requires: python-sphinx-locale = %{?epoch}:%{version}-%{release}
Requires: python2-babel
Requires: python2-docutils
Requires: python2-jinja2
Requires: python2-pygments
Requires: python2-mock
Requires: python2-snowballstemmer
Requires: python2-sphinx_rtd_theme
Requires: python2-six
Requires: python2-sphinx-theme-alabaster
Requires: python2-imagesize
Requires: python2-requests
Requires: python2-packaging
Requires: python2-typing
Requires: environment(modules)
# Needed to get rid of the alternatives config installed in f24 and f25
# versions of the package
Requires(pre): /usr/sbin/alternatives
Recommends: graphviz
Recommends: ImageMagick
Obsoletes: python-sphinx <= 1.2.3
Obsoletes: python-sphinxcontrib-napoleon < 0.5
Provides: python-sphinxcontrib-napoleon = %{?epoch}:%{version}-%{release}
Obsoletes: python2-Sphinx <= 1.3.1-4
Provides: python2-Sphinx = %{?epoch}:%{version}-%{release}
Provides: python(Sphinx) = %{?epoch}:%{version}-%{release}
%{?python_provide:%python_provide python2-sphinx}
Conflicts: python3-sphinx < %{?epoch}:%{version}-%{release}
%description -n python2-sphinx
# 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
@ -185,46 +203,44 @@ the Python docs:
snippets and inclusion of appropriately formatted docstrings.
%package latex
Summary: LaTeX builder dependencies for %{name}
Requires: python(Sphinx) = %{?epoch}:%{version}-%{release}
%package -n python%{python3_pkgversion}-sphinx-latex
Summary: LaTeX builder dependencies for python%{python3_pkgversion}-sphinx
Requires: python%{python3_pkgversion}-sphinx = %{epoch}:%{version}-%{release}
Requires: texlive-collection-fontsrecommended
Requires: texlive-collection-latex
Requires: texlive-dvipng
Requires: texlive-dvisvgm
Requires: texlive-ucs
Requires: tex(cmap.sty)
Requires: tex(ecrm1000.tfm)
Requires: tex(footnote.sty)
Requires: tex(framed.sty)
Requires: tex(multirow.sty)
Requires: tex(parskip.sty)
Requires: tex(titlesec.sty)
Requires: tex(threeparttable.sty)
Requires: tex(upquote.sty)
Requires: tex(wrapfig.sty)
Requires: tex(capt-of.sty)
Requires: tex(needspace.sty)
Requires: tex(eqparbox.sty)
Requires: tex(amsmath.sty)
Requires: tex(amsthm.sty)
Requires: tex(amssymb.sty)
Requires: tex(amsfonts.sty)
Requires: tex(bm.sty)
Requires: tex(palatino.sty)
Requires: tex(multirow.sty)
Requires: tex(eqparbox.sty)
Requires: tex(atbegshi.sty)
Requires: tex(anyfontsize.sty)
Requires: tex(luatex85.sty)
Requires: tex(fncychap.sty)
Requires: tex(tabulary.sty)
Requires: tex(polyglossia.sty)
Requires: tex(article.cls)
Requires: tex(capt-of.sty)
Requires: tex(cmap.sty)
Requires: tex(color.sty)
Requires: tex(ctablestack.sty)
Requires: tex(eu1enc.def)
Obsoletes: python3-sphinx-latex < 1.4.4-2
Requires: tex(fancyhdr.sty)
Requires: tex(fancyvrb.sty)
Requires: tex(fncychap.sty)
Requires: tex(framed.sty)
Requires: tex(FreeSerif.otf)
Requires: tex(geometry.sty)
Requires: tex(hyperref.sty)
Requires: tex(kvoptions.sty)
Requires: tex(luatex85.sty)
Requires: tex(needspace.sty)
Requires: tex(parskip.sty)
Requires: tex(polyglossia.sty)
Requires: tex(tabulary.sty)
Requires: tex(titlesec.sty)
Requires: tex(upquote.sty)
Requires: tex(utf8x.def)
Requires: tex(wrapfig.sty)
%description latex
# 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
@ -236,69 +252,10 @@ This package pulls in the TeX dependencies needed by Sphinx's LaTeX
builder.
%package -n python3-sphinx
Summary: Python documentation generator
Group: Development/Tools
Requires: python-sphinx-locale = %{?epoch}:%{version}-%{release}
Requires: python3-babel
Requires: python3-docutils
Requires: python3-jinja2
Requires: python3-pygments
Requires: python3-mock
Requires: python3-snowballstemmer
Requires: python3-sphinx_rtd_theme
Requires: python3-sphinx-theme-alabaster
Requires: python3-sphinxcontrib-websupport
Requires: python3-imagesize
Requires: python3-requests
Requires: python3-six
Requires: python3-packaging
Recommends: graphviz
Recommends: ImageMagick
Requires: environment(modules)
# Needed to get rid of the alternatives config installed in f24 and f25
# versions of the package
Requires(pre): /usr/sbin/alternatives
Obsoletes: python3-sphinxcontrib-napoleon < 0.3.0
Provides: python3-sphinxcontrib-napoleon = %{?epoch}:%{version}-%{release}
Provides: python(Sphinx) = %{?epoch}:%{version}-%{release}
%{?python_provide:%python_provide python3-sphinx}
Conflicts: python2-Sphinx < %{?epoch}:%{version}-%{release}
%description -n python3-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
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.
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.
%package doc
Summary: Documentation for %{name}
Group: Documentation
License: BSD
Recommends: python(Sphinx) = %{?epoch}:%{version}-%{release}
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
@ -308,58 +265,68 @@ 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.
%package locale
Summary: Locale files for %{name}
Group: Development/Tools
License: BSD
%description locale
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 locale files for Sphinx
%prep
%autosetup -n %{upstream_name}-%{version}%{?prerel} -p1
%autosetup -n sphinx-%{upstream_version} -p1
# fix line encoding of bundled jquery.js
dos2unix -k ./sphinx/themes/basic/static/jquery.js
%if ! %{with imagemagick_tests}
%if %{without imagemagick_tests}
rm tests/test_ext_imgconverter.py
%endif
%if %{without filelock_tests}
sed -i '/filelock/d' pyproject.toml
rm tests/test_build_linkcheck.py tests/test_ext_intersphinx.py
%endif
%if %{defined rhel}
# unwanted dependency in RHEL, https://bugzilla.redhat.com/show_bug.cgi?id=1945182
sed -i '/html5lib/d' pyproject.toml
%endif
# Sphinx' tests import from each other, this feature is not supported by
# the 'importlib' import mode in pytest. Upstream mitigates this by invoking
# `python -m pytest` rather than `pytest` directly, but in the context of the
# RPM build we explicitly want to test the installed library rather than the
# one from PWD.
# https://github.com/sphinx-doc/sphinx/issues/11740
sed -i '/"--import-mode=importlib",/d' pyproject.toml
%generate_buildrequires
%pyproject_buildrequires -r %{?with_tests:-x test}
%build
%py3_build
%pyproject_wheel
export PYTHONPATH=$PWD
pushd doc
export SPHINXBUILD="%{__python3} ../sphinx/cmd/build.py"
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
%install
%py3_install
%pyproject_install
# we keep this for backwards compatibility with Fedora:
install -d %{buildroot}%{_libexecdir}/python3-sphinx
# For backwards compatibility. Remove with care, if at all
for i in sphinx-{apidoc,autogen,build,quickstart}; do
ln -s $i %{buildroot}%{_bindir}/$i-%{python3_version}
ln -s $i %{buildroot}%{_bindir}/$i-3
ln -s %{_bindir}/$i %{buildroot}%{_libexecdir}/python3-sphinx/$i
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
@ -369,21 +336,13 @@ do
done
popd
rm -f %{buildroot}%{python3_sitelib}/sphinx/locale/.DS_Store
rm -rf %{buildroot}%{python3_sitelib}/sphinx/locale/.tx
# Deliver rst files
rm -rf doc/_build
sed -i 's|python ../sphinx-build.py|/usr/bin/sphinx-build|' doc/Makefile
mv doc reST
# 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 '*/\.*' -not -name __pycache__ -printf "%f "`;
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 \
@ -394,6 +353,10 @@ do
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
@ -402,63 +365,342 @@ popd
's:\(.*/locale/\)\([^/_]\+\)\(.*\.js$\):%lang(\2) \1\2\3:' \
>> sphinx.lang
%if %{with tests}
%check
# Currently, all linkcheck tests hit external websites. Since network access
# is disabled in koji, we have to disable these.
rm tests/test_build_linkcheck.py
PYTHON=python3 make test
# 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
# In RHEL builds, skip tests which use html5lib (excluded above)
# Without snowballstememr, some tests have to be skipped as well.
k="${k-}${k+ and }not test_meta_keys_are_handled_for_language_en"
k="${k-}${k+ and }not test_stemmer"
k="${k-}${k+ and }not test_term_in_heading_and_section"
k="${k-}${k+ and }not test_IndexBuilder"
%if %{without internet}
k="${k-}${k+ and }not linkcheck"
k="${k-}${k+ and }not test_latex_images"
k="${k-}${k+ and }not test_build_latex_doc"
%endif
%pytest \
%if %{defined rhel}
--ignore tests/test_build_html.py \
--ignore tests/test_build_latex.py \
--ignore tests/test_build_texinfo.py \
--ignore tests/test_domain_std.py \
--ignore tests/test_smartquotes.py \
%endif
${k+-k }"${k-}"
%endif
%files latex
%license LICENSE
%files locale -f sphinx.lang
%license LICENSE
%dir %{_datadir}/sphinx/
%dir %{_datadir}/sphinx/locale
%dir %{_datadir}/sphinx/locale/*
%files -n python3-sphinx
%files -n python%{python3_pkgversion}-sphinx -f sphinx.lang
%license LICENSE
%doc AUTHORS CHANGES EXAMPLES README.rst
%{_bindir}/sphinx-*
%{python3_sitelib}/sphinx/
%{python3_sitelib}/Sphinx-%{version}-py%{python3_version}.egg-info/
%{_libexecdir}/python3-sphinx/
%{_mandir}/man1/sphinx-*.1*
%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-*
%files -n python%{python3_pkgversion}-sphinx-latex
# empty, this is a metapackage
%files doc
%doc html reST
%license LICENSE
%doc html
%changelog
* Tue Jul 26 2022 Tomas Orsava <torsava@redhat.com> - 1.7.6-3
- Rebuild to include the python-sphinx-latex package in the CodeReady Linux
Builder (CRB) repository
Resolves: rhbz#2081785
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 1:7.2.6-10
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Wed Oct 14 2020 Charalampos Stratakis <cstratak@redhat.com> - 1:1.7.6-2
- Fix documentation build under FIPS mode
Resolves: rhbz#1749346
* Thu Aug 22 2024 Karolina Surma <ksurma@redhat.com> - 1:7.2.6-9
- Fix build with Python 3.12.3+
* Thu Jul 19 2018 Charalampos Stratakis <cstratak@redhat.com> - 1:1.7.6-1
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 1:7.2.6-8
- Bump release for June 2024 mass rebuild
* Mon Jun 10 2024 Lumír Balhar <lbalhar@redhat.com> - 1:7.2.6-7
- Replace snowballstemmer with a dummy implementation
* Wed Jan 24 2024 Karolina Surma <ksurma@redhat.com> - 1:7.2.6-6
- Suppress traceback when importing the weakened sphinxcontrib* dependencies
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 1:7.2.6-5
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Tue Dec 12 2023 Karolina Surma <ksurma@redhat.com> - 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 <mhroncok@redhat.com> - 1:7.2.6-3
- On Fedora, BuildRequire the sphinxcontrib packages to build the documentation
* Wed Nov 08 2023 Miro Hrončok <mhroncok@redhat.com> - 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 <ksurma@redhat.com> - 1:7.2.6-1
- Update to 7.2.6
- Fixes rhbz#2232469
* Thu Sep 21 2023 Karolina Surma <ksurma@redhat.com> - 1:7.1.2-2
- Fix FTBFS with Pygments 2.16+
* Mon Aug 14 2023 Karolina Surma <ksurma@redhat.com> - 1:7.1.2-1
- Update to 7.1.2
- Fixes rhbz#2225274
* Mon Aug 07 2023 Karolina Surma <ksurma@redhat.com> - 1:7.0.1-1
- Update to 7.0.1
* Thu Jul 27 2023 Miro Hrončok <mhroncok@redhat.com> - 1:6.2.1-4
- Don't use filelock to test this package on RHEL
* Fri Jul 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:6.2.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Thu Jul 13 2023 Karolina Surma <ksurma@redhat.com> - 1:6.2.1-2
- Don't use websupport to build documentation on RHEL
* Mon Jun 26 2023 Karolina Surma <ksurma@redhat.com> - 1:6.2.1-1
- Update to 6.2.1
- Fixes rhbz#2188968
* Fri Jun 16 2023 Python Maint <python-maint@redhat.com> - 1:6.1.3-4
- Rebuilt for Python 3.12
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 1:6.1.3-3
- Bootstrap for Python 3.12
* Wed May 31 2023 Yaakov Selkowitz <yselkowi@redhat.com> - 1:6.1.3-2
- Avoid html5lib test dependency in RHEL builds
* Fri Mar 10 2023 Karolina Surma <ksurma@redhat.com> - 1:6.1.3-1
- Update to 6.1.3
- Fixes rhbz#2135122
* Thu Mar 09 2023 Karolina Surma <ksurma@redhat.com> - 1:5.3.0-4
- Fix tests related to missing setuptools and Babel 2.12
- Fixes rhbz#2176685
* Tue Jan 31 2023 Karolina Surma <ksurma@redhat.com> - 1:5.3.0-3
- Fix tests with python-pygments 2.14+
* Fri Jan 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 1:5.3.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Tue Nov 08 2022 Karolina Surma <ksurma@redhat.com> - 1:5.3.0-1
- Update to 5.3.0
- Fixes rhbz#2129546
* Mon Aug 15 2022 Karolina Surma <ksurma@redhat.com> - 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 <releng@fedoraproject.org> - 1:5.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Tue Jun 21 2022 Karolina Surma <ksurma@redhat.com> - 1:5.0.2-1
- Update to 5.0.2
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1:4.5.0-3
- Rebuilt for Python 3.11
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 1:4.5.0-2
- Bootstrap for Python 3.11
* Fri Apr 01 2022 Karolina Surma <ksurma@redhat.com> - 1:4.5.0-1
- Update to 4.5.0
- Fixes rhbz#2068924
* Tue Feb 01 2022 Karolina Surma <ksurma@redhat.com> - 1:4.4.0-1
- Update to 4.4.0
- Fixes rhbz#2033955
* Fri Jan 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.3.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Nov 29 2021 Karolina Surma <ksurma@redhat.com> - 1:4.3.1-1
- Update to 4.3.1
- Fixes rhbz#2027059
* Fri Nov 19 2021 Karolina Surma <ksurma@redhat.com> - 1:4.3.0-1
- Update to 4.3.0
- Fixes rhbz#2022111
* Fri Sep 17 2021 Karolina Surma <ksurma@redhat.com> - 1:4.2.0-1
- Update to 4.2.0
- Fixes rhbz#2003427
* Thu Sep 16 2021 Karolina Surma <ksurma@redhat.com> - 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 <ksurma@redhat.com> - 1:4.1.2-2
- Patch python-sphinx to work with python-pygments >=2.10
* Mon Aug 02 2021 Karolina Surma <ksurma@redhat.com> - 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 <releng@fedoraproject.org> - 1:4.0.2-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 11 2021 Karolina Surma <ksurma@redhat.com> - 1:4.0.2-1
- Update to 4.0.2
- Fixes rhbz#1948279
* Thu Jun 03 2021 Python Maint <python-maint@redhat.com> - 1:3.5.4-3
- Rebuilt for Python 3.10
* Wed Jun 02 2021 Python Maint <python-maint@redhat.com> - 1:3.5.4-2
- Bootstrap for Python 3.10
* Mon May 10 2021 Karolina Surma <ksurma@redhat.com> - 1:3.5.4-1
- Update to 3.5.4
- Fixes rhbz#1949477
* Thu Apr 01 2021 Karolina Surma <ksurma@redhat.com> - 1:3.5.3-1
- Update to 3.5.3
- Fixes rhbz#1941161
* Wed Mar 10 2021 Charalampos Stratakis <cstratak@redhat.com> - 1:3.5.2-1
- Update 3.5.2
- Fixes rhbz#1928459
* Wed Jan 27 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.4.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Tue Jan 19 2021 Charalampos Stratakis <cstratak@redhat.com> - 1:3.4.3-1
- Update to 3.4.3
- Fixes rhbz#1909494
* Sat Dec 05 2020 Mattia Verga <mattia.verga@protonmail.com> - 1:3.3.1-2
- Unset -s from python shebang
- Fixes: rhbz#1903763
* Mon Nov 23 2020 Miro Hrončok <mhroncok@redhat.com> - 1:3.3.1-1
- Update to 3.3.1
- Fixes: rhbz#1893752
* Wed Oct 14 2020 Tomas Hrnciar <thrnciar@redhat.com> - 1:3.2.1-2
- Backport commit to fix python-sphinx with python-pygments v2.7.1
* Tue Aug 18 2020 Miro Hrončok <mhroncok@redhat.com> - 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 <mhroncok@redhat.com> - 1:3.1.2-1
- Update to 3.1.2
- Fixes rhbz#1853901
* Wed Jul 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 30 2020 Charalampos Stratakis <cstratak@redhat.com> - 1:3.1.1-1
- Update to 3.1.1 (#1783776)
* Sat May 23 2020 Miro Hrončok <mhroncok@redhat.com> - 1:2.2.2-4
- Rebuilt for Python 3.9
* Fri May 22 2020 Miro Hrončok <mhroncok@redhat.com> - 1:2.2.2-3
- Bootstrap for Python 3.9
* Thu Jan 30 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.2.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Tue Dec 10 2019 Miro Hrončok <mhroncok@redhat.com> - 1:2.2.2-1
- Update to 2.2.2 (rhbz#1743018)
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1:2.1.2-6
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Fri Aug 16 2019 Miro Hrončok <mhroncok@redhat.com> - 1:2.1.2-5
- Rebuilt for Python 3.8
* Thu Aug 15 2019 Miro Hrončok <mhroncok@redhat.com> - 1:2.1.2-4
- Bootstrap for Python 3.8
* Thu Aug 15 2019 Richard Shaw <hobbes1069@gmail.com> - 1:2.1.2-3
- Rebuild for Python 3.8.
* Fri Jul 26 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Sun Jun 23 2019 Miro Hrončok <mhroncok@redhat.com> - 1:2.1.2-1
- Update to 2.1.2 (#1716158)
* Wed Apr 10 2019 Miro Hrončok <mhroncok@redhat.com> - 1:2.0.1-1
- Update to 2.0.1 (#1697544)
- Own the sphinxcontrib directory (#1669790)
* Wed Mar 27 2019 Charalampos Stratakis <cstratak@redhat.com> - 1:2.0.0~b2-1
- Update to 2.0.0b2
* Wed Feb 27 2019 Miro Hrončok <mhroncok@redhat.com> - 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 <amoralej@redhat.com> - 1:1.8.4-1
- Update to 1.8.4.
* Sat Feb 02 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.7.6-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Sun Nov 18 2018 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 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 <mplch@redhat.com> - 1:1.7.6-1
- Update to 1.7.6
* Wed Jun 20 2018 Petr Viktorin <pviktori@redhat.com> - 1:1.7.5-1
- Remove unused simplejson dependency
* Fri Jul 13 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.5-6
- Remove unused dependencies on xapian and simplejson
* Thu Jul 5 2018 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 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 <mhroncok@redhat.com> - 1:1.7.5-4
- Enable tests
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.5-3
- Enable websupport
* Mon Jul 02 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.5-2
- Rebuilt for Python 3.7
* Tue Jun 19 2018 Charalampos Stratakis <cstratak@redhat.com> - 1:1.7.5-1
- Update to 1.7.5 (bz#1570451)
* Tue Jun 19 2018 Charalampos Stratakis <cstratak@redhat.com> - 1:1.7.2-5
- Remove the python-pytest-cov dependency
* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.2-5
- Rebuilt for Python 3.7
* Wed Jun 13 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.2-4
- Remove python2 subpackage
- Require python3-sphinxcontrib-websupport
* Fri Jun 15 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.2-4
- Bootstrap for Python 3.7
* Thu Jun 07 2018 Petr Viktorin <pviktori@redhat.com> - 1:1.7.2-3
- Remove hard dependencies on sphinxcontrib-websupport and sqlalchemy
* Thu Jun 14 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.2-3
- Bootstrap for Python 3.7
* Wed Apr 11 2018 Petr Viktorin <pviktori@redhat.com> - 1:1.7.2-2
- Conditionalize the ImageMagick build dependency & tests

4
rpminspect.yaml Normal file
View File

@ -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

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (sphinx-7.2.6.tar.gz) = 9a42e38c3c54429cc008b58892297ade4ccdd67561ee671e42a1fae976955895bb5383d58cb66a4f9f7edd1cc50dc2d1f083efeef036eac9fffc205979d3ccbc

12
sphinx-test_theming.diff Normal file
View File

@ -0,0 +1,12 @@
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
@@ -25,7 +25,7 @@
themes.append('alabaster')
# 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'] == str(app.srcdir / 'test_theme' / 'test-theme')
assert app.registry.html_themes['ziptheme'] == str(app.srcdir / 'ziptheme.zip')
assert app.registry.html_themes['staticfiles'] == str(app.srcdir / 'test_theme' / 'staticfiles')

View File

@ -0,0 +1,11 @@
summary: run the basic documentation build
test: |
sphinx-build -M html source/ build/ &&
grep '<script src="_static/jquery.js' build/html/index.html &&
grep '<script src="_static/_sphinx_javascript_frameworks_compat.js' build/html/index.html &&
test -f build/html/_static/jquery.js &&
test -f build/html/_static/_sphinx_javascript_frameworks_compat.js &&
rm -rf build/
require:
- python3-sphinx
- python3-sphinxcontrib-jquery

View File

@ -0,0 +1,7 @@
project = 'Test'
copyright = '2024, Test'
author = 'Test'
release = '0.3.0'
extensions = [
"sphinxcontrib.jquery",
]

View File

@ -0,0 +1,15 @@
Test docfile
============
.. toctree::
:maxdepth: 2
:caption: Contents:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -0,0 +1,10 @@
summary: run the basic documentation build
test: |
sphinx-build -M html source/ build/ &&
grep '<section id="test-docfile">' build/html/index.html &&
grep '<h1>Test docfile' build/html/index.html &&
grep '_static/alabaster.css' build/html/index.html &&
rm -rf build/
require:
- python3-sphinx
- python3-sphinx-theme-alabaster

View File

@ -0,0 +1,5 @@
project = 'Test'
copyright = '2024, Test'
author = 'Test'
release = '0.3.0'
html_theme = 'alabaster'

View File

@ -0,0 +1,15 @@
Test docfile
============
.. toctree::
:maxdepth: 2
:caption: Contents:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

View File

@ -0,0 +1,11 @@
summary: run the basic documentation build with sphinx-rtd-theme
test: |
sphinx-build -M html source/ build/ &&
grep '<section id="test-docfile">' build/html/index.html &&
grep '<h1>Test docfile' build/html/index.html &&
grep 'SphinxRtdTheme' build/html/_static/js/theme.js &&
grep '<script src="_static/js/theme.js' build/html/index.html &&
rm -rf build/
require:
- python3-sphinx
- python3-sphinx_rtd_theme

View File

@ -0,0 +1,8 @@
project = 'Test'
copyright = '2024, Test'
author = 'Test'
release = '0.3.0'
html_theme = 'sphinx_rtd_theme'
extensions = [
'sphinx_rtd_theme',
]

View File

@ -0,0 +1,15 @@
Test docfile
============
.. toctree::
:maxdepth: 2
:caption: Contents:
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`