Accepting request 612693 from devel:tools
OBS-URL: https://build.opensuse.org/request/show/612693 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/grpc?expand=0&rev=9
This commit is contained in:
commit
9c3abd0537
@ -0,0 +1,68 @@
|
|||||||
|
From 30ce693621d61efb8596503a0da212077a8c4daa Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Bechtold <tbechtold@suse.com>
|
||||||
|
Date: Thu, 24 May 2018 17:12:13 +0200
|
||||||
|
Subject: [PATCH 1/3] Allow building the python module with system openssl
|
||||||
|
|
||||||
|
When building the python module and using the new
|
||||||
|
GRPC_PYTHON_BUILD_SYSTEM_OPENSSL env variable, the third party
|
||||||
|
boringssl code is not compiled. Instead, the openssl shared library
|
||||||
|
installed on the system is used during runtime.
|
||||||
|
This is useful for distributions who don't want to include code copies
|
||||||
|
but use shared libraries instead.
|
||||||
|
---
|
||||||
|
setup.py | 17 +++++++++++++++--
|
||||||
|
1 file changed, 15 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 99d1a1c504..3a5ed56c64 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -35,7 +35,7 @@ egg_info.manifest_maker.template = 'PYTHON-MANIFEST.in'
|
||||||
|
PY3 = sys.version_info.major == 3
|
||||||
|
PYTHON_STEM = os.path.join('src', 'python', 'grpcio')
|
||||||
|
CORE_INCLUDE = ('include', '.',)
|
||||||
|
-BORINGSSL_INCLUDE = (os.path.join('third_party', 'boringssl', 'include'),)
|
||||||
|
+SSL_INCLUDE = (os.path.join('third_party', 'boringssl', 'include'),)
|
||||||
|
ZLIB_INCLUDE = (os.path.join('third_party', 'zlib'),)
|
||||||
|
CARES_INCLUDE = (
|
||||||
|
os.path.join('third_party', 'cares'),
|
||||||
|
@@ -84,6 +84,12 @@ CLASSIFIERS = [
|
||||||
|
# present, then it will still attempt to use Cython.
|
||||||
|
BUILD_WITH_CYTHON = os.environ.get('GRPC_PYTHON_BUILD_WITH_CYTHON', False)
|
||||||
|
|
||||||
|
+# Export this variable to use the system installation of openssl. You need to
|
||||||
|
+# have the header files installed (in /usr/include/openssl) and during
|
||||||
|
+# runtime, the shared libary must be installed
|
||||||
|
+BUILD_WITH_SYSTEM_OPENSSL = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_OPENSSL',
|
||||||
|
+ False)
|
||||||
|
+
|
||||||
|
# Environment variable to determine whether or not to enable coverage analysis
|
||||||
|
# in Cython modules.
|
||||||
|
ENABLE_CYTHON_TRACING = os.environ.get(
|
||||||
|
@@ -148,8 +154,13 @@ CORE_C_FILES = tuple(grpc_core_dependencies.CORE_SOURCE_FILES)
|
||||||
|
if "win32" in sys.platform:
|
||||||
|
CORE_C_FILES = filter(lambda x: 'third_party/cares' not in x, CORE_C_FILES)
|
||||||
|
|
||||||
|
+if BUILD_WITH_SYSTEM_OPENSSL:
|
||||||
|
+ CORE_C_FILES = filter(lambda x: 'third_party/boringssl' not in x, CORE_C_FILES)
|
||||||
|
+ CORE_C_FILES = filter(lambda x: 'src/boringssl' not in x, CORE_C_FILES)
|
||||||
|
+ SSL_INCLUDE = (os.path.join('/usr', 'include', 'openssl'),)
|
||||||
|
+
|
||||||
|
EXTENSION_INCLUDE_DIRECTORIES = (
|
||||||
|
- (PYTHON_STEM,) + CORE_INCLUDE + BORINGSSL_INCLUDE + ZLIB_INCLUDE +
|
||||||
|
+ (PYTHON_STEM,) + CORE_INCLUDE + SSL_INCLUDE + ZLIB_INCLUDE +
|
||||||
|
CARES_INCLUDE + ADDRESS_SORTING_INCLUDE)
|
||||||
|
|
||||||
|
EXTENSION_LIBRARIES = ()
|
||||||
|
@@ -159,6 +170,8 @@ if not "win32" in sys.platform:
|
||||||
|
EXTENSION_LIBRARIES += ('m',)
|
||||||
|
if "win32" in sys.platform:
|
||||||
|
EXTENSION_LIBRARIES += ('advapi32', 'ws2_32',)
|
||||||
|
+if BUILD_WITH_SYSTEM_OPENSSL:
|
||||||
|
+ EXTENSION_LIBRARIES += ('ssl', 'crypto',)
|
||||||
|
|
||||||
|
DEFINE_MACROS = (
|
||||||
|
('OPENSSL_NO_ASM', 1), ('_WIN32_WINNT', 0x600),
|
||||||
|
--
|
||||||
|
2.17.0
|
||||||
|
|
55
0002-Allow-building-the-python-module-with-system-zlib.patch
Normal file
55
0002-Allow-building-the-python-module-with-system-zlib.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
From 3823d9048102bce79e165584c62a1a5b91810aeb Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Bechtold <tbechtold@suse.com>
|
||||||
|
Date: Fri, 25 May 2018 06:52:23 +0200
|
||||||
|
Subject: [PATCH 2/3] Allow building the python module with system zlib
|
||||||
|
|
||||||
|
When building the python module and using the new
|
||||||
|
GRPC_PYTHON_BUILD_SYSTEM_ZLIB env variable, the third party zlib code
|
||||||
|
is not compiled. Instead, the zlib shared library installed on the
|
||||||
|
system is used during runtime.
|
||||||
|
This is useful for distributions who don't want to include code copies
|
||||||
|
but use shared libraries instead.
|
||||||
|
---
|
||||||
|
setup.py | 12 ++++++++++++
|
||||||
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 3a5ed56c64..483d3ac168 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -90,6 +90,12 @@ BUILD_WITH_CYTHON = os.environ.get('GRPC_PYTHON_BUILD_WITH_CYTHON', False)
|
||||||
|
BUILD_WITH_SYSTEM_OPENSSL = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_OPENSSL',
|
||||||
|
False)
|
||||||
|
|
||||||
|
+# Export this variable to use the system installation of zlib. You need to
|
||||||
|
+# have the header files installed (in /usr/include/) and during
|
||||||
|
+# runtime, the shared libary must be installed
|
||||||
|
+BUILD_WITH_SYSTEM_ZLIB = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_ZLIB',
|
||||||
|
+ False)
|
||||||
|
+
|
||||||
|
# Environment variable to determine whether or not to enable coverage analysis
|
||||||
|
# in Cython modules.
|
||||||
|
ENABLE_CYTHON_TRACING = os.environ.get(
|
||||||
|
@@ -159,6 +165,10 @@ if BUILD_WITH_SYSTEM_OPENSSL:
|
||||||
|
CORE_C_FILES = filter(lambda x: 'src/boringssl' not in x, CORE_C_FILES)
|
||||||
|
SSL_INCLUDE = (os.path.join('/usr', 'include', 'openssl'),)
|
||||||
|
|
||||||
|
+if BUILD_WITH_SYSTEM_ZLIB:
|
||||||
|
+ CORE_C_FILES = filter(lambda x: 'third_party/zlib' not in x, CORE_C_FILES)
|
||||||
|
+ ZLIB_INCLUDE = (os.path.join('/usr', 'include'),)
|
||||||
|
+
|
||||||
|
EXTENSION_INCLUDE_DIRECTORIES = (
|
||||||
|
(PYTHON_STEM,) + CORE_INCLUDE + SSL_INCLUDE + ZLIB_INCLUDE +
|
||||||
|
CARES_INCLUDE + ADDRESS_SORTING_INCLUDE)
|
||||||
|
@@ -172,6 +182,8 @@ if "win32" in sys.platform:
|
||||||
|
EXTENSION_LIBRARIES += ('advapi32', 'ws2_32',)
|
||||||
|
if BUILD_WITH_SYSTEM_OPENSSL:
|
||||||
|
EXTENSION_LIBRARIES += ('ssl', 'crypto',)
|
||||||
|
+if BUILD_WITH_SYSTEM_ZLIB:
|
||||||
|
+ EXTENSION_LIBRARIES += ('z',)
|
||||||
|
|
||||||
|
DEFINE_MACROS = (
|
||||||
|
('OPENSSL_NO_ASM', 1), ('_WIN32_WINNT', 0x600),
|
||||||
|
--
|
||||||
|
2.17.0
|
||||||
|
|
@ -0,0 +1,55 @@
|
|||||||
|
From 78a6e04ec1efc2dc839f0329dcff732940e27fd9 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Thomas Bechtold <tbechtold@suse.com>
|
||||||
|
Date: Fri, 25 May 2018 07:08:05 +0200
|
||||||
|
Subject: [PATCH 3/3] Allow building the python module with system cares
|
||||||
|
|
||||||
|
When building the python module and using the new
|
||||||
|
GRPC_PYTHON_BUILD_SYSTEM_CARES env variable, the third party cares code
|
||||||
|
is not compiled. Instead, the cares shared library installed on the
|
||||||
|
system is used during runtime.
|
||||||
|
This is useful for distributions who don't want to include code copies
|
||||||
|
but use shared libraries instead.
|
||||||
|
---
|
||||||
|
setup.py | 12 ++++++++++++
|
||||||
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index 483d3ac168..43c25aafeb 100644
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -96,6 +96,12 @@ BUILD_WITH_SYSTEM_OPENSSL = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_OPENSSL',
|
||||||
|
BUILD_WITH_SYSTEM_ZLIB = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_ZLIB',
|
||||||
|
False)
|
||||||
|
|
||||||
|
+# Export this variable to use the system installation of cares. You need to
|
||||||
|
+# have the header files installed (in /usr/include/) and during
|
||||||
|
+# runtime, the shared libary must be installed
|
||||||
|
+BUILD_WITH_SYSTEM_CARES = os.environ.get('GRPC_PYTHON_BUILD_SYSTEM_CARES',
|
||||||
|
+ False)
|
||||||
|
+
|
||||||
|
# Environment variable to determine whether or not to enable coverage analysis
|
||||||
|
# in Cython modules.
|
||||||
|
ENABLE_CYTHON_TRACING = os.environ.get(
|
||||||
|
@@ -169,6 +175,10 @@ if BUILD_WITH_SYSTEM_ZLIB:
|
||||||
|
CORE_C_FILES = filter(lambda x: 'third_party/zlib' not in x, CORE_C_FILES)
|
||||||
|
ZLIB_INCLUDE = (os.path.join('/usr', 'include'),)
|
||||||
|
|
||||||
|
+if BUILD_WITH_SYSTEM_CARES:
|
||||||
|
+ CORE_C_FILES = filter(lambda x: 'third_party/cares' not in x, CORE_C_FILES)
|
||||||
|
+ CARES_INCLUDE = (os.path.join('/usr', 'include'),)
|
||||||
|
+
|
||||||
|
EXTENSION_INCLUDE_DIRECTORIES = (
|
||||||
|
(PYTHON_STEM,) + CORE_INCLUDE + SSL_INCLUDE + ZLIB_INCLUDE +
|
||||||
|
CARES_INCLUDE + ADDRESS_SORTING_INCLUDE)
|
||||||
|
@@ -184,6 +194,8 @@ if BUILD_WITH_SYSTEM_OPENSSL:
|
||||||
|
EXTENSION_LIBRARIES += ('ssl', 'crypto',)
|
||||||
|
if BUILD_WITH_SYSTEM_ZLIB:
|
||||||
|
EXTENSION_LIBRARIES += ('z',)
|
||||||
|
+if BUILD_WITH_SYSTEM_CARES:
|
||||||
|
+ EXTENSION_LIBRARIES += ('cares',)
|
||||||
|
|
||||||
|
DEFINE_MACROS = (
|
||||||
|
('OPENSSL_NO_ASM', 1), ('_WIN32_WINNT', 0x600),
|
||||||
|
--
|
||||||
|
2.17.0
|
||||||
|
|
@ -1,3 +1,11 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri May 25 05:34:36 UTC 2018 - tbechtold@suse.com
|
||||||
|
|
||||||
|
- build grpc python module for python2 and python3
|
||||||
|
* add 0001-Allow-building-the-python-module-with-system-openssl.patch
|
||||||
|
* add 0002-Allow-building-the-python-module-with-system-zlib.patch
|
||||||
|
* add 0003-Allow-building-the-python-module-with-system-cares.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Fri May 18 14:55:27 UTC 2018 - jengelh@inai.de
|
Fri May 18 14:55:27 UTC 2018 - jengelh@inai.de
|
||||||
|
|
||||||
|
49
grpc.spec
49
grpc.spec
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
|
|
||||||
%define lname libgrpc6
|
%define lname libgrpc6
|
||||||
|
%{?!python_module:%define python_module() python-%{**} python3-%{**}}
|
||||||
Name: grpc
|
Name: grpc
|
||||||
Version: 1.12.0
|
Version: 1.12.0
|
||||||
Release: 0
|
Release: 0
|
||||||
@ -25,9 +26,19 @@ License: Apache-2.0
|
|||||||
Group: Development/Tools/Building
|
Group: Development/Tools/Building
|
||||||
Url: http://grpc.io/
|
Url: http://grpc.io/
|
||||||
Source: https://github.com/grpc/grpc/archive/v%version.tar.gz
|
Source: https://github.com/grpc/grpc/archive/v%version.tar.gz
|
||||||
|
# # PATCH-FEATURE-UPSTREAM 0001-Allow-building-the-python-module-with-system-openssl.patch -- https://github.com/grpc/grpc/pull/15548
|
||||||
|
Patch0: 0001-Allow-building-the-python-module-with-system-openssl.patch
|
||||||
|
# # PATCH-FEATURE-UPSTREAM 0002-Allow-building-the-python-module-with-system-zlib.patch -- https://github.com/grpc/grpc/pull/15548
|
||||||
|
Patch1: 0002-Allow-building-the-python-module-with-system-zlib.patch
|
||||||
|
# # PATCH-FEATURE-UPSTREAM 0003-Allow-building-the-python-module-with-system-cares.patch -- https://github.com/grpc/grpc/pull/15548
|
||||||
|
Patch2: 0003-Allow-building-the-python-module-with-system-cares.patch
|
||||||
|
BuildRequires: %{python_module Cython}
|
||||||
|
BuildRequires: %{python_module devel}
|
||||||
|
BuildRequires: %{python_module setuptools}
|
||||||
BuildRequires: cmake
|
BuildRequires: cmake
|
||||||
BuildRequires: gcc-c++
|
BuildRequires: gcc-c++
|
||||||
BuildRequires: pkg-config
|
BuildRequires: pkg-config
|
||||||
|
BuildRequires: python-rpm-macros
|
||||||
BuildRequires: pkgconfig(libcares)
|
BuildRequires: pkgconfig(libcares)
|
||||||
BuildRequires: pkgconfig(openssl) >= 1.0.1
|
BuildRequires: pkgconfig(openssl) >= 1.0.1
|
||||||
BuildRequires: pkgconfig(protobuf) >= 3.5
|
BuildRequires: pkgconfig(protobuf) >= 3.5
|
||||||
@ -57,12 +68,41 @@ Requires: %lname = %version
|
|||||||
This subpackage contains libraries and header files for developing
|
This subpackage contains libraries and header files for developing
|
||||||
applications that want to make use of the gRPC reference implementation.
|
applications that want to make use of the gRPC reference implementation.
|
||||||
|
|
||||||
|
%package -n python2-grpcio
|
||||||
|
Summary: Python language bindings for grpc, a HTTP/2 Remote Procedure Call implementation
|
||||||
|
Group: Development/Libraries/Python
|
||||||
|
Requires: %{lname} = %{version}-%{release}
|
||||||
|
Requires: python = %{python2_version}
|
||||||
|
|
||||||
|
%description -n python2-grpcio
|
||||||
|
This subpackage contains the python2 bindings.
|
||||||
|
|
||||||
|
%package -n python3-grpcio
|
||||||
|
Summary: Python language bindings for grpc, a HTTP/2 Remote Procedure Call implementation
|
||||||
|
Group: Development/Libraries/Python
|
||||||
|
Requires: %{lname} = %{version}-%{release}
|
||||||
|
Requires: python = %{python3_version}
|
||||||
|
|
||||||
|
%description -n python3-grpcio
|
||||||
|
This subpackage contains the python3 bindings.
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
|
%patch0 -p1
|
||||||
|
%patch1 -p1
|
||||||
|
%patch2 -p1
|
||||||
|
|
||||||
%build
|
%build
|
||||||
make %{?_smp_mflags} STRIP=/bin/true V=1 VERBOSE=1 CFLAGS="%optflags" CXXFLAGS="%optflags"
|
make %{?_smp_mflags} STRIP=/bin/true V=1 VERBOSE=1 CFLAGS="%optflags" CXXFLAGS="%optflags"
|
||||||
|
|
||||||
|
# build python module
|
||||||
|
export GRPC_PYTHON_BUILD_WITH_CYTHON=True
|
||||||
|
export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=True
|
||||||
|
export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=True
|
||||||
|
export GRPC_PYTHON_BUILD_SYSTEM_CARES=True
|
||||||
|
export CFLAGS="%{optflags}"
|
||||||
|
%python_build
|
||||||
|
|
||||||
%install
|
%install
|
||||||
b="%buildroot"
|
b="%buildroot"
|
||||||
%make_install prefix="$b/%_prefix" STRIP=/bin/true V=1 VERBOSE=1
|
%make_install prefix="$b/%_prefix" STRIP=/bin/true V=1 VERBOSE=1
|
||||||
@ -75,6 +115,7 @@ if test ! -d lib64 && test "%_lib" = lib64; then
|
|||||||
mv lib lib64
|
mv lib lib64
|
||||||
fi
|
fi
|
||||||
popd
|
popd
|
||||||
|
%python_install
|
||||||
|
|
||||||
%post -n %lname -p /sbin/ldconfig
|
%post -n %lname -p /sbin/ldconfig
|
||||||
%postun -n %lname -p /sbin/ldconfig
|
%postun -n %lname -p /sbin/ldconfig
|
||||||
@ -93,4 +134,12 @@ popd
|
|||||||
%_libdir/pkgconfig/*.pc
|
%_libdir/pkgconfig/*.pc
|
||||||
%_libdir/*.so
|
%_libdir/*.so
|
||||||
|
|
||||||
|
%files -n python2-grpcio
|
||||||
|
%{python2_sitearch}/grpcio-%{version}-py*.egg-info
|
||||||
|
%{python2_sitearch}/grpc
|
||||||
|
|
||||||
|
%files -n python3-grpcio
|
||||||
|
%{python3_sitearch}/grpcio-%{version}-py*.egg-info
|
||||||
|
%{python3_sitearch}/grpc
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
Loading…
Reference in New Issue
Block a user