On Thu, 2016-02-25 at 09:07 +0100, Maciej Borzecki wrote: > On 02/24 14:52, Joshua Lock wrote: > > > > From: Mariano Lopez <mariano.lo...@linux.intel.com> > > > > This commit adds the Clear Linux client updater. > > This is experimental and bleeding edge, including the comments on > > the recipe. > > > > Signed-off-by: Mariano Lopez <mariano.lo...@linux.intel.com> > > Signed-off-by: Joshua Lock <joshua.g.l...@intel.com> > > --- > > .../0001-Tolerate-quotes-in-os-release-files.patch | 59 > > ++++++++++++++++++++++ > > ...hange-systemctl-path-to-OE-systemctl-path.patch | 31 > > ++++++++++++ > > .../swupd-client/Fix-build-failure-on-Yocto.patch | 36 > > +++++++++++++ > > .../Right-usage-of-AC_ARG_ENABLE-on-bzip2.patch | 38 > > ++++++++++++++ > > meta/recipes-devtools/swupd/swupd-client_2.87.bb | 49 > > ++++++++++++++++++ > > 5 files changed, 213 insertions(+) > > create mode 100644 meta/recipes-devtools/swupd/swupd-client/0001- > > Tolerate-quotes-in-os-release-files.patch > > create mode 100644 meta/recipes-devtools/swupd/swupd- > > client/Change-systemctl-path-to-OE-systemctl-path.patch > > create mode 100644 meta/recipes-devtools/swupd/swupd-client/Fix- > > build-failure-on-Yocto.patch > > create mode 100644 meta/recipes-devtools/swupd/swupd-client/Right- > > usage-of-AC_ARG_ENABLE-on-bzip2.patch > > create mode 100644 meta/recipes-devtools/swupd/swupd- > > client_2.87.bb > > > > diff --git a/meta/recipes-devtools/swupd/swupd-client/0001- > > Tolerate-quotes-in-os-release-files.patch b/meta/recipes- > > devtools/swupd/swupd-client/0001-Tolerate-quotes-in-os-release- > > files.patch > > new file mode 100644 > > index 0000000..49c71ae > > --- /dev/null > > +++ b/meta/recipes-devtools/swupd/swupd-client/0001-Tolerate- > > quotes-in-os-release-files.patch > > @@ -0,0 +1,59 @@ > > +From 586e7b927461f6604ee3a3159cd7a6d4ac22ef30 Mon Sep 17 00:00:00 > > 2001 > > +From: Dmitry Rozhkov <dmitry.rozh...@intel.com> > > +Date: Thu, 11 Feb 2016 13:29:57 +0200 > > +Subject: [PATCH 1/2] Tolerate quotes in os-release files > > + > > +Some systems like Yocto or OpenSUSE prefer to wrap values in > > +/etc/os-release file with quotes always and that still conforms > > +to the format defined in systemd. > > + > > +This patch removes quotes from the values before trying to > > +transform them into integer version id. > > + > > +Signed-off-by: Dmitry Rozhkov <dmitry.rozh...@intel.com> > > + > > +Upstream-Status: Backport (v3.0.0+) > > + > > +--- > > + src/version.c | 18 +++++++++++++++++- > > + 1 file changed, 17 insertions(+), 1 deletion(-) > > + > > +diff --git a/src/version.c b/src/version.c > > +index 0e09cd9..83d6ad4 100644 > > +--- a/src/version.c > > ++++ b/src/version.c > > +@@ -88,6 +88,7 @@ int read_version_from_subvol_file(char > > *path_prefix) > > + FILE *file; > > + int v = -1; > > + char *buildstamp; > > ++ char *src, *dest; > > + > > + string_or_die(&buildstamp, "%s/usr/lib/os-release", > > path_prefix); > > + file = fopen(buildstamp, "rm"); > > +@@ -106,7 +107,22 @@ int read_version_from_subvol_file(char > > *path_prefix) > > + break; > > + } > > + > > +- if (strncmp(line,"VERSION_ID=", 11) == 0) { > > ++ if (strncmp(line, "VERSION_ID=", 11) == 0) { > > ++ src = &line[11]; > > ++ > > ++ /* Drop quotes and newline in value */ > > ++ dest = src; > > ++ while (*src) { > > ++ if (*src == '\'' || *src == '"' > > || *src == '\n') { > > ++ ++src; > > ++ } else { > > ++ *dest = *src; > > ++ ++dest; > > ++ ++src; > > ++ } > > ++ } > > ++ *dest = 0; > > ++ > > + v = strtoull(&line[11], NULL, 10); > > + break; > > + } > > +-- > > +2.5.0 > > + > > diff --git a/meta/recipes-devtools/swupd/swupd-client/Change- > > systemctl-path-to-OE-systemctl-path.patch b/meta/recipes- > > devtools/swupd/swupd-client/Change-systemctl-path-to-OE-systemctl- > > path.patch > > new file mode 100644 > > index 0000000..5ca6373 > > --- /dev/null > > +++ b/meta/recipes-devtools/swupd/swupd-client/Change-systemctl- > > path-to-OE-systemctl-path.patch > > @@ -0,0 +1,31 @@ > > +From 259d86e64146c3156eccfcce0351a9cdc4714766 Mon Sep 17 00:00:00 > > 2001 > > +From: Jaska Uimonen <jaska.uimo...@intel.com> > > +Date: Thu, 14 Jan 2016 10:17:43 +0200 > > +Subject: [PATCH] change systemctl path to OE systemctl path > > + > > +Upstream-Status: Inappropriate > > + > > +--- > > + src/scripts.c | 4 ++-- > > + 1 file changed, 2 insertions(+), 2 deletions(-) > > + > > +diff --git a/src/scripts.c b/src/scripts.c > > +index e426272..9bec0f5 100644 > > +--- a/src/scripts.c > > ++++ b/src/scripts.c > > +@@ -84,10 +84,10 @@ static void update_triggers(void) > > + int ret; > > + LOG_INFO(NULL, "calling systemd trigger", class_scripts, > > ""); > > + > > +- ret = system("/usr/bin/systemctl daemon-reload"); > > ++ ret = system("/bin/systemctl daemon-reload"); > > + if (ret != 0) > > + LOG_ERROR(NULL, "systemd daemon reload failed", > > class_scripts, "%d", ret); > > +- ret = system("/usr/bin/systemctl restart update- > > triggers.target"); > > ++ ret = system("/bin/systemctl restart update- > > triggers.target"); > > + if (ret != 0) > > + LOG_ERROR(NULL, "systemd update triggers failed", > > class_scripts, "%d", ret); > > + } > > +-- > > +2.5.0 > > + > > diff --git a/meta/recipes-devtools/swupd/swupd-client/Fix-build- > > failure-on-Yocto.patch b/meta/recipes-devtools/swupd/swupd- > > client/Fix-build-failure-on-Yocto.patch > > new file mode 100644 > > index 0000000..73f1728 > > --- /dev/null > > +++ b/meta/recipes-devtools/swupd/swupd-client/Fix-build-failure- > > on-Yocto.patch > > @@ -0,0 +1,36 @@ > > +From ccce73a2d703e6789ded87ca5aa9f3b7c506892a Mon Sep 17 00:00:00 > > 2001 > > +From: Amarnath Valluri <amarnath.vall...@intel.com> > > +Date: Thu, 7 Jan 2016 16:19:34 +0200 > > +Subject: [PATCH] Fix build failure on Yocto > > + > > +On install phase certificate files are being installed twice as > > included in > > +_DATA twice. We can use EXTRA_DIST than dist_. > > + > > +Upstream-Status: Inappropriate > > + > > +Signed-off-by: Amarnath Valluri <amarnath.vall...@intel.com> > > +--- > > + Makefile.am | 4 ++-- > > + 1 file changed, 2 insertions(+), 2 deletions(-) > > + > > +diff --git a/Makefile.am b/Makefile.am > > +index 1e65d3d..4d15c55 100644 > > +--- a/Makefile.am > > ++++ b/Makefile.am > > +@@ -111,11 +111,11 @@ SWUPD_CERTS = certs/157753a5.0 \ > > + certs/d6325660.0 \ > > + certs/d6325660.1 > > + swupdcerts_DATA = $(SWUPD_CERTS) > > +-dist_swupdcerts_DATA = $(SWUPD_CERTS) > > + > > + EXTRA_DIST += \ > > + data/check-update.service \ > > +- data/check-update.timer > > ++ data/check-update.timer \ > > ++ $(SWUPD_CERTS) > > + > > + DISTCHECK_CONFIGURE_FLAGS = \ > > + --with- > > systemdsystemunitdir=$$dc_install_base/$(systemdunitdir) > > +-- > > +2.1.4 > > + > > diff --git a/meta/recipes-devtools/swupd/swupd-client/Right-usage- > > of-AC_ARG_ENABLE-on-bzip2.patch b/meta/recipes- > > devtools/swupd/swupd-client/Right-usage-of-AC_ARG_ENABLE-on- > > bzip2.patch > > new file mode 100644 > > index 0000000..e5b53ef > > --- /dev/null > > +++ b/meta/recipes-devtools/swupd/swupd-client/Right-usage-of- > > AC_ARG_ENABLE-on-bzip2.patch > > @@ -0,0 +1,38 @@ > > +From d80ae9954c5e5b720766274249dbf5309b7c70a9 Mon Sep 17 00:00:00 > > 2001 > > +From: Amarnath Valluri <amarnath.vall...@intel.com> > > +Date: Wed, 13 Jan 2016 15:46:19 +0200 > > +Subject: [PATCH] Right usage of AC_ARG_ENABLE on bzip2 > > + > > +Upstream-Status: Pending[Not submitted] > > + > > +Signed-off-by: Amarnath Valluri <amarnath.vall...@intel.com> > > +--- > > + configure.ac | 12 +++++++----- > > + 1 file changed, 7 insertions(+), 5 deletions(-) > > + > > +diff --git a/configure.ac b/configure.ac > > +index f94a17d..b11ef0a 100644 > > +--- a/configure.ac > > ++++ b/configure.ac > > +@@ -20,11 +20,13 @@ AC_CONFIG_HEADERS([config.h]) > > + PKG_CHECK_MODULES([lzma], [liblzma]) > > + PKG_CHECK_MODULES([zlib], [zlib]) > > + AC_ARG_ENABLE( > > +- bzip2, > > +- AS_HELP_STRING([--disable-bzip2],[Do not use bzip2 > > compression (uses bzip2 by default)]), > > +- AC_DEFINE(SWUPD_WITHOUT_BZIP2,1,[Do not use bzip2 > > compression]) , > > +- AC_DEFINE(SWUPD_WITH_BZIP2,1,[Use bzip2 compression]) > > +- AC_CHECK_LIB([bz2], [BZ2_bzBuffToBuffCompress], [], > > [AC_MSG_ERROR([the libbz2 library is missing])]) > > ++ [bzip2], > > ++ AS_HELP_STRING([--disable-bzip2],[Do not use bzip2 > > compression (uses bzip2 by default)]) > > ++) > > ++AS_IF([test "x$enable_bzip2" = "xyes" ], > > ++ [AC_DEFINE(SWUPD_WITH_BZIP2,1,[Use bzip2 compression]) > > ++ AC_CHECK_LIB([bz2], [BZ2_bzBuffToBuffCompress], [], > > [AC_MSG_ERROR([the libbz2 library is missing])])], > > ++ [AC_DEFINE(SWUPD_WITHOUT_BZIP2,1,[Do not use bzip2 > > compression])] > > + ) > > + > > + AC_ARG_WITH([systemdsystemunitdir], AS_HELP_STRING([--with- > > systemdsystemunitdir=DIR], > > +-- > > +2.1.4 > > + > > diff --git a/meta/recipes-devtools/swupd/swupd-client_2.87.bb > > b/meta/recipes-devtools/swupd/swupd-client_2.87.bb > > new file mode 100644 > > index 0000000..a5afdd6 > > --- /dev/null > > +++ b/meta/recipes-devtools/swupd/swupd-client_2.87.bb > > @@ -0,0 +1,49 @@ > > +SUMMARY = "swupd sofware update from Clear Linux - client > > component" > > +LICENSE = "GPL-2.0" > > +LIC_FILES_CHKSUM = > > "file://COPYING;md5=04d0b48662817042d80393e7511fa41b \ > > + file://bsdiff/LICENSE;md5=0dbe7a50f02826975063 > > 1fcbded3846a" > > + > > +SRC_URI = "\ > > + https://download.clearlinux.org/releases/5700/clear/source/SRP > > MS/${BPN}-${PV}-105.src.rpm;extract=${BP}.tar.gz \ > > + file://Fix-build-failure-on-Yocto.patch \ > > + file://Right-usage-of-AC_ARG_ENABLE-on-bzip2.patch \ > > + file://Change-systemctl-path-to-OE-systemctl-path.patch \ > > + file://0001-Tolerate-quotes-in-os-release-files.patch \ > > +" > > + > > +SRC_URI[md5sum] = "5d272c62edb8a9c576005ac5e1182ea3" > > +SRC_URI[sha256sum] = > > "45df259a7dc2fed985ee9961e112120fc46670dd75476c3262fc6804b1c66fb8" > > + > > +DEPENDS = "glib-2.0 curl zlib bzip2 xz openssl" > > +RDEPENDS_${PN} = "gzip bzip2 tar xz" > > +# swupd requires at least an update-triggers target, should it be > > part of the > > +# swupd-client package? > > +RDEPENDS_${PN} = "swupd-units" > > +# We check /etc/os-release for the current OS version number > > +RRECOMMENDS_${PN} = "os-release" > > + > > +inherit pkgconfig autotools-brokensep systemd > > + > > +EXTRA_OECONF = "--with- > > systemdsystemunitdir=${systemd_system_unitdir}" > > + > > +#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 > > + # should they not exist. This is due to a bash-specific shell > > command > > + # called to create the directories 'mkdir -p > > /var/lib/{delta,staged,download}' > > + install -d ${D}/var/lib/swupd/delta > > + install -d ${D}/var/lib/swupd/download > > + install -d ${D}/var/lib/swupd/staged > > + > > + # TODO: This should be a less os-specific directory and not > > hard-code datadir > > + install -d ${D}/usr/share/clear/bundles > > +} > > + > > +FILES_${PN} += "\ > > + /usr/share/clear \ > > + ${systemd_system_unitdir}/multi-user.target.wants* \ > > + /var/lib/swupd \ > Try using ${datadir} and ${localstatedir} if possible: > ${datadir}/clear > ${localstatedir}/lib//swupd > install -d ${D}${datadir}/clear/bundles
Unfortunately swupd hard-codes various paths including these, if we use the variables and the distro has defined those differently than what swupd expects this will fail. I do intend to fix swupd-client to take these paths as arguments and will switch to the variables then. Until that's done I will add a comment above FILES_${PN}. Regards, Joshua -- _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core