From 15bd5f4ebb70f3cfc36534a759ce2dbd6515d6e6 Mon Sep 17 00:00:00 2001 From: Jens Rehsack Date: Mon, 27 Aug 2018 13:07:35 +0200 Subject: python{, 3}-m2crypto: update from 0.26.4 -> 0.30.1 Updating recipe for crypto and SSL toolkit for python and support python3 infrastructure of Yocto as well as the already supported python2 line. Refresh patches to fix devtool warnings Signed-off-by: Jens Rehsack Signed-off-by: Khem Raj --- .../recipes-devtools/python/python-m2crypto.inc | 56 ++++++++++++++++++++++ ...y-link-in-sysroot-not-in-host-directories.patch | 44 ++++++++--------- .../python-m2crypto/cross-compile-platform.patch | 21 ++++---- .../m2crypto-0.26.4-gcc_macros.patch | 17 ++++--- .../python/python-m2crypto_0.26.4.bb | 54 --------------------- .../python/python-m2crypto_0.30.1.bb | 2 + .../python/python3-m2crypto_0.30.1.bb | 2 + 7 files changed, 102 insertions(+), 94 deletions(-) create mode 100644 meta-python/recipes-devtools/python/python-m2crypto.inc delete mode 100644 meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb create mode 100644 meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb create mode 100644 meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb (limited to 'meta-python/recipes-devtools') diff --git a/meta-python/recipes-devtools/python/python-m2crypto.inc b/meta-python/recipes-devtools/python/python-m2crypto.inc new file mode 100644 index 0000000000..d0eaa819b1 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-m2crypto.inc @@ -0,0 +1,56 @@ +SUMMARY = "A Python crypto and SSL toolkit" +HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" + +FILESEXTRAPATHS_prepend := "${THISDIR}/python-m2crypto:" + +SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \ + file://cross-compile-platform.patch \ + file://m2crypto-0.26.4-gcc_macros.patch \ + " +SRC_URI[md5sum] = "7fce3cbf85eb84a669682892b935746b" +SRC_URI[sha256sum] = "a1b2751cdadc6afac3df8a5799676b7b7c67a6ad144bb62d38563062e7cd3fc6" + +PYPI_PACKAGE = "M2Crypto" +inherit pypi siteinfo + +DEPENDS += "openssl swig-native" +RDEPENDS_${PN} += "python-typing" + +DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" +DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_DIR_HOST}" + +SWIG_FEATURES_x86 = "-D__i386__" +SWIG_FEATURES ?= "-D__${HOST_ARCH}__" +export SWIG_FEATURES + +# Get around a problem with swig, but only if the +# multilib header file exists. +# +do_configure_prepend() { + ${CPP} -dM - < /dev/null | grep -v __STDC__ | grep -v __REGISTER_PREFIX__ | grep -v __GNUC__ \ + | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h + if [ "${SITEINFO_BITS}" = "64" ];then + bit="64" + else + bit="32" + fi + + if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then + for i in SWIG/_ec.i SWIG/_evp.i; do + sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i" + done + elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then + for i in SWIG/_ec.i SWIG/_evp.i; do + sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i" + done + fi +} + +BBCLASSEXTEND = "native" + +# http://errors.yoctoproject.org/Errors/Details/184714/ +# SWIG/_m2crypto.i:10: Error: Unable to find 'gcc_macros.h' +CLEANBROKEN = "1" diff --git a/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch index c71b16fece..b339d93f75 100644 --- a/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch +++ b/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch @@ -10,30 +10,26 @@ Upstream-status: Unknown setup.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/setup.py b/setup.py -index 3407c82..15ed7cd 100644 ---- a/setup.py -+++ b/setup.py -@@ -127,7 +127,7 @@ class _M2CryptoBuildExt(build_ext.build_ext): - self.openssl = os.path.join(self.openssl, 'OpenSSL') - else: - self.libraries = ['ssl', 'crypto'] -- self.openssl = '/usr' -+ self.openssl = os.environ.get( "STAGING_DIR" ) +Index: M2Crypto-0.30.1/setup.py +=================================================================== +--- M2Crypto-0.30.1.orig/setup.py ++++ M2Crypto-0.30.1/setup.py +@@ -130,6 +130,7 @@ class _M2CryptoBuildExt(build_ext.build_ + self.set_undefined_options('build', ('bundledlls', 'bundledlls')) - def finalize_options(self): - '''Overloaded build_ext implementation to append custom openssl -@@ -143,8 +143,8 @@ class _M2CryptoBuildExt(build_ext.build_ext): - if _openssl and os.path.isdir(_openssl): - self.openssl = _openssl + self.libraries = ['ssl', 'crypto'] ++ self.openssl = os.environ.get( "STAGING_DIR" ) + if sys.platform == 'win32': + self.libraries = ['ssleay32', 'libeay32'] + if self.openssl and openssl_version(self.openssl, 0x10100000, True): +@@ -150,8 +151,8 @@ class _M2CryptoBuildExt(build_ext.build_ -- self.include_dirs.append(os.path.join(self.openssl, 'include')) -- openssl_library_dir = os.path.join(self.openssl, 'lib') -+ self.include_dirs.append(os.environ.get( "STAGING_INCDIR" )) -+ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" ) + if self.openssl is not None: + log.debug('self.openssl = %s', self.openssl) +- openssl_library_dir = os.path.join(self.openssl, 'lib') +- openssl_include_dir = os.path.join(self.openssl, 'include') ++ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" ) ++ openssl_include_dir = os.environ.get( "STAGING_INCDIR" ) - if platform.system() == "Linux": - if _multiarch: # on Fedora/RHEL it is an empty string --- -2.7.4 - + self.library_dirs.append(openssl_library_dir) + self.include_dirs.append(openssl_include_dir) diff --git a/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch b/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch index c6654e5402..4b64f4613c 100644 --- a/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch +++ b/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch @@ -4,27 +4,30 @@ since it pokes at the system for getting architecture values Upstream-Status: Inappropriate Signed-off-by: Khem Raj -Index: M2Crypto-0.26.0/setup.py +Index: M2Crypto-0.30.1/setup.py =================================================================== ---- M2Crypto-0.26.0.orig/setup.py -+++ M2Crypto-0.26.0/setup.py -@@ -141,19 +141,6 @@ class _M2CryptoBuildExt(build_ext.build_ - self.include_dirs.append( - os.path.join(self.openssl, 'include', 'openssl')) +--- M2Crypto-0.30.1.orig/setup.py ++++ M2Crypto-0.30.1/setup.py +@@ -160,22 +160,6 @@ class _M2CryptoBuildExt(build_ext.build_ + log.debug('self.include_dirs = %s', self.include_dirs) + log.debug('self.library_dirs = %s', self.library_dirs) +- if platform.system() == "Linux": - # For RedHat-based distros, the '-D__{arch}__' option for - # Swig needs to be normalized, particularly on i386. - mach = platform.machine().lower() - if mach in ('i386', 'i486', 'i586', 'i686'): - arch = '__i386__' -- elif mach in ('ppc64', 'powerpc64'): +- elif mach in ('ppc64', 'powerpc64', 'ppc64le', 'ppc64el'): - arch = '__powerpc64__' - elif mach in ('ppc', 'powerpc'): - arch = '__powerpc__' - else: - arch = '__%s__' % mach - self.swig_opts.append('-D%s' % arch) +- if mach in ('ppc64le', 'ppc64el'): +- self.swig_opts.append('-D_CALL_ELF=2') - self.swig_opts.extend(['-I%s' % i for i in self.include_dirs]) - self.swig_opts.append('-includeall') - self.swig_opts.append('-modern') + + # Some Linux distributor has added the following line in diff --git a/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch b/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch index 2d738cc94e..931c25c8ee 100644 --- a/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch +++ b/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch @@ -1,16 +1,19 @@ Imported from Fedora ---- M2Crypto/SWIG/_m2crypto.i 2017-09-26 11:26:33.000000000 +0200 -+++ M2Crypto-0.26.4/SWIG/_m2crypto.i 2017-09-26 21:04:14.080330741 +0200 -@@ -7,6 +7,7 @@ +Index: M2Crypto-0.30.1/SWIG/_m2crypto.i +=================================================================== +--- M2Crypto-0.30.1.orig/SWIG/_m2crypto.i ++++ M2Crypto-0.30.1/SWIG/_m2crypto.i +@@ -7,7 +7,7 @@ * Copyright (c) 2009-2010 Heikki Toivonen. All rights reserved. * */ +- +%import "gcc_macros.h" - %module(threads=1) m2crypto /* We really don't need threadblock (PyGILState_Ensure() etc.) anywhere. -@@ -15,11 +16,6 @@ + Disable threadallow as well, only enable it for operations likely to +@@ -15,11 +15,6 @@ %nothreadblock; %nothreadallow; @@ -20,5 +23,5 @@ Imported from Fedora -#endif - %{ - #if __GNUC__ < 5 - #pragma GCC diagnostic ignored "-Wunused-label" + #ifdef _WIN32 + #define _WINSOCKAPI_ diff --git a/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb b/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb deleted file mode 100644 index 0da4274d96..0000000000 --- a/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb +++ /dev/null @@ -1,54 +0,0 @@ -SUMMARY = "A Python crypto and SSL toolkit" -HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto" - -LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e" - -SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \ - file://cross-compile-platform.patch \ - file://m2crypto-0.26.4-gcc_macros.patch \ - " -SRC_URI[md5sum] = "5c74c25ba8b45122318a165a3a2059ad" -SRC_URI[sha256sum] = "5cae7acc0b34821f8c0ddf6665e482893fe1f198ad6379e61ffa9d8e65f5c199" - -PYPI_PACKAGE = "M2Crypto" -inherit pypi setuptools siteinfo - -DEPENDS += "openssl swig-native" -RDEPENDS_${PN} += "python-typing" - -DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_DIR_HOST} -I${STAGING_INCDIR}" -DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_DIR_HOST}" - -SWIG_FEATURES_x86 = "-D__i386__" -SWIG_FEATURES ?= "-D__${HOST_ARCH}__" -export SWIG_FEATURES - -# Get around a problem with swig, but only if the -# multilib header file exists. -# -do_configure_prepend() { - ${CPP} -dM - < /dev/null | grep -v __STDC__ | grep -v __REGISTER_PREFIX__ | grep -v __GNUC__ \ - | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h - if [ "${SITEINFO_BITS}" = "64" ];then - bit="64" - else - bit="32" - fi - - if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then - for i in SWIG/_ec.i SWIG/_evp.i; do - sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i" - done - elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then - for i in SWIG/_ec.i SWIG/_evp.i; do - sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i" - done - fi -} - -BBCLASSEXTEND = "native" - -# http://errors.yoctoproject.org/Errors/Details/184714/ -# SWIG/_m2crypto.i:10: Error: Unable to find 'gcc_macros.h' -CLEANBROKEN = "1" diff --git a/meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb b/meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb new file mode 100644 index 0000000000..c612fcdc58 --- /dev/null +++ b/meta-python/recipes-devtools/python/python-m2crypto_0.30.1.bb @@ -0,0 +1,2 @@ +inherit setuptools +require python-m2crypto.inc diff --git a/meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb b/meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb new file mode 100644 index 0000000000..4d63d4bd3a --- /dev/null +++ b/meta-python/recipes-devtools/python/python3-m2crypto_0.30.1.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-m2crypto.inc -- cgit 1.2.3-korg