public inbox for buildroot@busybox.net
 help / color / mirror / Atom feed
From: Giulio Benetti <giulio.benetti@benettiengineering.com>
To: buildroot@buildroot.org
Cc: James Hilliard <james.hilliard1@gmail.com>
Subject: Re: [Buildroot] [PATCH v3] packge/swupdate: bump to version 2025.12
Date: Fri, 27 Mar 2026 15:21:44 +0100	[thread overview]
Message-ID: <b2049a43-6bb5-4f16-b6ac-1205e2d337a3@benettiengineering.com> (raw)
In-Reply-To: <20260327141659.1109640-1-giulio.benetti@benettiengineering.com>


On 27/03/2026 15:16, Giulio Benetti wrote:
> * backport locally patch [1] to fix build failure due to missing crypto
>    backend
> * libconfig is required by default[2] so let's select it
> * align swupdate.config to the most basic one with openssl crypto
>    backend enabled by default
> * drop HAVE_LIBCRYPTO since it's not used anymore by swupdate even if
>    present
> * add libgpgme support
> 
> [1]: https://github.com/sbabic/swupdate/commit/10334fb21796b75f3a1208a3d5a98a307712218b
> [2]: https://github.com/sbabic/swupdate/commit/4b9a71476c886be1a6affe21d6a0334b254a04e1
> 
> Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> ---

V1->V2:
* drop Config.in choice since we can have multiple crypto backends
* add libgpgme as a possible crypto backend
* select openssl as default crypto backend
* set CONFIG_SSL_IMPL_OPENSSL=y in swupdate.config

V2->V3:
* don't use a crypto backend by default since James Hillard provided a
patch committed upstream that still allow to build without it
* document the adding of libgpgme in commit log

---
>   ...no-crypto-configuration-link-failure.patch | 67 +++++++++++++++++++
>   package/swupdate/Config.in                    |  6 +-
>   package/swupdate/swupdate.config              |  2 -
>   package/swupdate/swupdate.hash                |  2 +-
>   package/swupdate/swupdate.mk                  | 20 +++---
>   5 files changed, 81 insertions(+), 16 deletions(-)
>   create mode 100644 package/swupdate/0001-build-fix-no-crypto-configuration-link-failure.patch
> 
> diff --git a/package/swupdate/0001-build-fix-no-crypto-configuration-link-failure.patch b/package/swupdate/0001-build-fix-no-crypto-configuration-link-failure.patch
> new file mode 100644
> index 0000000000..15f33aa3ab
> --- /dev/null
> +++ b/package/swupdate/0001-build-fix-no-crypto-configuration-link-failure.patch
> @@ -0,0 +1,67 @@
> +From 4e7c2f6c4b978efae69d777705de84411a01c147 Mon Sep 17 00:00:00 2001
> +From: James Hilliard <james.hilliard1@gmail.com>
> +Date: Tue, 24 Mar 2026 14:23:58 -0600
> +Subject: [PATCH] build: fix no-crypto configuration link failure
> +
> +When no crypto backend is selected, the crypto directory contributes
> +no objects, so this kbuild variant does not generate
> +crypto/built-in.o.
> +
> +The top-level build still linked that file unconditionally, causing
> +the final link to fail.
> +
> +Introduce a hidden SWUPDATE_CRYPTO helper selected by the Kconfig
> +options that actually populate crypto/, and only descend into the
> +crypto directory when that helper is enabled.
> +
> +Upstream: https://github.com/sbabic/swupdate/commit/10334fb21796b75f3a1208a3d5a98a307712218b
> +Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
> +Signed-off-by: Giulio Benetti <giulio.benetti@benettiengineering.com>
> +---
> + Makefile       | 3 ++-
> + crypto/Kconfig | 5 +++++
> + 2 files changed, 7 insertions(+), 1 deletion(-)
> +
> +diff --git a/Makefile b/Makefile
> +index aa9604aa..759fd191 100644
> +--- a/Makefile
> ++++ b/Makefile
> +@@ -369,7 +369,8 @@ include $(srctree)/Makefile.flags
> + # This allow a user to issue only 'make' to build a kernel including modules
> + # Defaults to vmlinux, but the arch makefile usually adds further targets
> +
> +-objs-y		:= core handlers crypto bootloader suricatta
> ++objs-y		:= core handlers bootloader suricatta
> ++objs-$(CONFIG_SWUPDATE_CRYPTO) += crypto
> + libs-y		:= corelib mongoose parser fs containers
> + bindings-y	:= bindings
> + tools-y		:= tools
> +diff --git a/crypto/Kconfig b/crypto/Kconfig
> +index 4b9db821..cc953542 100644
> +--- a/crypto/Kconfig
> ++++ b/crypto/Kconfig
> +@@ -23,9 +23,13 @@ menu "Crypto libraries"
> + 		depends on HAVE_GPGME
> + endmenu
> +
> ++config SWUPDATE_CRYPTO
> ++	bool
> ++
> + config HASH_VERIFY
> + 	bool "Allow to add sha256 hash to each image"
> + 	depends on SSL_IMPL_OPENSSL || SSL_IMPL_WOLFSSL || SSL_IMPL_MBEDTLS
> ++	select SWUPDATE_CRYPTO
> + 	help
> + 	  Allow to add a sha256 hash to an artifact.
> + 	  This is automatically set in case of Signed Image
> +@@ -83,6 +87,7 @@ menu "Encryption"
> + config ENCRYPTED_IMAGES
> + 	bool "Images can be encrypted with a symmetric key"
> + 	depends on SSL_IMPL_OPENSSL || SSL_IMPL_WOLFSSL || SSL_IMPL_MBEDTLS
> ++	select SWUPDATE_CRYPTO
> + comment "Image encryption needs an SSL implementation"
> + 	depends on !SSL_IMPL_OPENSSL && !SSL_IMPL_WOLFSSL && !SSL_IMPL_MBEDTLS
> +
> +--
> +2.47.3
> +
> diff --git a/package/swupdate/Config.in b/package/swupdate/Config.in
> index 3708df0881..112e53a127 100644
> --- a/package/swupdate/Config.in
> +++ b/package/swupdate/Config.in
> @@ -5,6 +5,7 @@ config BR2_PACKAGE_SWUPDATE
>   	depends on BR2_USE_MMU # fork()
>   	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
>   	select BR2_PACKAGE_JSON_C
> +	select BR2_PACKAGE_LIBCONFIG
>   	select BR2_PACKAGE_LIBUBOOTENV
>   	help
>   	  swupdate provides a reliable way to update the software on
> @@ -25,8 +26,9 @@ config BR2_PACKAGE_SWUPDATE
>   	    want to have Lua support.
>   	  * Select BR2_PACKAGE_LIBCURL if you want to use the download
>   	    feature.
> -	  * Select BR2_PACKAGE_OPENSSL or BR2_PACKAGE_MBEDTLS if you
> -	    want to add encryption support.
> +	  * Select at least one of these crypto backends:
> +	    BR2_PACKAGE_OPENSSL or BR2_PACKAGE_MBEDTLS or
> +	    BR2_PACKAGE_WOLFSSL or BR2_PACKAGE_LIBGPGME.
>   	  * Select BR2_PACKAGE_MTD if you want to use swupdate with
>   	    UBI partitions.
>   	  * Select BR2_PACKAGE_ZLIB if you want to deal with gzip
> diff --git a/package/swupdate/swupdate.config b/package/swupdate/swupdate.config
> index a6b7a74948..0f672805be 100644
> --- a/package/swupdate/swupdate.config
> +++ b/package/swupdate/swupdate.config
> @@ -2,7 +2,6 @@
>   # Automatically generated file; DO NOT EDIT.
>   # Swupdate Configuration
>   #
> -CONFIG_HAVE_DOT_CONFIG=y
>   
>   #
>   # Swupdate Settings
> @@ -24,7 +23,6 @@ CONFIG_SW_VERSIONS_FILE="/etc/sw-versions"
>   #
>   CONFIG_SOCKET_CTRL_PATH="/tmp/sockinstctrl"
>   CONFIG_SOCKET_PROGRESS_PATH="/tmp/swupdateprog"
> -CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/"
>   
>   #
>   # MTD support needs libmtd
> diff --git a/package/swupdate/swupdate.hash b/package/swupdate/swupdate.hash
> index bc911d1820..b3f43648f8 100644
> --- a/package/swupdate/swupdate.hash
> +++ b/package/swupdate/swupdate.hash
> @@ -1,5 +1,5 @@
>   # Locally calculated
> -sha256  678b47fd2419727c4d0abf5c9f3bc0dc4b67e95951132bd1c8f5603e88947779  swupdate-2025.05.tar.gz
> +sha256  8517f3730eeb66e20e651b881dd4b9c10ca9ae05e3883db59b5df18ab1eaa533  swupdate-2025.12.tar.gz
>   sha256  4cf04ed34ff0ebbf5c71345b56e6af5093fc17206364cca0ebbae92ef3940683  LICENSES/BSD-1-Clause.txt
>   sha256  e27a3e87706b3aa5ff2e50eaafe2e6ed5397fbf2d7679eaf444a6d000518a3a6  LICENSES/BSD-3-Clause.txt
>   sha256  0558101984550fa84d1d13c2af11d116c20079d2be58711e8d99cadce7009192  LICENSES/CC0-1.0.txt
> diff --git a/package/swupdate/swupdate.mk b/package/swupdate/swupdate.mk
> index 05329d13b8..b2778d2aec 100644
> --- a/package/swupdate/swupdate.mk
> +++ b/package/swupdate/swupdate.mk
> @@ -4,7 +4,7 @@
>   #
>   ################################################################################
>   
> -SWUPDATE_VERSION = 2025.05
> +SWUPDATE_VERSION = 2025.12
>   SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
>   SWUPDATE_LICENSE = GPL-2.0, GPL-2.0+, LGPL-2.1+, MIT, ISC, BSD-1-Clause, BSD-3-Clause, CC0-1.0, CC-BY-SA-4.0, OFL-1.1
>   SWUPDATE_LICENSE_FILES = LICENSES/BSD-1-Clause.txt \
> @@ -18,7 +18,7 @@ SWUPDATE_LICENSE_FILES = LICENSES/BSD-1-Clause.txt \
>   	LICENSES/MIT.txt \
>   	LICENSES/OFL-1.1.txt
>   SWUPDATE_INSTALL_STAGING = YES
> -SWUPDATE_DEPENDENCIES = json-c libubootenv
> +SWUPDATE_DEPENDENCIES = json-c libconfig libubootenv
>   
>   # swupdate uses $CROSS-cc instead of $CROSS-gcc, which is not
>   # available in all external toolchains, and use CC for linking. Ensure
> @@ -51,13 +51,6 @@ else
>   SWUPDATE_MAKE_ENV += HAVE_LIBBLKID=n
>   endif
>   
> -ifeq ($(BR2_PACKAGE_LIBCONFIG),y)
> -SWUPDATE_DEPENDENCIES += libconfig
> -SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=y
> -else
> -SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=n
> -endif
> -
>   ifeq ($(BR2_PACKAGE_LIBCURL),y)
>   SWUPDATE_DEPENDENCIES += libcurl
>   SWUPDATE_MAKE_ENV += HAVE_LIBCURL=y
> @@ -82,6 +75,13 @@ else
>   SWUPDATE_MAKE_ENV += HAVE_LIBGPIOD=n
>   endif
>   
> +ifeq ($(BR2_PACKAGE_LIBGPGME),y)
> +SWUPDATE_DEPENDENCIES += libgpgme
> +SWUPDATE_MAKE_ENV += HAVE_GPGME=y
> +else
> +SWUPDATE_MAKE_ENV += HAVE_GPGME=n
> +endif
> +
>   ifeq ($(BR2_PACKAGE_LIBURIPARSER),y)
>   SWUPDATE_DEPENDENCIES += liburiparser
>   SWUPDATE_MAKE_ENV += HAVE_URIPARSER=y
> @@ -126,10 +126,8 @@ endif
>   ifeq ($(BR2_PACKAGE_OPENSSL),y)
>   SWUPDATE_DEPENDENCIES += openssl
>   SWUPDATE_MAKE_ENV += HAVE_LIBSSL=y
> -SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=y
>   else
>   SWUPDATE_MAKE_ENV += HAVE_LIBSSL=n
> -SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=n
>   endif
>   
>   ifeq ($(BR2_PACKAGE_P11_KIT),y)

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

  reply	other threads:[~2026-03-27 14:21 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-24 13:34 [Buildroot] [PATCH v2] packge/swupdate: bump to version 2025.12 Giulio Benetti
2026-03-24 13:39 ` Giulio Benetti
2026-03-26 18:25 ` James Hilliard
2026-03-27 14:16   ` [Buildroot] [PATCH v3] " Giulio Benetti
2026-03-27 14:21     ` Giulio Benetti [this message]
2026-03-27 14:25   ` [Buildroot] [PATCH v2] " Giulio Benetti

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=b2049a43-6bb5-4f16-b6ac-1205e2d337a3@benettiengineering.com \
    --to=giulio.benetti@benettiengineering.com \
    --cc=buildroot@buildroot.org \
    --cc=james.hilliard1@gmail.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