python-pyzmq: bump to version 16.0.2

Updated the zmq version detection patch to apply cleanly on 16.0.2.

Added patch #2 to replace compile_and_run with compile_and_forget in the setup
code: this function is only used to check for the availability of "sys/un.h" and
we only need to compile the test code to make sure of that. This fixes the
cross-compilation.

Signed-off-by: Lionel Flandrin <lionel@svkt.org>
Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Lionel Flandrin 2017-01-31 12:22:45 +01:00 committed by Thomas Petazzoni
parent cee060e98e
commit c06aa42f7c
4 changed files with 111 additions and 26 deletions

View File

@ -5,39 +5,47 @@ retrieve a version string for the installed ZMQ library, but if the cross
compiler links it together, the result cannot be run on the host, due to
different architectures and libraries.
And if the host compiler would compile/link it, it would not link with the
library version inside buildroot but with the library from the host, possibly returning a wrong version number.
And if the host compiler would compile/link it, it would not link with
the library version inside buildroot but with the library from the
host, possibly returning a wrong version number.
Instead of trying to run the compiled test program to get the version
dynamically, return the version of the buildroot environment.
Signed-off-by: Michael Rommel <rommel@layer-7.net>
Written by Michael Rommel, modified for version 16.0.2 by Lionel
Flandrin.
--- pyzmq-13.0.2/buildutils/detect.py.orig 2013-08-10 00:49:28.242557978 +0200
+++ pyzmq-13.0.2/buildutils/detect.py 2013-08-10 00:44:35.197572704 +0200
@@ -119,15 +119,17 @@ def detect_zmq(basedir, compiler=None, *
efile = test_compilation(cfile, compiler=compiler, **compiler_attrs)
Signed-off-by: Lionel Flandrin <lionel@svkt.org>
---
buildutils/detect.py | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/buildutils/detect.py b/buildutils/detect.py
index 9520da7..823144f 100644
--- a/buildutils/detect.py
+++ b/buildutils/detect.py
@@ -117,13 +117,15 @@ def detect_zmq(basedir, compiler=None, **compiler_attrs):
- result = Popen(efile, stdout=PIPE, stderr=PIPE)
- so, se = result.communicate()
+ # result = Popen(efile, stdout=PIPE, stderr=PIPE)
+ # so, se = result.communicate()
# for py3k:
- so = so.decode()
- se = se.decode()
- if result.returncode:
cc = get_compiler(compiler=compiler, **compiler_attrs)
efile = test_compilation(cfile, compiler=cc)
- patch_lib_paths(efile, cc.library_dirs)
+ #patch_lib_paths(efile, cc.library_dirs)
- rc, so, se = get_output_error([efile])
- if rc:
- msg = "Error running version detection script:\n%s\n%s" % (so,se)
- logging.error(msg)
- raise IOError(msg)
+ #so = so.decode()
+ #se = se.decode()
+ #if result.returncode:
+ # msg = "Error running version detection script:\n%s\n%s" % (so,se)
+ # logging.error(msg)
+ # raise IOError(msg)
+ #rc, so, se = get_output_error([efile])
+ # if rc:
+ # msg = "Error running version detection script:\n%s\n%s" % (so,se)
+ # logging.error(msg)
+ # raise IOError(msg)
+
+ so = "vers: ##ZEROMQ_VERSION##"
handlers = {'vers': lambda val: tuple(int(v) for v in val.split('.'))}
--
2.11.0

View File

@ -0,0 +1,76 @@
detect.py: replace compile_and_run with compile_and_forget
This function is only used in setup.py to detect the availability of
sys/un.h by compiling and running a small test program. Since we're
cross-compiling we can't run the generated program, however if the
header is missing the test will fail at the compilation step so
running the test in unnecessary.
Signed-off-by: Lionel Flandrin <lionel@svkt.org>
---
buildutils/detect.py | 16 ++++++++--------
setup.py | 4 ++--
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/buildutils/detect.py b/buildutils/detect.py
index 7a6c115..9520da7 100644
--- a/buildutils/detect.py
+++ b/buildutils/detect.py
@@ -58,7 +58,7 @@ def test_compilation(cfile, compiler=None, **compiler_attrs):
cc.link_executable(objs, efile, extra_preargs=lpreargs)
return efile
-def compile_and_run(basedir, src, compiler=None, **compiler_attrs):
+def compile_and_forget(basedir, src, compiler=None, **compiler_attrs):
if not os.path.exists(basedir):
os.makedirs(basedir)
cfile = pjoin(basedir, os.path.basename(src))
@@ -66,16 +66,16 @@ def compile_and_run(basedir, src, compiler=None, **compiler_attrs):
try:
cc = get_compiler(compiler, **compiler_attrs)
efile = test_compilation(cfile, compiler=cc)
- patch_lib_paths(efile, cc.library_dirs)
- result = Popen(efile, stdout=PIPE, stderr=PIPE)
- so, se = result.communicate()
- # for py3k:
- so = so.decode()
- se = se.decode()
+ # patch_lib_paths(efile, cc.library_dirs)
+ # result = Popen(efile, stdout=PIPE, stderr=PIPE)
+ # so, se = result.communicate()
+ # # for py3k:
+ # so = so.decode()
+ # se = se.decode()
finally:
shutil.rmtree(basedir)
- return result.returncode, so, se
+ return None
def detect_zmq(basedir, compiler=None, **compiler_attrs):
diff --git a/setup.py b/setup.py
index c3a2879..b8b0aaf 100755
--- a/setup.py
+++ b/setup.py
@@ -54,7 +54,7 @@ from buildutils import (
info, warn, fatal, debug, line, copy_and_patch_libzmq, localpath,
fetch_libzmq, stage_platform_hpp,
bundled_version, customize_mingw,
- compile_and_run,
+ compile_and_forget,
patch_lib_paths,
)
@@ -327,7 +327,7 @@ class Configure(build_ext):
except Exception:
pass
try:
- compile_and_run(self.tempdir,
+ compile_and_forget(self.tempdir,
pjoin('buildutils', 'check_sys_un.c'),
**minus_zmq
)
--
2.11.0

View File

@ -1,2 +1,3 @@
# locally computed
sha256 00e263c26a524f81127247e6f37cbf427eddf3a3657d170cf4865bd522df3914 pyzmq-14.3.1.tar.gz
# md5 from https://pypi.python.org/pypi/pyzmq/json, sha256 locally computed
md5 9a8768b00a566a400d70318f8c359cfe pyzmq-16.0.2.tar.gz
sha256 0322543fff5ab6f87d11a8a099c4c07dd8a1719040084b6ce9162bcdf5c45c9d pyzmq-16.0.2.tar.gz

View File

@ -4,9 +4,9 @@
#
################################################################################
PYTHON_PYZMQ_VERSION = 14.3.1
PYTHON_PYZMQ_VERSION = 16.0.2
PYTHON_PYZMQ_SOURCE = pyzmq-$(PYTHON_PYZMQ_VERSION).tar.gz
PYTHON_PYZMQ_SITE = http://pypi.python.org/packages/source/p/pyzmq
PYTHON_PYZMQ_SITE = https://pypi.python.org/packages/af/37/8e0bf3800823bc247c36715a52e924e8f8fd5d1432f04b44b8cd7a5d7e55
PYTHON_PYZMQ_LICENSE = LGPLv3+, BSD-3c, Apache-2.0
# Apache license only online: http://www.apache.org/licenses/LICENSE-2.0
PYTHON_PYZMQ_LICENSE_FILES = COPYING.LESSER COPYING.BSD