Accepting request 490866 from devel:languages:python:singlespec

- update for singlespec
- run tests for all python versions
- include python-enum34 for test compatibility

OBS-URL: https://build.opensuse.org/request/show/490866
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Sphinx?expand=0&rev=77
This commit is contained in:
Todd R 2017-04-24 20:54:10 +00:00 committed by Git OBS Bridge
parent 62261ffc42
commit 1eb7626aa3
2 changed files with 93 additions and 88 deletions

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
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

View File

@ -16,6 +16,7 @@
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
Name: python-Sphinx
Version: 1.5.2
Release: 0
@ -25,30 +26,35 @@ License: BSD-2-Clause
Group: Development/Languages/Python
Source: https://pypi.io/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: python-devel
BuildRequires: python-setuptools
# Documentation requirements:
BuildRequires: python-Babel
BuildRequires: python-Jinja2 >= 2.3
BuildRequires: python-alabaster
BuildRequires: python-docutils >= 0.7
BuildRequires: python-imagesize
BuildRequires: python-mock
BuildRequires: python-requests >= 2.4
BuildRequires: python-six >= 1.5
BuildRequires: python-snowballstemmer
BuildRequires: python-sphinx_rtd_theme
# Testsuite requirements:
BuildRequires: python-Pygments >= 2.1
BuildRequires: %{python_module devel}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
# SECTION documentation requirements
BuildRequires: %{python_module Babel >= 1.3}
BuildRequires: %{python_module Jinja2 >= 2.3}
BuildRequires: %{python_module Pygments >= 2.1}
BuildRequires: %{python_module alabaster >= 0.7}
BuildRequires: %{python_module docutils >= 0.11}
BuildRequires: %{python_module imagesize}
BuildRequires: %{python_module requests >= 2.4}
BuildRequires: %{python_module six >= 1.5}
BuildRequires: %{python_module snowballstemmer >= 1.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-html5lib
BuildRequires: python-pytest
Requires(post): update-alternatives
Requires(postun): update-alternatives
Requires: python-Babel
Requires: python-Babel >= 1.3
Requires: python-Jinja2 >= 2.3
Requires: python-Pygments >= 2.0
Requires: python-alabaster
Requires: python-alabaster >= 0.7
Requires: python-docutils >= 0.11
Requires: python-imagesize
Requires: python-requests >= 2.4
@ -62,13 +68,13 @@ Recommends: python-rst2pdf
# workaround for suboptimal CentOS-7 project config
#!BuildIgnore: texinfo
%ifpython2
Provides: python-sphinx = %{version}
Obsoletes: python-sphinx < %{version}
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
%{!?python_sitelib: %global python_sitelib %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}
%else
BuildArch: noarch
%endif
BuildArch: noarch
%python_subpackages
%description
Sphinx is a tool that makes it easy to create intelligent and beautiful
@ -82,12 +88,13 @@ 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.
%package doc
%package -n python-Sphinx-doc
Summary: Documentation for %{name}
Group: Documentation/Other
Requires: %{name} = %{version}
Provides: python2-Sphinx-doc
Provides: python3-Sphinx-doc
%description doc
%description -n python-Sphinx-doc
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
@ -102,6 +109,7 @@ and translating suite, the Docutils.
%package latex
Summary: Sphinx packages for LaTeX
Group: Productivity/Publishing/TeX/Base
Requires: %{name} = %{version}
Requires: texlive-latex
Requires: texlive-metafont
Requires: texlive-pdftex
@ -179,94 +187,84 @@ This package contains the LaTeX components for %{name}.
%prep
%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
# Add Interpreter version suffix to entrypoints (and thus /usr/bin binaries) to
# 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
sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js # Fix wrong end-of-line encoding
%build
python setup.py build
python setup.py build_sphinx && rm build/sphinx/html/.buildinfo
python setup.py build_sphinx -b man
# build library
%python_build
# 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
python setup.py install --prefix=%{_prefix} --root=%{buildroot}
mkdir -p %{buildroot}%{_sysconfdir}/alternatives
%{python_expand %$python_install
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
mv %{buildroot}%{_bindir}/sphinx-$B{,-%$python_bin_suffix}
done }
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
touch %{buildroot}%{_sysconfdir}/alternatives/sphinx-$M.1.gz
ln -sf %{_sysconfdir}/alternatives/sphinx-$M.1.gz %{buildroot}%{_mandir}/man1/sphinx-$M.1.gz
for B in apidoc autogen build quickstart ; do
%prepare_alternative sphinx-$B
done
%find_lang sphinx
for M in all apidoc build quickstart ; do
%{python_expand install -m 644 build.doc/man/sphinx-$M.1 %{buildroot}%{_mandir}/man1/sphinx-$M-%{$python_bin_suffix}.1}
%prepare_alternative -t %{_mandir}/man1/sphinx-$M.1.gz sphinx-$M.1.gz
done
%fdupes %{buildroot}%{_prefix}
%check
# linkcheck tests need network access (which is not available in OBS)
rm tests/test_build_linkcheck.py
PYTHONPATH=$PWD LANG=en_US.UTF-8 make test
export PYTHONPATH=$PWD
export LANG=en_US.UTF-8
# exclude online-only linkcheck test
export EXCLUDES="--ignore=test_build_linkcheck.py"
%{python_expand make test PYTHON=%__$python TEST="$EXCLUDES"}
%post
update-alternatives \
--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 \
%{python_install_alternative sphinx-apidoc} \
--slave %{_bindir}/sphinx-build sphinx-build %{_bindir}/sphinx-build-%{python_bin_suffix} \
--slave %{_bindir}/sphinx-autogen sphinx-autogen %{_bindir}/sphinx-autogen-%{python_bin_suffix} \
--slave %{_bindir}/sphinx-quickstart sphinx-quickstart %{_bindir}/sphinx-quickstart-%{python_bin_suffix} \
--slave %{_mandir}/man1/sphinx-all.1.gz sphinx-all.1 %{_mandir}/man1/sphinx-all-%{python_bin_suffix}.1.gz \
--slave %{_mandir}/man1/sphinx-apidoc.1.gz sphinx-apidoc.1 %{_mandir}/man1/sphinx-apidoc-%{python_bin_suffix}.1.gz \
--slave %{_mandir}/man1/sphinx-build.1.gz sphinx-build.1 %{_mandir}/man1/sphinx-build-%{python_bin_suffix}.1.gz \
--slave %{_mandir}/man1/sphinx-quickstart.1.gz sphinx-quickstart.1 %{_mandir}/man1/sphinx-quickstart-%{python_bin_suffix}.1.gz \
%postun
if [ $1 -eq 0 ] ; then
update-alternatives --remove sphinx-apidoc %{_bindir}/sphinx-apidoc-%{py_ver}
fi
%python_uninstall_alternative sphinx-apidoc
%files -f sphinx.lang
%files %{python_files}
%defattr(-,root,root,-)
%doc AUTHORS CHANGES LICENSE README.rst
%{_bindir}/sphinx-apidoc
%{_bindir}/sphinx-apidoc-%{py_ver}
%{_bindir}/sphinx-autogen
%{_bindir}/sphinx-autogen-%{py_ver}
%{_bindir}/sphinx-build
%{_bindir}/sphinx-build-%{py_ver}
%{_bindir}/sphinx-quickstart
%{_bindir}/sphinx-quickstart-%{py_ver}
%{_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_alternative %{_bindir}/sphinx-apidoc
%python_alternative %{_bindir}/sphinx-autogen
%python_alternative %{_bindir}/sphinx-build
%python_alternative %{_bindir}/sphinx-quickstart
%python_alternative %{_mandir}/man1/sphinx-all.1.gz
%python_alternative %{_mandir}/man1/sphinx-apidoc.1.gz
%python_alternative %{_mandir}/man1/sphinx-build.1.gz
%python_alternative %{_mandir}/man1/sphinx-quickstart.1.gz
%{python_sitelib}/sphinx/
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 )
%exclude %{python_sitelib}/sphinx/texinputs/
%endif
%{python_sitelib}/Sphinx-%{version}-py%{py_ver}.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
%{python_sitelib}/Sphinx-%{version}-py%{python_version}.egg-info
%files doc
%files -n python-Sphinx-doc
%defattr(-,root,root,-)
%doc EXAMPLES build/sphinx/html
%doc EXAMPLES build.doc/html
# Requirements are not available on SLES
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 )
%files latex
%files %{python_files latex}
%defattr(-,root,root,-)
%doc AUTHORS LICENSE
%{python_sitelib}/sphinx/texinputs/