summaryrefslogtreecommitdiffstats
path: root/pkg/solaris
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/solaris')
-rw-r--r--pkg/solaris/pkginfo.in2
-rwxr-xr-xpkg/solaris/preinstall35
-rwxr-xr-xpkg/solaris/solpkg15
3 files changed, 48 insertions, 4 deletions
diff --git a/pkg/solaris/pkginfo.in b/pkg/solaris/pkginfo.in
index c9dcced..3bed346 100644
--- a/pkg/solaris/pkginfo.in
+++ b/pkg/solaris/pkginfo.in
@@ -1,4 +1,4 @@
1PKG="NAGplugin" 1PKG="NGOSplugin"
2NAME="nagios-plugins" 2NAME="nagios-plugins"
3DESC="Nagios network monitoring plugins" 3DESC="Nagios network monitoring plugins"
4ARCH="@PKG_ARCH@" 4ARCH="@PKG_ARCH@"
diff --git a/pkg/solaris/preinstall b/pkg/solaris/preinstall
new file mode 100755
index 0000000..c4cc269
--- /dev/null
+++ b/pkg/solaris/preinstall
@@ -0,0 +1,35 @@
1#!/usr/bin/sh
2
3user="nagios"
4uid=-1
5group="nagios"
6gid=-1
7
8/usr/bin/getent group $group > /dev/null 2> /dev/null
9result=$?
10if [ $result -eq 2 ] ; then
11 echo "Group $group does not exist. Creating..."
12 if [ $gid -ne -1 ] ; then
13 /usr/sbin/groupadd -g $gid $group
14 else
15 /usr/sbin/groupadd $group
16 fi
17elif [ $result -ne 0 ] ; then
18 echo "An error occurred determining the existence of the groug $group. Terminating."
19 exit 1;
20fi
21
22/usr/bin/getent passwd $user > /dev/null 2> /dev/null
23result=$?
24if [ $result -eq 2 ] ; then
25 echo "User $user does not exist. Creating..."
26 if [ $uid -ne -1 ] ; then
27 /usr/sbin/useradd -u $uid -g $group $user
28 else
29 /usr/sbin/useradd -g $group $user
30 fi
31elif [ $result -ne 0 ] ; then
32 echo "An error occurred determining the existence of the user $user. Terminating."
33 exit 1;
34fi
35
diff --git a/pkg/solaris/solpkg b/pkg/solaris/solpkg
index 41d8e17..a21176e 100755
--- a/pkg/solaris/solpkg
+++ b/pkg/solaris/solpkg
@@ -8,6 +8,7 @@ $pkgmk = "/usr/bin/pkgmk";
8$pkgtrans = "/usr/bin/pkgtrans"; 8$pkgtrans = "/usr/bin/pkgtrans";
9$prototype = "prototype"; 9$prototype = "prototype";
10$pkginfo = "pkginfo"; 10$pkginfo = "pkginfo";
11$preinstall = "preinstall";
11$egrep = "/usr/bin/egrep"; 12$egrep = "/usr/bin/egrep";
12 13
13# Sanity check 14# Sanity check
@@ -24,17 +25,24 @@ open (PREPROTO,"$find . -print |$egrep -v \"^\.(/usr(/local)?|/opt)?\$\" | $pkgp
24open (PROTO,">$prototype") || 25open (PROTO,">$prototype") ||
25 die "Unable to write file prototype ($!)\n"; 26 die "Unable to write file prototype ($!)\n";
26print PROTO "i pkginfo=./$pkginfo\n"; 27print PROTO "i pkginfo=./$pkginfo\n";
28print PROTO "i preinstall=./$preinstall\n";
27while (<PREPROTO>) { 29while (<PREPROTO>) {
28 # Read in the prototype information 30 # Read in the prototype information
29 chomp; 31 chomp;
30 $thisline = $_; 32 $thisline = $_;
31 if ($thisline =~ " prototype " 33 if ($thisline =~ " prototype "
32 or $thisline =~ " pkginfo ") { 34 or $thisline =~ " pkginfo "
35 or $thisline =~ " preinstall ") {
33 # Don't do anything as they aren't important 36 # Don't do anything as they aren't important
37 } elsif ($thisline =~ "pst3") {
38 # Needs to be installed SUID root
39 ($dir, $none, $file, $mode, $user, $group) = split / /,$thisline;
40 print PROTO "$dir $none $file 4755 root bin\n";
41
34 } elsif ($thisline =~ "^[fd] ") { 42 } elsif ($thisline =~ "^[fd] ") {
35 # Change the ownership of files and directories 43 # Change the ownership of files and directories
36 ($dir, $none, $file, $mode, $user, $group) = split / /,$thisline; 44 ($dir, $none, $file, $mode, $user, $group) = split / /,$thisline;
37 print PROTO "$dir $none $file $mode bin bin\n"; 45 print PROTO "$dir $none $file $mode $user bin\n";
38 } else { 46 } else {
39 # Symlinks and other stuff should be printed also 47 # Symlinks and other stuff should be printed also
40 print PROTO "$thisline\n"; 48 print PROTO "$thisline\n";
@@ -58,6 +66,7 @@ while (<PKGINFO>) {
58 $thisline = $_; 66 $thisline = $_;
59 ($var,$value) = split /=/,$thisline; 67 ($var,$value) = split /=/,$thisline;
60 if ("$var" eq "NAME" 68 if ("$var" eq "NAME"
69 or "$var" eq "PKG"
61 or "$var" eq "VERSION" 70 or "$var" eq "VERSION"
62 or "$var" eq "ARCH") { 71 or "$var" eq "ARCH") {
63 $tmp = lc($var); 72 $tmp = lc($var);
@@ -77,5 +86,5 @@ $packagename = "$name-$version-$os-$arch-local";
77 86
78print "Building package\n"; 87print "Building package\n";
79system ("$pkgmk -o -r `pwd` -d $pkgdevice"); 88system ("$pkgmk -o -r `pwd` -d $pkgdevice");
80system ("(cd $pkgdevice && $pkgtrans -s `pwd` ../$packagename)"); 89system ("(cd $pkgdevice && $pkgtrans -s `pwd` ../$packagename $pkg)");
81print "Done. ($packagename)\n"; 90print "Done. ($packagename)\n";