From: Enrico Jorns <ejo@pengutronix.de>
To: ptxdist@pengutronix.de
Cc: Michael Olbrich <m.olbrich@pengutronix.de>
Subject: [ptxdist] [PATCH 1/2] rauc: new package
Date: Thu, 24 Nov 2016 12:37:48 +0100 [thread overview]
Message-ID: <20161124113749.24717-2-ejo@pengutronix.de> (raw)
In-Reply-To: <20161124113749.24717-1-ejo@pengutronix.de>
From: Michael Olbrich <m.olbrich@pengutronix.de>
This adds recipes for building the RAUC update tool both as a host
tool as well as a target update tool and service.
The package will install a rauc.service that starts rauc with `rauc
service` during boot.
It will also install a rauc-mark-good.service by default that is used to
notify the underlying bootloader implementation about having booted
successfully vi `rauc status mark-good`.
For integrating rauc with your platform, you need to have a system
configuration file /etc/rauc/system.conf in your platforms projectroot
dir. This defines all relevant slots and provides information and
configuration rauc requires to properly handle the platform it is
running on.
You should als set `RAUC_BUNDLE_COMPATIBLE` to a compatible string
rauc should use to identify your platform and sufficiently distinguish
from others.
Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
---
patches/rauc-2016-11-22-g513172c60272/autogen.sh | 18 +++++
.../lib/systemd/system/rauc-mark-good.service | 11 +++
rules/host-rauc.in | 8 ++
rules/host-rauc.make | 32 ++++++++
rules/rauc.in | 24 ++++++
rules/rauc.make | 88 ++++++++++++++++++++++
6 files changed, 181 insertions(+)
create mode 100755 patches/rauc-2016-11-22-g513172c60272/autogen.sh
create mode 100644 projectroot/lib/systemd/system/rauc-mark-good.service
create mode 100644 rules/host-rauc.in
create mode 100644 rules/host-rauc.make
create mode 100644 rules/rauc.in
create mode 100644 rules/rauc.make
diff --git a/patches/rauc-2016-11-22-g513172c60272/autogen.sh b/patches/rauc-2016-11-22-g513172c60272/autogen.sh
new file mode 100755
index 0000000..df78c38
--- /dev/null
+++ b/patches/rauc-2016-11-22-g513172c60272/autogen.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+set -e
+
+aclocal $ACLOCAL_FLAGS
+
+libtoolize \
+ --force \
+ --copy
+
+autoreconf \
+ --force \
+ --install \
+ --warnings=cross \
+ --warnings=syntax \
+ --warnings=obsolete \
+ --warnings=unsupported
+
diff --git a/projectroot/lib/systemd/system/rauc-mark-good.service b/projectroot/lib/systemd/system/rauc-mark-good.service
new file mode 100644
index 0000000..b462e6a
--- /dev/null
+++ b/projectroot/lib/systemd/system/rauc-mark-good.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Rauc Mark Good
+ConditionKernelCommandLine=bootchooser.active
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=/usr/bin/rauc status mark-good
+
+[Install]
+WantedBy=multi-user.target
diff --git a/rules/host-rauc.in b/rules/host-rauc.in
new file mode 100644
index 0000000..0e02743
--- /dev/null
+++ b/rules/host-rauc.in
@@ -0,0 +1,8 @@
+## SECTION=hosttools_noprompt
+## SECTION=hosttools_platform
+
+config HOST_RAUC
+ tristate
+ select HOST_GLIB
+ select HOST_OPENSSL
+ select HOST_SQUASHFS_TOOLS
diff --git a/rules/host-rauc.make b/rules/host-rauc.make
new file mode 100644
index 0000000..4345ae8
--- /dev/null
+++ b/rules/host-rauc.make
@@ -0,0 +1,32 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2015 by Michael Grzeschik <mgr@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+HOST_PACKAGES-$(PTXCONF_HOST_RAUC) += host-rauc
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#
+# autoconf
+#
+HOST_RAUC_CONF_TOOL := autoconf
+HOST_RAUC_CONF_OPT := \
+ $(HOST_AUTOCONF) \
+ --disable-code-coverage \
+ --disable-valgrind \
+ --disable-service \
+ --disable-network \
+ --disable-json
+
+# vim: syntax=make
diff --git a/rules/rauc.in b/rules/rauc.in
new file mode 100644
index 0000000..acd4be1
--- /dev/null
+++ b/rules/rauc.in
@@ -0,0 +1,24 @@
+## SECTION=applications
+
+menuconfig RAUC
+ tristate
+ prompt "Rauc update tool "
+ select OPENSSL
+ select GLIB
+ select DT_UTILS if RUNTIME
+ select LIBCURL if RAUC_NETWORK
+ select JSON_GLIB if RAUC_JSON
+ help
+ Robust Auto-Update Controller. RAUC controls the update process on embedded linux systems.
+
+if RAUC
+
+config RAUC_NETWORK
+ bool
+ prompt "network support"
+
+config RAUC_JSON
+ bool
+ prompt "JSON support"
+
+endif
diff --git a/rules/rauc.make b/rules/rauc.make
new file mode 100644
index 0000000..3013d43
--- /dev/null
+++ b/rules/rauc.make
@@ -0,0 +1,88 @@
+# -*-makefile-*-
+#
+# Copyright (C) 2015 by Enrico Joerns <e.joerns@pengutronix.de>
+#
+# See CREDITS for details about who has contributed to this project.
+#
+# For further information about the PTXdist project and license conditions
+# see the README file.
+#
+
+#
+# We provide this package
+#
+PACKAGES-$(PTXCONF_RAUC) += rauc
+
+#
+# Paths and names
+#
+RAUC_VERSION := 2016-11-22-g513172c60272
+RAUC_MD5 := 26ea84cf873686153de77df3603a4215
+RAUC := rauc-$(RAUC_VERSION)
+RAUC_SUFFIX := tar.gz
+RAUC_URL := https://github.com/jluebbe/rauc.git;tag=$(RAUC_VERSION)
+RAUC_SOURCE := $(SRCDIR)/$(RAUC).$(RAUC_SUFFIX)
+RAUC_DIR := $(BUILDDIR)/$(RAUC)
+RAUC_LICENSE := GPLv2
+
+# ----------------------------------------------------------------------------
+# Prepare
+# ----------------------------------------------------------------------------
+
+#RAUC_CONF_ENV := $(CROSS_ENV)
+
+#
+# autoconf
+#
+RAUC_CONF_TOOL := autoconf
+RAUC_CONF_OPT := \
+ $(CROSS_AUTOCONF_USR) \
+ --enable-debug=info \
+ $(GLOBAL_LARGE_FILE_OPTION) \
+ --disable-code-coverage \
+ --disable-valgrind \
+ --enable-service \
+ --$(call ptx/endis,PTXCONF_RAUC_NETWORK)-network \
+ --$(call ptx/endis,PTXCONF_RAUC_JSON)-json \
+ --with-systemdunitdir=/lib/systemd/system \
+ --with-dbuspolicydir=/usr/share/dbus-1/system.d \
+ --with-dbussystemservicedir=/usr/share/dbus-1/system-services
+
+# ----------------------------------------------------------------------------
+# Target-Install
+# ----------------------------------------------------------------------------
+
+$(STATEDIR)/rauc.targetinstall:
+ @$(call targetinfo)
+
+ @$(call install_init, rauc)
+ @$(call install_fixup, rauc,PRIORITY,optional)
+ @$(call install_fixup, rauc,SECTION,base)
+ @$(call install_fixup, rauc,AUTHOR,"Enrico Joerns <e.joerns@pengutronix.de>")
+ @$(call install_fixup, rauc,DESCRIPTION,missing)
+
+ @$(call install_copy, rauc, 0, 0, 0755, -, /usr/bin/rauc)
+ @$(call install_alternative, rauc, 0, 0, 0644, /etc/rauc/system.conf)
+ @$(call install_replace, rauc, /etc/rauc/system.conf, \
+ @RAUC_BUNDLE_COMPATIBLE@, \
+ $(PTXCONF_PROJECT_VENDOR)\ $(PTXCONF_PROJECT))
+ @$(call install_alternative, rauc, 0, 0, 0644, /etc/rauc/ca.cert.pem)
+
+ @$(call install_copy, rauc, 0, 0, 0644, -, \
+ /usr/share/dbus-1/system-services/de.pengutronix.rauc.service)
+ @$(call install_copy, rauc, 0, 0, 0644, -, \
+ /usr/share/dbus-1/system.d/de.pengutronix.rauc.conf)
+
+ @$(call install_alternative, rauc, 0, 0, 0644, \
+ /lib/systemd/system/rauc.service)
+
+ @$(call install_alternative, rauc, 0, 0, 0644, \
+ /lib/systemd/system/rauc-mark-good.service)
+ @$(call install_link, rauc, ../rauc-mark-good.service, \
+ /lib/systemd/system/multi-user.target.wants/rauc-mark-good.service)
+
+ @$(call install_finish, rauc)
+
+ @$(call touch)
+
+# vim: syntax=make
--
2.10.2
_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de
next prev parent reply other threads:[~2016-11-24 11:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-11-24 11:37 [ptxdist] [PATCH 0/2] Add basic support for RAUC update tool Enrico Jorns
2016-11-24 11:37 ` Enrico Jorns [this message]
2016-11-24 11:37 ` [ptxdist] [PATCH 2/2] rauc-image: new package Enrico Jorns
2016-11-24 13:58 ` Bastian Stender
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20161124113749.24717-2-ejo@pengutronix.de \
--to=ejo@pengutronix.de \
--cc=m.olbrich@pengutronix.de \
--cc=ptxdist@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox