summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVlastimil Babka <caster@gentoo.org>2010-06-06 12:32:34 +0000
committerVlastimil Babka <caster@gentoo.org>2010-06-06 12:32:34 +0000
commitcfaccd7f3c2420a66cf6645a6f37b2a98d401a67 (patch)
tree37752a52f5a81cf3034f25dc2eb0deac23967aeb /www-servers
parentSimplify src_configure(). (diff)
downloadgentoo-2-cfaccd7f3c2420a66cf6645a6f37b2a98d401a67.tar.gz
gentoo-2-cfaccd7f3c2420a66cf6645a6f37b2a98d401a67.tar.bz2
gentoo-2-cfaccd7f3c2420a66cf6645a6f37b2a98d401a67.zip
Revbump with updated init script by wltjr, including overlay changes by weisso. Adds forcestop option to kill tomcat when normal stop doesn't work. Note that CLASSPATH is now unset in the init script, as global CLASSPATH is deprecated and should be set for tomcat specifically. Fixes bugs #191611, #243348, #310029, #294846. Remove old.
(Portage version: 2.2_rc67/cvs/Linux x86_64)
Diffstat (limited to 'www-servers')
-rw-r--r--www-servers/tomcat/ChangeLog12
-rw-r--r--www-servers/tomcat/files/6/tomcat.init.2124
-rw-r--r--www-servers/tomcat/tomcat-6.0.20.ebuild215
-rw-r--r--www-servers/tomcat/tomcat-6.0.26-r1.ebuild (renamed from www-servers/tomcat/tomcat-6.0.20-r1.ebuild)10
4 files changed, 140 insertions, 221 deletions
diff --git a/www-servers/tomcat/ChangeLog b/www-servers/tomcat/ChangeLog
index a442681aa6c1..0786a320f7da 100644
--- a/www-servers/tomcat/ChangeLog
+++ b/www-servers/tomcat/ChangeLog
@@ -1,6 +1,16 @@
# ChangeLog for www-servers/tomcat
# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.229 2010/04/10 21:17:30 caster Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.230 2010/06/06 12:32:33 caster Exp $
+
+*tomcat-6.0.26-r1 (06 Jun 2010)
+
+ 06 Jun 2010; Vlastimil Babka <caster@gentoo.org> +files/6/tomcat.init.2,
+ -tomcat-6.0.20.ebuild, -tomcat-6.0.20-r1.ebuild, +tomcat-6.0.26-r1.ebuild:
+ Revbump with updated init script by wltjr, including overlay changes by
+ weisso. Adds forcestop option to kill tomcat when normal stop doesn't
+ work. Note that CLASSPATH is now unset in the init script, as global
+ CLASSPATH is deprecated and should be set for tomcat specifically. Fixes
+ bugs #191611, #243348, #310029, #294846. Remove old.
10 Apr 2010; Vlastimil Babka <caster@gentoo.org> tomcat-6.0.26.ebuild:
Always use ecj to compile on amd64 to prevent insufficient heap, fixes bug
diff --git a/www-servers/tomcat/files/6/tomcat.init.2 b/www-servers/tomcat/files/6/tomcat.init.2
new file mode 100644
index 000000000000..4411548872b8
--- /dev/null
+++ b/www-servers/tomcat/files/6/tomcat.init.2
@@ -0,0 +1,124 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/files/6/tomcat.init.2,v 1.1 2010/06/06 12:32:34 caster Exp $
+
+opts="${opts} forcestop"
+
+init_env_vars() {
+ # Populate JAVA_HOME
+ JAVA_HOME=`java-config --jre-home`
+
+ # Set some sane defaults
+ if [ -z "${CATALINA_TMPDIR}" ] ; then
+ CATALINA_TMPDIR="${CATALINA_BASE}"/temp
+ fi
+ JPDA_TRANSPORT=${JPDA_TRANSPORT:="dt_socket"}
+ JPDA_ADDRESS=${JPDA_ADDRESS:="8000"}
+ JPDA_OPTS=${JPDA_OPTS="-Xdebug -Xrunjdwp:transport=${JPDA_TRANSPORT},address=${JPDA_ADDRESS},server=y,suspend=n"}
+
+ # Activate Logging
+ if [ -r "${CATALINA_HOME}"/bin/tomcat-juli.jar ]; then
+ JAVA_OPTS="${JAVA_OPTS} -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \
+ -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties"
+ fi
+
+ # Populate the classpath
+ unset CLASSPATH
+ CLASSPATH="${CATALINA_HOME}/lib:${JAVA_HOME}/lib/tools.jar"
+ if [ -n "${JSSE_HOME}" ]; then
+ CLASSPATH="${CLASSPATH}:${JSSE_HOME}/lib/jcert.jar:${JSSE_HOME}/lib/jnet.jar:${JSSE_HOME}/lib/jsse.jar"
+ fi
+ CLASSPATH="${CLASSPATH}:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar"
+
+ OPTS_CP="${JAVA_OPTS} ${CATALINA_OPTS} -classpath ${CLASSPATH}"
+
+ CATALINA_ARGS="-Dcatalina.base=${CATALINA_BASE} \
+ -Dcatalina.home=${CATALINA_HOME} \
+ -Djava.io.tmpdir=${CATALINA_TMPDIR} \
+ org.apache.catalina.startup.Bootstrap "
+
+ if [ ! -f "${CATALINA_BASE}logs/catalina.out" ]; then
+ touch "${CATALINA_BASE}logs/catalina.out"
+ chown "${CATALINA_USER}:${CATALINA_GROUP}" "${CATALINA_BASE}logs/catalina.out"
+ fi
+}
+
+ssd() {
+ local exec=${1}
+ shift
+ local args="--start --quiet --background \
+ --chdir "${CATALINA_TMPDIR}" \
+ --chuid ${CATALINA_USER}:${CATALINA_GROUP} \
+ --make-pidfile --pidfile /var/run/tomcat-6.pid"
+
+ # bug #243348
+ if [ -e /etc/init.d/sysfs ] ; then
+ args="${args} \
+ --stdout ${CATALINA_BASE}/logs/catalina.out \
+ --stderr ${CATALINA_BASE}/logs/catalina.out"
+ start-stop-daemon ${args} --exec ${exec} -- ${OPTS_CP} "$@" ${CATALINA_ARGS} ${TOMCAT_START}
+ else
+ start-stop-daemon ${args} --startas /bin/bash -- -c \
+ "exec ${exec} ${OPTS_CP} $@ ${CATALINA_ARGS} ${TOMCAT_START} >> \
+ \"$CATALINA_BASE/logs/catalina.out\" 2>&1"
+ fi
+ return $?
+}
+
+depend() {
+ use dns logger net
+}
+
+start() {
+ ebegin "Starting Tomcat"
+ init_env_vars
+
+ if [ ! -e "${CATALINA_TMPDIR}" ]; then
+ eerror "CATALINA_TMPDIR does not exist. Unable to start tomcat."
+ eerror "Please see /etc/conf.d/tomcat-6 for more information."
+ eend 1
+ fi
+
+ # Figure out what args to pass start_helper based on TOMCAT_START
+ if [ "${TOMCAT_START}" = "debug" ] ; then
+ ssd ${JAVA_HOME}/bin/jdb \
+ -sourcepath ${CATALINA_HOME}/../../jakarta-tomcat-catalina/catalina/src/share
+ elif [ "${TOMCAT_START}" = "-security debug" ] ; then
+ ssd ${JAVA_HOME}/bin/jdb \
+ -sourcepath ${CATALINA_HOME}/../../jakarta-tomcat-catalina/catalina/src/share \
+ -Djava.security.manager \
+ -Djava.security.policy=${CATALINA_BASE}/conf/catalina.policy
+ elif [ "${TOMCAT_START}" = "jpda start" ] ; then
+ ssd ${JAVA_HOME}/bin/java ${JPDA_OPTS}
+ elif [ "${TOMCAT_START}" = "start" ] ; then
+ ssd ${JAVA_HOME}/bin/java
+ elif [ "${TOMCAT_START}" = "-security start" ] ; then
+ ssd ${JAVA_HOME}/bin/java \
+ -Djava.security.manager \
+ -Djava.security.policy=${CATALINA_BASE}/conf/catalina.policy
+ else
+ eerror "Invalid TOMCAT_START variable value, or one is not set"
+ eerror "Please see /etc/conf.d/tomcat-6 for more information"
+ eend 1
+ fi
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Tomcat"
+ init_env_vars
+ start-stop-daemon --stop --quiet --retry=60 \
+ --pidfile /var/run/tomcat-6.pid \
+ --exec ${JAVA_HOME}/bin/java -- ${OPTS_CP} ${CATALINA_args} stop ${STD_OUT}
+ eend $?
+}
+forcestop() {
+ ebegin "Forcing Tomcat to Stop"
+ start-stop-daemon --stop --quiet --retry=60 \
+ --pidfile /var/run/tomcat-6.pid --signal=9
+ if service_started "${SVCNAME}"; then
+ mark_service_stopped "${SVCNAME}"
+ fi
+ eend $?
+} \ No newline at end of file
diff --git a/www-servers/tomcat/tomcat-6.0.20.ebuild b/www-servers/tomcat/tomcat-6.0.20.ebuild
deleted file mode 100644
index 355244b22a5d..000000000000
--- a/www-servers/tomcat/tomcat-6.0.20.ebuild
+++ /dev/null
@@ -1,215 +0,0 @@
-# Copyright 1999-2009 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/tomcat-6.0.20.ebuild,v 1.4 2009/06/27 19:24:59 a3li Exp $
-
-EAPI=2
-JAVA_PKG_IUSE="doc examples source test"
-WANT_ANT_TASKS="ant-trax"
-
-inherit eutils java-pkg-2 java-ant-2
-
-DESCRIPTION="Tomcat Servlet-2.5/JSP-2.1 Container"
-
-MY_P="apache-${P}-src"
-SLOT="6"
-SRC_URI="mirror://apache/${PN}/${PN}-6/v${PV/_/-}/src/${MY_P}.tar.gz"
-HOMEPAGE="http://tomcat.apache.org/"
-KEYWORDS="amd64 ppc ppc64 x86 ~x86-fbsd"
-LICENSE="Apache-2.0"
-
-IUSE=""
-
-COMMON_DEPEND="dev-java/eclipse-ecj:3.3
- dev-java/ant-eclipse-ecj:3.3
- >=dev-java/commons-dbcp-1.2.1
- >=dev-java/commons-logging-1.1
- >=dev-java/commons-pool-1.2
- ~dev-java/tomcat-servlet-api-${PV}
- examples? ( dev-java/jakarta-jstl )"
-
-RDEPEND=">=virtual/jre-1.5
- >=dev-java/commons-daemon-1.0.1
- dev-java/ant-core
- ${COMMON_DEPEND}"
-
-DEPEND=">=virtual/jdk-1.5
- ${COMMON_DEPEND}
- test? ( =dev-java/junit-3.8* )"
-
-S=${WORKDIR}/${MY_P}
-
-TOMCAT_NAME="${PN}-${SLOT}"
-TOMCAT_HOME="/usr/share/${TOMCAT_NAME}"
-WEBAPPS_DIR="/var/lib/${TOMCAT_NAME}/webapps"
-
-# TODO: Fails to find PrettyPrint in with python 2.6 and xml-rewriter-3
-# Find out why so
-JAVA_ANT_CELEMENT_REWRITER="true"
-JAVA_ANT_REWRITE_CLASSPATH="true"
-
-EANT_NEEDS_TOOLS="true"
-EANT_GENTOO_CLASSPATH="tomcat-servlet-api-2.5,eclipse-ecj-3.3"
-
-EANT_BUILD_TARGET="build-only build-jasper-jdt"
-EANT_DOC_TARGET="build-docs"
-
-EANT_EXTRA_ARGS="-Dbase.path=${T} -Dversion=${PV} -Dversion.number=${PV}
--Dcompile.debug=false -Djsp-api.jar=jsp-api.jar -Dservlet-api.jar=servlet-api.jar
--Dant.jar=ant.jar"
-
-pkg_setup() {
- java-pkg-2_pkg_setup
- enewgroup tomcat 265
- enewuser tomcat 265 -1 /dev/null tomcat
-}
-
-java_prepare() {
- rm -v webapps/examples/WEB-INF/lib/*.jar || die
-
- # bug # 178980
- if use amd64 && [[ "${GENTOO_VM}" = "sun-jdk-1.5" ]] ; then
- java-pkg_force-compiler ecj-3.3
- fi
-
- if ! use doc; then
- EANT_EXTRA_ARGS+=" -Dnobuild.docs=true"
- fi
-
- EANT_EXTRA_ARGS+=" -Djdt.jar=$(java-pkg_getjar eclipse-ecj-3.3 ecj.jar)"
- java-pkg_jarfrom --build-only ant-core ant.jar
-}
-
-src_install() {
- cd "${S}/bin"
- rm -f *.bat
- chmod 755 *.sh
-
- # register jars per bug #171496
- cd "${S}/output/build/lib/"
- for jar in *.jar; do
- java-pkg_dojar ${jar}
- done
-
- local CATALINA_BASE=/var/lib/${TOMCAT_NAME}/
-
- # init.d, conf.d
- newinitd "${FILESDIR}"/${SLOT}/tomcat.init ${TOMCAT_NAME}
- newconfd "${FILESDIR}"/${SLOT}/tomcat.conf ${TOMCAT_NAME}
-
- # create dir structure
- dodir /usr/share/${TOMCAT_NAME}
-
- diropts -m750 -o tomcat -g tomcat
- dodir /etc/${TOMCAT_NAME}
- keepdir ${WEBAPPS_DIR}
-
- diropts -m755 -o tomcat -g tomcat
- dodir ${CATALINA_BASE}
-
- diropts -m775 -o tomcat -g tomcat
- dodir /etc/${TOMCAT_NAME}/Catalina/localhost
- keepdir /var/log/${TOMCAT_NAME}/
- keepdir /var/run/${TOMCAT_NAME}/
- keepdir /var/tmp/${TOMCAT_NAME}/
-
- cd "${S}"
- # fix context's so webapps will be deployed
- sed -i -e 's:Context a:Context docBase="${catalina.home}/webapps/host-manager" a:' "${S}"/webapps/host-manager/META-INF/context.xml
- sed -i -e 's:Context a:Context docBase="${catalina.home}/webapps/manager" a:' "${S}"/webapps/manager/META-INF/context.xml
-
- # replace the default pw with a random one, see #92281
- local randpw=$(echo ${RANDOM}|md5sum|cut -c 1-15)
- sed -e s:SHUTDOWN:${randpw}: -i conf/server.xml
-
- # copy over the directories
- chown -R tomcat:tomcat webapps/* conf/*
- cp -pR conf/* "${D}"/etc/${TOMCAT_NAME} || die "failed to copy conf"
- cp -pPR output/build/bin "${D}"/usr/share/${TOMCAT_NAME} \
- || die "failed to copy"
- # webapps get stored in /usr/share/${TOMCAT_NAME}/webapps
- cd "${S}"/webapps || die
- ebegin "Installing webapps to /usr/share/${TOMCAT_NAME}"
-
- cp -pR ROOT "${D}"/usr/share/${TOMCAT_NAME}/webapps || die
- cp -pR host-manager "${D}"/usr/share/${TOMCAT_NAME}/webapps || die
- cp -pR manager "${D}"/usr/share/${TOMCAT_NAME}/webapps || die
- if use doc; then
- cp -pR docs "${D}"/usr/share/${TOMCAT_NAME}/webapps || die
- fi
- if use examples; then
- cd "${S}"/webapps/examples/WEB-INF/lib
- java-pkg_jar-from jakarta-jstl jstl.jar
- java-pkg_jar-from jakarta-jstl standard.jar
- cd "${S}"/webapps
- cp -pR examples "${D}"/usr/share/${TOMCAT_NAME}/webapps || die
- fi
-
- # replace catalina.policy with gentoo specific one bug #176701
-# cp ${FILESDIR}/${SLOT}/catalina.policy "${D}"/etc/${TOMCAT_NAME} \
-# || die "failed to replace catalina.policy"
-
- cp "${T}"/tomcat6-deps/jdt/jasper-jdt.jar "${D}"/usr/share/${TOMCAT_NAME}/lib \
- || die "failed to copy"
-
- cd "${D}/usr/share/${TOMCAT_NAME}/lib" || die
- java-pkg_jar-from tomcat-servlet-api-2.5
-
- # symlink the directories to make CATALINA_BASE possible
- dosym /etc/${TOMCAT_NAME} ${CATALINA_BASE}/conf
- dosym /var/log/${TOMCAT_NAME} ${CATALINA_BASE}/logs
- dosym /var/tmp/${TOMCAT_NAME} ${CATALINA_BASE}/temp
- dosym /var/run/${TOMCAT_NAME} ${CATALINA_BASE}/work
-
- dodoc "${S}"/{RELEASE-NOTES,RUNNING.txt}
- fperms 640 /etc/${TOMCAT_NAME}/tomcat-users.xml
-}
-
-pkg_postinst() {
- ewarn "Changing ownership recursively on /etc/${TOMCAT_NAME}"
- # temp fix for bug #176097
- chown -fR tomcat:tomcat /etc/${TOMCAT_NAME}
- ewarn "Owner ship changed to tomcat:tomcat. Temp hack/fix."
-
- # bug #180519
- if [[ -e "${ROOT}var/lib/${TOMCAT_NAME}/webapps/manager" ]] ; then
- elog "The latest webapp has NOT been installed into"
- elog "${ROOT}var/lib/${TOMCAT_NAME}/webapps/ because directory already exists"
- elog "and we do not want to overwrite any files you have put there."
- elog
- elog "Installing latest webapp into"
- elog "${ROOT}usr/share/${TOMCAT_NAME}/webapps instead"
- elog
- elog "Manager Symbolic Links NOT created."
-
- else
- einfo "Installing latest webroot to ${ROOT}/${WEBAPPS_DIR}"
- cp -pR "${ROOT}"/usr/share/${TOMCAT_NAME}/webapps/* \
- "${ROOT}""${WEBAPPS_DIR}"
- # link the manager's context to the right position
- dosym ${TOMCAT_HOME}/webapps/host-manager/META-INF/context.xml /etc/${TOMCAT_NAME}/Catalina/localhost/host-manager.xml
- dosym ${TOMCAT_HOME}/webapps/manager/META-INF/context.xml /etc/${TOMCAT_NAME}/Catalina/localhost/manager.xml
- fi
-
- elog
- elog " This ebuild implements a FHS compliant layout for tomcat"
- elog " Please read http://www.gentoo.org/proj/en/java/tomcat6-guide.xml"
- elog " for more information."
- elog
- ewarn "tomcat-dbcp.jar is not built at this time. Please fetch jar"
- ewarn "from upstream binary if you need it. Gentoo Bug # 144276"
- elog
-
- ewarn "The manager webapps have known exploits, please refer to"
- ewarn "http://cve.mitre.org/cgi-bin/cvename.cgi?name=2007-2450"
-
- if use examples ; then
- ewarn
- ewarn "The examples webapp has a known exploit, please refer to"
- ewarn "http://cve.mitre.org/cgi-bin/cvename.cgi?name=2007-2449"
- ewarn
- fi
-
- elog
- elog " Please report any bugs to http://bugs.gentoo.org/"
- elog
-}
diff --git a/www-servers/tomcat/tomcat-6.0.20-r1.ebuild b/www-servers/tomcat/tomcat-6.0.26-r1.ebuild
index e36aadbd5df3..456c1daaf622 100644
--- a/www-servers/tomcat/tomcat-6.0.20-r1.ebuild
+++ b/www-servers/tomcat/tomcat-6.0.26-r1.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2009 Gentoo Foundation
+# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/tomcat-6.0.20-r1.ebuild,v 1.1 2009/07/03 11:02:15 ali_bush Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/tomcat-6.0.26-r1.ebuild,v 1.1 2010/06/06 12:32:34 caster Exp $
EAPI=2
JAVA_PKG_IUSE="doc examples source test"
@@ -66,8 +66,8 @@ pkg_setup() {
java_prepare() {
rm -v webapps/examples/WEB-INF/lib/*.jar || die
- # bug # 178980
- if use amd64 && [[ "${GENTOO_VM}" = "sun-jdk-1.5" ]] ; then
+ # bug # 178980 and #312293
+ if use amd64; then
java-pkg_force-compiler ecj-3.3
fi
@@ -93,7 +93,7 @@ src_install() {
local CATALINA_BASE=/var/lib/${TOMCAT_NAME}/
# init.d, conf.d
- newinitd "${FILESDIR}"/${SLOT}/tomcat.init ${TOMCAT_NAME}
+ newinitd "${FILESDIR}"/${SLOT}/tomcat.init.2 ${TOMCAT_NAME}
newconfd "${FILESDIR}"/${SLOT}/tomcat.conf ${TOMCAT_NAME}
# create dir structure