aboutsummaryrefslogtreecommitdiffstats
path: root/recipes-core/swupd-client
diff options
context:
space:
mode:
authorJoshua Lock <joshua.g.lock@intel.com>2016-03-02 14:37:59 +0000
committerJoshua Lock <joshua.g.lock@intel.com>2016-04-17 21:57:01 +0100
commit6d5555c1a1b01ec3f539539e34def369bbf2850b (patch)
treeecf8b17575bfa667075f9f3dc01c42b85ba09233 /recipes-core/swupd-client
parent6a2e4c4779b6a740a656cba9c7815f7b747e2c0e (diff)
downloadmeta-swupd-6d5555c1a1b01ec3f539539e34def369bbf2850b.tar.gz
meta-swupd-6d5555c1a1b01ec3f539539e34def369bbf2850b.tar.bz2
meta-swupd-6d5555c1a1b01ec3f539539e34def369bbf2850b.zip
swupd-client: recognise and update changed config files
swupd upstream expects its host OS, i.e. Clear Linux, to be stateless and thus by default ignores configuration file changes in the manifests. Add a configure option to swupd-client to not ignore these files, matching a similar change in swupd-server to ensure config files are included in the manifests. Do not enable this option by default in our recipe as we have several files in /etc which are generated/modified on first-boot and will cause a swupd verify to fail. [YOCTO #9199] Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
Diffstat (limited to 'recipes-core/swupd-client')
-rw-r--r--recipes-core/swupd-client/swupd-client/0001-Add-configure-option-to-re-enable-updating-of-config.patch58
-rw-r--r--recipes-core/swupd-client/swupd-client_2.87.bb4
2 files changed, 62 insertions, 0 deletions
diff --git a/recipes-core/swupd-client/swupd-client/0001-Add-configure-option-to-re-enable-updating-of-config.patch b/recipes-core/swupd-client/swupd-client/0001-Add-configure-option-to-re-enable-updating-of-config.patch
new file mode 100644
index 0000000..ac16d06
--- /dev/null
+++ b/recipes-core/swupd-client/swupd-client/0001-Add-configure-option-to-re-enable-updating-of-config.patch
@@ -0,0 +1,58 @@
+From 1f2ad4cdff6b999fcd00193cdd1dc8a35e49c0b2 Mon Sep 17 00:00:00 2001
+From: Joshua Lock <joshua.g.lock@intel.com>
+Date: Thu, 3 Mar 2016 19:55:41 +0000
+Subject: [PATCH] Add configure option to re-enable updating of config files
+
+Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
+
+Upstream-Status: Pending
+
+---
+ configure.ac | 7 +++++++
+ src/heuristics.c | 5 +++--
+ 2 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f94a17d..0063463 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -78,6 +78,13 @@ AC_ARG_ENABLE(
+ enable_linux_rootfs_build="no"
+ )
+
++AC_ARG_ENABLE(
++ [stateless],
++ AS_HELP_STRING([--disable-stateless],[OS is not stateless, do not ignore configuration files (stateless by default)]),
++ AC_DEFINE(OS_IS_STATELESS,0,[OS is not stateless]),
++ AC_DEFINE(OS_IS_STATELESS,1,[OS is stateless])
++)
++
+ AS_IF([test "$enable_linux_btrfs_build" = "yes" -a "$enable_android_build" = "yes"],
+ [AC_MSG_ERROR([Cannot enable more than one build variant. Choose a single variant.])])
+
+diff --git a/src/heuristics.c b/src/heuristics.c
+index 12fb59c..92dbcdc 100644
+--- a/src/heuristics.c
++++ b/src/heuristics.c
+@@ -27,6 +27,7 @@
+ #include <string.h>
+ #include <assert.h>
+
++#include <config.h>
+ #include <swupd.h>
+
+ /* trailing slash is to indicate dir itself is expected to exist, but
+@@ -113,8 +114,8 @@ void apply_heuristics(struct file *file)
+
+ bool ignore(struct file *file)
+ {
+- if ((file->is_config) ||
+- is_config(file->filename) || // ideally we trust the manifest but short term reapply check here
++ if ((OS_IS_STATELESS && file->is_config) ||
++ (OS_IS_STATELESS && is_config(file->filename)) || // ideally we trust the manifest but short term reapply check here
+ (file->is_state) ||
+ is_state(file->filename) || // ideally we trust the manifest but short term reapply check here
+ (file->is_boot && fix && file->is_deleted) || // shouldn't happen
+--
+2.5.0
+
diff --git a/recipes-core/swupd-client/swupd-client_2.87.bb b/recipes-core/swupd-client/swupd-client_2.87.bb
index 39ea5d9..eeaf3c5 100644
--- a/recipes-core/swupd-client/swupd-client_2.87.bb
+++ b/recipes-core/swupd-client/swupd-client_2.87.bb
@@ -16,6 +16,7 @@ SRC_URI = "\
file://0002-downloads-minimize-syscalls-to-improve-performance.patch \
file://0001-globals.c-Use-fake-address-as-default-updates-url.patch \
file://0001-manifest.c-Always-initialize-preserver-pointer-of-fi.patch \
+ file://0001-Add-configure-option-to-re-enable-updating-of-config.patch \
"
SRC_URI[md5sum] = "5d272c62edb8a9c576005ac5e1182ea3"
@@ -30,6 +31,9 @@ inherit pkgconfig autotools-brokensep systemd
EXTRA_OECONF = "--with-systemdsystemunitdir=${systemd_system_unitdir} --enable-bsdtar"
+PACKAGECONFIG ??= "stateless"
+PACKAGECONFIG[stateless] = ",--disable-stateless"
+
#TODO: create and install /var/lib/swupd/{delta,staged/download}
do_install_append () {
# swupd-client 2.87 doesn't (succesfully) create these and fails to update