summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'www-servers')
-rw-r--r--www-servers/tomcat/ChangeLog11
-rw-r--r--www-servers/tomcat/files/5.5.20/tomcatbuild-xml.patch211
-rw-r--r--www-servers/tomcat/files/digest-tomcat-5.5.20-r23
-rw-r--r--www-servers/tomcat/tomcat-5.5.20-r2.ebuild333
4 files changed, 546 insertions, 12 deletions
diff --git a/www-servers/tomcat/ChangeLog b/www-servers/tomcat/ChangeLog
index ee934975cbcd..1a926ada0914 100644
--- a/www-servers/tomcat/ChangeLog
+++ b/www-servers/tomcat/ChangeLog
@@ -1,6 +1,15 @@
# 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.72 2006/10/14 00:07:04 nichoj Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.73 2006/10/18 03:21:19 wltjr Exp $
+
+*tomcat-5.5.20-r2 (18 Oct 2006)
+
+ 18 Oct 2006; William L. Thomson Jr. <wltjr@gentoo.org>
+ -files/5.5.20/tomcat.env, files/5.5.20/tomcatbuild-xml.patch,
+ -files/5.5.20/tomcatbuild-xml-docs.patch,
+ -files/5.5.20/tomcatbuild-xml-examples.patch, +tomcat-5.5.20-r2.ebuild:
+ Created new patch re-writing some existing and adding a few new, ant targets
+ for admin/example webapps. Should resolve bug #150715
14 Oct 2006; Joshua Nichols <nichoj@gentoo.org> tomcat-5.0.28-r14.ebuild:
Added call to java-pkg_pkg_setup, for bug #142708
diff --git a/www-servers/tomcat/files/5.5.20/tomcatbuild-xml.patch b/www-servers/tomcat/files/5.5.20/tomcatbuild-xml.patch
index 9106f551e0d4..9be4fceb9b9b 100644
--- a/www-servers/tomcat/files/5.5.20/tomcatbuild-xml.patch
+++ b/www-servers/tomcat/files/5.5.20/tomcatbuild-xml.patch
@@ -1,5 +1,5 @@
---- apache-tomcat-5.5.20-src/build/build.xml 2006-09-12 11:12:23.000000000 -0400
-+++ build.xml 2006-10-09 21:43:43.000000000 -0400
+--- apache-tomcat-5.5.20-src/build/build.xml 2006-10-17 21:25:39.000000000 -0400
++++ build.xml 2006-10-17 21:59:38.000000000 -0400
@@ -143,6 +143,7 @@
<!-- ====================== DEPLOY: Copy Static Files =================== -->
@@ -20,7 +20,158 @@
</target>
<!-- ====================== Build all components =================== -->
-@@ -653,28 +654,8 @@
+@@ -395,15 +396,14 @@
+ <target name="build-webapps-precompile"
+ depends="init" description="Precompile webapps" >
+
++ <antcall target="build-webapp-precompile-admin" />
++ <antcall target="build-webapp-precompile-examples" />
++
+ <!-- JSPC -->
+- <property name="admin.base" location="${tomcat.build}/server/webapps/admin" />
+ <property name="ROOT.base" location="${tomcat.build}/webapps/ROOT" />
+- <property name="jsp-examples.base" location="${tomcat.build}/webapps/jsp-examples" />
+
+- <mkdir dir="${admin.base}/WEB-INF/src/admin" />
+ <mkdir dir="${ROOT.base}/WEB-INF/src" />
+ <mkdir dir="${ROOT.base}/WEB-INF/classes" />
+- <mkdir dir="${jsp-examples.base}/WEB-INF/src" />
+
+ <path id="jspc.classpath">
+ <pathelement location="${java.home}/../lib/tools.jar"/>
+@@ -437,23 +437,6 @@
+ addWebXmlMappings="true"
+ outputDir="${ROOT.base}/WEB-INF/src" />
+
+- <jasper2
+- compile="false"
+- validateXml="false"
+- uriroot="${jsp-examples.base}"
+- webXmlFragment="${jsp-examples.base}/WEB-INF/generated_web.xml"
+- addWebXmlMappings="true"
+- outputDir="${jsp-examples.base}/WEB-INF/src" />
+-
+- <jasper2
+- package="admin"
+- compile="false"
+- validateXml="false"
+- uriroot="${admin.base}"
+- webXmlFragment="${admin.base}/WEB-INF/generated_web.xml"
+- addWebXmlMappings="true"
+- outputDir="${admin.base}/WEB-INF/src/admin" />
+-
+ <javac destdir="${ROOT.base}/WEB-INF/classes"
+ optimize="off"
+ debug="${compile.debug}"
+@@ -475,61 +458,90 @@
+ <include name="**" />
+ </javac>
+
+- <mkdir dir="${jsp-examples.base}/WEB-INF/src/tags"/>
+- <copy todir="${jsp-examples.base}/WEB-INF/classes">
+- <fileset dir="${jsp-examples.base}/WEB-INF/src">
+- <include name="**/*.class" />
+- </fileset>
+- </copy>
++ </target>
+
+- <javac destdir="${jsp-examples.base}/WEB-INF/classes"
++ <target name="build-webapp-precompile-admin" unless="admin.precompile.notrequired">
++ <property name="admin.base" location="${tomcat.build}/server/webapps/admin" />
++ <mkdir dir="${admin.base}/WEB-INF/src/admin" />
++ <taskdef classname="org.apache.jasper.JspC" name="jasper2" >
++ <classpath refid="jspc.classpath"/>
++ </taskdef>
++ <jasper2
++ package="admin"
++ compile="false"
++ validateXml="false"
++ uriroot="${admin.base}"
++ webXmlFragment="${admin.base}/WEB-INF/generated_web.xml"
++ addWebXmlMappings="true"
++ outputDir="${admin.base}/WEB-INF/src/admin" />
++ <javac destdir="${admin.base}/WEB-INF/classes"
+ optimize="off"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ source="${compile.source}"
+ failonerror="false"
+- srcdir="${jsp-examples.base}/WEB-INF/src"
++ srcdir="${admin.base}/WEB-INF/src"
+ excludes="**/*.smap">
+ <classpath>
+ <pathelement location="${java.home}/../lib/tools.jar"/>
+ <fileset dir="${tomcat.build}/server/lib">
+ <include name="*.jar"/>
+ </fileset>
+- <fileset dir="${jsp-examples.base}/WEB-INF/lib">
++ <fileset dir="${admin.base}/WEB-INF/lib">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="${tomcat.build}/common/lib">
+ <include name="*.jar"/>
+ </fileset>
+ <pathelement location="${tomcat.build}/classes"/>
+- <pathelement location="${jsp-examples.base}/WEB-INF/classes"/>
+ </classpath>
+- <include name="**" />
+- <exclude name="tags/**" />
++ <include name="admin/**" />
+ </javac>
+-
+- <javac destdir="${admin.base}/WEB-INF/classes"
++ </target>
++
++ <target name="build-webapp-precompile-examples" unless="examples.precompile.notrequired">
++ <property name="jsp-examples.base" location="${tomcat.build}/webapps/jsp-examples" />
++ <mkdir dir="${jsp-examples.base}/WEB-INF/src" />
++ <taskdef classname="org.apache.jasper.JspC" name="jasper2" >
++ <classpath refid="jspc.classpath"/>
++ </taskdef>
++ <jasper2
++ compile="false"
++ validateXml="false"
++ uriroot="${jsp-examples.base}"
++ webXmlFragment="${jsp-examples.base}/WEB-INF/generated_web.xml"
++ addWebXmlMappings="true"
++ outputDir="${jsp-examples.base}/WEB-INF/src" />
++ <mkdir dir="${jsp-examples.base}/WEB-INF/src/tags"/>
++ <copy todir="${jsp-examples.base}/WEB-INF/classes">
++ <fileset dir="${jsp-examples.base}/WEB-INF/src">
++ <include name="**/*.class" />
++ </fileset>
++ </copy>
++ <javac destdir="${jsp-examples.base}/WEB-INF/classes"
+ optimize="off"
+ debug="${compile.debug}"
+ deprecation="${compile.deprecation}"
+ source="${compile.source}"
+ failonerror="false"
+- srcdir="${admin.base}/WEB-INF/src"
++ srcdir="${jsp-examples.base}/WEB-INF/src"
+ excludes="**/*.smap">
+ <classpath>
+ <pathelement location="${java.home}/../lib/tools.jar"/>
+ <fileset dir="${tomcat.build}/server/lib">
+ <include name="*.jar"/>
+ </fileset>
+- <fileset dir="${admin.base}/WEB-INF/lib">
++ <fileset dir="${jsp-examples.base}/WEB-INF/lib">
+ <include name="*.jar"/>
+ </fileset>
+ <fileset dir="${tomcat.build}/common/lib">
+ <include name="*.jar"/>
+ </fileset>
+ <pathelement location="${tomcat.build}/classes"/>
++ <pathelement location="${jsp-examples.base}/WEB-INF/classes"/>
+ </classpath>
+- <include name="admin/**" />
++ <include name="**" />
++ <exclude name="tags/**" />
+ </javac>
+ </target>
+
+@@ -653,28 +665,8 @@
<!-- <antcall target="build-commons-modeler" /> -->
<!-- <antcall target="build-commons-daemon" /> -->
@@ -51,7 +202,45 @@
</target>
<target name="build-tomcat-dbcp">
-@@ -1041,11 +1022,11 @@
+@@ -850,14 +842,7 @@
+ filtering="true" />
+
+ <!-- Build JARs for webapps classes -->
+- <mkdir dir="${tomcat.build}/server/webapps/admin/WEB-INF/lib" />
+- <jar jarfile="${tomcat.build}/server/webapps/admin/WEB-INF/lib/catalina-admin.jar"
+- index="true">
+- <fileset dir="${tomcat.build}/server/webapps/admin/WEB-INF/classes">
+- <include name="**/*.class" />
+- <include name="**/*.properties" />
+- </fileset>
+- </jar>
++ <antcall target="fix-admin-webapp" />
+ <mkdir dir="${tomcat.build}/server/webapps/manager/WEB-INF/lib" />
+ <jar jarfile="${tomcat.build}/server/webapps/manager/WEB-INF/lib/catalina-manager.jar"
+ index="true">
+@@ -896,9 +881,20 @@
+ todir="${tomcat.build}/conf/Catalina/localhost" />
+ <copy file="${tomcat.build}/server/webapps/host-manager/host-manager.xml"
+ todir="${tomcat.build}/conf/Catalina/localhost" />
++
++ </target>
++
++ <target name="fix-admin-webapp" unless="admin.build.notrequired">
++ <mkdir dir="${tomcat.build}/server/webapps/admin/WEB-INF/lib" />
++ <jar jarfile="${tomcat.build}/server/webapps/admin/WEB-INF/lib/catalina-admin.jar"
++ index="true">
++ <fileset dir="${tomcat.build}/server/webapps/admin/WEB-INF/classes">
++ <include name="**/*.class" />
++ <include name="**/*.properties" />
++ </fileset>
++ </jar>
+ <copy file="${tomcat.build}/server/webapps/admin/admin.xml"
+ todir="${tomcat.build}/conf/Catalina/localhost" />
+-
+ </target>
+
+ <!-- ====================== Embed target =================== -->
+@@ -1041,11 +1037,11 @@
<!-- ====================== Compat target =================== -->
<target name="compat" description="Create compatibility binaries for JREs before 1.5" >
@@ -65,7 +254,7 @@
</target>
<!-- ====================== DEPLOY: Deploy Components =================== -->
-@@ -1092,8 +1073,9 @@
+@@ -1092,8 +1088,9 @@
<!-- Copy Unix JSVC from commons-daemon -->
<copy file="${commons-daemon.jsvc.tar.gz}"
tofile="${tomcat.dist}/bin/jsvc.tar.gz" />
@@ -76,7 +265,7 @@
<echo>Target: Webapps precompilation ...</echo>
<antcall target="build-admin"/>
-@@ -1188,10 +1170,11 @@
+@@ -1188,10 +1185,11 @@
description="Catalina Tests" depends="dist-tester">
<!-- For Java 1.4 -->
@@ -89,7 +278,7 @@
<parallel>
<java classname="LauncherBootstrap" fork="yes">
-@@ -1871,10 +1854,10 @@
+@@ -1871,10 +1869,10 @@
<!-- commons-digester needs ../LICENSE -->
<!-- That is ugly XXX needs a review -->
@@ -101,7 +290,7 @@
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-beanutils.loc}"/>
<param name="destfile" value="${commons-beanutils.jar}"/>
-@@ -1916,7 +1899,6 @@
+@@ -1916,7 +1914,6 @@
</antcall>
<antcall target="downloadgz">
@@ -109,7 +298,7 @@
<param name="sourcefile" value="${xerces.loc}"/>
<param name="destfile" value="${xml-apis.jar}"/>
</antcall>
-@@ -1937,7 +1919,6 @@
+@@ -1937,7 +1934,6 @@
<param name="destfile" value="${commons-launcher.jar}"/>
</antcall>
@@ -117,7 +306,7 @@
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-pool.loc}"/>
<param name="destfile" value="${commons-pool.jar}"/>
-@@ -1948,7 +1929,6 @@
+@@ -1948,7 +1944,6 @@
<param name="destfile" value="${commons-dbcp.jar}"/>
<param name="destdir" value="${base.path}"/>
</antcall>
@@ -125,7 +314,7 @@
<antcall target="downloadgz">
<param name="sourcefile" value="${commons-httpclient.loc}"/>
-@@ -1976,7 +1956,7 @@
+@@ -1976,7 +1971,7 @@
<param name="destfile" value="${tomcat-native.tar.gz}"/>
<param name="destdir" value="${tomcat-native.home}"/>
</antcall>
diff --git a/www-servers/tomcat/files/digest-tomcat-5.5.20-r2 b/www-servers/tomcat/files/digest-tomcat-5.5.20-r2
new file mode 100644
index 000000000000..25cb711a112c
--- /dev/null
+++ b/www-servers/tomcat/files/digest-tomcat-5.5.20-r2
@@ -0,0 +1,3 @@
+MD5 5775bae8fac16a0e3a2c913c4768bb37 apache-tomcat-5.5.20-src.tar.gz 4796377
+RMD160 587590d2e272d1ede73501b62933f544cd969822 apache-tomcat-5.5.20-src.tar.gz 4796377
+SHA256 19f24717fb3e2db902c33e21650dfa88bbf98428c15b1ed68ecaf7a9150e4a77 apache-tomcat-5.5.20-src.tar.gz 4796377
diff --git a/www-servers/tomcat/tomcat-5.5.20-r2.ebuild b/www-servers/tomcat/tomcat-5.5.20-r2.ebuild
new file mode 100644
index 000000000000..c30a7e036f73
--- /dev/null
+++ b/www-servers/tomcat/tomcat-5.5.20-r2.ebuild
@@ -0,0 +1,333 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/tomcat-5.5.20-r2.ebuild,v 1.1 2006/10/18 03:21:19 wltjr Exp $
+
+inherit eutils java-pkg-2 java-ant-2
+
+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"
+
+IUSE="admin java5 doc examples source test"
+
+RDEPEND="=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-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/log4j-1.2.9
+ ~dev-java/servletapi-2.4
+ admin? ( =dev-java/struts-1.2* )
+ dev-java/sun-javamail
+ java5? ( >=virtual/jre-1.5 )
+ !java5? (
+ =virtual/jre-1.4*
+ >=dev-java/commons-httpclient-2.0
+ dev-java/sun-jaf
+ ~dev-java/jaxen-1.0
+ >=dev-java/junit-3.8.1
+ =dev-java/mx4j-3*
+ >=dev-java/saxpath-1.0
+ >=dev-java/xerces-2.7.1
+ =dev-java/xml-commons-external-1.3*
+ )"
+DEPEND="java5? ( >=virtual/jdk-1.5 )
+ !java5? ( =virtual/jdk-1.4* )
+ ${RDEPEND}
+ sys-apps/sed
+ dev-java/ant"
+
+if ! use java5; then
+ JAVA_PKG_NV_DEPEND="=virtual/jdk-1.4*"
+else
+ JAVA_PKG_NV_DEPEND="=virtual/jdk-1.5*"
+fi
+
+S=${WORKDIR}/${MY_P}
+
+TOMCAT_HOME="/usr/share/${PN}-${SLOT}"
+TOMCAT_NAME="${PN}-${SLOT}"
+WEBAPPS_DIR="/var/lib/${TOMCAT_NAME}/webapps"
+
+pkg_setup() {
+ # new user for tomcat
+ enewgroup tomcat
+ enewuser tomcat -1 -1 /dev/null tomcat
+
+ if use java5; then
+ JAVA_PKG_WANT_SOURCE="1.5"
+ JAVA_PKG_WANT_TARGET="1.5"
+ fi
+}
+
+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
+ if ! use examples; then
+ epatch "${FILESDIR}/${PV}/jsr152build-xml-examples.patch"
+ epatch "${FILESDIR}/${PV}/jsr154build-xml-examples.patch"
+ fi
+
+ # 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 commons-daemon
+ if ! use java5; then
+ java-pkg_jar-from mx4j-3.0 mx4j.jar jmx.jar
+ java-pkg_jar-from mx4j-3.0 mx4j-rjmx.jar jmx-remote.jar
+ fi
+
+ if ! use java5; then
+ mkdir ${S}/build/build/common/endorsed && cd ${S}/build/build/common/endorsed
+ java-pkg_jar-from xml-commons-external-1.3 xml-apis.jar
+ java-pkg_jar-from xerces-2 xercesImpl.jar
+ fi
+
+ mkdir ${S}/build/build/common/lib && cd ${S}/build/build/common/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 ${S}/build/build/server/lib && cd ${S}/build/build/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} $(use_doc javadoc examples)"
+
+ 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-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} -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} -Dmail.jar=$(java-pkg_getjar sun-javamail mail.jar)"
+ if use admin; then
+ antflags="${antflags} -Dstruts.jar=$(java-pkg_getjar struts-1.2 struts.jar)"
+ antflags="${antflags} -Dstruts.home=/usr/share/struts"
+ else
+ antflags="${antflags} -Dadmin.build.notrequired=true"
+ antflags="${antflags} -Dadmin.precompile.notrequired=true"
+ fi
+ if ! use examples; then
+ antflags="${antflags} -Dexamples.precompile.notrequired=true"
+ fi
+ antflags="${antflags} -Djasper.home=${S}/jasper"
+ if ! use java5; then
+ antflags="${antflags} -Dcommons-httpclient.jar=$(java-config -p commons-httpclient)"
+ antflags="${antflags} -Dactivation.jar=$(java-config -p sun-jaf)"
+ 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 xml-commons-external-1.3 xml-apis.jar)"
+ fi
+
+ eant ${antflags}
+
+}
+
+src_install() {
+ cd ${S}/build/build
+
+ # init.d, conf.d
+ newinitd ${FILESDIR}/${PV}/tomcat.init ${TOMCAT_NAME}
+ newconfd ${FILESDIR}/${PV}/tomcat.conf ${TOMCAT_NAME}
+
+ # 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
+
+ keepdir /usr/share/${TOMCAT_NAME}/${CATALIA_HOME}/common/lib
+
+ 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
+ if use admin; then
+ cp ${S}/container/webapps/admin/admin.xml \
+ conf/Catalina/localhost
+ fi
+ 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
+ if use admin; then
+ cd server/webapps/admin/WEB-INF/lib
+ rm -f struts.jar
+ java-pkg_jar-from struts-1.2 struts.jar
+ cd ${base}
+ else
+ rm -fR server/webapps/admin
+ fi
+
+ # 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 ${D}/usr/share/${TOMCAT_NAME} || die "failed to copy"
+
+ keepdir ${WEBAPPS_DIR}
+ set_webapps_perms ${D}/${WEBAPPS_DIR}
+
+ # Copy over webapps, some controlled by use flags
+ cp -p ../RELEASE-NOTES webapps/ROOT/RELEASE-NOTES.txt
+ cp -pr webapps/ROOT ${D}${CATALINA_BASE}/webapps
+ if use doc; then
+ cp -pr webapps/tomcat-docs ${D}${CATALINA_BASE}/webapps
+ fi
+ if use examples; then
+ cp -pr webapps/{jsp-examples,servlets-examples,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
+
+# 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
+}