diff mbox series

[v3,1/1] package/libspdm: bump version to 3.4.0

Message ID 20240719064402.3105153-2-wilfred.mallawa@wdc.com
State Changes Requested
Headers show
Series [v3,1/1] package/libspdm: bump version to 3.4.0 | expand

Commit Message

Wilfred Mallawa July 19, 2024, 6:44 a.m. UTC
From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>

`libspdm 3.3.0` and later support the SPDM event capability, however
this patch disables support for EVENT_CAP as it is optional,
and requires additional functionality implemented at link time.

`libspdm 3.4.0` also introduces SPDM1.3 measurement extention log (MEL).
Leave this off by default for the same reason as above.

Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
---
Changes in V3:
	- Updated to libspdm 3.4.0, this release includes the patch
	  that was being backported in V2.

 ...eLists-remove-fixed-options-for-NONE.patch | 52 -------------------
 package/libspdm/libspdm.hash                  |  2 +-
 package/libspdm/libspdm.mk                    |  6 ++-
 3 files changed, 5 insertions(+), 55 deletions(-)
 delete mode 100644 package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch

Comments

Alistair Francis July 19, 2024, 8:08 a.m. UTC | #1
On Fri, Jul 19, 2024 at 4:52 PM Wilfred Mallawa via buildroot
<buildroot@buildroot.org> wrote:
>
> From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
>
> `libspdm 3.3.0` and later support the SPDM event capability, however
> this patch disables support for EVENT_CAP as it is optional,
> and requires additional functionality implemented at link time.
>
> `libspdm 3.4.0` also introduces SPDM1.3 measurement extention log (MEL).
> Leave this off by default for the same reason as above.
>
> Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>

Reviewed-by: Alistair Francis <alistair.francis@wdc.com>

Alistair

> ---
> Changes in V3:
>         - Updated to libspdm 3.4.0, this release includes the patch
>           that was being backported in V2.
>
>  ...eLists-remove-fixed-options-for-NONE.patch | 52 -------------------
>  package/libspdm/libspdm.hash                  |  2 +-
>  package/libspdm/libspdm.mk                    |  6 ++-
>  3 files changed, 5 insertions(+), 55 deletions(-)
>  delete mode 100644 package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch
>
> diff --git a/package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch b/package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch
> deleted file mode 100644
> index 0de0ad0079..0000000000
> --- a/package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch
> +++ /dev/null
> @@ -1,52 +0,0 @@
> -From d4d6b138d727e484fa9d0fef476ca181681d0695 Mon Sep 17 00:00:00 2001
> -From: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> -Date: Mon, 19 Feb 2024 09:56:14 +1000
> -Subject: [PATCH] CMakeLists: remove fixed options for NONE
> -
> -The use of the NONE toolchain option is such that we can provide at the
> -build project level (buildroot etc...). However, the changes introduced
> -in 811f2b596def04b3a36368cf2098546d7907767f set certain compiler/linker
> -option that does not comply with the definition of the options as
> -specified in [1]. This change removes those options.
> -
> -[1] https://github.com/DMTF/libspdm/blob/main/doc/build.md#linux-builds-inside-build-environments
> -
> -Upstream: https://github.com/DMTF/libspdm/commit/d4d6b138d727e484fa9d0fef476ca181681d0695
> -Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> ----
> - CMakeLists.txt | 19 -------------------
> - 1 file changed, 19 deletions(-)
> -
> -diff --git a/CMakeLists.txt b/CMakeLists.txt
> -index 9c300cc817..f6cf17d269 100644
> ---- a/CMakeLists.txt
> -+++ b/CMakeLists.txt
> -@@ -618,25 +618,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
> -         SET(CMAKE_EXE_LINKER_FLAGS "")
> -
> -         SET(CMAKE_C_LINK_EXECUTABLE "")
> --
> --    elseif(TOOLCHAIN STREQUAL "NONE")
> --        ADD_COMPILE_OPTIONS(-fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -fno-common -Wno-address -fpie -fno-asynchronous-unwind-tables -flto -DUSING_LTO  -Wno-maybe-uninitialized -Wno-uninitialized  -Wno-builtin-declaration-mismatch -Wno-nonnull-compare -Werror-implicit-function-declaration)
> --        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
> --            ADD_COMPILE_OPTIONS(-g)
> --        endif()
> --        if(GCOV STREQUAL "ON")
> --        ADD_COMPILE_OPTIONS(--coverage -fprofile-arcs -ftest-coverage)
> --        endif()
> --        SET(OPENSSL_FLAGS -include base.h -Wno-error=maybe-uninitialized -Wno-error=format -Wno-format -Wno-error=unused-but-set-variable -Wno-cast-qual -Wno-error=implicit-function-declaration)
> --        SET(CMOCKA_FLAGS -std=gnu99 -Wpedantic -Wall -Wshadow -Wmissing-prototypes -Wcast-align -Werror=address -Wstrict-prototypes -Werror=strict-prototypes -Wwrite-strings -Werror=write-strings -Werror-implicit-function-declaration -Wpointer-arith -Werror=pointer-arith -Wdeclaration-after-statement -Werror=declaration-after-statement -Wreturn-type -Werror=return-type -Wuninitialized -Werror=uninitialized -Werror=strict-overflow -Wstrict-overflow=2 -Wno-format-zero-length -Wmissing-field-initializers -Wformat-security -Werror=format-security -fno-common -Wformat -fno-common -fstack-protector-strong -Wno-cast-qual)
> --
> --        SET(CMAKE_LINKER ${CMAKE_C_COMPILER})
> --        SET(CMAKE_EXE_LINKER_FLAGS "-flto -Wno-error -no-pie" )
> --        if(GCOV STREQUAL "ON")
> --        SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}  --coverage -lgcov -fprofile-arcs -ftest-coverage")
> --        endif()
> --        SET(CMAKE_C_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Wl,--start-group <LINK_LIBRARIES> -Wl,--end-group")
> --
> -     endif()
> -
> -     if(NOT TOOLCHAIN STREQUAL "NIOS2_GCC")
> ---
> -2.43.2
> -
> diff --git a/package/libspdm/libspdm.hash b/package/libspdm/libspdm.hash
> index 32415bcfce..1fe34fded1 100644
> --- a/package/libspdm/libspdm.hash
> +++ b/package/libspdm/libspdm.hash
> @@ -1,3 +1,3 @@
>  # Locally calculated
> -sha256  0ee460c0ce5c4d126ca65f9c4bdabd5725b87cec7160b2d06721169df58f3a95  libspdm-3.2.0.tar.gz
> +sha256  44f967aeb0c481676affe59069615252854bc0c072368ce4b26b6809a54daff5  libspdm-3.4.0.tar.gz
>  sha256  7dc072bff163df39209bbb63e0916f4667c2a84cf3c36ccc84ec7425bc3e4779  LICENSE.md
> diff --git a/package/libspdm/libspdm.mk b/package/libspdm/libspdm.mk
> index 2ec35be0ac..1c7f12227e 100644
> --- a/package/libspdm/libspdm.mk
> +++ b/package/libspdm/libspdm.mk
> @@ -4,7 +4,7 @@
>  #
>  ################################################################################
>
> -LIBSPDM_VERSION = 3.2.0
> +LIBSPDM_VERSION = 3.4.0
>  LIBSPDM_SITE = $(call github,DMTF,libspdm,$(LIBSPDM_VERSION))
>  LIBSPDM_LICENSE = BSD-3-Clause
>  LIBSPDM_LICENSE_FILES = LICENSE.md
> @@ -27,7 +27,9 @@ LIBSPDM_CONF_OPTS = \
>         -DCOMPILED_LIBSSL_PATH=/usr/lib/ \
>         -DDISABLE_TESTS=1 \
>         -DDISABLE_EDDSA=1 \
> -       -DLINK_FLAGS=$(STAGING_DIR)
> +       -DLINK_FLAGS=$(STAGING_DIR) \
> +       -DCMAKE_C_FLAGS="-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
> +               -DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0" ..
>
>  define LIBSPDM_INSTALL_STAGING_CMDS
>         mkdir -p $(STAGING_DIR)/usr/lib
> --
> 2.45.2
>
> _______________________________________________
> buildroot mailing list
> buildroot@buildroot.org
> https://lists.buildroot.org/mailman/listinfo/buildroot
Thomas Petazzoni Aug. 4, 2024, 9:15 p.m. UTC | #2
Hello Wilfred,

On Fri, 19 Jul 2024 16:44:03 +1000
Wilfred Mallawa via buildroot <buildroot@buildroot.org> wrote:

> From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
> 
> `libspdm 3.3.0` and later support the SPDM event capability, however
> this patch disables support for EVENT_CAP as it is optional,
> and requires additional functionality implemented at link time.
> 
> `libspdm 3.4.0` also introduces SPDM1.3 measurement extention log (MEL).
> Leave this off by default for the same reason as above.
> 
> Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>

Thanks for this new iteration! Some comments/questions below.

> -LIBSPDM_VERSION = 3.2.0
> +LIBSPDM_VERSION = 3.4.0
>  LIBSPDM_SITE = $(call github,DMTF,libspdm,$(LIBSPDM_VERSION))
>  LIBSPDM_LICENSE = BSD-3-Clause
>  LIBSPDM_LICENSE_FILES = LICENSE.md
> @@ -27,7 +27,9 @@ LIBSPDM_CONF_OPTS = \
>  	-DCOMPILED_LIBSSL_PATH=/usr/lib/ \
>  	-DDISABLE_TESTS=1 \
>  	-DDISABLE_EDDSA=1 \
> -	-DLINK_FLAGS=$(STAGING_DIR)
> +	-DLINK_FLAGS=$(STAGING_DIR) \
> +	-DCMAKE_C_FLAGS="-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
> +		-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0" ..

What is this ".." at the end of the line ?

Also, the way you're passing CFLAGS completely drops our
$(TARGET_CFLAGS). So instead you should do this:

LIBSPDM_CFLAGS = \
	$(TARGET_CFLAGS) \
	-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
	-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0

and in the LIBSPDM_CONF_OPTS:

	-DCMAKE_C_FLAGS="$(LIBSPDM_CFLAGS)"

Thanks!

Thomas
Wilfred Mallawa Aug. 5, 2024, 2:01 a.m. UTC | #3
On Sun, 2024-08-04 at 23:15 +0200, Thomas Petazzoni via buildroot
wrote:
> Hello Wilfred,
> 
> On Fri, 19 Jul 2024 16:44:03 +1000
> Wilfred Mallawa via buildroot <buildroot@buildroot.org> wrote:
> 
> > From: Wilfred Mallawa via buildroot <buildroot@buildroot.org>
> > 
> > `libspdm 3.3.0` and later support the SPDM event capability,
> > however
> > this patch disables support for EVENT_CAP as it is optional,
> > and requires additional functionality implemented at link time.
> > 
> > `libspdm 3.4.0` also introduces SPDM1.3 measurement extention log
> > (MEL).
> > Leave this off by default for the same reason as above.
> > 
> > Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
> 
> Thanks for this new iteration! Some comments/questions below.
> 
> > -LIBSPDM_VERSION = 3.2.0
> > +LIBSPDM_VERSION = 3.4.0
> >  LIBSPDM_SITE = $(call github,DMTF,libspdm,$(LIBSPDM_VERSION))
> >  LIBSPDM_LICENSE = BSD-3-Clause
> >  LIBSPDM_LICENSE_FILES = LICENSE.md
> > @@ -27,7 +27,9 @@ LIBSPDM_CONF_OPTS = \
> >  	-DCOMPILED_LIBSSL_PATH=/usr/lib/ \
> >  	-DDISABLE_TESTS=1 \
> >  	-DDISABLE_EDDSA=1 \
> > -	-DLINK_FLAGS=$(STAGING_DIR)
> > +	-DLINK_FLAGS=$(STAGING_DIR) \
> > +	-DCMAKE_C_FLAGS="-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
> > +		-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0" ..
> 
> What is this ".." at the end of the line ?
Good catch, I think it's just used to point to the `top-dir` from a
`sub-build-dir` but in this context, it should not be required. I've
removed it and have sent a V4 with your other comments addressed.

Wilfred
> 
> Also, the way you're passing CFLAGS completely drops our
> $(TARGET_CFLAGS). So instead you should do this:
> 
> LIBSPDM_CFLAGS = \
> 	$(TARGET_CFLAGS) \
> 	-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
> 	-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0
> 
> and in the LIBSPDM_CONF_OPTS:
> 
> 	-DCMAKE_C_FLAGS="$(LIBSPDM_CFLAGS)"
> 
> Thanks!
> 
> Thomas
diff mbox series

Patch

diff --git a/package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch b/package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch
deleted file mode 100644
index 0de0ad0079..0000000000
--- a/package/libspdm/0001-CMakeLists-remove-fixed-options-for-NONE.patch
+++ /dev/null
@@ -1,52 +0,0 @@ 
-From d4d6b138d727e484fa9d0fef476ca181681d0695 Mon Sep 17 00:00:00 2001
-From: Wilfred Mallawa <wilfred.mallawa@wdc.com>
-Date: Mon, 19 Feb 2024 09:56:14 +1000
-Subject: [PATCH] CMakeLists: remove fixed options for NONE
-
-The use of the NONE toolchain option is such that we can provide at the
-build project level (buildroot etc...). However, the changes introduced
-in 811f2b596def04b3a36368cf2098546d7907767f set certain compiler/linker
-option that does not comply with the definition of the options as
-specified in [1]. This change removes those options.
-
-[1] https://github.com/DMTF/libspdm/blob/main/doc/build.md#linux-builds-inside-build-environments
-
-Upstream: https://github.com/DMTF/libspdm/commit/d4d6b138d727e484fa9d0fef476ca181681d0695
-Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
----
- CMakeLists.txt | 19 -------------------
- 1 file changed, 19 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 9c300cc817..f6cf17d269 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -618,25 +618,6 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
-         SET(CMAKE_EXE_LINKER_FLAGS "")
- 
-         SET(CMAKE_C_LINK_EXECUTABLE "")
--
--    elseif(TOOLCHAIN STREQUAL "NONE")
--        ADD_COMPILE_OPTIONS(-fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -fno-common -Wno-address -fpie -fno-asynchronous-unwind-tables -flto -DUSING_LTO  -Wno-maybe-uninitialized -Wno-uninitialized  -Wno-builtin-declaration-mismatch -Wno-nonnull-compare -Werror-implicit-function-declaration)
--        if(CMAKE_BUILD_TYPE STREQUAL "Debug")
--            ADD_COMPILE_OPTIONS(-g)
--        endif()
--        if(GCOV STREQUAL "ON")
--        ADD_COMPILE_OPTIONS(--coverage -fprofile-arcs -ftest-coverage)
--        endif()
--        SET(OPENSSL_FLAGS -include base.h -Wno-error=maybe-uninitialized -Wno-error=format -Wno-format -Wno-error=unused-but-set-variable -Wno-cast-qual -Wno-error=implicit-function-declaration)
--        SET(CMOCKA_FLAGS -std=gnu99 -Wpedantic -Wall -Wshadow -Wmissing-prototypes -Wcast-align -Werror=address -Wstrict-prototypes -Werror=strict-prototypes -Wwrite-strings -Werror=write-strings -Werror-implicit-function-declaration -Wpointer-arith -Werror=pointer-arith -Wdeclaration-after-statement -Werror=declaration-after-statement -Wreturn-type -Werror=return-type -Wuninitialized -Werror=uninitialized -Werror=strict-overflow -Wstrict-overflow=2 -Wno-format-zero-length -Wmissing-field-initializers -Wformat-security -Werror=format-security -fno-common -Wformat -fno-common -fstack-protector-strong -Wno-cast-qual)
--
--        SET(CMAKE_LINKER ${CMAKE_C_COMPILER})
--        SET(CMAKE_EXE_LINKER_FLAGS "-flto -Wno-error -no-pie" )
--        if(GCOV STREQUAL "ON")
--        SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}  --coverage -lgcov -fprofile-arcs -ftest-coverage")
--        endif()
--        SET(CMAKE_C_LINK_EXECUTABLE "<CMAKE_LINKER> <CMAKE_C_LINK_FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> -Wl,--start-group <LINK_LIBRARIES> -Wl,--end-group")
--
-     endif()
- 
-     if(NOT TOOLCHAIN STREQUAL "NIOS2_GCC")
--- 
-2.43.2
-
diff --git a/package/libspdm/libspdm.hash b/package/libspdm/libspdm.hash
index 32415bcfce..1fe34fded1 100644
--- a/package/libspdm/libspdm.hash
+++ b/package/libspdm/libspdm.hash
@@ -1,3 +1,3 @@ 
 # Locally calculated
-sha256  0ee460c0ce5c4d126ca65f9c4bdabd5725b87cec7160b2d06721169df58f3a95  libspdm-3.2.0.tar.gz
+sha256  44f967aeb0c481676affe59069615252854bc0c072368ce4b26b6809a54daff5  libspdm-3.4.0.tar.gz
 sha256  7dc072bff163df39209bbb63e0916f4667c2a84cf3c36ccc84ec7425bc3e4779  LICENSE.md
diff --git a/package/libspdm/libspdm.mk b/package/libspdm/libspdm.mk
index 2ec35be0ac..1c7f12227e 100644
--- a/package/libspdm/libspdm.mk
+++ b/package/libspdm/libspdm.mk
@@ -4,7 +4,7 @@ 
 #
 ################################################################################
 
-LIBSPDM_VERSION = 3.2.0
+LIBSPDM_VERSION = 3.4.0
 LIBSPDM_SITE = $(call github,DMTF,libspdm,$(LIBSPDM_VERSION))
 LIBSPDM_LICENSE = BSD-3-Clause
 LIBSPDM_LICENSE_FILES = LICENSE.md
@@ -27,7 +27,9 @@  LIBSPDM_CONF_OPTS = \
 	-DCOMPILED_LIBSSL_PATH=/usr/lib/ \
 	-DDISABLE_TESTS=1 \
 	-DDISABLE_EDDSA=1 \
-	-DLINK_FLAGS=$(STAGING_DIR)
+	-DLINK_FLAGS=$(STAGING_DIR) \
+	-DCMAKE_C_FLAGS="-DLIBSPDM_ENABLE_CAPABILITY_EVENT_CAP=0 \
+		-DLIBSPDM_ENABLE_CAPABILITY_MEL_CAP=0" ..
 
 define LIBSPDM_INSTALL_STAGING_CMDS
 	mkdir -p $(STAGING_DIR)/usr/lib