diff mbox series

[v5,1/1] package/spdm-utils: new package

Message ID 20241118025944.1068363-2-wilfred.mallawa@wdc.com
State New
Headers show
Series [v5,1/1] package/spdm-utils: new package | expand

Commit Message

Wilfred Mallawa Nov. 18, 2024, 2:59 a.m. UTC
From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>

Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
---
Changes in V4 -> V5:
	- Uses `spdm-utils` release v0.7.1
	- Added `depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS`
	- Merged 'depends' comments into a single comment.
	- Added license hashes and license files.
	- Alphabetically order dependencies.
	- Drop the ruby/gem dependency entirely as`spdm-utils` v0.7.1 makes it
	  optional.

 DEVELOPERS                         |  4 +++
 package/Config.in                  |  1 +
 package/spdm-utils/Config.in       | 23 ++++++++++++++
 package/spdm-utils/spdm-utils.hash |  5 +++
 package/spdm-utils/spdm-utils.mk   | 51 ++++++++++++++++++++++++++++++
 5 files changed, 84 insertions(+)
 create mode 100644 package/spdm-utils/Config.in
 create mode 100644 package/spdm-utils/spdm-utils.hash
 create mode 100644 package/spdm-utils/spdm-utils.mk

Comments

Wilfred Mallawa Dec. 17, 2024, 12:37 a.m. UTC | #1
Gentle ping :) !

On Mon, 2024-11-18 at 12:59 +1000, Wilfred Mallawa wrote:
> From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
> 
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> ---
> Changes in V4 -> V5:
> 	- Uses `spdm-utils` release v0.7.1
> 	- Added `depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS`
> 	- Merged 'depends' comments into a single comment.
> 	- Added license hashes and license files.
> 	- Alphabetically order dependencies.
> 	- Drop the ruby/gem dependency entirely as`spdm-utils`
> v0.7.1 makes it
> 	  optional.
> 
>  DEVELOPERS                         |  4 +++
>  package/Config.in                  |  1 +
>  package/spdm-utils/Config.in       | 23 ++++++++++++++
>  package/spdm-utils/spdm-utils.hash |  5 +++
>  package/spdm-utils/spdm-utils.mk   | 51
> ++++++++++++++++++++++++++++++
>  5 files changed, 84 insertions(+)
>  create mode 100644 package/spdm-utils/Config.in
>  create mode 100644 package/spdm-utils/spdm-utils.hash
>  create mode 100644 package/spdm-utils/spdm-utils.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 3945803d53..45c0e91150 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -154,6 +154,7 @@ F:	board/sifive/
>  F:	boot/opensbi/
>  F:	configs/hifive_unleashed_defconfig
>  F:	package/libspdm/
> +F:	package/spdm-utils/
>  F:	package/xen/
>  
>  N:	Alvaro G. M <alvaro.gamez@hazent.com>
> @@ -3341,6 +3342,9 @@ F:	package/uclibc-ng-test/
>  F:	package/zabbix/
>  F:	support/testing/tests/package/test_ruby.py
>  
> +N:	Wilfred Mallawa <wilfred.opensource@gmail.com>
> +F:	package/spdm-utils/
> +
>  N:	Will Newton <will.newton@gmail.com>
>  F:	package/enchant/
>  F:	package/erlang/
> diff --git a/package/Config.in b/package/Config.in
> index 1eb5e1e020..c39728bca0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2781,6 +2781,7 @@ comment "Utilities"
>  	source "package/screen/Config.in"
>  	source "package/screenfetch/Config.in"
>  	source "package/sexpect/Config.in"
> +	source "package/spdm-utils/Config.in"
>  	source "package/sudo/Config.in"
>  	source "package/terminology/Config.in"
>  	source "package/time/Config.in"
> diff --git a/package/spdm-utils/Config.in b/package/spdm-
> utils/Config.in
> new file mode 100644
> index 0000000000..ac4fc11003
> --- /dev/null
> +++ b/package/spdm-utils/Config.in
> @@ -0,0 +1,23 @@
> +config BR2_PACKAGE_SPDM_UTILS
> +	bool "spdm-utils"
> +	depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_HAS_UDEV
> +	select BR2_PACKAGE_HOST_RUSTC
> +	select BR2_PACKAGE_PCIUTILS
> +	select BR2_PACKAGE_LIBSPDM
> +	help
> +	  SPDM-Utils is a Linux application designed to support,
> +	  test and develop SPDM requesters and responders.
> +	  SPDM-Utils uses libspdm as the backend to perform SPDM
> +	  communication. SPDM-Utils currently supports the
> +	  PCIe Data Object Exchange (DOE) Capability.
> +
> +	  https://github.com/westerndigitalcorporation/spdm-utils
> +
> +comment "spdm-utils needs udev /dev management, host gcc >= 7"
> +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	depends on !BR2_PACKAGE_HAS_UDEV || \
> +		!BR2_HOST_GCC_AT_LEAST_7
> diff --git a/package/spdm-utils/spdm-utils.hash b/package/spdm-
> utils/spdm-utils.hash
> new file mode 100644
> index 0000000000..5080c807e3
> --- /dev/null
> +++ b/package/spdm-utils/spdm-utils.hash
> @@ -0,0 +1,5 @@
> +# Locally calculated
> +sha256 
> 04bfe72f56e46272e1ea49a63eb88bacf6416fda5684b7747c5368116c0dc4ef 
> spdm-utils-0.7.1-cargo2.tar.gz
> +sha256 
> 62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a 
> LICENSE-APACHE
> +sha256 
> 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 
> LICENSE-MIT
> +sha256 
> b378ca951adc9417548e94792ade613894bb65ca08a01c2d17f4ee40d21fc7e3 
> NOTICES
> diff --git a/package/spdm-utils/spdm-utils.mk b/package/spdm-
> utils/spdm-utils.mk
> new file mode 100644
> index 0000000000..0908057d6a
> --- /dev/null
> +++ b/package/spdm-utils/spdm-utils.mk
> @@ -0,0 +1,51 @@
> +####################################################################
> ############
> +#
> +# spdm-utils
> +#
> +####################################################################
> ############
> +
> +SPDM_UTILS_VERSION = 0.7.1
> +SPDM_UTILS_SITE = $(call github,westerndigitalcorporation,spdm-
> utils,v$(SPDM_UTILS_VERSION))
> +SPDM_UTILS_LICENSE = Apache-2.0 or MIT
> +SPDM_UTILS_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT NOTICES
> +SPDM_UTILS_DEPENDENCIES = host-clang host-ruby libspdm pciutils udev
> +
> +SPDM_UTILS_ALIAS_CERTS = \
> +		openssl.cnf \
> +		slot0/immutable.der \
> +		slot0/device.cert.der \
> +		slot0/device.der \
> +		slot0/device.key \
> +		slot0/bundle_responder.certchain.der
> +
> +# Used to generate SPDM Alias certificate model certificates,
> +# required by `setup_certs.sh`
> +SPDM_UTILS_GENERIC_CERTS = \
> +		slot0/param.pem \
> +		slot0/end_requester.req \
> +		slot0/end_requester.key \
> +		slot0/end_responder.key \
> +		slot0/end_responder.req
> +
> +# SPDM-Utils expects the following certificates to be present for
> SPDM
> +# functionality, make sure they are all copied.
> +#
> +# `setup_certs.sh` shall be used by a responder to regenerate it's
> mutable
> +# certificate chain, typically on start up.
> +define SPDM_UTILS_INSTALL_CERTS
> +	$(INSTALL) -D -m 0755 $(@D)/certs/setup_certs.sh
> $(TARGET_DIR)/usr/share/spdm/certs/setup_certs.sh
> +	$(INSTALL) -D -m 0644 $(@D)/certs/openssl.cnf
> $(TARGET_DIR)/usr/share/spdm/certs/openssl.cnf
> +
> +	$(foreach f,$(SPDM_UTILS_ALIAS_CERTS),
> +		$(INSTALL) -D -m 0644 $(@D)/certs/alias/$(f)
> $(TARGET_DIR)/usr/share/spdm/certs/alias/$(f)
> +	)
> +
> +	$(foreach f,$(SPDM_UTILS_GENERIC_CERTS),
> +		$(INSTALL) -D -m 0644 $(@D)/certs/$(f)
> $(TARGET_DIR)/usr/share/spdm/certs/$(f)
> +	)
> +	$(INSTALL) -D -m 0644 $(@D)/manifest/manifest.out.cbor
> $(TARGET_DIR)/usr/share/spdm/manifest/manifest.out.cbor
> +endef
> +
> +SPDM_UTILS_POST_INSTALL_TARGET_HOOKS += SPDM_UTILS_INSTALL_CERTS
> +
> +$(eval $(cargo-package))
Wilfred Mallawa Jan. 6, 2025, 11:47 p.m. UTC | #2
Ping :)

On Mon, 2024-11-18 at 12:59 +1000, Wilfred Mallawa wrote:
> From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
> 
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> ---
> Changes in V4 -> V5:
> 	- Uses `spdm-utils` release v0.7.1
> 	- Added `depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS`
> 	- Merged 'depends' comments into a single comment.
> 	- Added license hashes and license files.
> 	- Alphabetically order dependencies.
> 	- Drop the ruby/gem dependency entirely as`spdm-utils`
> v0.7.1 makes it
> 	  optional.
> 
>  DEVELOPERS                         |  4 +++
>  package/Config.in                  |  1 +
>  package/spdm-utils/Config.in       | 23 ++++++++++++++
>  package/spdm-utils/spdm-utils.hash |  5 +++
>  package/spdm-utils/spdm-utils.mk   | 51
> ++++++++++++++++++++++++++++++
>  5 files changed, 84 insertions(+)
>  create mode 100644 package/spdm-utils/Config.in
>  create mode 100644 package/spdm-utils/spdm-utils.hash
>  create mode 100644 package/spdm-utils/spdm-utils.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 3945803d53..45c0e91150 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -154,6 +154,7 @@ F:	board/sifive/
>  F:	boot/opensbi/
>  F:	configs/hifive_unleashed_defconfig
>  F:	package/libspdm/
> +F:	package/spdm-utils/
>  F:	package/xen/
>  
>  N:	Alvaro G. M <alvaro.gamez@hazent.com>
> @@ -3341,6 +3342,9 @@ F:	package/uclibc-ng-test/
>  F:	package/zabbix/
>  F:	support/testing/tests/package/test_ruby.py
>  
> +N:	Wilfred Mallawa <wilfred.opensource@gmail.com>
> +F:	package/spdm-utils/
> +
>  N:	Will Newton <will.newton@gmail.com>
>  F:	package/enchant/
>  F:	package/erlang/
> diff --git a/package/Config.in b/package/Config.in
> index 1eb5e1e020..c39728bca0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2781,6 +2781,7 @@ comment "Utilities"
>  	source "package/screen/Config.in"
>  	source "package/screenfetch/Config.in"
>  	source "package/sexpect/Config.in"
> +	source "package/spdm-utils/Config.in"
>  	source "package/sudo/Config.in"
>  	source "package/terminology/Config.in"
>  	source "package/time/Config.in"
> diff --git a/package/spdm-utils/Config.in b/package/spdm-
> utils/Config.in
> new file mode 100644
> index 0000000000..ac4fc11003
> --- /dev/null
> +++ b/package/spdm-utils/Config.in
> @@ -0,0 +1,23 @@
> +config BR2_PACKAGE_SPDM_UTILS
> +	bool "spdm-utils"
> +	depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_HAS_UDEV
> +	select BR2_PACKAGE_HOST_RUSTC
> +	select BR2_PACKAGE_PCIUTILS
> +	select BR2_PACKAGE_LIBSPDM
> +	help
> +	  SPDM-Utils is a Linux application designed to support,
> +	  test and develop SPDM requesters and responders.
> +	  SPDM-Utils uses libspdm as the backend to perform SPDM
> +	  communication. SPDM-Utils currently supports the
> +	  PCIe Data Object Exchange (DOE) Capability.
> +
> +	  https://github.com/westerndigitalcorporation/spdm-utils
> +
> +comment "spdm-utils needs udev /dev management, host gcc >= 7"
> +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	depends on !BR2_PACKAGE_HAS_UDEV || \
> +		!BR2_HOST_GCC_AT_LEAST_7
> diff --git a/package/spdm-utils/spdm-utils.hash b/package/spdm-
> utils/spdm-utils.hash
> new file mode 100644
> index 0000000000..5080c807e3
> --- /dev/null
> +++ b/package/spdm-utils/spdm-utils.hash
> @@ -0,0 +1,5 @@
> +# Locally calculated
> +sha256 
> 04bfe72f56e46272e1ea49a63eb88bacf6416fda5684b7747c5368116c0dc4ef 
> spdm-utils-0.7.1-cargo2.tar.gz
> +sha256 
> 62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a 
> LICENSE-APACHE
> +sha256 
> 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 
> LICENSE-MIT
> +sha256 
> b378ca951adc9417548e94792ade613894bb65ca08a01c2d17f4ee40d21fc7e3 
> NOTICES
> diff --git a/package/spdm-utils/spdm-utils.mk b/package/spdm-
> utils/spdm-utils.mk
> new file mode 100644
> index 0000000000..0908057d6a
> --- /dev/null
> +++ b/package/spdm-utils/spdm-utils.mk
> @@ -0,0 +1,51 @@
> +####################################################################
> ############
> +#
> +# spdm-utils
> +#
> +####################################################################
> ############
> +
> +SPDM_UTILS_VERSION = 0.7.1
> +SPDM_UTILS_SITE = $(call github,westerndigitalcorporation,spdm-
> utils,v$(SPDM_UTILS_VERSION))
> +SPDM_UTILS_LICENSE = Apache-2.0 or MIT
> +SPDM_UTILS_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT NOTICES
> +SPDM_UTILS_DEPENDENCIES = host-clang host-ruby libspdm pciutils udev
> +
> +SPDM_UTILS_ALIAS_CERTS = \
> +		openssl.cnf \
> +		slot0/immutable.der \
> +		slot0/device.cert.der \
> +		slot0/device.der \
> +		slot0/device.key \
> +		slot0/bundle_responder.certchain.der
> +
> +# Used to generate SPDM Alias certificate model certificates,
> +# required by `setup_certs.sh`
> +SPDM_UTILS_GENERIC_CERTS = \
> +		slot0/param.pem \
> +		slot0/end_requester.req \
> +		slot0/end_requester.key \
> +		slot0/end_responder.key \
> +		slot0/end_responder.req
> +
> +# SPDM-Utils expects the following certificates to be present for
> SPDM
> +# functionality, make sure they are all copied.
> +#
> +# `setup_certs.sh` shall be used by a responder to regenerate it's
> mutable
> +# certificate chain, typically on start up.
> +define SPDM_UTILS_INSTALL_CERTS
> +	$(INSTALL) -D -m 0755 $(@D)/certs/setup_certs.sh
> $(TARGET_DIR)/usr/share/spdm/certs/setup_certs.sh
> +	$(INSTALL) -D -m 0644 $(@D)/certs/openssl.cnf
> $(TARGET_DIR)/usr/share/spdm/certs/openssl.cnf
> +
> +	$(foreach f,$(SPDM_UTILS_ALIAS_CERTS),
> +		$(INSTALL) -D -m 0644 $(@D)/certs/alias/$(f)
> $(TARGET_DIR)/usr/share/spdm/certs/alias/$(f)
> +	)
> +
> +	$(foreach f,$(SPDM_UTILS_GENERIC_CERTS),
> +		$(INSTALL) -D -m 0644 $(@D)/certs/$(f)
> $(TARGET_DIR)/usr/share/spdm/certs/$(f)
> +	)
> +	$(INSTALL) -D -m 0644 $(@D)/manifest/manifest.out.cbor
> $(TARGET_DIR)/usr/share/spdm/manifest/manifest.out.cbor
> +endef
> +
> +SPDM_UTILS_POST_INSTALL_TARGET_HOOKS += SPDM_UTILS_INSTALL_CERTS
> +
> +$(eval $(cargo-package))
Wilfred Mallawa Jan. 15, 2025, 1:55 a.m. UTC | #3
Gentle ping :)

On Mon, 2024-11-18 at 12:59 +1000, Wilfred Mallawa wrote:
> From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
> 
> Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> ---
> Changes in V4 -> V5:
> 	- Uses `spdm-utils` release v0.7.1
> 	- Added `depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS`
> 	- Merged 'depends' comments into a single comment.
> 	- Added license hashes and license files.
> 	- Alphabetically order dependencies.
> 	- Drop the ruby/gem dependency entirely as`spdm-utils`
> v0.7.1 makes it
> 	  optional.
> 
>  DEVELOPERS                         |  4 +++
>  package/Config.in                  |  1 +
>  package/spdm-utils/Config.in       | 23 ++++++++++++++
>  package/spdm-utils/spdm-utils.hash |  5 +++
>  package/spdm-utils/spdm-utils.mk   | 51
> ++++++++++++++++++++++++++++++
>  5 files changed, 84 insertions(+)
>  create mode 100644 package/spdm-utils/Config.in
>  create mode 100644 package/spdm-utils/spdm-utils.hash
>  create mode 100644 package/spdm-utils/spdm-utils.mk
> 
> diff --git a/DEVELOPERS b/DEVELOPERS
> index 3945803d53..45c0e91150 100644
> --- a/DEVELOPERS
> +++ b/DEVELOPERS
> @@ -154,6 +154,7 @@ F:	board/sifive/
>  F:	boot/opensbi/
>  F:	configs/hifive_unleashed_defconfig
>  F:	package/libspdm/
> +F:	package/spdm-utils/
>  F:	package/xen/
>  
>  N:	Alvaro G. M <alvaro.gamez@hazent.com>
> @@ -3341,6 +3342,9 @@ F:	package/uclibc-ng-test/
>  F:	package/zabbix/
>  F:	support/testing/tests/package/test_ruby.py
>  
> +N:	Wilfred Mallawa <wilfred.opensource@gmail.com>
> +F:	package/spdm-utils/
> +
>  N:	Will Newton <will.newton@gmail.com>
>  F:	package/enchant/
>  F:	package/erlang/
> diff --git a/package/Config.in b/package/Config.in
> index 1eb5e1e020..c39728bca0 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -2781,6 +2781,7 @@ comment "Utilities"
>  	source "package/screen/Config.in"
>  	source "package/screenfetch/Config.in"
>  	source "package/sexpect/Config.in"
> +	source "package/spdm-utils/Config.in"
>  	source "package/sudo/Config.in"
>  	source "package/terminology/Config.in"
>  	source "package/time/Config.in"
> diff --git a/package/spdm-utils/Config.in b/package/spdm-
> utils/Config.in
> new file mode 100644
> index 0000000000..ac4fc11003
> --- /dev/null
> +++ b/package/spdm-utils/Config.in
> @@ -0,0 +1,23 @@
> +config BR2_PACKAGE_SPDM_UTILS
> +	bool "spdm-utils"
> +	depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_HAS_UDEV
> +	select BR2_PACKAGE_HOST_RUSTC
> +	select BR2_PACKAGE_PCIUTILS
> +	select BR2_PACKAGE_LIBSPDM
> +	help
> +	  SPDM-Utils is a Linux application designed to support,
> +	  test and develop SPDM requesters and responders.
> +	  SPDM-Utils uses libspdm as the backend to perform SPDM
> +	  communication. SPDM-Utils currently supports the
> +	  PCIe Data Object Exchange (DOE) Capability.
> +
> +	  https://github.com/westerndigitalcorporation/spdm-utils
> +
> +comment "spdm-utils needs udev /dev management, host gcc >= 7"
> +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> +	depends on !BR2_PACKAGE_HAS_UDEV || \
> +		!BR2_HOST_GCC_AT_LEAST_7
> diff --git a/package/spdm-utils/spdm-utils.hash b/package/spdm-
> utils/spdm-utils.hash
> new file mode 100644
> index 0000000000..5080c807e3
> --- /dev/null
> +++ b/package/spdm-utils/spdm-utils.hash
> @@ -0,0 +1,5 @@
> +# Locally calculated
> +sha256 
> 04bfe72f56e46272e1ea49a63eb88bacf6416fda5684b7747c5368116c0dc4ef 
> spdm-utils-0.7.1-cargo2.tar.gz
> +sha256 
> 62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a 
> LICENSE-APACHE
> +sha256 
> 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 
> LICENSE-MIT
> +sha256 
> b378ca951adc9417548e94792ade613894bb65ca08a01c2d17f4ee40d21fc7e3 
> NOTICES
> diff --git a/package/spdm-utils/spdm-utils.mk b/package/spdm-
> utils/spdm-utils.mk
> new file mode 100644
> index 0000000000..0908057d6a
> --- /dev/null
> +++ b/package/spdm-utils/spdm-utils.mk
> @@ -0,0 +1,51 @@
> +####################################################################
> ############
> +#
> +# spdm-utils
> +#
> +####################################################################
> ############
> +
> +SPDM_UTILS_VERSION = 0.7.1
> +SPDM_UTILS_SITE = $(call github,westerndigitalcorporation,spdm-
> utils,v$(SPDM_UTILS_VERSION))
> +SPDM_UTILS_LICENSE = Apache-2.0 or MIT
> +SPDM_UTILS_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT NOTICES
> +SPDM_UTILS_DEPENDENCIES = host-clang host-ruby libspdm pciutils udev
> +
> +SPDM_UTILS_ALIAS_CERTS = \
> +		openssl.cnf \
> +		slot0/immutable.der \
> +		slot0/device.cert.der \
> +		slot0/device.der \
> +		slot0/device.key \
> +		slot0/bundle_responder.certchain.der
> +
> +# Used to generate SPDM Alias certificate model certificates,
> +# required by `setup_certs.sh`
> +SPDM_UTILS_GENERIC_CERTS = \
> +		slot0/param.pem \
> +		slot0/end_requester.req \
> +		slot0/end_requester.key \
> +		slot0/end_responder.key \
> +		slot0/end_responder.req
> +
> +# SPDM-Utils expects the following certificates to be present for
> SPDM
> +# functionality, make sure they are all copied.
> +#
> +# `setup_certs.sh` shall be used by a responder to regenerate it's
> mutable
> +# certificate chain, typically on start up.
> +define SPDM_UTILS_INSTALL_CERTS
> +	$(INSTALL) -D -m 0755 $(@D)/certs/setup_certs.sh
> $(TARGET_DIR)/usr/share/spdm/certs/setup_certs.sh
> +	$(INSTALL) -D -m 0644 $(@D)/certs/openssl.cnf
> $(TARGET_DIR)/usr/share/spdm/certs/openssl.cnf
> +
> +	$(foreach f,$(SPDM_UTILS_ALIAS_CERTS),
> +		$(INSTALL) -D -m 0644 $(@D)/certs/alias/$(f)
> $(TARGET_DIR)/usr/share/spdm/certs/alias/$(f)
> +	)
> +
> +	$(foreach f,$(SPDM_UTILS_GENERIC_CERTS),
> +		$(INSTALL) -D -m 0644 $(@D)/certs/$(f)
> $(TARGET_DIR)/usr/share/spdm/certs/$(f)
> +	)
> +	$(INSTALL) -D -m 0644 $(@D)/manifest/manifest.out.cbor
> $(TARGET_DIR)/usr/share/spdm/manifest/manifest.out.cbor
> +endef
> +
> +SPDM_UTILS_POST_INSTALL_TARGET_HOOKS += SPDM_UTILS_INSTALL_CERTS
> +
> +$(eval $(cargo-package))
Wilfred Mallawa Feb. 2, 2025, 10:24 p.m. UTC | #4
Ping!

On Wed, 2025-01-15 at 11:55 +1000, Wilfred Mallawa wrote:
> Gentle ping :)
> 
> On Mon, 2024-11-18 at 12:59 +1000, Wilfred Mallawa wrote:
> > From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
> > 
> > Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
> > Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> > ---
> > Changes in V4 -> V5:
> > 	- Uses `spdm-utils` release v0.7.1
> > 	- Added `depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS`
> > 	- Merged 'depends' comments into a single comment.
> > 	- Added license hashes and license files.
> > 	- Alphabetically order dependencies.
> > 	- Drop the ruby/gem dependency entirely as`spdm-utils`
> > v0.7.1 makes it
> > 	  optional.
> > 
> >  DEVELOPERS                         |  4 +++
> >  package/Config.in                  |  1 +
> >  package/spdm-utils/Config.in       | 23 ++++++++++++++
> >  package/spdm-utils/spdm-utils.hash |  5 +++
> >  package/spdm-utils/spdm-utils.mk   | 51
> > ++++++++++++++++++++++++++++++
> >  5 files changed, 84 insertions(+)
> >  create mode 100644 package/spdm-utils/Config.in
> >  create mode 100644 package/spdm-utils/spdm-utils.hash
> >  create mode 100644 package/spdm-utils/spdm-utils.mk
> > 
> > diff --git a/DEVELOPERS b/DEVELOPERS
> > index 3945803d53..45c0e91150 100644
> > --- a/DEVELOPERS
> > +++ b/DEVELOPERS
> > @@ -154,6 +154,7 @@ F:	board/sifive/
> >  F:	boot/opensbi/
> >  F:	configs/hifive_unleashed_defconfig
> >  F:	package/libspdm/
> > +F:	package/spdm-utils/
> >  F:	package/xen/
> >  
> >  N:	Alvaro G. M <alvaro.gamez@hazent.com>
> > @@ -3341,6 +3342,9 @@ F:	package/uclibc-ng-test/
> >  F:	package/zabbix/
> >  F:	support/testing/tests/package/test_ruby.py
> >  
> > +N:	Wilfred Mallawa <wilfred.opensource@gmail.com>
> > +F:	package/spdm-utils/
> > +
> >  N:	Will Newton <will.newton@gmail.com>
> >  F:	package/enchant/
> >  F:	package/erlang/
> > diff --git a/package/Config.in b/package/Config.in
> > index 1eb5e1e020..c39728bca0 100644
> > --- a/package/Config.in
> > +++ b/package/Config.in
> > @@ -2781,6 +2781,7 @@ comment "Utilities"
> >  	source "package/screen/Config.in"
> >  	source "package/screenfetch/Config.in"
> >  	source "package/sexpect/Config.in"
> > +	source "package/spdm-utils/Config.in"
> >  	source "package/sudo/Config.in"
> >  	source "package/terminology/Config.in"
> >  	source "package/time/Config.in"
> > diff --git a/package/spdm-utils/Config.in b/package/spdm-
> > utils/Config.in
> > new file mode 100644
> > index 0000000000..ac4fc11003
> > --- /dev/null
> > +++ b/package/spdm-utils/Config.in
> > @@ -0,0 +1,23 @@
> > +config BR2_PACKAGE_SPDM_UTILS
> > +	bool "spdm-utils"
> > +	depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
> > +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> > +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> > +	depends on BR2_PACKAGE_HAS_UDEV
> > +	select BR2_PACKAGE_HOST_RUSTC
> > +	select BR2_PACKAGE_PCIUTILS
> > +	select BR2_PACKAGE_LIBSPDM
> > +	help
> > +	  SPDM-Utils is a Linux application designed to support,
> > +	  test and develop SPDM requesters and responders.
> > +	  SPDM-Utils uses libspdm as the backend to perform SPDM
> > +	  communication. SPDM-Utils currently supports the
> > +	  PCIe Data Object Exchange (DOE) Capability.
> > +
> > +	  https://github.com/westerndigitalcorporation/spdm-utils
> > +
> > +comment "spdm-utils needs udev /dev management, host gcc >= 7"
> > +	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
> > +	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
> > +	depends on !BR2_PACKAGE_HAS_UDEV || \
> > +		!BR2_HOST_GCC_AT_LEAST_7
> > diff --git a/package/spdm-utils/spdm-utils.hash b/package/spdm-
> > utils/spdm-utils.hash
> > new file mode 100644
> > index 0000000000..5080c807e3
> > --- /dev/null
> > +++ b/package/spdm-utils/spdm-utils.hash
> > @@ -0,0 +1,5 @@
> > +# Locally calculated
> > +sha256 
> > 04bfe72f56e46272e1ea49a63eb88bacf6416fda5684b7747c5368116c0dc4ef 
> > spdm-utils-0.7.1-cargo2.tar.gz
> > +sha256 
> > 62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a 
> > LICENSE-APACHE
> > +sha256 
> > 23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3 
> > LICENSE-MIT
> > +sha256 
> > b378ca951adc9417548e94792ade613894bb65ca08a01c2d17f4ee40d21fc7e3 
> > NOTICES
> > diff --git a/package/spdm-utils/spdm-utils.mk b/package/spdm-
> > utils/spdm-utils.mk
> > new file mode 100644
> > index 0000000000..0908057d6a
> > --- /dev/null
> > +++ b/package/spdm-utils/spdm-utils.mk
> > @@ -0,0 +1,51 @@
> > +##################################################################
> > ##
> > ############
> > +#
> > +# spdm-utils
> > +#
> > +##################################################################
> > ##
> > ############
> > +
> > +SPDM_UTILS_VERSION = 0.7.1
> > +SPDM_UTILS_SITE = $(call github,westerndigitalcorporation,spdm-
> > utils,v$(SPDM_UTILS_VERSION))
> > +SPDM_UTILS_LICENSE = Apache-2.0 or MIT
> > +SPDM_UTILS_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT NOTICES
> > +SPDM_UTILS_DEPENDENCIES = host-clang host-ruby libspdm pciutils
> > udev
> > +
> > +SPDM_UTILS_ALIAS_CERTS = \
> > +		openssl.cnf \
> > +		slot0/immutable.der \
> > +		slot0/device.cert.der \
> > +		slot0/device.der \
> > +		slot0/device.key \
> > +		slot0/bundle_responder.certchain.der
> > +
> > +# Used to generate SPDM Alias certificate model certificates,
> > +# required by `setup_certs.sh`
> > +SPDM_UTILS_GENERIC_CERTS = \
> > +		slot0/param.pem \
> > +		slot0/end_requester.req \
> > +		slot0/end_requester.key \
> > +		slot0/end_responder.key \
> > +		slot0/end_responder.req
> > +
> > +# SPDM-Utils expects the following certificates to be present for
> > SPDM
> > +# functionality, make sure they are all copied.
> > +#
> > +# `setup_certs.sh` shall be used by a responder to regenerate it's
> > mutable
> > +# certificate chain, typically on start up.
> > +define SPDM_UTILS_INSTALL_CERTS
> > +	$(INSTALL) -D -m 0755 $(@D)/certs/setup_certs.sh
> > $(TARGET_DIR)/usr/share/spdm/certs/setup_certs.sh
> > +	$(INSTALL) -D -m 0644 $(@D)/certs/openssl.cnf
> > $(TARGET_DIR)/usr/share/spdm/certs/openssl.cnf
> > +
> > +	$(foreach f,$(SPDM_UTILS_ALIAS_CERTS),
> > +		$(INSTALL) -D -m 0644 $(@D)/certs/alias/$(f)
> > $(TARGET_DIR)/usr/share/spdm/certs/alias/$(f)
> > +	)
> > +
> > +	$(foreach f,$(SPDM_UTILS_GENERIC_CERTS),
> > +		$(INSTALL) -D -m 0644 $(@D)/certs/$(f)
> > $(TARGET_DIR)/usr/share/spdm/certs/$(f)
> > +	)
> > +	$(INSTALL) -D -m 0644 $(@D)/manifest/manifest.out.cbor
> > $(TARGET_DIR)/usr/share/spdm/manifest/manifest.out.cbor
> > +endef
> > +
> > +SPDM_UTILS_POST_INSTALL_TARGET_HOOKS += SPDM_UTILS_INSTALL_CERTS
> > +
> > +$(eval $(cargo-package))
>
diff mbox series

Patch

diff --git a/DEVELOPERS b/DEVELOPERS
index 3945803d53..45c0e91150 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -154,6 +154,7 @@  F:	board/sifive/
 F:	boot/opensbi/
 F:	configs/hifive_unleashed_defconfig
 F:	package/libspdm/
+F:	package/spdm-utils/
 F:	package/xen/
 
 N:	Alvaro G. M <alvaro.gamez@hazent.com>
@@ -3341,6 +3342,9 @@  F:	package/uclibc-ng-test/
 F:	package/zabbix/
 F:	support/testing/tests/package/test_ruby.py
 
+N:	Wilfred Mallawa <wilfred.opensource@gmail.com>
+F:	package/spdm-utils/
+
 N:	Will Newton <will.newton@gmail.com>
 F:	package/enchant/
 F:	package/erlang/
diff --git a/package/Config.in b/package/Config.in
index 1eb5e1e020..c39728bca0 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -2781,6 +2781,7 @@  comment "Utilities"
 	source "package/screen/Config.in"
 	source "package/screenfetch/Config.in"
 	source "package/sexpect/Config.in"
+	source "package/spdm-utils/Config.in"
 	source "package/sudo/Config.in"
 	source "package/terminology/Config.in"
 	source "package/time/Config.in"
diff --git a/package/spdm-utils/Config.in b/package/spdm-utils/Config.in
new file mode 100644
index 0000000000..ac4fc11003
--- /dev/null
+++ b/package/spdm-utils/Config.in
@@ -0,0 +1,23 @@ 
+config BR2_PACKAGE_SPDM_UTILS
+	bool "spdm-utils"
+	depends on BR2_HOST_GCC_AT_LEAST_7 # host-clang
+	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_HAS_UDEV
+	select BR2_PACKAGE_HOST_RUSTC
+	select BR2_PACKAGE_PCIUTILS
+	select BR2_PACKAGE_LIBSPDM
+	help
+	  SPDM-Utils is a Linux application designed to support,
+	  test and develop SPDM requesters and responders.
+	  SPDM-Utils uses libspdm as the backend to perform SPDM
+	  communication. SPDM-Utils currently supports the
+	  PCIe Data Object Exchange (DOE) Capability.
+
+	  https://github.com/westerndigitalcorporation/spdm-utils
+
+comment "spdm-utils needs udev /dev management, host gcc >= 7"
+	depends on BR2_PACKAGE_LIBSPDM_ARCH_SUPPORTS
+	depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
+	depends on !BR2_PACKAGE_HAS_UDEV || \
+		!BR2_HOST_GCC_AT_LEAST_7
diff --git a/package/spdm-utils/spdm-utils.hash b/package/spdm-utils/spdm-utils.hash
new file mode 100644
index 0000000000..5080c807e3
--- /dev/null
+++ b/package/spdm-utils/spdm-utils.hash
@@ -0,0 +1,5 @@ 
+# Locally calculated
+sha256  04bfe72f56e46272e1ea49a63eb88bacf6416fda5684b7747c5368116c0dc4ef  spdm-utils-0.7.1-cargo2.tar.gz
+sha256  62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a  LICENSE-APACHE
+sha256  23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3  LICENSE-MIT
+sha256  b378ca951adc9417548e94792ade613894bb65ca08a01c2d17f4ee40d21fc7e3  NOTICES
diff --git a/package/spdm-utils/spdm-utils.mk b/package/spdm-utils/spdm-utils.mk
new file mode 100644
index 0000000000..0908057d6a
--- /dev/null
+++ b/package/spdm-utils/spdm-utils.mk
@@ -0,0 +1,51 @@ 
+################################################################################
+#
+# spdm-utils
+#
+################################################################################
+
+SPDM_UTILS_VERSION = 0.7.1
+SPDM_UTILS_SITE = $(call github,westerndigitalcorporation,spdm-utils,v$(SPDM_UTILS_VERSION))
+SPDM_UTILS_LICENSE = Apache-2.0 or MIT
+SPDM_UTILS_LICENSE_FILES = LICENSE-APACHE LICENSE-MIT NOTICES
+SPDM_UTILS_DEPENDENCIES = host-clang host-ruby libspdm pciutils udev
+
+SPDM_UTILS_ALIAS_CERTS = \
+		openssl.cnf \
+		slot0/immutable.der \
+		slot0/device.cert.der \
+		slot0/device.der \
+		slot0/device.key \
+		slot0/bundle_responder.certchain.der
+
+# Used to generate SPDM Alias certificate model certificates,
+# required by `setup_certs.sh`
+SPDM_UTILS_GENERIC_CERTS = \
+		slot0/param.pem \
+		slot0/end_requester.req \
+		slot0/end_requester.key \
+		slot0/end_responder.key \
+		slot0/end_responder.req
+
+# SPDM-Utils expects the following certificates to be present for SPDM
+# functionality, make sure they are all copied.
+#
+# `setup_certs.sh` shall be used by a responder to regenerate it's mutable
+# certificate chain, typically on start up.
+define SPDM_UTILS_INSTALL_CERTS
+	$(INSTALL) -D -m 0755 $(@D)/certs/setup_certs.sh $(TARGET_DIR)/usr/share/spdm/certs/setup_certs.sh
+	$(INSTALL) -D -m 0644 $(@D)/certs/openssl.cnf $(TARGET_DIR)/usr/share/spdm/certs/openssl.cnf
+
+	$(foreach f,$(SPDM_UTILS_ALIAS_CERTS),
+		$(INSTALL) -D -m 0644 $(@D)/certs/alias/$(f) $(TARGET_DIR)/usr/share/spdm/certs/alias/$(f)
+	)
+
+	$(foreach f,$(SPDM_UTILS_GENERIC_CERTS),
+		$(INSTALL) -D -m 0644 $(@D)/certs/$(f) $(TARGET_DIR)/usr/share/spdm/certs/$(f)
+	)
+	$(INSTALL) -D -m 0644 $(@D)/manifest/manifest.out.cbor $(TARGET_DIR)/usr/share/spdm/manifest/manifest.out.cbor
+endef
+
+SPDM_UTILS_POST_INSTALL_TARGET_HOOKS += SPDM_UTILS_INSTALL_CERTS
+
+$(eval $(cargo-package))