aboutsummaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/solaris/pkginfo.in12
-rwxr-xr-xpkg/solaris/solpkg80
2 files changed, 92 insertions, 0 deletions
diff --git a/pkg/solaris/pkginfo.in b/pkg/solaris/pkginfo.in
new file mode 100644
index 00000000..be4b97fa
--- /dev/null
+++ b/pkg/solaris/pkginfo.in
@@ -0,0 +1,12 @@
+PKG="NPDTplugins"
+NAME="nagiosplugins"
+DESC="Nagios network monitoring plugins"
+ARCH="@PKG_ARCH@"
+VERSION="@PACKAGE_VERSION@,REV=@REV_DATESTAMP@"
+CATEGORY="application"
+VENDOR="Nagios Plugin Development Team"
+EMAIL="nagiosplug-devel@lists.sourceforge.net"
+PSTAMP="sfw@REV_TIMESTAMP@"
+BASEDIR="/usr/local"
+CLASSES="none"
+
diff --git a/pkg/solaris/solpkg b/pkg/solaris/solpkg
new file mode 100755
index 00000000..0b82bce0
--- /dev/null
+++ b/pkg/solaris/solpkg
@@ -0,0 +1,80 @@
+#!/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";
+
+# 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 |$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";