From ab6e4472fb562f802c5c6166d7e4a6b8627134cc Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Mon, 26 Mar 2018 17:18:49 -0700 Subject: [PATCH] Exclude packages already being updated from lists of updates --- package-updates/package-updates-lib.pl | 7 ++++--- package-updates/update.cgi | 2 +- package-updates/update.pl | 4 ++-- system-status/system_info.pl | 6 ++++++ 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/package-updates/package-updates-lib.pl b/package-updates/package-updates-lib.pl index 1a43341e7..abfd02267 100644 --- a/package-updates/package-updates-lib.pl +++ b/package-updates/package-updates-lib.pl @@ -706,9 +706,10 @@ sub get_update_progress my @rv; foreach my $f (glob("$update_progress_dir/*")) { my %u; - &read_file($f, $u) || next; - kill(0, $u->{'pid'}) || next; - push(@rv, $u); + &read_file($f, \%u) || next; + $u{'pid'} || next; + kill(0, $u{'pid'}) || next; + push(@rv, \%u); } return @rv; } diff --git a/package-updates/update.cgi b/package-updates/update.cgi index 408c2b0b6..bdb7de183 100755 --- a/package-updates/update.cgi +++ b/package-updates/update.cgi @@ -100,7 +100,7 @@ else { # Do it $msg = $in{'mode'} eq 'new' ? 'update_pkg2' : 'update_pkg'; - &start_update_progress(\@pkgs); + &start_update_progress([ map { (split(/\//, $_))[0] } @pkgs ]); if ($config{'update_multiple'} && @pkgs > 1) { # Update all packages at once @pkgnames = ( ); diff --git a/package-updates/update.pl b/package-updates/update.pl index 13b283b73..428fecd87 100755 --- a/package-updates/update.pl +++ b/package-updates/update.pl @@ -17,7 +17,7 @@ foreach $a (@todo) { # Install packages that are needed $tellcount = 0; %already = ( ); -&start_update_progress(\@todo); +&start_update_progress([ map { $_->{'name'} } @todo ]); foreach $t (@todo) { next if ($already{$t->{'update'}}); if ($t->{'level'} <= $config{'sched_action'}) { @@ -41,7 +41,7 @@ foreach $t (@todo) { $tellcount++; } } -&end_update_progress(\@todo); +&end_update_progress(); if ($tellcount) { # Add link to Webmin diff --git a/system-status/system_info.pl b/system-status/system_info.pl index 32fc2999d..7d486eb81 100644 --- a/system-status/system_info.pl +++ b/system-status/system_info.pl @@ -247,6 +247,12 @@ if ($info->{'disk_fs'} && &show_section('disk')) { # Package updates if ($info->{'poss'} && &show_section('poss')) { my @poss = @{$info->{'poss'}}; + &foreign_require("package-updates"); + my %prog; + foreach my $p (&package_updates::get_update_progress()) { + %prog = (%prog, (map { $_, 1 } split(/\s+/, $p->{'pkgs'}))); + } + @poss = grep { !$prog{$_->{'name'}} } @poss; my @secs = grep { $_->{'security'} } @poss; my $msg; if (@poss && @secs) {