commit 846ca53ee5b680d1e9f9c10a62e2a9adf4b1738b Author: dogsheng <960055655@qq.com> Date: Tue Nov 19 11:55:21 2019 +0800 Package init diff --git a/Sphinx-1.7.6.tar.gz b/Sphinx-1.7.6.tar.gz new file mode 100644 index 0000000..9f93328 Binary files /dev/null and b/Sphinx-1.7.6.tar.gz differ diff --git a/default-sphinx-command.in b/default-sphinx-command.in new file mode 100644 index 0000000..c933d75 --- /dev/null +++ b/default-sphinx-command.in @@ -0,0 +1,2 @@ +#%Module1.0 +set ModuleVersion "python@PYTHONVER@-sphinx" diff --git a/python-sphinx.spec b/python-sphinx.spec new file mode 100644 index 0000000..6ae6d95 --- /dev/null +++ b/python-sphinx.spec @@ -0,0 +1,315 @@ +Name: python-sphinx +Summary: Python documentation generator +Version: 1.7.6 +Release: 2 +Epoch: 1 +License: BSD and Public Domain and Python and (MIT or GPLv2) +URL: http://sphinx-doc.org/ +Source0: https://files.pythonhosted.org/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz +Source1: python2-sphinx +Source2: python3-sphinx +Source3: zz-modules-python-sphinx.sh +Source4: zz-modules-python-sphinx.csh +Source5: default-sphinx-command.in + +Patch0001: xfail-test_latex_remote_images.patch +Patch0002: sphinx-test_theming.diff + +BuildArch: noarch + +BuildRequires: python2-devel >= 2.4 python2-babel python2-setuptools python2-docutils python2-jinja2 python2-pygments >= 2.0 +BuildRequires: python2-six python2-sphinx_rtd_theme python2-sphinx-theme-alabaster python2-imagesize python2-requests +BuildRequires: python2-packaging python2-typing dos2unix python2-sphinxcontrib-websupport python2-html5lib python2-whoosh +BuildRequires: python2-nose python2-pytest python2-pytest-cov gettext texinfo graphviz python2-sqlalchemy texlive-dvipng +BuildRequires: python2-mock python2-html5lib python2-whoosh python2-snowballstemmer python2-enum34 texlive-dvisvgm texlive-ucs +BuildRequires: python2-snowballstemmer python2-enum34 texlive-collection-fontsrecommended texlive-collection-latex +BuildRequires: tex(cmap.sty) tex(ecrm1000.tfm) tex(footnote.sty) tex(framed.sty) tex(multirow.sty) tex(parskip.sty) +BuildRequires: tex(threeparttable.sty) tex(upquote.sty) tex(wrapfig.sty) tex(capt-of.sty) tex(needspace.sty) tex(eqparbox.sty) +BuildRequires: tex(amsmath.sty) tex(amsthm.sty) tex(amssymb.sty) tex(amsfonts.sty) tex(bm.sty) tex(palatino.sty) tex(multirow.sty) +BuildRequires: tex(eqparbox.sty) tex(atbegshi.sty) tex(anyfontsize.sty) tex(luatex85.sty) tex(fncychap.sty) +BuildRequires: tex(tabulary.sty) tex(polyglossia.sty) tex(ctablestack.sty) tex(eu1enc.def) tex(titlesec.sty) +BuildRequires: python3-devel python3-babel python3-setuptools python3-docutils python3-jinja2 python3-pygments +BuildRequires: python3-six python3-sphinx_rtd_theme python3-sphinx-theme-alabaster python3-packaging python3-imagesize +BuildRequires: python3-requests python3-sphinxcontrib-websupport python3-nose python3-pytest python3-pytest-cov +BuildRequires: python3-sqlalchemy python3-mock python3-html5lib python3-whoosh python3-snowballstemmer + +%description +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 -n python2-sphinx +Summary: Python documentation generator + +Requires: python-sphinx-locale = %{?epoch}:%{version}-%{release} +Requires: python2-babel python2-docutils python2-jinja2 python2-pygments python2-mock +Requires: python2-snowballstemmer python2-sphinx_rtd_theme python2-sphinx-theme-alabaster +Requires: python2-six python2-imagesize python2-requests python2-packaging python2-typing +Requires: python2-sphinxcontrib-websupport environment(modules) +Requires(pre): /usr/sbin/alternatives +Recommends: graphviz ImageMagick + +Obsoletes: python-sphinx <= 1.2.3 python-sphinxcontrib-napoleon < 0.5 python2-Sphinx <= 1.3.1-4 +Provides: python-sphinxcontrib-napoleon = %{?epoch}:%{version}-%{release} +Provides: python2-Sphinx = %{?epoch}:%{version}-%{release} +Provides: python(Sphinx) = %{?epoch}:%{version}-%{release} +Conflicts: python3-sphinx < %{?epoch}:%{version}-%{release} +%{?python_provide:%python_provide python2-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 +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 -n python3-sphinx +Summary: Python documentation generator + +Requires: python-sphinx-locale = %{?epoch}:%{version}-%{release} +Requires: python3-babel python3-docutils python3-jinja2 python3-pygments +Requires: python3-snowballstemmer python3-sphinx_rtd_theme python3-sphinx-theme-alabaster +Requires: python3-imagesize python3-requests python3-six python3-packaging +Requires: environment(modules) python3-sphinxcontrib-websupport python3-mock +Requires(pre): /usr/sbin/alternatives +Recommends: graphviz ImageMagick + +Obsoletes: python3-sphinxcontrib-napoleon < 0.3.0 +Provides: python3-sphinxcontrib-napoleon = %{?epoch}:%{version}-%{release} +Provides: python(Sphinx) = %{?epoch}:%{version}-%{release} +Conflicts: python2-Sphinx < %{?epoch}:%{version}-%{release} +%{?python_provide:%python_provide python3-sphinx} + +%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 help +Summary: Documentation for %{name} +Requires: python(Sphinx) = %{?epoch}:%{version}-%{release} +Provides: python-sphinx-doc python-sphinx-latex +Obsoletes: python-sphinx-doc < %{?epoch}:%{version}-%{release} +Obsoletes: python-sphinx-latex < %{?epoch}:%{version}-%{release} + +%description help +This package contains help documentation in reST and HTML formats. + +%package locale +Summary: Locale files for python-sphinx + +%description locale +This package contains locale files for Sphinx. + +%prep +%autosetup -n Sphinx-%{version} -p1 + +dos2unix -k ./sphinx/themes/basic/static/jquery.js +rm tests/test_ext_imgconverter.py +rm -rf %{py3dir} +cp -a . %{py3dir} + +%build +%py2_build +%py3_build + +export PYTHONPATH=$PWD +cd doc +export SPHINXBUILD="%{__python3} ../sphinx/cmd/build.py" + +make html SPHINXBUILD="$SPHINXBUILD" +make man SPHINXBUILD="$SPHINXBUILD" +rm -rf _build/html/.buildinfo +mv _build/html .. + +%install +rm -rf %{buildroot}/* +%py3_install +install -d %{buildroot}%{_libexecdir}/python3-sphinx +for i in sphinx-{apidoc,autogen,build,quickstart}; do + 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 + +%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 + +pushd doc +install -d %{buildroot}%{_mandir}/man1 +for f in _build/man/sphinx-*.1; +do + 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 + +find %{buildroot}%{python3_sitelib}/sphinx/locale -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -exec rm -rf '{}' \; +popd + +rm -f %{buildroot}%{python2_sitelib}/sphinx/locale/.DS_Store +rm -f %{buildroot}%{python3_sitelib}/sphinx/locale/.DS_Store +rm -rf %{buildroot}%{python2_sitelib}/sphinx/locale/.tx +rm -rf %{buildroot}%{python3_sitelib}/sphinx/locale/.tx +rm -rf doc/_build +sed -i 's|python ../sphinx-build.py|/usr/bin/sphinx-build|' doc/Makefile +mv doc reST + +pushd %{buildroot}%{python2_sitelib} + +for lang in `find sphinx/locale -maxdepth 1 -mindepth 1 -type d -not -path '*/\.*' -printf "%f "`; +do + install -d %{buildroot}%{_datadir}/sphinx/locale/$lang + install -d %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES + mv sphinx/locale/$lang/LC_MESSAGES/sphinx.js \ + %{buildroot}%{_datadir}/sphinx/locale/$lang/ + mv sphinx/locale/$lang/LC_MESSAGES/sphinx.mo \ + %{buildroot}%{_datadir}/locale/$lang/LC_MESSAGES/ + rm -rf sphinx/locale/$lang +done +popd + +install -d %{buildroot}%{_modulesdir}/python-sphinx +install -d %{buildroot}%{_sysconfdir}/profile.d +install -m 0644 %{SOURCE1} %{buildroot}%{_modulesdir}/python-sphinx/ +install -m 0644 %{SOURCE2} %{buildroot}%{_modulesdir}/python-sphinx/ +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 +sed -i 's|@python2_sphinx_dir@|%{_libexecdir}/python2-sphinx|' %{buildroot}%{_modulesdir}/python-sphinx/python2-sphinx +sed -i 's|@python3_sphinx_dir@|%{_libexecdir}/python3-sphinx|' %{buildroot}%{_modulesdir}/python-sphinx/python3-sphinx +sed 's/@PYTHONVER@/2/' < %{SOURCE5} > %{buildroot}%{_modulesdir}/python-sphinx/.version + +for filename in sphinx-{build,apidoc,autogen,quickstart} ; do + ln -s %{_libexecdir}/python2-sphinx/$filename %{buildroot}%{_bindir}/$filename +done + +%find_lang sphinx + +(cd %{buildroot} && find . -name 'sphinx.js') | sed -e 's|^.||' | sed -e \ + 's:\(.*/locale/\)\([^/_]\+\)\(.*\.js$\):%lang(\2) \1\2\3:' \ + >> sphinx.lang + + +%check +%if %{with check} +export PYTHONPATH=$PWD +rm tests/test_build_linkcheck.py +LANG=en_US.UTF-8 %{__python2} -m pytest -v --ignore=tests/test_api_translator.py +cd %{py3dir} +rm tests/test_build_linkcheck.py +LANG=en_US.UTF-8 PYTHON=python3 make test +%endif + +%files locale -f sphinx.lang +%license LICENSE +%dir %{_datadir}/sphinx/ +%dir %{_datadir}/sphinx/locale +%dir %{_datadir}/sphinx/locale/* + +%files -n python2-sphinx +%license LICENSE +%doc AUTHORS CHANGES EXAMPLES README.rst +%{_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/ +%{_libexecdir}/python2-sphinx/ +%{_modulesdir}/python-sphinx/python2-sphinx +%{_modulesdir}/python-sphinx/.version +%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.sh +%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.csh + +%files -n python3-sphinx +%license LICENSE +%doc AUTHORS CHANGES EXAMPLES README.rst +%{_bindir}/sphinx-*-3* +%{python3_sitelib}/sphinx/ +%{python3_sitelib}/Sphinx-%{version}-py%{python3_version}.egg-info/ +%{_libexecdir}/python3-sphinx/ +%{_modulesdir}/python-sphinx/python3-sphinx +%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.sh +%config(noreplace) %{_sysconfdir}/profile.d/zz-modules-python-sphinx.csh + +%files help +%doc html reST +%{_mandir}/man1/* + +%changelog +* Thu Nov 14 2019 Lijin Yang - 1:1.7.6-2 +- init package diff --git a/python2-sphinx b/python2-sphinx new file mode 100644 index 0000000..e015ae6 --- /dev/null +++ b/python2-sphinx @@ -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@ diff --git a/python3-sphinx b/python3-sphinx new file mode 100644 index 0000000..6d79fad --- /dev/null +++ b/python3-sphinx @@ -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@ diff --git a/sphinx-test_theming.diff b/sphinx-test_theming.diff new file mode 100644 index 0000000..966528a --- /dev/null +++ b/sphinx-test_theming.diff @@ -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 +@@ -31,7 +31,7 @@ + themes.append('alabaster') + + # test Theme class API +- assert set(app.html_themes.keys()) == set(themes) ++ assert set(app.html_themes.keys()) >= set(themes) + assert app.html_themes['test-theme'] == app.srcdir / 'test_theme' / 'test-theme' + assert app.html_themes['ziptheme'] == app.srcdir / 'ziptheme.zip' + assert app.html_themes['staticfiles'] == app.srcdir / 'test_theme' / 'staticfiles' diff --git a/xfail-test_latex_remote_images.patch b/xfail-test_latex_remote_images.patch new file mode 100644 index 0000000..16e4ddd --- /dev/null +++ b/xfail-test_latex_remote_images.patch @@ -0,0 +1,13 @@ +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() diff --git a/zz-modules-python-sphinx.csh b/zz-modules-python-sphinx.csh new file mode 100644 index 0000000..d85799f --- /dev/null +++ b/zz-modules-python-sphinx.csh @@ -0,0 +1,2 @@ +# Add path to the default python-sphinx scripts on this version of Fedora +module load python-sphinx >& /dev/null diff --git a/zz-modules-python-sphinx.sh b/zz-modules-python-sphinx.sh new file mode 100644 index 0000000..af36d40 --- /dev/null +++ b/zz-modules-python-sphinx.sh @@ -0,0 +1,2 @@ +# Add path to the default python-sphinx scripts on this version of Fedora +module load python-sphinx 2> /dev/null