Files
meta-openembedded/meta-oe/recipes-support/libspdm/libspdm_3.7.0.bb
T
Khem Raj 9c99f403f7 libspdm: Fix build with openssl 3.5
Backport new API signature, since the vendored version of openssl in
libspdm is 3.0.14, asn1.h has to sync for providing it.

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Alistair Francis <alistair.francis@wdc.com>
Cc: Martin Jansa <martin.jansa@gmail.com>
2025-04-11 20:51:29 -07:00

85 lines
2.6 KiB
BlitzBasic
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
SUMMARY = "DMTF's Reference Implementation of SPDM"
DESCRIPTION = "libspdm is a reference implementation of the DMTFs Security Protocols and \
Data Models (SPDM). This is used to enable authentication, attestation and key exchange to \
assist in providing infrastructure security enablement"
HOMEPAGE = "https://github.com/DMTF/libspdm"
BUGTRACKER = "https://github.com/DMTF/libspdm/issues"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=8f9b59a81a88da8e812af43728b72dd7"
DEPENDS = "openssl"
SRC_URI = "git://github.com/DMTF/libspdm.git;branch=main;protocol=https \
file://0001-Backport-API-introduced-in-openssl-3.5.0.patch"
SRCREV = "1be116c7b7713fa9003e1bd53b53a34758549eb9"
S = "${WORKDIR}/git"
inherit cmake
LIBSPDM_CFLAGS = "\
${OECMAKE_C_FLAGS} \
-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0 \
-DLIBSPDM_ENABLE_CAPABILITY_GET_KEY_PAIR_INFO_CAP=0 \
-DLIBSPDM_ENABLE_CAPABILITY_SET_KEY_PAIR_INFO_CAP=0 \
-DLIBSPDM_HAL_PASS_SPDM_CONTEXT=1 \
-DLIBSPDM_ENABLE_CAPABILITY_ENDPOINT_INFO_CAP=0 \
"
LIBSPDM_CFLAGS:append:toolchain-gcc = " -fPIE"
def get_spdm_multiarch(bb, d):
target_arch = d.getVar('TARGET_ARCH')
multiarch_options = {
"x86_64": "x64",
"i586": "ia32",
"i686": "ia32",
"arm": "arm",
"aarch64": "aarch64",
"riscv32": "riscv32",
"riscv64": "riscv64",
"ppc64le": "ppc64le",
}
if target_arch in multiarch_options :
return multiarch_options[target_arch]
bb.error("unsupported architecture '%s'" % target_arch)
EXTRA_OECMAKE += "\
-DARCH=${@get_spdm_multiarch(bb, d)} \
-DTOOLCHAIN=NONE \
-DTARGET=Release \
-DCRYPTO=openssl \
-DENABLE_BINARY_BUILD=1 \
-DCOMPILED_LIBCRYPTO_PATH=${libdir} \
-DCOMPILED_LIBSSL_PATH=${libdir} \
-DDISABLE_TESTS=1 \
-DDISABLE_EDDSA=1 \
-DCMAKE_C_FLAGS='${LIBSPDM_CFLAGS}' \
"
do_install () {
install -d ${D}/${libdir}
install -m 0644 lib/* ${D}/${libdir}/
install -d ${D}/${includedir}/${BPN}/
cp -rf ${S}/include/* ${D}/${includedir}/${BPN}/
install -d ${D}/${includedir}/${BPN}/os_stub/spdm_crypt_ext_lib
cp -rf ${S}/os_stub/spdm_crypt_ext_lib/*.h ${D}/${includedir}/${BPN}/os_stub/spdm_crypt_ext_lib/
}
FILES:${PN} += "${libdir}/*.a"
FILES:${PN} += "${includedir}/${BPN}/*.h"
FILES:${PN} += "${includedir}/${BPN}/os_stub/spdm_crypt_ext_lib/*.h"
COMPATIBLE_HOST:powerpc = "null"
COMPATIBLE_HOST:powerpc64 = "null"
COMPATIBLE_HOST:mipsarchn32 = "null"
COMPATIBLE_HOST:mipsarcho32 = "null"
COMPATIBLE_HOST:mipsarchn64 = "null"
BBCLASSEXTEND = "native nativesdk"