Name:          python-sphinx
Summary:       Python documentation generator
Version:       1.8.4
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:       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@/3/' < %{SOURCE1} > %{buildroot}%{_modulesdir}/python-sphinx/.version

for filename in sphinx-{build,apidoc,autogen,quickstart} ; do
  ln -s %{_libexecdir}/python3-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
%{python2_sitelib}/sphinx/
%{python2_sitelib}/Sphinx-%{version}-py%{python2_version}.egg-info/
%{_libexecdir}/python2-sphinx/

%files -n python3-sphinx
%license LICENSE
%doc AUTHORS CHANGES EXAMPLES README.rst
%{_bindir}/sphinx-*-3*
%{_bindir}/sphinx-build
%{_bindir}/sphinx-apidoc
%{_bindir}/sphinx-autogen
%{_bindir}/sphinx-quickstart
%{python3_sitelib}/sphinx/
%{python3_sitelib}/Sphinx-%{version}-py%{python3_version}.egg-info/
%{_libexecdir}/python3-sphinx/
%{_modulesdir}/python-sphinx/.version

%files help
%doc html reST
%{_mandir}/man1/*

%changelog
* Thu May 27 2021 liksh <liks11@chinaunicom.cn>
- build python2 package need cmd sphinx-build like python3-sphinx
- issue : https://gitee.com/src-openeuler/python-sphinx/issues/I3T91U

* Mon Aug 31 2020 shixuantong <shixuantong@huawei.com> - 1.8.4-1
- update version to 1.8.4

* Thu Feb 20 2020 Lijin Yang <yanglijin@huawei.com> - 1:1.7.6-6
- delete useless files

* Thu Feb 20 2020 Lijin Yang <yanglijin@huawei.com> - 1:1.7.6-5
- Type: enhancement
- ID: NA
- SUG: NA
- DESC: make sphinx-build enable

* Thu Nov 14 2019 Lijin Yang <yanglijin@huawei.com> - 1:1.7.6-4
- init package
