d/p/big-endian.patch: Cherry pick fix from upstream VCS to resolve issues on big endian architectures.

This commit is contained in:
James Page
2015-09-09 13:27:54 +01:00
parent 9b5e8f06c7
commit 34aebf708b
3 changed files with 57 additions and 0 deletions

2
debian/changelog vendored
View File

@@ -2,6 +2,8 @@ python-pyeclib (1.0.8-3) UNRELEASED; urgency=medium
* Drop BD's on gf-complete and jerasure dev packages; not required
due to the runtime nature of backend loading in liberasurecode.
* d/p/big-endian.patch: Cherry pick fix from upstream VCS to resolve
issues on big endian architectures.
-- James Page <james.page@ubuntu.com> Wed, 09 Sep 2015 13:24:15 +0100

54
debian/patches/big-endian.patch vendored Normal file
View File

@@ -0,0 +1,54 @@
From 8c825a8e2a39beefc4a73116f381de45e3615638 Mon Sep 17 00:00:00 2001
From: Kevin Greenan <kmg@box.com>
Date: Tue, 11 Aug 2015 09:32:12 -0700
Subject: [PATCH] Fix integer truncation issue with PyBuildValue on Big Endian
systems by explicitly casting the size argument passed in to Py_ssize_t.
Also fix import issue with the API test where older versions of Python fail to
import.
---
src/c/pyeclib_c/pyeclib_c.c | 4 ++--
test/test_pyeclib_api.py | 5 ++++-
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/c/pyeclib_c/pyeclib_c.c b/src/c/pyeclib_c/pyeclib_c.c
index 6ba83a9..e2d98c3 100644
--- a/src/c/pyeclib_c/pyeclib_c.c
+++ b/src/c/pyeclib_c/pyeclib_c.c
@@ -46,7 +46,7 @@
PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
ob = PyModule_Create(&moduledef);
#define PY_BUILDVALUE_OBJ_LEN(obj, objlen) \
- Py_BuildValue("y#", obj, objlen)
+ Py_BuildValue("y#", obj, (Py_ssize_t)objlen)
#define PyInt_FromLong PyLong_FromLong
#define PyString_FromString PyUnicode_FromString
#define ENCODE_ARGS "Oy#"
@@ -58,7 +58,7 @@
#define MOD_DEF(ob, name, doc, methods) \
ob = Py_InitModule3(name, methods, doc);
#define PY_BUILDVALUE_OBJ_LEN(obj, objlen) \
- Py_BuildValue("s#", obj, objlen)
+ Py_BuildValue("s#", obj, (Py_ssize_t)objlen)
#define ENCODE_ARGS "Os#"
#define GET_METADATA_ARGS "Os#i"
#endif
diff --git a/test/test_pyeclib_api.py b/test/test_pyeclib_api.py
index 45d7d5b..78c482e 100644
--- a/test/test_pyeclib_api.py
+++ b/test/test_pyeclib_api.py
@@ -31,7 +31,10 @@ from pyeclib.ec_iface import ECDriverError
from pyeclib.ec_iface import ECInsufficientFragments
from pyeclib.ec_iface import ECDriver, PyECLib_EC_Types
-from .test_pyeclib_c import _available_backends
+if sys.version < '3':
+ from test_pyeclib_c import _available_backends
+else:
+ from .test_pyeclib_c import _available_backends
if sys.version < '3':
def b2i(b):
--
2.1.1

View File

@@ -1,3 +1,4 @@
disable-check-for-liberasure-code.patch
remove-rpath-tweak.patch
more-rpath-tweak-removal.patch
big-endian.patch