14
0
forked from pool/python-pybeam

Accepting request 757128 from home:StefanBruens:branches:devel:languages:python

- 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.

OBS-URL: https://build.opensuse.org/request/show/757128
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-pybeam?expand=0&rev=28
This commit is contained in:
2019-12-15 13:43:09 +00:00
committed by Git OBS Bridge
parent 9b390d7e44
commit 3b3573e3f9
4 changed files with 123 additions and 5 deletions

3
_multibuild Normal file
View File

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

View File

@@ -0,0 +1,65 @@
From c1b08b470291b8f9334e600563efa6d2651c2a66 Mon Sep 17 00:00:00 2001
From: StefanBruens <stefan.bruens@rwth-aachen.de>
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

View File

@@ -1,3 +1,11 @@
-------------------------------------------------------------------
Sun Dec 15 02:38:15 UTC 2019 - Stefan Brüns <stefan.bruens@rwth-aachen.de>
- 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 <tchvatal@suse.com> Fri Jan 11 09:48:15 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>

View File

@@ -1,7 +1,7 @@
# #
# spec file for package python-pybeam # 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 # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,17 @@
%{?!python_module:%define python_module() python-%{**} python3-%{**}} %{?!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 Version: 0.5
Release: 0 Release: 0
Summary: Python module to parse Erlang BEAM files Summary: Python module to parse Erlang BEAM files
@@ -25,13 +35,19 @@ License: MIT
Group: Development/Languages/Python Group: Development/Languages/Python
URL: http://github.com/matwey/pybeam URL: http://github.com/matwey/pybeam
Source: https://files.pythonhosted.org/packages/source/p/pybeam/pybeam-%{version}.tar.gz 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 Sphinx}
BuildRequires: %{python_module construct < 2.10} BuildRequires: %{python_module construct < 2.10}
BuildRequires: %{python_module construct >= 2.9} BuildRequires: %{python_module construct >= 2.9}
BuildRequires: %{python_module setuptools} %endif
%if %{with test}
BuildRequires: %{python_module pybeam == %{version}}
BuildRequires: %{python_module six} BuildRequires: %{python_module six}
BuildRequires: fdupes %endif
BuildRequires: python-rpm-macros
Requires: python-construct < 2.10 Requires: python-construct < 2.10
Requires: python-construct >= 2.9 Requires: python-construct >= 2.9
Requires: python-six >= 1.4.0 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 imports, exports, atoms, as well as compile info and attribute
chunks in pretty python format. 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 %prep
%setup -q -n pybeam-%{version} %setup -q -n pybeam-%{version}
%patch0 -p1
%build %build
%if %{without test}
%python_build %python_build
%endif
%if %{with doc}
%python_build build_sphinx
%endif
%install %install
%if %{without test}
%python_install %python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib} %python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%check %check
%if %{with test}
%python_exec setup.py test %python_exec setup.py test
%endif
%if %{without test}
%files %{python_files} %files %{python_files}
%license LICENSE %license LICENSE
%{python_sitelib}/* %{python_sitelib}/*
%endif
%if %{with doc}
%files -n %{name}-doc
%doc build/html
%endif
%changelog %changelog