Marcus Meissner
da1554be0f
- 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 OBS-URL: https://build.opensuse.org/request/show/612114 OBS-URL: https://build.opensuse.org/package/show/devel:tools/grpc?expand=0&rev=26
69 lines
2.8 KiB
Diff
69 lines
2.8 KiB
Diff
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
|
|
|