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

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
Version: 1.5.2
Release: 0
@ -25,36 +33,41 @@ 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
Requires: python-six >= 1.5
Requires: python-snowballstemmer >= 1.1
Requires: python-sphinx_rtd_theme
Requires(post): update-alternatives
Requires(postun): update-alternatives
%if 0%{?suse_version}
Recommends: python-rst2pdf
@ -62,13 +75,13 @@ Recommends: python-rst2pdf
# workaround for suboptimal CentOS-7 project config
#!BuildIgnore: texinfo
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
%ifpython2
Obsoletes: %{oldpython}-sphinx < %{version}
Provides: %{oldpython}-sphinx = %{version}
%endif
BuildArch: noarch
%python_subpackages
%description
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
and translating suite, the Docutils.
%package doc
%package -n %{name}-doc
Summary: Documentation for %{name}
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
documentation for Python projects (or other documents consisting of multiple
reStructuredText sources), written by Georg Brandl. It was originally created
@ -102,6 +115,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 +193,81 @@ 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
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
%python_install
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
done
%find_lang sphinx
mv build.doc/man/sphinx-all.1 %{buildroot}%{_mandir}/man1/sphinx-all.1
mv build.doc/man/sphinx-apidoc.1 %{buildroot}%{_mandir}/man1/sphinx-apidoc.1
mv build.doc/man/sphinx-build.1 %{buildroot}%{_mandir}/man1/sphinx-build.1
mv build.doc/man/sphinx-quickstart.1 %{buildroot}%{_mandir}/man1/sphinx-quickstart.1
%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
# 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 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}
%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%ext_man
%python_alternative %{_mandir}/man1/sphinx-apidoc.1%ext_man
%python_alternative %{_mandir}/man1/sphinx-build.1%ext_man
%python_alternative %{_mandir}/man1/sphinx-quickstart.1%ext_man
%{python_sitelib}/sphinx/
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 )
%if %{with latex}
%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*.egg-info
%files doc
%files -n %{name}-doc
%defattr(-,root,root,-)
%doc EXAMPLES build/sphinx/html
%doc AUTHORS LICENSE EXAMPLES
%doc build.doc/html/
# Requirements are not available on SLES
%if 0%{?suse_version} && ( 0%{?suse_version} != 1315 && 0%{?suse_version} > 1110 )
%files latex
%if %{with latex}
%files %{python_files latex}
%defattr(-,root,root,-)
%doc AUTHORS LICENSE
%{python_sitelib}/sphinx/texinputs/