#!/usr/bin/perl # Update selected packages require './package-updates-lib.pl'; &ReadParse(); if ($in{'redir'}) { $redir = $in{'redir'}; $redirdesc = $in{'redirdesc'}; } elsif ($in{'redirdesc'}) { $redir = "javascript:history.back()"; $redirdesc = $in{'redirdesc'}; } else { $redir = "index.cgi?mode=".&urlize($in{'mode'}). "&search=".&urlize($in{'search'}); $redirdesc = $text{'index_return'}; } if ($in{'refresh'} || $in{refresh_top}) { &ui_print_unbuffered_header(undef, $text{'refresh_title'}, ""); # Clear all caches print $text{'refresh_clearing'},"<br>\n"; &flush_package_caches(); &clear_repository_cache(); print $text{'refresh_done'},"<p>\n"; # Force re-fetch print $text{'refresh_available'},"<br>\n"; @avail = &list_possible_updates(); print &text('refresh_done3', scalar(@avail)),"<p>\n"; &webmin_log("refresh"); &ui_print_footer($redir, $redirdesc); } else { # Upgrade some packages my @pkgs = split(/\0/, $in{'u'}); @pkgs || &error($text{'update_enone'}); &ui_print_unbuffered_header(undef, $in{'mode'} eq 'new' ? $text{'update_title2'} : $text{'update_title'}, ""); # Save this CGI from being killed by a webmin or apache upgrade $SIG{'TERM'} = 'IGNORE'; $SIG{'PIPE'} = 'IGNORE'; # Work out what will be done, if possible @ops = ( ); if (!$in{'confirm'}) { print $text{'update_ops'},"<p>\n"; @pkgnames = ( ); foreach my $ps (@pkgs) { ($p, $s) = split(/\//, $ps); push(@pkgnames, $p); } @ops = &list_package_operations(join(" ", @pkgnames), $s); } if (@ops) { # Ask first my $getconfform = sub { my ($bottom) = @_; my $bottom_sel; $bottom_sel = 'data-outside-of-viewport' if ($bottom); my $confform = &ui_form_start("update.cgi", "post", undef, $bottom_sel); $confform .= &ui_hidden("mode", $in{'mode'}); $confform .= &ui_hidden("search", $in{'search'}); $confform .= &ui_hidden("redir", $in{'redir'}); $confform .= &ui_hidden("redirdesc", $in{'redirdesc'}); foreach $ps (@pkgs) { $confform .= &ui_hidden("u", $ps); } $confform .= &text('update_rusure', scalar(@ops)),"<p>\n" if (!$bottom); $confform .= &ui_form_end([ [ "confirm", $text{'update_confirm'} ] ]); }; print &$getconfform(); # Show table of all depends @current = &list_current(1); print &ui_columns_start([ $text{'index_name'}, $text{'update_oldver'}, $text{'update_newver'}, $text{'index_desc'}, ], 100); foreach $p (@ops) { ($c) = grep { $_->{'name'} eq $p->{'name'} && $_->{'system'} eq $p->{'system'} } @current; if (!$c && !@avail) { # Only get available if needed @avail = &list_available(0); } ($a) = grep { $_->{'name'} eq $p->{'name'} && $_->{'system'} eq $p->{'system'} } @avail; print &ui_columns_row([ $p->{'name'}, $c ? $c->{'version'} : "<i>$text{'update_none'}</i>", $p->{'version'}, $c ? $c->{'desc'} : $a ? $a->{'desc'} : '', ]); } print &ui_columns_end(); print &$getconfform(1), &ui_hide_outside_of_viewport(); } else { # Check if a reboot was required before $reboot_before = &check_reboot_required(); # Do it $msg = $in{'mode'} eq 'new' ? 'update_pkg2' : 'update_pkg'; &start_update_progress([ map { (split(/\//, $_))[0] } @pkgs ]); if ($config{'update_multiple'} && @pkgs > 1) { # Update all packages at once @pkgnames = ( ); foreach my $ps (@pkgs) { ($p, $s) = split(/\//, $ps); push(@pkgnames, $p); $pkgsystem ||= $s; } print &text($msg, "<tt>".join(" ", @pkgnames)."</tt>"), "<br>\n"; print "<ul>\n"; @got = &package_install_multiple( \@pkgnames, $pkgsystem, $in{'mode'} eq 'new'); print "</ul><br>\n"; } else { # Do them one by one in a loop foreach my $ps (@pkgs) { ($p, $s) = split(/\//, $ps); next if ($donedep{$p}); print &text($msg, "<tt>$p</tt>"),"<br>\n"; print "<ul>\n"; @pgot = &package_install( $p, $s, $in{'mode'} eq 'new'); foreach $g (@pgot) { $donedep{$g}++; } push(@got, @pgot); print "</ul><br>\n"; } } if (@got) { print &text('update_ok', scalar(@got)),"<p>\n"; } else { print $text{'update_failed'},"<p>\n"; } &end_update_progress(\@pkgs); # Refresh collected package info if (&foreign_check("system-status")) { &foreign_require("system-status"); &system_status::refresh_possible_packages(\@got); } # Refresh collected package info if (&foreign_check("virtual-server") && @got) { &foreign_require("virtual-server"); &virtual_server::refresh_possible_packages(\@got); } # Check if a reboot is required now if (!$reboot_before && &check_reboot_required() && &foreign_check("init")) { print &ui_form_start( "@{[&get_webprefix()]}/init/reboot.cgi"); print &ui_hidden("confirm", 1); print "<b>",$text{'update_rebootdesc'},"</b><p>\n"; print &ui_form_end( [ [ undef, $text{'update_reboot'} ] ]); } &webmin_log("update", "packages", scalar(@got), { 'got' => \@got }); } &ui_print_footer($redir, $redirdesc); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
newfeatures | Folder | 0755 |
|
|
CHANGELOG | File | 406 B | 0644 |
|
config | File | 31 B | 0644 |
|
config.info | File | 145 B | 0644 |
|
config.info.ar | File | 253 B | 0644 |
|
config.info.ca | File | 172 B | 0644 |
|
config.info.de | File | 182 B | 0644 |
|
config.info.hu | File | 0 B | 0644 |
|
config.info.it | File | 191 B | 0644 |
|
config.info.nl | File | 98 B | 0644 |
|
config.info.no | File | 93 B | 0644 |
|
config.info.pl | File | 111 B | 0644 |
|
config.info.ru | File | 186 B | 0644 |
|
create_repo.cgi | File | 332 B | 0755 |
|
index.cgi | File | 7.7 KB | 0755 |
|
install_check.pl | File | 372 B | 0755 |
|
log_parser.pl | File | 742 B | 0644 |
|
module.info | File | 272 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 122 B | 0644 |
|
module.info.ar | File | 173 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 221 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 236 B | 0644 |
|
module.info.ca | File | 157 B | 0644 |
|
module.info.cs | File | 0 B | 0644 |
|
module.info.cs.auto | File | 150 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 129 B | 0644 |
|
module.info.de | File | 122 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 232 B | 0644 |
|
module.info.es | File | 0 B | 0644 |
|
module.info.es.auto | File | 160 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 140 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 230 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 148 B | 0644 |
|
module.info.fr | File | 0 B | 0644 |
|
module.info.fr.auto | File | 167 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 156 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 135 B | 0644 |
|
module.info.hu | File | 38 B | 0644 |
|
module.info.hu.auto | File | 94 B | 0644 |
|
module.info.it | File | 159 B | 0644 |
|
module.info.ja | File | 0 B | 0644 |
|
module.info.ja.auto | File | 193 B | 0644 |
|
module.info.ko | File | 0 B | 0644 |
|
module.info.ko.auto | File | 171 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 136 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 154 B | 0644 |
|
module.info.ms | File | 146 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 153 B | 0644 |
|
module.info.nl | File | 34 B | 0644 |
|
module.info.nl.auto | File | 82 B | 0644 |
|
module.info.no | File | 38 B | 0644 |
|
module.info.no.auto | File | 97 B | 0644 |
|
module.info.pl | File | 157 B | 0644 |
|
module.info.pt | File | 0 B | 0644 |
|
module.info.pt.auto | File | 151 B | 0644 |
|
module.info.pt_BR | File | 0 B | 0644 |
|
module.info.pt_BR.auto | File | 157 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 143 B | 0644 |
|
module.info.ru | File | 0 B | 0644 |
|
module.info.ru.auto | File | 224 B | 0644 |
|
module.info.sk | File | 0 B | 0644 |
|
module.info.sk.auto | File | 151 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 145 B | 0644 |
|
module.info.sv | File | 0 B | 0644 |
|
module.info.sv.auto | File | 139 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 258 B | 0644 |
|
module.info.tr | File | 0 B | 0644 |
|
module.info.tr.auto | File | 146 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 207 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 214 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 161 B | 0644 |
|
module.info.zh | File | 0 B | 0644 |
|
module.info.zh.auto | File | 103 B | 0644 |
|
module.info.zh_TW | File | 0 B | 0644 |
|
module.info.zh_TW.auto | File | 109 B | 0644 |
|
package-updates-lib.pl | File | 19.8 KB | 0644 |
|
save_repos.cgi | File | 1.55 KB | 0755 |
|
save_sched.cgi | File | 1.52 KB | 0755 |
|
save_view.cgi | File | 386 B | 0755 |
|
update.cgi | File | 5 KB | 0755 |
|
update.pl | File | 1.85 KB | 0755 |
|
view.cgi | File | 2.38 KB | 0755 |
|