diff options
author | William Thomson <wltjr@gentoo.org> | 2008-02-05 19:40:04 +0000 |
---|---|---|
committer | William Thomson <wltjr@gentoo.org> | 2008-02-05 19:40:04 +0000 |
commit | 7983effc6e8b8bd5087dc822d17a4d20e98ef936 (patch) | |
tree | 3e49aed2a37ff9d247468e178a2887d3dfdd4caa /www-servers/tomcat | |
parent | stable x86, bug 209001 (diff) | |
download | gentoo-2-7983effc6e8b8bd5087dc822d17a4d20e98ef936.tar.gz gentoo-2-7983effc6e8b8bd5087dc822d17a4d20e98ef936.tar.bz2 gentoo-2-7983effc6e8b8bd5087dc822d17a4d20e98ef936.zip |
Bumped 5.5 to latest release
(Portage version: 2.1.4.1)
Diffstat (limited to 'www-servers/tomcat')
-rw-r--r-- | www-servers/tomcat/ChangeLog | 9 | ||||
-rw-r--r-- | www-servers/tomcat/files/5.5/26-main_tomcat_catalina_jasper_build_xml.patch | 429 | ||||
-rw-r--r-- | www-servers/tomcat/tomcat-5.5.26.ebuild | 333 |
3 files changed, 770 insertions, 1 deletions
diff --git a/www-servers/tomcat/ChangeLog b/www-servers/tomcat/ChangeLog index 286ab59cda4c..0042ae8cc6a2 100644 --- a/www-servers/tomcat/ChangeLog +++ b/www-servers/tomcat/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for www-servers/tomcat # Copyright 1999-2008 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.177 2008/01/21 13:28:57 caster Exp $ +# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.178 2008/02/05 19:40:04 wltjr Exp $ + +*tomcat-5.5.26 (05 Feb 2008) + + 05 Feb 2008; William L. Thomson Jr. <wltjr@gentoo.org> + +files/5.5/26-main_tomcat_catalina_jasper_build_xml.patch, + +tomcat-5.5.26.ebuild: + Bumped 5.5 to latest release 21 Jan 2008; Vlastimil Babka <caster@gentoo.org> tomcat-5.5.25.ebuild, tomcat-5.5.25-r1.ebuild: diff --git a/www-servers/tomcat/files/5.5/26-main_tomcat_catalina_jasper_build_xml.patch b/www-servers/tomcat/files/5.5/26-main_tomcat_catalina_jasper_build_xml.patch new file mode 100644 index 000000000000..80f211d1c45e --- /dev/null +++ b/www-servers/tomcat/files/5.5/26-main_tomcat_catalina_jasper_build_xml.patch @@ -0,0 +1,429 @@ +diff -Naur apache-tomcat-5.5.26-src_orig/build/build.xml apache-tomcat-5.5.26-src/build/build.xml +--- apache-tomcat-5.5.26-src_orig/build/build.xml 2008-02-05 12:47:08.000000000 -0500 ++++ apache-tomcat-5.5.26-src/build/build.xml 2008-02-05 13:06:06.000000000 -0500 +@@ -161,6 +161,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"/> + +@@ -179,9 +180,10 @@ + <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.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 =================== --> +@@ -413,15 +415,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"/> +@@ -455,23 +456,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}" +@@ -492,64 +476,92 @@ + </classpath> + <include name="**" /> + </javac> ++ </target> ++ ++ <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="${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="${admin.base}/WEB-INF/lib"> ++ <include name="*.jar"/> ++ </fileset> ++ <fileset dir="${tomcat.build}/common/lib"> ++ <include name="*.jar"/> ++ </fileset> ++ <pathelement location="${tomcat.build}/classes"/> ++ </classpath> ++ <include name="admin/**" /> ++ </javac> ++ </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" ++ optimize="off" ++ debug="${compile.debug}" ++ deprecation="${compile.deprecation}" ++ source="${compile.source}" ++ failonerror="false" + 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> ++ 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"> +- <include name="*.jar"/> +- </fileset> +- <fileset dir="${tomcat.build}/common/lib"> +- <include name="*.jar"/> +- </fileset> +- <pathelement location="${tomcat.build}/classes"/> ++ <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> ++ </classpath> + <include name="**" /> + <exclude name="tags/**" /> +- </javac> +- +- <javac destdir="${admin.base}/WEB-INF/classes" +- optimize="off" +- debug="${compile.debug}" +- deprecation="${compile.deprecation}" +- source="${compile.source}" +- failonerror="false" +- 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="${admin.base}/WEB-INF/lib"> +- <include name="*.jar"/> +- </fileset> +- <fileset dir="${tomcat.build}/common/lib"> +- <include name="*.jar"/> +- </fileset> +- <pathelement location="${tomcat.build}/classes"/> +- </classpath> +- <include name="admin/**" /> +- </javac> +- </target> ++ </javac> ++ </target> + + <target name="build-catalina" depends="init" + description="Builds catalina"> +@@ -676,7 +688,7 @@ + <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}" /> +@@ -694,6 +706,7 @@ + <param name="destdir" value="${base.path}"/> + </antcall> + <antcall target="build-jasper-compiler-jdt" /> ++--> + </target> + + <target name="build-tomcat-dbcp"> +@@ -773,14 +786,7 @@ + </jar> + </target> + +- <target name="build-webapps" depends="init" +- description="build webapps"> +- +- <echo>========== Building: webapps </echo> +- +- <mkdir dir="${tomcat.build}/webapps" /> +- <mkdir dir="${tomcat.build}/server/webapps" /> +- ++ <target name="build-examples" unless="examples.build.notrequired"> + <!-- The build files are far too difficult to hack - just build it and copy --> + <ant dir="${api.home}/jsr154" target="dist"> + </ant> +@@ -798,6 +804,17 @@ + <exclude name="WEB-INF/tagPlugins.xml" /> + </fileset> + </copy> ++ </target> ++ ++ <target name="build-webapps" depends="init" ++ description="build webapps"> ++ ++ <echo>========== Building: webapps </echo> ++ ++ <mkdir dir="${tomcat.build}/webapps" /> ++ <mkdir dir="${tomcat.build}/server/webapps" /> ++ ++ <antcall target="build-examples" /> + + <ant dir="${catalina.home}/webapps/ROOT" target="build-main"> + <property name="webapps.build" value="${tomcat.build}/webapps" /> +@@ -869,14 +886,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"> +@@ -915,9 +925,19 @@ + 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 =================== --> +@@ -1060,11 +1080,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 =================== --> +@@ -1108,11 +1128,11 @@ + <fileset dir="${api.home}/jsr154/build/examples"/> + </copy> + +- <!-- Copy Unix JSVC from commons-daemon --> ++ <!-- 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"/> +@@ -1213,11 +1233,11 @@ + <target name="run-tester" + description="Catalina Tests" depends="dist-tester"> + +- <!-- For Java 1.4 --> ++ <!-- 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"> +@@ -1898,7 +1918,7 @@ + description="Download binary packages" > + <mkdir dir="${base.path}" /> + +- <!-- Download any sub package or tools needed. --> ++ <!-- Download any sub package or tools needed. + <antcall target="downloadgz"> + <param name="sourcefile" value="${commons-beanutils.loc}"/> + <param name="destfile" value="${commons-beanutils.jar}"/> +@@ -1935,7 +1955,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> +@@ -1977,7 +1996,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 -Naur apache-tomcat-5.5.26-src_orig/build.xml apache-tomcat-5.5.26-src/build.xml +--- apache-tomcat-5.5.26-src_orig/build.xml 2008-02-05 12:47:07.000000000 -0500 ++++ apache-tomcat-5.5.26-src/build.xml 2008-02-05 13:06:35.000000000 -0500 +@@ -81,13 +81,10 @@ + + <target name="checkout" + description="Update or checkout required sources from SVN"> +- ++<!-- + <echo level="info" + message="If the checkout fails, see http://tomcat.apache.org/svn.html and http://subversion.tigris.org/faq.html#proxy" /> + +- <!-- Bugzilla 37977: http://issues.apache.org/bugzilla/show_bug.cgi?id=37977 --> +- <!-- hackish: inputstring="t${line.separator}" is t+<enter> for svn --> +- <!-- to temporarily accept the certificate of svn.apache.org. --> + <exec dir="${basedir}" + executable="svn" + inputstring="t${line.separator}" +@@ -96,7 +93,7 @@ + <arg value="${svnroot}/${current.loc}" /> + <arg value="${basedir}" /> + </exec> +- ++--> + </target> + + <!-- *************** UTILITY TARGETS *************** --> +diff -Naur apache-tomcat-5.5.26-src_orig/container/catalina/build.xml apache-tomcat-5.5.26-src/container/catalina/build.xml +--- apache-tomcat-5.5.26-src_orig/container/catalina/build.xml 2008-02-05 12:47:08.000000000 -0500 ++++ apache-tomcat-5.5.26-src/container/catalina/build.xml 2008-02-05 13:14:29.000000000 -0500 +@@ -77,6 +77,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}"/> +@@ -108,6 +109,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}"/> +@@ -565,9 +567,9 @@ + file="${commons-logging-api.jar}"/> + <!-- + <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"> +diff -Naur apache-tomcat-5.5.26-src_orig/jasper/build.xml apache-tomcat-5.5.26-src/jasper/build.xml +--- apache-tomcat-5.5.26-src_orig/jasper/build.xml 2008-02-05 12:47:07.000000000 -0500 ++++ apache-tomcat-5.5.26-src/jasper/build.xml 2008-02-05 13:14:58.000000000 -0500 +@@ -47,6 +47,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/tomcat-5.5.26.ebuild b/www-servers/tomcat/tomcat-5.5.26.ebuild new file mode 100644 index 000000000000..a94a7be433ec --- /dev/null +++ b/www-servers/tomcat/tomcat-5.5.26.ebuild @@ -0,0 +1,333 @@ +# Copyright 1999-2008 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/tomcat-5.5.26.ebuild,v 1.1 2008/02/05 19:40:04 wltjr Exp $ + +WANT_ANT_TASKS="ant-trax" + +inherit eutils java-pkg-2 java-ant-2 + +DESCRIPTION="Tomcat 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://tomcat.apache.org/" +KEYWORDS="~amd64 -ppc -ppc64 ~x86 ~x86-fbsd" +LICENSE="Apache-2.0" + +IUSE="admin java5 doc examples source test" + +RDEPEND="=dev-java/eclipse-ecj-3.3* + =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.1 + =dev-java/commons-httpclient-2.0* + >=dev-java/commons-io-1.1 + >=dev-java/commons-el-1.0 + >=dev-java/commons-launcher-0.9 + >=dev-java/commons-logging-1.0.4 + >=dev-java/commons-modeler-2.0 + >=dev-java/commons-pool-1.2 + =dev-java/junit-3* + >=dev-java/log4j-1.2.9 + >=dev-java/saxpath-1.0 + ~dev-java/tomcat-servlet-api-${PV} + dev-java/ant-core + admin? ( =dev-java/struts-1.2* ) + dev-java/sun-javamail + java5? ( >=virtual/jre-1.5 ) + !java5? ( + =virtual/jre-1.4* + dev-java/sun-jaf + =dev-java/mx4j-core-3* + >=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}" + +S=${WORKDIR}/${MY_P} + +TOMCAT_NAME="${PN}-${SLOT}" +WEBAPPS_DIR="/var/lib/${TOMCAT_NAME}/webapps" + +pkg_setup() { + java-pkg-2_pkg_setup + # new user for tomcat + enewgroup tomcat + enewuser tomcat -1 -1 /dev/null tomcat + + java-pkg_filter-compiler ecj-3.1 ecj-3.2 +} + +src_unpack() { + unpack ${A} + cd "${S}" + + epatch "${FILESDIR}/${SLOT}/26-main_tomcat_catalina_jasper_build_xml.patch" + + use examples && epatch "${FILESDIR}/${SLOT}/jsr152_jsr154_examples_build_xml.patch" + + sed -i -e 's:${struts.lib}:/usr/share/struts-1.2:' \ + "${S}/container/webapps/admin/build.xml" + + # 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-core-3.0 mx4j.jar jmx.jar + java-pkg_jar-from mx4j-core-3.0 mx4j-rjmx.jar jmx-remote.jar + 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 tomcat-servlet-api-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-modeler + +} + +src_compile(){ + local antflags="-Dbase.path=${T}" + + antflags="${antflags} -Dservletapi.build.notrequired=true" + antflags="${antflags} -Djspapi.build.notrequired=true" + antflags="${antflags} -Dcommons-beanutils.jar=$(java-pkg_getjar commons-beanutils-1.7 commons-beanutils.jar)" + antflags="${antflags} -Dcommons-collections.jar=$(java-pkg_getjars commons-collections)" + antflags="${antflags} -Dcommons-daemon.jar=$(java-pkg_getjars commons-daemon)" + antflags="${antflags} -Dcommons-digester.jar=$(java-pkg_getjars commons-digester)" + antflags="${antflags} -Dcommons-dbcp.jar=$(java-pkg_getjars commons-dbcp)" + antflags="${antflags} -Dcommons-el.jar=$(java-pkg_getjars commons-el)" + antflags="${antflags} -Dcommons-fileupload.jar=$(java-pkg_getjars commons-fileupload)" + antflags="${antflags} -Dcommons-httpclient.jar=$(java-pkg_getjars commons-httpclient)" + antflags="${antflags} -Dcommons-launcher.jar=$(java-pkg_getjars commons-launcher)" + 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} -Dcommons-pool.jar=$(java-pkg_getjars commons-pool)" + antflags="${antflags} -Dcommons-modeler.jar=$(java-pkg_getjars commons-modeler)" + antflags="${antflags} -Djdt.jar=$(java-pkg_getjar eclipse-ecj-3.3 ecj.jar)" + antflags="${antflags} -Djsp-api.jar=$(java-pkg_getjar tomcat-servlet-api-2.4 jsp-api.jar)" + antflags="${antflags} -Djunit.jar=$(java-pkg_getjars junit)" + antflags="${antflags} -Dlog4j.jar=$(java-pkg_getjars log4j)" + antflags="${antflags} -Dmail.jar=$(java-pkg_getjar sun-javamail mail.jar)" + antflags="${antflags} -Dsaxpath.jar=$(java-pkg_getjar saxpath saxpath.jar)" + antflags="${antflags} -Dservlet-api.jar=$(java-pkg_getjar tomcat-servlet-api-2.4 servlet-api.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.build.notrequired=true" + antflags="${antflags} -Dexamples.precompile.notrequired=true" + fi + antflags="${antflags} -Djasper.home=${S}/jasper" + if ! use java5; then + antflags="${antflags} -Dactivation.jar=$(java-pkg_getjars sun-jaf)" + antflags="${antflags} -Djmx.jar=$(java-pkg_getjar mx4j-core-3.0 mx4j.jar)" + antflags="${antflags} -Djmx-remote.jar=$(java-pkg_getjar mx4j-core-3.0 mx4j-rjmx.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}"/${SLOT}/tomcat.init.2 ${TOMCAT_NAME} + newconfd "${FILESDIR}"/${SLOT}/tomcat.conf.2 ${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}/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-pkg_getjar 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 + + cd server/webapps/manager/WEB-INF/lib + java-pkg_jar-from commons-fileupload + java-pkg_jar-from commons-io-1 + 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 -HR bin common server "${D}"/usr/share/${TOMCAT_NAME} || die "failed to copy" + + # replace catalina.policy with gentoo specific one bug #176701 + cp "${FILESDIR}"/${SLOT}/catalina.policy "${D}"/etc/${TOMCAT_NAME} || die "failed to replace catalina.policy" + + 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} + + elog + elog " This ebuild implements a new filesystem layout for tomcat" + elog " please read http://www.gentoo.org/proj/en/java/tomcat-guide.xml" + elog " for more information!." + elog + ewarn "naming-factory-dbcp.jar is not built at this time. Please fetch" + ewarn "jar 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 + elog + ewarn "The examples webapp has a known exploit, please refer to" + ewarn "http://cve.mitre.org/cgi-bin/cvename.cgi?name=2007-2449" + fi + elog + elog " Please file any bugs at http://bugs.gentoo.org/ or else it" + elog " may not get seen. Thank you." + elog +} + +#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 }')" + + elog "The default home directory for Tomcat is /dev/null." + elog "You need to change it if your applications needs it to" + elog "be an actual directory. Current home directory:" + elog "${currentdir}" + elog "" + elog "Do you want to change it [yes/no]?" + + local answer + read answer + + if [[ "${answer}" == "yes" ]]; then + elog "" + elog "Suggestions:" + elog "${WEBAPPS_DIR}" + elog "" + elog "If you want to suggest a directory, file a bug to" + elog "http://bugs.gentoo.org" + elog "" + elog "Enter home directory:" + + local homedir + read homedir + + elog "" + elog "Setting home directory to: ${homedir}" + + /usr/sbin/usermod -d"${homedir}" tomcat + + elog "You can run emerge --config =${PF}" + elog "again to change to homedir" + elog "at any time." + fi +} |