From 35d88e8da4abe0850d40423bce3d8b84f1153712 Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Fri, 12 Feb 2021 00:03:06 +0100 Subject: [PATCH] firmware: support repository info for updates #4500 --- .../OPNsense/Core/Api/FirmwareController.php | 5 +++++ .../mvc/app/views/OPNsense/Core/firmware.volt | 16 +++++++++------- src/opnsense/scripts/firmware/check.sh | 17 +++++++++++++---- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php index cd08b9c3b..056eebf34 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Core/Api/FirmwareController.php @@ -167,6 +167,7 @@ class FirmwareController extends ApiControllerBase 'old' => $value['current_version'], 'new' => $value['new_version'], 'name' => $value['name'], + 'repository' => $value['repository'], ); break; case 'new_packages': @@ -174,6 +175,7 @@ class FirmwareController extends ApiControllerBase 'new' => $value['version'], 'reason' => gettext('new'), 'name' => $value['name'], + 'repository' => $value['repository'], 'old' => gettext('N/A'), ); break; @@ -182,6 +184,7 @@ class FirmwareController extends ApiControllerBase 'reason' => gettext('reinstall'), 'new' => $value['version'], 'old' => $value['version'], + 'repository' => $value['repository'], 'name' => $value['name'], ); break; @@ -191,6 +194,7 @@ class FirmwareController extends ApiControllerBase 'new' => gettext('N/A'), 'old' => $value['version'], 'name' => $value['name'], + 'repository' => gettext('N/A'), ); break; case 'upgrade_packages': @@ -199,6 +203,7 @@ class FirmwareController extends ApiControllerBase 'old' => empty($value['current_version']) ? gettext('N/A') : $value['current_version'], 'new' => $value['new_version'], + 'repository' => $value['repository'], 'name' => $value['name'], ); break; diff --git a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt index 7d41672c0..3304376d7 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Core/firmware.volt @@ -81,12 +81,12 @@ $('#updatelist > tbody').empty(); $('#updatetab > a').tab('show'); $("#updatelist > thead").html("{{ lang._('Package Name') }}" + - "{{ lang._('Current Version') }}{{ lang._('New Version') }}" + - "{{ lang._('Required Action') }}"); + "{{ lang._('Repository') }}{{ lang._('Current Version') }}" + + "{{ lang._('New Version') }}{{ lang._('Required Action') }}"); $.each(data['all_packages'], function (index, row) { $('#updatelist > tbody').append(''+row['name']+'' + - ''+row['old']+''+row['new']+'' + - row['reason'] + ''); + ''+row['repository']+''+row['old']+'' + + row['new']+''+row['reason'] + ''); if (row['name'] == data['product_name'] && row['new'] != 'N/A') { $.upgrade_show_log = row['new'].replace(/[_-].*/, ''); @@ -359,7 +359,7 @@ var local_count = 0; var plugin_count = 0; - var missing_plugins = 0; + var broken_plugins = 0; var changelog_count = 0; var changelog_max = 15; if ($.changelog_keep_full != undefined) { @@ -415,11 +415,12 @@ status_text = ' ({{ lang._('misconfigured') }})'; bold_on = ''; bold_off = ''; + broken_plugins = 1; } else if (row['installed'] == "0" && row['configured'] == "1") { status_text = ' ({{ lang._('missing') }})'; bold_on = ''; bold_off = ''; - missing_plugins = 1; + broken_plugins = 1; } else if (row['installed'] == "1") { status_text = ' ({{ lang._('installed') }})'; bold_on = ''; @@ -461,7 +462,7 @@ $("#plugin_search").keyup(); $("#package_search").keyup(); - if (missing_plugins) { + if (broken_plugins) { $('#plugin_actions').show(); } else { $('#plugin_actions').hide(); @@ -815,6 +816,7 @@
+ diff --git a/src/opnsense/scripts/firmware/check.sh b/src/opnsense/scripts/firmware/check.sh index 31afde848..c5c90ac4d 100755 --- a/src/opnsense/scripts/firmware/check.sh +++ b/src/opnsense/scripts/firmware/check.sh @@ -42,6 +42,7 @@ LOCKFILE="/tmp/pkg_upgrade.progress" OUTFILE="/tmp/pkg_update.out" PACKAGE=${1} TEE="/usr/bin/tee -a" +UPSTREAM="OPNsense" rm -f ${JSONFILE} : > ${LOCKFILE} @@ -144,7 +145,12 @@ fi MODE= - for i in $(cat ${OUTFILE} | tr '[' '(' | cut -d '(' -f1); do + while read LINE; do + REPO=$(echo "${LINE}" | grep -o '\[.*\]' | tr -d '[]') + if [ -z "${REPO}" ]; then + REPO=${UPSTREAM} + fi + for i in $(echo "${LINE}" | tr '[' '(' | cut -d '(' -f1); do case ${MODE} in DOWNGRADED:) if [ "$(expr $linecount + 4)" -eq "$itemcount" ]; then @@ -158,6 +164,7 @@ fi else packages_downgraded=$packages_downgraded", {\"name\":\"$i\"," fi + packages_downgraded=$packages_downgraded"\"repository\":\"${REPO}\"," fi fi if [ "$(expr $linecount + 3)" -eq "$itemcount" ]; then @@ -178,7 +185,7 @@ fi if [ -n "$packages_new" ]; then packages_new=$packages_new"," fi - packages_new=$packages_new"{\"name\":\"$i\"," + packages_new=$packages_new"{\"name\":\"$i\",\"repository\":\"${REPO}\"," fi fi if [ "$(expr $linecount + 1)" -eq "$itemcount" ]; then @@ -198,7 +205,7 @@ fi if [ -n "$packages_reinstall" ]; then packages_reinstall=$packages_reinstall"," # separator for next item fi - packages_reinstall=$packages_reinstall"{\"name\":\"$name\",\"version\":\"$version\"}" + packages_reinstall=$packages_reinstall"{\"name\":\"$name\",\"version\":\"$version\",\"repository\":\"${REPO}\"}" fi fi ;; @@ -232,6 +239,7 @@ fi else packages_upgraded=$packages_upgraded", {\"name\":\"$i\"," fi + packages_upgraded=$packages_upgraded"\"repository\":\"${REPO}\"," fi fi if [ "$(expr $linecount + 3)" -eq "$itemcount" ]; then @@ -261,7 +269,8 @@ fi ;; esac done - fi + done < ${OUTFILE} + fi # the main update from package will provide this during upgrade if [ -n "${PACKAGE}" ]; then