[ Avaa Bypassed ]




Upload:

Command:

www-data@3.22.208.84: ~ $
# yum-lib.pl
# Functions for installing packages with yum

if ($config{'yum_config'}) {
	$yum_config = $config{'yum_config'};
	}
elsif (&has_command("yum")) {
	$yum_config = "/etc/yum.conf";
	}
elsif (&has_command("dnf")) {
	$yum_config = "/etc/dnf/dnf.conf";
	}

$yum_command = &has_command("dnf") || &has_command("yum") || "yum";
$yum_repos_dir = "/etc/yum.repos.d";

sub list_update_system_commands
{
return ($yum_command);
}

# update_system_install([packages], [&in])
# Install some package with yum
sub update_system_install
{
local $update = $_[0] || $in{'update'};
local $in = $_[1];
$update =~ s/\.\*/\*/g;
local $enable;
if ($in->{'enablerepo'}) {
	$enable = "enablerepo=".quotemeta($in->{'enablerepo'});
	}
local (@rv, @newpacks);

# If there are multiple architectures to update for a package, split them out
local @updates = split(/\s+/, $update);
local @names = map { &append_architectures($_) } split(/\s+/, $update);
if (@names == 1) {
	@names = ( $update );
	}
$update = join(" ", map { quotemeta($_) } @names);

# Work out command to use - for DNF, upgrades need to use the update command
local $cmd;
if ($yum_command =~ /dnf$/) {
	local @pinfo = &package_info($updates[0]);
	if ($pinfo[0]) {
		$cmd = "update";
		}
	else {
		$cmd = "install";
		}
	}
else {
	$cmd = "install";
	}

# Work out the command to run, which may enable some repos
my $uicmd = "$yum_command $enable -y $cmd ".join(" ", @names);
my $fullcmd = "$yum_command $enable -y $cmd $update";
foreach my $u (@updates) {
	my $repo = &update_system_repo($u);
	if ($repo) {
		$fullcmd = "$yum_command -y $cmd $repo ; $fullcmd";
		}
	}

print "<b>",&text('yum_install', "<tt>".&html_escape($uicmd)."</tt>"),"</b><p>\n";
print "<pre>";
&additional_log('exec', undef, $fullcmd);
$SIG{'TERM'} = 'ignore';	# Installing webmin itself may kill this script
&open_execute_command(CMD, "$fullcmd </dev/null", 2);
while(<CMD>) {
	s/\r|\n//g;
	if (/^\[(update|install|deps):\s+(\S+)\s+/) {
		push(@rv, $2);
		}
	elsif (/^(Installed|Dependency Installed|Updated|Dependency Updated|Upgraded):\s*(.*)/) {
		# Line like :
		# Updated:
		#   wbt-virtual-server-theme.x86
		local @pkgs = split(/\s+/, $2);
		if (!@pkgs) {
			# Wrapped to next line(s)
			while(1) {
				local $pkgs = <CMD>;
				last if (!$pkgs);
				print &html_escape($pkgs);
				$pkgs =~ s/^\s+//;
				$pkgs =~ s/\s+$//;
				my @linepkgs = split(/\s+/, $_);
				last if (!@linepkgs);
				push(@pkgs, @linepkgs);
				}
			}
		foreach my $p (@pkgs) {
			if ($p !~ /:/ && $p =~ /^(\S+)\.(\S+)$/) {
				my $pname = $1;
				if ($p =~ /[^0-9\.\-\_i]/) {
					push(@rv, $pname);
					}
				}
			}
		}
	elsif (/^\s+(Updating|Installing|Upgrading)\s+:\s+(\S+)/) {
		# Line like :
		#   Updating       : wbt-virtual-server-theme       1/2 
		# or
		#   Installing : 2:nmap-5.51-2.el6.i686             1/1
		local $pkg = $2;
		$pkg =~ s/^\d://;	# Strip epoch from front
		$pkg =~ s/\-\d.*$//;	# Strip version number from end
		push(@rv, $pkg);
		}
	if (!/ETA/ && !/\%\s+done\s+\d+\/\d+\s*$/) {
		print &html_escape($_."\n");
		}
	if ($update =~ /perl\(/ && /No\s+package\s+.*available/i) {
		$nopackage = 1;
		}
	}
close(CMD);
print "</pre>\n";
if ($? || $nopackage) {
	print "<b>$text{'yum_failed'}</b><p>\n";
	return ( );
	}
else {
	print "<b>$text{'yum_ok'}</b><p>\n";
	return &unique(@rv);
	}
}

# append_architectures(package)
# Given a package name, if it has multiple architectures return the name with
# each appended
sub append_architectures
{
my ($name) = @_;
local %packages;
my $n = &list_packages($name);
return ( $name ) if (!$n);
my @rv;
for(my $i=0; $i<$n; $i++) {
	if ($packages{$i,'arch'}) {
		push(@rv, $packages{$i,'name'}.".".$packages{$i,'arch'});
		}
	else {
		push(@rv, $packages{$i,'name'});
		}
	}
@rv = &unique(@rv);
return @rv;
}

# update_system_operations(packages)
# Given a list of packages, returns a list containing packages that will
# actually get installed, each of which is a hash ref with name and version.
sub update_system_operations
{
my ($packages) = @_;
my $temp = &transname();
&open_tempfile(SHELL, ">$temp", 0, 1);
&print_tempfile(SHELL, "install $packages\n");
&print_tempfile(SHELL, "transaction solve\n");
&close_tempfile(SHELL);
my @rv;
open(SHELL, "$yum_command shell $temp |");
while(<SHELL>) {
	if (/Package\s+(\S+)\s+(\S+)\s+(set|will\s+be\s+an\s+update)/i) {
		my $pkg = { 'name' => $1,
			    'version' => $2 };
		if ($pkg->{'name'} =~ s/\.([^\.]+)$//) {
			$pkg->{'arch'} = $1;
			}
		if ($pkg->{'version'} =~ s/^(\S+)://) {
			$pkg->{'epoch'} = $1;
			}
		push(@rv, $pkg);
		}
	}
close(SHELL);
&unlink_file($temp);
return @rv;
}

# show_update_system_opts()
# Returns HTML for enabling a repository, if any are disabled
sub show_update_system_opts
{
local @pinfo = &package_info("yum");
if (&compare_versions($pinfo[4], "2.1.10") > 0) {
	local $conf = &get_yum_config();
	local @ena;
	foreach my $r (@$conf) {
		if ($r->{'values'}->{'enabled'} eq '0') {
			push(@ena, $r->{'name'});
			}
		}
	if (@ena) {
		return $text{'yum_enable'}." ".
		       &ui_select("enablerepo", "",
				  [ [ "", $text{'yum_none'} ],
				    map { [ $_ ] } @ena ]);
		}
	}
return undef;
}

# update_system_resolve(name)
# Converts a standard package name like apache, sendmail or squid into
# the name used by YUM.
sub update_system_resolve
{
local ($name) = @_;
local $maria = $gconfig{'real_os_type'} =~ /CentOS|Redhat|Scientific/ &&
	       $gconfig{'real_os_version'} >= 7;
return $name eq "apache" ? "httpd mod_.*" :
       $name eq "dhcpd" ? "dhcp" :
       $name eq "mysql" && $maria ? "mariadb mariadb-server mariadb-devel" :
       $name eq "mysql" && !$maria ? "mysql mysql-server mysql-devel" :
       $name eq "openssh" ? "openssh openssh-server" :
       $name eq "postgresql" ? "postgresql postgresql-libs postgresql-server" :
       $name eq "openldap" ? "openldap-servers openldap-clients" :
       $name eq "ldap" ? "nss-pam-ldapd pam_ldap nss_ldap" :
       $name eq "virtualmin-modules" ? "wbm-.*" :
       			  $name;
}

# update_system_repo(package)
# Returns the extra repo package that needs to be installed first before
# installing some package, if needed
sub update_system_repo
{
local ($name) = @_;
return $name eq "certbot" ? "epel-release" : undef;
}

# update_system_available()
# Returns a list of package names and versions that are available from YUM
sub update_system_available
{
local @rv;
local %done;
&open_execute_command(PKG, "$yum_command info", 1, 1);
while(<PKG>) {
	s/\r|\n//g;
	if (/^Name\s*:\s*(\S+)/) {
		if ($done{$1}) {
			# Seen before .. update with newer info. This can happen
			# when YUM shows the installed version first.
			$pkg = $done{$1};
			delete($pkg->{'epoch'});
			delete($pkg->{'version'});
			}
		else {
			# Start of a new package
			$pkg = { 'name' => $1 };
			$done{$pkg->{'name'}} = $pkg;
			push(@rv, $pkg);
			}
		}
	elsif (/^Arch\s*:\s*(\S+)/) {
		$pkg->{'arch'} = $1;
		}
	elsif (/^Version\s*:\s*(\S+)/) {
		$pkg->{'version'} = $1;
		if ($pkg->{'version'} =~ s/^(\S+)://) {
			$pkg->{'epoch'} = $1;
			}
		}
	elsif (/^Release\s*:\s*(\S+)/) {
		$pkg->{'version'} .= "-".$1;
		}
	elsif (/^Repo\s*:\s*(\S+)/) {
		$pkg->{'source'} = $1;
		}
	elsif (/^Summary\s*:\s*(\S.*)/) {
		$pkg->{'desc'} = $1;
		}
	elsif (/^Epoch\s*:\s*(\S.*)/) {
		$pkg->{'epoch'} = $1;
		}
	}
close(PKG);
@rv = grep { $_->{'arch'} ne 'src' } @rv;
&set_yum_security_field(\%done);
return @rv;
}

# set_yum_security_field(&package-hash)
# Set security field on packages which are security updates
sub set_yum_security_field
{
local ($done) = @_;
&open_execute_command(PKG, "$yum_command updateinfo list sec 2>/dev/null", 1, 1);
while(<PKG>) {
	s/\r|\n//g;
	if (/^\S+\s+\S+\s+(\S+?)\-([0-9]\S+)\.([^\.]+)$/) {
		local ($name, $ver) = ($1, $2);
		if ($done->{$name}) {
			$done->{$name}->{'source'} ||= 'security';
			$done->{$name}->{'security'} = 1;
			}
		}
	}
close(PKG);
&open_execute_command(PKG, "$yum_command list-sec 2>/dev/null", 1, 1);
while(<PKG>) {
	s/\r|\n//g;
	next if (/^(Loaded|updateinfo)/);
	if (/^\S+\s+\S+\s+(\S+?)\-([0-9]\S+)\.([^\.]+)$/) {
		local ($name, $ver) = ($1, $2);
		if ($done->{$name}) {
			$done->{$name}->{'source'} ||= 'security';
			$done->{$name}->{'security'} = 1;
			}
		}
	}
close(PKG);
}

# update_system_updates()
# Returns a list of package updates available from yum
sub update_system_updates
{
local @rv;
local %done;
if ($yum_command =~ /dnf/) {
	&open_execute_command(PKG, "$yum_command check-update 2>/dev/null", 1, 1);
	}
else {
	&open_execute_command(PKG, "$yum_command check-update 2>/dev/null | tr '\n' '#' | sed -e 's/# / /g' | tr '#' '\n'", 1, 1);
	}

while(<PKG>) {
        s/\r|\n//g;
	if (/^(\S+)\.([^\.]+)\s+(\S+)\s+(\S+)/ && $2 ne 'src') {
		local $pkg = { 'name' => $1,
			       'arch' => $2,
			       'version' => $3,
			       'source' => $4 };
		if ($pkg->{'version'} =~ s/^(\S+)://) {
			$pkg->{'epoch'} = $1;
			}
		$done{$pkg->{'name'}} = $pkg;
		push(@rv, $pkg);
		}
	}
close(PKG);
&set_yum_security_field(\%done);
return @rv;
}

# get_yum_config()
# Returns entries from the YUM config file, as a list of hash references
sub get_yum_config
{
local @rv;
local $sect;
open(CONF, "<".$yum_config);
while(<CONF>) {
	s/\r|\n//g;
	s/^\s*#.*$//;
	if (/^\s*\[(.*)\]/) {
		# Start of a section
		$sect = { 'name' => $1,
			  'values' => { } };
		push(@rv, $sect);
		}
	elsif (/^\s*(\S+)\s*=\s*(.*)/ && $sect) {
		# Value in a section
		$sect->{'values'}->{lc($1)} = $2;
		}
	}
close(CONF);
return \@rv;
}

# list_package_repos()
# Returns a list of configured repositories
sub list_package_repos
{
my @rv;

# Parse the raw repo files
my $repo;
foreach my $f (glob("$yum_repos_dir/*.repo")) {
	my $lref = &read_file_lines($f, 1);
	my $lnum = 0;
	foreach my $l (@$lref) {
		$l =~ s/#.*$//;
		if ($l =~ /^\[(\S+)\]/) {
			# Start of a new repo
			$repo = { 'file' => $f,
				  'line' => $lnum,
				  'eline' => $lnum,
				  'id' => $1,
				};
			push(@rv, $repo);
			}
		elsif ($l =~ /^([^= ]+)=(.*)$/ && $repo) {
			# Line in a repo
			$repo->{'raw'}->{$1} = $2;
			$repo->{'eline'} = $lnum;
			}
		$lnum++;
		}
	}

# Extract common information
foreach my $repo (@rv) {
	my $name = $repo->{'raw'}->{'name'};
	$name =~ s/\s*-.*//;
	$name =~ s/\s*\$[a-z0-9]+//gi;
	$repo->{'name'} = $repo->{'id'}." (".$name.")";
	$repo->{'url'} = $repo->{'raw'}->{'baseurl'} ||
			 $repo->{'raw'}->{'mirrorlist'};
	$repo->{'enabled'} = defined($repo->{'raw'}->{'enabled'}) ?
				$repo->{'raw'}->{'enabled'} : 1;
	}

return @rv;
}

# create_repo_form()
# Returns HTML for a package repository creation form
sub create_repo_form
{
my $rv;
$rv .= &ui_table_row($text{'yum_repo_id'},
		     &ui_textbox("id", undef, 20));
$rv .= &ui_table_row($text{'yum_repo_name'},
		     &ui_textbox("name", undef, 60));
$rv .= &ui_table_row($text{'yum_repo_url'},
		     &ui_textbox("url", undef, 60));
$rv .= &ui_table_row($text{'yum_repo_gpg'},
		     &ui_opt_textbox("gpg", undef, 60, $text{'yum_repo_none'}));
return $rv;
}

# create_repo_parse(&in)
# Parses input from create_repo_form, and returns either a new repo object or
# an error string
sub create_repo_parse
{
my ($in) = @_;
my $repo = { 'raw' => { 'enabled' => 1 } };

# ID must be valid and unique
$in->{'id'} =~ /^[a-z0-9\-\_]+$/i || return $text{'yum_repo_eid'};
my ($clash) = grep { $_->{'id'} eq $in->{'id'} } &list_package_repos();
$clash && return $text{'yum_repo_eidclash'};
$repo->{'id'} = $in->{'id'};

# Human-readable repo name
$in->{'name'} =~ /\S/ || return $text{'yum_repo_ename'};
$repo->{'raw'}->{'name'} = $in->{'name'};

# Base URL
$in->{'url'} =~ /^(http|https):/ || return $text{'yum_repo_eurl'};
$repo->{'raw'}->{'baseurl'} = $in->{'url'};

# GPG key file
if (!$in->{'gpg_def'}) {
	-r $in->{'gpg'} || return $text{'yum_repo_egpg'};
	$repo->{'raw'}->{'gpgcheck'} = 1;
	$repo->{'raw'}->{'gpgkey'} = 'file://'.$in->{'gpg'};
	}

return $repo;
}

# create_package_repo(&repo)
# Creates a new repository from the given hash (returned by create_repo_parse)
sub create_package_repo
{
my ($repo) = @_;
my $file = "$yum_repos_dir/$repo->{'id'}.repo";
-r $file && return $text{'yum_repo_efile'};

&lock_file($file);
my $lref = &read_file_lines($file);
push(@$lref, "[$repo->{'id'}]");
foreach my $r (keys %{$repo->{'raw'}}) {
	push(@$lref, $r."=".$repo->{'raw'}->{$r});
	}
&flush_file_lines($file);
&unlock_file($file);

return undef;
}

# delete_package_repo(&repo)
# Delete a repository from it's config file. Does not delete the file even if
# empty, to prevent it from being re-created if it came from an RPM package.
sub delete_package_repo
{
my ($repo) = @_;
&lock_file($repo->{'file'});
my $lref = &read_file_lines($repo->{'file'});
splice(@$lref, $repo->{'line'}, $repo->{'eline'}-$repo->{'line'}+1);
&flush_file_lines($repo->{'file'});
&unlock_file($repo->{'file'});
}

# enable_package_repo(&repo, enable?)
# Enable or disable a repository
sub enable_package_repo
{
my ($repo, $enable) = @_;
&lock_file($repo->{'file'});
my $lref = &read_file_lines($repo->{'file'});
my $e = "enabled=".($enable ? 1 : 0);
if (defined($repo->{'raw'}->{'enabled'})) {
	# There's a line to update already
	for(my $i=$repo->{'line'}; $i<=$repo->{'eline'}; $i++) {
		if ($lref->[$i] =~ /^enabled=/) {
			$lref->[$i] = $e;
			last;
			}
		}
	}
else {
	# Need to add a line
	splice(@$lref, $repo->{'eline'}, 0, $e);
	}
&flush_file_lines($repo->{'file'});
&unlock_file($repo->{'file'});
}

1;


Filemanager

Name Type Size Permission Actions
help Folder 0755
images Folder 0755
lang Folder 0755
CHANGELOG File 2.82 KB 0644
aix-lib.pl File 19.2 KB 0755
apt-lib.pl File 14.09 KB 0755
apt_upgrade.cgi File 1.97 KB 0755
cgi_args.pl File 524 B 0755
close.cgi File 263 B 0755
config-aix File 30 B 0644
config-cobalt-linux File 30 B 0644
config-coherent-linux File 30 B 0644
config-corel-linux File 33 B 0644
config-cygwin File 33 B 0644
config-debian-linux File 51 B 0644
config-freebsd File 54 B 0644
config-freebsd-8.4-ALL File 52 B 0644
config-gentoo-linux File 33 B 0644
config-hpux File 31 B 0644
config-mandrake-linux File 30 B 0644
config-msc-linux File 30 B 0644
config-netbsd File 34 B 0644
config-open-linux File 30 B 0644
config-openSUSE-Linux-15.0-ALL File 30 B 0644
config-openbsd File 34 B 0644
config-openmamba-linux File 48 B 0644
config-openserver File 33 B 0644
config-redhat-linux File 48 B 0644
config-slackware-linux File 36 B 0644
config-solaris File 33 B 0644
config-suse-linux File 30 B 0644
config-syno-linux File 50 B 0644
config-trustix-linux File 30 B 0644
config-turbo-linux File 30 B 0644
config-united-linux File 30 B 0644
config-unixware File 33 B 0644
config-windows File 30 B 0644
config.info File 511 B 0644
config.info.ca File 554 B 0644
config.info.cs File 372 B 0644
config.info.de File 523 B 0644
config.info.es File 320 B 0644
config.info.fr File 135 B 0644
config.info.ja File 428 B 0644
config.info.ko File 409 B 0644
config.info.ms File 411 B 0644
config.info.nl File 415 B 0644
config.info.no File 424 B 0644
config.info.pl File 392 B 0644
config.info.ru File 175 B 0644
config.info.sv File 224 B 0644
config.info.tr File 123 B 0644
config.info.uk File 174 B 0644
config.info.zh File 122 B 0644
config.info.zh_TW File 125 B 0644
csw-lib.pl File 2.69 KB 0755
cygwin-lib.pl File 22.34 KB 0755
debian-lib.pl File 6.67 KB 0755
delete_file.cgi File 239 B 0755
delete_pack.cgi File 1.46 KB 0755
delete_packs.cgi File 1.85 KB 0755
do_install.cgi File 2.67 KB 0755
edit_pack.cgi File 1.13 KB 0755
emerge-lib.pl File 7.65 KB 0755
file_info.cgi File 2.09 KB 0755
find.cgi File 1.63 KB 0755
freebsd-lib.pl File 7.95 KB 0755
hpux-lib.pl File 8.01 KB 0755
index.cgi File 3 KB 0755
install_pack.cgi File 4.71 KB 0755
ipkg-close.cgi File 269 B 0755
ipkg-edit_pack.cgi File 1.45 KB 0755
ipkg-lib.pl File 7.78 KB 0755
ipkg-open.cgi File 243 B 0755
ipkg-tree.cgi File 4 KB 0755
ipkg_upgrade.cgi File 926 B 0755
list_pack.cgi File 1.85 KB 0755
log_parser.pl File 1.34 KB 0755
module.info File 484 B 0644
module.info.af File 0 B 0644
module.info.af.auto File 127 B 0644
module.info.ar File 0 B 0644
module.info.ar.auto File 170 B 0644
module.info.be File 0 B 0644
module.info.be.auto File 216 B 0644
module.info.bg File 0 B 0644
module.info.bg.auto File 214 B 0644
module.info.ca File 116 B 0644
module.info.ca.auto File 21 B 0644
module.info.cs File 30 B 0644
module.info.cs.auto File 114 B 0644
module.info.da File 0 B 0644
module.info.da.auto File 124 B 0644
module.info.de File 106 B 0644
module.info.de.auto File 21 B 0644
module.info.el File 0 B 0644
module.info.el.auto File 220 B 0644
module.info.es File 29 B 0644
module.info.es.auto File 106 B 0644
module.info.eu File 0 B 0644
module.info.eu.auto File 129 B 0644
module.info.fa File 0 B 0644
module.info.fa.auto File 215 B 0644
module.info.fi File 0 B 0644
module.info.fi.auto File 130 B 0644
module.info.fr File 29 B 0644
module.info.fr.auto File 117 B 0644
module.info.he File 0 B 0644
module.info.he.auto File 152 B 0644
module.info.hr File 0 B 0644
module.info.hr.auto File 138 B 0644
module.info.hu File 38 B 0644
module.info.hu.auto File 108 B 0644
module.info.it File 0 B 0644
module.info.it.auto File 134 B 0644
module.info.ja File 43 B 0644
module.info.ja.auto File 157 B 0644
module.info.ko File 34 B 0644
module.info.ko.auto File 128 B 0644
module.info.lt File 0 B 0644
module.info.lt.auto File 162 B 0644
module.info.lv File 0 B 0644
module.info.lv.auto File 151 B 0644
module.info.ms File 104 B 0644
module.info.ms.auto File 18 B 0644
module.info.mt File 0 B 0644
module.info.mt.auto File 150 B 0644
module.info.nl File 27 B 0644
module.info.nl.auto File 104 B 0644
module.info.no File 26 B 0644
module.info.no.auto File 107 B 0644
module.info.pl File 121 B 0644
module.info.pl.auto File 21 B 0644
module.info.pt File 28 B 0644
module.info.pt.auto File 102 B 0644
module.info.pt_BR File 0 B 0644
module.info.pt_BR.auto File 139 B 0644
module.info.ro File 0 B 0644
module.info.ro.auto File 134 B 0644
module.info.ru File 30 B 0644
module.info.ru.auto File 205 B 0644
module.info.sk File 0 B 0644
module.info.sk.auto File 145 B 0644
module.info.sl File 0 B 0644
module.info.sl.auto File 132 B 0644
module.info.sv File 21 B 0644
module.info.sv.auto File 100 B 0644
module.info.th File 0 B 0644
module.info.th.auto File 253 B 0644
module.info.tr File 28 B 0644
module.info.tr.auto File 107 B 0644
module.info.uk File 0 B 0644
module.info.uk.auto File 202 B 0644
module.info.ur File 0 B 0644
module.info.ur.auto File 208 B 0644
module.info.vi File 0 B 0644
module.info.vi.auto File 144 B 0644
module.info.zh File 18 B 0644
module.info.zh.auto File 91 B 0644
module.info.zh_TW File 24 B 0644
module.info.zh_TW.auto File 97 B 0644
msi-lib.pl File 8.45 KB 0755
open.cgi File 238 B 0755
openbsd-lib.pl File 4.72 KB 0755
pkg-lib.pl File 2.5 KB 0644
pkgadd-lib.pl File 9.97 KB 0755
pkgadd-no-ask File 164 B 0644
pkgsrc-lib.pl File 7.24 KB 0644
ports-lib.pl File 3.49 KB 0644
ports_upgrade.cgi File 501 B 0755
rhn-lib.pl File 3.02 KB 0755
rhn.cgi File 1.3 KB 0755
rhn_check.cgi File 1.84 KB 0755
rpm-lib.pl File 11.24 KB 0755
rpmfind.cgi File 2.11 KB 0755
search.cgi File 2.27 KB 0755
slackware-lib.pl File 6.95 KB 0755
software-lib.pl File 7.57 KB 0755
tree.cgi File 3.79 KB 0755
urpmi-lib.pl File 2.14 KB 0755
urpmi_upgrade.cgi File 839 B 0755
view.cgi File 931 B 0755
yum-lib.pl File 13.06 KB 0755
yum_upgrade.cgi File 908 B 0755