diff --git a/_multibuild b/_multibuild new file mode 100644 index 0000000..fcc7b97 --- /dev/null +++ b/_multibuild @@ -0,0 +1,3 @@ + + test + diff --git a/make_sphinx_optional.patch b/make_sphinx_optional.patch new file mode 100644 index 0000000..f7dc3f6 --- /dev/null +++ b/make_sphinx_optional.patch @@ -0,0 +1,65 @@ +From c1b08b470291b8f9334e600563efa6d2651c2a66 Mon Sep 17 00:00:00 2001 +From: StefanBruens +Date: Sun, 15 Dec 2019 02:29:27 +0100 +Subject: [PATCH] Do no require Sphinx when doing just a regular build + +Only the 'build_sphinx' command requires sphinx, so do the +import from the command. +--- + setup.py | 33 +++++++++++++++++++++------------ + 1 file changed, 21 insertions(+), 12 deletions(-) + +diff --git a/setup.py b/setup.py +index 2057839..04a5917 100644 +--- a/setup.py ++++ b/setup.py +@@ -1,11 +1,27 @@ +-from setuptools import find_packages, setup +-from sphinx.setup_command import BuildDoc +-cmdclass = {'build_sphinx': BuildDoc} ++from setuptools import find_packages, setup, Command + + name="pybeam" + version="0.5" + test_suite="test" + ++class BuildSphinx(Command): ++ description = 'Build Sphinx documentation' ++ user_options = [] ++ ++ def initialize_options(self): ++ pass ++ ++ def finalize_options(self): ++ pass ++ ++ def run(self): ++ import sphinx.cmd.build as scb ++ scb.build_main(['-b', 'html', ++ '-D', 'project=' + name, ++ '-D', 'version=' + version, ++ '-D', 'release=' + version, ++ './doc', './build/html']) ++ + setup(name=name, + version=version, + description='Python module to parse Erlang BEAM files', +@@ -15,13 +31,6 @@ setup(name=name, + license='MIT', + packages=find_packages(exclude=(test_suite,)), + test_suite=test_suite, +- install_requires=['construct>=2.9,<2.10', 'six', 'sphinx'], +- command_options={ +- 'build_sphinx': { +- 'project': ('setup.py', name), +- 'version': ('setup.py', version), +- 'release': ('setup.py', version), +- 'source_dir': ('setup.py', 'doc') +- } +- }, ++ install_requires=['construct>=2.9,<2.10', 'six'], ++ cmdclass = {'build_sphinx': BuildSphinx}, + zip_safe=False) +-- +2.24.0 + diff --git a/python-pybeam.changes b/python-pybeam.changes index f263d93..f9b6510 100644 --- a/python-pybeam.changes +++ b/python-pybeam.changes @@ -1,3 +1,11 @@ +------------------------------------------------------------------- +Sun Dec 15 02:38:15 UTC 2019 - Stefan Brüns + +- Make Sphinx dependency optional (docs are not built by default), + add make_sphinx_optional.patch +- Use _multibuild for tests to reduce the build dependencies + and simplify bootstrap for e.g. rpmlint. + ------------------------------------------------------------------- Fri Jan 11 09:48:15 UTC 2019 - Tomáš Chvátal diff --git a/python-pybeam.spec b/python-pybeam.spec index 9e52771..54d2ba3 100644 --- a/python-pybeam.spec +++ b/python-pybeam.spec @@ -1,7 +1,7 @@ # # spec file for package python-pybeam # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2019 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,17 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} -Name: python-pybeam +%global flavor @BUILD_FLAVOR@%{nil} +%if "%{flavor}" == "test" +%bcond_with doc +%bcond_without test +%define psuffix -test +%endif +%if "%{flavor}" == "" +%bcond_with doc +%bcond_with test +%endif +Name: python-pybeam%{?psuffix} Version: 0.5 Release: 0 Summary: Python module to parse Erlang BEAM files @@ -25,13 +35,19 @@ License: MIT Group: Development/Languages/Python URL: http://github.com/matwey/pybeam Source: https://files.pythonhosted.org/packages/source/p/pybeam/pybeam-%{version}.tar.gz +Patch0: make_sphinx_optional.patch +BuildRequires: %{python_module setuptools} +BuildRequires: fdupes +BuildRequires: python-rpm-macros +%if %{with doc} BuildRequires: %{python_module Sphinx} BuildRequires: %{python_module construct < 2.10} BuildRequires: %{python_module construct >= 2.9} -BuildRequires: %{python_module setuptools} +%endif +%if %{with test} +BuildRequires: %{python_module pybeam == %{version}} BuildRequires: %{python_module six} -BuildRequires: fdupes -BuildRequires: python-rpm-macros +%endif Requires: python-construct < 2.10 Requires: python-construct >= 2.9 Requires: python-six >= 1.4.0 @@ -43,21 +59,47 @@ Python module to parse Erlang BEAM files, now it is able to read imports, exports, atoms, as well as compile info and attribute chunks in pretty python format. +%package -n %{name}-doc +Summary: API Documentation for %name +Group: Documentation/HTML + +%description -n %{name}-doc +Python module to parse Erlang BEAM files, now it is able to read +imports, exports, atoms, as well as compile info and attribute +chunks in pretty python format. + %prep %setup -q -n pybeam-%{version} +%patch0 -p1 %build +%if %{without test} %python_build +%endif +%if %{with doc} +%python_build build_sphinx +%endif %install +%if %{without test} %python_install %python_expand %fdupes %{buildroot}%{$python_sitelib} +%endif %check +%if %{with test} %python_exec setup.py test +%endif +%if %{without test} %files %{python_files} %license LICENSE %{python_sitelib}/* +%endif + +%if %{with doc} +%files -n %{name}-doc +%doc build/html +%endif %changelog