* [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files @ 2023-07-21 3:21 Alistair Francis 2023-07-21 3:21 ` [Buildroot] [PATCH 2/2] package/libspdm: Initial commit Alistair Francis 2023-07-23 17:46 ` [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files Yann E. MORIN 0 siblings, 2 replies; 4+ messages in thread From: Alistair Francis @ 2023-07-21 3:21 UTC (permalink / raw) To: buildroot; +Cc: alistair23, Alistair Francis, Samuel Martin Signed-off-by: Alistair Francis <alistair.francis@wdc.com> --- package/libopenssl/libopenssl.mk | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/package/libopenssl/libopenssl.mk b/package/libopenssl/libopenssl.mk index 7a4e0dfca2..9d44098063 100644 --- a/package/libopenssl/libopenssl.mk +++ b/package/libopenssl/libopenssl.mk @@ -127,6 +127,10 @@ endef define LIBOPENSSL_INSTALL_STAGING_CMDS $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install + mkdir -p $(STAGING_DIR)/usr/include/crypto + $(INSTALL) -m 644 $(@D)/include/crypto/* $(STAGING_DIR)/usr/include/crypto/ + mkdir -p $(STAGING_DIR)/usr/include/internal + $(INSTALL) -m 644 $(@D)/include/internal/* $(STAGING_DIR)/usr/include/internal/ endef define HOST_LIBOPENSSL_INSTALL_CMDS -- 2.40.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [Buildroot] [PATCH 2/2] package/libspdm: Initial commit 2023-07-21 3:21 [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files Alistair Francis @ 2023-07-21 3:21 ` Alistair Francis 2023-07-23 18:10 ` Yann E. MORIN 2023-07-23 17:46 ` [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files Yann E. MORIN 1 sibling, 1 reply; 4+ messages in thread From: Alistair Francis @ 2023-07-21 3:21 UTC (permalink / raw) To: buildroot; +Cc: alistair23, Alistair Francis, Samuel Martin Signed-off-by: Alistair Francis <alistair.francis@wdc.com> --- package/Config.in | 1 + package/libspdm/Config.in | 8 ++++ package/libspdm/libspdm.hash | 3 ++ package/libspdm/libspdm.mk | 75 ++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+) create mode 100644 package/libspdm/Config.in create mode 100644 package/libspdm/libspdm.hash create mode 100644 package/libspdm/libspdm.mk diff --git a/package/Config.in b/package/Config.in index 601922aad5..8384654616 100644 --- a/package/Config.in +++ b/package/Config.in @@ -192,6 +192,7 @@ menu "Development tools" source "package/jo/Config.in" source "package/jq/Config.in" source "package/libtool/Config.in" + source "package/libspdm/Config.in" source "package/make/Config.in" source "package/mawk/Config.in" source "package/patch/Config.in" diff --git a/package/libspdm/Config.in b/package/libspdm/Config.in new file mode 100644 index 0000000000..3051fc8c59 --- /dev/null +++ b/package/libspdm/Config.in @@ -0,0 +1,8 @@ +config BR2_PACKAGE_LIBSPDM + bool "libspdm" + depends on BR2_PACKAGE_OPENSSL + help + libspdm is a sample implementation that follows + the DMTF SPDM specifications + + https://github.com/DMTF/libspdm diff --git a/package/libspdm/libspdm.hash b/package/libspdm/libspdm.hash new file mode 100644 index 0000000000..d06af29397 --- /dev/null +++ b/package/libspdm/libspdm.hash @@ -0,0 +1,3 @@ +# Locally calculated +sha256 3a40daa59f32843062c3d2699acee09bd0ee217eb8ebf0378ae12b60b6db0636 libspdm-3.0.0.tar.gz +sha256 337130631a714eeae017556cad101d5324c2961214120b6214741d3d43667086 LICENSE.md diff --git a/package/libspdm/libspdm.mk b/package/libspdm/libspdm.mk new file mode 100644 index 0000000000..1f8012f599 --- /dev/null +++ b/package/libspdm/libspdm.mk @@ -0,0 +1,75 @@ +################################################################################ +# +# libspdm +# +################################################################################ + +LIBSPDM_VERSION = 3.0.0 +LIBSPDM_SITE = $(call github,DMTF,libspdm,$(LIBSPDM_VERSION)) +LIBSPDM_LICENSE = BSD-3-Clause +LIBSPDM_LICENSE_FILES = LICENSE.md + +LIBSPDM_INSTALL_STAGING = YES +LIBSPDM_INSTALL_TARGET = YES + +LIBSPDM_DEPENDENCIES += openssl + +ifeq ($(BR2_arcle)$(BR2_arceb),y) +LIBSPDM_TARGET_CPU_FAMILY = arc +else ifeq ($(BR2_arm)$(BR2_armeb),y) +LIBSPDM_TARGET_CPU_FAMILY = arm +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) +LIBSPDM_TARGET_CPU_FAMILY = aarch64 +else ifeq ($(BR2_i386),y) +LIBSPDM_TARGET_CPU_FAMILY = ia32 +else ifeq ($(BR2_riscv)$(BR2_RISCV_32),yy) +LIBSPDM_TARGET_CPU_FAMILY = riscv32 +else ifeq ($(BR2_riscv)$(BR2_RISCV_64),yy) +LIBSPDM_TARGET_CPU_FAMILY = riscv64 +else ifeq ($(BR2_x86_64),y) +LIBSPDM_TARGET_CPU_FAMILY = x64 +else +LIBSPDM_TARGET_CPU_FAMILY = $(ARCH) +endif + +LIBSPDM_CONF_OPTS = \ + -DARCH=$(LIBSPDM_TARGET_CPU_FAMILY) \ + -DTOOLCHAIN=NONE \ + -DTARGET=Release \ + -DCRYPTO=openssl \ + -DENABLE_BINARY_BUILD=1 \ + -DCOMPILED_LIBCRYPTO_PATH=/usr/lib/ \ + -DCOMPILED_LIBSSL_PATH=/usr/lib/ \ + -DDISABLE_TESTS=1 \ + -DLINK_FLAGS=$(STAGING_DIR) + +define LIBSPDM_INSTALL_STAGING_CMDS + $(INSTALL) -D -m 0755 $(@D)/lib/* $(STAGING_DIR)/usr/lib/ + + $(INSTALL) -d $(STAGING_DIR)/usr/include/library + $(INSTALL) -D -m 0755 $(@D)/include/library/* $(STAGING_DIR)/usr/include/library + + $(INSTALL) -d $(STAGING_DIR)/usr/include/internal + $(INSTALL) -D -m 0755 $(@D)/include/internal/*.h $(STAGING_DIR)/usr/include/internal/ + + $(INSTALL) -d $(STAGING_DIR)/usr/include/hal/library/cryptlib + $(INSTALL) -d $(STAGING_DIR)/usr/include/hal/library/requester + $(INSTALL) -d $(STAGING_DIR)/usr/include/hal/library/responder + $(INSTALL) -D -m 0755 $(@D)/include/hal/*.h $(STAGING_DIR)/usr/include/hal/ + $(INSTALL) -D -m 0755 $(@D)/include/hal/library/*.h $(STAGING_DIR)/usr/include/hal/library/ + $(INSTALL) -D -m 0755 $(@D)/include/hal/library/cryptlib/* $(STAGING_DIR)/usr/include/hal/library/cryptlib/ + $(INSTALL) -D -m 0755 $(@D)/include/hal/library/requester/* $(STAGING_DIR)/usr/include/hal/library/requester/ + $(INSTALL) -D -m 0755 $(@D)/include/hal/library/responder/* $(STAGING_DIR)/usr/include/hal/library/responder/ + + $(INSTALL) -d $(STAGING_DIR)/usr/include/industry_standard + $(INSTALL) -D -m 0755 $(@D)/include/industry_standard/* $(STAGING_DIR)/usr/include/industry_standard + + $(INSTALL) -d $(STAGING_DIR)/usr/include/os_stub/spdm_crypt_ext_lib + $(INSTALL) -D -m 0755 $(@D)/os_stub/spdm_crypt_ext_lib/*.h $(STAGING_DIR)/usr/include/os_stub/spdm_crypt_ext_lib +endef + +define LIBSPDM_INSTALL_TARGET_CMDS + $(INSTALL) -D -m 0755 $(@D)/lib/* $(TARGET_DIR)/usr/lib/ +endef + +$(eval $(cmake-package)) -- 2.40.1 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 2/2] package/libspdm: Initial commit 2023-07-21 3:21 ` [Buildroot] [PATCH 2/2] package/libspdm: Initial commit Alistair Francis @ 2023-07-23 18:10 ` Yann E. MORIN 0 siblings, 0 replies; 4+ messages in thread From: Yann E. MORIN @ 2023-07-23 18:10 UTC (permalink / raw) To: Alistair Francis; +Cc: Samuel Martin, Alistair Francis, buildroot Alistair, All, On 2023-07-21 13:21 +1000, Alistair Francis spake thusly: > Signed-off-by: Alistair Francis <alistair.francis@wdc.com> > --- [--SNIP--] > diff --git a/package/libspdm/Config.in b/package/libspdm/Config.in > new file mode 100644 > index 0000000000..3051fc8c59 > --- /dev/null > +++ b/package/libspdm/Config.in > @@ -0,0 +1,8 @@ > +config BR2_PACKAGE_LIBSPDM > + bool "libspdm" > + depends on BR2_PACKAGE_OPENSSL You can select BR2_PACKAGE_OPENSSL. That will ensure that either openssl (libopenssl) or libressl are enabled. If your package can work with either, then you're all set with just that: select BR2_PACKAGE_OPENSSL If your package really want opensll (libopenssl), then you must state so: select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL [--SNIP--] > diff --git a/package/libspdm/libspdm.mk b/package/libspdm/libspdm.mk > new file mode 100644 > index 0000000000..1f8012f599 > --- /dev/null > +++ b/package/libspdm/libspdm.mk > @@ -0,0 +1,75 @@ > +################################################################################ > +# > +# libspdm > +# > +################################################################################ > + > +LIBSPDM_VERSION = 3.0.0 > +LIBSPDM_SITE = $(call github,DMTF,libspdm,$(LIBSPDM_VERSION)) > +LIBSPDM_LICENSE = BSD-3-Clause > +LIBSPDM_LICENSE_FILES = LICENSE.md > + > +LIBSPDM_INSTALL_STAGING = YES > +LIBSPDM_INSTALL_TARGET = YES > + > +LIBSPDM_DEPENDENCIES += openssl > + > +ifeq ($(BR2_arcle)$(BR2_arceb),y) > +LIBSPDM_TARGET_CPU_FAMILY = arc > +else ifeq ($(BR2_arm)$(BR2_armeb),y) > +LIBSPDM_TARGET_CPU_FAMILY = arm > +else ifeq ($(BR2_aarch64)$(BR2_aarch64_be),y) > +LIBSPDM_TARGET_CPU_FAMILY = aarch64 > +else ifeq ($(BR2_i386),y) > +LIBSPDM_TARGET_CPU_FAMILY = ia32 > +else ifeq ($(BR2_riscv)$(BR2_RISCV_32),yy) > +LIBSPDM_TARGET_CPU_FAMILY = riscv32 > +else ifeq ($(BR2_riscv)$(BR2_RISCV_64),yy) > +LIBSPDM_TARGET_CPU_FAMILY = riscv64 > +else ifeq ($(BR2_x86_64),y) > +LIBSPDM_TARGET_CPU_FAMILY = x64 > +else > +LIBSPDM_TARGET_CPU_FAMILY = $(ARCH) > +endif I like that such conditions be written in Config.in, even if this is not a hard requirement: config BR2_PACKAGE_LIBSPDM_CPU_FAMILLY string default "arc" if BR2_arcle || BR2_arceb default "arm" if BR2_arm || BR2_armeb ... default BR2_ARCH # Yes, this should work... and then in the .mk: LIBSPDM_TARGET_CPU_FAMILY = $(call qstrip,$(BR2_PACKAGE_LIBSPDM_CPU_FAMILLY)) [--SNIP--] > +define LIBSPDM_INSTALL_STAGING_CMDS > + $(INSTALL) -D -m 0755 $(@D)/lib/* $(STAGING_DIR)/usr/lib/ You need to ensure that the destination direcotry exists before you copy multiple files in one go there; what we usually do is: $(INSTALL) -m 075 -t $(STAGING_DIR)/usr/lib/ $(@D)/lib/* or the usual mkdir-then-install dance. > + $(INSTALL) -d $(STAGING_DIR)/usr/include/library The set of isntall directories: /usr/include/library/ /usr/include/internal/ /usr/include/hal/ /usr/include/industry_standard/ are very generic and confusing. Should they not be in a common sub-directory, e.g.: /usr/include/spdm/library/ /usr/include/spdm/internal/ /usr/include/spdm/hal/ /usr/include/spdm/industry_standard/ Because I can at least see 'hal' conflict with a lot of other HALs (and don't wait for Dave...) Regards, Yann E. MORIN. -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files 2023-07-21 3:21 [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files Alistair Francis 2023-07-21 3:21 ` [Buildroot] [PATCH 2/2] package/libspdm: Initial commit Alistair Francis @ 2023-07-23 17:46 ` Yann E. MORIN 1 sibling, 0 replies; 4+ messages in thread From: Yann E. MORIN @ 2023-07-23 17:46 UTC (permalink / raw) To: Alistair Francis; +Cc: Samuel Martin, Alistair Francis, buildroot Alistair, All, On 2023-07-21 13:21 +1000, Alistair Francis spake thusly: > Signed-off-by: Alistair Francis <alistair.francis@wdc.com> > --- > package/libopenssl/libopenssl.mk | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/package/libopenssl/libopenssl.mk b/package/libopenssl/libopenssl.mk > index 7a4e0dfca2..9d44098063 100644 > --- a/package/libopenssl/libopenssl.mk > +++ b/package/libopenssl/libopenssl.mk > @@ -127,6 +127,10 @@ endef > > define LIBOPENSSL_INSTALL_STAGING_CMDS > $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(STAGING_DIR) install > + mkdir -p $(STAGING_DIR)/usr/include/crypto > + $(INSTALL) -m 644 $(@D)/include/crypto/* $(STAGING_DIR)/usr/include/crypto/ > + mkdir -p $(STAGING_DIR)/usr/include/internal > + $(INSTALL) -m 644 $(@D)/include/internal/* $(STAGING_DIR)/usr/include/internal/ You will have to provide some explanations for this change. Indeed, as far as I can see, those headers are private headers for openssl, and are not meant to be installed. For example, they are not available at all in my Ubuntu 20.04, and I could not find them in an Ubuntu 23.04 either: $ apt-file search /usr/include/crypto/ [nada] So, this commit will need some more details as to why private headers need to be installed. Or why they are not private but not installed by default. Yes, I see that patch 2/2 adding libspdm will probably want those headers, but that at the very least should be mentioned. Regards, Yann E. MORIN. > endef > > define HOST_LIBOPENSSL_INSTALL_CMDS > -- > 2.40.1 > > _______________________________________________ > buildroot mailing list > buildroot@buildroot.org > https://lists.buildroot.org/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-07-23 18:10 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2023-07-21 3:21 [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files Alistair Francis 2023-07-21 3:21 ` [Buildroot] [PATCH 2/2] package/libspdm: Initial commit Alistair Francis 2023-07-23 18:10 ` Yann E. MORIN 2023-07-23 17:46 ` [Buildroot] [PATCH 1/2] package/libopenssl: Copy the crypto include files Yann E. MORIN
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox