1
0
forked from pool/python-Sphinx

Accepting request 493489 from devel:languages:python

1

OBS-URL: https://build.opensuse.org/request/show/493489
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-Sphinx?expand=0&rev=39
This commit is contained in:
Dominique Leuenberger 2017-05-16 12:29:54 +00:00 committed by Git OBS Bridge
commit cb81966aa2
2 changed files with 114 additions and 96 deletions

View File

@ -1,3 +1,20 @@
-------------------------------------------------------------------
Mon May 8 15:38:53 UTC 2017 - toddrme2178@gmail.com
- Fix update-alternatives.
-------------------------------------------------------------------
Fri May 5 14:55:31 UTC 2017 - toddrme2178@gmail.com
- Fix old obsoletes/provides.
-------------------------------------------------------------------
Mon Feb 20 14:18:17 UTC 2017 - jmatejek@suse.com
- update for singlespec
- run tests for all python versions
- include python-enum34 for test compatibility
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Feb 16 11:18:38 UTC 2017 - tbechtold@suse.com Thu Feb 16 11:18:38 UTC 2017 - tbechtold@suse.com

View File

@ -16,6 +16,14 @@
# #
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 )
%bcond_without latex
%else
%bcond_with latex
%endif
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%define oldpython python
Name: python-Sphinx Name: python-Sphinx
Version: 1.5.2 Version: 1.5.2
Release: 0 Release: 0
@ -25,36 +33,41 @@ License: BSD-2-Clause
Group: Development/Languages/Python Group: Development/Languages/Python
Source: https://pypi.io/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz Source: https://pypi.io/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel BuildRequires: %{python_module devel}
BuildRequires: python-setuptools BuildRequires: %{python_module setuptools}
# Documentation requirements: BuildRequires: fdupes
BuildRequires: python-Babel BuildRequires: python-rpm-macros
BuildRequires: python-Jinja2 >= 2.3 # SECTION documentation requirements
BuildRequires: python-alabaster BuildRequires: %{python_module Babel >= 1.3}
BuildRequires: python-docutils >= 0.7 BuildRequires: %{python_module Jinja2 >= 2.3}
BuildRequires: python-imagesize BuildRequires: %{python_module Pygments >= 2.1}
BuildRequires: python-mock BuildRequires: %{python_module alabaster >= 0.7}
BuildRequires: python-requests >= 2.4 BuildRequires: %{python_module docutils >= 0.11}
BuildRequires: python-six >= 1.5 BuildRequires: %{python_module imagesize}
BuildRequires: python-snowballstemmer BuildRequires: %{python_module requests >= 2.4}
BuildRequires: python-sphinx_rtd_theme BuildRequires: %{python_module six >= 1.5}
# Testsuite requirements: BuildRequires: %{python_module snowballstemmer >= 1.1}
BuildRequires: python-Pygments >= 2.1 BuildRequires: %{python_module sphinx_rtd_theme}
# ENDSECTION doc requirements
# SECTION testsuite requirements
BuildRequires: %{python_module html5lib}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module pytest}
# ENDSECTION
# for python 2 only:
BuildRequires: python-enum34 BuildRequires: python-enum34
BuildRequires: python-html5lib Requires: python-Babel >= 1.3
BuildRequires: python-pytest
Requires(post): update-alternatives
Requires(postun): update-alternatives
Requires: python-Babel
Requires: python-Jinja2 >= 2.3 Requires: python-Jinja2 >= 2.3
Requires: python-Pygments >= 2.0 Requires: python-Pygments >= 2.0
Requires: python-alabaster Requires: python-alabaster >= 0.7
Requires: python-docutils >= 0.11 Requires: python-docutils >= 0.11
Requires: python-imagesize Requires: python-imagesize
Requires: python-requests >= 2.4 Requires: python-requests >= 2.4
Requires: python-six >= 1.5 Requires: python-six >= 1.5
Requires: python-snowballstemmer >= 1.1 Requires: python-snowballstemmer >= 1.1
Requires: python-sphinx_rtd_theme Requires: python-sphinx_rtd_theme
Requires(post): update-alternatives
Requires(postun): update-alternatives
%if 0%{?suse_version} %if 0%{?suse_version}
Recommends: python-rst2pdf Recommends: python-rst2pdf
@ -62,13 +75,13 @@ Recommends: python-rst2pdf
# workaround for suboptimal CentOS-7 project config # workaround for suboptimal CentOS-7 project config
#!BuildIgnore: texinfo #!BuildIgnore: texinfo
Provides: python-sphinx = %{version} %ifpython2
Obsoletes: python-sphinx < %{version} Obsoletes: %{oldpython}-sphinx < %{version}
%if 0%{?suse_version} && 0%{?suse_version} <= 1110 Provides: %{oldpython}-sphinx = %{version}
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch: noarch
%endif %endif
BuildArch: noarch
%python_subpackages
%description %description
Sphinx is a tool that makes it easy to create intelligent and beautiful Sphinx is a tool that makes it easy to create intelligent and beautiful
@ -82,12 +95,12 @@ Sphinx uses reStructuredText as its markup language, and many of its strengths
come from the power and straightforwardness of reStructuredText and its parsing come from the power and straightforwardness of reStructuredText and its parsing
and translating suite, the Docutils. and translating suite, the Docutils.
%package doc %package -n %{name}-doc
Summary: Documentation for %{name} Summary: Documentation for %{name}
Group: Documentation/Other Group: Documentation/Other
Requires: %{name} = %{version} Provides: %{python_module Sphinx-doc = %{version}}
%description doc %description -n %{name}-doc
Sphinx is a tool that makes it easy to create intelligent and beautiful Sphinx is a tool that makes it easy to create intelligent and beautiful
documentation for Python projects (or other documents consisting of multiple documentation for Python projects (or other documents consisting of multiple
reStructuredText sources), written by Georg Brandl. It was originally created reStructuredText sources), written by Georg Brandl. It was originally created
@ -102,6 +115,7 @@ and translating suite, the Docutils.
%package latex %package latex
Summary: Sphinx packages for LaTeX Summary: Sphinx packages for LaTeX
Group: Productivity/Publishing/TeX/Base Group: Productivity/Publishing/TeX/Base
Requires: %{name} = %{version}
Requires: texlive-latex Requires: texlive-latex
Requires: texlive-metafont Requires: texlive-metafont
Requires: texlive-pdftex Requires: texlive-pdftex
@ -179,94 +193,81 @@ This package contains the LaTeX components for %{name}.
%prep %prep
%setup -q -n Sphinx-%{version} %setup -q -n Sphinx-%{version}
rm -r sphinx/locale/__init__.pyc # drop shipped garbage
sed -i '/#\!/d' sphinx/pycode/pgen2/token.py # Fix non-excutable-script warning sed -i '/#\!/d' sphinx/pycode/pgen2/token.py # Fix non-excutable-script warning
# Add Interpreter version suffix to entrypoints (and thus /usr/bin binaries) to sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js # Fix wrong end-of-line encoding
# allow for update-alternatives later on:
sed -i 's/\(sphinx-.*\) =/\1-%{py_ver} =/' setup.py
# Fix wrong end-of-line encoding
sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js
%build %build
python setup.py build # build library
python setup.py build_sphinx && rm build/sphinx/html/.buildinfo %python_build
python setup.py build_sphinx -b man
# build documentation
%{_python_use_flavor python3}
mkdir build.doc
%__python3 setup.py build_sphinx && rm build/sphinx/html/.buildinfo
%__python3 setup.py build_sphinx -b man
mv build/sphinx/{html,man} build.doc
%install %install
python setup.py install --prefix=%{_prefix} --root=%{buildroot} %python_install
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
for B in apidoc autogen build quickstart ; do
touch %{buildroot}%{_sysconfdir}/alternatives/sphinx-$B
ln -sf %{_sysconfdir}/alternatives/sphinx-$B %{buildroot}/%{_bindir}/sphinx-$B
done
install -d %{buildroot}%{_mandir}/man1/ install -d %{buildroot}%{_mandir}/man1/
for M in all apidoc build quickstart ; do
install -m 644 build/sphinx/man/sphinx-$M.1 %{buildroot}%{_mandir}/man1/sphinx-$M-%{py_ver}.1 mv build.doc/man/sphinx-all.1 %{buildroot}%{_mandir}/man1/sphinx-all.1
touch %{buildroot}%{_sysconfdir}/alternatives/sphinx-$M.1.gz mv build.doc/man/sphinx-apidoc.1 %{buildroot}%{_mandir}/man1/sphinx-apidoc.1
ln -sf %{_sysconfdir}/alternatives/sphinx-$M.1.gz %{buildroot}%{_mandir}/man1/sphinx-$M.1.gz mv build.doc/man/sphinx-build.1 %{buildroot}%{_mandir}/man1/sphinx-build.1
done mv build.doc/man/sphinx-quickstart.1 %{buildroot}%{_mandir}/man1/sphinx-quickstart.1
%find_lang sphinx
%python_clone -a %{buildroot}%{_bindir}/sphinx-apidoc
%python_clone -a %{buildroot}%{_bindir}/sphinx-autogen
%python_clone -a %{buildroot}%{_bindir}/sphinx-build
%python_clone -a %{buildroot}%{_bindir}/sphinx-quickstart
%python_clone -a %{buildroot}%{_mandir}/man1/sphinx-all.1
%python_clone -a %{buildroot}%{_mandir}/man1/sphinx-apidoc.1
%python_clone -a %{buildroot}%{_mandir}/man1/sphinx-build.1
%python_clone -a %{buildroot}%{_mandir}/man1/sphinx-quickstart.1
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check %check
# linkcheck tests need network access (which is not available in OBS) export PYTHONPATH=$PWD
rm tests/test_build_linkcheck.py export LANG=en_US.UTF-8
PYTHONPATH=$PWD LANG=en_US.UTF-8 make test # exclude online-only linkcheck test
export EXCLUDES="--ignore=test_build_linkcheck.py"
%{python_expand make test PYTHON=%__$python TEST="$EXCLUDES"}
%post %post
update-alternatives \ %{python_install_alternative sphinx-apidoc sphinx-autogen sphinx-build sphinx-quickstart sphinx-all.1%ext_man sphinx-apidoc.1%ext_man sphinx-build.1%ext_man sphinx-quickstart.1%ext_man}
--install %{_bindir}/sphinx-apidoc sphinx-apidoc %{_bindir}/sphinx-apidoc-%{py_ver} 20 \
--slave %{_bindir}/sphinx-build sphinx-build %{_bindir}/sphinx-build-%{py_ver} \
--slave %{_bindir}/sphinx-autogen sphinx-autogen %{_bindir}/sphinx-autogen-%{py_ver} \
--slave %{_bindir}/sphinx-quickstart sphinx-quickstart %{_bindir}/sphinx-quickstart-%{py_ver} \
--slave %{_mandir}/man1/sphinx-all.1.gz sphinx-all.1 %{_mandir}/man1/sphinx-all-%{py_ver}.1.gz \
--slave %{_mandir}/man1/sphinx-apidoc.1.gz sphinx-apidoc.1 %{_mandir}/man1/sphinx-apidoc-%{py_ver}.1.gz \
--slave %{_mandir}/man1/sphinx-build.1.gz sphinx-build.1 %{_mandir}/man1/sphinx-build-%{py_ver}.1.gz \
--slave %{_mandir}/man1/sphinx-quickstart.1.gz sphinx-quickstart.1 %{_mandir}/man1/sphinx-quickstart-%{py_ver}.1.gz \
%postun %postun
if [ $1 -eq 0 ] ; then %python_uninstall_alternative sphinx-apidoc
update-alternatives --remove sphinx-apidoc %{_bindir}/sphinx-apidoc-%{py_ver}
fi
%files -f sphinx.lang %files %{python_files}
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc AUTHORS CHANGES LICENSE README.rst %doc AUTHORS CHANGES LICENSE README.rst
%{_bindir}/sphinx-apidoc %python_alternative %{_bindir}/sphinx-apidoc
%{_bindir}/sphinx-apidoc-%{py_ver} %python_alternative %{_bindir}/sphinx-autogen
%{_bindir}/sphinx-autogen %python_alternative %{_bindir}/sphinx-build
%{_bindir}/sphinx-autogen-%{py_ver} %python_alternative %{_bindir}/sphinx-quickstart
%{_bindir}/sphinx-build %python_alternative %{_mandir}/man1/sphinx-all.1%ext_man
%{_bindir}/sphinx-build-%{py_ver} %python_alternative %{_mandir}/man1/sphinx-apidoc.1%ext_man
%{_bindir}/sphinx-quickstart %python_alternative %{_mandir}/man1/sphinx-build.1%ext_man
%{_bindir}/sphinx-quickstart-%{py_ver} %python_alternative %{_mandir}/man1/sphinx-quickstart.1%ext_man
%{_mandir}/man1/sphinx-all.1.gz
%{_mandir}/man1/sphinx-all-%{py_ver}.1.gz
%{_mandir}/man1/sphinx-apidoc.1.gz
%{_mandir}/man1/sphinx-apidoc-%{py_ver}.1.gz
%{_mandir}/man1/sphinx-build.1.gz
%{_mandir}/man1/sphinx-build-%{py_ver}.1.gz
%{_mandir}/man1/sphinx-quickstart.1.gz
%{_mandir}/man1/sphinx-quickstart-%{py_ver}.1.gz
%{python_sitelib}/sphinx/ %{python_sitelib}/sphinx/
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 ) %if %{with latex}
%exclude %{python_sitelib}/sphinx/texinputs/ %exclude %{python_sitelib}/sphinx/texinputs/
%endif %endif
%{python_sitelib}/Sphinx-%{version}-py%{py_ver}.egg-info %{python_sitelib}/Sphinx-%{version}-py*.egg-info
%ghost %{_sysconfdir}/alternatives/sphinx-apidoc
%ghost %{_sysconfdir}/alternatives/sphinx-autogen
%ghost %{_sysconfdir}/alternatives/sphinx-build
%ghost %{_sysconfdir}/alternatives/sphinx-quickstart
%ghost %{_sysconfdir}/alternatives/sphinx-all.1.gz
%ghost %{_sysconfdir}/alternatives/sphinx-apidoc.1.gz
%ghost %{_sysconfdir}/alternatives/sphinx-build.1.gz
%ghost %{_sysconfdir}/alternatives/sphinx-quickstart.1.gz
%files doc %files -n %{name}-doc
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc EXAMPLES build/sphinx/html %doc AUTHORS LICENSE EXAMPLES
%doc build.doc/html/
# Requirements are not available on SLES # Requirements are not available on SLES
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 ) %if %{with latex}
%files latex %files %{python_files latex}
%defattr(-,root,root,-) %defattr(-,root,root,-)
%doc AUTHORS LICENSE %doc AUTHORS LICENSE
%{python_sitelib}/sphinx/texinputs/ %{python_sitelib}/sphinx/texinputs/