From 75ceb0d963b53ddde3b0ef2039f8a57ef6116eaf Mon Sep 17 00:00:00 2001 From: Tom Herbers Date: Tue, 9 Aug 2022 20:16:33 +0200 Subject: [PATCH] web-admin: ignore minor compat-version on upgrade (#2590) This implements the same behavior as it is used in the autoupdater [1]. This is for example required to allow the manual installation of firmware upgrades via the config mode on devices which where migrated from swconfig to DSA. Otherwise the image will always be invalid. [1] https://github.com/freifunk-gluon/packages/commit/b80428166454d184f356e5a14a144911d9ee11aa --- .../lib/gluon/config-mode/controller/admin/upgrade.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/gluon-web-admin/luasrc/lib/gluon/config-mode/controller/admin/upgrade.lua b/package/gluon-web-admin/luasrc/lib/gluon/config-mode/controller/admin/upgrade.lua index 0e7f0071..c29ed832 100644 --- a/package/gluon-web-admin/luasrc/lib/gluon/config-mode/controller/admin/upgrade.lua +++ b/package/gluon-web-admin/luasrc/lib/gluon/config-mode/controller/admin/upgrade.lua @@ -17,6 +17,7 @@ local unistd = require 'posix.unistd' local file local tmpfile = "/tmp/firmware.img" +local compat_option = "--ignore-minor-compat-version" local function filehandler(_, chunk, eof) @@ -64,7 +65,7 @@ local function action_upgrade(http, renderer) end local function image_supported(supported_tmpfile) - return (os.execute(string.format("exec /sbin/sysupgrade -T %q >/dev/null", supported_tmpfile)) == 0) + return (os.execute(string.format("exec /sbin/sysupgrade -T %s %q >/dev/null", compat_option, supported_tmpfile)) == 0) end local function storage_size() @@ -122,7 +123,7 @@ local function action_upgrade(http, renderer) }, 'gluon-web-admin') elseif step == 3 then - local cmd = {[0] = '/sbin/sysupgrade', tmpfile} + local cmd = {[0] = '/sbin/sysupgrade', compat_option, tmpfile} if http:formvalue('keepcfg') ~= '1' then table.insert(cmd, 1, '-n') end