package/casync-nano: new package

casync-nano is an implementation of a subset of the features of casync,
optimized for performing OTA updates on embedded systems.

Signed-off-by: Florian Larysch <fl@n621.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
This commit is contained in:
Florian Larysch
2025-04-20 22:45:38 +02:00
committed by Thomas Petazzoni
parent e7c091f113
commit 187f7b1469
7 changed files with 66 additions and 0 deletions

View File

@@ -1133,6 +1133,9 @@ F: package/rsyslog/
N: Florian Fainelli <f.fainelli@gmail.com>
F: package/cpulimit/
N: Florian Larysch <fl@n621.de>
F: package/casync-nano/
N: Floris Bos <bos@je-eigen-domein.nl>
F: package/ipmitool/
F: package/odhcploc/

View File

@@ -2467,6 +2467,7 @@ endif
source "package/can-utils/Config.in"
source "package/cannelloni/Config.in"
source "package/casync/Config.in"
source "package/casync-nano/Config.in"
source "package/cfm/Config.in"
source "package/chrony/Config.in"
source "package/civetweb/Config.in"

View File

@@ -13,6 +13,7 @@ menu "Host utilities"
source "package/bmap-writer/Config.in.host"
source "package/bootgen/Config.in.host"
source "package/btrfs-progs/Config.in.host"
source "package/casync-nano/Config.in.host"
source "package/cbootimage/Config.in.host"
source "package/checkpolicy/Config.in.host"
source "package/checksec/Config.in.host"

View File

@@ -0,0 +1,21 @@
config BR2_PACKAGE_CASYNC_NANO
bool "casync-nano"
select BR2_PACKAGE_OPENSSL
select BR2_PACKAGE_ZSTD
select BR2_PACKAGE_LIBCURL
help
Tiny casync-like tool optimized for embedded systems.
https://github.com/florolf/casync-nano
if BR2_PACKAGE_CASYNC_NANO
config BR2_PACKAGE_CASYNC_NANO_CASYNC_SHIM
bool "install casync shim"
# only one package should provide the "casync" command
depends on !BR2_PACKAGE_CASYNC
help
Install a shim that provides basic compatibility with the
"extract" sub-command of casync to programs that expect it.
endif

View File

@@ -0,0 +1,7 @@
config BR2_PACKAGE_HOST_CASYNC_NANO
bool "host casync-nano tool"
help
casync-nano host tool (csn-tool) for casync-nano specific
features like chunk encryption.
https://github.com/florolf/casync-nano

View File

@@ -0,0 +1,3 @@
# locally calculated
sha256 29ed8a767304e7e3032e66feea3d2dada7cc7db73344231a54bf080cc6e65ecf casync-nano-1.1.1.tar.gz
sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING

View File

@@ -0,0 +1,30 @@
################################################################################
#
# casync-nano
#
################################################################################
CASYNC_NANO_VERSION = 1.1.1
CASYNC_NANO_SITE = $(call github,florolf,casync-nano,v$(CASYNC_NANO_VERSION))
CASYNC_NANO_LICENSE = LGPL-2.1
CASYNC_NANO_LICENSE_FILES = COPYING
CASYNC_NANO_DEPENDENCIES = host-pkgconf openssl zstd libcurl
ifeq ($(BR2_PACKAGE_CASYNC_NANO_CASYNC_SHIM),y)
define CASYNC_NANO_INSTALL_CASYNC_SHIM
ln -sf csn $(TARGET_DIR)/usr/bin/casync
endef
endif
define CASYNC_NANO_INSTALL_TARGET_CMDS
$(INSTALL) -D -m0755 $(@D)/csn $(TARGET_DIR)/usr/bin/csn
$(CASYNC_NANO_INSTALL_CASYNC_SHIM)
endef
# We're only building csn-tool for the host, so only openssl is
# needed, not the other dependencies
HOST_CASYNC_NANO_DEPENDENCIES = host-pkgconf host-openssl
HOST_CASYNC_NANO_CONF_OPTS = -DBUILD_CSN=Off -DBUILD_CSN_TOOL=On
$(eval $(cmake-package))
$(eval $(host-cmake-package))