[ Avaa Bypassed ]




Upload:

Command:

www-data@160.79.109.87: ~ $
# emerge-lib.pl
# Functions for gentoo package management

chop($system_arch = `uname -m`);
$pkg_dir = "/var/db/pkg";
$portage_bin = "/usr/lib/portage/bin";
$ENV{'TERM'} = "dumb";
$package_list_binary = $package_list_command = "$portage_bin/pkglist";
if (!-x $package_list_binary) {
	$package_list_binary = &has_command("qlist");
	$package_list_command = $package_list_binary." --nocolor -Iv";
	}

sub list_package_system_commands
{
return ( $package_list_binary || "pkglist" );
}

sub list_update_system_commands
{
return ("emerge");
}

# list_packages([package]*)
# Fills the array %packages with all or listed packages
sub list_packages
{
local $i = 0;
%packages = ( );
&open_execute_command(LIST, $package_list_command, 1, 1);
while(<LIST>) {
	if (/^([^\/]+)\/([^0-9]+)-(\d\S+)$/ &&
	    !@_ || &indexof($2, @_) >= 0) {
		$packages{$i,'name'} = $2;
		$packages{$i,'class'} = $1;
		$packages{$i,'version'} = $3;
		&open_readfile(BUILD, "$pkg_dir/$1/$2-$3/$2-$3.ebuild");
		while(<BUILD>) {
			if (/DESCRIPTION="([^"]+)"/ || /DESCRIPTION='([^']+)'/) {
				$packages{$i,'desc'} = $1;
				last;
				}
			}
		close(BUILD);
		$i++;
		}
	}
return $i;
}

# package_search(string, [allavailable])
# Searches the package database for packages matching some string and puts
# them into %packages
sub package_search
{
local $n = 0;
local $qm = quotemeta($_[0]);
&open_execute_command(SEARCH, "emerge search $qm", 1, 1);
while(<SEARCH>) {
	s/\r|\n//g;
	s/\033[^m]+m//g;
	if (/^\*\s+([^\/]+)\/(\S+)/) {
		$packages{$n,'name'} = $2;
		$packages{$n,'class'} = $1;
		$packages{$n,'missing'} = 0;
		}
	elsif (/version\s+Available:\s+(\S+)/i) {
		$packages{$n,'version'} = $1;
		}
	elsif (/version\s+Installed:\s+\[\s+Not/i && !$_[1]) {
		$packages{$n,'missing'} = 1;
		}
	elsif (/\s+Description:\s*(.*)/i) {
		$packages{$n,'desc'} = $1;
		local $nl = <SEARCH>;
		chop($nl);
		if ($nl =~ /\S/) {
			$packages{$n,'desc'} .= " " if ($packages{$n,'desc'});
			$packages{$n,'desc'} .= $nl;
			}
		$n++ if (!$packages{$n,'missing'} || $_[1]);
		}
	}
close(SEARCH);
return $n;
}

# package_info(package)
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local %packages;
local $n = &list_packages($_[0]);
$n || return ();
local @st = stat("$pkg_dir/$packages{0,'class'}/$packages{0,'name'}-$packages{0,'version'}");
return ( $packages{0,'name'}, $packages{0,'class'}, $packages{0,'desc'},
	 $system_arch, $packages{0,'version'}, "Gentoo", &make_date($st[9]) );
}

# is_package(file)
# Check if some file is a package file
sub is_package
{
local $qm = quotemeta($_[0]);
local $out = &backquote_command("emerge --pretend $qm 2>&1", 1);
return $? ? 0 : 1;
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local @rv;
local $qm = quotemeta($_[0]);
&open_execute_command(EMERGE, "emerge --pretend $qm", 1, 1);
while(<EMERGE>) {
	s/\r|\n//g;
	s/\033[^m]+m//g;
	if (/\s+[NRU]\s+\]\s+([^\/]+)\/([^0-9]+)\-(\d\S+)/) {
		push(@rv, $2);
		}
	}
close(EMERGE);
return @rv;
}

# install_options(file, package)
# Outputs HTML for choosing install options for some package
sub install_options
{
print &ui_table_row($text{'emerge_noreplace'},
	&ui_radio("noreplace", 0, [ [ 0, $text{'yes'} ], [ 1, $text{'no'} ] ]));

print &ui_table_row($text{'emerge_onlydeps'},
	&ui_yesno_radio("onlydeps", 0));
}

$show_install_progress = 1;

# install_package(file, package, [&inputs], [show])
# Install the given package from the given file, using options from %in
sub install_package
{
local $file = $_[0];
local $in = $_[2] ? $_[2] : \%in;
local $cmd = "emerge";
$cmd .= " --noreplace" if ($in{'noreplace'});
$cmd .= " --onlydeps" if ($in{'onlydeps'});
$cmd .= " ".quotemeta($_[1]);
if ($_[3]) {
	&open_execute_command(OUT, "$cmd 2>&1", 1);
	while(<OUT>) {
		print &html_escape($_);
		}
	close(OUT);
	return $? ? "Emerge error" : undef;
	}
else {
	local $out;
	&open_execute_command(OUT, "$cmd 2>&1 | tail -10", 1);
	while(<OUT>) {
		$out .= $_;
		}
	close(OUT);
	return $? ? "<pre>$out</pre>" : undef;
	}
}

# check_files(package)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group size error
sub check_files
{
local $i = 0;
local (@files, %filesmap);
local %packages;
&list_packages($_[0]);
&open_readfile(CONTENTS, "$pkg_dir/$packages{0,'class'}/$packages{0,'name'}-$packages{0,'version'}/CONTENTS");
while(<CONTENTS>) {
	s/\r|\n//g;
	local @l = split(/\s+/);
	$files{$i,'path'} = $l[1];
	$files{$i,'type'} = $l[0] eq 'dir' ? 1 :
			    $l[0] eq 'sym' ? 3 : 0;
	local $real = &translate_filename($l[1]);
	local @st = stat($real);
	$files{$i,'user'} = getpwuid($st[4]);
	$files{$i,'group'} = getgrgid($st[5]);
	$files{$i,'size'} = $st[7];
	if (!-e $l[1]) {
		$files{$i,'error'} = "Does not exist";
		}
	elsif ($l[0] eq 'sym') {
		$files{$i,'link'} = $l[3];
		local $lnk = readlink($real);
		$files{$i,'error'} = "Incorrect link" if ($l[3] ne $lnk);
		}
	elsif ($l[0] eq 'obj') {
		push(@files, $l[1]);
		$filesmap{$l[1]} = $i;
		$files{$i,'md5'} = $l[2];
		}
	$i++;
	}
close(CONTENTS);
if (&has_command("md5sum")) {
	&open_execute_command(MD5, "md5sum ".join(" ", @files), 1, 1);
	while(<MD5>) {
		local ($md, $fn) = split(/\s+/);
		local $n = $filesmap{$fn};
		if ($md ne $files{$n,'md5'}) {
			$files{$n,'error'} = "Checksum failed";
			}
		}
	close(MD5);
	}
return $i;
}

# installed_file(file)
# Given a filename, fills %file with details of the given file and returns 1.
# If the file is not known to the package system, returns 0
# Usable values in %file are  path type user group mode size packages
sub installed_file
{
local ($cf, $type, @packs);
local $real_dir = &translate_filename($pkg_dir);
while($cf = <$real_dir/*/*/CONTENTS>) {
	open(FILE, "<".$cf);
	while(<FILE>) {
		local @l = split(/\s+/);
		if ($l[1] eq $_[0]) {
			# Found it!
			$cf =~ /\/([^0-9\/]+)-(\d[^\s\/]+)\/CONTENTS$/;
			push(@packs, $1);
			$type = $l[0] if (!$type);
			}
		}
	close(FILE);
	}
return 0 if (!@packs);

local $real = &translate_filename($_[0]);
local @st = stat($real);
$file{'packages'} = join(' ', @packs);
$file{'path'} = $_[0];
$file{'user'} = getpwuid($st[4]);
$file{'group'} = getgrgid($st[5]);
$file{'mode'} = sprintf "%o", $st[2] & 07777;
$file{'size'} = $st[7];
$file{'link'} = readlink($real);
$file{'type'} = $type eq 'dir' ? 1 :
		$type eq 'sym' ? 3 : 0;
return 1;
}



# delete_package(package, [&options])
# Attempt to remove some package
sub delete_package
{
local $out = &backquote_logged("emerge -u ".quotemeta($_[0])." 2>&1");
return $? ? "<pre>$out</pre>" : undef;
}

sub package_system
{
return "Gentoo Ebuild";
}

sub package_help
{
return "emerge";
}

$has_update_system = 1;

# update_system_input()
# Returns HTML for entering a package to install
sub update_system_input
{
return "$text{'emerge_input'} <input name=update size=20> <input type=button onClick='window.ifield = form.update; chooser = window.open(\"../$module_name/emerge_find.cgi\", \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=600,height=500\")' value=\"$text{'emerge_find'}\">";
}

# update_system_install([package])
# Install some package with emerge
sub update_system_install
{
local $update = $_[0] || $in{'update'};
local $cmd = "emerge ".quotemeta($update);
local @rv;
print "<b>",&text('emerge_install', "<tt>$cmd</tt>"),"</b><p>\n";
print "<pre>\n";
&additional_log('exec', undef, $cmd);
&open_execute_command(CMD, "$cmd 2>&1 </dev/null", 1);
while(<CMD>) {
	print &html_escape($_);
	if (/^\>\>\>\s+([^\/]+)\/([^0-9]+)-(\d\S+)\s+merged\./i) {
		push(@rv, $2);
		}
	}
close(CMD);
print "</pre>\n";
if ($?) { print "<b>$text{'emerge_failed'}</b><p>\n"; }
else { print "<b>$text{'emerge_ok'}</b><p>\n"; }
return @rv;
}

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