From 35ae47a44c9a4044647689ea1360fe5b6f2a90c9 Mon Sep 17 00:00:00 2001 From: Jeffery To Date: Fri, 30 Oct 2015 23:48:52 +0800 Subject: [PATCH] python-crypto: fixed endianness detection This fixes setup.py so that it uses the endianness of the target system instead of detecting endianness from the host. This affects the computation of RIPEMD-160 hashes. Signed-off-by: Jeffery To --- lang/python-crypto/Makefile | 5 ++++- .../patches/002-fix-endianness-detect.patch | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 lang/python-crypto/patches/002-fix-endianness-detect.patch diff --git a/lang/python-crypto/Makefile b/lang/python-crypto/Makefile index 0e3eeb68d..e0a3b7bf3 100644 --- a/lang/python-crypto/Makefile +++ b/lang/python-crypto/Makefile @@ -37,7 +37,10 @@ and various encryption algorithms (AES, DES, IDEA, RSA, ElGamal, etc.). endef define Build/Compile - $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR)) + $(call Build/Compile/PyMod,,\ + install --prefix=/usr --root=$(PKG_INSTALL_DIR),\ + CONFIG_BIG_ENDIAN="$(CONFIG_BIG_ENDIAN)" \ + ) endef define Package/python-crypto/install diff --git a/lang/python-crypto/patches/002-fix-endianness-detect.patch b/lang/python-crypto/patches/002-fix-endianness-detect.patch new file mode 100644 index 000000000..fd3a656fd --- /dev/null +++ b/lang/python-crypto/patches/002-fix-endianness-detect.patch @@ -0,0 +1,15 @@ +--- a/setup.py 2015-10-30 23:30:22.334127083 +0800 ++++ b/setup.py 2015-10-30 23:33:03.856098660 +0800 +@@ -100,6 +100,12 @@ + w(kwd.get("end", "\n")) + + def endianness_macro(): ++ if "CONFIG_BIG_ENDIAN" in os.environ: ++ if os.environ["CONFIG_BIG_ENDIAN"] == "y": ++ return ('PCT_BIG_ENDIAN', 1) ++ else: ++ return ('PCT_LITTLE_ENDIAN', 1) ++ raise AssertionError("CONFIG_BIG_ENDIAN environment variable missing") + s = struct.pack("@I", 0x33221100) + if s == "\x00\x11\x22\x33".encode(): # little endian + return ('PCT_LITTLE_ENDIAN', 1)