Compare commits

..

5 Commits
f34 ... f26

Author SHA1 Message Date
Charalampos Stratakis
2aaf1bf6d4 Update to 1.5.6 2018-01-09 12:00:04 +01:00
Charalampos Stratakis
a138fef32e Update to 1.5.5 2017-11-06 15:22:34 +01:00
Charalampos Stratakis
7963377f41 Fix a crash on parallel building. (rhbz#1494276) 2017-09-22 13:03:43 +02:00
Charalampos Stratakis
b074ca9c73 Provide the epoch tag to downgrade to 1.5.2 at F26
as the new version breaks too many packages.
2017-09-21 11:01:55 +02:00
Charalampos Stratakis
b33e23cded Revert "Update to 1.6.3 (rhbz#1426928)"
This reverts commit 6fe65c3b4d.
2017-09-20 13:51:37 +02:00
14 changed files with 524 additions and 346 deletions

22
.gitignore vendored
View File

@@ -7,23 +7,5 @@
/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-1.5.5.tar.gz
/Sphinx-1.5.6.tar.gz

27
README.fedora Normal file
View File

@@ -0,0 +1,27 @@
Sphinx with autodoc is sensitive to whether it is run via Python2 or Python3
as it uses the Python version that it is invoked with to parse the source
files for docstrings. Unfortunately, there's no logic to detect this within
the sphinx commands and the standard Makefiles generated by sphinx-quickstart
don't give the user any hint that it might be a problem.
The Fedora package tries to mitigate this problem by allowing the user to
switch between the Python2 and Python3 versions using environment-modules. To
switch to the Python3 commands, use::
module swap python-sphinx/python3-sphinx
To switch to the Python2 version, use::
module swap python-sphinx/python2-sphinx
The default install uses the python2 version of the modules.
If the system administrator wishes to change the default, edit the
/etc/profile.d/zz-modules-python-sphinx.sh and
/etc/profile.d/zz-modules-python-sphinx.csh files to specify a specific
alternative to use. For instance, to make the python3 version the default,
modify it like so::
@@ -1,2 +1,2 @@
# Add path to the default python-sphinx scripts on this version of Fedora
-module load python-sphinx
+module load python-sphinx/python3-sphinx

View File

@@ -0,0 +1,15 @@
--- sphinx/doc/Makefile.mantarget 2014-02-13 23:28:58.604797750 +0700
+++ sphinx/doc/Makefile 2014-02-14 00:00:45.794658764 +0700
@@ -12,6 +12,12 @@
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+# Likewise for man, since a man directory exist and make will assume
+# the target is up to date
+.PHONY: man
+man:
+ @$(SPHINXBUILD) -M man "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%:

View File

@@ -0,0 +1,2 @@
#%Module1.0
set ModuleVersion "python@PYTHONVER@-sphinx"

View File

@@ -0,0 +1,12 @@
diff --git a/sphinx/util/parallel.py b/sphinx/util/parallel.py
index ce51ac0..64f9bc1 100644
--- a/sphinx/util/parallel.py
+++ b/sphinx/util/parallel.py
@@ -100,6 +100,7 @@ class ParallelTasks(object):
raise SphinxParallelError(*result)
self._result_funcs.pop(tid)(self._args.pop(tid), result)
self._procs[tid].join()
+ self._precvs.pop(tid)
self._pworking -= 1
break
else:

View File

@@ -0,0 +1,21 @@
diff --git Sphinx-1.3.1/sphinx/builders/linkcheck.py~ Sphinx-1.3.1/sphinx/builders/linkcheck.py
index 9f5c2131c2..71bec0262d 100644
--- Sphinx-1.3.1/sphinx/builders/linkcheck.py~
+++ Sphinx-1.3.1/sphinx/builders/linkcheck.py
@@ -19,9 +19,15 @@ from six.moves import queue
from six.moves.urllib.request import build_opener, Request, HTTPRedirectHandler
from six.moves.urllib.parse import unquote, urlsplit, quote
from six.moves.urllib.error import HTTPError
-from six.moves.html_parser import HTMLParser, HTMLParseError
+from six.moves.html_parser import HTMLParser
from docutils import nodes
+try:
+ from HTMLParser import HTMLParseError
+except ImportError:
+ class HTMLParseError(Exception):
+ pass
+
from sphinx.builders import Builder
from sphinx.util.console import purple, red, darkgreen, darkgray, \
darkred, turquoise

View File

@@ -0,0 +1,34 @@
From cf795894b9290c5ab2035ae21535f0a7f4b7107a Mon Sep 17 00:00:00 2001
From: Takeshi KOMIYA <i.tkomiya@gmail.com>
Date: Fri, 16 Dec 2016 19:44:27 +0900
Subject: [PATCH] Fix #3246: xapian search adapter crashes
---
CHANGES | 2 ++
sphinx/websupport/search/xapiansearch.py | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/sphinx/websupport/search/xapiansearch.py b/sphinx/websupport/search/xapiansearch.py
index 1e43dcb..aa7cff8 100644
--- a/sphinx/websupport/search/xapiansearch.py
+++ b/sphinx/websupport/search/xapiansearch.py
@@ -39,16 +39,16 @@ def finish_indexing(self):
# Ensure the db lock is removed.
del self.database
- def add_document(self, path, title, text):
+ def add_document(self, pagename, filename, title, text):
self.database.begin_transaction()
# sphinx_page_path is used to easily retrieve documents by path.
- sphinx_page_path = '"sphinxpagepath%s"' % path.replace('/', '_')
+ sphinx_page_path = '"sphinxpagepath%s"' % pagename.replace('/', '_')
# Delete the old document if it exists.
self.database.delete_document(sphinx_page_path)
doc = xapian.Document()
doc.set_data(text)
- doc.add_value(self.DOC_PATH, path)
+ doc.add_value(self.DOC_PATH, pagename)
doc.add_value(self.DOC_TITLE, title)
self.indexer.set_document(doc)
self.indexer.index_text(text)

View File

@@ -1,108 +1,138 @@
# 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
# Also, we don't have all the tests requirements
%bcond_without tests
# Unset -s on python shebang to allow RPM-installed sphinx to be used
# with user-installed modules (#1903763)
%global py3_shebang_flags %nil
# No internet in Koji
%bcond_with internet
%if 0%{?rhel} > 7
# Build without BuildRequires ImageMagick, to skip imgconverter tests
%bcond_with imagemagick_tests
%if 0%{?fedora}
%global with_python3 1
%else
%bcond_without imagemagick_tests
%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print (get_python_lib())")}
%endif
# During texlive updates, sometimes the latex environment is unstable
%bcond_without latex_tests
# Currently, python2 version is always the default: https://fedoraproject.org/wiki/Packaging:Python#Naming
%if 1
%global py3_default 0
%else
%global py3_default 1
%endif
%global upstream_name Sphinx
Name: python-sphinx
%global general_version 3.4.3
#global prerel ...
%global upstream_version %{general_version}%{?prerel}
Version: %{general_version}%{?prerel:~%{prerel}}
Release: 2%{?dist}
Version: 1.5.6
Release: 1%{?dist}
Epoch: 1
Summary: Python documentation generator
Group: Development/Tools
# Unless otherwise noted, the license for code is BSD
# sphinx/util/inspect.py has bits licensed with PSF license v2 (Python)
# 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
# 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
Source1: python2-sphinx
Source2: python3-sphinx
Source3: zz-modules-python-sphinx.sh
Source4: zz-modules-python-sphinx.csh
Source5: README.fedora
# environment-modules file to select whether the py2 or py3 version of
# python-sphinx execuitables is default
Source6: default-sphinx-command.in
URL: https://www.sphinx-doc.org/
Source0: %{pypi_source %{upstream_name} %{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
# Backport of a bugfix from the 1.6 upstream branch of sphinx
# to address a crash with parallel building.
# https://bugzilla.redhat.com/show_bug.cgi?id=1494276
# Upstream commit:
# https://github.com/sphinx-doc/sphinx/pull/4039/commits/0cb57f19a099be2809a8fb5dc9274f7411e1caac
Patch0: fix-crash-on-parallel-build.patch
BuildArch: noarch
BuildRequires: make
BuildRequires: python%{python3_pkgversion}-devel
BuildRequires: pyproject-rpm-macros
%if %{with websupport}
BuildRequires: python%{python3_pkgversion}-sphinxcontrib-websupport
%endif
BuildRequires: python2-devel >= 2.4
BuildRequires: python2-babel
BuildRequires: python2-setuptools
BuildRequires: python-docutils
BuildRequires: python-jinja2
BuildRequires: python-pygments >= 2.0
BuildRequires: python-six
BuildRequires: python2-sphinx_rtd_theme
BuildRequires: python2-sphinx-theme-alabaster
BuildRequires: python2-imagesize
BuildRequires: python2-requests
BuildRequires: environment(modules)
# for fixes
BuildRequires: dos2unix
%if %{with tests}
# tests import _testcapi
BuildRequires: python%{python3_pkgversion}-test
BuildRequires: gcc
# for testing
BuildRequires: python-nose
BuildRequires: python2-pytest
BuildRequires: python-pytest-cov
BuildRequires: gettext
BuildRequires: graphviz
BuildRequires: texinfo
%if %{with imagemagick_tests}
BuildRequires: ImageMagick
%endif
%if %{with latex_tests}
BuildRequires: graphviz
BuildRequires: python-sqlalchemy
BuildRequires: python2-mock
BuildRequires: python2-simplejson
BuildRequires: python-html5lib
BuildRequires: python-whoosh
BuildRequires: python2-snowballstemmer
BuildRequires: python-enum34
# note: no Python3 xapian binding yet
BuildRequires: xapian-bindings-python
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(article.cls)
BuildRequires: tex(capt-of.sty)
BuildRequires: tex(cmap.sty)
BuildRequires: tex(color.sty)
BuildRequires: tex(ctablestack.sty)
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(fncychap.sty)
BuildRequires: tex(tabulary.sty)
BuildRequires: tex(titlesec.sty)
BuildRequires: tex(upquote.sty)
BuildRequires: tex(utf8x.def)
BuildRequires: tex(wrapfig.sty)
%endif
%endif
BuildRequires: tex(polyglossia.sty)
BuildRequires: tex(eu1enc.def)
%if 0%{?with_python3}
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-pytest-cov
BuildRequires: python3-sqlalchemy
BuildRequires: python3-mock
BuildRequires: python3-simplejson
BuildRequires: python3-html5lib
BuildRequires: python3-whoosh
BuildRequires: python3-snowballstemmer
BuildRequires: python3-six
BuildRequires: python3-sphinx_rtd_theme
BuildRequires: python3-sphinx-theme-alabaster
BuildRequires: python3-imagesize
BuildRequires: python3-requests
%endif # with_python3
%description
@@ -134,18 +164,35 @@ the Python docs:
snippets and inclusion of appropriately formatted docstrings.
%package -n python%{python3_pkgversion}-sphinx
%package -n python2-sphinx
Summary: Python documentation generator
Requires: python-sphinx-locale = %{?epoch}:%{version}-%{release}
Requires: python2-babel
Requires: python-docutils
Requires: python-jinja2
Requires: python-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: 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}
# Bundled JavaScript
Provides: bundled(jquery) = 3.5.1
Provides: bundled(underscore) = 1.3.1
Provides: bundled(css3-mediaqueries) = 1.0
%description -n python%{python3_pkgversion}-sphinx
%description -n python2-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
@@ -174,44 +221,45 @@ the Python docs:
snippets and inclusion of appropriately formatted docstrings.
%package -n python%{python3_pkgversion}-sphinx-latex
Summary: LaTeX builder dependencies for python%{python3_pkgversion}-sphinx
Requires: python%{python3_pkgversion}-sphinx = %{epoch}:%{version}-%{release}
%package latex
Summary: LaTeX builder dependencies for %{name}
Requires: python(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(article.cls)
Requires: tex(capt-of.sty)
Requires: tex(cmap.sty)
Requires: tex(color.sty)
Requires: tex(ctablestack.sty)
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(fncychap.sty)
Requires: tex(tabulary.sty)
Requires: tex(titlesec.sty)
Requires: tex(upquote.sty)
Requires: tex(utf8x.def)
Requires: tex(wrapfig.sty)
Requires: tex(polyglossia.sty)
Requires: tex(eu1enc.def)
Obsoletes: python3-sphinx-latex < 1.4.4-2
# No files in this package, automatic provides don't work:
%py_provides python%{python3_pkgversion}-sphinx-latex
%description -n python%{python3_pkgversion}-sphinx-latex
%description 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
@@ -223,10 +271,68 @@ This package pulls in the TeX dependencies needed by Sphinx's LaTeX
builder.
%if 0%{?with_python3}
%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-imagesize
Requires: python3-requests
Requires: python3-six
Recommends: graphviz
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.
%endif # with_python3
%package doc
Summary: Documentation for %{name}
Group: Documentation
License: BSD
Recommends: python%{python3_pkgversion}-sphinx = %{epoch}:%{version}-%{release}
Requires: python(Sphinx) = %{?epoch}:%{version}-%{release}
%description doc
Sphinx is a tool that makes it easy to create intelligent and
@@ -239,74 +345,116 @@ useful to many other projects.
This package contains documentation in reST and HTML formats.
%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}-%{upstream_version} -p1
%autosetup -n %{upstream_name}-%{version}%{?prerel} -p1
cp %{SOURCE5} .
sed '1d' -i sphinx/pycode/pgen2/token.py
# 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
%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
%generate_buildrequires
%pyproject_buildrequires %{?with_tests:-x test}
%if 0%{?with_python3}
rm -rf %{py3dir}
cp -a . %{py3dir}
%endif # with_python3
%build
%pyproject_wheel
%py2_build
%if 0%{?with_python3}
%py3_build
%endif # with_python3
export PYTHONPATH=$PWD
pushd doc
export SPHINXBUILD="%{python3} ../sphinx/cmd/build.py"
make html SPHINXBUILD="$SPHINXBUILD"
make man SPHINXBUILD="$SPHINXBUILD"
make html
make man
rm -rf _build/html/.buildinfo
mv _build/html ..
popd
%install
%pyproject_install
# For backwards compatibility. Remove with care, if at all
%if 0%{?with_python3}
%py3_install
install -d %{buildroot}%{_libexecdir}/python3-sphinx
for i in sphinx-{apidoc,autogen,build,quickstart}; do
ln -s %{_bindir}/$i %{buildroot}%{_bindir}/$i-%{python3_version}
ln -s %{_bindir}/$i %{buildroot}%{_bindir}/$i-3
mv %{buildroot}%{_bindir}/$i %{buildroot}%{_bindir}/$i-%{python3_version}
ln -s $i-%{python3_version} %{buildroot}%{_bindir}/$i-3
ln -s %{_bindir}/$i-3 %{buildroot}%{_libexecdir}/python3-sphinx/$i
done
# Clean up non-python files
rm -f %{buildroot}%{python3_sitelib}/sphinx/locale/.DS_Store
rm -rf %{buildroot}%{python3_sitelib}/sphinx/locale/.tx
# These appear to be incomplete C extensions to speed up parsing. They are not
# built by setup.py yet. Removing them in %%install so that if sphinx does
# make use of them, and we don't notice, we only remove these source files
# after the build has created the .so's
rm %{buildroot}%{python3_sitelib}/sphinx/pycode/pgen2/parse.{pyx,c}
%endif # with_python3
%py2_install
install -d %{buildroot}%{_libexecdir}/python2-sphinx
for i in sphinx-{apidoc,autogen,build,quickstart}; do
mv %{buildroot}%{_bindir}/$i %{buildroot}%{_bindir}/$i-%{python2_version}
ln -s $i-%{python2_version} %{buildroot}%{_bindir}/$i-2
ln -s %{_bindir}/$i-2 %{buildroot}%{_libexecdir}/python2-sphinx/$i
done
# These appear to be incomplete C extensions to speed up parsing. They are not
# built by setup.py yet. Removing them in %%install so that if sphinx does
# make use of them, and we don't notice, we only remove these source files
# after the build has created the .so's
rm %{buildroot}%{python2_sitelib}/sphinx/pycode/pgen2/parse.{pyx,c}
pushd doc
# Deliver man pages
install -d %{buildroot}%{_mandir}/man1
for f in _build/man/sphinx-*.1;
do
### TODO: these are all the same. Do we really need to ship them three
### times or is it fine to just ship them as e.g. sphinx-build.1
cp -p $f %{buildroot}%{_mandir}/man1/$(basename $f)
cp -p $f %{buildroot}%{_mandir}/man1/$(basename $f | sed -e "s|.1$|-%{python2_version}.1|")
cp -p $f %{buildroot}%{_mandir}/man1/$(basename $f | sed -e "s|.1$|-%{python3_version}.1|")
done
# Remove language files, they're identical to the ones from the
# Python 2 build that will be moved to /usr/share below
find %{buildroot}%{python3_sitelib}/sphinx/locale -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -exec rm -rf '{}' \;
popd
# Clean up non-python files
rm -f %{buildroot}%{python2_sitelib}/sphinx/locale/.DS_Store
rm -rf %{buildroot}%{python2_sitelib}/sphinx/locale/.tx
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
rm reST/make.bat
# Move language files to /usr/share;
# patch to support this incorporated in 0.6.6
pushd %{buildroot}%{python3_sitelib}
pushd %{buildroot}%{python_sitelib}
for lang in `find sphinx/locale -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -printf "%f "`;
do
test $lang == __pycache__ && continue
install -d %{buildroot}%{_datadir}/sphinx/locale/$lang
install -d %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES
mv sphinx/locale/$lang/LC_MESSAGES/sphinx.js \
@@ -317,9 +465,36 @@ 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
install -d %{buildroot}%{_modulesdir}/python-sphinx
install -m 0644 %{SOURCE1} %{buildroot}%{_modulesdir}/python-sphinx/
sed -i 's|@python2_sphinx_dir@|%{_libexecdir}/python2-sphinx|' %{buildroot}%{_modulesdir}/python-sphinx/python2-sphinx
install -m 0644 %{SOURCE2} %{buildroot}%{_modulesdir}/python-sphinx/
sed -i 's|@python3_sphinx_dir@|%{_libexecdir}/python3-sphinx|' %{buildroot}%{_modulesdir}/python-sphinx/python3-sphinx
install -d %{buildroot}%{_sysconfdir}/profile.d
install -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/profile.d/zz-modules-python-sphinx.sh
install -m 0644 %{SOURCE4} %{buildroot}%{_sysconfdir}/profile.d/zz-modules-python-sphinx.csh
%if %{py3_default}
sed 's/@PYTHONVER@/3/' < %{SOURCE6} > %{buildroot}%{_modulesdir}/python-sphinx/.version
# These symlinks establish a default for when a package is first installed (and
# therefore, environment modules is not loaded). The user can immediately
# switch them by using module swap python-sphinx/python2-sphinx
for filename in sphinx-{build,apidoc,autogen,quickstart} ; do
ln -s %{_libexecdir}/python3-sphinx/$filename %{buildroot}%{_bindir}/$filename
done
%else
sed 's/@PYTHONVER@/2/' < %{SOURCE6} > %{buildroot}%{_modulesdir}/python-sphinx/.version
# These symlinks establish a default for when a package is first installed (and
# therefore, environment modules is not loaded). The user can immediately
# switch them by using module swap python-sphinx/python3-sphinx
for filename in sphinx-{build,apidoc,autogen,quickstart} ; do
ln -s %{_libexecdir}/python2-sphinx/$filename %{buildroot}%{_bindir}/$filename
done
%endif
%find_lang sphinx
@@ -330,192 +505,98 @@ mkdir %{buildroot}%{python3_sitelib}/sphinxcontrib
>> sphinx.lang
%if %{with tests}
%check
# Currently, all linkcheck tests and test_latex_images need internet
%pytest \
%if %{without internet}
-k "not linkcheck and not test_latex_images" \
%endif
;
%endif
# 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
LANG=en_US.UTF-8 make test
%if 0%{?with_python3}
pushd %{py3dir}
# 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
LANG=en_US.UTF-8 PYTHON=python3 make test
popd
%endif # with_python3
%files -n python%{python3_pkgversion}-sphinx -f sphinx.lang
%pre -n python2-sphinx
# python-sphinx as shipped in an update to f24 and f25 used alternatives. So
# we need to clean up the alternatives configuration until at least f27
%{_sbindir}/update-alternatives --remove sphinx-build %{_bindir}/sphinx-build-%{python2_version} || :
%if 0%{?with_python3}
%pre -n python3-sphinx
# python-sphinx as shipped in an update to f24 and f25 used alternatives. So
# we need to clean up the alternatives configuration until at least f27
%{_sbindir}/update-alternatives --remove sphinx-build %{_bindir}/sphinx-build-%{python3_version} || :
%endif # with_python3
%files latex
%license LICENSE
%files locale -f sphinx.lang
%license LICENSE
%doc AUTHORS CHANGES EXAMPLES README.rst
%{_bindir}/sphinx-*
%{python3_sitelib}/sphinx/
%dir %{python3_sitelib}/sphinxcontrib/
%{python3_sitelib}/Sphinx-%{upstream_version}.dist-info/
%dir %{_datadir}/sphinx/
%dir %{_datadir}/sphinx/locale
%dir %{_datadir}/sphinx/locale/*
%{_mandir}/man1/sphinx-*
%files -n python2-sphinx
%license LICENSE
%doc AUTHORS CHANGES EXAMPLES README.rst README.fedora
%{_bindir}/sphinx-*-2*
%{_bindir}/sphinx-build
%{_bindir}/sphinx-apidoc
%{_bindir}/sphinx-autogen
%{_bindir}/sphinx-quickstart
%{python2_sitelib}/sphinx/
%{python2_sitelib}/Sphinx-%{version}-py%{python2_version}.egg-info/
%exclude %{_mandir}/man1/sphinx-*-%{python3_version}.1*
%{_mandir}/man1/*
%{_libexecdir}/python2-sphinx/
%{_modulesdir}/python-sphinx/python2-sphinx
%if !%{py3_default}
%{_modulesdir}/python-sphinx/.version
%endif
%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.sh
%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.csh
%files -n python%{python3_pkgversion}-sphinx-latex
# empty, this is a metapackage
%if 0%{?with_python3}
%files -n python3-sphinx
%license LICENSE
%doc AUTHORS CHANGES EXAMPLES README.rst README.fedora
%{_bindir}/sphinx-*-3*
%{python3_sitelib}/sphinx/
%{python3_sitelib}/Sphinx-%{version}-py%{python3_version}.egg-info/
%{_mandir}/man1/sphinx-*-%{python3_version}.1*
%{_libexecdir}/python3-sphinx/
%{_modulesdir}/python-sphinx/python3-sphinx
%if %{py3_default}
%{_modulesdir}/python-sphinx/.version
%endif
%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.sh
%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.csh
%endif # with_python3
%files doc
%license LICENSE
%doc html reST
%changelog
* 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 09 2018 Charalampos Stratakis <cstratak@redhat.com> - 1:1.5.6-1
- Update to 1.5.6
* Tue Jan 19 2021 Charalampos Stratakis <cstratak@redhat.com> - 1:3.4.3-1
- Update to 3.4.3
- Fixes rhbz#1909494
* Mon Nov 06 2017 Charalampos Stratakis <cstratak@redhat.com> - 1:1.5.5-1
- Update to 1.5.5
* Sat Dec 05 2020 Mattia Verga <mattia.verga@protonmail.com> - 1:3.3.1-2
- Unset -s from python shebang
- Fixes: rhbz#1903763
* Fri Sep 22 2017 Charalampos Stratakis <cstratak@redhat.com> - 1:1.5.2-4
- Fix a crash on parallel build.
* 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
* 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)
* Mon Jun 18 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.2-5
- Rebuilt for Python 3.7
* Fri Jun 15 2018 Miro Hrončok <mhroncok@redhat.com> - 1:1.7.2-4
- Bootstrap for Python 3.7
* 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
* Wed Apr 11 2018 Petr Viktorin <pviktori@redhat.com> - 1:1.7.2-1
- Update to 1.7.2 (bz#1558968)
* Tue Mar 13 2018 Charalampos Stratakis <cstratak@redhat.com> - 1:1.7.1-1
- Update to 1.7.1 (bz#1534802)
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:1.6.6-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Tue Jan 09 2018 Charalampos Stratakis <cstratak@redhat.com> - 1:1.6.6-1
- Update to 1.6.6 (bz#1532435)
* Mon Dec 11 2017 Iryna Shcherbina <ishcherb@redhat.com> - 1:1.6.5-2
- Fix ambiguous Python 2 dependency declarations
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Mon Nov 06 2017 Charalampos Stratakis <cstratak@redhat.com> - 1:1.6.5-1
- Update to 1.6.5 (bz#1508237)
* Mon Oct 09 2017 Troy Dawson <tdawson@redhat.com> - 1:1.6.4-2
- Cleanup spec file conditionals
* Tue Sep 26 2017 Charalampos Stratakis <cstratak@redhat.com> - 1:1.6.4-1
- Update to 1.6.4 (bz#1426928)
* Wed Sep 20 2017 Charalampos Stratakis <cstratak@redhat.com> - 1:1.6.3-3
- Provide the epoch tag in order to keep the upgrade path clean.
* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1.6.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jul 20 2017 Charalampos Stratakis <cstratak@redhat.com> - - 1.6.3-1
- Update to 1.6.3 (bz#1426928)
* Wed Sep 20 2017 Charalampos Stratakis <cstratak@redhat.com> - 1:1.5.2-3
- Provide the epoch tag in order to downgrade at Fedora 26
* Sat Feb 18 2017 Toshio Kuratomi <toshio@fedoraproject.org> - - 1.5.2-2
- Cleanup source files that should not be installed

6
python2-sphinx Normal file
View File

@@ -0,0 +1,6 @@
#%Module 1.0
#
# python2-sphinx module for use with 'environment modules' package
#
conflict python-sphinx
prepend-path PATH @python2_sphinx_dir@

6
python3-sphinx Normal file
View File

@@ -0,0 +1,6 @@
#%Module 1.0
#
# python2-sphinx module for use with 'environment modules' package
#
conflict python-sphinx
prepend-path PATH @python3_sphinx_dir@

View File

@@ -1 +1 @@
SHA512 (Sphinx-3.4.3.tar.gz) = 2e085e00c722f3aaf34552eefc3842daf5443f7b8a11afa850db1e31ad81d5ff7f579622b91f982b21708fa6379907bac4fe72d42dc05859a3f62c75298facaa
SHA512 (Sphinx-1.5.6.tar.gz) = 4190124d093fca3633a40187731d4284fa041c5d1159af1087ceec507eb398f693dcc655cbce779b63c25e4c925a07dfbfaae5f27c36e42df97226d335be951f

View File

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

View File

@@ -0,0 +1,2 @@
# Add path to the default python-sphinx scripts on this version of Fedora
module load python-sphinx >& /dev/null

View File

@@ -0,0 +1,2 @@
# Add path to the default python-sphinx scripts on this version of Fedora
module load python-sphinx 2> /dev/null