2
1
Эх сурвалжийг харах

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>
Florian Larysch 3 сар өмнө
parent
commit
187f7b1469

+ 3 - 0
DEVELOPERS

@@ -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/

+ 1 - 0
package/Config.in

@@ -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"

+ 1 - 0
package/Config.in.host

@@ -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"

+ 21 - 0
package/casync-nano/Config.in

@@ -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

+ 7 - 0
package/casync-nano/Config.in.host

@@ -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

+ 3 - 0
package/casync-nano/casync-nano.hash

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

+ 30 - 0
package/casync-nano/casync-nano.mk

@@ -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))