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>

View File

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