[Buildroot] [PATCH v2] rauc: new package

Andrey Yurovsky yurovsky at gmail.com
Wed Jun 28 21:40:09 UTC 2017


RAUC is the Robust Auto-Update Controller developed by the folks at
Penguintronix. It supports updating embedded systems from the network
(ex: HawkBit) or from a disk and provides a d-bus interface.

Signed-off-by: Andrey Yurovsky <yurovsky at gmail.com>
---
 DEVELOPERS                  |  3 +++
 package/Config.in           |  1 +
 package/Config.in.host      |  1 +
 package/rauc/Config.in      | 37 +++++++++++++++++++++++++++++++++++++
 package/rauc/Config.in.host |  9 +++++++++
 package/rauc/rauc.hash      |  3 +++
 package/rauc/rauc.mk        | 36 ++++++++++++++++++++++++++++++++++++
 7 files changed, 90 insertions(+)
 create mode 100644 package/rauc/Config.in
 create mode 100644 package/rauc/Config.in.host
 create mode 100644 package/rauc/rauc.hash
 create mode 100644 package/rauc/rauc.mk

diff --git a/DEVELOPERS b/DEVELOPERS
index 9e421f4..7600cb5 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -95,6 +95,9 @@ F:	package/python-scandir/
 F:	package/python-simplegeneric/
 F:	package/python-traitlets/
 
+N:  Andrey Yurovsky <yurovsky at gmail.com>
+F:  package/rauc
+
 N:	Andy Kennedy <andy.kennedy at adtran.com>
 F:	package/libunwind/
 
diff --git a/package/Config.in b/package/Config.in
index f69f67f..fdfcd02 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1865,6 +1865,7 @@ menu "System tools"
 	source "package/psmisc/Config.in"
 	source "package/pwgen/Config.in"
 	source "package/quota/Config.in"
+	source "package/rauc/Config.in"
 	source "package/rsyslog/Config.in"
 	source "package/runc/Config.in"
 	source "package/s6/Config.in"
diff --git a/package/Config.in.host b/package/Config.in.host
index 38f919a..0932b9f 100644
--- a/package/Config.in.host
+++ b/package/Config.in.host
@@ -39,6 +39,7 @@ menu "Host utilities"
 	source "package/python-lxml/Config.in.host"
 	source "package/qemu/Config.in.host"
 	source "package/raspberrypi-usbboot/Config.in.host"
+	source "package/rauc/Config.in.host"
 	source "package/s6-rc/Config.in.host"
 	source "package/sam-ba/Config.in.host"
 	source "package/squashfs/Config.in.host"
diff --git a/package/rauc/Config.in b/package/rauc/Config.in
new file mode 100644
index 0000000..f63ab54
--- /dev/null
+++ b/package/rauc/Config.in
@@ -0,0 +1,37 @@
+config BR2_PACKAGE_RAUC
+	bool "rauc"
+	depends on BR2_TOOLCHAIN_HAS_THREADS # glib2
+	depends on BR2_USE_MMU # glib2
+	depends on BR2_USE_WCHAR # glib2
+	select BR2_PACKAGE_LIBGLIB2
+	select BR2_PACKAGE_OPENSSL
+	select BR2_PACKAGE_DBUS # run-time dependency
+	help
+	  RAUC is the Robust Auto-Update Controller developed by
+	  Penguintronix. It supports updating embedded Linux
+	  systems over the network or from disks and provides a
+	  d-bus interface.
+
+	  http://rauc.io/
+
+if BR2_PACKAGE_RAUC
+
+config BR2_PACKAGE_RAUC_NETWORK
+	bool "network support"
+	select BR2_PACKAGE_LIBCURL
+	help
+	  This option enables support for updating firmware over
+	  the network using libcurl.
+
+config BR2_PACKAGE_RAUC_JSON
+	bool "JSON output support"
+	select BR2_PACKAGE_JSON_GLIB
+	help
+	  This option enables support for providing output in
+	  JSON format.
+
+endif
+
+comment "rauc needs a toolchain w/ wchar, threads"
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_USE_MMU
diff --git a/package/rauc/Config.in.host b/package/rauc/Config.in.host
new file mode 100644
index 0000000..e45406e
--- /dev/null
+++ b/package/rauc/Config.in.host
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_HOST_RAUC
+	bool "host rauc"
+	help
+	  RAUC is the Robust Auto-Update Controller developed by
+	  Penguintronix. Enable this option to build the rauc
+	  host tool which may be used to generate firmware
+	  bundles that are handled by the target rauc service.
+
+	  http://rauc.io/
diff --git a/package/rauc/rauc.hash b/package/rauc/rauc.hash
new file mode 100644
index 0000000..78c3e27
--- /dev/null
+++ b/package/rauc/rauc.hash
@@ -0,0 +1,3 @@
+# Locally calculated, after verifying against
+# https://github.com/rauc/rauc/releases/download/v0.1.1/rauc-0.1.1.tar.xz.asc
+sha256 d2901d493f1d3210aef6411e83b02edac3a678d6d825d71a1c61b5b6afc7e478 rauc-0.1.1.tar.xz
diff --git a/package/rauc/rauc.mk b/package/rauc/rauc.mk
new file mode 100644
index 0000000..12819d9
--- /dev/null
+++ b/package/rauc/rauc.mk
@@ -0,0 +1,36 @@
+################################################################################
+#
+# rauc
+#
+################################################################################
+
+RAUC_VERSION = 0.1.1
+RAUC_SITE = https://github.com/rauc/rauc/releases/download/v$(RAUC_VERSION)
+RAUC_SOURCE = rauc-$(RAUC_VERSION).tar.xz
+RAUC_LICENSE = LGPL-2.1
+RAUC_DEPENDENCIES = host-pkgconf openssl libglib2
+
+ifeq ($(BR2_PACKAGE_RAUC_NETWORK),y)
+RAUC_CONF_OPTS += --enable-network
+RAUC_DEPENDENCIES += libcurl
+else
+RAUC_CONF_OPTS += --disable-network
+endif
+
+ifeq ($(BR2_PACKAGE_RAUC_JSON),y)
+RAUC_CONF_OPTS += --enable-json
+RAUC_DEPENDENCIES += json-glib
+else
+RAUC_CONF_OPTS += --disable-json
+endif
+
+ifeq ($(BR2_PACKAGE_SYSTEMD),y)
+# configure uses pkg-config --variable=systemdsystemunitdir systemd
+RAUC_DEPENDENCIES += systemd
+endif
+
+HOST_RAUC_DEPENDENCIES = host-pkgconf
+HOST_RAUC_CONF_OPTS += --disable-network --disable-json --disable-service
+
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))
-- 
2.9.4




More information about the buildroot mailing list