* [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module
@ 2026-10-28 11:33 Adam Duskett
2026-10-28 11:33 ` [Buildroot] [PATCH v3 2/6] board/mender/x86_64/readme.txt: fix documentation Adam Duskett
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Adam Duskett @ 2026-10-28 11:33 UTC (permalink / raw)
To: buildroot; +Cc: Adam Duskett, Angelo Compagnucci
Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
---
v2 -> v3: Fixed github link [Thomas]
package/mender-update-modules/Config.in | 12 ++++++++++++
.../mender-update-modules/mender-update-modules.mk | 4 ++++
2 files changed, 16 insertions(+)
diff --git a/package/mender-update-modules/Config.in b/package/mender-update-modules/Config.in
index 0c00ce2933..01439b30a4 100644
--- a/package/mender-update-modules/Config.in
+++ b/package/mender-update-modules/Config.in
@@ -16,6 +16,18 @@ config BR2_PACKAGE_MENDER_UPDATE_MODULES
if BR2_PACKAGE_MENDER_UPDATE_MODULES
+config BR2_PACKAGE_MENDER_UPDATE_MODULES_BANNER
+ bool "banner"
+ help
+ The Banner Update Module manages the system's message of
+ the day (MOTD) displayed when users log in via SSH or
+ console. It uses metadata-driven updates to change the
+ banner text without requiring any file payload, supports
+ rollback functionality, and operates without requiring
+ system reboots.
+
+ https://github.com/mendersoftware/mender-update-modules/tree/master/banner
+
config BR2_PACKAGE_MENDER_UPDATE_MODULES_DFU
bool "DFU"
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # libusb
diff --git a/package/mender-update-modules/mender-update-modules.mk b/package/mender-update-modules/mender-update-modules.mk
index c0b69de7e6..f3ea0e15cd 100644
--- a/package/mender-update-modules/mender-update-modules.mk
+++ b/package/mender-update-modules/mender-update-modules.mk
@@ -12,6 +12,10 @@ MENDER_UPDATE_MODULES_DEPENDENCIES = host-mender-artifact mender
MENDER_UPDATE_MODULES_MODULES = script
+ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_BANNER),y)
+MENDER_UPDATE_MODULES_MODULES += banner
+endif
+
ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DFU),y)
MENDER_UPDATE_MODULES_MODULES += dfu
endif
--
2.56.0
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 9+ messages in thread* [Buildroot] [PATCH v3 2/6] board/mender/x86_64/readme.txt: fix documentation 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett @ 2026-10-28 11:33 ` Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 3/6] board/mender/x86_64: add a udev rule to create /dev/root Adam Duskett ` (4 subsequent siblings) 5 siblings, 0 replies; 9+ messages in thread From: Adam Duskett @ 2026-10-28 11:33 UTC (permalink / raw) To: buildroot; +Cc: Adam Duskett, Angelo Compagnucci Starting with commit 073c81c8cd233fa6e3a7067e3542ef0f56f28621, the ${COMPATIBLE_TYPES} variable is no longer prepended to the artifact name. Update the documentation accordingly. Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- v2 -> v3: Added to the series board/mender/x86_64/readme.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/board/mender/x86_64/readme.txt b/board/mender/x86_64/readme.txt index 01a0254511..01cf4077b7 100644 --- a/board/mender/x86_64/readme.txt +++ b/board/mender/x86_64/readme.txt @@ -53,12 +53,12 @@ Optional arguments: The login prompt will appear in the serial window. -Tested with QEMU 4.1.1 on Fedora 31 +Tested with QEMU 10.2.2 on Fedora 44 Creating a mender-artifact ======================== -The mender artifact is created in output/images/buildroot-x86_64-1.0.mender +The mender artifact is created in output/images/1.0.mender You may wish to change --artifact-name=1.0 to a name that best suits your particular needs, as this option changes the mender artifact name. -- 2.56.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 3/6] board/mender/x86_64: add a udev rule to create /dev/root 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 2/6] board/mender/x86_64/readme.txt: fix documentation Adam Duskett @ 2026-10-28 11:33 ` Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 4/6] test_mender/post-build.sh: use /etc/mender/device_type Adam Duskett ` (3 subsequent siblings) 5 siblings, 0 replies; 9+ messages in thread From: Adam Duskett @ 2026-10-28 11:33 UTC (permalink / raw) To: buildroot; +Cc: Adam Duskett, Angelo Compagnucci As /dev/root does not appear automatically, add a rule to create /dev/root. Without this rule, even running a simple command such as `mender -version` outputs the following warning: ``` WARN[0000] Could not resolve path link: /dev/root Attempting to continue WARN[0000] Could not resolve path link: /dev/root Attempting to continue ``` Note: This rule is only guaranteed to work properly with the mender_x86_64_efi_defconfig example configuration. Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- v2 -> v3: Added a comment that this change is only guaranteed to work with the mender_x86_64_efi_defconfig [Thomas] .../mender/x86_64/overlay/etc/udev/rules.d/99-root-symlink.rules | 1 + 1 file changed, 1 insertion(+) create mode 100644 board/mender/x86_64/overlay/etc/udev/rules.d/99-root-symlink.rules diff --git a/board/mender/x86_64/overlay/etc/udev/rules.d/99-root-symlink.rules b/board/mender/x86_64/overlay/etc/udev/rules.d/99-root-symlink.rules new file mode 100644 index 0000000000..7d2ae8cb89 --- /dev/null +++ b/board/mender/x86_64/overlay/etc/udev/rules.d/99-root-symlink.rules @@ -0,0 +1 @@ +SUBSYSTEM=="block", ACTION=="add|change", PROGRAM="/bin/grep -q root=/dev/%k /proc/cmdline", SYMLINK+="root" -- 2.56.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 4/6] test_mender/post-build.sh: use /etc/mender/device_type 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 2/6] board/mender/x86_64/readme.txt: fix documentation Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 3/6] board/mender/x86_64: add a udev rule to create /dev/root Adam Duskett @ 2026-10-28 11:33 ` Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 5/6] package/mender: bump to version 5.2.0 Adam Duskett ` (2 subsequent siblings) 5 siblings, 0 replies; 9+ messages in thread From: Adam Duskett @ 2026-10-28 11:33 UTC (permalink / raw) To: buildroot; +Cc: Adam Duskett, Angelo Compagnucci To keep parity with board/mender/x86_64/overlay/etc/mender/mender.conf, change /var/lib/mender/device_type to /etc/mender/device_type and add a /etc/mender/mender.conf file. Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- V2 -> V3: s/parody/parity/ [Thomas] .../testing/tests/package/test_mender/post-build.sh | 3 +-- .../test_mender/rootfs-overlay/etc/mender/mender.conf | 11 +++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/mender.conf diff --git a/support/testing/tests/package/test_mender/post-build.sh b/support/testing/tests/package/test_mender/post-build.sh index db075628e0..f27b0f9417 100755 --- a/support/testing/tests/package/test_mender/post-build.sh +++ b/support/testing/tests/package/test_mender/post-build.sh @@ -21,8 +21,7 @@ generate_mender_bootstrap_artifact() { function mender_fixup() { rm -rf "${TARGET_DIR}"/var/lib/mender mkdir -p "${TARGET_DIR}"/var/lib/mender - echo "device_type=${COMPATIBLE_TYPE}" > "${TARGET_DIR}"/var/lib/mender/device_type - + echo "device_type=${COMPATIBLE_TYPE}" > "${TARGET_DIR}"/etc/mender/device_type } mender_fixup diff --git a/support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/mender.conf b/support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/mender.conf new file mode 100644 index 0000000000..5f423fb2cb --- /dev/null +++ b/support/testing/tests/package/test_mender/rootfs-overlay/etc/mender/mender.conf @@ -0,0 +1,11 @@ +{ + "InventoryPollIntervalSeconds": 1800, + "UpdatePollIntervalSeconds": 1800, + "RetryPollIntervalSeconds": 300, + "RootfsPartA": "/dev/vda2", + "RootfsPartB": "/dev/vda3", + "ServerCertificate": "/etc/mender/server.crt", + "ServerURL": "https://docker.mender.io", + "TenantToken": "dummy", + "DeviceTypeFile": "/etc/mender/device_type" +} -- 2.56.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 5/6] package/mender: bump to version 5.2.0 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett ` (2 preceding siblings ...) 2026-10-28 11:33 ` [Buildroot] [PATCH v3 4/6] test_mender/post-build.sh: use /etc/mender/device_type Adam Duskett @ 2026-10-28 11:33 ` Adam Duskett 2026-10-28 14:23 ` Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 6/6] package/mender-connect: depend on mender, drop sysvinit file Adam Duskett 2026-11-05 7:31 ` [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Thomas Petazzoni via buildroot 5 siblings, 1 reply; 9+ messages in thread From: Adam Duskett @ 2026-10-28 11:33 UTC (permalink / raw) To: buildroot; +Cc: Adam Duskett, Angelo Compagnucci Starting with Mender version 4, the program is rewritten from Go to C++ using CMake. The current package provided by Buildroot is 3.5.3, which is quite old, having been released on 12/6/2024. Since then, several changes have occurred, necessitating a substantially large patch with many changes all at once. The following is a list of changes: MAJOR: - Mender is now a C++ project - Mender depends on systemd - Drops sysvinit support - Mender is split into two binaries: - mender-authd - mender-updated MINOR: - Drop the 0001-openssl-v4-update.patch. - Add 0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch Which allowd building without OpenSSL engine support. This patch is tested against OpenSSL 4.0.2 which is not yet applied to the master branch. - The following busyboxy options are required by the rootfs module and are enabled by default: - flock - stat - stat_format - sync_fancy - wget - wget_https - wget_openssl Note: While sync_fancy isn't strictly necessary, enabling this feature prevents several messages about sync ignoring all arguments. - New dependencies are as follows: - boost - dbus - libarchive - libglib2 - lmdb - openssl - systemd - yaml-cpp The configs/mender_x86_64_efi_defconfig file is updated to use systemd by default. Mender is configured with -DBUILD_SHARED_LIBS=OFF as the bundled libyaml and tiny-process-library .so files are not installed when -DBUILD_SHARED_LIBS=ON is selected. The support/testing/tests/package/test_mender.py is updated: - Uses systemd - Bumped kernel version to 6.18.59 - Adds a simple network as mender-authd requires network-online.target - Drops sysvinit tests Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- v2 -> v3: - Removed documentation update (see first patch in this series) - Use an external toolchain for mender_x86_64_efi_defconfig [Thomas] - Dropped jq selection for mender_x86_64_efi_defconfig [Thomas] - Dropped yaml-cpp selection (bundled and linked statically in mender source code) - Cleaned up various make commands [Thomas] - Removed kernel fragment used during debugging [Thomas] - Add 0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch [Thomas] board/mender/x86_64/linux.config | 11 + configs/mender_x86_64_efi_defconfig | 7 +- package/mender/0001-openssl-v4-update.patch | 191 ------------------ ...o-platform-openssl-crypto.cpp-fix-bu.patch | 69 +++++++ package/mender/Config.in | 39 ++-- package/mender/S42mender | 44 ---- package/mender/mender-client.service | 13 -- package/mender/mender.hash | 52 ++--- package/mender/mender.mk | 146 ++++++------- package/mender/server.crt | 22 -- support/testing/tests/package/test_mender.py | 96 ++++----- 11 files changed, 249 insertions(+), 441 deletions(-) delete mode 100644 package/mender/0001-openssl-v4-update.patch create mode 100644 package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch delete mode 100644 package/mender/S42mender delete mode 100644 package/mender/mender-client.service delete mode 100644 package/mender/server.crt diff --git a/board/mender/x86_64/linux.config b/board/mender/x86_64/linux.config index b758c6d45a..f980ec39ab 100644 --- a/board/mender/x86_64/linux.config +++ b/board/mender/x86_64/linux.config @@ -1,4 +1,8 @@ CONFIG_SYSVIPC=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_USER_NS=y CONFIG_SMP=y CONFIG_HYPERVISOR_GUEST=y CONFIG_PARAVIRT=y @@ -15,18 +19,22 @@ CONFIG_NETFILTER_XTABLES_LEGACY=y CONFIG_IP_NF_IPTABLES_LEGACY=y CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_FILTER=y +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_FQ_CODEL=y CONFIG_CFG80211=m CONFIG_CFG80211_WEXT=y CONFIG_MAC80211=m CONFIG_PCI=y CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y +CONFIG_DMI_SYSFS=y CONFIG_VIRTIO_BLK=y CONFIG_BLK_DEV_SD=y CONFIG_SCSI_VIRTIO=y CONFIG_ATA=y CONFIG_NETDEVICES=y CONFIG_VIRTIO_NET=y +CONFIG_E1000E=y CONFIG_ATH9K=m CONFIG_ATH9K_HTC=m CONFIG_CARL9170=m @@ -57,8 +65,11 @@ CONFIG_VIRTIO_INPUT=y CONFIG_VIRTIO_MMIO=y CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y CONFIG_EXT4_FS=y +CONFIG_AUTOFS_FS=y CONFIG_FUSE_FS=y CONFIG_VFAT_FS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y CONFIG_SQUASHFS=y CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_ISO8859_1=y diff --git a/configs/mender_x86_64_efi_defconfig b/configs/mender_x86_64_efi_defconfig index f10a461770..9cd68e5f62 100644 --- a/configs/mender_x86_64_efi_defconfig +++ b/configs/mender_x86_64_efi_defconfig @@ -1,7 +1,6 @@ BR2_x86_64=y -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_18=y -BR2_INIT_SYSV=y -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_INIT_SYSTEMD=y BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" BR2_ROOTFS_OVERLAY="board/mender/x86_64/overlay" BR2_ROOTFS_POST_BUILD_SCRIPT="board/mender/x86_64/post-build.sh" @@ -42,7 +41,7 @@ BR2_PACKAGE_MENDER_GRUBENV=y BR2_PACKAGE_MENDER_GRUBENV_DEFINES="board/mender/x86_64/mender_grubenv_defines" BR2_TARGET_ROOTFS_EXT2=y BR2_TARGET_ROOTFS_EXT2_4=y -BR2_TARGET_ROOTFS_EXT2_SIZE="128M" +BR2_TARGET_ROOTFS_EXT2_SIZE="256M" # BR2_TARGET_ROOTFS_TAR is not set BR2_TARGET_GRUB2=y BR2_TARGET_GRUB2_X86_64_EFI=y diff --git a/package/mender/0001-openssl-v4-update.patch b/package/mender/0001-openssl-v4-update.patch deleted file mode 100644 index 65443614d5..0000000000 --- a/package/mender/0001-openssl-v4-update.patch +++ /dev/null @@ -1,191 +0,0 @@ -Description: Fix build compatibility with OpenSSL 4.0 - Include <openssl/x509v3.h> in hostname.c and hostname.go before checking - #ifndef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT, preventing fallback to - legacy OpenSSL < 1.0.2 code that attempts to directly access opaque - ASN1_STRING fields. - Also add preprocessor guards around deprecated protocol methods - (SSLv3_method, TLSv1_method, TLSv1_1_method, TLSv1_2_method) in shim.c - and ENGINE functions (ENGINE_by_id, ENGINE_init, ENGINE_free, - ENGINE_finish, ENGINE_load_private_key, ENGINE_load_builtin_engines) - in shim.c, shim.h, engine.go, key.go to prevent implicit declaration - and undefined reference errors when building against OpenSSL 4.0. -Author: Frank Heimes <frank.heimes@canonical.com> - -Downloaded from Ubuntu: -https://git.launchpad.net/ubuntu/+source/golang-github-mendersoftware-openssl/tree/debian/patches/0004-openssl-v4-update.patch?h=applied/ubuntu/stonking-devel - -Upstream: not applicable, upstream moved to c++ in newer versions - -[Bernd: rebased for vendored download by buildroot infra] -Signed-off-by: Bernd Kuhls <bernd@kuhls.net> - -diff -uNr mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/engine.go mender-3.5.3/vendor/github.com/mendersoftware/openssl/engine.go ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/engine.go 2024-05-24 12:07:27.000000000 +0200 -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/engine.go 2026-09-20 18:37:50.270612314 +0200 -@@ -15,6 +15,7 @@ - package openssl - - /* -+#include "shim.h" - #include "openssl/engine.h" - */ - import "C" -@@ -33,18 +34,18 @@ - cname := C.CString(name) - defer C.free(unsafe.Pointer(cname)) - e := &Engine{ -- e: C.ENGINE_by_id(cname), -+ e: C.X_ENGINE_by_id(cname), - } - if e.e == nil { - return nil, fmt.Errorf("engine %s missing", name) - } -- if C.ENGINE_init(e.e) == 0 { -- C.ENGINE_free(e.e) -+ if C.X_ENGINE_init(e.e) == 0 { -+ C.X_ENGINE_free(e.e) - return nil, fmt.Errorf("engine %s not initialized", name) - } - runtime.SetFinalizer(e, func(e *Engine) { -- C.ENGINE_finish(e.e) -- C.ENGINE_free(e.e) -+ C.X_ENGINE_finish(e.e) -+ C.X_ENGINE_free(e.e) - }) - return e, nil - } -diff -uNr mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/hostname.c mender-3.5.3/vendor/github.com/mendersoftware/openssl/hostname.c ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/hostname.c 2024-05-24 12:07:27.000000000 +0200 -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/hostname.c 2026-09-20 18:32:37.854514981 +0200 -@@ -6,6 +6,7 @@ - */ - - #include <openssl/x509.h> -+#include <openssl/x509v3.h> - - #ifndef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT - -diff -uNr mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/key.go mender-3.5.3/vendor/github.com/mendersoftware/openssl/key.go ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/key.go 2024-05-24 12:07:27.000000000 +0200 -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/key.go 2026-09-20 18:38:13.462370202 +0200 -@@ -303,7 +303,7 @@ - keyID := C.CString(id) - defer C.free(unsafe.Pointer(keyID)) - -- key := C.ENGINE_load_private_key(e.e, keyID, nil, nil) -+ key := C.X_ENGINE_load_private_key(e.e, keyID, nil, nil) - if key == nil { - return nil, errors.New("cannot load private key, ENGINE_load_private_key error") - } -diff -uNr mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/shim.c mender-3.5.3/vendor/github.com/mendersoftware/openssl/shim.c ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/shim.c 2024-05-24 12:07:27.000000000 +0200 -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/shim.c 2026-09-20 18:36:02.855038372 +0200 -@@ -382,7 +382,9 @@ - int rc = 0; - - OPENSSL_config(NULL); -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) - ENGINE_load_builtin_engines(); -+#endif - SSL_load_error_strings(); - SSL_library_init(); - OpenSSL_add_all_algorithms(); -@@ -403,6 +405,46 @@ - return 0; - } - -+ENGINE *X_ENGINE_by_id(const char *id) { -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) -+ return ENGINE_by_id(id); -+#else -+ return NULL; -+#endif -+} -+ -+int X_ENGINE_init(ENGINE *e) { -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) -+ return ENGINE_init(e); -+#else -+ return 0; -+#endif -+} -+ -+int X_ENGINE_free(ENGINE *e) { -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) -+ return ENGINE_free(e); -+#else -+ return 0; -+#endif -+} -+ -+int X_ENGINE_finish(ENGINE *e) { -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) -+ return ENGINE_finish(e); -+#else -+ return 0; -+#endif -+} -+ -+EVP_PKEY *X_ENGINE_load_private_key(ENGINE *e, const char *key_id, UI_METHOD *ui_method, void *callback_data) { -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) -+ return ENGINE_load_private_key(e, key_id, ui_method, callback_data); -+#else -+ return NULL; -+#endif -+} -+ - void * X_OPENSSL_malloc(size_t size) { - return OPENSSL_malloc(size); - } -@@ -480,7 +522,7 @@ - } - - const SSL_METHOD *X_SSLv3_method() { --#ifndef OPENSSL_NO_SSL3_METHOD -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_SSL3_METHOD) && !defined(OPENSSL_NO_DEPRECATED_1_1_0) && !defined(OPENSSL_NO_DEPRECATED_3_0) - return SSLv3_method(); - #else - return NULL; -@@ -488,11 +530,15 @@ - } - - const SSL_METHOD *X_TLSv1_method() { -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_TLS1_METHOD) && !defined(OPENSSL_NO_DEPRECATED_1_1_0) && !defined(OPENSSL_NO_DEPRECATED_3_0) - return TLSv1_method(); -+#else -+ return NULL; -+#endif - } - - const SSL_METHOD *X_TLSv1_1_method() { --#if defined(TLS1_1_VERSION) && !defined(OPENSSL_SYSNAME_MACOSX) -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && defined(TLS1_1_VERSION) && !defined(OPENSSL_SYSNAME_MACOSX) && !defined(OPENSSL_NO_TLS1_1_METHOD) && !defined(OPENSSL_NO_DEPRECATED_1_1_0) && !defined(OPENSSL_NO_DEPRECATED_3_0) - return TLSv1_1_method(); - #else - return NULL; -@@ -500,7 +546,7 @@ - } - - const SSL_METHOD *X_TLSv1_2_method() { --#if defined(TLS1_2_VERSION) && !defined(OPENSSL_SYSNAME_MACOSX) -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && defined(TLS1_2_VERSION) && !defined(OPENSSL_SYSNAME_MACOSX) && !defined(OPENSSL_NO_TLS1_2_METHOD) && !defined(OPENSSL_NO_DEPRECATED_1_1_0) && !defined(OPENSSL_NO_DEPRECATED_3_0) - return TLSv1_2_method(); - #else - return NULL; -diff -uNr mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/shim.h mender-3.5.3/vendor/github.com/mendersoftware/openssl/shim.h ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/shim.h 2024-05-24 12:07:27.000000000 +0200 -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/shim.h 2026-09-20 18:38:33.117854985 +0200 -@@ -40,6 +40,13 @@ - /* shim methods */ - extern int X_shim_init(); - -+/* Engine methods */ -+extern ENGINE *X_ENGINE_by_id(const char *id); -+extern int X_ENGINE_init(ENGINE *e); -+extern int X_ENGINE_free(ENGINE *e); -+extern int X_ENGINE_finish(ENGINE *e); -+extern EVP_PKEY *X_ENGINE_load_private_key(ENGINE *e, const char *key_id, UI_METHOD *ui_method, void *callback_data); -+ - /* Library methods */ - extern void X_OPENSSL_free(void *ref); - extern void *X_OPENSSL_malloc(size_t size); diff --git a/package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch b/package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch new file mode 100644 index 0000000000..e596f1b5f3 --- /dev/null +++ b/package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch @@ -0,0 +1,69 @@ +From dcc218c6857e080e760b4a9c04acc79390151eb3 Mon Sep 17 00:00:00 2001 +From: Adam Duskett <adam.duskett@amarulasolutions.com> +Date: Wed, 28 Oct 2026 12:07:07 +0100 +Subject: [PATCH] src/common/crypto/platform/openssl/crypto.cpp: fix build + without engine support + +OpenSSL 4.0 removed ENGINE support entirely and always defines +OPENSSL_NO_ENGINE. Its engine.h still declares the ENGINE_* functions +for source compatibility, but only provides stub definitions when +OPENSSL_ENGINE_STUBS is defined, so linking mender-auth fails with: + + undefined reference to `ENGINE_by_id' + undefined reference to `ENGINE_free' + undefined reference to `ENGINE_init' + undefined reference to `ENGINE_load_builtin_engines' + undefined reference to `ENGINE_load_private_key' + +The same happens with OpenSSL 3.x configured with no-engine. + +Guard the ENGINE calls with OPENSSL_NO_ENGINE, and return an error +from LoadFromHSMEngine() when an SSL engine is configured but not +available. + +Upstream: https://github.com/mendersoftware/mender/pull/2037 +Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> +--- + src/common/crypto/platform/openssl/crypto.cpp | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/common/crypto/platform/openssl/crypto.cpp b/src/common/crypto/platform/openssl/crypto.cpp +index b31e6c8..5f6a4b9 100644 +--- a/src/common/crypto/platform/openssl/crypto.cpp ++++ b/src/common/crypto/platform/openssl/crypto.cpp +@@ -103,9 +103,11 @@ auto bn_free = [](BIGNUM *bn) { + } + }; + auto engine_free_func = [](ENGINE *e) { ++#ifndef OPENSSL_NO_ENGINE + if (e) { + ENGINE_free(e); + } ++#endif // OPENSSL_NO_ENGINE + }; + + auto password_callback = [](char *buf, int size, int rwflag, void *u) { +@@ -153,6 +155,12 @@ string GetOpenSSLErrorMessage() { + } + + ExpectedPrivateKey LoadFromHSMEngine(const Args &args) { ++#ifdef OPENSSL_NO_ENGINE ++ return expected::unexpected(MakeError( ++ SetupError, ++ "Failed to get the " + args.ssl_engine ++ + " engine. OpenSSL was built without engine support")); ++#else + log::Trace("Loading the private key from HSM"); + + ENGINE_load_builtin_engines(); +@@ -190,6 +198,7 @@ ExpectedPrivateKey LoadFromHSMEngine(const Args &args) { + auto handle = unique_ptr<OpenSSLResourceHandle, void (*)(OpenSSLResourceHandle *)>( + new OpenSSLResourceHandle {std::move(engine)}, resource_handle_free_func); + return std::make_unique<PrivateKey>(std::move(private_key), std::move(handle)); ++#endif // OPENSSL_NO_ENGINE + } + + #ifdef MENDER_CRYPTO_OPENSSL_LEGACY +-- +2.56.0 + diff --git a/package/mender/Config.in b/package/mender/Config.in index c9b9d0b757..8f16e2312f 100644 --- a/package/mender/Config.in +++ b/package/mender/Config.in @@ -1,9 +1,20 @@ config BR2_PACKAGE_MENDER bool "mender" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_TOOLCHAIN_HAS_THREADS - select BR2_PACKAGE_HOST_GO + depends on BR2_INSTALL_LIBSTDCPP + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # (bundled yaml-cpp) + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # boost-log + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-log + depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-log + depends on BR2_USE_MMU # libglib2 + depends on BR2_USE_WCHAR # boost, libarchive, libglib2 + depends on BR2_PACKAGE_SYSTEMD + select BR2_PACKAGE_BOOST + select BR2_PACKAGE_BOOST_FILESYSTEM + select BR2_PACKAGE_BOOST_LOG + select BR2_PACKAGE_CA_CERTIFICATES + select BR2_PACKAGE_LIBARCHIVE + select BR2_PACKAGE_LIBGLIB2 + select BR2_PACKAGE_LMDB select BR2_PACKAGE_OPENSSL select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL select BR2_PACKAGE_LIBOPENSSL_ENGINES @@ -21,16 +32,13 @@ config BR2_PACKAGE_MENDER - uboot-tools must be selected. - fw_printenv must be functional on the device. The Mender Uboot patches are at: - https://github.com/mendersoftware/meta-mender/ + https://github.com/mendersoftware/meta-mender/tree/master/meta-mender-core/recipes-bsp/u-boot/patches For more information on Manual U-Boot integration, see: - https://docs.mender.io/2.6/system-updates-yocto-project/board-integration/bootloader-support/u-boot/manual-u-boot-integration + https://docs.mender.io/3.4/system-updates-yocto-project/board-integration/bootloader-support/u-boot/manual-u-boot-integration For systems using Grub2 as the bootloader: - Mender depends on the mender-grubenv package. - - The mender-grubenv package provides a fw_printenv script, - which is not compatible with the uboot-tools fw_printenv - script. The mender project recommends using uboot to load Grub2 as a secondary bootloader whenever possible. Using Grub2 as a @@ -39,7 +47,12 @@ config BR2_PACKAGE_MENDER https://github.com/mendersoftware/mender -comment "mender needs a toolchain w/ threads" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on !BR2_TOOLCHAIN_HAS_THREADS +comment "mender needs systemd" + depends on !BR2_PACKAGE_SYSTEMD + +comment "mender needs a toolchain w/ C++, NPTL, wchar, not affected by GCC bug 64735" + depends on BR2_USE_MMU + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS + depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ + !BR2_TOOLCHAIN_HAS_THREADS_NPTL diff --git a/package/mender/S42mender b/package/mender/S42mender deleted file mode 100644 index 70116ed4eb..0000000000 --- a/package/mender/S42mender +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh -# -# Starts mender service. -# -DAEMON="mender" -DAEMON_PATH="/usr/bin/mender" -PIDFILE="/var/run/${DAEMON}.pid" -DAEMON_ARGS="daemon" - -start() { - printf "Starting mender service: " - umask 077 - start-stop-daemon -bmSqp "$PIDFILE" -x ${DAEMON_PATH} -- ${DAEMON_ARGS} - status=$? - [ "${status}" = 0 ] && echo "OK" || echo "FAIL" -} - -stop() { - printf "Stopping mender service: " - start-stop-daemon -Kqp "$PIDFILE" - status=$? - [ "${status}" = 0 ] && echo "OK" || echo "FAIL" -} -restart() { - stop - start -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|reload) - restart - ;; - *) - echo "Usage: $0 {start|stop|reload|restart}" - exit 1 -esac - -exit $? diff --git a/package/mender/mender-client.service b/package/mender/mender-client.service deleted file mode 100644 index 47e439993c..0000000000 --- a/package/mender/mender-client.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Mender OTA update service -After=systemd-resolved.service - -[Service] -Type=idle -User=root -Group=root -ExecStart=/usr/bin/mender daemon -Restart=on-abort - -[Install] -WantedBy=multi-user.target diff --git a/package/mender/mender.hash b/package/mender/mender.hash index 17fe08c827..1aa8fb63bd 100644 --- a/package/mender/mender.hash +++ b/package/mender/mender.hash @@ -1,47 +1,27 @@ # Locally computed: -sha256 35e369759b8d4f012153e538b5daf1e0cebe842205811e708332c5a092270ac5 mender-3.5.3-go2.tar.gz +sha256 436ae559358f29c672b98ca77b953936ba6ef51455466fb5ed0ced7ae77fc226 mender-5.2.0.tar.gz +sha256 4d3409e4f8f7f3b9de5da7fee7c03e36a2381a02b2e318702485fc993a735cc9 LIC_FILES_CHKSUM.sha256 # Vendor licenses # Generated with sed '/^[A-Za-z0-9_]/s/^/sha256 /' LIC_FILES_CHKSUM.sha256 # Apache-2.0 license. -sha256 d0f406b04e7901e6b4076bdf5fd20f9d7f04fc41681069fd8954413ac6295688 LICENSE -sha256 52b2497ce07650b825015e80ca7a5d40c360c04c530234ca6d950b0f98bca23a vendor/github.com/mendersoftware/mender-artifact/LICENSE -sha256 73ba74dfaa520b49a401b5d21459a8523a146f3b7518a833eea5efa85130bf68 vendor/github.com/mendersoftware/openssl/LICENSE -sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/github.com/minio/sha256-simd/LICENSE -sha256 8f5d89b47d7a05a199b77b7e0f362dad391d451ebda4ef48ba11c50c071564c7 vendor/github.com/mendersoftware/progressbar/LICENSE +sha256 d7e8fd4ad05371007d60285c309ba7a7ce3e61029b843f949fbb9ec79dc9eb47 LICENSE # -# BSD 2 Clause license. -sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 vendor/github.com/pkg/errors/LICENSE -sha256 e4646a82a976369d7ae8f6ed5c11d35dc0af18433a8ccc24c85b459ad8b95128 vendor/github.com/godbus/dbus/LICENSE -sha256 2be1b548b0387ca8948e1bb9434e709126904d15f622cc2d0d8e7f186e4d122d vendor/github.com/gorilla/websocket/LICENSE +# MIT clause license +sha256 d64d1b4d948aa7751cfb613c02dc246aab7b358d760053e6580f01affe946906 src/common/vendor/json/LICENSE.MIT +sha256 7920c8620b1e073a79a667c44f9149c25724eb9f0f6b220b3c8d9564e2d40a43 src/common/vendor/json/docs/mkdocs/docs/home/license.md +sha256 2aefa40fa7e1c0fab18fbad5b15b02406eea1399d3cca42cc1012b65b4a56f74 src/common/vendor/tiny-process-library/LICENSE +sha256 aa6fcc27be034e41e21dd832f9175bfe694a48491d9e14ff0fa278e19ad14f1b src/common/vendor/yaml-cpp/LICENSE # -# BSD 3 Clause license. -sha256 0d9e582ee4bff57bf1189c9e514e6da7ce277f9cd3bc2d488b22fbb39a6d87cf vendor/github.com/klauspost/compress/LICENSE -sha256 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/github.com/pmezard/go-difflib/LICENSE -sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/sys/LICENSE -sha256 0634b008cee55ca01f0888d2f5aba2d34e66c3f52c31a4e16a5d5d33d0c2a03e vendor/github.com/bmatsuo/lmdb-go/LICENSE.md -sha256 87640bc4df2ceb1559f268a3db1ba859ab780f7ba5b1b4545173d4680a3d918b vendor/github.com/remyoudompheng/go-liblzma/LICENSE -sha256 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/golang.org/x/term/LICENSE +# UNLICENSE +sha256 7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c src/common/vendor/lmdbxx/UNLICENSE # -# ISC license. -sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 vendor/github.com/davecgh/go-spew/LICENSE +# CC0 1.0 Universal +sha256 a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499 src/common/vendor/expected/COPYING # -# MIT license. -sha256 6d2de1cde19c4d2bd8bcd9aaa1d581f4cfa3db9cf71896140330eaa2f2687685 vendor/github.com/klauspost/pgzip/LICENSE -sha256 f69f157b0be75da373605dbc8bbf142e8924ee82d8f44f11bcaf351335bf98cf vendor/github.com/klauspost/compress/internal/snapref/LICENSE -sha256 f566a9f97bacdaf00d9f21dd991e81dc11201c4e016c86b470799429a1c9a79c vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt -sha256 5d966570d7a442d4e969892860a914e542c97f262c873baee8f0aa48e1f40212 vendor/github.com/klauspost/cpuid/v2/LICENSE -sha256 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/github.com/sirupsen/logrus/LICENSE -sha256 f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/github.com/stretchr/testify/LICENSE -sha256 ffa15bdce332058a03a1d923910864fb6e58bf6df66a0e3914284725b327183e vendor/github.com/ungerik/go-sysfs/LICENSE -sha256 da277af11b85227490377fbcac6afccc68be560c4fff36ac05ca62de55345fd7 vendor/github.com/urfave/cli/v2/LICENSE -sha256 b2663894033a05fd80261176cd8da1d72546e25842d5c1abcc852ca23b6b61b0 vendor/github.com/stretchr/objx/LICENSE -sha256 d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/gopkg.in/yaml.v3/LICENSE -sha256 08eab1118c80885fa1fa6a6dd7303f65a379fcb3733e063d20d1bbc2c76e6fa1 vendor/github.com/mattn/go-isatty/LICENSE +# Boost Software License +sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 src/common/vendor/optional-lite/LICENSE.txt # -# OpenLDAP Public License -sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md - -# sha256 of all the vendor licenses combined -sha256 86407bd98d5ea7fb0f09ab771c3333e975d06565b809a2dd95f864dc1e3a09b3 LIC_FILES_CHKSUM.sha256 +# BSD-3 +sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 src/common/vendor/yaml-cpp/test/googletest-1.16.0/LICENSE diff --git a/package/mender/mender.mk b/package/mender/mender.mk index 76dc28d547..e20fec8aa9 100644 --- a/package/mender/mender.mk +++ b/package/mender/mender.mk @@ -4,107 +4,107 @@ # ################################################################################ -MENDER_VERSION = 3.5.3 -MENDER_SITE = $(call github,mendersoftware,mender,$(MENDER_VERSION)) -MENDER_LICENSE = Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, OLDAP-2.8 +MENDER_VERSION = 5.2.0 +MENDER_SITE = https://github.com/mendersoftware/mender/releases/download/$(MENDER_VERSION) +MENDER_LICENSE = Apache-2.0, BSL-1.0, BSD-3-Clause, CC0-1.0, MIT, Unlicense MENDER_CPE_ID_VENDOR = northern.tech -# CVE-2024-46948 only affects mender-server -MENDER_IGNORE_CVES = CVE-2024-46948 # Vendor license paths generated with: # awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor MENDER_LICENSE_FILES = \ LICENSE \ LIC_FILES_CHKSUM.sha256 \ - vendor/github.com/mendersoftware/mender-artifact/LICENSE \ - vendor/github.com/mendersoftware/openssl/LICENSE \ - vendor/github.com/minio/sha256-simd/LICENSE \ - vendor/github.com/mendersoftware/progressbar/LICENSE \ - vendor/github.com/pkg/errors/LICENSE \ - vendor/github.com/godbus/dbus/LICENSE \ - vendor/github.com/gorilla/websocket/LICENSE \ - vendor/github.com/klauspost/compress/LICENSE \ - vendor/github.com/pmezard/go-difflib/LICENSE \ - vendor/golang.org/x/sys/LICENSE \ - vendor/github.com/bmatsuo/lmdb-go/LICENSE.md \ - vendor/github.com/remyoudompheng/go-liblzma/LICENSE \ - vendor/golang.org/x/term/LICENSE \ - vendor/github.com/davecgh/go-spew/LICENSE \ - vendor/github.com/klauspost/pgzip/LICENSE \ - vendor/github.com/klauspost/compress/internal/snapref/LICENSE \ - vendor/github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt \ - vendor/github.com/klauspost/cpuid/v2/LICENSE \ - vendor/github.com/sirupsen/logrus/LICENSE \ - vendor/github.com/stretchr/testify/LICENSE \ - vendor/github.com/ungerik/go-sysfs/LICENSE \ - vendor/github.com/urfave/cli/v2/LICENSE \ - vendor/github.com/stretchr/objx/LICENSE \ - vendor/gopkg.in/yaml.v3/LICENSE \ - vendor/github.com/mattn/go-isatty/LICENSE \ - vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md - -MENDER_DEPENDENCIES = host-pkgconf openssl - -MENDER_LDFLAGS = -X github.com/mendersoftware/mender/conf.Version=$(MENDER_VERSION) - -MENDER_UPDATE_MODULES_FILES = directory single-file + src/common/vendor/json/LICENSE.MIT \ + src/common/vendor/json/docs/mkdocs/docs/home/license.md \ + src/common/vendor/tiny-process-library/LICENSE \ + src/common/vendor/yaml-cpp/LICENSE \ + src/common/vendor/lmdbxx/UNLICENSE \ + src/common/vendor/expected/COPYING \ + src/common/vendor/optional-lite/LICENSE.txt \ + src/common/vendor/yaml-cpp/test/googletest-1.16.0/LICENSE + +MENDER_DEPENDENCIES += \ + host-pkgconf \ + boost \ + dbus \ + libarchive \ + libglib2 \ + lmdb \ + openssl \ + systemd + +MENDER_INSTALL_TARGET_OPTS = \ + install-bin \ + install-dbus \ + install-dbus-service-files \ + install-identity-scripts \ + install-inventory-network-scripts \ + install-inventory-scripts \ + install-modules \ + install-rootfs-image-module \ + install-systemd define MENDER_INSTALL_CONFIG_FILES - $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender/scripts - echo -n "3" > $(TARGET_DIR)/etc/mender/scripts/version - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender.conf \ $(TARGET_DIR)/etc/mender/mender.conf - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/server.crt \ - $(TARGET_DIR)/etc/mender/server.crt - $(INSTALL) -D -m 0755 $(@D)/support/mender-device-identity \ - $(TARGET_DIR)/usr/share/mender/identity/mender-device-identity - $(foreach f,bootloader-integration hostinfo network os rootfs-type, \ - $(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \ - $(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f) - ) + $(INSTALL) -D -m 0644 $(@D)/support/demo.crt \ + $(TARGET_DIR)/etc/mender/server.crt $(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/device_type \ $(TARGET_DIR)/etc/mender/device_type - mkdir -p $(TARGET_DIR)/var/lib/mender - $(foreach f,$(MENDER_UPDATE_MODULES_FILES), \ - $(INSTALL) -D -m 0755 $(@D)/support/modules/$(notdir $(f)) \ - $(TARGET_DIR)/usr/share/mender/modules/v3/$(notdir $(f)) - ) + mkdir -p $(TARGET_DIR)/var/lib endef - MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES +# The vendored tiny-process-library and yaml-cpp are built as part of +# mender but never installed, so always link them statically. +MENDER_CONF_OPTS += \ + -DBUILD_SHARED_LIBS=OFF \ + -DMENDER_EMBED_MENDER_AUTH=OFF \ + -DMENDER_USE_DBUS=ON \ + -DMENDER_VERSION=$(MENDER_VERSION) + +ifeq ($(BR2_PACKAGE_GZIP),y) +MENDER_DEPENDENCIES += gzip +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_GZIP_COMPRESSION=ON +else +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_GZIP_COMPRESSION=OFF +endif + ifeq ($(BR2_PACKAGE_XZ),y) MENDER_DEPENDENCIES += xz +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_LZMA_COMPRESSION=ON else -MENDER_TAGS += nolzma +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_LZMA_COMPRESSION=OFF endif -ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBGLIB2),yy) -MENDER_DEPENDENCIES += libglib2 -define MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF - $(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.AuthenticationManager.conf \ - $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.AuthenticationManager.conf - - $(INSTALL) -D -m 0755 $(@D)/support/dbus/io.mender.UpdateManager.conf \ - $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.UpdateManager.conf -endef -MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF +ifeq ($(BR2_PACKAGE_ZSTD),y) +MENDER_DEPENDENCIES += zstd +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_ZSTD_COMPRESSION=ON else -MENDER_TAGS += nodbus +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_ZSTD_COMPRESSION=OFF endif -define MENDER_INSTALL_INIT_SYSTEMD - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender-client.service \ - $(TARGET_DIR)/usr/lib/systemd/system/mender-client.service +define MENDER_INSTALL_MODULES_GEN + $(MAKE) -C $(@D) DESTDIR=$(HOST_DIR) install-modules-gen +endef +MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_MODULES_GEN + +define MENDER_INSTALL_TARGET_CMDS + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) $(MENDER_INSTALL_TARGET_OPTS) endef -define MENDER_INSTALL_INIT_SYSV - $(INSTALL) -D -m 755 $(MENDER_PKGDIR)/S42mender \ - $(TARGET_DIR)/etc/init.d/S42mender +# Needed for rootfs-image-module +define MENDER_BUSYBOX_CONFIG_FIXUPS + $(call KCONFIG_ENABLE_OPT,CONFIG_FLOCK) + $(call KCONFIG_ENABLE_OPT,CONFIG_STAT) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_STAT_FORMAT) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_SYNC_FANCY) + $(call KCONFIG_ENABLE_OPT,CONFIG_WGET) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_WGET_HTTPS) + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_WGET_OPENSSL) endef -$(eval $(golang-package)) +$(eval $(cmake-package)) diff --git a/package/mender/server.crt b/package/mender/server.crt deleted file mode 100644 index 79a57e15e7..0000000000 --- a/package/mender/server.crt +++ /dev/null @@ -1,22 +0,0 @@ ------BEGIN CERTIFICATE----- -MIIBfTCCASOgAwIBAgIJAJOS76a0qWuZMAoGCCqGSM49BAMCMBsxGTAXBgNVBAMM -EGRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1MjQ2 -WjAbMRkwFwYDVQQDDBBkb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0CAQYIKoZI -zj0DAQcDQgAE7AVYis6MWGPGQYU1/tlLEnskRifDIhvkRb8Y4nQPekRkLkiBYYT3 -iJ46wHrnejbHaLstU9GRdKWOmOuU6HGdO6NQME4wHQYDVR0OBBYEFGOIU4q++Vz8 -9HuT1jg9V+wFeJcyMB8GA1UdIwQYMBaAFGOIU4q++Vz89HuT1jg9V+wFeJcyMAwG -A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAPLnEeWPNeN7eDCEYRitBfyO -X1yf2kzOm4ohBE5GY9gzAiBCq7HOSkzQDkelmQCCCpGXf/UwYNgQJjSoeGfk0j1a -TQ== ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIBhDCCASmgAwIBAgIJALQrf4QDot4IMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM -E3MzLmRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1 -MjQ2WjAeMRwwGgYDVQQDDBNzMy5kb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0C -AQYIKoZIzj0DAQcDQgAEEc/Y3T+l3DvINePkpvVZORMIdHVs29jgsl48ia7z/NRX -HlKtKxVGJyFN5Y7sBZeLgBYH3F4Bo3KfmxI7ad0tI6NQME4wHQYDVR0OBBYEFIUm -cip00QZYpe4ULflbGNJan+Y9MB8GA1UdIwQYMBaAFIUmcip00QZYpe4ULflbGNJa -n+Y9MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhANHij9VZBDHOUPaC -pFiagnWnYL2HBR72W1xTKQbrLLTXAiEAvpwA4HzSnGmLd3010+jqQuMRHArN5WaX -h0fy7niBbIQ= ------END CERTIFICATE----- diff --git a/support/testing/tests/package/test_mender.py b/support/testing/tests/package/test_mender.py index 14440c9527..44196d6a96 100644 --- a/support/testing/tests/package/test_mender.py +++ b/support/testing/tests/package/test_mender.py @@ -3,45 +3,69 @@ import os import infra.basetest +# gitlab-runner: large class TestMenderInfra(infra.basetest.BRTest): - config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ - """ - BR2_PACKAGE_MENDER=y - BR2_PACKAGE_HOST_MENDER_ARTIFACT=y - BR2_TARGET_ROOTFS_CPIO=y - BR2_ROOTFS_POST_BUILD_SCRIPT="{}" - BR2_ROOTFS_OVERLAY="{}" - """.format( - infra.filepath("tests/package/test_mender/post-build.sh"), - # overlay to add a fake 'fw_printenv', used by Mender - infra.filepath("tests/package/test_mender/rootfs-overlay")) + # infra.basetest.BASIC_TOOLCHAIN_CONFIG cannot be used as it does + # not include BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS + # needed by mender. This config also uses an ext4 rootfs as + # the default 128MB is too small for an image with mender and systemd. + config = \ + """ + BR2_x86_64=y + BR2_x86_corei7=y + BR2_TOOLCHAIN_EXTERNAL=y + BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE=y + BR2_INIT_SYSTEMD=y + BR2_SYSTEM_DHCP="eth0" + BR2_LINUX_KERNEL=y + BR2_LINUX_KERNEL_CUSTOM_VERSION=y + BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.59" + BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y + BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/mender/x86_64/linux.config" + BR2_PACKAGE_MENDER=y + BR2_ROOTFS_POST_BUILD_SCRIPT="{}" + BR2_ROOTFS_OVERLAY="{}" + BR2_PACKAGE_HOST_MENDER_ARTIFACT=y + BR2_TARGET_ROOTFS_EXT2=y + BR2_TARGET_ROOTFS_EXT2_4=y + BR2_TARGET_ROOTFS_EXT2_SIZE="256M" + # BR2_TARGET_ROOTFS_TAR is not set + """.format( + infra.filepath("tests/package/test_mender/post-build.sh"), + # overlay to add a fake 'fw_printenv', used by Mender + infra.filepath("tests/package/test_mender/rootfs-overlay")) def base_test_run(self): - cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") - self.emulator.boot(arch="armv5", kernel="builtin", - options=["-initrd", cpio_file]) + drive = os.path.join(self.builddir, "images", "rootfs.ext4") + kern = os.path.join(self.builddir, "images", "bzImage") + self.emulator.boot(arch="x86_64", + kernel=kern, + kernel_cmdline=["root=/dev/vda console=ttyS0 net.ifnames=0"], + options=["-cpu", "Nehalem", + "-m", "256M", + "-net", "nic,model=virtio", + "-net", "user", + "-drive", f"file={drive},if=virtio,format=raw"]) self.emulator.login() def run_mender_test(self): - self.assertRunOk("ps aux | egrep [m]ender") + + # mender-authd requires systemd-resolved.service to be up, + # so wait for eth0 to get its DHCP address before querying. + cmd = "while ! ifconfig eth0 | grep -q 'inet addr'; do sleep 1; done" + self.assertRunOk(cmd, timeout=30) + + output, _ = self.emulator.run("systemctl is-active mender-updated") + self.assertEqual(output[0], "active") # Check if a simple Mender command is correctly executed - self.assertRunOk("mender -log-level debug show-artifact") - self.assertRunOk("mender -log-level debug show-artifact | grep 'RUNTIME_TEST_ARTIFACT_NAME'") - cmd = "mender show-artifact 2>&1 | grep -i 'err'" # Check if no 'error' among the traces + self.assertRunOk("mender-update --log-level debug show-artifact") + self.assertRunOk("mender-update --log-level debug show-artifact | grep 'RUNTIME_TEST_ARTIFACT_NAME'") + cmd = "mender-update show-artifact 2>&1 | grep -i 'err'" # Check if no 'error' among the traces _, exit_code = self.emulator.run(cmd) self.assertEqual(exit_code, 1) -class TestMenderRW(TestMenderInfra): - def test_run(self): - TestMenderInfra.base_test_run(self) - - # Check if the Daemon is running - self.assertRunOk("ls /var/run/mender.pid") - self.run_mender_test() - - class TestMenderRO(TestMenderInfra): config = \ """ @@ -51,22 +75,4 @@ class TestMenderRO(TestMenderInfra): def test_run(self): TestMenderInfra.base_test_run(self) - - # Check if the Daemon is running - self.assertRunOk("ls /var/run/mender.pid") - self.run_mender_test() - - -# gitlab-runner: large -class TestMenderSystemd(TestMenderInfra): - config = \ - """ - {} - BR2_INIT_SYSTEMD=y - """.format(TestMenderInfra.config) - - def test_run(self): - TestMenderInfra.base_test_run(self) - output, _ = self.emulator.run("systemctl is-active mender-client") - self.assertEqual(output[0], "active") self.run_mender_test() -- 2.56.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v3 5/6] package/mender: bump to version 5.2.0 2026-10-28 11:33 ` [Buildroot] [PATCH v3 5/6] package/mender: bump to version 5.2.0 Adam Duskett @ 2026-10-28 14:23 ` Adam Duskett 0 siblings, 0 replies; 9+ messages in thread From: Adam Duskett @ 2026-10-28 14:23 UTC (permalink / raw) To: buildroot; +Cc: Angelo Compagnucci [-- Attachment #1.1: Type: text/plain, Size: 44796 bytes --] All; This was tested against libopenssl 4.0.2 using Bernd's patch here: https://patchwork.buildroot.org/project/buildroot/patch/20261011130058.3443432-53-bernd@kuhls.net/ With a boost update patches applied from this series: https://patchwork.buildroot.org/project/buildroot/list/?series=1112&archive=both&state=* Testing went as follows: - make mender_x86_64_efi_defconfig - Add openssh to the image - Boot using the following command: ``` qemu-system-x86_64 \ -enable-kvm \ -display gtk,gl=on,show-cursor=on \ -m 512M \ -M q35,accel=kvm \ -cpu host \ -netdev bridge,br=virbr0,id=net0,helper="/usr/libexec/qemu-bridge-helper" \ -device virtio-net-pci,netdev=net0 \ -net user \ -drive file=output/images/disk.img,if=virtio,format=raw \ -bios /usr/share/edk2/ovmf/OVMF_CODE.fd ``` Modify the ServerURL entry in /etc/mender/mender.conf to point to my local mender server with the address of "https://192.168.178.243" Replace /etc/mender/server.crt with my local development certificate. The qemu device appears properly on my local testing server and I am able to push updates to the running virtual image. On Wed, 28 Oct 2026 at 12:33, Adam Duskett < adam.duskett@amarulasolutions.com> wrote: > Starting with Mender version 4, the program is rewritten from Go to C++ > using > CMake. > > The current package provided by Buildroot is 3.5.3, which is quite old, > having > been released on 12/6/2024. Since then, several changes have occurred, > necessitating a substantially large patch with many changes all at once. > > The following is a list of changes: > > MAJOR: > - Mender is now a C++ project > - Mender depends on systemd > - Drops sysvinit support > - Mender is split into two binaries: > - mender-authd > - mender-updated > > MINOR: > > - Drop the 0001-openssl-v4-update.patch. > - Add 0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch > Which allowd building without OpenSSL engine support. > > This patch is tested against OpenSSL 4.0.2 which is not yet applied > to the master branch. > > - The following busyboxy options are required by the rootfs module and > are > enabled by default: > - flock > - stat > - stat_format > - sync_fancy > - wget > - wget_https > - wget_openssl > Note: While sync_fancy isn't strictly necessary, enabling this > feature > prevents several messages about sync ignoring all arguments. > > - New dependencies are as follows: > - boost > - dbus > - libarchive > - libglib2 > - lmdb > - openssl > - systemd > - yaml-cpp > > The configs/mender_x86_64_efi_defconfig file is updated to > use systemd by default. > > Mender is configured with -DBUILD_SHARED_LIBS=OFF as the bundled > libyaml and tiny-process-library .so files are not installed when > -DBUILD_SHARED_LIBS=ON is selected. > > The support/testing/tests/package/test_mender.py is updated: > - Uses systemd > - Bumped kernel version to 6.18.59 > - Adds a simple network as mender-authd requires network-online.target > - Drops sysvinit tests > > Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> > --- > v2 -> v3: > - Removed documentation update (see first patch in this series) > - Use an external toolchain for mender_x86_64_efi_defconfig [Thomas] > - Dropped jq selection for mender_x86_64_efi_defconfig [Thomas] > - Dropped yaml-cpp selection (bundled and linked statically in mender > source code) > - Cleaned up various make commands [Thomas] > - Removed kernel fragment used during debugging [Thomas] > - Add 0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch > [Thomas] > > board/mender/x86_64/linux.config | 11 + > configs/mender_x86_64_efi_defconfig | 7 +- > package/mender/0001-openssl-v4-update.patch | 191 ------------------ > ...o-platform-openssl-crypto.cpp-fix-bu.patch | 69 +++++++ > package/mender/Config.in | 39 ++-- > package/mender/S42mender | 44 ---- > package/mender/mender-client.service | 13 -- > package/mender/mender.hash | 52 ++--- > package/mender/mender.mk | 146 ++++++------- > package/mender/server.crt | 22 -- > support/testing/tests/package/test_mender.py | 96 ++++----- > 11 files changed, 249 insertions(+), 441 deletions(-) > delete mode 100644 package/mender/0001-openssl-v4-update.patch > create mode 100644 > package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch > delete mode 100644 package/mender/S42mender > delete mode 100644 package/mender/mender-client.service > delete mode 100644 package/mender/server.crt > > diff --git a/board/mender/x86_64/linux.config > b/board/mender/x86_64/linux.config > index b758c6d45a..f980ec39ab 100644 > --- a/board/mender/x86_64/linux.config > +++ b/board/mender/x86_64/linux.config > @@ -1,4 +1,8 @@ > CONFIG_SYSVIPC=y > +CONFIG_CGROUPS=y > +CONFIG_CGROUP_SCHED=y > +CONFIG_CFS_BANDWIDTH=y > +CONFIG_USER_NS=y > CONFIG_SMP=y > CONFIG_HYPERVISOR_GUEST=y > CONFIG_PARAVIRT=y > @@ -15,18 +19,22 @@ CONFIG_NETFILTER_XTABLES_LEGACY=y > CONFIG_IP_NF_IPTABLES_LEGACY=y > CONFIG_IP_NF_IPTABLES=y > CONFIG_IP_NF_FILTER=y > +CONFIG_NET_SCHED=y > +CONFIG_NET_SCH_FQ_CODEL=y > CONFIG_CFG80211=m > CONFIG_CFG80211_WEXT=y > CONFIG_MAC80211=m > CONFIG_PCI=y > CONFIG_DEVTMPFS=y > CONFIG_DEVTMPFS_MOUNT=y > +CONFIG_DMI_SYSFS=y > CONFIG_VIRTIO_BLK=y > CONFIG_BLK_DEV_SD=y > CONFIG_SCSI_VIRTIO=y > CONFIG_ATA=y > CONFIG_NETDEVICES=y > CONFIG_VIRTIO_NET=y > +CONFIG_E1000E=y > CONFIG_ATH9K=m > CONFIG_ATH9K_HTC=m > CONFIG_CARL9170=m > @@ -57,8 +65,11 @@ CONFIG_VIRTIO_INPUT=y > CONFIG_VIRTIO_MMIO=y > CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y > CONFIG_EXT4_FS=y > +CONFIG_AUTOFS_FS=y > CONFIG_FUSE_FS=y > CONFIG_VFAT_FS=y > +CONFIG_TMPFS=y > +CONFIG_TMPFS_POSIX_ACL=y > CONFIG_SQUASHFS=y > CONFIG_NLS_CODEPAGE_437=y > CONFIG_NLS_ISO8859_1=y > diff --git a/configs/mender_x86_64_efi_defconfig > b/configs/mender_x86_64_efi_defconfig > index f10a461770..9cd68e5f62 100644 > --- a/configs/mender_x86_64_efi_defconfig > +++ b/configs/mender_x86_64_efi_defconfig > @@ -1,7 +1,6 @@ > BR2_x86_64=y > -BR2_PACKAGE_HOST_LINUX_HEADERS_CUSTOM_6_18=y > -BR2_INIT_SYSV=y > -BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y > +BR2_TOOLCHAIN_EXTERNAL=y > +BR2_INIT_SYSTEMD=y > BR2_TARGET_GENERIC_GETTY_PORT="ttyS0" > BR2_ROOTFS_OVERLAY="board/mender/x86_64/overlay" > BR2_ROOTFS_POST_BUILD_SCRIPT="board/mender/x86_64/post-build.sh" > @@ -42,7 +41,7 @@ BR2_PACKAGE_MENDER_GRUBENV=y > > BR2_PACKAGE_MENDER_GRUBENV_DEFINES="board/mender/x86_64/mender_grubenv_defines" > BR2_TARGET_ROOTFS_EXT2=y > BR2_TARGET_ROOTFS_EXT2_4=y > -BR2_TARGET_ROOTFS_EXT2_SIZE="128M" > +BR2_TARGET_ROOTFS_EXT2_SIZE="256M" > # BR2_TARGET_ROOTFS_TAR is not set > BR2_TARGET_GRUB2=y > BR2_TARGET_GRUB2_X86_64_EFI=y > diff --git a/package/mender/0001-openssl-v4-update.patch > b/package/mender/0001-openssl-v4-update.patch > deleted file mode 100644 > index 65443614d5..0000000000 > --- a/package/mender/0001-openssl-v4-update.patch > +++ /dev/null > @@ -1,191 +0,0 @@ > -Description: Fix build compatibility with OpenSSL 4.0 > - Include <openssl/x509v3.h> in hostname.c and hostname.go before checking > - #ifndef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT, preventing fallback to > - legacy OpenSSL < 1.0.2 code that attempts to directly access opaque > - ASN1_STRING fields. > - Also add preprocessor guards around deprecated protocol methods > - (SSLv3_method, TLSv1_method, TLSv1_1_method, TLSv1_2_method) in shim.c > - and ENGINE functions (ENGINE_by_id, ENGINE_init, ENGINE_free, > - ENGINE_finish, ENGINE_load_private_key, ENGINE_load_builtin_engines) > - in shim.c, shim.h, engine.go, key.go to prevent implicit declaration > - and undefined reference errors when building against OpenSSL 4.0. > -Author: Frank Heimes <frank.heimes@canonical.com> > - > -Downloaded from Ubuntu: > - > https://git.launchpad.net/ubuntu/+source/golang-github-mendersoftware-openssl/tree/debian/patches/0004-openssl-v4-update.patch?h=applied/ubuntu/stonking-devel > - > -Upstream: not applicable, upstream moved to c++ in newer versions > - > -[Bernd: rebased for vendored download by buildroot infra] > -Signed-off-by: Bernd Kuhls <bernd@kuhls.net> > - > -diff -uNr mender-3.5.3.orig/vendor/ > github.com/mendersoftware/openssl/engine.go mender-3.5.3/vendor/ > github.com/mendersoftware/openssl/engine.go > ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/engine.go > 2024-05-24 12:07:27.000000000 +0200 > -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/engine.go > 2026-09-20 18:37:50.270612314 +0200 > -@@ -15,6 +15,7 @@ > - package openssl > - > - /* > -+#include "shim.h" > - #include "openssl/engine.h" > - */ > - import "C" > -@@ -33,18 +34,18 @@ > - cname := C.CString(name) > - defer C.free(unsafe.Pointer(cname)) > - e := &Engine{ > -- e: C.ENGINE_by_id(cname), > -+ e: C.X_ENGINE_by_id(cname), > - } > - if e.e == nil { > - return nil, fmt.Errorf("engine %s missing", name) > - } > -- if C.ENGINE_init(e.e) == 0 { > -- C.ENGINE_free(e.e) > -+ if C.X_ENGINE_init(e.e) == 0 { > -+ C.X_ENGINE_free(e.e) > - return nil, fmt.Errorf("engine %s not initialized", name) > - } > - runtime.SetFinalizer(e, func(e *Engine) { > -- C.ENGINE_finish(e.e) > -- C.ENGINE_free(e.e) > -+ C.X_ENGINE_finish(e.e) > -+ C.X_ENGINE_free(e.e) > - }) > - return e, nil > - } > -diff -uNr mender-3.5.3.orig/vendor/ > github.com/mendersoftware/openssl/hostname.c mender-3.5.3/vendor/ > github.com/mendersoftware/openssl/hostname.c > ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/hostname.c > 2024-05-24 12:07:27.000000000 +0200 > -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/hostname.c > 2026-09-20 18:32:37.854514981 +0200 > -@@ -6,6 +6,7 @@ > - */ > - > - #include <openssl/x509.h> > -+#include <openssl/x509v3.h> > - > - #ifndef X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT > - > -diff -uNr mender-3.5.3.orig/vendor/ > github.com/mendersoftware/openssl/key.go mender-3.5.3/vendor/ > github.com/mendersoftware/openssl/key.go > ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/key.go > 2024-05-24 12:07:27.000000000 +0200 > -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/key.go > 2026-09-20 18:38:13.462370202 +0200 > -@@ -303,7 +303,7 @@ > - keyID := C.CString(id) > - defer C.free(unsafe.Pointer(keyID)) > - > -- key := C.ENGINE_load_private_key(e.e, keyID, nil, nil) > -+ key := C.X_ENGINE_load_private_key(e.e, keyID, nil, nil) > - if key == nil { > - return nil, errors.New("cannot load private key, > ENGINE_load_private_key error") > - } > -diff -uNr mender-3.5.3.orig/vendor/ > github.com/mendersoftware/openssl/shim.c mender-3.5.3/vendor/ > github.com/mendersoftware/openssl/shim.c > ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/shim.c > 2024-05-24 12:07:27.000000000 +0200 > -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/shim.c > 2026-09-20 18:36:02.855038372 +0200 > -@@ -382,7 +382,9 @@ > - int rc = 0; > - > - OPENSSL_config(NULL); > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) > - ENGINE_load_builtin_engines(); > -+#endif > - SSL_load_error_strings(); > - SSL_library_init(); > - OpenSSL_add_all_algorithms(); > -@@ -403,6 +405,46 @@ > - return 0; > - } > - > -+ENGINE *X_ENGINE_by_id(const char *id) { > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) > -+ return ENGINE_by_id(id); > -+#else > -+ return NULL; > -+#endif > -+} > -+ > -+int X_ENGINE_init(ENGINE *e) { > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) > -+ return ENGINE_init(e); > -+#else > -+ return 0; > -+#endif > -+} > -+ > -+int X_ENGINE_free(ENGINE *e) { > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) > -+ return ENGINE_free(e); > -+#else > -+ return 0; > -+#endif > -+} > -+ > -+int X_ENGINE_finish(ENGINE *e) { > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) > -+ return ENGINE_finish(e); > -+#else > -+ return 0; > -+#endif > -+} > -+ > -+EVP_PKEY *X_ENGINE_load_private_key(ENGINE *e, const char *key_id, > UI_METHOD *ui_method, void *callback_data) { > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && !defined(OPENSSL_NO_ENGINE) > -+ return ENGINE_load_private_key(e, key_id, ui_method, > callback_data); > -+#else > -+ return NULL; > -+#endif > -+} > -+ > - void * X_OPENSSL_malloc(size_t size) { > - return OPENSSL_malloc(size); > - } > -@@ -480,7 +522,7 @@ > - } > - > - const SSL_METHOD *X_SSLv3_method() { > --#ifndef OPENSSL_NO_SSL3_METHOD > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && > !defined(OPENSSL_NO_SSL3_METHOD) && !defined(OPENSSL_NO_DEPRECATED_1_1_0) > && !defined(OPENSSL_NO_DEPRECATED_3_0) > - return SSLv3_method(); > - #else > - return NULL; > -@@ -488,11 +530,15 @@ > - } > - > - const SSL_METHOD *X_TLSv1_method() { > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && > !defined(OPENSSL_NO_TLS1_METHOD) && !defined(OPENSSL_NO_DEPRECATED_1_1_0) > && !defined(OPENSSL_NO_DEPRECATED_3_0) > - return TLSv1_method(); > -+#else > -+ return NULL; > -+#endif > - } > - > - const SSL_METHOD *X_TLSv1_1_method() { > --#if defined(TLS1_1_VERSION) && !defined(OPENSSL_SYSNAME_MACOSX) > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && defined(TLS1_1_VERSION) && > !defined(OPENSSL_SYSNAME_MACOSX) && !defined(OPENSSL_NO_TLS1_1_METHOD) && > !defined(OPENSSL_NO_DEPRECATED_1_1_0) && !defined(OPENSSL_NO_DEPRECATED_3_0) > - return TLSv1_1_method(); > - #else > - return NULL; > -@@ -500,7 +546,7 @@ > - } > - > - const SSL_METHOD *X_TLSv1_2_method() { > --#if defined(TLS1_2_VERSION) && !defined(OPENSSL_SYSNAME_MACOSX) > -+#if OPENSSL_VERSION_NUMBER < 0x40000000L && defined(TLS1_2_VERSION) && > !defined(OPENSSL_SYSNAME_MACOSX) && !defined(OPENSSL_NO_TLS1_2_METHOD) && > !defined(OPENSSL_NO_DEPRECATED_1_1_0) && !defined(OPENSSL_NO_DEPRECATED_3_0) > - return TLSv1_2_method(); > - #else > - return NULL; > -diff -uNr mender-3.5.3.orig/vendor/ > github.com/mendersoftware/openssl/shim.h mender-3.5.3/vendor/ > github.com/mendersoftware/openssl/shim.h > ---- mender-3.5.3.orig/vendor/github.com/mendersoftware/openssl/shim.h > 2024-05-24 12:07:27.000000000 +0200 > -+++ mender-3.5.3/vendor/github.com/mendersoftware/openssl/shim.h > 2026-09-20 18:38:33.117854985 +0200 > -@@ -40,6 +40,13 @@ > - /* shim methods */ > - extern int X_shim_init(); > - > -+/* Engine methods */ > -+extern ENGINE *X_ENGINE_by_id(const char *id); > -+extern int X_ENGINE_init(ENGINE *e); > -+extern int X_ENGINE_free(ENGINE *e); > -+extern int X_ENGINE_finish(ENGINE *e); > -+extern EVP_PKEY *X_ENGINE_load_private_key(ENGINE *e, const char > *key_id, UI_METHOD *ui_method, void *callback_data); > -+ > - /* Library methods */ > - extern void X_OPENSSL_free(void *ref); > - extern void *X_OPENSSL_malloc(size_t size); > diff --git > a/package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch > b/package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch > new file mode 100644 > index 0000000000..e596f1b5f3 > --- /dev/null > +++ > b/package/mender/0001-src-common-crypto-platform-openssl-crypto.cpp-fix-bu.patch > @@ -0,0 +1,69 @@ > +From dcc218c6857e080e760b4a9c04acc79390151eb3 Mon Sep 17 00:00:00 2001 > +From: Adam Duskett <adam.duskett@amarulasolutions.com> > +Date: Wed, 28 Oct 2026 12:07:07 +0100 > +Subject: [PATCH] src/common/crypto/platform/openssl/crypto.cpp: fix build > + without engine support > + > +OpenSSL 4.0 removed ENGINE support entirely and always defines > +OPENSSL_NO_ENGINE. Its engine.h still declares the ENGINE_* functions > +for source compatibility, but only provides stub definitions when > +OPENSSL_ENGINE_STUBS is defined, so linking mender-auth fails with: > + > + undefined reference to `ENGINE_by_id' > + undefined reference to `ENGINE_free' > + undefined reference to `ENGINE_init' > + undefined reference to `ENGINE_load_builtin_engines' > + undefined reference to `ENGINE_load_private_key' > + > +The same happens with OpenSSL 3.x configured with no-engine. > + > +Guard the ENGINE calls with OPENSSL_NO_ENGINE, and return an error > +from LoadFromHSMEngine() when an SSL engine is configured but not > +available. > + > +Upstream: https://github.com/mendersoftware/mender/pull/2037 > +Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> > +--- > + src/common/crypto/platform/openssl/crypto.cpp | 9 +++++++++ > + 1 file changed, 9 insertions(+) > + > +diff --git a/src/common/crypto/platform/openssl/crypto.cpp > b/src/common/crypto/platform/openssl/crypto.cpp > +index b31e6c8..5f6a4b9 100644 > +--- a/src/common/crypto/platform/openssl/crypto.cpp > ++++ b/src/common/crypto/platform/openssl/crypto.cpp > +@@ -103,9 +103,11 @@ auto bn_free = [](BIGNUM *bn) { > + } > + }; > + auto engine_free_func = [](ENGINE *e) { > ++#ifndef OPENSSL_NO_ENGINE > + if (e) { > + ENGINE_free(e); > + } > ++#endif // OPENSSL_NO_ENGINE > + }; > + > + auto password_callback = [](char *buf, int size, int rwflag, void *u) { > +@@ -153,6 +155,12 @@ string GetOpenSSLErrorMessage() { > + } > + > + ExpectedPrivateKey LoadFromHSMEngine(const Args &args) { > ++#ifdef OPENSSL_NO_ENGINE > ++ return expected::unexpected(MakeError( > ++ SetupError, > ++ "Failed to get the " + args.ssl_engine > ++ + " engine. OpenSSL was built without engine > support")); > ++#else > + log::Trace("Loading the private key from HSM"); > + > + ENGINE_load_builtin_engines(); > +@@ -190,6 +198,7 @@ ExpectedPrivateKey LoadFromHSMEngine(const Args > &args) { > + auto handle = unique_ptr<OpenSSLResourceHandle, void > (*)(OpenSSLResourceHandle *)>( > + new OpenSSLResourceHandle {std::move(engine)}, > resource_handle_free_func); > + return std::make_unique<PrivateKey>(std::move(private_key), > std::move(handle)); > ++#endif // OPENSSL_NO_ENGINE > + } > + > + #ifdef MENDER_CRYPTO_OPENSSL_LEGACY > +-- > +2.56.0 > + > diff --git a/package/mender/Config.in b/package/mender/Config.in > index c9b9d0b757..8f16e2312f 100644 > --- a/package/mender/Config.in > +++ b/package/mender/Config.in > @@ -1,9 +1,20 @@ > config BR2_PACKAGE_MENDER > bool "mender" > - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS > - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS > - depends on BR2_TOOLCHAIN_HAS_THREADS > - select BR2_PACKAGE_HOST_GO > + depends on BR2_INSTALL_LIBSTDCPP > + depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_7 # (bundled yaml-cpp) > + depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL # boost-log > + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # > boost-log > + depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-log > + depends on BR2_USE_MMU # libglib2 > + depends on BR2_USE_WCHAR # boost, libarchive, libglib2 > + depends on BR2_PACKAGE_SYSTEMD > + select BR2_PACKAGE_BOOST > + select BR2_PACKAGE_BOOST_FILESYSTEM > + select BR2_PACKAGE_BOOST_LOG > + select BR2_PACKAGE_CA_CERTIFICATES > + select BR2_PACKAGE_LIBARCHIVE > + select BR2_PACKAGE_LIBGLIB2 > + select BR2_PACKAGE_LMDB > select BR2_PACKAGE_OPENSSL > select BR2_PACKAGE_OPENSSL_FORCE_LIBOPENSSL > select BR2_PACKAGE_LIBOPENSSL_ENGINES > @@ -21,16 +32,13 @@ config BR2_PACKAGE_MENDER > - uboot-tools must be selected. > - fw_printenv must be functional on the device. > The Mender Uboot patches are at: > - https://github.com/mendersoftware/meta-mender/ > + > https://github.com/mendersoftware/meta-mender/tree/master/meta-mender-core/recipes-bsp/u-boot/patches > > For more information on Manual U-Boot integration, see: > - > https://docs.mender.io/2.6/system-updates-yocto-project/board-integration/bootloader-support/u-boot/manual-u-boot-integration > + > https://docs.mender.io/3.4/system-updates-yocto-project/board-integration/bootloader-support/u-boot/manual-u-boot-integration > > For systems using Grub2 as the bootloader: > - Mender depends on the mender-grubenv package. > - - The mender-grubenv package provides a fw_printenv script, > - which is not compatible with the uboot-tools fw_printenv > - script. > > The mender project recommends using uboot to load Grub2 as a > secondary bootloader whenever possible. Using Grub2 as a > @@ -39,7 +47,12 @@ config BR2_PACKAGE_MENDER > > https://github.com/mendersoftware/mender > > -comment "mender needs a toolchain w/ threads" > - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS > - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS > - depends on !BR2_TOOLCHAIN_HAS_THREADS > +comment "mender needs systemd" > + depends on !BR2_PACKAGE_SYSTEMD > + > +comment "mender needs a toolchain w/ C++, NPTL, wchar, not affected by > GCC bug 64735" > + depends on BR2_USE_MMU > + depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS > + depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 > + depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \ > + !BR2_TOOLCHAIN_HAS_THREADS_NPTL > diff --git a/package/mender/S42mender b/package/mender/S42mender > deleted file mode 100644 > index 70116ed4eb..0000000000 > --- a/package/mender/S42mender > +++ /dev/null > @@ -1,44 +0,0 @@ > -#!/bin/sh > -# > -# Starts mender service. > -# > -DAEMON="mender" > -DAEMON_PATH="/usr/bin/mender" > -PIDFILE="/var/run/${DAEMON}.pid" > -DAEMON_ARGS="daemon" > - > -start() { > - printf "Starting mender service: " > - umask 077 > - start-stop-daemon -bmSqp "$PIDFILE" -x ${DAEMON_PATH} -- > ${DAEMON_ARGS} > - status=$? > - [ "${status}" = 0 ] && echo "OK" || echo "FAIL" > -} > - > -stop() { > - printf "Stopping mender service: " > - start-stop-daemon -Kqp "$PIDFILE" > - status=$? > - [ "${status}" = 0 ] && echo "OK" || echo "FAIL" > -} > -restart() { > - stop > - start > -} > - > -case "$1" in > - start) > - start > - ;; > - stop) > - stop > - ;; > - restart|reload) > - restart > - ;; > - *) > - echo "Usage: $0 {start|stop|reload|restart}" > - exit 1 > -esac > - > -exit $? > diff --git a/package/mender/mender-client.service > b/package/mender/mender-client.service > deleted file mode 100644 > index 47e439993c..0000000000 > --- a/package/mender/mender-client.service > +++ /dev/null > @@ -1,13 +0,0 @@ > -[Unit] > -Description=Mender OTA update service > -After=systemd-resolved.service > - > -[Service] > -Type=idle > -User=root > -Group=root > -ExecStart=/usr/bin/mender daemon > -Restart=on-abort > - > -[Install] > -WantedBy=multi-user.target > diff --git a/package/mender/mender.hash b/package/mender/mender.hash > index 17fe08c827..1aa8fb63bd 100644 > --- a/package/mender/mender.hash > +++ b/package/mender/mender.hash > @@ -1,47 +1,27 @@ > # Locally computed: > -sha256 35e369759b8d4f012153e538b5daf1e0cebe842205811e708332c5a092270ac5 > mender-3.5.3-go2.tar.gz > +sha256 436ae559358f29c672b98ca77b953936ba6ef51455466fb5ed0ced7ae77fc226 > mender-5.2.0.tar.gz > +sha256 4d3409e4f8f7f3b9de5da7fee7c03e36a2381a02b2e318702485fc993a735cc9 > LIC_FILES_CHKSUM.sha256 > > # Vendor licenses > # Generated with sed '/^[A-Za-z0-9_]/s/^/sha256 /' > LIC_FILES_CHKSUM.sha256 > > # Apache-2.0 license. > -sha256 d0f406b04e7901e6b4076bdf5fd20f9d7f04fc41681069fd8954413ac6295688 > LICENSE > -sha256 52b2497ce07650b825015e80ca7a5d40c360c04c530234ca6d950b0f98bca23a > vendor/github.com/mendersoftware/mender-artifact/LICENSE > -sha256 <http://github.com/mendersoftware/mender-artifact/LICENSE-sha256> > 73ba74dfaa520b49a401b5d21459a8523a146f3b7518a833eea5efa85130bf68 vendor/ > github.com/mendersoftware/openssl/LICENSE > -sha256 <http://github.com/mendersoftware/openssl/LICENSE-sha256> > cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 vendor/ > github.com/minio/sha256-simd/LICENSE > -sha256 <http://github.com/minio/sha256-simd/LICENSE-sha256> > 8f5d89b47d7a05a199b77b7e0f362dad391d451ebda4ef48ba11c50c071564c7 vendor/ > github.com/mendersoftware/progressbar/LICENSE > +sha256 <http://github.com/mendersoftware/progressbar/LICENSE+sha256> > d7e8fd4ad05371007d60285c309ba7a7ce3e61029b843f949fbb9ec79dc9eb47 LICENSE > # > -# BSD 2 Clause license. > -sha256 8d427fd87bc9579ea368fde3d49f9ca22eac857f91a9dec7e3004bdfab7dee86 > vendor/github.com/pkg/errors/LICENSE > -sha256 <http://github.com/pkg/errors/LICENSE-sha256> > e4646a82a976369d7ae8f6ed5c11d35dc0af18433a8ccc24c85b459ad8b95128 vendor/ > github.com/godbus/dbus/LICENSE > -sha256 <http://github.com/godbus/dbus/LICENSE-sha256> > 2be1b548b0387ca8948e1bb9434e709126904d15f622cc2d0d8e7f186e4d122d vendor/ > github.com/gorilla/websocket/LICENSE > +# MIT clause license > +sha256 d64d1b4d948aa7751cfb613c02dc246aab7b358d760053e6580f01affe946906 > src/common/vendor/json/LICENSE.MIT > +sha256 7920c8620b1e073a79a667c44f9149c25724eb9f0f6b220b3c8d9564e2d40a43 > src/common/vendor/json/docs/mkdocs/docs/home/license.md > +sha256 2aefa40fa7e1c0fab18fbad5b15b02406eea1399d3cca42cc1012b65b4a56f74 > src/common/vendor/tiny-process-library/LICENSE > +sha256 aa6fcc27be034e41e21dd832f9175bfe694a48491d9e14ff0fa278e19ad14f1b > src/common/vendor/yaml-cpp/LICENSE > # > -# BSD 3 Clause license. > -sha256 0d9e582ee4bff57bf1189c9e514e6da7ce277f9cd3bc2d488b22fbb39a6d87cf > vendor/github.com/klauspost/compress/LICENSE > -sha256 <http://github.com/klauspost/compress/LICENSE-sha256> > 2eb550be6801c1ea434feba53bf6d12e7c71c90253e0a9de4a4f46cf88b56477 vendor/ > github.com/pmezard/go-difflib/LICENSE > -sha256 <http://github.com/pmezard/go-difflib/LICENSE-sha256> > 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/ > golang.org/x/sys/LICENSE > -sha256 <http://golang.org/x/sys/LICENSE-sha256> > 0634b008cee55ca01f0888d2f5aba2d34e66c3f52c31a4e16a5d5d33d0c2a03e vendor/ > github.com/bmatsuo/lmdb-go/LICENSE.md > -sha256 <http://github.com/bmatsuo/lmdb-go/LICENSE.md-sha256> > 87640bc4df2ceb1559f268a3db1ba859ab780f7ba5b1b4545173d4680a3d918b vendor/ > github.com/remyoudompheng/go-liblzma/LICENSE > -sha256 <http://github.com/remyoudompheng/go-liblzma/LICENSE-sha256> > 2d36597f7117c38b006835ae7f537487207d8ec407aa9d9980794b2030cbc067 vendor/ > golang.org/x/term/LICENSE > +# UNLICENSE > +sha256 7e12e5df4bae12cb21581ba157ced20e1986a0508dd10d0e8a4ab9a4cf94e85c > src/common/vendor/lmdbxx/UNLICENSE > # > -# ISC license. > -sha256 1b93a317849ee09d3d7e4f1d20c2b78ddb230b4becb12d7c224c927b9d470251 > vendor/github.com/davecgh/go-spew/LICENSE > +# CC0 1.0 Universal > +sha256 a2010f343487d3f7618affe54f789f5487602331c0a8d03f49e9a7c547cf0499 > src/common/vendor/expected/COPYING > # > -# MIT license. > -sha256 6d2de1cde19c4d2bd8bcd9aaa1d581f4cfa3db9cf71896140330eaa2f2687685 > vendor/github.com/klauspost/pgzip/LICENSE > -sha256 <http://github.com/klauspost/pgzip/LICENSE-sha256> > f69f157b0be75da373605dbc8bbf142e8924ee82d8f44f11bcaf351335bf98cf vendor/ > github.com/klauspost/compress/internal/snapref/LICENSE > -sha256 > <http://github.com/klauspost/compress/internal/snapref/LICENSE-sha256> > f566a9f97bacdaf00d9f21dd991e81dc11201c4e016c86b470799429a1c9a79c vendor/ > github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt > -sha256 5d966570d7a442d4e969892860a914e542c97f262c873baee8f0aa48e1f40212 > vendor/github.com/klauspost/cpuid/v2/LICENSE > -sha256 <http://github.com/klauspost/cpuid/v2/LICENSE-sha256> > 51a0c9ec7f8b7634181b8d4c03e5b5d204ac21d6e72f46c313973424664b2e6b vendor/ > github.com/sirupsen/logrus/LICENSE > -sha256 <http://github.com/sirupsen/logrus/LICENSE-sha256> > f8e536c1c7b695810427095dc85f5f80d44ff7c10535e8a9486cf393e2599189 vendor/ > github.com/stretchr/testify/LICENSE > -sha256 <http://github.com/stretchr/testify/LICENSE-sha256> > ffa15bdce332058a03a1d923910864fb6e58bf6df66a0e3914284725b327183e vendor/ > github.com/ungerik/go-sysfs/LICENSE > -sha256 <http://github.com/ungerik/go-sysfs/LICENSE-sha256> > da277af11b85227490377fbcac6afccc68be560c4fff36ac05ca62de55345fd7 vendor/ > github.com/urfave/cli/v2/LICENSE > -sha256 <http://github.com/urfave/cli/v2/LICENSE-sha256> > b2663894033a05fd80261176cd8da1d72546e25842d5c1abcc852ca23b6b61b0 vendor/ > github.com/stretchr/objx/LICENSE > -sha256 <http://github.com/stretchr/objx/LICENSE-sha256> > d18f6323b71b0b768bb5e9616e36da390fbd39369a81807cca352de4e4e6aa0b vendor/ > gopkg.in/yaml.v3/LICENSE > -sha256 <http://gopkg.in/yaml.v3/LICENSE-sha256> > 08eab1118c80885fa1fa6a6dd7303f65a379fcb3733e063d20d1bbc2c76e6fa1 vendor/ > github.com/mattn/go-isatty/LICENSE > +# Boost Software License > +sha256 c9bff75738922193e67fa726fa225535870d2aa1059f91452c411736284ad566 > src/common/vendor/optional-lite/LICENSE.txt > # > -# OpenLDAP Public License > -sha256 310fe25c858a9515fc8c8d7d1f24a67c9496f84a91e0a0e41ea9975b1371e569 > vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md > - > -# sha256 of all the vendor licenses combined > -sha256 86407bd98d5ea7fb0f09ab771c3333e975d06565b809a2dd95f864dc1e3a09b3 > LIC_FILES_CHKSUM.sha256 > +# BSD-3 > +sha256 9702de7e4117a8e2b20dafab11ffda58c198aede066406496bef670d40a22138 > src/common/vendor/yaml-cpp/test/googletest-1.16.0/LICENSE > diff --git a/package/mender/mender.mk b/package/mender/mender.mk > index 76dc28d547..e20fec8aa9 100644 > --- a/package/mender/mender.mk > +++ b/package/mender/mender.mk > @@ -4,107 +4,107 @@ > # > > ################################################################################ > > -MENDER_VERSION = 3.5.3 > -MENDER_SITE = $(call github,mendersoftware,mender,$(MENDER_VERSION)) > -MENDER_LICENSE = Apache-2.0, BSD-2-Clause, BSD-3-Clause, ISC, MIT, > OLDAP-2.8 > +MENDER_VERSION = 5.2.0 > +MENDER_SITE = > https://github.com/mendersoftware/mender/releases/download/$(MENDER_VERSION) > +MENDER_LICENSE = Apache-2.0, BSL-1.0, BSD-3-Clause, CC0-1.0, MIT, > Unlicense > MENDER_CPE_ID_VENDOR = northern.tech > -# CVE-2024-46948 only affects mender-server > -MENDER_IGNORE_CVES = CVE-2024-46948 > > # Vendor license paths generated with: > # awk '{print $2}' LIC_FILES_CHKSUM.sha256 | grep vendor > MENDER_LICENSE_FILES = \ > LICENSE \ > LIC_FILES_CHKSUM.sha256 \ > - vendor/github.com/mendersoftware/mender-artifact/LICENSE \ > - vendor/github.com/mendersoftware/openssl/LICENSE \ > - vendor/github.com/minio/sha256-simd/LICENSE \ > - vendor/github.com/mendersoftware/progressbar/LICENSE \ > - vendor/github.com/pkg/errors/LICENSE \ > - vendor/github.com/godbus/dbus/LICENSE \ > - vendor/github.com/gorilla/websocket/LICENSE \ > - vendor/github.com/klauspost/compress/LICENSE \ > - vendor/github.com/pmezard/go-difflib/LICENSE \ > - vendor/golang.org/x/sys/LICENSE \ > - vendor/github.com/bmatsuo/lmdb-go/LICENSE.md \ > - vendor/github.com/remyoudompheng/go-liblzma/LICENSE \ > - vendor/golang.org/x/term/LICENSE \ > - vendor/github.com/davecgh/go-spew/LICENSE \ > - vendor/github.com/klauspost/pgzip/LICENSE \ > - vendor/github.com/klauspost/compress/internal/snapref/LICENSE \ > - vendor/ > github.com/klauspost/compress/zstd/internal/xxhash/LICENSE.txt \ > - vendor/github.com/klauspost/cpuid/v2/LICENSE \ > - vendor/github.com/sirupsen/logrus/LICENSE \ > - vendor/github.com/stretchr/testify/LICENSE \ > - vendor/github.com/ungerik/go-sysfs/LICENSE \ > - vendor/github.com/urfave/cli/v2/LICENSE \ > - vendor/github.com/stretchr/objx/LICENSE \ > - vendor/gopkg.in/yaml.v3/LICENSE \ > - vendor/github.com/mattn/go-isatty/LICENSE \ > - vendor/github.com/bmatsuo/lmdb-go/LICENSE.mdb.md > - > -MENDER_DEPENDENCIES = host-pkgconf openssl > - > -MENDER_LDFLAGS = -X > github.com/mendersoftware/mender/conf.Version=$(MENDER_VERSION) > - > -MENDER_UPDATE_MODULES_FILES = directory single-file > + src/common/vendor/json/LICENSE.MIT \ > + src/common/vendor/json/docs/mkdocs/docs/home/license.md \ > + src/common/vendor/tiny-process-library/LICENSE \ > + src/common/vendor/yaml-cpp/LICENSE \ > + src/common/vendor/lmdbxx/UNLICENSE \ > + src/common/vendor/expected/COPYING \ > + src/common/vendor/optional-lite/LICENSE.txt \ > + src/common/vendor/yaml-cpp/test/googletest-1.16.0/LICENSE > + > +MENDER_DEPENDENCIES += \ > + host-pkgconf \ > + boost \ > + dbus \ > + libarchive \ > + libglib2 \ > + lmdb \ > + openssl \ > + systemd > + > +MENDER_INSTALL_TARGET_OPTS = \ > + install-bin \ > + install-dbus \ > + install-dbus-service-files \ > + install-identity-scripts \ > + install-inventory-network-scripts \ > + install-inventory-scripts \ > + install-modules \ > + install-rootfs-image-module \ > + install-systemd > > define MENDER_INSTALL_CONFIG_FILES > - $(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender/scripts > - echo -n "3" > $(TARGET_DIR)/etc/mender/scripts/version > - > $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender.conf \ > $(TARGET_DIR)/etc/mender/mender.conf > - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/server.crt \ > - $(TARGET_DIR)/etc/mender/server.crt > > - $(INSTALL) -D -m 0755 $(@D)/support/mender-device-identity \ > - > $(TARGET_DIR)/usr/share/mender/identity/mender-device-identity > - $(foreach f,bootloader-integration hostinfo network os > rootfs-type, \ > - $(INSTALL) -D -m 0755 $(@D)/support/mender-inventory-$(f) \ > - > $(TARGET_DIR)/usr/share/mender/inventory/mender-inventory-$(f) > - ) > + $(INSTALL) -D -m 0644 $(@D)/support/demo.crt \ > + $(TARGET_DIR)/etc/mender/server.crt > > $(INSTALL) -D -m 0755 $(MENDER_PKGDIR)/device_type \ > $(TARGET_DIR)/etc/mender/device_type > > - mkdir -p $(TARGET_DIR)/var/lib/mender > - $(foreach f,$(MENDER_UPDATE_MODULES_FILES), \ > - $(INSTALL) -D -m 0755 $(@D)/support/modules/$(notdir $(f)) > \ > - $(TARGET_DIR)/usr/share/mender/modules/v3/$(notdir > $(f)) > - ) > + mkdir -p $(TARGET_DIR)/var/lib > endef > - > MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_CONFIG_FILES > > +# The vendored tiny-process-library and yaml-cpp are built as part of > +# mender but never installed, so always link them statically. > +MENDER_CONF_OPTS += \ > + -DBUILD_SHARED_LIBS=OFF \ > + -DMENDER_EMBED_MENDER_AUTH=OFF \ > + -DMENDER_USE_DBUS=ON \ > + -DMENDER_VERSION=$(MENDER_VERSION) > + > +ifeq ($(BR2_PACKAGE_GZIP),y) > +MENDER_DEPENDENCIES += gzip > +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_GZIP_COMPRESSION=ON > +else > +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_GZIP_COMPRESSION=OFF > +endif > + > ifeq ($(BR2_PACKAGE_XZ),y) > MENDER_DEPENDENCIES += xz > +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_LZMA_COMPRESSION=ON > else > -MENDER_TAGS += nolzma > +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_LZMA_COMPRESSION=OFF > endif > > -ifeq ($(BR2_PACKAGE_DBUS)$(BR2_PACKAGE_LIBGLIB2),yy) > -MENDER_DEPENDENCIES += libglib2 > -define MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF > - $(INSTALL) -D -m 0755 > $(@D)/support/dbus/io.mender.AuthenticationManager.conf \ > - > $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.AuthenticationManager.conf > - > - $(INSTALL) -D -m 0755 > $(@D)/support/dbus/io.mender.UpdateManager.conf \ > - > $(TARGET_DIR)/etc/dbus-1/system.d/io.mender.UpdateManager.conf > -endef > -MENDER_POST_INSTALL_TARGET_HOOKS += > MENDER_INSTALL_DBUS_AUTHENTICATION_MANAGER_CONF > +ifeq ($(BR2_PACKAGE_ZSTD),y) > +MENDER_DEPENDENCIES += zstd > +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_ZSTD_COMPRESSION=ON > else > -MENDER_TAGS += nodbus > +MENDER_CONF_OPTS += -DMENDER_ARTIFACT_ZSTD_COMPRESSION=OFF > endif > > -define MENDER_INSTALL_INIT_SYSTEMD > - $(INSTALL) -D -m 0644 $(MENDER_PKGDIR)/mender-client.service \ > - $(TARGET_DIR)/usr/lib/systemd/system/mender-client.service > +define MENDER_INSTALL_MODULES_GEN > + $(MAKE) -C $(@D) DESTDIR=$(HOST_DIR) install-modules-gen > +endef > +MENDER_POST_INSTALL_TARGET_HOOKS += MENDER_INSTALL_MODULES_GEN > + > +define MENDER_INSTALL_TARGET_CMDS > + $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) DESTDIR=$(TARGET_DIR) > $(MENDER_INSTALL_TARGET_OPTS) > endef > > -define MENDER_INSTALL_INIT_SYSV > - $(INSTALL) -D -m 755 $(MENDER_PKGDIR)/S42mender \ > - $(TARGET_DIR)/etc/init.d/S42mender > +# Needed for rootfs-image-module > +define MENDER_BUSYBOX_CONFIG_FIXUPS > + $(call KCONFIG_ENABLE_OPT,CONFIG_FLOCK) > + $(call KCONFIG_ENABLE_OPT,CONFIG_STAT) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_STAT_FORMAT) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_SYNC_FANCY) > + $(call KCONFIG_ENABLE_OPT,CONFIG_WGET) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_WGET_HTTPS) > + $(call KCONFIG_ENABLE_OPT,CONFIG_FEATURE_WGET_OPENSSL) > endef > > -$(eval $(golang-package)) > +$(eval $(cmake-package)) > diff --git a/package/mender/server.crt b/package/mender/server.crt > deleted file mode 100644 > index 79a57e15e7..0000000000 > --- a/package/mender/server.crt > +++ /dev/null > @@ -1,22 +0,0 @@ > ------BEGIN CERTIFICATE----- > -MIIBfTCCASOgAwIBAgIJAJOS76a0qWuZMAoGCCqGSM49BAMCMBsxGTAXBgNVBAMM > -EGRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1MjQ2 > -WjAbMRkwFwYDVQQDDBBkb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0CAQYIKoZI > -zj0DAQcDQgAE7AVYis6MWGPGQYU1/tlLEnskRifDIhvkRb8Y4nQPekRkLkiBYYT3 > -iJ46wHrnejbHaLstU9GRdKWOmOuU6HGdO6NQME4wHQYDVR0OBBYEFGOIU4q++Vz8 > -9HuT1jg9V+wFeJcyMB8GA1UdIwQYMBaAFGOIU4q++Vz89HuT1jg9V+wFeJcyMAwG > -A1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhAPLnEeWPNeN7eDCEYRitBfyO > -X1yf2kzOm4ohBE5GY9gzAiBCq7HOSkzQDkelmQCCCpGXf/UwYNgQJjSoeGfk0j1a > -TQ== > ------END CERTIFICATE----- > ------BEGIN CERTIFICATE----- > -MIIBhDCCASmgAwIBAgIJALQrf4QDot4IMAoGCCqGSM49BAMCMB4xHDAaBgNVBAMM > -E3MzLmRvY2tlci5tZW5kZXIuaW8wHhcNMTYxMjE0MTk1MjQ2WhcNMjYxMjEyMTk1 > -MjQ2WjAeMRwwGgYDVQQDDBNzMy5kb2NrZXIubWVuZGVyLmlvMFkwEwYHKoZIzj0C > -AQYIKoZIzj0DAQcDQgAEEc/Y3T+l3DvINePkpvVZORMIdHVs29jgsl48ia7z/NRX > -HlKtKxVGJyFN5Y7sBZeLgBYH3F4Bo3KfmxI7ad0tI6NQME4wHQYDVR0OBBYEFIUm > -cip00QZYpe4ULflbGNJan+Y9MB8GA1UdIwQYMBaAFIUmcip00QZYpe4ULflbGNJa > -n+Y9MAwGA1UdEwQFMAMBAf8wCgYIKoZIzj0EAwIDSQAwRgIhANHij9VZBDHOUPaC > -pFiagnWnYL2HBR72W1xTKQbrLLTXAiEAvpwA4HzSnGmLd3010+jqQuMRHArN5WaX > -h0fy7niBbIQ= > ------END CERTIFICATE----- > diff --git a/support/testing/tests/package/test_mender.py > b/support/testing/tests/package/test_mender.py > index 14440c9527..44196d6a96 100644 > --- a/support/testing/tests/package/test_mender.py > +++ b/support/testing/tests/package/test_mender.py > @@ -3,45 +3,69 @@ import os > import infra.basetest > > > +# gitlab-runner: large > class TestMenderInfra(infra.basetest.BRTest): > - config = infra.basetest.BASIC_TOOLCHAIN_CONFIG + \ > - """ > - BR2_PACKAGE_MENDER=y > - BR2_PACKAGE_HOST_MENDER_ARTIFACT=y > - BR2_TARGET_ROOTFS_CPIO=y > - BR2_ROOTFS_POST_BUILD_SCRIPT="{}" > - BR2_ROOTFS_OVERLAY="{}" > - """.format( > - > infra.filepath("tests/package/test_mender/post-build.sh"), > - # overlay to add a fake 'fw_printenv', used by Mender > - > infra.filepath("tests/package/test_mender/rootfs-overlay")) > + # infra.basetest.BASIC_TOOLCHAIN_CONFIG cannot be used as it does > + # not include BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS > + # needed by mender. This config also uses an ext4 rootfs as > + # the default 128MB is too small for an image with mender and systemd. > + config = \ > + """ > + BR2_x86_64=y > + BR2_x86_corei7=y > + BR2_TOOLCHAIN_EXTERNAL=y > + BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_X86_64_CORE_I7_GLIBC_STABLE=y > + BR2_INIT_SYSTEMD=y > + BR2_SYSTEM_DHCP="eth0" > + BR2_LINUX_KERNEL=y > + BR2_LINUX_KERNEL_CUSTOM_VERSION=y > + BR2_LINUX_KERNEL_CUSTOM_VERSION_VALUE="6.18.59" > + BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y > + > BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/mender/x86_64/linux.config" > + BR2_PACKAGE_MENDER=y > + BR2_ROOTFS_POST_BUILD_SCRIPT="{}" > + BR2_ROOTFS_OVERLAY="{}" > + BR2_PACKAGE_HOST_MENDER_ARTIFACT=y > + BR2_TARGET_ROOTFS_EXT2=y > + BR2_TARGET_ROOTFS_EXT2_4=y > + BR2_TARGET_ROOTFS_EXT2_SIZE="256M" > + # BR2_TARGET_ROOTFS_TAR is not set > + """.format( > + infra.filepath("tests/package/test_mender/post-build.sh"), > + # overlay to add a fake 'fw_printenv', used by Mender > + infra.filepath("tests/package/test_mender/rootfs-overlay")) > > def base_test_run(self): > - cpio_file = os.path.join(self.builddir, "images", "rootfs.cpio") > - self.emulator.boot(arch="armv5", kernel="builtin", > - options=["-initrd", cpio_file]) > + drive = os.path.join(self.builddir, "images", "rootfs.ext4") > + kern = os.path.join(self.builddir, "images", "bzImage") > + self.emulator.boot(arch="x86_64", > + kernel=kern, > + kernel_cmdline=["root=/dev/vda console=ttyS0 > net.ifnames=0"], > + options=["-cpu", "Nehalem", > + "-m", "256M", > + "-net", "nic,model=virtio", > + "-net", "user", > + "-drive", > f"file={drive},if=virtio,format=raw"]) > self.emulator.login() > > def run_mender_test(self): > - self.assertRunOk("ps aux | egrep [m]ender") > + > + # mender-authd requires systemd-resolved.service to be up, > + # so wait for eth0 to get its DHCP address before querying. > + cmd = "while ! ifconfig eth0 | grep -q 'inet addr'; do sleep 1; > done" > + self.assertRunOk(cmd, timeout=30) > + > + output, _ = self.emulator.run("systemctl is-active > mender-updated") > + self.assertEqual(output[0], "active") > > # Check if a simple Mender command is correctly executed > - self.assertRunOk("mender -log-level debug show-artifact") > - self.assertRunOk("mender -log-level debug show-artifact | grep > 'RUNTIME_TEST_ARTIFACT_NAME'") > - cmd = "mender show-artifact 2>&1 | grep -i 'err'" # Check if no > 'error' among the traces > + self.assertRunOk("mender-update --log-level debug show-artifact") > + self.assertRunOk("mender-update --log-level debug show-artifact | > grep 'RUNTIME_TEST_ARTIFACT_NAME'") > + cmd = "mender-update show-artifact 2>&1 | grep -i 'err'" # Check > if no 'error' among the traces > _, exit_code = self.emulator.run(cmd) > self.assertEqual(exit_code, 1) > > > -class TestMenderRW(TestMenderInfra): > - def test_run(self): > - TestMenderInfra.base_test_run(self) > - > - # Check if the Daemon is running > - self.assertRunOk("ls /var/run/mender.pid") > - self.run_mender_test() > - > - > class TestMenderRO(TestMenderInfra): > config = \ > """ > @@ -51,22 +75,4 @@ class TestMenderRO(TestMenderInfra): > > def test_run(self): > TestMenderInfra.base_test_run(self) > - > - # Check if the Daemon is running > - self.assertRunOk("ls /var/run/mender.pid") > - self.run_mender_test() > - > - > -# gitlab-runner: large > -class TestMenderSystemd(TestMenderInfra): > - config = \ > - """ > - {} > - BR2_INIT_SYSTEMD=y > - """.format(TestMenderInfra.config) > - > - def test_run(self): > - TestMenderInfra.base_test_run(self) > - output, _ = self.emulator.run("systemctl is-active mender-client") > - self.assertEqual(output[0], "active") > self.run_mender_test() > -- > 2.56.0 > > [-- Attachment #1.2: Type: text/html, Size: 59592 bytes --] [-- Attachment #2: Type: text/plain, Size: 150 bytes --] _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* [Buildroot] [PATCH v3 6/6] package/mender-connect: depend on mender, drop sysvinit file 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett ` (3 preceding siblings ...) 2026-10-28 11:33 ` [Buildroot] [PATCH v3 5/6] package/mender: bump to version 5.2.0 Adam Duskett @ 2026-10-28 11:33 ` Adam Duskett 2026-11-05 7:33 ` Thomas Petazzoni via buildroot 2026-11-05 7:31 ` [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Thomas Petazzoni via buildroot 5 siblings, 1 reply; 9+ messages in thread From: Adam Duskett @ 2026-10-28 11:33 UTC (permalink / raw) To: buildroot; +Cc: Adam Duskett, Angelo Compagnucci Much like the mender-update-modules package, have the mender-connect package depend on the mender package. Also, as mender no longer supports sysvinit, it's safe to remove S43mender-connect Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> --- package/mender-connect/Config.in | 20 +++------ package/mender-connect/S43mender-connect | 53 ------------------------ package/mender-connect/mender-connect.mk | 5 --- 3 files changed, 5 insertions(+), 73 deletions(-) delete mode 100644 package/mender-connect/S43mender-connect diff --git a/package/mender-connect/Config.in b/package/mender-connect/Config.in index d478e468c2..b8f3770509 100644 --- a/package/mender-connect/Config.in +++ b/package/mender-connect/Config.in @@ -1,15 +1,7 @@ config BR2_PACKAGE_MENDER_CONNECT bool "mender-connect" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, mender - depends on BR2_USE_WCHAR # libglib2 -> gettext - depends on BR2_USE_MMU # dbus -> fork() - select BR2_PACKAGE_DBUS # runtime - select BR2_PACKAGE_HOST_GO - select BR2_PACKAGE_LIBGLIB2 - select BR2_PACKAGE_MENDER # runtime - select BR2_PACKAGE_OPENSSL + depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS + depends on BR2_PACKAGE_MENDER help mender-connect is a daemon responsible for handling bidirectional (websocket) communication with the Mender @@ -27,8 +19,6 @@ config BR2_PACKAGE_MENDER_CONNECT https://github.com/mendersoftware/mender-connect -comment "mender-connect needs a toolchain w/ threads, wchar" - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS - depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR +comment "mender-connect needs mender" + depends on BR2_PACKAGE_HOST_GO_HOST_ARCH_SUPPORTS + depends on !BR2_PACKAGE_MENDER diff --git a/package/mender-connect/S43mender-connect b/package/mender-connect/S43mender-connect deleted file mode 100644 index 4cc21510c4..0000000000 --- a/package/mender-connect/S43mender-connect +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh -DAEMON="mender-connect" -DAEMON_PATH="/usr/bin/mender-connect" -PIDFILE="/var/run/${DAEMON}.pid" - -MENDER_CONNECT_ARGS="" - -# shellcheck source=/dev/null -[ -r "/etc/default/$DAEMON" ] && . "/etc/default/$DAEMON" - -start() { - printf 'Starting %s: ' "${DAEMON}" - umask 077 - # shellcheck disable=SC2086 # we need the word splitting - start-stop-daemon -bmSqp "$PIDFILE" -x ${DAEMON_PATH} \ - -- -daemon ${DAEMON_ARGS} - status=$? - if [ "$status" -eq 0 ]; then - echo "OK" - else - echo "FAIL" - fi - return "$status" -} - -stop() { - printf 'Stopping %s: ' "${DAEMON}" - start-stop-daemon -K -q -p "$PIDFILE" - status=$? - if [ "$status" -eq 0 ]; then - echo "OK" - else - echo "FAIL" - fi - return "$status" -} - -restart() { - stop - sleep 1 - start -} - -case "$1" in - start|stop|restart) - "$1";; - reload) - # Restart, since there is no true "reload" feature. - restart;; - *) - echo "Usage: $0 {start|stop|restart|reload}" - exit 1 -esac diff --git a/package/mender-connect/mender-connect.mk b/package/mender-connect/mender-connect.mk index ae9094f3b4..91b2c9354b 100644 --- a/package/mender-connect/mender-connect.mk +++ b/package/mender-connect/mender-connect.mk @@ -54,9 +54,4 @@ define MENDER_CONNECT_INSTALL_INIT_SYSTEMD $(TARGET_DIR)/usr/lib/systemd/system/mender-connect.service endef -define MENDER_CONNECT_INSTALL_INIT_SYSV - $(INSTALL) -D -m 0755 $(MENDER_CONNECT_PKGDIR)/S43mender-connect \ - $(TARGET_DIR)/etc/init.d/S43mender-connect -endef - $(eval $(golang-package)) -- 2.56.0 _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v3 6/6] package/mender-connect: depend on mender, drop sysvinit file 2026-10-28 11:33 ` [Buildroot] [PATCH v3 6/6] package/mender-connect: depend on mender, drop sysvinit file Adam Duskett @ 2026-11-05 7:33 ` Thomas Petazzoni via buildroot 0 siblings, 0 replies; 9+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-11-05 7:33 UTC (permalink / raw) To: Adam Duskett; +Cc: buildroot, Angelo Compagnucci On Wed, Oct 28, 2026 at 12:33:31PM +0100, Adam Duskett wrote: > Much like the mender-update-modules package, have the mender-connect > package depend on the mender package. Also, as mender no longer supports > sysvinit, it's safe to remove S43mender-connect > > Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> > --- > package/mender-connect/Config.in | 20 +++------ > package/mender-connect/S43mender-connect | 53 ------------------------ > package/mender-connect/mender-connect.mk | 5 --- > 3 files changed, 5 insertions(+), 73 deletions(-) > delete mode 100644 package/mender-connect/S43mender-connect > > diff --git a/package/mender-connect/Config.in b/package/mender-connect/Config.in > index d478e468c2..b8f3770509 100644 > --- a/package/mender-connect/Config.in > +++ b/package/mender-connect/Config.in > @@ -1,15 +1,7 @@ > config BR2_PACKAGE_MENDER_CONNECT > bool "mender-connect" > - depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS > - depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS Are you sure this dependency is no longer needed? > - depends on BR2_TOOLCHAIN_HAS_THREADS # libglib2, mender > - depends on BR2_USE_WCHAR # libglib2 -> gettext > - depends on BR2_USE_MMU # dbus -> fork() > - select BR2_PACKAGE_DBUS # runtime > - select BR2_PACKAGE_HOST_GO > - select BR2_PACKAGE_LIBGLIB2 > - select BR2_PACKAGE_MENDER # runtime > - select BR2_PACKAGE_OPENSSL And why are all those selects gone? For the BR2_PACKAGE_MENDER select, I understand it has been changed to a "depends on", which is a very good idea. But since mender-connect.mk has all these other packages (dbus, libglib2, openssl) in its DEPENDENCIES variable, then those select should stick, and therefore perhaps the related "depends on" as well (threads, wchar, mmu). Thanks a lot! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett ` (4 preceding siblings ...) 2026-10-28 11:33 ` [Buildroot] [PATCH v3 6/6] package/mender-connect: depend on mender, drop sysvinit file Adam Duskett @ 2026-11-05 7:31 ` Thomas Petazzoni via buildroot 5 siblings, 0 replies; 9+ messages in thread From: Thomas Petazzoni via buildroot @ 2026-11-05 7:31 UTC (permalink / raw) To: Adam Duskett; +Cc: buildroot, Angelo Compagnucci Hello Adam, On Wed, Oct 28, 2026 at 12:33:26PM +0100, Adam Duskett wrote: > Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com> > --- > v2 -> v3: Fixed github link [Thomas] Thanks for this v3, I've applied patches 1 to 5 to master. I haven't applied patch 6 as I have questions about it, I'll reply to it separately. A quick suggestion: when you send an updated version (like this v3) which had comments from someone, don't hesitate to add this reviewer in Cc: of the new iteration. Indeed, in the overwhelming stream of incoming patches, I can very easily miss that someone is sending a new iteration of something I looked at before. If you Cc: me on the new iteration when I've reviewed a previous one, then there's a much bigger chance I'll have a look at it quickly and apply. It's not a hard rule/requirement, just a suggestion that can potentially help. Thanks a lot! Thomas -- Thomas Petazzoni, co-owner and CEO, Bootlin Embedded Linux and Kernel engineering and training https://bootlin.com _______________________________________________ buildroot mailing list buildroot@buildroot.org https://lists.buildroot.org/mailman/listinfo/buildroot ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2026-11-05 7:33 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-10-28 11:33 [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 2/6] board/mender/x86_64/readme.txt: fix documentation Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 3/6] board/mender/x86_64: add a udev rule to create /dev/root Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 4/6] test_mender/post-build.sh: use /etc/mender/device_type Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 5/6] package/mender: bump to version 5.2.0 Adam Duskett 2026-10-28 14:23 ` Adam Duskett 2026-10-28 11:33 ` [Buildroot] [PATCH v3 6/6] package/mender-connect: depend on mender, drop sysvinit file Adam Duskett 2026-11-05 7:33 ` Thomas Petazzoni via buildroot 2026-11-05 7:31 ` [Buildroot] [PATCH v3 1/6] package/mender-update-modules: add banner module Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox