Merge pull request #1900 from jefferyto/python-crypto
authorSteven Barth <steven@midlink.org>
Mon, 2 Nov 2015 02:23:42 +0000 (03:23 +0100)
committerSteven Barth <steven@midlink.org>
Mon, 2 Nov 2015 02:23:42 +0000 (03:23 +0100)
python-crypto: import pycrypto from old packages feed

lang/python-crypto/Makefile [new file with mode: 0644]
lang/python-crypto/patches/001-no-host-paths.patch [new file with mode: 0644]
lang/python-crypto/patches/002-fix-endianness-detect.patch [new file with mode: 0644]

diff --git a/lang/python-crypto/Makefile b/lang/python-crypto/Makefile
new file mode 100644 (file)
index 0000000..e0a3b7b
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Copyright (C) 2009-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pycrypto
+PKG_VERSION:=2.6.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/
+PKG_MD5SUM:=55a61a054aa66812daf5161a0d5d7eda
+
+PKG_LICENSE:=Public Domain
+PKG_LICENSE_FILES:=COPYRIGHT
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-crypto
+       SECTION:=lang-python
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-crypto
+       URL:=http://www.pycrypto.org/
+       DEPENDS:=+python +libgmp
+endef
+
+define Package/python-crypto/description
+A collection of both secure hash functions (such as MD5 and SHA),
+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),\
+               CONFIG_BIG_ENDIAN="$(CONFIG_BIG_ENDIAN)" \
+       )
+endef
+
+define Package/python-crypto/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/
+       $(CP) \
+               $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+               $(1)$(PYTHON_PKG_DIR)/
+endef
+
+$(eval $(call PyPackage,python-crypto))
+$(eval $(call BuildPackage,python-crypto))
diff --git a/lang/python-crypto/patches/001-no-host-paths.patch b/lang/python-crypto/patches/001-no-host-paths.patch
new file mode 100644 (file)
index 0000000..d481627
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -370,7 +370,7 @@ kw = {'name':"pycrypto",
+       'ext_modules': plat_ext + [
+             # _fastmath (uses GNU mp library)
+             Extension("Crypto.PublicKey._fastmath",
+-                      include_dirs=['src/','/usr/include/'],
++                      include_dirs=['src/'],
+                       libraries=['gmp'],
+                       sources=["src/_fastmath.c"]),
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 (file)
index 0000000..baed012
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/setup.py
++++ b/setup.py
+@@ -100,6 +100,10 @@
+         w(kwd.get("end", "\n"))
+ def endianness_macro():
++    if os.environ["CONFIG_BIG_ENDIAN"] == "y":
++        return ('PCT_BIG_ENDIAN', 1)
++    else:
++        return ('PCT_LITTLE_ENDIAN', 1)
+     s = struct.pack("@I", 0x33221100)
+     if s == "\x00\x11\x22\x33".encode():     # little endian
+         return ('PCT_LITTLE_ENDIAN', 1)