From 423eb6775a07a205df9e888cd0eefe3517b197bf Mon Sep 17 00:00:00 2001 From: Alistair Francis Date: Fri, 14 Nov 2025 12:35:21 +1000 Subject: libspdm: upgrade 3.7.0 -> 3.8.1 Signed-off-by: Alistair Francis Signed-off-by: Khem Raj --- ...-Backport-API-introduced-in-openssl-3.5.0.patch | 33 --------- meta-oe/recipes-support/libspdm/libspdm_3.7.0.bb | 83 ---------------------- meta-oe/recipes-support/libspdm/libspdm_3.8.1.bb | 81 +++++++++++++++++++++ 3 files changed, 81 insertions(+), 116 deletions(-) delete mode 100644 meta-oe/recipes-support/libspdm/libspdm/0001-Backport-API-introduced-in-openssl-3.5.0.patch delete mode 100644 meta-oe/recipes-support/libspdm/libspdm_3.7.0.bb create mode 100644 meta-oe/recipes-support/libspdm/libspdm_3.8.1.bb (limited to 'meta-oe') diff --git a/meta-oe/recipes-support/libspdm/libspdm/0001-Backport-API-introduced-in-openssl-3.5.0.patch b/meta-oe/recipes-support/libspdm/libspdm/0001-Backport-API-introduced-in-openssl-3.5.0.patch deleted file mode 100644 index 2df9a18c68..0000000000 --- a/meta-oe/recipes-support/libspdm/libspdm/0001-Backport-API-introduced-in-openssl-3.5.0.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 92f6c3d8fa26d9019ba27e0c1aa894517ada93b9 Mon Sep 17 00:00:00 2001 -From: Khem Raj -Date: Fri, 11 Apr 2025 17:47:05 -0700 -Subject: [PATCH] Backport API introduced in openssl 3.5.0 - -This commit [1] introduced this new API which is used by pem.h from -openssl and it should be provided by asn1.h which is vendored here so -it goes out of sync and causes build errors e.g - -In file included from ./os_stub/cryptlib_openssl/pk/x509.c:18: -/usr/include/openssl/pem.h:399:28: error: unknown type name 'OSSL_i2d_of_void_ctx' - 399 | int PEM_ASN1_write_bio_ctx(OSSL_i2d_of_void_ctx *i2d, void *vctx, - -[1] https://github.com/openssl/openssl/commit/35f6e7ea02b599d5aaf220b4720cbadd946d8023 - -Upstream-Status: Submitted [https://github.com/DMTF/libspdm/pull/3033] -Signed-off-by: Khem Raj ---- - os_stub/openssllib/openssl_gen/openssl/asn1.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/os_stub/openssllib/openssl_gen/openssl/asn1.h b/os_stub/openssllib/openssl_gen/openssl/asn1.h -index a90152ee..fcfbe42e 100644 ---- a/os_stub/openssllib/openssl_gen/openssl/asn1.h -+++ b/os_stub/openssllib/openssl_gen/openssl/asn1.h -@@ -368,6 +368,7 @@ typedef struct ASN1_VALUE_st ASN1_VALUE; - - typedef void *d2i_of_void(void **, const unsigned char **, long); - typedef int i2d_of_void(const void *, unsigned char **); -+typedef int OSSL_i2d_of_void_ctx(const void *, unsigned char **, void *vctx); - - /*- - * The following macros and typedefs allow an ASN1_ITEM diff --git a/meta-oe/recipes-support/libspdm/libspdm_3.7.0.bb b/meta-oe/recipes-support/libspdm/libspdm_3.7.0.bb deleted file mode 100644 index c6bbd1716b..0000000000 --- a/meta-oe/recipes-support/libspdm/libspdm_3.7.0.bb +++ /dev/null @@ -1,83 +0,0 @@ -SUMMARY = "DMTF's Reference Implementation of SPDM" -DESCRIPTION = "libspdm is a reference implementation of the DMTF’s 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" - - -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" diff --git a/meta-oe/recipes-support/libspdm/libspdm_3.8.1.bb b/meta-oe/recipes-support/libspdm/libspdm_3.8.1.bb new file mode 100644 index 0000000000..431eb8fd40 --- /dev/null +++ b/meta-oe/recipes-support/libspdm/libspdm_3.8.1.bb @@ -0,0 +1,81 @@ +SUMMARY = "DMTF's Reference Implementation of SPDM" +DESCRIPTION = "libspdm is a reference implementation of the DMTF’s 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=release-3.8;protocol=https" +SRCREV = "d7c8c8247b4d0bd8ed75d9f35a558a4df173a4c7" + +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" -- cgit v1.2.3-54-g00ecf