summaryrefslogtreecommitdiffstats
path: root/www/tomcat55/files
diff options
context:
space:
mode:
authorlawrance <lawrance@FreeBSD.org>2006-02-07 08:50:09 +0000
committerlawrance <lawrance@FreeBSD.org>2006-02-07 08:50:09 +0000
commit0dbf44f2e44716f3c3b19aaf706e26ea8868277d (patch)
treeac6207ff1ad078d8f37ce79287ab718225fb29d0 /www/tomcat55/files
parent1bc1a68a46ba43d35d424b84ee8715da075ed0ee (diff)
downloadFreeBSD-ports-0dbf44f2e44716f3c3b19aaf706e26ea8868277d.zip
FreeBSD-ports-0dbf44f2e44716f3c3b19aaf706e26ea8868277d.tar.gz
Clean up Tomcat 4, 4.1, 5, and 5.5 ports.
These changes apply to all ports, unless mentioned otherwise: - Move jakarta-tomcat55 to tomcat55 (it is no longer a Jakarta project). [6] - Improve the tomcat55 rc script. Fix PID handling. Improve the shutdown process. Use USE_RC_SUBR to its full potential. [2] - Backport tomcat55 rc script to the other tomcat ports. This allows us to pass command line arguments to the JVM. Noted in UPDATING. [1], [3], [4] - Change ownership of installed files. All files are now installed with default uid/gid (root:wheel) except for those in the conf/, logs/, temp/ and work/ directories. [5] - No longer install tomcatXXctl binary. rc scripts are more flexible and can be reconfigured without recompiling. - Remove AUTO_START and STOP_TIMEOUT (replaced with rc tomcatXX_stop_timeout). - Remove a long list of sed expressions in favour of SUB_LIST. - Move pkg_{,de}install to files/pkg_{,de}install.in. Add them to SUB_FILES. Tidy up substitutions and remove hardcoded values. - Some nonfunctional tidying and removal of Makefile cruft. PR: ports/38018 [1], ports/38020 [2], ports/74344 [3], ports/75143 [4], ports/83434 [5], ports/92692 [6] Submitted by: Ari Suutari <ari.suutari@syncrontech.com> [1] [2], SimpleRezo Team <freebsd@simplerezo.com> [3], Anton Yudin <toha@toha.org.ua> [4], Jan Grant <jan.grant@bristol.ac.uk> [5], lawrance [6] Approved by: Kang Liu <liukang@cn.freebsd.org> (maintainer) [6] Maintainer timeouts on [1], [2], [3], [4], [5] Big thanks to: hq for the initial tomcat55 script jasonb on FreeNode #tomcat for packaging advice
Diffstat (limited to 'www/tomcat55/files')
-rw-r--r--www/tomcat55/files/pkg-deinstall.in47
-rw-r--r--www/tomcat55/files/pkg-install.in53
-rw-r--r--www/tomcat55/files/tomcat.sh.in115
-rw-r--r--www/tomcat55/files/tomcat55.sh.in153
4 files changed, 253 insertions, 115 deletions
diff --git a/www/tomcat55/files/pkg-deinstall.in b/www/tomcat55/files/pkg-deinstall.in
new file mode 100644
index 0000000..655ee46
--- /dev/null
+++ b/www/tomcat55/files/pkg-deinstall.in
@@ -0,0 +1,47 @@
+#!/bin/sh
+#
+# This script does the following.
+#
+# * Checks if the PID file exists. If it does, it kills the
+# process and removes the PID file.
+#
+# * Checks if the '%%USER%%' user exists. If it does, then it displays
+# a message.
+#
+# $FreeBSD$
+#
+
+USER=%%USER%%
+PID_FILE=%%PID_FILE%%
+
+# Make sure we're in the right stage of the process
+if [ "$2" = "DEINSTALL" ]; then
+
+ # Kill the process if it is still running
+ if [ -s ${PID_FILE} ]; then
+ PID=`cat ${PID_FILE}`
+ echo -n ">> Killing Tomcat process (${PID})..."
+ /bin/kill ${PID} > /dev/null 2> /dev/null
+ if [ $? -eq 0 ]; then
+ echo " [ DONE ]"
+ else
+ echo " [ FAILED ]"
+ fi
+ echo -n ">> Removing PID file (${PID_FILE})..."
+ rm ${PID_FILE} > /dev/null 2> /dev/null
+ if [ $? -eq 0 ]; then
+ echo " [ DONE ]"
+ else
+ echo " [ FAILED ]"
+ fi
+ fi
+fi
+
+if [ "$2" = "POST-DEINSTALL" ]; then
+ # If the user exists, then display a message
+ if pw usershow "${USER}" 2>/dev/null 1>&2; then
+ echo "To delete the ${USER} user permanently, use 'pw userdel ${USER}'"
+ fi
+fi
+
+exit 0
diff --git a/www/tomcat55/files/pkg-install.in b/www/tomcat55/files/pkg-install.in
new file mode 100644
index 0000000..ddc5dfd
--- /dev/null
+++ b/www/tomcat55/files/pkg-install.in
@@ -0,0 +1,53 @@
+#!/bin/sh
+#
+# Checks if the '%%USER%%' user and '%%GROUP%%' group exist. If they don't, then
+# an attempt is made to create both.
+#
+# $FreeBSD$
+#
+
+# Make sure we're called during the 'make install' process
+if [ "$2" != "PRE-INSTALL" ]; then
+ exit 0
+fi
+
+# Set some constants
+UID=80
+GID=${UID}
+USER=%%USER%%
+GROUP=%%GROUP%%
+
+# See if the group already exists
+if ! pw groupshow "${GROUP}" 2>/dev/null 1>&2; then
+
+ # If not, try to create it
+ if pw groupadd "${GROUP}" -g ${GID}; then
+ echo "Added group \"${GROUP}\"."
+ elif pw groupadd "${GROUP}"; then
+ echo "Added group \"${GROUP}\"."
+ else
+ echo "Adding group \"${GROUP}\" failed..."
+ exit 1
+ fi
+fi
+
+# See if the user already exists
+if ! pw usershow "${USER}" 2>/dev/null 1>&2; then
+
+ # If not, try to create it
+ if pw useradd "${USER}" -u ${UID} -g "${GROUP}" -h - \
+ -s "/sbin/nologin" -d "/nonexistent" \
+ -c "World Wide Web Owner";
+ then
+ echo "Added user \"${USER}\"."
+ elif pw useradd "${USER}" -g "${GROUP}" -h - \
+ -s "/sbin/nologin" -d "/nonexistent" \
+ -c "World Wide Web Owner";
+ then
+ echo "Added user \"${USER}\"."
+ else
+ echo "Adding user \"${USER}\" failed..."
+ exit 1
+ fi
+fi
+exit 0
diff --git a/www/tomcat55/files/tomcat.sh.in b/www/tomcat55/files/tomcat.sh.in
deleted file mode 100644
index 0dca0cb..0000000
--- a/www/tomcat55/files/tomcat.sh.in
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/bin/sh
-#
-# $FreeBSD$
-#
-
-# PROVIDE: jakarta-tomcat%%TOMCAT_VERSION%%
-# REQUIRE: NETWORKING SERVERS
-# BEFORE: DAEMON
-# KEYWORD: FreeBSD shutdown
-
-#
-# Configuration settings for jakarta-tomcat%%TOMCAT_VERSION%% in /etc/rc.conf:
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_enable (bool):
-# Set to "NO" by default.
-# Set it to "YES" to enable jakarta-tomcat%%TOMCAT_VERSION%%
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_flags (str):
-# Set to "" by default.
-# Extra flags passed to start command
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_catalina_home (str)
-# Set to "%%TOMCAT_HOME%%" by default.
-# Set the CATALINA_HOME variable for the Tomcat process
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_catalina_base (str)
-# Set to "%%TOMCAT_HOME%%" by default.
-# Set the CATALINA_BASE variable for the Tomcat process
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_catalina_tmpdir (str)
-# Set to "%%TOMCAT_HOME%%/temp" by default.
-# Set the CATALINA_TMPDIR variable for the Tomcat process
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_stdout_log (str)
-# Set to "%%STDOUT_LOG%%" by default.
-# Set the location for the Tomcat process log (standard output)
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_stderr_log (str)
-# Set to "%%STDERR_LOG%%" by default.
-# Set the location for the Tomcat process log (error output)
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_java_home (str):
-# jakarta_tomcat%%TOMCAT_VERSION%%_java_vendor (str):
-# jakarta_tomcat%%TOMCAT_VERSION%%_java_version (str):
-# jakarta_tomcat%%TOMCAT_VERSION%%_java_os (str):
-# Specify the requirements of the Java VM to use. See javavm(1).
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_classpath (str):
-# Set to "" by default.
-# Addtional classes to add to the CLASSPATH
-#
-# jakarta_tomcat%%TOMCAT_VERSION%%_java_opts (str):
-# Set to "" by default.
-# Java VM args to use.
-#
-
-jakarta_tomcat%%TOMCAT_VERSION%%_enable="${jakarta_tomcat%%TOMCAT_VERSION%%_enable:-"NO"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_java_version="${jakarta_tomcat%%TOMCAT_VERSION%%_java_version:-"%%JAVA_VERSION%%"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_user="${jakarta_tomcat%%TOMCAT_VERSION%%_user:-"%%USER%%"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_catalina_home="${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_home:-"%%TOMCAT_HOME%%"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_catalina_base="${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_base:-"%%TOMCAT_HOME%%"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_catalina_tmpdir="${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_tmpdir:-"%%TOMCAT_HOME%%/temp"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_stdout_log="${jakarta_tomcat%%TOMCAT_VERSION%%_stdout_log:-"%%STDOUT_LOG%%"}"
-jakarta_tomcat%%TOMCAT_VERSION%%_stderr_log="${jakarta_tomcat%%TOMCAT_VERSION%%_stderr_log:-"%%STDERR_LOG%%"}"
-
-. %%RC_SUBR%%
-
-name="jakarta_tomcat%%TOMCAT_VERSION%%"
-rcvar=`set_rcvar`
-
-load_rc_config "${name}"
-
-if [ -n "${jakarta_tomcat%%TOMCAT_VERSION%%_java_home}" ] ; then
- export JAVA_HOME="${jakarta_tomcat%%TOMCAT_VERSION%%_java_home}"
-fi
-
-if [ -n "${jakarta_tomcat%%TOMCAT_VERSION%%_java_version}" ] ; then
- export JAVA_VERSION="${jakarta_tomcat%%TOMCAT_VERSION%%_java_version}"
-fi
-
-if [ -n "${jakarta_tomcat%%TOMCAT_VERSION%%_java_vendor}" ] ; then
- export JAVA_VENDOR="${jakarta_tomcat%%TOMCAT_VERSION%%_java_vendor}"
-fi
-
-if [ -n "${jakarta_tomcat%%TOMCAT_VERSION%%_java_os}" ] ; then
- export JAVA_OS="${jakarta_tomcat%%TOMCAT_VERSION%%_java_os}"
-fi
-
-java_command="%%LOCALBASE%%/bin/java \
- ${jakarta_tomcat%%TOMCAT_VERSION%%_java_opts} \
- -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \
- -classpath %%TOMCAT_HOME%%/bin/bootstrap.jar:%%TOMCAT_HOME%%/bin/commons-logging-api.jar:${jakarta_tomcat%%TOMCAT_VERSION%%_classpath} \
- -Dcatalina.base=${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_base} \
- -Dcatalina.home=${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_home} \
- -Djava.io.tmpdir=${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_tmpdir} \
- org.apache.catalina.startup.Bootstrap"
-
-log_args=">> ${jakarta_tomcat%%TOMCAT_VERSION%%_stdout_log} \
- 2>> ${jakarta_tomcat%%TOMCAT_VERSION%%_stderr_log} "
-
-procname="java"
-required_files="${jakarta_tomcat%%TOMCAT_VERSION%%_catalina_home}/conf/server.xml"
-
-command="/usr/sbin/daemon"
-flags="${command} ${java_command} start ${jakarta_tomcat%%TOMCAT_VERSION%%_flags} ${log_args}"
-
-stop_cmd="jakarta_tomcat%%TOMCAT_VERSION%%_stop"
-
-jakarta_tomcat%%TOMCAT_VERSION%%_stop() {
- echo "Stopping ${name}."
- ${java_command} stop
- wait_for_pids
-}
-
-run_rc_command "$1"
diff --git a/www/tomcat55/files/tomcat55.sh.in b/www/tomcat55/files/tomcat55.sh.in
new file mode 100644
index 0000000..dac2e79
--- /dev/null
+++ b/www/tomcat55/files/tomcat55.sh.in
@@ -0,0 +1,153 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+
+# PROVIDE: tomcat%%TOMCAT_VERSION%%
+# REQUIRE: NETWORKING SERVERS
+# BEFORE: DAEMON
+# KEYWORD: FreeBSD shutdown
+
+#
+# Configuration settings for tomcat%%TOMCAT_VERSION%% in /etc/rc.conf:
+#
+# tomcat%%TOMCAT_VERSION%%_enable (bool):
+# Set to "NO" by default.
+# Set it to "YES" to enable tomcat%%TOMCAT_VERSION%%
+#
+# tomcat%%TOMCAT_VERSION%%_flags (str):
+# Set to "" by default.
+# Extra flags passed to start command
+#
+# tomcat%%TOMCAT_VERSION%%_catalina_home (str)
+# Set to "%%TOMCAT_HOME%%" by default.
+# Set the CATALINA_HOME variable for the Tomcat process
+#
+# tomcat%%TOMCAT_VERSION%%_catalina_base (str)
+# Set to "%%TOMCAT_HOME%%" by default.
+# Set the CATALINA_BASE variable for the Tomcat process
+#
+# tomcat%%TOMCAT_VERSION%%_catalina_tmpdir (str)
+# Set to "%%TOMCAT_HOME%%/temp" by default.
+# Set the CATALINA_TMPDIR variable for the Tomcat process
+#
+# tomcat%%TOMCAT_VERSION%%_stdout_log (str)
+# Set to "%%STDOUT_LOG%%" by default.
+# Set the location for the Tomcat process log (standard output)
+#
+# tomcat%%TOMCAT_VERSION%%_stderr_log (str)
+# Set to "%%STDERR_LOG%%" by default.
+# Set the location for the Tomcat process log (error output)
+#
+# tomcat%%TOMCAT_VERSION%%_stop_timeout (num)
+# Set to "10" by default.
+# Sets the timeout in seconds to allow tomcat to shutdown.
+# After the timeout has elapsed, tomcat will be killed.
+#
+# tomcat%%TOMCAT_VERSION%%_java_home (str):
+# tomcat%%TOMCAT_VERSION%%_java_vendor (str):
+# tomcat%%TOMCAT_VERSION%%_java_version (str):
+# tomcat%%TOMCAT_VERSION%%_java_os (str):
+# Specify the requirements of the Java VM to use. See javavm(1).
+#
+# tomcat%%TOMCAT_VERSION%%_classpath (str):
+# Set to "" by default.
+# Addtional classes to add to the CLASSPATH
+#
+# tomcat%%TOMCAT_VERSION%%_java_opts (str):
+# Set to "" by default.
+# Java VM args to use.
+#
+
+tomcat%%TOMCAT_VERSION%%_enable="${tomcat%%TOMCAT_VERSION%%_enable:-"NO"}"
+tomcat%%TOMCAT_VERSION%%_java_version="${tomcat%%TOMCAT_VERSION%%_java_version:-"%%JAVA_VERSION%%"}"
+tomcat%%TOMCAT_VERSION%%_user="${tomcat%%TOMCAT_VERSION%%_user:-"%%USER%%"}"
+tomcat%%TOMCAT_VERSION%%_catalina_home="${tomcat%%TOMCAT_VERSION%%_catalina_home:-"%%TOMCAT_HOME%%"}"
+tomcat%%TOMCAT_VERSION%%_catalina_base="${tomcat%%TOMCAT_VERSION%%_catalina_base:-"%%TOMCAT_HOME%%"}"
+tomcat%%TOMCAT_VERSION%%_catalina_tmpdir="${tomcat%%TOMCAT_VERSION%%_catalina_tmpdir:-"%%TOMCAT_HOME%%/temp"}"
+tomcat%%TOMCAT_VERSION%%_stdout_log="${tomcat%%TOMCAT_VERSION%%_stdout_log:-"%%STDOUT_LOG%%"}"
+tomcat%%TOMCAT_VERSION%%_stderr_log="${tomcat%%TOMCAT_VERSION%%_stderr_log:-"%%STDERR_LOG%%"}"
+tomcat%%TOMCAT_VERSION%%_stop_timeout="${tomcat%%TOMCAT_VERSION%%_stop_timeout:-"10"}"
+
+. %%RC_SUBR%%
+
+name="tomcat%%TOMCAT_VERSION%%"
+rcvar=`set_rcvar`
+pidfile="%%PID_FILE%%"
+
+load_rc_config "${name}"
+
+if [ -n "${tomcat%%TOMCAT_VERSION%%_java_home}" ] ; then
+ export JAVA_HOME="${tomcat%%TOMCAT_VERSION%%_java_home}"
+fi
+
+if [ -n "${tomcat%%TOMCAT_VERSION%%_java_version}" ] ; then
+ export JAVA_VERSION="${tomcat%%TOMCAT_VERSION%%_java_version}"
+fi
+
+if [ -n "${tomcat%%TOMCAT_VERSION%%_java_vendor}" ] ; then
+ export JAVA_VENDOR="${tomcat%%TOMCAT_VERSION%%_java_vendor}"
+fi
+
+if [ -n "${tomcat%%TOMCAT_VERSION%%_java_os}" ] ; then
+ export JAVA_OS="${tomcat%%TOMCAT_VERSION%%_java_os}"
+fi
+
+java_command="%%LOCALBASE%%/bin/java \
+ ${tomcat%%TOMCAT_VERSION%%_java_opts} \
+ -Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS \
+ -classpath %%TOMCAT_HOME%%/%%JAR_FILE%%:%%TOMCAT_HOME%%/bin/commons-logging-api.jar:${tomcat%%TOMCAT_VERSION%%_classpath} \
+ -Dcatalina.base=${tomcat%%TOMCAT_VERSION%%_catalina_base} \
+ -Dcatalina.home=${tomcat%%TOMCAT_VERSION%%_catalina_home} \
+ -Djava.io.tmpdir=${tomcat%%TOMCAT_VERSION%%_catalina_tmpdir} \
+ org.apache.catalina.startup.Bootstrap"
+
+log_args=">> ${tomcat%%TOMCAT_VERSION%%_stdout_log} \
+ 2>> ${tomcat%%TOMCAT_VERSION%%_stderr_log} "
+
+procname="*java"
+required_files="${tomcat%%TOMCAT_VERSION%%_catalina_home}/conf/server.xml"
+
+command="/usr/sbin/daemon"
+flags="-p ${pidfile} ${java_command} start ${tomcat%%TOMCAT_VERSION%%_flags} ${log_args}"
+
+stop_cmd="tomcat%%TOMCAT_VERSION%%_stop"
+
+tomcat%%TOMCAT_VERSION%%_stop() {
+ rc_pid=$(check_pidfile $pidfile $procname)
+
+ if [ -z "$rc_pid" ]; then
+ [ -n "$rc_fast" ] && return 0
+ if [ -n "$pidfile" ]; then
+ echo "${name} not running? (check $pidfile)."
+ else
+ echo "${name} not running?"
+ fi
+ return 1
+ fi
+
+ echo "Stopping ${name}."
+ ${java_command} stop
+ tomcat_wait_max_for_pid ${tomcat%%TOMCAT_VERSION%%_stop_timeout} ${rc_pid}
+ kill -KILL ${rc_pid} 2> /dev/null && echo "Killed."
+ echo -n > ${pidfile}
+}
+
+tomcat_wait_max_for_pid() {
+ _timeout=$1
+ shift
+ _pid=$1
+ _prefix=
+ while [ $_timeout -gt 0 ] ; do
+ echo -n ${_prefix:-"Waiting (max $_timeout secs) for PIDS: "}$_pid
+ _prefix=", "
+ sleep 2
+ kill -0 $_pid 2> /dev/null || break
+ _timeout=$(($_timeout-2))
+ done
+ if [ -n "$_prefix" ]; then
+ echo "."
+ fi
+}
+
+run_rc_command "$1"
OpenPOWER on IntegriCloud