package/mender-update-modules: enable docker, rpm, and script modules

Starting with mender 5.x, the docker, rpm and script modules provided by
the mender package now reside in the mender-update-modules repository.

Even though the mender package provided by Buildroot is not updated yet to 5.x,
it is best to enable the modules here to help facilitate the future update of
the mender package to 5.x, and to ensure that any future modifications or bug
fixes to these modules are easy to apply by simply bumping the upstream package
version.

Script is enabled by default to preserve the existing behavior of the mender
package.

Signed-off-by: Adam Duskett <adam.duskett@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Adam Duskett
2025-05-16 16:10:21 +02:00
committed by Thomas Petazzoni
parent a474642fdc
commit 6debbd693b
3 changed files with 67 additions and 6 deletions

View File

@@ -72,6 +72,40 @@ config BR2_PACKAGE_MENDER_UPDATE_MODULES_DIRTY
https://github.com/mendersoftware/mender-update-modules/tree/master/dirty
config BR2_PACKAGE_MENDER_UPDATE_MODULES_DOCKER
bool "docker"
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS # docker-engine, docker-cli
depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS # docker-engine, docker-cli
depends on BR2_TOOLCHAIN_HAS_THREADS # docker-engine, docker-cli
depends on !BR2_TOOLCHAIN_USES_UCLIBC # containerd -> runc
depends on BR2_USE_MMU # containerd
depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS # libseccomp
depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # libseccom
select BR2_PACKAGE_DOCKER_ENGINE
select BR2_PACKAGE_DOCKER_CLI
select BR2_PACKAGE_JQ # runtime
help
The Docker Update Module handles the Docker images that shall
be running in the device. A deployment with this module will
stop all currently running Docker containers in the device,
and start new containers with the provided list of Docker
images in the Mender Artifact.
In case of an unforeseen error during the process, the module
will use the rollback mechanism of the Mender client to
restore the previously running Docker containers.
https://github.com/mendersoftware/mender-update-modules/tree/master/docker
comment "docker support needs a glibc or musl toolchain w/ threads, headers >= 3.17"
depends on BR2_PACKAGE_HOST_GO_TARGET_ARCH_SUPPORTS
depends on BR2_PACKAGE_HOST_GO_TARGET_CGO_LINKING_SUPPORTS
depends on BR2_PACKAGE_LIBSECCOMP_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS || \
BR2_TOOLCHAIN_USES_UCLIBC || \
!BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
depends on BR2_USE_MMU
config BR2_PACKAGE_MENDER_UPDATE_MODULES_IPK
bool "ipk"
select BR2_PACKAGE_OPKG
@@ -157,6 +191,28 @@ config BR2_PACKAGE_MENDER_UPDATE_MODULES_ROOTFS_VERSION_CHECK
comment "rootfs version check needs a toolchain w/ threads"
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS
config BR2_PACKAGE_MENDER_UPDATE_MODULES_RPM
bool "rpm"
depends on !BR2_STATIC_LIBS # dlfcn.h
depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
depends on BR2_PACKAGE_LUA && !BR2_PACKAGE_LUA_5_1
depends on BR2_TOOLCHAIN_HAS_THREADS
select BR2_PACKAGE_RPM
help
The Rpm Update Module updates software on the device using
the native local package manager.
A Mender Artifact containing one or more software packages
is sent to the device, where the Update Module will call
the package manager to install them in alphabetical order.
https://github.com/mendersoftware/mender-update-modules/tree/master/rpm
comment "rpm needs a toolchain w/ dynamic library, threads and lua >= 5.3"
depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS \
|| !BR2_PACKAGE_LUA || BR2_PACKAGE_LUA_5_1
depends on BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
config BR2_PACKAGE_MENDER_UPDATE_MODULES_SWU
bool "swupdate"
depends on !BR2_STATIC_LIBS

View File

@@ -10,6 +10,8 @@ MENDER_UPDATE_MODULES_LICENSE = Apache-2.0
MENDER_UPDATE_MODULES_LICENSE_FILES = LICENSE
MENDER_UPDATE_MODULES_DEPENDENCIES = host-mender-artifact mender
MENDER_UPDATE_MODULES_MODULES = script
ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DFU),y)
MENDER_UPDATE_MODULES_MODULES += dfu
endif
@@ -22,6 +24,10 @@ ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DIRTY),y)
MENDER_UPDATE_MODULES_MODULES += dirty
endif
ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_DOCKER),y)
MENDER_UPDATE_MODULES_MODULES += docker
endif
ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_IPK),y)
MENDER_UPDATE_MODULES_MODULES += ipk
endif
@@ -49,6 +55,10 @@ endef
MENDER_UPDATE_MODULES_POST_INSTALL_TARGET_HOOKS += MENDER_UPDATE_MODULES_INSTALL_MENDER_COMPARE_VERSIONS
endif
ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_RPM),y)
MENDER_UPDATE_MODULES_MODULES += rpm
endif
ifeq ($(BR2_PACKAGE_MENDER_UPDATE_MODULES_SWU),y)
MENDER_UPDATE_MODULES_MODULES += swu
endif

View File

@@ -45,12 +45,7 @@ MENDER_DEPENDENCIES = host-pkgconf openssl
MENDER_LDFLAGS = -X github.com/mendersoftware/mender/conf.Version=$(MENDER_VERSION)
MENDER_UPDATE_MODULES_FILES = \
directory \
script \
single-file \
$(if $(BR2_PACKAGE_DOCKER_CLI),docker) \
$(if $(BR2_PACKAGE_RPM),rpm)
MENDER_UPDATE_MODULES_FILES = directory single-file
define MENDER_INSTALL_CONFIG_FILES
$(INSTALL) -d -m 755 $(TARGET_DIR)/etc/mender/scripts