Files
meta-openembedded/meta-python/recipes-devtools/python/python3-m2crypto_0.48.0.bb
T
Khem Raj 656738dfed python3-m2crypto: add python3-wheel-native to DEPENDS
setuptools3.bbclass and python_setuptools_build_meta.bbclass no longer
add python3-wheel-native to DEPENDS by default, following oe-core
commit e546c697b7 ("classes/setuptools3: remove wheel dependency"),
since setuptools >= 70.1.0 no longer needs the external wheel package
to build a wheel.

This recipe's pyproject.toml/setup.py still declares wheel as a build
requirement, so pyproject-build's --no-isolation dependency check now
fails:

  ERROR Unmet dependencies (checked against .../recipe-sysroot-native/usr/bin/nativepython3):
  	wheel
  		wanted: any
  		found: not installed

Add python3-wheel-native to DEPENDS directly to satisfy it.

Note: this alone does not get python3-m2crypto building again; it
still fails separately because its SWIG-generated bindings use
Python 2-era C-API symbols (e.g. PyString_FromString) that no longer
exist in Python 3.14. That is a distinct, pre-existing issue that
needs its own fix.

Signed-off-by: Khem Raj <khem.raj@oss.qualcomm.com>
2026-08-13 13:01:44 -07:00

58 lines
2.0 KiB
BlitzBasic

SUMMARY = "A Python crypto and SSL toolkit"
HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSES/BSD-2-Clause.txt;md5=8099b0e569f862ece05740aef06c82a2"
SRC_URI[sha256sum] = "178e290f558ddf0379aaefd34c0a8ddb21f21502594e588f928dda85f1ad202b"
SRC_URI += "file://0001-setup.py-Make-the-cmd-available.patch"
CVE_STATUS[CVE-2009-0127] = "disputed: upstream claims there is no bug"
CVE_STATUS[CVE-2020-25657] = "fixed-version: the used version (0.46.2) contains the fix already"
inherit pypi siteinfo python_setuptools_build_meta
DEPENDS += "python3-wheel-native"
DEPENDS += "openssl swig-native"
RDEPENDS:${PN} += "\
python3-datetime \
python3-setuptools \
python3-logging \
python3-netclient \
python3-netserver \
python3-numbers \
python3-xmlrpc \
"
DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR} -I${STAGING_INCDIR}"
DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_EXECPREFIXDIR}"
SWIG_FEATURES ?= "-D__${HOST_ARCH}__ ${@['-D__ILP32__','-D__LP64__'][d.getVar('SITEINFO_BITS') != '32']} -DOPENSSL_NO_FILENAMES"
SWIG_FEATURES:append:riscv64 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}"
SWIG_FEATURES:append:riscv32 = " -D__SIZEOF_POINTER__=${SITEINFO_BITS}/8 -D__riscv_xlen=${SITEINFO_BITS}"
SWIG_FEATURES:append:mipsarch = " -D_MIPS_SZPTR=${SITEINFO_BITS}"
SWIG_FEATURES:append:powerpc64le = " -D__powerpc64__"
SWIG_FEATURES:append:x86 = " -D__i386__"
SWIG_FEATURES:append:x32 = " -D__ILP32__"
export SWIG_FEATURES
export STAGING_DIR
do_configure:prepend:class-target() {
# workaround for https://github.com/swiftlang/swift/issues/69311
sed -i "/sys\/types.h/d" ${RECIPE_SYSROOT}${includedir}/openssl/e_os2.h
}
do_install:append() {
rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/M2Crypto/SSL/__pycache__/*.cpython-*.pyc
rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/M2Crypto/__pycache__/*.cpython-*.pyc
}
CVE_PRODUCT = "m2crypto"
BBCLASSEXTEND = "native"