[Buildroot] [PATCH] rauc: new package

Arnout Vandecappelle arnout at mind.be
Wed Jun 28 19:59:12 UTC 2017


 Hi Andrey,

On 28-06-17 08:07, Andrey Yurovsky wrote:
> RAUC is the Robust Auto-Update Controller developed by the folks at
> Penguintronix. It supports updating embedded systems from the network
  ^^^^^^^^^^^^^Pengutronix

> (ex: HawkBit) or from a disk and provides a d-bus interface.

 So this is Pengutronix' competitor to swupdate?

> 
> Signed-off-by: Andrey Yurovsky <yurovsky at gmail.com>
> ---
>  package/rauc/Config.in | 18 ++++++++++++++++++
>  package/rauc/rauc.hash |  2 ++
>  package/rauc/rauc.mk   | 19 +++++++++++++++++++

 You don't add it to package/Config.in, so it is not possible to select this
package.

 Have you checked the package with support/scripts/check-package ?
 Have you validated it with support/scripts/test-pkg ?

>  3 files changed, 39 insertions(+)
>  create mode 100644 package/rauc/Config.in
>  create mode 100644 package/rauc/rauc.hash
>  create mode 100644 package/rauc/rauc.mk
> 
> diff --git a/package/rauc/Config.in b/package/rauc/Config.in
> new file mode 100644
> index 0000000..8a210a4
> --- /dev/null
> +++ b/package/rauc/Config.in
> @@ -0,0 +1,18 @@
> +config BR2_PACKAGE_RAUC
> +	bool "rauc"
> +	depends on BR2_TOOLCHAIN_HAS_THREADS # dbus-glib -> glib2
> +	depends on BR2_USE_WCHAR # glib2
> +	depends on BR2_USE_MMU # glib2
> +	select BR2_PACKAGE_LIBGLIB2
> +	select BR2_PACKAGE_DBUS
> +	select BR2_PACKAGE_DBUS_GLIB
> +	select BR2_PACKAGE_OPENSSL
> +	select BR2_PACKAGE_LIBCURL
> +	select BR2_PACKAGE_JSON_GLIB
> +	select BR2_PACKAGE_UTIL_LINUX
> +	select BR2_PACKAGE_UTIL_LINUX_LIBMOUNT
> +	help
> +	  RAUC controls the update process on embedded Linux systems.
> +	  See the documentation at
> +	  https://rauc.readthedocs.io/en/latest/ for more
> +	  information.

 You can include the full text that you have in the commit log. Also, we need an
upstream URL. And with that added, the reference to the documentation is not
really needed (it's one click away from the upstream URL). So:

	  RAUC is the Robust Auto-Update Controller developed by Pengutronix.
	  It controls the update process on embedded Linux systems. It supports
	  updating from the network or from a disk. It provides a D-Bus
	  interface.

	  http://rauc.io/

> diff --git a/package/rauc/rauc.hash b/package/rauc/rauc.hash
> new file mode 100644
> index 0000000..7ee9798
> --- /dev/null
> +++ b/package/rauc/rauc.hash
> @@ -0,0 +1,2 @@
> +# Locally calculated

 Please verify the tarball against the upstream signature, and write:

# Locally calculated, after verifying against
# https://github.com/rauc/rauc/releases/download/v0.1.1/rauc-0.1.1.tar.xz.asc

> +sha256  d867a81b9e414c8db9268851011fb2d404a3ee60ae297c007a2f140abfa607d1 rauc-v0.1.1.tar.gz
> diff --git a/package/rauc/rauc.mk b/package/rauc/rauc.mk
> new file mode 100644
> index 0000000..e036387
> --- /dev/null
> +++ b/package/rauc/rauc.mk
> @@ -0,0 +1,19 @@
> +################################################################################
> +#
> +# rauc
> +#
> +################################################################################
> +
> +RAUC_VERSION = v0.1.1
> +RAUC_SITE = $(call github,rauc,rauc,$(RAUC_VERSION))

 There is an upstream tarball, so you should use that:

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 = GPL-2.1

 GPL-2.1 doesn't exist, it's LGPL-2.1.

> +RAUC_LICENSE_FILES = COPYING
> +RAUC_AUTORECONF = YES

 With the uploaded tarball this shouldn't be needed anymore.

> +RAUC_DEPENDENCIES = libcurl openssl libglib2 json-glib dbus-glib host-pkgconf \
> +					dbus util-linux

 It seems that most of these are optional:

libcurl is only needed if --enable-network
json-glib is only needed if --enable-json

 And configure.ac has no dependency at all on dbus-glib, dbus or libmount.

 On the other hand, configure uses pkg-config to determine the systemd install
directories, so you should have a conditional dependency on this package:

ifeq ($(BR2_PACKAGE_SYSTEMD),y)
# configure uses pkg-config --variable=systemdsystemunitdir systemd
RAUC_DEPENDENCIES += systemd
endif


 Regards,
 Arnout

> +
> +HOST_RAUC_DEPENDENCIES = host-pkgconf
> +HOST_RAUC_CONF_OPTS = --disable-network --disable-json
> +
> +$(eval $(autotools-package))
> +$(eval $(host-autotools-package))
> 

-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF


More information about the buildroot mailing list