initial buildroot for linux 5.15
This commit is contained in:
@@ -0,0 +1 @@
|
||||
SWUPDATE_WEBSERVER_ARGS="-r /var/www/swupdate ${SWUPDATE_MONGOOSE_EXTRA_ARGS:--p 8080}"
|
||||
@@ -0,0 +1 @@
|
||||
exec /usr/bin/swupdate-progress -w -r &
|
||||
@@ -0,0 +1,92 @@
|
||||
config BR2_PACKAGE_SWUPDATE
|
||||
bool "swupdate"
|
||||
depends on !BR2_STATIC_LIBS
|
||||
depends on BR2_TOOLCHAIN_HAS_THREADS
|
||||
depends on BR2_USE_MMU # fork()
|
||||
# swupdate requires a parser and uses libconfig as default
|
||||
select BR2_PACKAGE_LIBCONFIG if !BR2_PACKAGE_JSON_C && \
|
||||
!BR2_PACKAGE_HAS_LUAINTERPRETER
|
||||
help
|
||||
swupdate provides a reliable way to update the software on
|
||||
an embedded system.
|
||||
|
||||
swupdate is highly configurable to fit the targets
|
||||
requirements and to minimize the footprint. The provided
|
||||
default configuration file BR2_PACKAGE_SWUPDATE_CONFIG will
|
||||
enable swupdate with an embedded webserver, a parser and a
|
||||
handler for raw NAND or NOR flash.
|
||||
|
||||
The default configuration file builds a reasonable firmware
|
||||
update system with minimal external dependencies in mind.
|
||||
If you like to use your own modified configuration,
|
||||
you have to select the necessary packages manually:
|
||||
|
||||
* Select BR2_PACKAGE_LUA or BR2_PACKAGE_LUAJIT if you want
|
||||
want to have Lua support.
|
||||
* Select BR2_PACKAGE_LIBCURL if you want to use the download
|
||||
feature.
|
||||
* Select BR2_PACKAGE_OPENSSL or BR2_PACKAGE_MBEDTLS if you
|
||||
want to add encryption support.
|
||||
* Select BR2_PACKAGE_MTD if you want to use swupdate with
|
||||
UBI partitions.
|
||||
* Select BR2_PACKAGE_ZLIB if you want to deal with gzip
|
||||
compressed archives.
|
||||
* Select BR2_PACKAGE_ZSTD if you want to deal with zstd
|
||||
compressed archives.
|
||||
* Select BR2_PACKAGE_ZEROMQ to add support for using a
|
||||
remote handler.
|
||||
* Select BR2_PACKAGE_LIBRSYNC to add support for using
|
||||
rdiff handler.
|
||||
* Select BR2_PACKAGE_LIBUBOOTENV to add support for setting
|
||||
the U-Boot environment.
|
||||
* Select BR2_PACKAGE_LIBGPIOD to add support for
|
||||
microcontroller firmware update.
|
||||
* Select BR2_PACKAGE_EFIBOOTMGR to add support for EFI Boot
|
||||
Guard.
|
||||
* Select BR2_PACKAGE_LIBCURL, BR2_PACKAGE_JSON_C,
|
||||
BR2_PACKAGE_LIBWEBSOCKETS, and BR2_PACKAGE_LIBURIPARSER
|
||||
to add support for the SWU forwarder.
|
||||
|
||||
https://sbabic.github.io/swupdate
|
||||
|
||||
if BR2_PACKAGE_SWUPDATE
|
||||
|
||||
config BR2_PACKAGE_SWUPDATE_CONFIG
|
||||
string "swupdate configuration file"
|
||||
default "package/swupdate/swupdate.config"
|
||||
help
|
||||
Path to the swupdate configuration file.
|
||||
|
||||
I you wish to use your own modified swupdate configuration
|
||||
file specify the config file location with this option.
|
||||
|
||||
config BR2_PACKAGE_SWUPDATE_USB
|
||||
bool "swupdate usb"
|
||||
depends on BR2_PACKAGE_SYSTEMD
|
||||
help
|
||||
Enable update from USB disk.
|
||||
|
||||
comment "swupdate usb needs systemd"
|
||||
depends on !BR2_PACKAGE_SYSTEMD
|
||||
|
||||
config BR2_PACKAGE_SWUPDATE_WEBSERVER
|
||||
bool "swupdate webserver"
|
||||
default y
|
||||
help
|
||||
Enable update from remote using a web server on the target.
|
||||
|
||||
config BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE
|
||||
bool "install default website"
|
||||
default y
|
||||
depends on BR2_PACKAGE_SWUPDATE_WEBSERVER
|
||||
help
|
||||
Install the provided website to /var/www/swupdate.
|
||||
|
||||
This is necessary if you want to run swupdate with the
|
||||
embedded webserver and do not provide an own website to be
|
||||
installed to /var/www/swupdate.
|
||||
endif
|
||||
|
||||
comment "swupdate needs a toolchain w/ dynamic library, threads"
|
||||
depends on BR2_USE_MMU
|
||||
depends on BR2_STATIC_LIBS || !BR2_TOOLCHAIN_HAS_THREADS
|
||||
@@ -0,0 +1,47 @@
|
||||
#!/bin/sh
|
||||
|
||||
DAEMON="swupdate"
|
||||
DAEMON_WRAPPER="/usr/lib/swupdate/swupdate.sh"
|
||||
PIDFILE="/var/run/$DAEMON.pid"
|
||||
|
||||
start() {
|
||||
printf 'Starting %s: ' "$DAEMON"
|
||||
start-stop-daemon -S -q -b -m -p "$PIDFILE" -x $DAEMON_WRAPPER
|
||||
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 (does not
|
||||
# reconfigure/restart on SIGHUP, just closes all open files).
|
||||
restart;;
|
||||
*)
|
||||
echo "Usage: $0 {start|stop|restart|reload}"
|
||||
exit 1
|
||||
esac
|
||||
@@ -0,0 +1,9 @@
|
||||
[Unit]
|
||||
Description=swupdate progress service
|
||||
After=swupdate.service
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/bin/swupdate-progress -r -w
|
||||
|
||||
[Install]
|
||||
WantedBy=swupdate.service
|
||||
@@ -0,0 +1 @@
|
||||
ACTION=="add", KERNEL=="sd*", SUBSYSTEM=="block", ENV{ID_BUS}=="usb", ENV{ID_FS_USAGE}=="filesystem", TAG+="systemd", ENV{SYSTEMD_WANTS}+="swupdate-usb@%k.service"
|
||||
@@ -0,0 +1,8 @@
|
||||
[Unit]
|
||||
Description=usb media swupdate service
|
||||
Requires=swupdate-progress.service
|
||||
|
||||
[Service]
|
||||
ExecStartPre=/bin/mount /dev/%I /mnt
|
||||
ExecStart=/bin/sh -c "swupdate-client -v /mnt/*.swu"
|
||||
ExecStopPost=/bin/umount /mnt
|
||||
@@ -0,0 +1,135 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Swupdate Configuration
|
||||
#
|
||||
CONFIG_HAVE_DOT_CONFIG=y
|
||||
|
||||
#
|
||||
# Swupdate Settings
|
||||
#
|
||||
|
||||
#
|
||||
# General Configuration
|
||||
#
|
||||
# CONFIG_CURL is not set
|
||||
# CONFIG_CURL_SSL is not set
|
||||
# CONFIG_SYSTEMD is not set
|
||||
CONFIG_DEFAULT_CONFIG_FILE="/etc/swupdate.cfg"
|
||||
CONFIG_SCRIPTS=y
|
||||
# CONFIG_HW_COMPATIBILITY is not set
|
||||
CONFIG_SW_VERSIONS_FILE="/etc/sw-versions"
|
||||
|
||||
#
|
||||
# Socket Paths
|
||||
#
|
||||
CONFIG_SOCKET_CTRL_PATH="/tmp/sockinstctrl"
|
||||
CONFIG_SOCKET_PROGRESS_PATH="/tmp/swupdateprog"
|
||||
CONFIG_SOCKET_REMOTE_HANDLER_DIRECTORY="/tmp/"
|
||||
|
||||
#
|
||||
# MTD support needs libmtd
|
||||
#
|
||||
|
||||
#
|
||||
# Lua support needs a Lua interpreter
|
||||
#
|
||||
# CONFIG_FEATURE_SYSLOG is not set
|
||||
|
||||
#
|
||||
# Build Options
|
||||
#
|
||||
CONFIG_CROSS_COMPILE=""
|
||||
CONFIG_SYSROOT=""
|
||||
CONFIG_EXTRA_CFLAGS=""
|
||||
CONFIG_EXTRA_LDFLAGS=""
|
||||
CONFIG_EXTRA_LDLIBS=""
|
||||
|
||||
#
|
||||
# Debugging Options
|
||||
#
|
||||
# CONFIG_DEBUG is not set
|
||||
# CONFIG_WERROR is not set
|
||||
# CONFIG_NOCLEANUP is not set
|
||||
|
||||
#
|
||||
# EFI Boot Guard needs libebgenv and libz
|
||||
#
|
||||
CONFIG_BOOTLOADER_NONE=y
|
||||
# CONFIG_BOOTLOADER_GRUB is not set
|
||||
|
||||
#
|
||||
# U-Boot support needs libubootenv, libz
|
||||
#
|
||||
CONFIG_SSL_IMPL_NONE=y
|
||||
|
||||
#
|
||||
# Image downloading support needs libcurl
|
||||
#
|
||||
|
||||
#
|
||||
# Hash checking needs an SSL implementation
|
||||
#
|
||||
|
||||
#
|
||||
# Image signature verification needs an SSL implementation
|
||||
#
|
||||
|
||||
#
|
||||
# Image encryption needs an SSL implementation
|
||||
#
|
||||
# CONFIG_SURICATTA is not set
|
||||
CONFIG_WEBSERVER=y
|
||||
CONFIG_MONGOOSE=y
|
||||
CONFIG_MONGOOSEIPV6=y
|
||||
|
||||
#
|
||||
# SSL support needs an SSL implementation
|
||||
#
|
||||
|
||||
#
|
||||
# Parser Features
|
||||
#
|
||||
CONFIG_LIBCONFIG=y
|
||||
CONFIG_PARSERROOT=""
|
||||
|
||||
#
|
||||
# JSON config parser support needs json-c
|
||||
#
|
||||
# CONFIG_SETSWDESCRIPTION is not set
|
||||
|
||||
#
|
||||
# Image Handlers
|
||||
#
|
||||
|
||||
#
|
||||
# ubivol support needs libubi
|
||||
#
|
||||
# CONFIG_DISKPART is not set
|
||||
CONFIG_RAW=y
|
||||
# CONFIG_RDIFFHANDLER is not set
|
||||
# CONFIG_SHELLSCRIPTHANDLER is not set
|
||||
|
||||
#
|
||||
# archive support needs libarchive
|
||||
#
|
||||
|
||||
#
|
||||
# remote handler needs zeromq
|
||||
#
|
||||
|
||||
#
|
||||
# swuforward handler needs json-c and curl
|
||||
#
|
||||
|
||||
#
|
||||
# SWU forwarder requires libcurl
|
||||
#
|
||||
|
||||
#
|
||||
# swuforward handler needs json-c and curl
|
||||
#
|
||||
# CONFIG_BOOTLOADERHANDLER is not set
|
||||
|
||||
#
|
||||
# Microcontroller handler depends on libgpiod
|
||||
#
|
||||
@@ -0,0 +1,13 @@
|
||||
# Locally calculated
|
||||
sha256 5afe78ae94e869bcb911d8592251641cdab80096d8e5149d483054ea49f9aab8 swupdate-2021.04.tar.gz
|
||||
sha256 4cf04ed34ff0ebbf5c71345b56e6af5093fc17206364cca0ebbae92ef3940683 LICENSES/BSD-1-Clause.txt
|
||||
sha256 3139f288c2e4cbe4a8c0e8c13c82661f3c798d446e1fbbc27a48a69aa7b4ec0d LICENSES/BSD-2-Clause.txt
|
||||
sha256 e27a3e87706b3aa5ff2e50eaafe2e6ed5397fbf2d7679eaf444a6d000518a3a6 LICENSES/BSD-3-Clause.txt
|
||||
sha256 0558101984550fa84d1d13c2af11d116c20079d2be58711e8d99cadce7009192 LICENSES/CC0-1.0.txt
|
||||
sha256 6e4efcb1952c7976d3fae93b802c591384c4f50949225a802adf41bc266fa3e6 LICENSES/CC-BY-ND-4.0.txt
|
||||
sha256 5d51b52a40391a26cbb2accf5dc5d1c165de49a022d9d5efb50b22204d2682ec LICENSES/GPL-2.0-only.txt
|
||||
sha256 43fd695e9b198a9a4997cc2d02e10d26cae937e2c4930b9eff9c6d349c85cd32 LICENSES/GPL-2.0-or-later.txt
|
||||
sha256 492e801f1b0632185431472f148885a4fe8e990b10da57b4986a8bcf140a5374 LICENSES/ISC.txt
|
||||
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 LICENSES/LGPL-2.1-or-later.txt
|
||||
sha256 43492b377cf2fb67942d1dd231146bd4e6578646ad13ef289297c9dd75cbc478 LICENSES/LicenseRef-OpenSSL-Exception.txt
|
||||
sha256 89807acf2309bd285f033404ee78581602f3cd9b819a16ac2f0e5f60ff4a473e LICENSES/MIT.txt
|
||||
@@ -0,0 +1,271 @@
|
||||
################################################################################
|
||||
#
|
||||
# swupdate
|
||||
#
|
||||
################################################################################
|
||||
|
||||
SWUPDATE_VERSION = 2021.04
|
||||
SWUPDATE_SITE = $(call github,sbabic,swupdate,$(SWUPDATE_VERSION))
|
||||
SWUPDATE_LICENSE = GPL-2.0, GPL-2.0+ with OpenSSL exception, LGPL-2.1+, MIT, ISC, BSD-1-Clause, BSD-2-Clause, BSD-3-Clause, CC0-1.0, CC-BY-ND-4.0
|
||||
SWUPDATE_LICENSE_FILES = LICENSES/BSD-1-Clause.txt \
|
||||
LICENSES/BSD-2-Clause.txt \
|
||||
LICENSES/BSD-3-Clause.txt \
|
||||
LICENSES/CC0-1.0.txt \
|
||||
LICENSES/CC-BY-ND-4.0.txt \
|
||||
LICENSES/GPL-2.0-only.txt \
|
||||
LICENSES/GPL-2.0-or-later.txt \
|
||||
LICENSES/ISC.txt \
|
||||
LICENSES/LGPL-2.1-or-later.txt \
|
||||
LICENSES/LicenseRef-OpenSSL-Exception.txt \
|
||||
LICENSES/MIT.txt
|
||||
|
||||
# swupdate uses $CROSS-cc instead of $CROSS-gcc, which is not
|
||||
# available in all external toolchains, and use CC for linking. Ensure
|
||||
# TARGET_CC is used for both.
|
||||
SWUPDATE_MAKE_ENV = CC="$(TARGET_CC)" LD="$(TARGET_CC)" SKIP_STRIP=y
|
||||
|
||||
# swupdate bundles its own version of mongoose (version 6.16)
|
||||
|
||||
ifeq ($(BR2_PACKAGE_E2FSPROGS),y)
|
||||
SWUPDATE_DEPENDENCIES += e2fsprogs
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_EFIBOOTMGR),y)
|
||||
SWUPDATE_DEPENDENCIES += efibootmgr
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBEBGENV=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBEBGENV=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_JSON_C),y)
|
||||
SWUPDATE_DEPENDENCIES += json-c
|
||||
SWUPDATE_MAKE_ENV += HAVE_JSON_C=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_JSON_C=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBARCHIVE),y)
|
||||
SWUPDATE_DEPENDENCIES += libarchive
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBARCHIVE=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBBLKID),y)
|
||||
SWUPDATE_DEPENDENCIES += util-linux
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBBLKID=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBBLKID=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBCONFIG),y)
|
||||
SWUPDATE_DEPENDENCIES += libconfig
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBCONFIG=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBCURL),y)
|
||||
SWUPDATE_DEPENDENCIES += libcurl
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBCURL=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBCURL=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBGPIOD),y)
|
||||
SWUPDATE_DEPENDENCIES += libgpiod
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBGPIOD=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBGPIOD=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBURIPARSER),y)
|
||||
SWUPDATE_DEPENDENCIES += liburiparser
|
||||
SWUPDATE_MAKE_ENV += HAVE_URIPARSER=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_URIPARSER=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS),y)
|
||||
SWUPDATE_DEPENDENCIES += libwebsockets
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBWEBSOCKETS=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBWEBSOCKETS=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_HAS_LUAINTERPRETER),y)
|
||||
SWUPDATE_DEPENDENCIES += luainterpreter host-pkgconf
|
||||
# defines the base name for the pkg-config file ("lua" or "luajit")
|
||||
define SWUPDATE_SET_LUA_VERSION
|
||||
$(call KCONFIG_SET_OPT,CONFIG_LUAPKG,$(BR2_PACKAGE_PROVIDES_LUAINTERPRETER))
|
||||
endef
|
||||
SWUPDATE_MAKE_ENV += HAVE_LUA=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LUA=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_MTD),y)
|
||||
SWUPDATE_DEPENDENCIES += mtd
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBMTD=y
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBUBI=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBMTD=n
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBUBI=n
|
||||
endif
|
||||
|
||||
# OpenSSL or mbedTLS
|
||||
ifeq ($(BR2_PACKAGE_OPENSSL),y)
|
||||
SWUPDATE_DEPENDENCIES += openssl
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBSSL=y
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=y
|
||||
SWUPDATE_MAKE_ENV += HAVE_MBEDTLS=n
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBSSL=n
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBCRYPTO=n
|
||||
ifeq ($(BR2_PACKAGE_MBEDTLS),y)
|
||||
SWUPDATE_DEPENDENCIES += mbedtls
|
||||
SWUPDATE_MAKE_ENV += HAVE_MBEDTLS=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_MBEDTLS=n
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_P11_KIT),y)
|
||||
SWUPDATE_DEPENDENCIES += p11-kit
|
||||
SWUPDATE_MAKE_ENV += HAVE_P11KIT=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_P11KIT=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SYSTEMD),y)
|
||||
SWUPDATE_DEPENDENCIES += systemd
|
||||
define SWUPDATE_SET_SYSTEMD
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_SYSTEMD)
|
||||
endef
|
||||
else
|
||||
define SWUPDATE_SET_SYSTEMD
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_SYSTEMD)
|
||||
endef
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBUBOOTENV),y)
|
||||
SWUPDATE_DEPENDENCIES += libubootenv
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBUBOOTENV=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_WOLFSSL),y)
|
||||
SWUPDATE_DEPENDENCIES += wolfssl
|
||||
SWUPDATE_MAKE_ENV += HAVE_WOLFSSL=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_WOLFSSL=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZEROMQ),y)
|
||||
SWUPDATE_DEPENDENCIES += zeromq
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_LIBZEROMQ=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZLIB),y)
|
||||
SWUPDATE_DEPENDENCIES += zlib
|
||||
SWUPDATE_MAKE_ENV += HAVE_ZLIB=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_ZLIB=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_ZSTD),y)
|
||||
SWUPDATE_DEPENDENCIES += zstd
|
||||
SWUPDATE_MAKE_ENV += HAVE_ZSTD=y
|
||||
else
|
||||
SWUPDATE_MAKE_ENV += HAVE_ZSTD=n
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBRSYNC),y)
|
||||
SWUPDATE_DEPENDENCIES += librsync
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_SWUPDATE_WEBSERVER),y)
|
||||
define SWUPDATE_SET_WEBSERVER
|
||||
$(call KCONFIG_ENABLE_OPT,CONFIG_WEBSERVER)
|
||||
endef
|
||||
else
|
||||
define SWUPDATE_SET_WEBSERVER
|
||||
$(call KCONFIG_DISABLE_OPT,CONFIG_WEBSERVER)
|
||||
endef
|
||||
endif
|
||||
|
||||
SWUPDATE_BUILD_CONFIG = $(@D)/.config
|
||||
|
||||
SWUPDATE_KCONFIG_FILE = $(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG))
|
||||
SWUPDATE_KCONFIG_EDITORS = menuconfig xconfig gconfig nconfig
|
||||
|
||||
SWUPDATE_MAKE_OPTS = \
|
||||
CROSS_COMPILE="$(TARGET_CROSS)" \
|
||||
CONFIG_EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
|
||||
CONFIG_EXTRA_LDFLAGS="$(TARGET_LDFLAGS)"
|
||||
|
||||
define SWUPDATE_KCONFIG_FIXUP_CMDS
|
||||
$(SWUPDATE_SET_LUA_VERSION)
|
||||
$(SWUPDATE_SET_SYSTEMD)
|
||||
$(SWUPDATE_SET_WEBSERVER)
|
||||
endef
|
||||
|
||||
define SWUPDATE_BUILD_CMDS
|
||||
$(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D) $(SWUPDATE_MAKE_OPTS)
|
||||
endef
|
||||
|
||||
define SWUPDATE_INSTALL_TARGET_CMDS
|
||||
$(TARGET_MAKE_ENV) $(SWUPDATE_MAKE_ENV) $(MAKE) -C $(@D) \
|
||||
$(SWUPDATE_MAKE_OPTS) DESTDIR=$(TARGET_DIR) install
|
||||
$(if $(BR2_PACKAGE_SWUPDATE_INSTALL_WEBSITE), \
|
||||
mkdir -p $(TARGET_DIR)/var/www/swupdate; \
|
||||
cp -dpfr $(@D)/examples/www/v2/* $(TARGET_DIR)/var/www/swupdate)
|
||||
endef
|
||||
|
||||
# Checks to give errors that the user can understand
|
||||
# Must be before we call to kconfig-package
|
||||
ifeq ($(BR2_PACKAGE_SWUPDATE)$(BR_BUILDING),yy)
|
||||
ifeq ($(call qstrip,$(BR2_PACKAGE_SWUPDATE_CONFIG)),)
|
||||
$(error No Swupdate configuration file specified, check your BR2_PACKAGE_SWUPDATE_CONFIG setting)
|
||||
endif
|
||||
endif
|
||||
|
||||
# Services and configs derived from meta-swupdate(MIT license)
|
||||
# https://github.com/sbabic/meta-swupdate/tree/master/recipes-support/swupdate/swupdate
|
||||
define SWUPDATE_INSTALL_COMMON
|
||||
mkdir -p $(TARGET_DIR)/etc/swupdate/conf.d \
|
||||
$(TARGET_DIR)/usr/lib/swupdate/conf.d
|
||||
$(INSTALL) -D -m 755 $(SWUPDATE_PKGDIR)/swupdate.sh \
|
||||
$(TARGET_DIR)/usr/lib/swupdate/swupdate.sh
|
||||
$(if $(BR2_PACKAGE_SWUPDATE_WEBSERVER), \
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/10-mongoose-args \
|
||||
$(TARGET_DIR)/usr/lib/swupdate/conf.d/10-mongoose-args)
|
||||
endef
|
||||
define SWUPDATE_INSTALL_INIT_SYSTEMD
|
||||
$(SWUPDATE_INSTALL_COMMON)
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/swupdate.service
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate.socket \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/swupdate.socket
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-usb@.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/swupdate-usb@.service
|
||||
$(if $(BR2_PACKAGE_SWUPDATE_USB), \
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-usb.rules \
|
||||
$(TARGET_DIR)/lib/udev/rules.d/swupdate-usb.rules)
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/swupdate-progress.service \
|
||||
$(TARGET_DIR)/usr/lib/systemd/system/swupdate-progress.service
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/tmpfiles-swupdate.conf \
|
||||
$(TARGET_DIR)/usr/lib/tmpfiles.d/tmpfiles-swupdate.conf
|
||||
endef
|
||||
define SWUPDATE_INSTALL_INIT_SYSV
|
||||
$(SWUPDATE_INSTALL_COMMON)
|
||||
$(INSTALL) -D -m 755 $(SWUPDATE_PKGDIR)/S80swupdate \
|
||||
$(TARGET_DIR)/etc/init.d/S80swupdate
|
||||
$(INSTALL) -D -m 644 $(SWUPDATE_PKGDIR)/90-start-progress \
|
||||
$(TARGET_DIR)/usr/lib/swupdate/conf.d/90-start-progress
|
||||
endef
|
||||
|
||||
$(eval $(kconfig-package))
|
||||
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=SWUpdate daemon
|
||||
Documentation=https://github.com/sbabic/swupdate
|
||||
Documentation=https://sbabic.github.io/swupdate
|
||||
|
||||
[Service]
|
||||
ExecStart=/usr/lib/swupdate/swupdate.sh
|
||||
KillMode=mixed
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -0,0 +1,33 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Based on example script created by Adrian Freihofer
|
||||
# https://github.com/sbabic/meta-swupdate/blob/master/recipes-support/swupdate/swupdate/swupdate.sh
|
||||
|
||||
# Override these variables in sourced script(s) located
|
||||
# in /usr/lib/swupdate/conf.d or /etc/swupdate/conf.d
|
||||
# NOTE: There are substrings used in some swupdate commands which will
|
||||
# need to be wrapped in a script to prevent tokenizing
|
||||
# ( -p/-P post/pre cmds are good examples)
|
||||
SWUPDATE_ARGS="-v ${SWUPDATE_EXTRA_ARGS}"
|
||||
SWUPDATE_WEBSERVER_ARGS=""
|
||||
SWUPDATE_SURICATTA_ARGS=""
|
||||
|
||||
# source all files from /etc/swupdate/conf.d and /usr/lib/swupdate/conf.d/
|
||||
# A file found in /etc replaces the same file in /usr
|
||||
for f in `(test -d /usr/lib/swupdate/conf.d/ && ls -1 /usr/lib/swupdate/conf.d/; test -d /etc/swupdate/conf.d && ls -1 /etc/swupdate/conf.d) | sort -u`; do
|
||||
if [ -f /etc/swupdate/conf.d/$f ]; then
|
||||
. /etc/swupdate/conf.d/$f
|
||||
else
|
||||
. /usr/lib/swupdate/conf.d/$f
|
||||
fi
|
||||
done
|
||||
|
||||
if [ "$SWUPDATE_WEBSERVER_ARGS" != "" -a "$SWUPDATE_SURICATTA_ARGS" != "" ]; then
|
||||
exec /usr/bin/swupdate $SWUPDATE_ARGS -w "$SWUPDATE_WEBSERVER_ARGS" -u "$SWUPDATE_SURICATTA_ARGS"
|
||||
elif [ "$SWUPDATE_WEBSERVER_ARGS" != "" ]; then
|
||||
exec /usr/bin/swupdate $SWUPDATE_ARGS -w "$SWUPDATE_WEBSERVER_ARGS"
|
||||
elif [ "$SWUPDATE_SURICATTA_ARGS" != "" ]; then
|
||||
exec /usr/bin/swupdate $SWUPDATE_ARGS -u "$SWUPDATE_SURICATTA_ARGS"
|
||||
else
|
||||
exec /usr/bin/swupdate $SWUPDATE_ARGS
|
||||
fi
|
||||
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=SWUpdate socket listener
|
||||
Documentation=https://github.com/sbabic/swupdate
|
||||
Documentation=https://sbabic.github.io/swupdate
|
||||
|
||||
[Socket]
|
||||
ListenStream=/tmp/sockinstctrl
|
||||
ListenStream=/tmp/swupdateprog
|
||||
|
||||
[Install]
|
||||
WantedBy=sockets.target
|
||||
@@ -0,0 +1,2 @@
|
||||
X /tmp/datadst
|
||||
X /tmp/scripts
|
||||
Reference in New Issue
Block a user