--- Begin Message ---
Minimal solution, not considering all the options which can be set
through Kconfig.
Signed-off-by: Alexander Dahl <[email protected]>
---
rules/swupdate.in | 17 ++++++
rules/swupdate.make | 144 ++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 161 insertions(+)
create mode 100644 rules/swupdate.in
create mode 100644 rules/swupdate.make
diff --git a/rules/swupdate.in b/rules/swupdate.in
new file mode 100644
index 000000000..2fc4f6627
--- /dev/null
+++ b/rules/swupdate.in
@@ -0,0 +1,17 @@
+## SECTION=applications
+
+config SWUPDATE
+ tristate
+ select LIBUBOOTENV
+ select JSON_C
+ prompt "swupdate"
+ help
+ SWUpdate is a Linux Update agent with the goal to provide an
+ efficient and safe way to update an embedded Linux system in
+ field.
+ SWUpdate supports local and OTA updates, multiple update
+ strategies and it is designed with security in mind.
+
+ https://swupdate.org/
+
+# vim: ft=kconfig noet tw=72 ts=8 sw=8
diff --git a/rules/swupdate.make b/rules/swupdate.make
new file mode 100644
index 000000000..3f8fa13b5
--- /dev/null
+++ b/rules/swupdate.make
@@ -0,0 +1,144 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2025 by Alexander Dahl <[email protected]>
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_SWUPDATE) += swupdate
+
+#
+# Paths and names
+#
+SWUPDATE_VERSION := 2024.12.1
+SWUPDATE_MD5 := ce7ef65f99840d0b0e724a6d96c17430
+SWUPDATE := swupdate-$(SWUPDATE_VERSION)
+SWUPDATE_SUFFIX := tar.gz
+SWUPDATE_URL :=
https://github.com/sbabic/swupdate/archive/refs/tags/$(SWUPDATE_VERSION).$(SWUPDATE_SUFFIX)
+SWUPDATE_SOURCE := $(SRCDIR)/$(SWUPDATE).$(SWUPDATE_SUFFIX)
+SWUPDATE_DIR := $(BUILDDIR)/$(SWUPDATE)
+SWUPDATE_BUILD_DIR := $(SWUPDATE_DIR)-build
+SWUPDATE_BUILD_OOT := KEEP
+SWUPDATE_LICENSE := \
+ BSD-1-Clause AND BSD-3-Clause AND CC-BY-SA-4.0 AND CC0-1.0 AND \
+ GPL-2.0-only AND GPL-2.0-or-later AND ISC AND \
+ LGPL-2.1-or-later AND MIT AND OFL-1.1
+SWUPDATE_LICENSE_FILES := \
+ file://LICENSES/BSD-1-Clause.txt;md5=4c75b3902cf6a01969906bcae9cf8cd6 \
+ file://LICENSES/BSD-3-Clause.txt;md5=4a1190eac56a9db675d58ebe86eaf50c \
+ file://LICENSES/CC-BY-SA-4.0.txt;md5=7130783469368ceb248a4f03e89ea4b8 \
+ file://LICENSES/CC0-1.0.txt;md5=0ceb3372c9595f0a8067e55da801e4a1 \
+ file://LICENSES/GPL-2.0-only.txt;md5=4ee23c52855c222cba72583d301d2338 \
+
file://LICENSES/GPL-2.0-or-later.txt;md5=261bea1168c0bdfa73232ee90df11eb6 \
+ file://LICENSES/ISC.txt;md5=a6fd9988b21ff227cdfb961fd4b23ba4 \
+
file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c \
+ file://LICENSES/MIT.txt;md5=838c366f69b72c5df05c96dff79b35f2 \
+ file://LICENSES/OFL-1.1.txt;md5=7a75f82b54b8af9107d35c6d3cab23ac
+
+SWUPDATE_CONFIG := $(or \
+ $(call ptx/in-path, PTXDIST_PATH_LAYERS,
configs/swupdate.config), \
+ $(PTXDIST_WORKSPACE)/configs/swupdate.config)
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+SWUPDATE_CONF_TOOL := kconfig
+
+SWUPDATE_CONF_ENV := \
+ HAVE_FREEBSD=n \
+ HAVE_LINUX=y \
+ HAVE_LUA=n \
+ HAVE_LIBCONFIG=n \
+ HAVE_LIBARCHIVE=n \
+ HAVE_LIBCURL=n \
+ HAVE_LIBFDISK=n \
+ HAVE_LIBBLKID=n \
+ HAVE_LIBGPIOD=n \
+ HAVE_LIBMTD=n \
+ HAVE_LIBUBI=n \
+ HAVE_LIBUBOOTENV=n \
+ HAVE_LIBEBGENV=n \
+ HAVE_LIBTEGRABOOT_TOOLS=n \
+ HAVE_LIBZEROMQ=n \
+ HAVE_ZLIB=n \
+ HAVE_ZSTD=n \
+ HAVE_LIBEXT2FS=n \
+ HAVE_LIBBTRFS=n \
+ HAVE_LIBSSL=n \
+ HAVE_LIBSYSTEMD=n \
+ HAVE_LIBCRYPTO=n \
+ HAVE_WOLFSSL=n \
+ HAVE_MBEDTLS=n \
+ HAVE_P11KIT=n \
+ HAVE_LIBWEBSOCKETS=n \
+ HAVE_LIBRSYNC=n \
+ HAVE_URIPARSER=n \
+ HAVE_ZCK=n
+
+SWUPDATE_CONF_OPT := \
+ -C $(SWUPDATE_DIR) \
+ O=$(SWUPDATE_BUILD_DIR) \
+ V=$(PTXDIST_VERBOSE)
+
+SWUPDATE_MAKE_ENV := \
+ $(SWUPDATE_CONF_ENV) \
+ CROSS_COMPILE=$(COMPILER_PREFIX) \
+ CC=$(CROSS_CC) \
+ LD=$(CROSS_CC) \
+ SKIP_STRIP=y
+
+SWUPDATE_MAKE_OPT := \
+ $(SWUPDATE_CONF_OPT) \
+ SWU_VER="$(SWUPDATE_VERSION) (PTXdist $(PTXDIST_VERSION_FULL))"
+
+SWUPDATE_INSTALL_OPT := \
+ $(SWUPDATE_MAKE_OPT) \
+ install
+
+ifdef PTXCONF_SWUPDATE
+$(SWUPDATE_CONFIG):
+ @echo
+ @echo
"******************************************************************************"
+ @echo "**** Please generate a swupdate config with 'ptxdist menuconfig
swupdate' ****"
+ @echo
"******************************************************************************"
+ @echo
+ @echo
+ @exit 1
+endif
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/swupdate.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, swupdate)
+ @$(call install_fixup, swupdate,PRIORITY,optional)
+ @$(call install_fixup, swupdate,SECTION,base)
+ @$(call install_fixup, swupdate,AUTHOR,"Alexander Dahl
<[email protected]>")
+ @$(call install_fixup, swupdate,DESCRIPTION,missing)
+
+ @$(call install_lib, swupdate, 0, 0, 0644, libswupdate)
+ @$(call install_copy, swupdate, 0, 0, 0755, -, /usr/bin/swupdate)
+ @$(call install_copy, swupdate, 0, 0, 0755, -, /usr/bin/swupdate-client)
+ @$(call install_copy, swupdate, 0, 0, 0755, -, /usr/bin/swupdate-ipc)
+ @$(call install_copy, swupdate, 0, 0, 0755, -,
/usr/bin/swupdate-progress)
+
+ @$(call install_finish, swupdate)
+
+ @$(call touch)
+
+# ----------------------------------------------------------------------------
+# oldconfig / menuconfig
+# ----------------------------------------------------------------------------
+
+$(call ptx/kconfig-targets, swupdate): $(STATEDIR)/swupdate.extract
+ @$(call world/kconfig, SWUPDATE, $(subst swupdate_,,$@))
+
+# vim: ft=make noet tw=72 ts=8 sw=8
--
2.39.5
--- End Message ---