Message ID | 20250130053941.1680181-1-alistair.francis@wdc.com |
---|---|
State | New |
Headers | show |
Series | [meta-oe,v2] meta-oe: libspdm: Initial support for libspdm | expand |
On Wed, Jan 29, 2025 at 9:39 PM Alistair Francis via lists.openembedded.org <alistair23=gmail.com@lists.openembedded.org> wrote: > > libspdm is DMTF's Reference Implementation of SPDM, it's a library that > can be used to implement a SPDM requester or responder in userspace. > > This patch adds support for building libspdm, which can then be used to > build applications depending on libspdm. > > Signed-off-by: Alistair Francis <alistair.francis@wdc.com> > --- > .../recipes-support/libspdm/libspdm_3.6.0.bb | 72 +++++++++++++++++++ > 1 file changed, 72 insertions(+) > create mode 100644 meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb > > diff --git a/meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb b/meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb > new file mode 100644 > index 0000000000..5f51730d12 > --- /dev/null > +++ b/meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb > @@ -0,0 +1,72 @@ > +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" > +SRCREV = "5ebe5e3946b9439928fa3a7548268c29cccc1b16" > + > +S = "${WORKDIR}/git" > + > +inherit cmake > + > +LIBSPDM_CFLAGS = "\ > + ${TARGET_CFLAGS} \ > + -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 \ > + " > + > +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", > + } I guess we need to set COMPATIBLE_HOST to null for ppc and mips so keep world builds happy. > + > + 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 \ > + " > + > +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" > + > +BBCLASSEXTEND = "native nativesdk" > -- > 2.47.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#115147): https://lists.openembedded.org/g/openembedded-devel/message/115147 > Mute This Topic: https://lists.openembedded.org/mt/110892822/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb b/meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb new file mode 100644 index 0000000000..5f51730d12 --- /dev/null +++ b/meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb @@ -0,0 +1,72 @@ +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" +SRCREV = "5ebe5e3946b9439928fa3a7548268c29cccc1b16" + +S = "${WORKDIR}/git" + +inherit cmake + +LIBSPDM_CFLAGS = "\ + ${TARGET_CFLAGS} \ + -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 \ + " + +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", + } + + 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 \ + " + +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" + +BBCLASSEXTEND = "native nativesdk"
libspdm is DMTF's Reference Implementation of SPDM, it's a library that can be used to implement a SPDM requester or responder in userspace. This patch adds support for building libspdm, which can then be used to build applications depending on libspdm. Signed-off-by: Alistair Francis <alistair.francis@wdc.com> --- .../recipes-support/libspdm/libspdm_3.6.0.bb | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 meta-oe/recipes-support/libspdm/libspdm_3.6.0.bb