From 5a1f6a416716228f1f41a3e58533089d37c842d4 Mon Sep 17 00:00:00 2001 From: Mike Engel Date: Thu, 10 Dec 2020 17:53:46 +0100 Subject: [PATCH] meta-digi: add python recipes for Optee compilation This commit adds python recipes from meta-imx required to build Optee support. Signed-off-by: Mike Engel --- .../python/python-erpc_git.bb | 27 +++++++++++++++ .../python-pycrypto/cross-compiling.patch | 23 +++++++++++++ .../python/python-pycrypto_2.6.1.bb | 34 +++++++++++++++++++ .../python/python-pycryptodome.inc | 31 +++++++++++++++++ .../python/python-pyelftools.inc | 12 +++++++ .../python/python3-pycryptodomex_3.9.4.bb | 7 ++++ .../python/python3-pyelftools_0.25.bb | 2 ++ .../python/python3-wheel_%.bbappend | 2 ++ 8 files changed, 138 insertions(+) create mode 100644 meta-digi-dey/recipes-devtools/python/python-erpc_git.bb create mode 100644 meta-digi-dey/recipes-devtools/python/python-pycrypto/cross-compiling.patch create mode 100644 meta-digi-dey/recipes-devtools/python/python-pycrypto_2.6.1.bb create mode 100644 meta-digi-dey/recipes-devtools/python/python-pycryptodome.inc create mode 100644 meta-digi-dey/recipes-devtools/python/python-pyelftools.inc create mode 100644 meta-digi-dey/recipes-devtools/python/python3-pycryptodomex_3.9.4.bb create mode 100644 meta-digi-dey/recipes-devtools/python/python3-pyelftools_0.25.bb create mode 100644 meta-digi-dey/recipes-devtools/python/python3-wheel_%.bbappend diff --git a/meta-digi-dey/recipes-devtools/python/python-erpc_git.bb b/meta-digi-dey/recipes-devtools/python/python-erpc_git.bb new file mode 100644 index 000000000..f8672bbc1 --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python-erpc_git.bb @@ -0,0 +1,27 @@ +SUMMARY = "Python version of the NXP eRPC infrastructure" +DESCRIPTION = "eRPC (Embedded RPC) is an open source Remote Procedure Call (RPC) system for multichip embedded systems and heterogeneous multicore SoCs" +LICENSE = "BSD-3-Clause" +AUTHOR = "Jun Zhu " + +RDEPENDS_${PN} = "python-pyserial python-enum34 python-argparse python-threading python-shell" + +LIC_FILES_CHKSUM = "file://readme.md;md5=d3d754f8e1f07a15e65da588118bf793" + +SRC_URI = "git://github.com/EmbeddedRPC/erpc.git;protocol=https;branch=develop" + +SRCREV = "a5bb96821c111164defa6c8c932e189a8bcf86c2" +S = "${WORKDIR}/git/erpc_python" + +PV = "1.7+git${SRCPV}" + +inherit setuptools + +do_configure[noexec] = "1" + +do_compile_prepend () { + export IS_YOCTO="1" +} + +do_install_prepend () { + export IS_YOCTO="1" +} diff --git a/meta-digi-dey/recipes-devtools/python/python-pycrypto/cross-compiling.patch b/meta-digi-dey/recipes-devtools/python/python-pycrypto/cross-compiling.patch new file mode 100644 index 000000000..712f3e8dd --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python-pycrypto/cross-compiling.patch @@ -0,0 +1,23 @@ +Index: pycrypto-2.6/setup.py +=================================================================== +--- pycrypto-2.6.orig/setup.py ++++ pycrypto-2.6/setup.py +@@ -271,7 +271,8 @@ class PCTBuildConfigure(Command): + if not os.path.exists("config.status"): + if os.system("chmod 0755 configure") != 0: + raise RuntimeError("chmod error") +- cmd = "sh configure" # we use "sh" here so that it'll work on mingw32 with standard python.org binaries ++ host = os.environ.get("HOST_SYS") ++ cmd = "ac_cv_func_malloc_0_nonnull=yes sh configure --host " + host # we use "sh" here so that it'll work on mingw32 with standard python.org binaries + if self.verbose < 1: + cmd += " -q" + if os.system(cmd) != 0: +@@ -370,7 +371,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/meta-digi-dey/recipes-devtools/python/python-pycrypto_2.6.1.bb b/meta-digi-dey/recipes-devtools/python/python-pycrypto_2.6.1.bb new file mode 100644 index 000000000..1477418dc --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python-pycrypto_2.6.1.bb @@ -0,0 +1,34 @@ +DESCRIPTION = "Cryptographic modules for Python." +HOMEPAGE = "http://www.pycrypto.org/" +SECTION = "devel/python" +LICENSE = "PSFv2" +LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=35f354d199e8cb7667b059a23578e63d" + +SRCNAME = "pycrypto" + +SRC_URI = "https://pypi.python.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \ + file://cross-compiling.patch" + +SRC_URI[md5sum] = "55a61a054aa66812daf5161a0d5d7eda" +SRC_URI[sha256sum] = "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c" + +S = "${WORKDIR}/${SRCNAME}-${PV}" + +inherit autotools autotools-brokensep distutils + +DEPENDS += " gmp" + +export STAGING_INCDIR +export STAGING_LIBDIR +export BUILD_SYS +export HOST_SYS + + +# We explicitly call distutils_do_install, since we want it to run, but +# *don't* want the autotools install to run, since this package doesn't +# provide a "make install" target. +do_install() { + distutils_do_install +} + +BBCLASSEXTEND = "native" diff --git a/meta-digi-dey/recipes-devtools/python/python-pycryptodome.inc b/meta-digi-dey/recipes-devtools/python/python-pycryptodome.inc new file mode 100644 index 000000000..1d568c346 --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python-pycryptodome.inc @@ -0,0 +1,31 @@ +SUMMARY = "Cryptographic library for Python" +DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level \ + cryptographic primitives.\ +This library is a fork of the pycrypto library. It can be installed as a drop-in replacement\ + or an independent library that works along side pycrypto." + +HOMEPAGE = "http://www.pycryptodome.org" +LICENSE = "PD & BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=6dc0e2a13d2f25d6f123c434b761faba" + +SRC_URI[md5sum] = "46ba513d95b6e323734074d960a7d57b" +SRC_URI[sha256sum] = "22d970cee5c096b9123415e183ae03702b2cd4d3ba3f0ced25c4e1aba3967167" +inherit pypi + +RDEPENDS_${PN} += " \ + ${PYTHON_PN}-io \ + ${PYTHON_PN}-math \ +" + +RDEPENDS_${PN}-tests += " \ + ${PYTHON_PN}-unittest \ +" + +PACKAGES =+ "${PN}-tests" + +FILES_${PN}-tests += " \ + ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \ + ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/__pycache__/ \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-digi-dey/recipes-devtools/python/python-pyelftools.inc b/meta-digi-dey/recipes-devtools/python/python-pyelftools.inc new file mode 100644 index 000000000..a02166af8 --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python-pyelftools.inc @@ -0,0 +1,12 @@ +SUMMARY = "Python library and tools for doing stuff with EFL files." +DESCRIPTION = "Minimal but very flexible implementation of the expect pattern" +SECTION = "devel/python" +HOMEPAGE = " git://github.com/eliben/pyelftools" +LICENSE = "PD" +LIC_FILES_CHKSUM = "file://LICENSE;md5=5ce2a2b07fca326bc7c146d10105ccfc" + +inherit pypi python3native + +SRC_URI[sha256sum] = "89c6da6f56280c37a5ff33468591ba9a124e17d71fe42de971818cbff46c1b24" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-digi-dey/recipes-devtools/python/python3-pycryptodomex_3.9.4.bb b/meta-digi-dey/recipes-devtools/python/python3-pycryptodomex_3.9.4.bb new file mode 100644 index 000000000..788beb726 --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python3-pycryptodomex_3.9.4.bb @@ -0,0 +1,7 @@ +require python-pycryptodome.inc +inherit setuptools3 + +# This recipe install pycryptodome as an independent library. +do_configure_prepend () { +touch ${S}/.separate_namespace +} diff --git a/meta-digi-dey/recipes-devtools/python/python3-pyelftools_0.25.bb b/meta-digi-dey/recipes-devtools/python/python3-pyelftools_0.25.bb new file mode 100644 index 000000000..a71b2f652 --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python3-pyelftools_0.25.bb @@ -0,0 +1,2 @@ +inherit setuptools3 +require python-pyelftools.inc \ No newline at end of file diff --git a/meta-digi-dey/recipes-devtools/python/python3-wheel_%.bbappend b/meta-digi-dey/recipes-devtools/python/python3-wheel_%.bbappend new file mode 100644 index 000000000..fe2bad50c --- /dev/null +++ b/meta-digi-dey/recipes-devtools/python/python3-wheel_%.bbappend @@ -0,0 +1,2 @@ + +BBCLASSEXTEND = "native nativesdk"