On 10.11.22 13:45, Quirin Gylstorff wrote:From: Quirin Gylstorff <quirin.gylstorff@...>This patch adds a pre/post function to the swupdate-handlerroundrobin to compare the uuid parameter from the sw-descriptionwith the uuid of the current system to avoid a updating withthe same image and breaking the update cycle.Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>--- ...-add-uuidcheck-to-roundrobin-handler.patch | 43 +++++++++++++++++++ .../swupdate-handler-roundrobin_0.1.bb | 3 ++ 2 files changed, 46 insertions(+) create mode 100644 recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patchdiff --git a/recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patch b/recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patchnew file mode 100644index 0000000..f2392f4--- /dev/null+++ b/recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patch@@ -0,0 +1,43 @@+From f093a3a097e518ef9f74ff88eafa9259ba50626f Mon Sep 17 00:00:00 2001+From: Quirin Gylstorff <quirin.gylstorff@...>+Date: Tue, 8 Nov 2022 16:08:25 +0100+Subject: [PATCH] add uuidcheck to roundrobin handler++Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>+---+ swupdate_handlers_roundrobin.lua | 22 +++++++++++++++++++++++ 1 file changed, 22 insertions(+)++diff --git a/swupdate_handlers_roundrobin.lua b/swupdate_handlers_roundrobin.lua+index bf9c997..bb24fc7 100644+--- a/swupdate_handlers_roundrobin.lua++++ b/swupdate_handlers_roundrobin.lua+@@ -726,3 +726,25 @@ function pp_mmclock(when, device, image)+ swupdate.info("%s: %s MMC device %s", logprefix, when == WHEN.PRE and "Unlocked" or "Locked", device)+ return true+ end++++function pp_uuidcheck(when, uuid, image)++ local filename = "/etc/os-release"++ local filehandle = io.open(filename, "rb")++ if not filehandle then++ swupdate.error("%s: Cannot open file %s", logprefix, filename)++ return false++ end++ osrelease = filehandle:read("*a")++ filehandle:close()++ image_uuid = string.match(osrelease, "IMAGE_UUID.*")++ if not image_uuid then++ swupdate.error("%s: Cannot find IMAGE_UUID in %s", logprefix, filename)++ return false++ end++ swupdate.debug("%s: %s", logprefix, image_uuid, uuid)++ if string.find(image_uuid, uuid, 1, true) then++ swupdate.error("%s: Update already installed.", logprefix)++ return false++ end++ return true++end+--+2.35.1+diff --git a/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bb b/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bbindex 65cd652..447a093 100644--- a/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bb+++ b/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bb@@ -13,8 +13,11 @@ inherit dpkg-raw PROVIDES = "swupdate-handlers" SRC_URI += "git://gitlab.com/cip-project/cip-sw-updates/swupdate-handler-roundrobin.git;protocol=https;destsuffix=swupdate-handler-roundrobin;name=swupdate-handler-roundrobin;nobranch=1"+SRC_URI += "file://0001-add-uuidcheck-to-roundrobin-handler.patch"Can we upstream that directly? It's a CIP sub-project - should be doable. ;)
From: Quirin Gylstorff <quirin.gylstorff@...>This patch adds a pre/post function to the swupdate-handlerroundrobin to compare the uuid parameter from the sw-descriptionwith the uuid of the current system to avoid a updating withthe same image and breaking the update cycle.Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>--- ...-add-uuidcheck-to-roundrobin-handler.patch | 43 +++++++++++++++++++ .../swupdate-handler-roundrobin_0.1.bb | 3 ++ 2 files changed, 46 insertions(+) create mode 100644 recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patchdiff --git a/recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patch b/recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patchnew file mode 100644index 0000000..f2392f4--- /dev/null+++ b/recipes-core/swupdate-handler-roundrobin/files/0001-add-uuidcheck-to-roundrobin-handler.patch@@ -0,0 +1,43 @@+From f093a3a097e518ef9f74ff88eafa9259ba50626f Mon Sep 17 00:00:00 2001+From: Quirin Gylstorff <quirin.gylstorff@...>+Date: Tue, 8 Nov 2022 16:08:25 +0100+Subject: [PATCH] add uuidcheck to roundrobin handler++Signed-off-by: Quirin Gylstorff <quirin.gylstorff@...>+---+ swupdate_handlers_roundrobin.lua | 22 +++++++++++++++++++++++ 1 file changed, 22 insertions(+)++diff --git a/swupdate_handlers_roundrobin.lua b/swupdate_handlers_roundrobin.lua+index bf9c997..bb24fc7 100644+--- a/swupdate_handlers_roundrobin.lua++++ b/swupdate_handlers_roundrobin.lua+@@ -726,3 +726,25 @@ function pp_mmclock(when, device, image)+ swupdate.info("%s: %s MMC device %s", logprefix, when == WHEN.PRE and "Unlocked" or "Locked", device)+ return true+ end++++function pp_uuidcheck(when, uuid, image)++ local filename = "/etc/os-release"++ local filehandle = io.open(filename, "rb")++ if not filehandle then++ swupdate.error("%s: Cannot open file %s", logprefix, filename)++ return false++ end++ osrelease = filehandle:read("*a")++ filehandle:close()++ image_uuid = string.match(osrelease, "IMAGE_UUID.*")++ if not image_uuid then++ swupdate.error("%s: Cannot find IMAGE_UUID in %s", logprefix, filename)++ return false++ end++ swupdate.debug("%s: %s", logprefix, image_uuid, uuid)++ if string.find(image_uuid, uuid, 1, true) then++ swupdate.error("%s: Update already installed.", logprefix)++ return false++ end++ return true++end+--+2.35.1+diff --git a/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bb b/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bbindex 65cd652..447a093 100644--- a/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bb+++ b/recipes-core/swupdate-handler-roundrobin/swupdate-handler-roundrobin_0.1.bb@@ -13,8 +13,11 @@ inherit dpkg-raw PROVIDES = "swupdate-handlers" SRC_URI += "git://gitlab.com/cip-project/cip-sw-updates/swupdate-handler-roundrobin.git;protocol=https;destsuffix=swupdate-handler-roundrobin;name=swupdate-handler-roundrobin;nobranch=1"+SRC_URI += "file://0001-add-uuidcheck-to-roundrobin-handler.patch"
SRCREV_swupdate-handler-roundrobin ?= "fbc8d8a7e4ae8c381198cab81ae3fb13398a028e" +S="${WORKDIR}/${PN}"Unrelated or even unneeded change?
SRCREV_swupdate-handler-roundrobin ?= "fbc8d8a7e4ae8c381198cab81ae3fb13398a028e" +S="${WORKDIR}/${PN}"
+ SWUPDATE_LUASCRIPT = "swupdate-handler-roundrobin/swupdate_handlers_roundrobin.lua" SWUPDATE_ROUND_ROBIN_HANDLER_CONFIG ?= "swupdate.handler.${SWUPDATE_BOOTLOADER}.ini"Jan
+ SWUPDATE_LUASCRIPT = "swupdate-handler-roundrobin/swupdate_handlers_roundrobin.lua" SWUPDATE_ROUND_ROBIN_HANDLER_CONFIG ?= "swupdate.handler.${SWUPDATE_BOOTLOADER}.ini"
© 2023 Groups.io