From 3297ef76b3bd3a4a2fc430dcf85517bc7b8f24c8 Mon Sep 17 00:00:00 2001 From: Jan Schneider Date: Sun, 28 Jun 2020 19:16:24 +0200 Subject: [PATCH] Correct firmware version list if experimental version is installed --- addon/lib/rmupdate.tcl | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/addon/lib/rmupdate.tcl b/addon/lib/rmupdate.tcl index 1ff8824..7204ed9 100644 --- a/addon/lib/rmupdate.tcl +++ b/addon/lib/rmupdate.tcl @@ -1192,18 +1192,32 @@ proc ::rmupdate::get_firmware_info {} { write_log 1 "Failed to get latest supported version from ${support_file_url}" return "\[\]" } - + + set versions [list] set current [get_current_firmware_version] - set versions [list $current] + set experimental_version "" foreach e [get_available_firmware_downloads] { set version [get_version_from_filename $e] - set downloads($version) $e - if {[lsearch $versions $version] == -1} { - if {$version != "unknown"} { + if {$version != "unknown"} { + set downloads($version) $e + if {[string first "-" $version] != -1} { + set experimental_version $version + } elseif {[lsearch $versions $version] == -1} { lappend versions $version } } } + if {$experimental_version != ""} { + if {[lsearch $versions $experimental_version] == -1} { + set tmp [split $experimental_version "-"] + # experimental version != latest version + lappend versions $experimental_version + if {[lindex $tmp 0] == $current} { + # assuming that experimental version is installed + set current $experimental_version + } + } + } foreach e [get_available_firmware_images] { set version [get_version_from_filename $e] if {$version != "unknown"} { @@ -1213,6 +1227,9 @@ proc ::rmupdate::get_firmware_info {} { } } } + if {[lsearch $versions $current] == -1} { + lappend versions $current + } set versions [lsort -decreasing -command compare_versions $versions] set json "\["