* [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 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
* 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
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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.