Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Fiona Klute via buildroot <buildroot@buildroot.org>
To: Kory Maincent <kory.maincent@bootlin.com>, buildroot@buildroot.org
Cc: Julien Olivain <ju.o@free.fr>, thomas.petazzoni@bootlin.com
Subject: Re: [Buildroot] [PATCH v2] package/uboot-tools: Bump to version 2025.10
Date: Mon, 3 Nov 2025 23:46:36 +0100	[thread overview]
Message-ID: <03c04d13-43b7-45da-a5c5-e8754f861e30@gmx.de> (raw)
In-Reply-To: <20251103135354.776-1-kory.maincent@bootlin.com>

Hi Kory, Julien,

this patch unfortunately has the same issue I pointed out a few months 
back, in a patch that wanted to update uboot-tools to 2024.04 [1]: It 
breaks using any hash except those explicitly enabled in 
UBOOT_TOOLS_CONFIGURE_CMDS or HOST_UBOOT_TOOLS_CONFIGURE_CMDS (depending 
on host/target build) for building a FIT image. With the patch as is, 
any hash that isn't sha1 or sha256 will break.

Practical example that broke for me (excerpt to show the point):

         kernel {
             description = "Linux kernel";
             data = /incbin/("#BIN_DIR#/Image");
             type = "kernel";
             arch = "arm64";
             os = "linux";
             compression = "none";
             load = <0x40400000>;
             entry = <0x40400000>;
             hash-1 {
                 algo = "crc32";
             };
             hash-2 {
                 algo = "sha256";
             };
         };

You might rightly ask why I'm using both, but a) some examples in the 
U-Boot documentation do [2], and b) that's how I noticed the issue in 
the previous patch, so I kept it to notice similar issues. Point is, 
some people might want to use other hash algorithms.

Enabling CONFIG_TOOLS_CRC32 in autoconf.h the same way as 
CONFIG_TOOLS_SHA256 works, but U-Boot supports a few more hash 
algorithms that some people might want to use. Unless I missed 
something, the full list should be:

CONFIG_TOOLS_CRC16
CONFIG_TOOLS_CRC32
CONFIG_TOOLS_MD5
CONFIG_TOOLS_SHA1
CONFIG_TOOLS_SHA256
CONFIG_TOOLS_SHA384
CONFIG_TOOLS_SHA512

Question is: What's the best way to fix this?

I can send a simple patch that adds all the (currently available) hash 
algorithms to autoconf.h. But that feels kind of messy, plus there's the 
question what else may be broken (just unnoticed so far).

I see in the commit log that many years ago uboot-tools used KConfig and 
that was then ripped out in 2015 due to licensing concerns I don't quite 
understand (commit daf2c705a7252b662afe0100bfe1a3ebf75c1c2f, the 
licensing concern is stated without explanation in 
package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch). 
Interestingly the commit message for 
2ebf652589491ac2f8f3825afa5f75156c88b0a0 (2022) states it'd be better to 
switch (back) to KConfig. Unless someone can explain the license 
concern, I'm inclined to agree (but also with the statement it'd be a 
major change).

We could also add settings in Buildroot config, but that seems like it'd 
combine the worst of the other two options.

What do you think?

Best regards,
Fiona

[1] https://patchwork.ozlabs.org/comment/3566287/
[2] https://docs.u-boot.org/en/v2025.10/usage/fit/kernel_fdt.html

Am 03.11.25 um 14:53 schrieb Kory Maincent via buildroot:
> - The mkeficapsule tools need gnutls to build, and the config dependency
>    to build the tool has changed
> - CONFIG_FIT_SIGNATURE need to be defined to build fit_check_sign
> - CONFIG_FIT_PRINT does not need to be defined anymore
> - Remove patch 2 and reorder patch files
> - Include linux/kconfig.h to include/config.h to allow IS_ENABLED macro
>    to be used in c files
> 
> Signed-off-by: Kory Maincent <kory.maincent@bootlin.com>
> ---
> 
> Change in v2:
> - Add CONFIG_TOOLS_SHA256 and CONFIG_TOOLS_SHA1 option.
> ---
>   ...x-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch} |  0
>   ...-tools-only-in-no-dot-config-targets.patch | 44 -------------------
>   package/uboot-tools/uboot-tools.hash          |  2 +-
>   package/uboot-tools/uboot-tools.mk            | 21 +++++----
>   4 files changed, 14 insertions(+), 53 deletions(-)
>   rename package/uboot-tools/{0003-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch => 0002-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch} (100%)
>   delete mode 100644 package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch
> 
> diff --git a/package/uboot-tools/0003-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch b/package/uboot-tools/0002-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch
> similarity index 100%
> rename from package/uboot-tools/0003-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch
> rename to package/uboot-tools/0002-tools-Makefile-fix-C-LD-FLAGS-with-CROSS_BUILD_TOOLS.patch
> diff --git a/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch b/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch
> deleted file mode 100644
> index 8557af499a..0000000000
> --- a/package/uboot-tools/0002-tools-only-in-no-dot-config-targets.patch
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -From 460646b3c4c1718860915c38586ee8d2fbda38e4 Mon Sep 17 00:00:00 2001
> -From: =?UTF-8?q?J=C3=B6rg=20Krause?= <joerg.krause@embedded.rocks>
> -Date: Sun, 1 Feb 2015 21:53:47 +0100
> -Subject: [PATCH] tools only in no dot config targets
> -MIME-Version: 1.0
> -Content-Type: text/plain; charset=UTF-8
> -Content-Transfer-Encoding: 8bit
> -
> -Revert upstream commit c7ad5cbb1ef2c33883f0fa7d0455095004fd306d:
> -
> -    Makefile: drop "tools-only" from no-dot-config-targets
> -
> -This indirectly pulls in a build-dependency on libssl-dev used for FIT
> -image support, and possibly GPL/OpenSSL licensing incompatibility
> -issues.
> -
> -Based on Debian patch from u-boot-tools:
> -http://ftp.de.debian.org/debian/pool/main/u/u-boot/u-boot_2014.10+dfsg1-2.1.debian.tar.xz
> -
> -Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
> -[fabio: adapt it to 2016.09]
> -Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
> -[Fabrice: adapt it to 2021.04]
> -Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ----
> - Makefile | 2 +-
> - 1 file changed, 1 insertion(+), 1 deletion(-)
> -
> -diff --git a/Makefile b/Makefile
> -index 6aa08964ff..fcec83d183 100644
> ---- a/Makefile
> -+++ b/Makefile
> -@@ -486,7 +486,7 @@ defaultenv_h := include/generated/defaultenv_autogenerated.h
> -
> - no-dot-config-targets := clean clobber mrproper distclean \
> - 			 help %docs check% coccicheck \
> --			 ubootversion backup tests check qcheck tcheck
> -+			 ubootversion backup tests tools-only check qcheck tcheck
> -
> - config-targets := 0
> - mixed-targets  := 0
> ---
> -2.20.1
> -
> diff --git a/package/uboot-tools/uboot-tools.hash b/package/uboot-tools/uboot-tools.hash
> index 5a48926ebe..7b71e2d948 100644
> --- a/package/uboot-tools/uboot-tools.hash
> +++ b/package/uboot-tools/uboot-tools.hash
> @@ -1,3 +1,3 @@
>   # Locally computed:
> -sha256  312b7eeae44581d1362c3a3f02c28d806647756c82ba8c72241c7cdbe68ba77e  u-boot-2021.07.tar.bz2
> +sha256  b4f032848e56cc8f213ad59f9132c084dbbb632bc29176d024e58220e0efdf4a  u-boot-2025.10.tar.bz2
>   sha256  8177f97513213526df2cf6184d8ff986c675afb514d4e68a404010521b880643  Licenses/gpl-2.0.txt
> diff --git a/package/uboot-tools/uboot-tools.mk b/package/uboot-tools/uboot-tools.mk
> index 1925047ccd..dcc9c08fd2 100644
> --- a/package/uboot-tools/uboot-tools.mk
> +++ b/package/uboot-tools/uboot-tools.mk
> @@ -4,7 +4,7 @@
>   #
>   ################################################################################
>   
> -UBOOT_TOOLS_VERSION = 2021.07
> +UBOOT_TOOLS_VERSION = 2025.10
>   UBOOT_TOOLS_SOURCE = u-boot-$(UBOOT_TOOLS_VERSION).tar.bz2
>   UBOOT_TOOLS_SITE = https://ftp.denx.de/pub/u-boot
>   UBOOT_TOOLS_LICENSE = GPL-2.0+
> @@ -15,14 +15,16 @@ UBOOT_TOOLS_INSTALL_STAGING = YES
>   
>   # u-boot 2020.01+ needs make 4.0+
>   UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY)
> -HOST_UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY)
> +HOST_UBOOT_TOOLS_DEPENDENCIES = $(BR2_MAKE_HOST_DEPENDENCY) host-gnutls
>   
>   define UBOOT_TOOLS_CONFIGURE_CMDS
>   	mkdir -p $(@D)/include/config
> +	echo "#include <linux/kconfig.h>" > $(@D)/include/config.h
>   	touch $(@D)/include/config/auto.conf
>   	mkdir -p $(@D)/include/generated
> -	touch $(@D)/include/generated/autoconf.h
> -	echo $(if $(BR2_PACKAGE_UBOOT_TOOLS_FIT_SUPPORT),'#define CONFIG_FIT_PRINT 1') >> $(@D)/include/generated/autoconf.h
> +	echo "#define CONFIG_TOOLS_SHA256 1" >> $(@D)/include/generated/autoconf.h
> +	echo "#define CONFIG_TOOLS_SHA1 1" >> $(@D)/include/generated/autoconf.h
> +	echo $(if $(BR2_PACKAGE_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),'#define CONFIG_FIT_SIGNATURE 1') >> $(@D)/include/generated/autoconf.h
>   	mkdir -p $(@D)/include/asm
>   	touch $(@D)/include/asm/linkage.h
>   endef
> @@ -44,7 +46,8 @@ UBOOT_TOOLS_DEPENDENCIES += openssl host-pkgconf
>   endif
>   
>   ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_MKEFICAPSULE),y)
> -UBOOT_TOOLS_MAKE_OPTS += CONFIG_EFI_HAVE_CAPSULE_SUPPORT=y
> +UBOOT_TOOLS_MAKE_OPTS += CONFIG_TOOLS_MKEFICAPSULE=y
> +UBOOT_TOOLS_DEPENDENCIES += gnutls
>   endif
>   
>   ifeq ($(BR2_PACKAGE_UBOOT_TOOLS_FIT_CHECK_SIGN),y)
> @@ -109,10 +112,12 @@ endef
>   
>   define HOST_UBOOT_TOOLS_CONFIGURE_CMDS
>   	mkdir -p $(@D)/include/config
> +	echo "#include <linux/kconfig.h>" > $(@D)/include/config.h
>   	touch $(@D)/include/config/auto.conf
>   	mkdir -p $(@D)/include/generated
> -	touch $(@D)/include/generated/autoconf.h
> -	echo $(if $(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT),'#define CONFIG_FIT_PRINT 1') >> $(@D)/include/generated/autoconf.h
> +	echo "#define CONFIG_TOOLS_SHA256 1" >> $(@D)/include/generated/autoconf.h
> +	echo "#define CONFIG_TOOLS_SHA1 1" >> $(@D)/include/generated/autoconf.h
> +	echo $(if $(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT),'#define CONFIG_FIT_SIGNATURE 1') >> $(@D)/include/generated/autoconf.h
>   	mkdir -p $(@D)/include/asm
>   	touch $(@D)/include/asm/linkage.h
>   endef
> @@ -120,7 +125,7 @@ endef
>   HOST_UBOOT_TOOLS_MAKE_OPTS = HOSTCC="$(HOSTCC)" \
>   	HOSTCFLAGS="$(HOST_CFLAGS)" \
>   	HOSTLDFLAGS="$(HOST_LDFLAGS)" \
> -	CONFIG_EFI_HAVE_CAPSULE_SUPPORT=y
> +	CONFIG_TOOLS_MKEFICAPSULE=y
>   
>   ifeq ($(BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT),y)
>   HOST_UBOOT_TOOLS_MAKE_OPTS += CONFIG_FIT=y CONFIG_MKIMAGE_DTC_PATH=dtc

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  parent reply	other threads:[~2025-11-03 22:46 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-11-03 13:53 [Buildroot] [PATCH v2] package/uboot-tools: Bump to version 2025.10 Kory Maincent via buildroot
2025-11-03 21:02 ` Julien Olivain via buildroot
2025-11-03 22:46 ` Fiona Klute via buildroot [this message]
2025-11-03 22:53   ` Thomas Petazzoni via buildroot
2025-11-04 21:43     ` Fiona Klute via buildroot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=03c04d13-43b7-45da-a5c5-e8754f861e30@gmx.de \
    --to=buildroot@buildroot.org \
    --cc=fiona.klute@gmx.de \
    --cc=ju.o@free.fr \
    --cc=kory.maincent@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox