From 1eb7626aa36663bf5cd25274fa13fe20d7d1f113da3cf31535d2bfe162d0f1c8 Mon Sep 17 00:00:00 2001 From: Todd R Date: Mon, 24 Apr 2017 20:54:10 +0000 Subject: [PATCH 1/3] 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 --- python-Sphinx.changes | 7 ++ python-Sphinx.spec | 174 +++++++++++++++++++++--------------------- 2 files changed, 93 insertions(+), 88 deletions(-) diff --git a/python-Sphinx.changes b/python-Sphinx.changes index 0663304..48d44ac 100644 --- a/python-Sphinx.changes +++ b/python-Sphinx.changes @@ -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 diff --git a/python-Sphinx.spec b/python-Sphinx.spec index 065ace9..12b2740 100644 --- a/python-Sphinx.spec +++ b/python-Sphinx.spec @@ -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/ From 85f4e554afdbb1083a4303ba8aa0f05a2aa958d192caf96ae3ee6d9882f4360b Mon Sep 17 00:00:00 2001 From: Todd R Date: Fri, 5 May 2017 21:09:39 +0000 Subject: [PATCH 2/3] Accepting request 493082 from home:TheBlackCat:branches:devel:languages:python Fix old obsoletes/provides. OBS-URL: https://build.opensuse.org/request/show/493082 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Sphinx?expand=0&rev=78 --- python-Sphinx.changes | 5 +++++ python-Sphinx.spec | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/python-Sphinx.changes b/python-Sphinx.changes index 48d44ac..032ab03 100644 --- a/python-Sphinx.changes +++ b/python-Sphinx.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +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 diff --git a/python-Sphinx.spec b/python-Sphinx.spec index 12b2740..122db09 100644 --- a/python-Sphinx.spec +++ b/python-Sphinx.spec @@ -17,6 +17,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define oldpython python Name: python-Sphinx Version: 1.5.2 Release: 0 @@ -69,8 +70,8 @@ Recommends: python-rst2pdf #!BuildIgnore: texinfo %ifpython2 -Provides: python-sphinx = %{version} -Obsoletes: python-sphinx < %{version} +Obsoletes: %{oldpython}-sphinx < %{version} +Provides: %{oldpython}-sphinx = %{version} %endif BuildArch: noarch From 04dd5168d33345720c4c2393e6cb6b7769a8691d61a385b4df177c4d840c5bd9 Mon Sep 17 00:00:00 2001 From: Todd R Date: Mon, 8 May 2017 15:39:30 +0000 Subject: [PATCH 3/3] Accepting request 493488 from home:TheBlackCat:branches:devel:languages:python - Fix update-alternatives. OBS-URL: https://build.opensuse.org/request/show/493488 OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Sphinx?expand=0&rev=79 --- python-Sphinx.changes | 5 +++ python-Sphinx.spec | 72 ++++++++++++++++++++++--------------------- 2 files changed, 42 insertions(+), 35 deletions(-) diff --git a/python-Sphinx.changes b/python-Sphinx.changes index 032ab03..30721e5 100644 --- a/python-Sphinx.changes +++ b/python-Sphinx.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +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 diff --git a/python-Sphinx.spec b/python-Sphinx.spec index 122db09..85adb76 100644 --- a/python-Sphinx.spec +++ b/python-Sphinx.spec @@ -16,6 +16,12 @@ # +%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 @@ -50,8 +56,6 @@ BuildRequires: %{python_module pytest} # ENDSECTION # for python 2 only: BuildRequires: python-enum34 -Requires(post): update-alternatives -Requires(postun): update-alternatives Requires: python-Babel >= 1.3 Requires: python-Jinja2 >= 2.3 Requires: python-Pygments >= 2.0 @@ -62,6 +66,8 @@ 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 @@ -89,13 +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 -n python-Sphinx-doc +%package -n %{name}-doc Summary: Documentation for %{name} Group: Documentation/Other -Provides: python2-Sphinx-doc -Provides: python3-Sphinx-doc +Provides: %{python_module Sphinx-doc = %{version}} -%description -n python-Sphinx-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 @@ -204,23 +209,26 @@ mkdir build.doc mv build/sphinx/{html,man} build.doc %install -%{python_expand %$python_install -for B in apidoc autogen build quickstart ; do - mv %{buildroot}%{_bindir}/sphinx-$B{,-%$python_bin_suffix} -done } +%python_install install -d %{buildroot}%{_mandir}/man1/ -for B in apidoc autogen build quickstart ; do - %prepare_alternative sphinx-$B -done +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 -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 +%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 -%fdupes %{buildroot}%{_prefix} +%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 export PYTHONPATH=$PWD @@ -230,14 +238,7 @@ export EXCLUDES="--ignore=test_build_linkcheck.py" %{python_expand make test PYTHON=%__$python TEST="$EXCLUDES"} %post -%{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 \ +%{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 %python_uninstall_alternative sphinx-apidoc @@ -249,22 +250,23 @@ export EXCLUDES="--ignore=test_build_linkcheck.py" %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_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%{python_version}.egg-info +%{python_sitelib}/Sphinx-%{version}-py*.egg-info -%files -n python-Sphinx-doc +%files -n %{name}-doc %defattr(-,root,root,-) -%doc EXAMPLES build.doc/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 ) +%if %{with latex} %files %{python_files latex} %defattr(-,root,root,-) %doc AUTHORS LICENSE