diff options
Diffstat (limited to 'debian/patches')
-rw-r--r-- | debian/patches/cffi-fix.patch | 73 | ||||
-rw-r--r-- | debian/patches/noncopysend-test.patch | 22 | ||||
-rw-r--r-- | debian/patches/series | 2 |
3 files changed, 97 insertions, 0 deletions
diff --git a/debian/patches/cffi-fix.patch b/debian/patches/cffi-fix.patch new file mode 100644 index 0000000..417d408 --- /dev/null +++ b/debian/patches/cffi-fix.patch @@ -0,0 +1,73 @@ +Description: check package root for cffi binaries + cffi checks __pycache__ for binaries which is cleaned by pypy installation so + packages can't ship in there. + Instead ship in package root and patch module finding to look in there. + Also use fixed path in a place passed to cffi to get the same checksum + in build and install. After it is installed no build is needed so it doesn't + matter if its wrong. + This patch assumes pypy 2.2 api, won't work with 2.1 as so_suffices is no + list. +Bug: https://bitbucket.org/cffi/cffi/issue/109/enable-sane-packaging-for-cffi + +Index: pyzmq/zmq/backend/cffi/__init__.py +=================================================================== +--- pyzmq.orig/zmq/backend/cffi/__init__.py ++++ pyzmq/zmq/backend/cffi/__init__.py +@@ -3,6 +3,40 @@ + # Copyright (C) PyZMQ Developers + # Distributed under the terms of the Modified BSD License. + ++import imp ++import os.path ++import sys ++ ++import cffi.vengine_cpy ++import cffi.vengine_gen ++_ma_triplet = None ++ ++def vengine_gen_find_module(self, module_name, path, so_suffixes): ++ global _ma_triplet ++ if _ma_triplet is None: ++ try: ++ import subprocess as sp ++ p = sp.Popen(["gcc", "-print-multiarch"], stdout=sp.PIPE) ++ _ma_triplet = str(p.communicate()[0].decode().strip()) ++ except: ++ import warnings ++ warnings.warn('failed to detect multiarch paths, please install gcc') ++ ++ for so_suffix in so_suffixes + ['.%s-%s.so' % (imp.get_tag(), _ma_triplet)]: ++ basename = module_name + so_suffix ++ if path is None: ++ path = sys.path ++ # import from non root package would try __pycache__ which is ++ # cleaned by pypy installation ++ path.insert(0, "/usr/lib/pypy/dist-packages/zmq/backend/cffi") ++ for dirname in path: ++ filename = os.path.join(dirname, basename) ++ if os.path.isfile(filename): ++ return filename ++ ++ ++cffi.vengine_gen.VGenericEngine.find_module = vengine_gen_find_module ++ + from zmq.backend.cffi import (constants, error, message, context, socket, + _poll, devices, utils) + +Index: pyzmq/zmq/backend/cffi/_cffi.py +=================================================================== +--- pyzmq.orig/zmq/backend/cffi/_cffi.py ++++ pyzmq/zmq/backend/cffi/_cffi.py +@@ -18,10 +18,10 @@ base_zmq_version = (3,2,2) + def load_compiler_config(): + """load pyzmq compiler arguments""" + import zmq +- zmq_dir = dirname(zmq.__file__) ++ zmq_dir = "zmq" + zmq_parent = dirname(zmq_dir) + +- fname = join(zmq_dir, 'utils', 'compiler.json') ++ fname = join(dirname(zmq.__file__), 'utils', 'compiler.json') + if os.path.exists(fname): + with open(fname) as f: + cfg = json.load(f) diff --git a/debian/patches/noncopysend-test.patch b/debian/patches/noncopysend-test.patch new file mode 100644 index 0000000..88e6893 --- /dev/null +++ b/debian/patches/noncopysend-test.patch @@ -0,0 +1,22 @@ +Description: don't use uninitialized memory for test + the memory could contain signalling NaN which crashes sparc python +Author: Julian Taylor <jtaylor.debian@googlemail.com> +Forwarded: not-needed + +Index: pyzmq/zmq/tests/test_message.py +=================================================================== +--- pyzmq.orig/zmq/tests/test_message.py ++++ pyzmq/zmq/tests/test_message.py +@@ -324,10 +324,8 @@ class TestFrame(BaseZMQTestCase): + for i in range(1,len(shapes)+1): + shape = shapes[:i] + for dt in dtypes: +- A = numpy.empty(shape, dtype=dt) +- while numpy.isnan(A).any(): +- # don't let nan sneak in +- A = numpy.ndarray(shape, dtype=dt) ++ A = numpy.random.uniform(-10000000, ++ 1000000, size=shape).astype(dt) + a.send(A, copy=False) + msg = b.recv(copy=False) + diff --git a/debian/patches/series b/debian/patches/series new file mode 100644 index 0000000..a82f34a --- /dev/null +++ b/debian/patches/series @@ -0,0 +1,2 @@ +noncopysend-test.patch +cffi-fix.patch |