summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-servers')
-rw-r--r--www-servers/tomcat/ChangeLog9
-rw-r--r--www-servers/tomcat/files/5.5.17/catalinabuild-xml.patch30
-rw-r--r--www-servers/tomcat/files/5.5.17/jasperbuild-xml.patch10
-rw-r--r--www-servers/tomcat/files/5.5.17/mainbuild-xml.patch19
-rw-r--r--www-servers/tomcat/files/5.5.17/tomcat.conf72
-rw-r--r--www-servers/tomcat/files/5.5.17/tomcat.env1
-rwxr-xr-xwww-servers/tomcat/files/5.5.17/tomcat.init83
-rw-r--r--www-servers/tomcat/files/5.5.17/tomcatbuild-xml.patch148
-rw-r--r--www-servers/tomcat/files/digest-tomcat-5.5.173
-rw-r--r--www-servers/tomcat/tomcat-5.5.17.ebuild284
10 files changed, 658 insertions, 1 deletions
diff --git a/www-servers/tomcat/ChangeLog b/www-servers/tomcat/ChangeLog
index 6071ca238c44..0cd58c68480a 100644
--- a/www-servers/tomcat/ChangeLog
+++ b/www-servers/tomcat/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for www-servers/tomcat
# Copyright 2002-2006 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.50 2006/04/27 23:41:52 antarus Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.51 2006/07/03 02:13:09 nichoj Exp $
+
+ 03 Jul 2006; Joshua Nichols <nichoj@gentoo.org>
+ +files/5.5.17/catalinabuild-xml.patch,
+ +files/5.5.17/jasperbuild-xml.patch, +files/5.5.17/mainbuild-xml.patch,
+ +files/5.5.17/tomcat.conf, +files/5.5.17/tomcat.env,
+ +files/5.5.17/tomcat.init, +files/5.5.17/tomcatbuild-xml.patch:
+ Version bump.
27 Apr 2006; Alec Warner <antarus@gentoo.org>
files/digest-tomcat-5.0.27-r6, files/digest-tomcat-5.0.28-r12, Manifest:
diff --git a/www-servers/tomcat/files/5.5.17/catalinabuild-xml.patch b/www-servers/tomcat/files/5.5.17/catalinabuild-xml.patch
new file mode 100644
index 000000000000..da6b96901aab
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/catalinabuild-xml.patch
@@ -0,0 +1,30 @@
+--- apache-tomcat-5.5.15-src/container/catalina/build.xml 2006-01-03 10:15:07.000000000 -0500
++++ container/catalina/build.xml 2006-01-28 11:57:25.000000000 -0500
+@@ -60,6 +60,7 @@
+ <pathelement location="${jaas.jar}"/>
+ <pathelement location="${javagroups.jar}"/>
+ <pathelement location="${jcert.jar}"/>
++ <pathelement location="${jdt.jar}"/>
+ <pathelement location="${jmx.jar}"/>
+ <pathelement location="${jmx-remote.jar}"/>
+ <pathelement location="${jndi.jar}"/>
+@@ -91,6 +92,7 @@
+ <pathelement location="${commons-modeler.jar}"/>
+ <pathelement location="${jaas.jar}"/>
+ <pathelement location="${jcert.jar}"/>
++ <pathelement location="${jdt.jar}"/>
+ <pathelement location="${jmx.jar}"/>
+ <pathelement location="${jndi.jar}"/>
+ <pathelement location="${jnet.jar}"/>
+@@ -548,9 +550,10 @@
+ <!--
+ <copy todir="${catalina.build}/common/lib" file="${servlet-api.jar}"/>
+ -->
++ <!--
+ <copy todir="${catalina.build}/common/lib"
+ file="${tomcat-dbcp.jar}" />
+-
++ -->
+ <!-- Configuration Files -->
+ <copy todir="${catalina.build}/conf">
+ <fileset dir="src/conf">
diff --git a/www-servers/tomcat/files/5.5.17/jasperbuild-xml.patch b/www-servers/tomcat/files/5.5.17/jasperbuild-xml.patch
new file mode 100644
index 000000000000..1f0de5f8a04f
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/jasperbuild-xml.patch
@@ -0,0 +1,10 @@
+--- jasper/build.xml 2005-02-13 19:28:36.000000000 +0100
++++ jasper/build.xml 2005-02-13 20:46:15.554972064 +0100
+@@ -30,6 +30,7 @@
+ <pathelement location="${jsp-api.jar}"/>
+ <pathelement location="${tools.jar}"/>
+ <pathelement location="${jasper-compiler-jdt.jar}"/>
++ <pathelement location="${jdt.jar}"/>
+ <pathelement location="${xerces.jar}"/>
+ <pathelement location="${xercesImpl.jar}"/>
+ <pathelement location="${xml-apis.jar}"/>
diff --git a/www-servers/tomcat/files/5.5.17/mainbuild-xml.patch b/www-servers/tomcat/files/5.5.17/mainbuild-xml.patch
new file mode 100644
index 000000000000..7ef15860cb5c
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/mainbuild-xml.patch
@@ -0,0 +1,19 @@
+--- apache-tomcat-5.5.15-src/build.xml
++++ build.xml
+@@ -64,13 +64,14 @@
+ <target name="checkout"
+ description="Update or checkout required sources from SVN">
+
++ <!--
+ <echo level="info"
+ message="If the checkout fails, - todo - " />
+
+ <exec dir="${basedir}" executable="svn">
+ <arg line="checkout ${svnroot}/${current.loc} ${basedir}" />
+ </exec>
+-
++ -->
+ </target>
+
+ <!-- *************** UTILITY TARGETS *************** -->
+
diff --git a/www-servers/tomcat/files/5.5.17/tomcat.conf b/www-servers/tomcat/files/5.5.17/tomcat.conf
new file mode 100644
index 000000000000..d52a0660672f
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/tomcat.conf
@@ -0,0 +1,72 @@
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/files/5.5.17/tomcat.conf,v 1.1 2006/07/03 02:13:09 nichoj Exp $
+
+# JVM Runtime
+# Using the default setting, it will determine your JVM from the system-vm
+# set using java-config.
+# See java-config(1) manual page for assistance in determining this value.
+#
+# You can override this value with whatever path you wish.
+# Example: JAVA_HOME=/opt/sun-jdk-1.4.2.05
+
+JAVA_HOME=`java-config --jre-home`
+
+# (Optional) Java runtime options used when the "start", "stop", or "run"
+# commands are executed.
+# JAVA_OPTS=""
+
+# Where your web applications are located
+CATALINA_HOME=/usr/share/tomcat-5.5
+CATALINA_BASE=/var/lib/tomcat-5.5
+
+# Tomcat's User
+CATALINA_USER=tomcat
+
+# Location of the Tomcat JARs and classes
+CATALINA_LIBDIR=/usr/share/tomcat-5.5/server/lib
+
+# The CLASSPATH for Tomcat to use, plus any others you need.
+CLASSPATH=${CATALINA_LIBDIR}
+
+# (Optional) Directory path location of temporary directory the JVM should
+# use (java.io.tmpdir). Defaults to $CATALINA_BASE/temp.
+CATALINA_TMPDIR="/var/tmp/tomcat-5.5"
+
+# TOMCAT STARTUP/SHUTDOWN
+# debug Start Catalina in a debugger
+# debug -security Debug Catalina with a security manager
+# jpda start Start Catalina under JPDA debugger
+# start Start Catalina in a separate window
+# start -security Start in a separate window with security manager
+# stop Stop Catalina"
+#
+# NOTE: -security requires JSSE (see below)
+# NOTE: jpda requires JPDA (see below)
+TOMCAT_START="start"
+TOMCAT_STOP="stop"
+
+# (Optional) Java runtime options used when the "start", "stop", or "run"
+# commands are executed.
+# CATALINA_OPTS=""
+
+# Java Platform Debugger Architecture (JPDA)
+# http://java.sun.com/products/jpda/
+# Included with Java SDK 1.3 and later. No need to specify location.
+#
+# JPDA_TRANSPORT (Optional) JPDA transport used when the "jpda start"
+# command is executed. The default is "dt_socket".
+#
+# JPDA_ADDRESS (Optional) Java runtime options used when the "jpda start"
+# command is executed. The default is 8000.
+#
+# JPDA_TRANSPORT="dt_socket"
+# JPDA_ADDRESS="8000"
+
+# Java Secure Socket Extension (JSSE)
+# http://java.sun.com/products/jsse/
+# Included with Java SDK 1.4 and later.
+#
+# JSSE_HOME (Optional) May point at your Java Secure Sockets Extension
+# (JSSE) installation, whose JAR files will be added to the
+# system class path used to start Tomcat.
+#
+# JSSE_HOME="/opt/sun-jdk-1.4.1.02/jre/lib/"
diff --git a/www-servers/tomcat/files/5.5.17/tomcat.env b/www-servers/tomcat/files/5.5.17/tomcat.env
new file mode 100644
index 000000000000..8afb01ff1d8e
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/tomcat.env
@@ -0,0 +1 @@
+CATALINA_HOME=/usr/share/tomcat-5.5
diff --git a/www-servers/tomcat/files/5.5.17/tomcat.init b/www-servers/tomcat/files/5.5.17/tomcat.init
new file mode 100755
index 000000000000..e9180fa841e2
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/tomcat.init
@@ -0,0 +1,83 @@
+#!/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/5.5.17/tomcat.init,v 1.1 2006/07/03 02:13:09 nichoj Exp $
+
+init_env_vars() {
+ # Set some sane defaults
+ 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=/etc/tomcat-5.5/logging.properties"
+ fi
+
+ # Populate the classpath
+ CLASSPATH="${CLASSPATH}:$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:$(java-config -p commons-logging)"
+
+ OPTS_CP="${JAVA_OPTS} ${CATALINA_OPTS} \
+ -Djava.endorsed.dirs=${CATALINA_HOME}/common/endorsed \
+ -classpath ${CLASSPATH}"
+
+ CATALINA_ARGS="-Dcatalina.base=${CATALINA_BASE} \
+ -Dcatalina.home=${CATALINA_HOME} \
+ -Djava.io.tmpdir=${CATALINA_TMPDIR} \
+ org.apache.catalina.startup.Bootstrap "
+}
+
+start-helper() {
+ local executor=${1}
+ shift
+ local arguments="--start --quiet --background --chuid tomcat:tomcat \
+ --make-pidfile --pidfile /var/run/tomcat.pid"
+ start-stop-daemon ${arguments} --exec ${executor} -- ${OPTS_CP} "$@" ${CATALINA_ARGS} ${TOMCAT_START}
+ return $?
+}
+
+depend() {
+ use dns logger net
+}
+
+start() {
+ ebegin "Starting Tomcat"
+ init_env_vars
+ # Figure out what arguments to pass start-helper based on TOMCAT_START
+ if [[ "${TOMCAT_START}" == "debug" ]] ; then
+ start-helper $JAVA_HOME/bin/jdb \
+ -sourcepath ${CATALINA_HOME}/../../jakarta-tomcat-catalina/catalina/src/share
+ elif [[ "${TOMCAT_START}" == "debug -security" ]] ; then
+ start-helper $JAVA_HOME/bin/jdb \
+ -sourcepath ${CATALINA_HOME}/../../jakarta-tomcat-catalina/catalina/src/share \
+ -Djava.security.manager \
+ -Djava.security.policy=/etc/tomcat-5.5/conf/catalina.policy
+ elif [[ "${TOMCAT_START}" == "jpda start" ]] ; then
+ start-helper $JAVA_HOME/bin/java ${JPDA_OPTS}
+ elif [[ "${TOMCAT_START}" == "start" ]] ; then
+ start-helper $JAVA_HOME/bin/java
+ elif [[ "${TOMCAT_START}" == "start -security" ]] ; then
+ start-helper $JAVA_HOME/bin/java \
+ -Djava.security.manager \
+ -Djava.security.policy=/etc/tomcat-5.5/catalina.policy
+ else
+ eerror "Invalid TOMCAT_START variable value, or one is not set"
+ eerror "Please see /etc/conf.d/tomcat-5.5 for more information"
+ eend 1
+ fi
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping Tomcat"
+ init_env_vars
+ start-stop-daemon --stop --quiet \
+ --make-pidfile --pidfile /var/run/tomcat.pid \
+ --exec $JAVA_HOME/bin/java -- ${OPTS_CP} ${CATALINA_ARGS} stop
+ eend $?
+}
diff --git a/www-servers/tomcat/files/5.5.17/tomcatbuild-xml.patch b/www-servers/tomcat/files/5.5.17/tomcatbuild-xml.patch
new file mode 100644
index 000000000000..73f56dad7742
--- /dev/null
+++ b/www-servers/tomcat/files/5.5.17/tomcatbuild-xml.patch
@@ -0,0 +1,148 @@
+--- apache-tomcat-5.5.15-src/build/build.xml 2006-01-03 10:15:03.000000000 -0500
++++ build/build.xml 2006-01-28 13:12:39.000000000 -0500
+@@ -140,6 +140,7 @@
+
+ <!-- ====================== DEPLOY: Copy Static Files =================== -->
+ <target name="deploy-static" depends="init">
++ <!--
+ <copy file="${jsp-api.jar}" todir="${tomcat.build}/common/lib"/>
+ <copy file="${servlet-api.jar}" todir="${tomcat.build}/common/lib"/>
+
+@@ -158,9 +159,9 @@
+ <copy tofile="${tomcat.build}/bin/tomcat-native.tar.gz"
+ file="${tomcat-native.tar.gz}" />
+
+- <!-- <copy todir="${tomcat.build}/common/lib" file="${ant.jar}"/>
+- <copy todir="${tomcat.build}/common/lib" file="${ant-launcher.jar}"/> -->
++ <copy todir="${tomcat.build}/common/lib" file="${ant-launcher.jar}"/>
+ <copy todir="${tomcat.build}/common/lib" file="${jasper-compiler-jdt.jar}"/>
++ -->
+ </target>
+
+ <!-- ====================== Build all components =================== -->
+@@ -650,28 +651,8 @@
+
+ <!-- <antcall target="build-commons-modeler" /> -->
+ <!-- <antcall target="build-commons-daemon" /> -->
+-
+- <antcall target="downloadgz">
+- <param name="sourcefile" value="${commons-collections-src.loc}"/>
+- <param name="destfile" value="${tomcat-dbcp.jar}" />
+- </antcall>
+- <antcall target="downloadgz">
+- <param name="sourcefile" value="${commons-pool-src.loc}"/>
+- <param name="destfile" value="${tomcat-dbcp.jar}" />
+- </antcall>
+- <antcall target="downloadgz">
+- <param name="sourcefile" value="${commons-dbcp-src.loc}"/>
+- <param name="destfile" value="${tomcat-dbcp.jar}" />
+- </antcall>
+-
+- <antcall target="build-tomcat-dbcp" />
+-
+- <antcall target="downloadzip">
+- <param name="sourcefile" value="${jdt.loc}"/>
+- <param name="destfile" value="${jdt.jar}"/>
+- <param name="destdir" value="${base.path}"/>
+- </antcall>
+- <antcall target="build-jasper-compiler-jdt" />
++ <!-- <antcall target="build-tomcat-dbcp" /> -->
++ <!-- <antcall target="build-jasper-compiler-jdt" /> -->
+ </target>
+
+ <target name="build-tomcat-dbcp">
+@@ -824,9 +805,10 @@
+ </ant>
+
+ <!-- Precompiling and fixing webapps -->
++ <!--
+ <antcall target="build-webapps-precompile" />
+ <antcall target="fix-webapps" />
+-
++ -->
+ </target>
+
+ <target name="fix-webapps" depends="init" >
+@@ -1038,11 +1020,11 @@
+ <!-- ====================== Compat target =================== -->
+
+ <target name="compat" description="Create compatibility binaries for JREs before 1.5" >
+-
++ <!--
+ <copy todir="${tomcat.compat}/common/endorsed" file="${xercesImpl.jar}"/>
+ <copy todir="${tomcat.compat}/common/endorsed" file="${xml-apis.jar}"/>
+ <copy tofile="${tomcat.compat}/bin/jmx.jar" file="${jmx.jar}"/>
+-
++ -->
+ </target>
+
+ <!-- ====================== DEPLOY: Deploy Components =================== -->
+@@ -1089,8 +1071,9 @@
+ <!-- Copy Unix JSVC from commons-daemon -->
+ <copy file="${commons-daemon.jsvc.tar.gz}"
+ tofile="${tomcat.dist}/bin/jsvc.tar.gz" />
++ <!--
+ <copy todir="${tomcat.build}/bin" file="${commons-daemon.jar}" />
+-
++ -->
+ <echo>Target: Webapps precompilation ...</echo>
+
+ <antcall target="build-admin"/>
+@@ -1185,10 +1168,11 @@
+ description="Catalina Tests" depends="dist-tester">
+
+ <!-- For Java 1.4 -->
++ <!--
+ <copy file="${jmx.jar}" tofile="${tomcat.build}/bin/jmx.jar" />
+ <copy todir="${tomcat.build}/common/endorsed" file="${xercesImpl.jar}"/>
+ <copy todir="${tomcat.build}/common/endorsed" file="${xml-apis.jar}"/>
+-
++ -->
+ <parallel>
+
+ <java classname="LauncherBootstrap" fork="yes">
+@@ -1827,10 +1811,10 @@
+
+ <!-- commons-digester needs ../LICENSE -->
+ <!-- That is ugly XXX needs a review -->
++ <!--
+ <copy file="LICENSE" tofile="../LICENSE"/>
+ <copy file="LICENSE" tofile="${base.path}/LICENSE"/>
+
+- <!-- Downdown any sub package or tools needed. -->
+ <antcall target="downloadgz">
+ <param name="sourcefile" value="${commons-beanutils.loc}"/>
+ <param name="destfile" value="${commons-beanutils.jar}"/>
+@@ -1872,7 +1856,6 @@
+ </antcall>
+
+ <antcall target="downloadgz">
+- <!-- xerces2 brings 2 files, test for one of them -->
+ <param name="sourcefile" value="${xerces.loc}"/>
+ <param name="destfile" value="${xml-apis.jar}"/>
+ </antcall>
+@@ -1893,7 +1876,6 @@
+ <param name="destfile" value="${commons-launcher.jar}"/>
+ </antcall>
+
+- <!--
+ <antcall target="downloadgz">
+ <param name="sourcefile" value="${commons-pool.loc}"/>
+ <param name="destfile" value="${commons-pool.jar}"/>
+@@ -1904,7 +1886,6 @@
+ <param name="destfile" value="${commons-dbcp.jar}"/>
+ <param name="destdir" value="${base.path}"/>
+ </antcall>
+- -->
+
+ <antcall target="downloadgz">
+ <param name="sourcefile" value="${commons-httpclient.loc}"/>
+@@ -1932,7 +1913,7 @@
+ <param name="destfile" value="${tomcat-native.tar.gz}"/>
+ <param name="destdir" value="${tomcat-native.home}"/>
+ </antcall>
+-
++ -->
+ <!-- Build the dependencies that are not yet released -->
+ <antcall target="build-depends"/>
+
diff --git a/www-servers/tomcat/files/digest-tomcat-5.5.17 b/www-servers/tomcat/files/digest-tomcat-5.5.17
new file mode 100644
index 000000000000..51d603367aa1
--- /dev/null
+++ b/www-servers/tomcat/files/digest-tomcat-5.5.17
@@ -0,0 +1,3 @@
+MD5 afedf090888029b19a1bebc471264105 apache-tomcat-5.5.17-src.tar.gz 4282022
+RMD160 004d87bc64b32eee42f9979d2fdbb36836b69015 apache-tomcat-5.5.17-src.tar.gz 4282022
+SHA256 295c9fa64d9aa81d5c836b694804d8d57fcfdbc76b9889a044852aa73f2c3ad8 apache-tomcat-5.5.17-src.tar.gz 4282022
diff --git a/www-servers/tomcat/tomcat-5.5.17.ebuild b/www-servers/tomcat/tomcat-5.5.17.ebuild
new file mode 100644
index 000000000000..3e39363ca518
--- /dev/null
+++ b/www-servers/tomcat/tomcat-5.5.17.ebuild
@@ -0,0 +1,284 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/tomcat-5.5.17.ebuild,v 1.1 2006/07/03 02:13:09 nichoj Exp $
+
+inherit eutils java-pkg
+
+DESCRIPTION="Apache Servlet-2.4/JSP-2.0 Container"
+
+MY_P="apache-${P}-src"
+SLOT="5.5"
+SRC_URI="mirror://apache/${PN}/${PN}-5/v${PV}/src/${MY_P}.tar.gz"
+HOMEPAGE="http://jakarta.apache.org/tomcat"
+KEYWORDS="~amd64 ~x86"
+LICENSE="Apache-2.0"
+
+RDEPEND=">=virtual/jdk-1.4
+ =dev-java/eclipse-ecj-3.1*
+ =dev-java/commons-beanutils-1.7*
+ >=dev-java/commons-collections-3.1
+ >=dev-java/commons-daemon-1.0.1
+ >=dev-java/commons-dbcp-1.2.1
+ >=dev-java/commons-digester-1.7
+ >=dev-java/commons-fileupload-1.0
+ >=dev-java/commons-httpclient-2.0
+ >=dev-java/commons-el-1.0
+ >=dev-java/commons-launcher-0.9
+ >=dev-java/commons-logging-1.0.4
+ >=dev-java/commons-modeler-1.1
+ >=dev-java/commons-pool-1.2
+ ~dev-java/jaxen-1.0
+ >=dev-java/junit-3.8.1
+ =dev-java/mx4j-3*
+ >=dev-java/log4j-1.2.9
+ >=dev-java/saxpath-1.0
+ ~dev-java/servletapi-2.4
+ =dev-java/struts-1.2*
+ =dev-java/gnu-jaf-1*
+ >=dev-java/xerces-2.7.1"
+DEPEND=">=virtual/jdk-1.4
+ ${RDEPEND}
+ sys-apps/sed
+ dev-java/ant"
+IUSE="doc examples source test"
+
+S="${WORKDIR}/${MY_P}"
+
+TOMCAT_HOME="/usr/share/${PN}-${SLOT}"
+TOMCAT_NAME="${PN}-${SLOT}"
+WEBAPPS_DIR="/var/lib/${TOMCAT_NAME}/webapps"
+
+pkg_setup() {
+ enewgroup tomcat
+ enewuser tomcat -1 -1 /dev/null tomcat
+}
+
+src_unpack() {
+ unpack ${A}
+ cd ${S}
+
+ local PATCHES="
+ mainbuild-xml.patch
+ tomcatbuild-xml.patch
+ catalinabuild-xml.patch
+ jasperbuild-xml.patch
+ "
+ for patch in ${PATCHES}; do
+ epatch "${FILESDIR}/${PV}/${patch}"
+ done
+
+ # avoid packed jars :-)
+ mkdir -p ${S}/build/build/common
+ cd ${S}/build/build
+
+ mkdir ./bin && cd ./bin
+ java-pkg_jar-from commons-logging commons-logging-api.jar
+ java-pkg_jar-from mx4j-3.0 mx4j.jar jmx.jar
+ java-pkg_jar-from mx4j-3.0 mx4j-rjmx.jar jmx-remote.jar
+ java-pkg_jar-from commons-daemon
+
+ mkdir ../common/endorsed && cd ../common/endorsed
+ java-pkg_jar-from xerces-2 xml-apis.jar
+ java-pkg_jar-from xerces-2 xercesImpl.jar
+
+ mkdir ../lib && cd ../lib
+ java-pkg_jar-from ant-core
+ java-pkg_jar-from commons-collections
+ java-pkg_jar-from commons-dbcp
+ java-pkg_jar-from commons-el
+ java-pkg_jar-from commons-pool
+ java-pkg_jar-from servletapi-2.4
+
+ mkdir -p ../../server/lib && cd ../../server/lib
+ java-pkg_jar-from commons-beanutils-1.7 commons-beanutils.jar
+ java-pkg_jar-from commons-digester
+ java-pkg_jar-from commons-fileupload
+ java-pkg_jar-from commons-modeler
+}
+
+src_compile(){
+ local antflags="-Dbase.path=${T}"
+
+ antflags="${antflags} -Dactivation.jar=$(java-config -p gnu-jaf-1)"
+ antflags="${antflags} -Dcommons-collections.jar=$(java-config -p commons-collections)"
+ antflags="${antflags} -Dcommons-daemon.jar=$(java-config -p commons-daemon)"
+ antflags="${antflags} -Dcommons-digester.jar=$(java-config -p commons-digester)"
+ antflags="${antflags} -Dcommons-dbcp.jar=$(java-config -p commons-dbcp)"
+ antflags="${antflags} -Dcommons-el.jar=$(java-config -p commons-el)"
+ antflags="${antflags} -Dcommons-httpclient.jar=$(java-config -p commons-httpclient)"
+ antflags="${antflags} -Dcommons-pool.jar=$(java-config -p commons-pool)"
+ antflags="${antflags} -Dcommons-fileupload.jar=$(java-config -p commons-fileupload)"
+ antflags="${antflags} -Dcommons-launcher.jar=$(java-config -p commons-launcher)"
+ antflags="${antflags} -Dcommons-modeler.jar=$(java-config -p commons-modeler)"
+ antflags="${antflags} -Djunit.jar=$(java-config -p junit)"
+ antflags="${antflags} -Djdt.jar=$(java-pkg_getjar eclipse-ecj-3.1 ecj.jar)"
+ antflags="${antflags} -Dlog4j.jar=$(java-config -p log4j)"
+ antflags="${antflags} -Dstruts.jar=$(java-pkg_getjar struts-1.2 struts.jar)"
+ antflags="${antflags} -Dcommons-beanutils.jar=$(java-pkg_getjar commons-beanutils-1.7 commons-beanutils.jar)"
+ antflags="${antflags} -Dcommons-logging.jar=$(java-pkg_getjar commons-logging commons-logging.jar)"
+ antflags="${antflags} -Dcommons-logging-api.jar=$(java-pkg_getjar commons-logging commons-logging-api.jar)"
+ antflags="${antflags} -Djaxen.jar=$(java-pkg_getjar jaxen jaxen-full.jar)"
+ antflags="${antflags} -Djmx.jar=$(java-pkg_getjar mx4j-3.0 mx4j.jar)"
+ antflags="${antflags} -Djmx-remote.jar=$(java-pkg_getjar mx4j-3.0 mx4j-rjmx.jar)"
+ antflags="${antflags} -Dsaxpath.jar=$(java-pkg_getjar saxpath saxpath.jar)"
+ antflags="${antflags} -DxercesImpl.jar=$(java-pkg_getjar xerces-2 xercesImpl.jar)"
+ antflags="${antflags} -Dxml-apis.jar=$(java-pkg_getjar xerces-2 xml-apis.jar)"
+ antflags="${antflags} -Dstruts.home=/usr/share/struts"
+ antflags="${antflags} -Djasper.home=${S}/jasper"
+
+ ant ${antflags} || die "compile failed"
+
+}
+src_install() {
+ cd ${S}/build/build
+
+ # init.d, env.d, conf.d
+ newinitd ${FILESDIR}/${PV}/tomcat.init ${TOMCAT_NAME}
+ newconfd ${FILESDIR}/${PV}/tomcat.conf ${TOMCAT_NAME}
+ newenvd ${FILESDIR}/${PV}/${PN}.env 21${PN}
+
+ # create dir structure
+ diropts -m755 -o tomcat -g tomcat
+ dodir /usr/share/${TOMCAT_NAME}
+ keepdir /var/log/${TOMCAT_NAME}/
+ keepdir /var/tmp/${TOMCAT_NAME}/
+ keepdir /var/run/${TOMCAT_NAME}/
+
+ local CATALINA_BASE=/var/lib/${TOMCAT_NAME}/
+ dodir ${CATALINA_BASE}
+ keepdir ${CATALINA_BASE}/shared/lib
+ keepdir ${CATALINA_BASE}/shared/classes
+
+ dodir /etc/${TOMCAT_NAME}
+ fperms 750 /etc/${TOMCAT_NAME}
+
+ diropts -m0755
+
+ # we don't need dos scripts
+ rm -f bin/*.bat
+
+ # copy the manager and admin context's to the right position
+ mkdir -p conf/Catalina/localhost
+ cp ${S}/container/webapps/admin/admin.xml \
+ conf/Catalina/localhost
+ cp ${S}/container/webapps/manager/manager.xml \
+ conf/Catalina/localhost
+
+ # make the jars available via java-config -p and jar-from, etc
+ base=$(pwd)
+ libdirs="common/lib server/lib"
+ for dir in ${libdirs}
+ do
+ cd ${dir}
+
+ for jar in *.jar;
+ do
+ # replace the file with a symlink
+ if [ ! -L ${jar} ]; then
+ java-pkg_dojar ${jar}
+ rm -f ${jar}
+ ln -s ${DESTTREE}/share/${TOMCAT_NAME}/lib/${jar} ${jar}
+ fi
+ done
+
+ cd ${base}
+ done
+
+ # replace a packed struts.jar
+ cd server/webapps/admin/WEB-INF/lib
+ rm -f struts.jar
+ java-pkg_jar-from struts-1.2 struts.jar
+ cd ${base}
+
+ # 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,server-minimal}.xml
+
+ # copy over the directories
+ chown -R tomcat:tomcat webapps/* conf/*
+ cp -pR conf/* ${D}/etc/${TOMCAT_NAME} || die "failed to copy conf"
+ cp -R bin common server shared ${D}/usr/share/${TOMCAT_NAME} || die "failed to copy"
+
+ keepdir ${WEBAPPS_DIR}
+ set_webapps_perms ${D}/${WEBAPPS_DIR}
+
+ # if the useflag is set, copy over the examples
+ if use examples; then
+ cp -p ../RELEASE-NOTES webapps/ROOT/RELEASE-NOTES.txt
+ cp -pr webapps/{tomcat-docs,jsp-examples,servlets-examples,ROOT,webdav} \
+ ${D}${CATALINA_BASE}/webapps
+ fi
+
+ # 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}/build/{RELEASE-NOTES,RUNNING.txt}
+ fperms 640 /etc/${TOMCAT_NAME}/tomcat-users.xml
+}
+
+pkg_postinst() {
+ # due to previous ebuild bloopers, make sure everything is correct
+ chown root:root /etc/init.d/${TOMCAT_NAME}
+ chown root:root /etc/conf.d/${TOMCAT_NAME}
+
+ einfo
+ ewarn " This ebuild implements a new filesystem layout for tomcat"
+ ewarn " please read http://www.gentoo.org/proj/en/java/tomcat-guide.xml"
+ ewarn " for more information!."
+ einfo
+ einfo " Please file any bugs at http://bugs.gentoo.org/ or else it"
+ einfo " may not get seen. Thank you."
+ einfo
+
+# This may be a comeback, so it's here for convienence
+# einfo "Run emerge --config =${PF}"
+# einfo "to configure Tomcat if you need to for example"
+# einfo "change the home directory of the Tomcat user."
+}
+
+# helpers
+set_webapps_perms() {
+ chown tomcat:tomcat ${1} || die "Failed to change owner off ${1}."
+ chmod 750 ${1} || die "Failed to change permissions off ${1}."
+}
+
+pkg_config() {
+ # Better suggestions are welcome
+ local currentdir="$(getent passwd tomcat | gawk -F':' '{ print $6 }')"
+
+ einfo "The default home directory for Tomcat is /dev/null."
+ einfo "You need to change it if your applications needs it to"
+ einfo "be an actual directory. Current home directory:"
+ einfo "${currentdir}"
+ einfo ""
+ einfo "Do you want to change it [yes/no]?"
+
+ local answer
+ read answer
+
+ if [[ "${answer}" == "yes" ]]; then
+ einfo ""
+ einfo "Suggestions:"
+ einfo "${WEBAPPS_DIR}"
+ einfo ""
+ einfo "If you want to suggest a directory, file a bug to"
+ einfo "http://bugs.gentoo.org"
+ einfo ""
+ einfo "Enter home directory:"
+
+ local homedir
+ read homedir
+
+ einfo ""
+ einfo "Setting home directory to: ${homedir}"
+
+ /usr/sbin/usermod -d"${homedir}" tomcat
+
+ einfo "You can run emerge --config =${PF}"
+ einfo "again to change to homedir"
+ einfo "at any time."
+ fi
+}