Accepting request 682934 from home:mcepl:branches:devel:languages:python

- Rewrite the package to multibuild. Remove python-Sphinx-doc*.
- Fix %check to make tests passing.

OBS-URL: https://build.opensuse.org/request/show/682934
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-Sphinx?expand=0&rev=116
This commit is contained in:
Tomáš Chvátal 2019-03-09 07:50:00 +00:00 committed by Git OBS Bridge
parent 64afc05a6e
commit 35ea59dbad
5 changed files with 159 additions and 1256 deletions

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

File diff suppressed because it is too large Load Diff

View File

@ -1,163 +0,0 @@
#
# spec file for package python-Sphinx-doc
#
# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
%if 0%{?suse_version} != 1315
%bcond_without latex
%else
%bcond_with latex
%endif
Name: python-Sphinx-doc
Version: 1.8.4
Release: 0
Summary: Documentation for python-Sphinx
License: BSD-2-Clause
Group: Documentation/Other
URL: http://sphinx-doc.org
Source: https://files.pythonhosted.org/packages/source/S/Sphinx/Sphinx-%{version}.tar.gz
Patch1: disable-test.patch
BuildRequires: %{python_module Sphinx = %version}
BuildRequires: %{python_module html5lib}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module pytest}
BuildRequires: ImageMagick
BuildRequires: fdupes
BuildRequires: python-rpm-macros
BuildRequires: python3-mypy
BuildRequires: python3-typed-ast
Recommends: %{name}-html = %{version}
BuildArch: noarch
%if %{with latex}
BuildRequires: python3-Sphinx-latex
%endif
%python_subpackages
%description
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources). It was originally created for the Python documentation, and
supports Python project documentation well, but C/C++ is likewise
supported.
Sphinx uses reStructuredText as its markup language. Sphinx draws from
the parsing and translating suite, the Docutils.
This package contains the documentation for Sphinx.
%package man
Summary: Man files for python-Sphinx
Group: Documentation/Man
Requires: %{name}-man-common = %{version}
Requires: python-Sphinx = %{version}
Requires(post): update-alternatives
Requires(postun): update-alternatives
%description man
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources).
This package contains the manual pages for the Sphinx executables.
%package -n %{name}-html
Summary: HTML Documentation for python-Sphinx
Group: Documentation/HTML
Provides: %{python_module Sphinx-doc-html = %{version}}
%description -n %{name}-html
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources).
This package contains the HTML documentation for Sphinx.
%package -n %{name}-man-common
Summary: Man files for python-Sphinx - python-independent versions
Group: Documentation/Man
Provides: %{python_module Sphinx-doc-man-common = %{version}}
%description -n %{name}-man-common
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources).
This package contains the Python version-independent manual pages for the
Sphinx executables.
%prep
%setup -q -n Sphinx-%{version}
%patch1 -p1
%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
install -d %{buildroot}%{_docdir}/python-Sphinx/
install -d %{buildroot}%{_mandir}/man1/
mv build.doc/html %{buildroot}%{_docdir}/python-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 %{buildroot}%{_mandir}/man1/sphinx-all.1
%python_clone %{buildroot}%{_mandir}/man1/sphinx-apidoc.1
%python_clone %{buildroot}%{_mandir}/man1/sphinx-build.1
%python_clone %{buildroot}%{_mandir}/man1/sphinx-quickstart.1
%check
export LANG="en_US.UTF-8"
%python_exec -m pytest tests -k "not linkcheck" -v
%files %{python_files}
%license LICENSE
%doc AUTHORS EXAMPLES
%files %{python_files man}
%license LICENSE
%doc AUTHORS
%{_mandir}/man1/sphinx-all-%{python_bin_suffix}.1%{?ext_man}
%{_mandir}/man1/sphinx-apidoc-%{python_bin_suffix}.1%{?ext_man}
%{_mandir}/man1/sphinx-build-%{python_bin_suffix}.1%{?ext_man}
%{_mandir}/man1/sphinx-quickstart-%{python_bin_suffix}.1%{?ext_man}
%files -n %{name}-html
%license LICENSE
%doc AUTHORS
%dir %{_docdir}/python-Sphinx/
%{_docdir}/python-Sphinx/html/
%files -n %{name}-man-common
%license LICENSE
%doc AUTHORS
%{_mandir}/man1/sphinx-all.1%{?ext_man}
%{_mandir}/man1/sphinx-apidoc.1%{?ext_man}
%{_mandir}/man1/sphinx-build.1%{?ext_man}
%{_mandir}/man1/sphinx-quickstart.1%{?ext_man}
%changelog

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Wed Mar 6 16:28:12 CET 2019 - Matej Cepl <mcepl@suse.com>
- Rewrite the package to multibuild. Remove python-Sphinx-doc*.
- Fix %check to make tests passing.
-------------------------------------------------------------------
Tue Mar 5 10:17:45 UTC 2019 - Thomas Bechtold <tbechtold@suse.com>

View File

@ -23,7 +23,15 @@
%else
%bcond_with latex
%endif
Name: python-Sphinx
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
%endif
Name: python-Sphinx%{psuffix}
Version: 1.8.4
Release: 0
Summary: Python documentation generator
@ -40,7 +48,7 @@ BuildRequires: python-rpm-macros
#!BuildIgnore: texinfo
Requires: python-Babel >= 1.3
Requires: python-Jinja2 >= 2.3
Requires: python-Pygments >= 2.0
Requires: python-Pygments >= 2.1
Requires: python-alabaster >= 0.7
Requires: python-docutils >= 0.11
Requires: python-imagesize
@ -52,8 +60,18 @@ Requires: python-sphinxcontrib-websupport
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
%if %{with test}
BuildRequires: %{python_module Sphinx = %{version}}
BuildRequires: %{python_module html5lib}
BuildRequires: %{python_module mock}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module sphinxcontrib-websupport}
BuildRequires: ImageMagick
BuildRequires: python3-mypy
BuildRequires: python3-typed-ast
%endif
%if 0%{?suse_version} >= 1000 || 0%{?fedora_version} >= 24
Recommends: %{name}-doc-man
Recommends: python-Sphinx-doc-man
Recommends: python-SQLAlchemy >= 0.9
Recommends: python-Whoosh >= 2.0
%endif
@ -66,9 +84,6 @@ Requires: python-typing
Requires: python-typing
%endif
%endif
%if 0%{?suse_version}
Recommends: python-rst2pdf
%endif
%ifpython2
Obsoletes: %{oldpython}-sphinx < %{version}
Provides: %{oldpython}-sphinx = %{version}
@ -85,10 +100,20 @@ supported.
Sphinx uses reStructuredText as its markup language. Sphinx draws from
the parsing and translating suite, the Docutils.
%package -n python-Sphinx-lang
Summary: Translations for package python-Sphinx
Group: System/Localization
Requires: python-Sphinx = %{version}
%description -n python-Sphinx-lang
Provides translations for the "python-Sphinx" package.
%package latex
Summary: Sphinx packages for LaTeX
Group: Productivity/Publishing/TeX/Base
Requires: %{name} = %{version}
BuildRequires: %{python_module base}
Requires: python-Sphinx = %{version}
Requires: texlive-gnu-freefont
Requires: texlive-latex
Requires: texlive-metafont
Requires: texlive-pdftex
@ -161,7 +186,52 @@ Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources).
This package contains the LaTeX components for %{name}.
This package contains the LaTeX components for python-Sphinx.
%package -n python-Sphinx-doc
Summary: Man files for python-Sphinx
Group: Documentation/Other
Requires: python-Sphinx = %{version}
%description -n python-Sphinx-doc
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources). It was originally created for the Python documentation, and
supports Python project documentation well, but C/C++ is likewise
supported.
Sphinx uses reStructuredText as its markup language. Sphinx draws from
the parsing and translating suite, the Docutils.
This package contains the documentation for Sphinx.
%package -n python-Sphinx-doc-man
Summary: Man files for python-Sphinx
Group: Documentation/Man
Requires: python-Sphinx = %{version}
Requires: python-Sphinx-man-common = %{version}
Requires(post): update-alternatives
Requires(postun): update-alternatives
Obsoletes: %{python_module Sphinx-doc-man-common <= %{version}}
%description -n python-Sphinx-doc-man
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources).
This package contains the manual pages for the Sphinx executables.
%package -n python-Sphinx-doc-html
Summary: HTML Documentation for python-Sphinx
Group: Documentation/HTML
Provides: %{python_module Sphinx-doc-html = %{version}}
%description -n python-Sphinx-doc-html
Sphinx is a tool that facilitates creating documentation for Python
projects (or other documents consisting of multiple reStructuredText
sources).
This package contains the HTML documentation for Sphinx.
%prep
%setup -q -n Sphinx-%{version}
@ -172,7 +242,17 @@ sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js # Fix wrong end-of-line en
%build
%python_build
%if %{with test}
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/
%endif
%install
%if ! %{with test}
%python_install
%python_clone -a %{buildroot}%{_bindir}/sphinx-apidoc
@ -183,15 +263,53 @@ sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js # Fix wrong end-of-line en
%python_expand mkdir -p %{buildroot}%{$python_sitelib}/sphinxcontrib
%python_expand %fdupes %{buildroot}%{$python_sitelib}
# Prepare lang lists
mkdir -p %{buildroot}%{_datadir}/locale/
rm -rf %{buildroot}%{python2_sitelib}/sphinx/locale/*
ls %{buildroot}%{python3_sitelib}/sphinx/locale
find %{buildroot}%{python3_sitelib}/sphinx/locale -type f -a \( -name \*.p\* -o -name \*.js \) -print -delete
mv -fvt %{buildroot}%{_datadir}/locale/ %{buildroot}%{python3_sitelib}/sphinx/locale/*
rm -rf %{buildroot}%{python3_sitelib}/sphinx/locale
%find_lang sphinx
%else
mkdir -p %{buildroot}%{_docdir}/python-Sphinx/
mv build.doc/html %{buildroot}%{_docdir}/python-Sphinx/
mkdir -p %{buildroot}%{_mandir}/man1
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 %{buildroot}%{_mandir}/man1/sphinx-all.1
%python_clone %{buildroot}%{_mandir}/man1/sphinx-apidoc.1
%python_clone %{buildroot}%{_mandir}/man1/sphinx-build.1
%python_clone %{buildroot}%{_mandir}/man1/sphinx-quickstart.1
%endif
%if ! %{with test}
%post
%{python_install_alternative sphinx-apidoc sphinx-autogen sphinx-build sphinx-quickstart}
%postun
%python_uninstall_alternative sphinx-apidoc
%endif
%check
%if %{with test}
export LC_ALL="C.utf8"
%{python_expand export PYTHONPATH=$PYTHONPATH:%{buildroot}%{$python_sitelib}
py.test-%{$python_bin_suffix} --ignore=_build.python3 --ignore=_build.python2 -k 'not linkcheck' -v tests
# $python -mpytest --ignore=_build.python3 --ignore=_build.python2 -k 'not linkcheck' -v tests
}
%endif
%files %{python_files}
%license LICENSE
%doc AUTHORS CHANGES README.rst
%if ! %{with test}
%python_alternative %{_bindir}/sphinx-apidoc
%python_alternative %{_bindir}/sphinx-autogen
%python_alternative %{_bindir}/sphinx-build
@ -203,12 +321,36 @@ sed -i 's/\r$//' sphinx/themes/basic/static/jquery.js # Fix wrong end-of-line en
%{python_sitelib}/Sphinx-%{version}-py*.egg-info
%dir %{python_sitelib}/sphinxcontrib
%files -n python-Sphinx-lang -f sphinx.lang
# Requirements are not available on SLES
%if %{with latex}
%files %{python_files latex}
%license LICENSE
%doc AUTHORS
%{python_sitelib}/sphinx/texinputs/
%endif
%endif
%if %{with test}
%files -n python-Sphinx-doc-man
%license LICENSE
%doc AUTHORS
%{_mandir}/man1/sphinx-all-*.1%{?ext_man}
%{_mandir}/man1/sphinx-apidoc-*.1%{?ext_man}
%{_mandir}/man1/sphinx-build-*.1%{?ext_man}
%{_mandir}/man1/sphinx-quickstart-*.1%{?ext_man}
%{_mandir}/man1/sphinx-all.1%{?ext_man}
%{_mandir}/man1/sphinx-apidoc.1%{?ext_man}
%{_mandir}/man1/sphinx-build.1%{?ext_man}
%{_mandir}/man1/sphinx-quickstart.1%{?ext_man}
%files -n python-Sphinx-doc-html
%license LICENSE
%doc AUTHORS
%dir %{_docdir}/python-Sphinx/
%{_docdir}/python-Sphinx/html/
%endif
%changelog