? build.dj
? deej.diff
? inst.dj
? rem.dj
Index: build.properties
===================================================================
RCS file: /cvsroot/opennms/opennms/build.properties,v
retrieving revision 1.7
diff -u -r1.7 build.properties
--- build.properties	6 Feb 2003 01:55:49 -0000	1.7
+++ build.properties	22 Feb 2003 04:20:37 -0000
@@ -80,6 +80,10 @@
 rpm.sign		= false
 # rpm.buildtests:	whether to build the test classes
 rpm.buildtests		= false
+# rpm.tomcatdir:	where tomcat is installed
+rpm.tomcatdir		= /var/tomcat4
+# rpm.tomcatuser:	user that tomcat runs as
+rpm.tomcatuser		= root
 
 install.database.driver   = org.postgresql.Driver
 install.database.url      = jdbc:postgresql://localhost:5432/opennms?compatible=7.1
Index: build.xml
===================================================================
RCS file: /cvsroot/opennms/opennms/build.xml,v
retrieving revision 1.9
diff -u -r1.9 build.xml
--- build.xml	6 Feb 2003 01:55:49 -0000	1.9
+++ build.xml	22 Feb 2003 04:20:38 -0000
@@ -10,15 +10,7 @@
  
  <!-- top-level initialization -->
  
- <target name="init" depends="init.setup,init.bb-global,init.opennms-global"/>
-
- <target name="init.opennms-global" if="opennms-global.exists">
-  <filter filtersfile="${user.home}/.${ant.project.name}-global.properties"/>
- </target>
-
- <target name="init.bb-global" if="bb-global.exists">
-  <filter filtersfile="${user.home}/.bb-global.properties"/>
- </target>
+ <target name="init" depends="init.setup"/>
 
  <target name="init.setup" unless="init.done">
   <tstamp/>
@@ -26,10 +18,17 @@
   <taskdef name="sablecc" classname="org.sablecc.ant.taskdef.Sablecc"/>
 
   <!-- set properties -->
-  <property file="${user.home}/.bb-global.properties"/>
+  <property environment="env"/>
+
+  <if value="${env.PROPERTY_OVERRIDE}" regexp="^.">
+   <thenProperty name="bb-global.file" value="${env.PROPERTY_OVERRIDE}"/>
+   <elseProperty name="bb-global.file" value="${user.home}/.bb-global.properties"/>
+  </if>
+
+  <property file="${bb-global.file}"/>
   <property file="${user.home}/.${ant.project.name}-global.properties"/>
   <property file="${root.source}/build.properties"/>
-  <property environment="env"/>
+
   <property name="install" value="${root.installprefix}${root.install}"/>
   <property name="install.initdir" value="${root.installprefix}${root.install.initdir}"/>
   <property name="install.sbindir" value="${root.installprefix}${root.install.sbindir}"/>
@@ -37,6 +36,7 @@
   <property name="install.rrdtool" value="${root.installprefix}${root.install.rrdtool}"/>
   <property name="install.share" value="${root.installprefix}${root.install.share}"/>
   <property name="install.rrdtool" value="${root.installprefix}${root.install.rrdtool}"/>
+  <property name="install.rrdtool.bin" value="${root.installprefix}${install.rrdtool.bin}"/>
   <property name="install.servlets" value="${root.installprefix}${root.install.servlets}"/>
   <property name="install.logs" value="${root.installprefix}${root.install.logs}"/>
   <property name="install.pid" value="${root.installprefix}${root.install.pid}"/>
@@ -45,6 +45,7 @@
    <elseProperty name="opennms.release.string" value="${opennms.release}"/>
   </if>
   <property name="opennms.version.string" value="${opennms.version}-${opennms.release.string}"/>
+  <property name="rpm.rpmbuild" value="rpmbuild"/>
 
   <if exists="${root.build}/rpm">
    <thenProperty name="wasrpm" value="true"/>
@@ -64,11 +65,12 @@
   </if>
 
   <!-- set filters -->
-  <filter filtersfile="${root.source}/build.properties" />
   <filter token="install.log.dir" value="${root.install.logs}"/>
+  <filter token="opennms.version" value="${opennms.version}"/>
+  <filter token="opennms.release" value="${opennms.release}"/>
   <filter token="opennms.version.string" value="${opennms.version.string}"/>
   <filter token="opennms.release.string" value="${opennms.release.string}"/>
-  <if isFile="${user.home}/.bb-global.properties">
+  <if isFile="${bb-global.file}">
    <thenProperty name="bb-global.exists" value="true"/>
   </if>
   <if isFile="${user.home}/.${ant.project.name}-global.properties">
@@ -103,9 +105,19 @@
   <filter token="install.database.url" value="${install.database.url}"/>
   <filter token="install.database.user" value="${install.database.user}"/>
   <filter token="install.database.password" value="${install.database.password}"/>
+  <filter token="install.rrdtool.bin" value="${install.rrdtool.bin}"/>
   <filter token="ant.project.name" value="${ant.project.name}"/>
   <filter token="compile.soext" value="${compile.soext}"/>
   <filter token="compile.jniext" value="${compile.jniext}"/>
+
+  <filter token="rpm.install" value="${rpm.install}"/>
+  <filter token="rpm.database.user" value="${rpm.database.user}"/>
+  <filter token="rpm.database.password" value="${rpm.database.password}"/>
+  <filter token="rpm.database.name" value="${rpm.database.name}"/>
+  <filter token="rpm.tomcatdir" value="${rpm.tomcatdir}"/>
+  <filter token="rpm.tomcatuser" value="${rpm.tomcatuser}"/>
+  <filter token="rpm.buildtests" value="${rpm.buildtests}"/>
+  <filter token="rpm.platform" value="${rpm.platform}"/>
  
   <!-- init wrapup -->
   <antcall target="print.header"><param name="print.headertext" value="OpenNMS Main Build Initializing"/></antcall>
@@ -124,7 +136,7 @@
  <target name="print.debug" if="debug">
   <echo>
   === Java ===
-  JVM Version                  = ${java.fullversion}
+  JVM Version                  = ${java.vm.vendor} ${java.vm.name} ${java.vm.version}
   JAVA_HOME                    = ${env.JAVA_HOME}
   CLASSPATH                    = ${java.class.path}
   Ant Version                  = ${ant.version}
@@ -161,6 +173,12 @@
   Shared Files Directory       = ${relative.install.share}
   Servlet Directory            = ${relative.install.servlets}
   Release Tarball Directory    = ${relative.release}
+
+  === RPM ===
+  RPM Platform                 = ${rpm.platform}
+  RPM Install                  = ${rpm.install}
+  RPM Tomcat Directory         = ${rpm.tomcatdir}
+  RPM Tomcat User              = ${rpm.tomcatuser}
   </echo>
  </target>
  
@@ -307,7 +325,7 @@
   </copy>
   <touch file="${root.rpm}/SOURCES/${ant.project.name}-source-${opennms.version.string}.tar.gz"/>
   <echo message="building RPM for OpenNMS version ${opennms.version.string}..."/>
-  <exec dir="${root.rpm}" executable="rpmbuild" failonerror="true">
+  <exec dir="${root.rpm}" executable="${rpm.rpmbuild}" failonerror="true">
    <arg value="-bb"/>
    <arg value="${root.rpm}/SPECS/opennms.spec"/>
    <arg value="--define"/>
@@ -360,7 +378,7 @@
    <mapper type="flatten"/>
   </copy>
   <echo message="building RPM for OpenNMS version ${opennms.version.string}..."/>
-  <exec dir="${root.rpm}" executable="rpmbuild" failonerror="true">
+  <exec dir="${root.rpm}" executable="${rpm.rpmbuild}" failonerror="true">
    <arg value="-ba"/>
    <arg value="${root.rpm}/SPECS/opennms.spec"/>
    <arg value="--define"/>
Index: src/web/etc/web.xml
===================================================================
RCS file: /cvsroot/opennms/opennms/src/web/etc/web.xml,v
retrieving revision 1.5
diff -u -r1.5 web.xml
--- src/web/etc/web.xml	2 Feb 2003 14:42:55 -0000	1.5
+++ src/web/etc/web.xml	22 Feb 2003 04:20:43 -0000
@@ -1226,4 +1226,25 @@
     <auth-method>BASIC</auth-method>
     <realm-name>OpenNMS Web Console</realm-name>
   </login-config>
+
+  <security-role>
+    <description>
+      OpenNMS Administrator
+    </description>
+    <role-name>OpenNMS Administrator</role-name>
+  </security-role>
+
+  <security-role>
+    <description>
+      OpenNMS RTC Daemon
+    </description>
+    <role-name>OpenNMS RTC Daemon</role-name>
+  </security-role>
+
+  <security-role>
+    <description>
+      OpenNMS User
+    </description>
+    <role-name>OpenNMS User</role-name>
+  </security-role>
 </web-app>
Index: tools/packages/opennms/opennms.init
===================================================================
RCS file: /cvsroot/opennms/opennms/tools/packages/opennms/opennms.init,v
retrieving revision 1.2
diff -u -r1.2 opennms.init
--- tools/packages/opennms/opennms.init	2 Jan 2003 19:03:26 -0000	1.2
+++ tools/packages/opennms/opennms.init	22 Feb 2003 04:20:45 -0000
@@ -9,18 +9,24 @@
 RETVAL=0
 LOGFILE=/var/log/opennms/output.log
 
-FUNCTIONS_LOADED=0
-# Source function library.
-for dir in @root.install.initdir@ /etc /etc/rc.d; do
-	if [ -f "$dir/init.d/functions" ] && [ "$FUNCTIONS_LOADED" = "0" ]; then
-		source "$dir/init.d/functions"
-		FUNCTIONS_LOADED=1
-	fi
-done
+if [ -f /etc/SuSE-release ]; then
+	. /etc/rc.status
+	rc_reset
+	. /usr/bin/setJava --version 1.4 --devel
+else
+	FUNCTIONS_LOADED=0
+	# Source function library.
+	for dir in @root.install.initdir@ /etc /etc/rc.d; do
+		if [ -f "$dir/init.d/functions" ] && [ "$FUNCTIONS_LOADED" = "0" ]; then
+			source "$dir/init.d/functions"
+			FUNCTIONS_LOADED=1
+		fi
+	done
 
-if [ "$FUNCTIONS_LOADED" = "0" ]; then
-	echo "$0: unable to find init.d functions!"
-	exit 1
+	if [ "$FUNCTIONS_LOADED" = "0" ]; then
+		echo "$0: unable to find init.d functions!"
+		exit 1
+	fi
 fi
 
 # Check for OPENNMS_HOME
@@ -47,22 +53,33 @@
 start(){
 	export REDIRECT=$LOGFILE
 	echo -n $"Starting OpenNMS: "
-	daemon /opt/OpenNMS/bin/opennms.sh start
-	RETVAL=$?
-	echo
-	touch /var/lock/subsys/opennms
-	return $RETVAL
+	if [ -f /etc/SuSE-release ]; then
+		$OPENNMS_HOME/bin/opennms.sh start || rc_failed
+		rc_status -v
+	else
+		daemon $OPENNMS_HOME/bin/opennms.sh start
+		RETVAL=$?
+		echo
+		touch /var/lock/subsys/opennms
+		return $RETVAL
+	fi
 }
 
 stop(){
 	echo -n $"Stopping OpenNMS: "
-	daemon /opt/OpenNMS/bin/opennms.sh stop
-	RETVAL=$?
-	echo
-	sleep 10
-	/opt/OpenNMS/bin/opennms.sh kill >/dev/null 2>&1
-	rm -f /var/lock/subsys/opennms
-	return $RETVAL
+	if [ -f /etc/SuSE-release ]; then
+		$OPENNMS_HOME/bin/opennms.sh stop || rc_failed
+		$OPENNMS_HOME/bin/opennms.sh kill
+		rc_status -v
+	else
+		daemon $OPENNMS_HOME/bin/opennms.sh stop
+		RETVAL=$?
+		echo
+		sleep 10
+		$OPENNMS_HOME/bin/opennms.sh kill >/dev/null 2>&1
+		rm -f /var/lock/subsys/opennms
+		return $RETVAL
+	fi
 }
 
 restart(){
@@ -71,7 +88,7 @@
 }
 
 status(){
-	/opt/OpenNMS/bin/opennms.sh status
+	$OPENNMS_HOME/bin/opennms.sh status
 	RETVAL=$?
 	echo
 	return $RETVAL
Index: tools/packages/opennms/opennms.spec.in
===================================================================
RCS file: /cvsroot/opennms/opennms/tools/packages/opennms/opennms.spec.in,v
retrieving revision 1.7
diff -u -r1.7 opennms.spec.in
--- tools/packages/opennms/opennms.spec.in	7 Feb 2003 04:25:10 -0000	1.7
+++ tools/packages/opennms/opennms.spec.in	22 Feb 2003 04:20:45 -0000
@@ -10,7 +10,8 @@
 %{!?rrdlibdir:%define rrdlibdir %instprefix/lib}
 %{!?logdir:%define logdir /var/log/opennms}
 %{!?pidfile:%define pidfile /var/run/opennms.pid}
-%{!?tomcatdir:%define tomcatdir /var/tomcat4}
+%{!?tomcatdir:%define tomcatdir @rpm.tomcatdir@}
+%{!?tomcatuser:%define tomcatuser @rpm.tomcatuser@}
 %{!?pglibdir:%define pglibdir %instprefix/lib}
 
 # build type modifiers
@@ -77,13 +78,23 @@
 %define	initdir		/etc/rc.d
 %define	psql		/usr/bin/psql
 %define psql_service	postgres
+%define tomcat_name	jakarta-tomcat
 Requires:		postgres >= 7.1
 %endif
 
+%if "%{platform}" == "linux-i386-suse-8.1"
+%define	initdir		/etc
+%define	psql		/usr/bin/psql
+%define psql_service	postgresql
+%define tomcat_name	jakarta-tomcat
+Requires:		postgresql >= 7.1, postgresql-server >= 7.1
+%endif
+
 %if "%{platform}" == "linux-i386-mandrake-7"
 %define	initdir		/etc
 %define	psql		/usr/bin/psql
 %define psql_service	postgresql
+%define tomcat_name	tomcat4
 Requires:		postgresql-server >= 7.1
 %endif
 
@@ -91,6 +102,7 @@
 %define	initdir		/etc
 %define	psql		/usr/bin/psql
 %define psql_service	postgresql
+%define tomcat_name	tomcat4
 Requires:		postgresql-server >= 7.1, libstdc++2.10
 %endif
 
@@ -98,6 +110,7 @@
 %define	initdir		/etc
 %define	psql		/usr/bin/psql
 %define psql_service	postgresql
+%define tomcat_name	tomcat4
 Requires:		postgresql-server >= 7.1, libstdc++2.10
 %endif
 
@@ -105,6 +118,7 @@
 %define	initdir		/etc/rc.d
 %define	psql		/usr/bin/psql
 %define psql_service	postgresql
+%define tomcat_name	tomcat4
 Requires:		postgresql-server >= 7.1
 %endif
 
@@ -112,6 +126,7 @@
 %define	initdir		/etc
 %define	psql		/usr/bin/psql
 %define psql_service	postgresql
+%define tomcat_name	tomcat4
 Requires:		postgresql-server >= 7.1, compat-libstdc++
 %endif
 
@@ -119,6 +134,7 @@
 %define	initdir		/etc
 %define	psql		/usr/bin/psql
 %define psql_service	postgresql
+%define tomcat_name	tomcat4
 Requires:		postgresql-server >= 7.1, compat-libstdc++
 %endif
 
@@ -141,7 +157,7 @@
 %package webapp
 Summary:	Web interface servlet for the OpenNMS network management platform
 Group:		Applications/System
-Requires:	tomcat4 >= 4.1.18, rrdtool, %{name} = %{version}-%{release}
+Requires:	%{tomcat_name} >= 4.1.18, rrdtool, %{name} = %{version}-%{release}
 
 %description webapp
 The web UI for OpenNMS.
@@ -205,12 +221,18 @@
 END
 
 %if "%builddocs" == "1"
-### /usr/share/doc/%{name}-%{version}
+### /usr/share/doc/%{name}-%{version}	(no -%{version} on SuSE)
+
+%if "%{platform}" == "linux-i386-suse-8.1"
+%define opennmsdocdir %{name}
+%else
+%define opennmsdocdir %{name}-%{version}
+%endif
 
-mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}
-cp -a work/docs/* $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/
+mkdir -p $RPM_BUILD_ROOT%{_docdir}/%{opennmsdocdir}
+cp -a work/docs/* $RPM_BUILD_ROOT%{_docdir}/%{opennmsdocdir}/
 rm -rf $RPM_BUILD_ROOT%{instprefix}/docs
-ln -sf %{_docdir}/%{name}-%{version} $RPM_BUILD_ROOT%{instprefix}/docs
+ln -sf %{_docdir}/%{opennmsdocdir} $RPM_BUILD_ROOT%{instprefix}/docs
 cp CHANGELOG README* $RPM_BUILD_ROOT%{instprefix}/etc/
 rm -rf $RPM_BUILD_ROOT%{instprefix}/etc/README
 rm -rf $RPM_BUILD_ROOT%{instprefix}/etc/README.build
@@ -221,7 +243,7 @@
 ln -sf %{logdir} $RPM_BUILD_ROOT%{instprefix}/logs
 ln -sf %{sharedir} $RPM_BUILD_ROOT%{instprefix}/share
 
-### /var/tomcat4
+### ${tomcatdir}
 
 mkdir -p $RPM_BUILD_ROOT%{tomcatdir}/server/lib
 for jar in \
@@ -236,7 +258,7 @@
 done
 
 pushd $RPM_BUILD_ROOT;
-find $RPM_BUILD_ROOT%{instprefix}/etc ! -type d | sed -e "s,^$RPM_BUILD_ROOT,%config(noreplace) ," | sort > %{_tmppath}/files.etc;
+find $RPM_BUILD_ROOT%{instprefix}/etc ! -type d | sed -e "s!^$RPM_BUILD_ROOT!%config(noreplace) %attr(775,%{tomcatuser},root) !" | sort > %{_tmppath}/files.etc;
 find $RPM_BUILD_ROOT%{tomcatdir}/webapps/%{name} ! -type d | sed -e "s,^$RPM_BUILD_ROOT,," | grep -v '/WEB-INF/web.xml' | sort > %{_tmppath}/files.webapp;
 popd
 
@@ -253,21 +275,23 @@
 %attr(755,root,root)	%{profiledir}/%{name}.sh
 %attr(755,root,root)	%{_bindir}/*
 %attr(755,root,root)	%{instprefix}/bin
-%dir			%{instprefix}/etc
-			%{instprefix}/contrib
+%attr(775,%{tomcatuser},root)	%dir %{instprefix}/etc
+%dir 			%{instprefix}/contrib
 %if "%builddocs" == "1"
 %attr(755,root,root)	%{instprefix}/docs
 %endif
 %attr(755,root,root)	%{instprefix}/lib
 			%{instprefix}/logs
 			%{instprefix}/share
+%if "%{instprefix}/share" != "%{sharedir}"
 			%{sharedir}
-			%{logdir}
+%endif
+%attr(775,%{tomcatuser},root) %{logdir}
 
 %if "%builddocs" == "1"
 %files docs
 %defattr(644 root root 755)
-%{_docdir}/%{name}-%{version}
+%{_docdir}/%{opennmsdocdir}
 %endif
 
 %files webapp -f %{_tmppath}/files.webapp
@@ -280,7 +304,24 @@
 . %{profiledir}/%{name}.sh
 
 "%{initdir}/init.d/%{psql_service}" stop
+attempts=10
+while [ $attempts -gt 0 ]; do
+	%{initdir}/init.d/%{psql_service} status | grep running || break
+	sleep 1
+	attempts=`expr $attempts - 1`
+done
 "%{initdir}/init.d/%{psql_service}" start
+
+# Make sure that the postgresql server is up
+attempts=10
+while [ $attempts -gt 0 ]; do
+	# should we add "-h localhost" below to test TCP/IP connectivity?
+	if echo '\q' | %{psql} -d template1 -U postgres > /dev/null 2>&1; then
+		break
+	fi
+	sleep 1
+	attempts=`expr $attempts - 1`
+done
 
 # run the post-install script
 
Index: tools/run/install.pl
===================================================================
RCS file: /cvsroot/opennms/opennms/tools/run/install.pl,v
retrieving revision 1.11
diff -u -r1.11 install.pl
--- tools/run/install.pl	7 Feb 2003 04:08:23 -0000	1.11
+++ tools/run/install.pl	22 Feb 2003 04:20:47 -0000
@@ -630,73 +630,121 @@
 
 if ($TOMCAT) {
 
-	for my $dir ('/var/tomcat4/conf', '/sw/var/tomcat4/conf', '/usr/local/tomcat4/conf', '/etc/tomcat4') {
+	my $serverxml;
+	my $catalinash;
 
-		my $serverxml = $dir . '/server.xml';
-	
-		if (-f $serverxml) {
-			my $server_in;
-	
-			print "- checking Tomcat 4 for OpenNMS web UI... ";
-			if (open(FILEIN, $serverxml)) {
-				$server_in .= $_ while (<FILEIN>);
-				close (FILEIN);
-	
-				if (grep(/opennms/gsi, $server_in)) {
-					if (not grep(/homeDir/gs, $server_in)) {
-						print "UPDATING:\n";
-						if (open(FILEOUT, ">$serverxml")) {
-							$server_in =~ s#userFile\s*=\s*\".*?\"\s*#homeDir="${OPENNMS_HOME}" #gs;
-							$server_in =~ s#<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_opennms_log." suffix=".txt" timestamp="true"/>#<Logger className="org.opennms.web.log.Log4JLogger" homeDir="${OPENNMS_HOME}" />#gs;
-							
-							print FILEOUT $server_in;
-							if (close(FILEOUT)) {
-								print "DONE\n";
-							}
-						} else {
-							$ERRORS++;
-							print "FAILED\n";
+	for my $dir ('/var/tomcat4/conf', '/sw/var/tomcat4/conf', '/usr/local/tomcat4/conf', '/etc/tomcat4', '/opt/jakarta/tomcat/conf') {
+
+		if (-f "$dir/server.xml") {
+			$serverxml = "$dir/server.xml";
+			if (-f "$dir/../bin/catalina.sh") {
+				$catalinash = "$dir/../bin/catalina.sh";
+			}
+			last;
+		}
+	}
+
+	if (-f $serverxml) {
+		my $server_in;
+
+		print "- checking Tomcat 4 for OpenNMS web UI... ";
+		if (open(FILEIN, $serverxml)) {
+			$server_in .= $_ while (<FILEIN>);
+			close (FILEIN);
+
+			if (grep(/opennms/gsi, $server_in)) {
+				if (not grep(/homeDir/gs, $server_in)) {
+					print "UPDATING:\n";
+					if (open(FILEOUT, ">$serverxml")) {
+						$server_in =~ s#userFile\s*=\s*\".*?\"\s*#homeDir="${OPENNMS_HOME}" #gs;
+						$server_in =~ s#<Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_opennms_log." suffix=".txt" timestamp="true"/>#<Logger className="org.opennms.web.log.Log4JLogger" homeDir="${OPENNMS_HOME}" />#gs;
+						
+						print FILEOUT $server_in;
+						if (close(FILEOUT)) {
+							print "DONE\n";
 						}
 					} else {
-						print "FOUND\n";
+						$ERRORS++;
+						print "FAILED\n";
 					}
 				} else {
-					print "UPDATING:\n";
-	
-					print "- adding OpenNMS web UI context to server.xml... ";
-	
-					if (open(FILEOUT, ">$serverxml")) {
-						for my $line (split(/\r?\n/, $server_in)) {
-							if ($line =~ m#</host>#gsi) {
-								print FILEOUT <<END;
+					print "FOUND\n";
+				}
+			} else {
+				print "UPDATING:\n";
 
-        <Context path="/opennms" docBase="opennms" debug="0" reloadable="true">
+				print "- adding OpenNMS web UI context to server.xml... ";
+
+				if (open(FILEOUT, ">$serverxml")) {
+					for my $line (split(/\r?\n/, $server_in)) {
+						if ($line =~ m#</host>#gsi) {
+							print FILEOUT <<END;
+
+         <Context path="/opennms" docBase="opennms" debug="0" reloadable="true">
          <Logger className="org.opennms.web.log.Log4JLogger" homeDir="${OPENNMS_HOME}"/>
          <Realm className="org.opennms.web.authenticate.OpenNMSTomcatRealm" homeDir="${OPENNMS_HOME}"/>
         </Context>
 
 END
-							}
-	
-							print FILEOUT $line, "\n";
 						}
-						if (close(FILEOUT)) {
-							print "DONE\n";
+
+						print FILEOUT $line, "\n";
+					}
+					if (close(FILEOUT)) {
+						print "DONE\n";
+					} else {
+						$ERRORS++;
+						print "FAILED\n";
+					}
+				} else {
+					$ERRORS++;
+					print "FAILED\n";
+				}
+			}
+		} else {
+			$ERRORS++;
+			print "FAILED\n";
+		}
+
+		if (-f $catalinash && -f "/etc/SuSE-release") {
+			my    $catalina_in;
+
+			print "- checking Tomcat uses Java 1.4 or later in catalina.sh... ";
+			if (open(FILEIN, $catalinash)) {
+				$catalina_in .= $_ while (<FILEIN>);
+				close (FILEIN);
+
+				if (grep(/^\. setJava/gm, $catalina_in)) {
+					if (not grep(/^\. setJava --devel --version 1\.4/gm, $catalina_in)){
+						print "UPDATING:\n";
+						print "- changing catalina.sh to use a minimum of Java 1.4... ";
+						if (open(FILEOUT, ">$catalinash")) {
+							$catalina_in =~ s#^\. setJava.*#\. setJava --devel --version 1\.4#gm;
+							print FILEOUT $catalina_in;
+							if (close(FILEOUT)) {
+								print "DONE\n";
+							} else {
+								$ERRORS++;
+								print "FAILED\n";
+							}
 						} else {
 							$ERRORS++;
 							print "FAILED\n";
 						}
 					} else {
-						$ERRORS++;
-						print "FAILED\n";
+						print "FOUND\n";
 					}
+				} else {
+					$ERRORS++;
+					print "NOT FOUND - SKIPPING\n";
 				}
-	
 			} else {
 				$ERRORS++;
 				print "FAILED\n";
 			}
 		}
+	} else {
+		print "*** server.xml not found ***\n";
 	}
 
 }
@@ -834,6 +882,9 @@
 					last;
 				} elsif (-f "$dir/plpgsql.$_") {
 					$plpgsql_sofile = "$dir/plpgsql.$_";
+					last;
+				} elsif (-f "$dir/postgresql/plpgsql.$_") {
+					$plpgsql_sofile = "$dir/postgresql/plpgsql.$_";
 					last;
 				}
 			}
