Imported Upstream version 1.4.5
This commit is contained in:
parent
62d1e7d5fe
commit
6a280f6f24
412 changed files with 168642 additions and 0 deletions
81
pkg/solaris/solpkg
Executable file
81
pkg/solaris/solpkg
Executable file
|
@ -0,0 +1,81 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
$pkgdevice = $ARGV[0] || die "Unable to determine device ($!)\n";
|
||||
|
||||
$find = "/usr/bin/find";
|
||||
$pkgproto = "/usr/bin/pkgproto";
|
||||
$pkgmk = "/usr/bin/pkgmk";
|
||||
$pkgtrans = "/usr/bin/pkgtrans";
|
||||
$prototype = "prototype";
|
||||
$pkginfo = "pkginfo";
|
||||
$egrep = "/usr/bin/egrep";
|
||||
|
||||
# Sanity check
|
||||
|
||||
$pwd = `pwd`;
|
||||
if ($pwd =~ '\/usr\/local') {
|
||||
$pwd = $`;
|
||||
}
|
||||
die "Wrong location, please cd to <PKGBASE>/usr/local/ and run again.\n"
|
||||
if ($pwd eq "");
|
||||
|
||||
open (PREPROTO,"$find . -print |$egrep -v \"^\.(/usr(/local)?|/opt)?\$\" | $pkgproto |") ||
|
||||
die "Unable to read prototype information ($!)\n";
|
||||
open (PROTO,">$prototype") ||
|
||||
die "Unable to write file prototype ($!)\n";
|
||||
print PROTO "i pkginfo=./$pkginfo\n";
|
||||
while (<PREPROTO>) {
|
||||
# Read in the prototype information
|
||||
chomp;
|
||||
$thisline = $_;
|
||||
if ($thisline =~ " prototype "
|
||||
or $thisline =~ " pkginfo ") {
|
||||
# Don't do anything as they aren't important
|
||||
} elsif ($thisline =~ "^[fd] ") {
|
||||
# Change the ownership of files and directories
|
||||
($dir, $none, $file, $mode, $user, $group) = split / /,$thisline;
|
||||
print PROTO "$dir $none $file $mode bin bin\n";
|
||||
} else {
|
||||
# Symlinks and other stuff should be printed also
|
||||
print PROTO "$thisline\n";
|
||||
}
|
||||
}
|
||||
close PROTO;
|
||||
close PREPROTO;
|
||||
|
||||
# Now we can start building the package
|
||||
|
||||
$os = `uname -r`;
|
||||
$os =~ '\.';
|
||||
$os = "sol$'";
|
||||
chomp $os;
|
||||
|
||||
open (PKGINFO,"<$pkginfo") ||
|
||||
die "Unable to read package information ($!)\n";
|
||||
while (<PKGINFO>) {
|
||||
# Read in the package information
|
||||
chomp;
|
||||
$thisline = $_;
|
||||
($var,$value) = split /=/,$thisline;
|
||||
if ("$var" eq "NAME"
|
||||
or "$var" eq "VERSION"
|
||||
or "$var" eq "ARCH") {
|
||||
$tmp = lc($var);
|
||||
$value =~ s/\"//g;
|
||||
if ("$tmp" eq "version"
|
||||
and $value =~ ",REV") {
|
||||
($value,$var) = split /\,/,$value;
|
||||
$$tmp = $value;
|
||||
} else {
|
||||
$$tmp = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
close PKGINFO;
|
||||
|
||||
$packagename = "$name-$version-$os-$arch-local";
|
||||
|
||||
print "Building package\n";
|
||||
system ("$pkgmk -o -r `pwd` -d $pkgdevice");
|
||||
system ("(cd $pkgdevice && $pkgtrans -s `pwd` ../$packagename)");
|
||||
print "Done. ($packagename)\n";
|
Loading…
Add table
Add a link
Reference in a new issue