[ Avaa Bypassed ]




Upload:

Command:

www-data@3.148.202.164: ~ $
# bsd-lib.pl
# Functions for FreeBSD package management

use POSIX;
chop($system_arch = `uname -m`);

if (&use_pkg_ng()) {
	# check whether the new pkg manager is available and use that.
	$pkg_info    = "pkg info";
	$pkg_add     = "pkg add";
	$pkg_delete  = "pkg delete";
	}
else {
	# If not, default to the previous pkg manager tools
	$pkg_info    = "pkg_info";
	$pkg_add     = "pkg_add";
	$pkg_delete  = "pkg_delete";
	}

$package_dir = "/var/db/pkg";

sub use_pkg_ng
{
return 0 if (!-x "/usr/sbin/pkg");
local @lines = split(/\n/, &backquote_command(
			"/usr/sbin/pkg info 2>/dev/null </dev/null"));
return @lines > 1 ? 1 : 0;
}

sub list_package_system_commands
{
return ($pkg_info, $pkg_add);
}

# list_packages([package]*)
# Fills the array %packages with a list of all packages
sub list_packages
{
local $i = 0;
local $arg = @_ ? join(" ", map { quotemeta($_) } @_) : "-a";
%packages = ( );
&open_execute_command(PKGINFO, "$pkg_info -I $arg", 1, 1);
while(<PKGINFO>) {
	if (/^(\S+)\-(\d\S+)\s+(.*)/) {
		$packages{$i,'name'} = $1;
		$packages{$i,'version'} = $2;
		$packages{$i,'class'} = "";
		$packages{$i,'desc'} = $3;
		$i++;
		}
	}
close(PKGINFO);
return $i;
}

# package_info(package, [version])
# Returns an array of package information in the order
#  name, class, description, arch, version, vendor, installtime
sub package_info
{
local ($name, $ver) = @_;
local $qm = quotemeta($name.($ver ? '='.$ver : '>=0'));
local $out = &backquote_command("$pkg_info $qm 2>&1", 1);
return () if ($?);
local @rv = ( $name );
push(@rv, "");
push(@rv, $out =~ /Description:\n([\0-\177]*\S)/i ? $1 : $text{'bsd_unknown'});
push(@rv, $system_arch);
push(@rv, $out =~ /Information\s+for\s+(\S+)\-(\d\S+)/ ? $2 : $ver);
push(@rv, "FreeBSD");
local @st = stat(&translate_filename("$package_dir/$name-$ver"));
push(@rv, @st ? ctime($st[9]) : $text{'bsd_unknown'});
return @rv;
}

# check_files(package, version)
# Fills in the %files array with information about the files belonging
# to some package. Values in %files are  path type user group mode size error
sub check_files
{
local ($name, $ver) = @_;
local $i = 0;
local $file;
local $qm = quotemeta($name.($ver ? '='.$ver : '>=0'));
&open_execute_command(PKGINFO, "$pkg_info -L $qm", 1, 1);
while($file = <PKGINFO>) {
	$file =~ s/\r|\n//g;
	next if ($file !~ /^\//);
	local $real = &translate_filename($file);
	local @st = stat($real);
	$files{$i,'path'} = $file;
	$files{$i,'type'} = -l $real ? 3 :
			    -d $real ? 1 : 0;
	$files{$i,'user'} = getpwuid($st[4]);
	$files{$i,'group'} = getgrgid($st[5]);
	$files{$i,'mode'} = sprintf "%o", $st[2] & 07777;
	$files{$i,'size'} = $st[7];
	$files{$i,'link'} = readlink($real);
	$i++;
	}
return $i;
}

# package_files(package, version)
# Returns a list of all files in some package
sub package_files
{
local ($pkg, $v) = @_;
local $qn = quotemeta($pkg.($v ? '='.$v : '>=0'));
local @rv;
&open_execute_command(RPM, "$pkg_info -L $qn", 1, 1);
while(<RPM>) {
	s/\r|\n//g;
	if (/^\//) {
		push(@rv, $_);
		}
	}
close(RPM);
return @rv;
}

# 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 (%packages, $file, $i, @pkgin);
local $n = &list_packages();
for($i=0; $i<$n; $i++) {
	&open_execute_command(PKGINFO, "$pkg_info -L $packages{$i,'name'}", 1, 1);
	while($file = <PKGINFO>) {
		$file =~ s/\r|\n//g;
		if ($file eq $_[0]) {
			# found it
			push(@pkgin, $packages{$i,'name'});
			}
		}
	close(PKGINFO);
	}
if (@pkgin) {
	local $real = &translate_filename($_[0]);
	local @st = stat($real);
	$file{'path'} = $_[0];
	$file{'type'} = -l $real ? 3 :
			-d $real ? 1 : 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{'packages'} = join(" ", @pkgin);
	return 1;
	}
else {
	return 0;
	}
}

# is_package(file)
sub is_package
{
local $real = &translate_filename($_[0]);
local $qm = quotemeta($_[0]);
if (-d $_[0]) {
	# A directory .. see if it contains any tgz files
	opendir(DIR, $real);
	local @list = grep { /\.tgz$/ || /\.tbz$/ } readdir(DIR);
	closedir(DIR);
	return @list ? 1 : 0;
	}
elsif ($_[0] =~ /\*|\?/) {
	# a wildcard .. see what it matches
	local @list = glob($real);
	return @list ? 1 : 0;
	}
else {
	# just a normal file - see if it is a package
	local $cmd;
	foreach $cmd ('gunzip', 'bunzip2') {
		next if (!&has_command($cmd));
		local ($desc, $contents);
		&open_execute_command(TAR, "$cmd -c $qm | tar tf -", 1, 1);
		while(<TAR>) {
			$desc++ if (/^\+DESC/);
			$contents++ if (/^\+CONTENTS/);
			}
		close(TAR);
		return 1 if ($desc && $contents);
		}
	return 0;
	}
}

# file_packages(file)
# Returns a list of all packages in the given file, in the form
#  package description
sub file_packages
{
local $real = &translate_filename($_[0]);
local $qm = quotemeta($_[0]);
if (-d $real) {
	# Scan directory for packages
	local ($f, @rv);
	opendir(DIR, $real);
	while($f = readdir(DIR)) {
		if ($f =~ /\.tgz$/i || $f =~ /\.tbz$/i) {
			local @pkg = &file_packages("$_[0]/$f");
			push(@rv, @pkg);
			}
		}
	closedir(DIR);
	return @rv;
	}
elsif ($real =~ /\*|\?/) {
	# Expand glob of packages
	# XXX won't work in translation
	local ($f, @rv);
	foreach $f (glob($real)) {
		local @pkg = &file_packages($f);
		push(@rv, @pkg);
		}
	return @rv;
	}
else {
	# Just one file
	local $cmd;
	foreach $cmd ('gunzip', 'bunzip2') {
		next if (!&has_command($cmd));
		local $temp = &transname();
		&make_dir($temp, 0700);
		local $rv = &execute_command("cd $temp && $cmd -c $qm | tar xf - +CONTENTS +COMMENT");
		if ($rv) {
			&unlink_file($temp);
			next;
			}
		local ($comment, $name);
		&open_readfile(COMMENT, "$temp/+COMMENT");
		($comment = <COMMENT>) =~ s/\r|\n//g;
		close(COMMENT);
		&open_readfile(CONTENTS, "$temp/+CONTENTS");
		while(<CONTENTS>) {
			$name = $1 if (/^\@name\s+(\S+)/);
			}
		close(CONTENTS);
		&unlink_file($temp);
		return ( "$name $comment" );
		}
	return ( );
	}
}

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

print &ui_table_row($text{'bsd_force'},
	&ui_yesno_radio("force", 0));
}

# install_package(file, package)
# Installs the package in the given file, with options from %in
sub install_package
{
local $in = $_[2] ? $_[2] : \%in;
local $args = ($in->{"scripts"} ? " -I" : "").
	      ($in->{"force"} ? " -f" : "");
local $out = &backquote_logged("$pkg_add $args $_[0] 2>&1");
if ($?) {
	return "<pre>$out</pre>";
	}
return undef;
}

# install_packages(file, [&inputs])
# Installs all the packages in the given file or glob
sub install_packages
{
local $in = $_[2] ? $_[2] : \%in;
local $args = ($in->{"scripts"} ? " -I" : "").
	      ($in->{"force"} ? " -f" : "");
local $file;
if (-d $_[0]) {
	$file = "$_[0]/*.tgz";
	}
else {
	$file = $_[0];
	}
local $out = &backquote_logged("$pkg_add $args $file 2>&1");
if ($?) {
	return "<pre>$out</pre>";
	}
return undef;
}

# delete_package(package, &in, version)
# Totally remove some package
sub delete_package
{
local ($name, $in, $ver) = @_;
local $qm = quotemeta($name.($ver ? '='.$ver : '>=0'));
local $out = &backquote_logged("$pkg_delete $qm 2>&1");
if ($? && $ver) {
	$qm = quotemeta($name.'-'.$ver);
	$out = &backquote_logged("$pkg_delete $qm 2>&1");
	}
if ($?) { return "<pre>$out</pre>"; }
return undef;
}

# delete_packages(&packages, &in, &versions)
# Totally remove some list of packages
sub delete_packages
{
local ($names, $in, $vers) = @_;
local @qm;
for(my $i=0; $i<@$names; $i++) {
	local $qm = quotemeta($names[$i].($vers[$i] ? '='.$vers[$i] : '>=0'));
	push(@qm, $qm);
	}
local $out = &backquote_logged("$pkg_delete ".join(" ", @qm)." 2>&1");
if ($?) { return "<pre>$out</pre>"; }
return undef;
}

sub package_system
{
return &text('bsd_manager', "FreeBSD");
}

sub package_help
{
return "$pkg_add $pkg_info $pkg_delete";
}

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