python-sphinx/python-sphinx.spec
2020-01-10 17:47:39 +08:00

296 lines
13 KiB
RPMSpec

Name: python-sphinx
Summary: Python documentation generator
Version: 1.7.6
Release: 3
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: 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
sed 's/@PYTHONVER@/2/' < %{SOURCE1} > %{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/.version
%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/
%files help
%doc html reST
%{_mandir}/man1/*
%changelog
* Thu Nov 14 2019 Lijin Yang <yanglijin@huawei.com> - 1:1.7.6-2
- init package