aboutsummaryrefslogtreecommitdiff
path: root/package/python-m2crypto
diff options
context:
space:
mode:
Diffstat (limited to 'package/python-m2crypto')
-rw-r--r--package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch63
-rw-r--r--package/python-m2crypto/Config.in12
-rw-r--r--package/python-m2crypto/python-m2crypto.hash5
-rw-r--r--package/python-m2crypto/python-m2crypto.mk16
4 files changed, 96 insertions, 0 deletions
diff --git a/package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch b/package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch
new file mode 100644
index 0000000000..f4d7e428f1
--- /dev/null
+++ b/package/python-m2crypto/0001-setup.py-move-swig-default-includes-before-openssl.patch
@@ -0,0 +1,63 @@
+From 1aab31787a8d1ef9436d9cf81832691f729b6282 Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sat, 7 Nov 2020 23:26:30 +0100
+Subject: [PATCH] setup.py: move swig default includes before openssl
+
+Move swig default includes before openssl to avoid the following build
+failure when cross-compiling for some architectures (e.g. arm, mips):
+
+swig -python -py3 -D__x86_64__ \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include/python3.9 \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include/openssl \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-gnu/8.3.0/include \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-gnu/8.3.0/include-fixed \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/opt/ext-toolchain/bin/../lib/gcc/mipsel-buildroot-linux-gnu/8.3.0/../../../../mipsel-buildroot-linux-gnu/include \
+ -I/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include \
+ -includeall -modern -builtin -outdir \
+ /srv/storage/autobuild/run/instance-0/output-1/build/python-m2crypto-0.36.0/M2Crypto -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i
+Deprecated command line option: -modern. This option is now always on.
+/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include/bits/types.h:139:
+Error: CPP #error "". Use the -cpperraswarn option to continue swig processing.
+
+This build failure is probably raised because swig includes a wrong types.h file
+from the openssl directory (e.g.
+/srv/storage/autobuild/run/instance-0/output-1/host/mipsel-buildroot-linux-gnu/sysroot/usr/include)
+
+Fixes:
+ - http://autobuild.buildroot.org/results/7f63e6a2d8681cc3408f344556afd5dd16eb7368
+ - http://autobuild.buildroot.org/results/d115a082418321e7dc4715c635f94b30b3cad387
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+[Upstream status:
+https://gitlab.com/m2crypto/m2crypto/-/merge_requests/248]
+---
+ setup.py | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 89d03bb..0045fda 100644
+--- a/setup.py
++++ b/setup.py
+@@ -154,6 +154,9 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+ if sys.version_info[:1] >= (3,):
+ self.swig_opts.append('-py3')
+
++ # swig seems to need the default header file directories
++ self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()])
++
+ log.debug('self.include_dirs = %s', self.include_dirs)
+ log.debug('self.library_dirs = %s', self.library_dirs)
+
+@@ -204,8 +207,6 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+ self.swig_opts.append(
+ '-I' + os.path.join(openssl_include_dir, 'openssl'))
+
+- # swig seems to need the default header file directories
+- self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()])
+ self.swig_opts.append('-includeall')
+ self.swig_opts.append('-modern')
+ self.swig_opts.append('-builtin')
+--
+2.28.0
+
diff --git a/package/python-m2crypto/Config.in b/package/python-m2crypto/Config.in
new file mode 100644
index 0000000000..7481d49e5c
--- /dev/null
+++ b/package/python-m2crypto/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_PYTHON_M2CRYPTO
+ bool "python-m2crypto"
+ select BR2_PACKAGE_OPENSSL
+ select BR2_PACKAGE_PYTHON_PYEXPAT if BR2_PACKAGE_PYTHON # runtime
+ select BR2_PACKAGE_PYTHON3_PYEXPAT if BR2_PACKAGE_PYTHON3 # runtime
+ select BR2_PACKAGE_PYTHON_SSL if BR2_PACKAGE_PYTHON # runtime
+ select BR2_PACKAGE_PYTHON3_SSL if BR2_PACKAGE_PYTHON3 # runtime
+ select BR2_PACKAGE_PYTHON_TYPING if BR2_PACKAGE_PYTHON # runtime
+ help
+ M2Crypto: A Python crypto and SSL toolkit.
+
+ https://gitlab.com/m2crypto/m2crypto
diff --git a/package/python-m2crypto/python-m2crypto.hash b/package/python-m2crypto/python-m2crypto.hash
new file mode 100644
index 0000000000..148cdd8317
--- /dev/null
+++ b/package/python-m2crypto/python-m2crypto.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/m2crypto/json
+md5 b8b34c5b83892096a8676b6f2e8f4e7e M2Crypto-0.36.0.tar.gz
+sha256 1542c18e3ee5c01db5031d0b594677536963e3f54ecdf5315aeecb3a595b4dc1 M2Crypto-0.36.0.tar.gz
+# Locally computed sha256 checksums
+sha256 4eca478396f4b2b020729a111fce3f096456d74500bfd8f2b0388c3c69f997c0 LICENCE
diff --git a/package/python-m2crypto/python-m2crypto.mk b/package/python-m2crypto/python-m2crypto.mk
new file mode 100644
index 0000000000..ccc63058ce
--- /dev/null
+++ b/package/python-m2crypto/python-m2crypto.mk
@@ -0,0 +1,16 @@
+################################################################################
+#
+# python-m2crypto
+#
+################################################################################
+
+PYTHON_M2CRYPTO_VERSION = 0.36.0
+PYTHON_M2CRYPTO_SOURCE = M2Crypto-$(PYTHON_M2CRYPTO_VERSION).tar.gz
+PYTHON_M2CRYPTO_SITE = https://files.pythonhosted.org/packages/ff/df/84609ed874b5e6fcd3061a517bf4b6e4d0301f553baf9fa37bef2b509797
+PYTHON_M2CRYPTO_SETUP_TYPE = setuptools
+PYTHON_M2CRYPTO_LICENSE = MIT
+PYTHON_M2CRYPTO_LICENSE_FILES = LICENCE
+PYTHON_M2CRYPTO_DEPENDENCIES = openssl host-swig
+PYTHON_M2CRYPTO_BUILD_OPTS = --openssl=$(STAGING_DIR)/usr
+
+$(eval $(python-package))