# Copyright 1999-2003 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License, v2 or later # $Header:$ #inherit java-deps At="jakarta-tomcat-${PV}-src.tar.gz" S=${WORKDIR}/jakarta-${P}-src/src DESCRIPTION="Apache Servlet Engine (Conforms to Servlet/JSP spec 2.4/2.0)" SRC_URI="http://apache.mirrors.rossfell.co.uk/dist/jakarta/tomcat-5/v5.0.16/src/${At}" HOMEPAGE="http://jakarta.apache.org/tomcat/index.html" LICENSE="Apache-1.1" KEYWORDS="~x86" DEPEND=">=virtual/jdk-1.4.2 >=dev-java/commons-beanutils-1.4 >=dev-java/commons-collections-2.0 >=dev-java/commons-daemon-1.0 >=dev-java/commons-digester-1.4 >=dev-java/commons-el-1.0 >=dev-java/commons-logging-1.0.1 >=dev-java/commons-modeler-1.1 >=dev-java/regexp-1.2 >=dev-java/xerces-2.5.0 >=dev-java/log4j-1.2.0 >=dev-java/commons-dbcp-1.0 >=dev-java/commons-httpclient-1.9 >=dev-java/commons-pool-1.0 >=dev-java/commons-fileupload-1.0 >=dev-java/jmx-1.2.1 >=dev-java/junit-3.7 >=dev-java/jaf-1.0.1 >=dev-java/jdbc2-stdext-1 >=dev-java/javamail-1.3 >=dev-java/puretls-0.94b >=dev-java/struts-1.1" find_pck(){ # Most likly this can be done more neatly however it serves us here INST_PCK=`java-config -l | sed s/"\["// | sed s/"\].*"// | grep $1` if [ -z "$2" ]; then if [ "$3" ] ; then einfo "Checking For:" $3 else einfo "Checking For:" $1.jar fi TMP=`java-config --classpath ${INST_PCK} | sed s/:/"\n"/g | sed s/"\/usr\/share\/$1\/lib\/\*\.jar"// | grep -m1 $1` if [ -z "$TMP" ]; then if [ "$3" ]; then ewarn "Could not find $3" return -1 else ewarn "Could not find $1" return -1 fi fi TMP2=$1.jar else if [ "$3" ]; then einfo "Checking For:" $3 else einfo "Checking For:" $2 fi TMP=`java-config --classpath ${INST_PCK} | sed s/:/"\n"/g | sed s/"\/usr\/share\/$1\/lib\/\*\.jar"// | grep -m1 $2` if [ -z "$TMP" ]; then if [ "$3" ]; then ewarn "Could not find $3" return -1 else ewarn "Could not find $1" return -1 fi fi TMP2=$2 fi if [ "$3" ] ; then TMP2=$3 fi einfo "Found at: ${TMP}" echo "${TMP2}=${TMP}" >> build.properties TMP="" TMP2="" } src_unpack() { tar xzf ${DISTDIR}/${At} || die cd ${S} einfo "Checking environment and setting build variables please wait" echo "compile.debug=on" >> build.properties echo "base.path=../repository" >> build.properties echo "servletapi.build.notrequired=true" >> build.properties echo "jspapi.build.notrequired=true" >> build.properties echo "struts.lib=/usr/share/struts-1.1/tld" >> build.properties find_pck commons-beanutils commons-beanutils.jar || die find_pck commons-launcher commons-launcher.jar || die find_pck commons-collections || die find_pck commons-daemon || die find_pck commons-digester commons-digester-[0123456789] commons-digester.jar || die find_pck commons-el || die find_pck commons-logging commons-logging-api.jar || die find_pck commons-logging commons-logging.jar || die find_pck commons-modeler || die find_pck servletapi-2.4 servlet-2.4.jar servlet-api.jar || die find_pck servletapi-2.4 jsp-2.4.jar jsp-api.jar || die find_pck regexp || die find_pck xerces xercesImpl.jar || die find_pck xerces xmlParserAPIs.jar || die find_pck log4j || die find_pck commons-dbcp || die find_pck commons-httpclient || die find_pck commons-pool || die find_pck commons-fileupload || die find_pck jmx jmxri.jar jmx.jar || die find_pck jmx jmxtools.jar || die find_pck junit || die find_pck jaf activation.jar || die find_pck jdbc2-stdext jdbc2_0-stdext.jar jdbc20ext.jar || die find_pck javamail mail.jar || die find_pck puretls || die find_pck struts-1.1 struts.jar || die # These are all built INTO the java2 sdk as from version 1.4.2 onwards # echo "jcert.jar=`java-config --classpath=jsse`" >> build.properties # ----- Java Secure Sockets Extension (JSSE), version 1.0.3 or later ----- # echo "jnet.jar=`java-config --classpath=jsse`" >> build.properties # echo "jsse.jar=`java-config --classpath=jsse`" >> build.properties cd ${S} epatch ${FILESDIR}/tomcat-5.0.16-fix-build.patch } src_compile() { ant || die "Unable to build" } pkg_setup() { if ! groupmod tomcat ; then groupadd -g 265 tomcat || die "problem adding group tomcat, gid 265" fi if ! id tomcat; then useradd -u 265 -g tomcat -s /bin/bash -d /opt/tomcat -c "Apache Tomcat" tomcat || die "problem adding user tomcat, uid 265" fi } src_install() { cd ${S}/jakarta-tomcat-5/dist # TOFIX Make jsvc work properly #" cd $CATALINA_HOME #./bin/jsvc -Djava.endorsed.dirs=./common/endorsed -cp ./bin/bootstrap.jar \ # -outfile ./logs/catalina.out -errfile ./logs/catalina.err \ # org.apache.catalina.startup.Bootstrap # " epatch ${FILESDIR}/tomcat-5.0.16-init.patch TOMCAT_HOME="/opt/tomcat" INSTALLING="yes" DIROPTIONS="--mode=0750 --owner=tomcat --group=tomcat" # Create directories dodir ${TOMCAT_HOME} dodir /var/log/${PN} dosym /var/log/${PN} ${TOMCAT_HOME}/logs dodir ${TOMCAT_HOME}/temp dodir ${TOMCAT_HOME}/work touch ${D}${TOMCAT_HOME}/logs/.keep touch ${D}${TOMCAT_HOME}/temp/.keep touch ${D}${TOMCAT_HOME}/work/.keep # INIT SCRIPTS AND ENV cp -a ${FILESDIR}/${PV}/tomcat.init ${S}/tomcat insinto /etc/init.d insopts -m0750 doins ${S}/tomcat cp -a ${FILESDIR}/${PV}/tomcat.conf ${S}/tomcat insinto /etc/conf.d insopts -m0644 doins ${S}/tomcat cp -a ${FILESDIR}/${PV}/21tomcat ${S}/21tomcat insinto /etc/env.d insopts -m0750 doins ${S}/21tomcat # SEND JARS TO SHARED LOCATION for i in \ common/endorsed/*.jar \ common/lib/*.jar do dojar ${i} rm ${i} done dodoc RELEASE-NOTES* RUNNING.txt LICENSE RELEASE-PLAN-5.0.txt chown -R tomcat.tomcat ${S} DIROPTIONS="--mode=0750 --owner=tomcat --group=tomcat" dodir ${TOMCAT_HOME}/common dodir ${TOMCAT_HOME}/common/classes dodir ${TOMCAT_HOME}/webapps cp -Rdp \ bin \ conf \ server \ shared \ webapps \ work \ ${D}${TOMCAT_HOME} dosym /usr/share/tomcat/package.env ${TOMCAT_HOME}/common/package.env dosym /usr/share/tomcat/lib ${TOMCAT_HOME}/common/endorsed dosym /usr/share/tomcat/lib ${TOMCAT_HOME}/common/lib } pkg_postinst() { einfo " " einfo " NOTICE!" einfo " User and group 'tomcat' have been added." einfo " " einfo " FILE LOCATIONS:" einfo " 1. Tomcat home directory: ${TOMCAT_HOME}" einfo " Contains application data, configuration files." einfo " 2. Runtime settings: /etc/conf.d/tomcat" einfo " Contains CLASSPATH and JAVA_HOME settings." einfo " 3. Logs: /var/log/tomcat/" einfo " 4. Executables, libraries: /usr/share/tomcat/" einfo " " einfo " " einfo " STARTING AND STOPPING TOMCAT:" einfo " /etc/init.d/tomcat start" einfo " /etc/init.d/tomcat stop" einfo " /etc/init.d/tomcat restart" einfo " " einfo " " einfo " NETWORK CONFIGURATION:" einfo " By default, Tomcat runs on port 8080. You can change this" einfo " value by editing ${TOMCAT_HOME}/conf/server.xml." einfo " " einfo " To test Tomcat while it's running, point your web browser to:" einfo " http://localhost:8080/" einfo " " einfo " " einfo " BUGS:" einfo " Please file any bugs at http://bugs.gentoo.org/ or else it" einfo " may not get seen. Thank you." einfo " " einfo " As this is the first tomcat source build then there may be other bugs please keep yours eyes peeled" einfo " I would also appriciate bugs to bg115@gre.ac.uk" einfo " KNOW issues at present:" einfo " 1) The build still builds servletapi and jspapi" einfo " 2) Jsvc does not work correctly" einfo " 3) No choice between openmxj and suns mxj" einfo " 4) The is little chocie scope in the build (for example different connectors)" einfo " 5) General Tidying and such forth needs doing" einfo " " echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 ; echo -ne "\a" ; sleep 1 sleep 10 } pkg_postrm() { if [ -z "${INSTALLING}" ] ; then einfo ">>> Removing user for Tomcat" userdel tomcat || die "Error removing Tomcat user" einfo ">>> Removing group for Tomcat" groupdel tomcat || die "Error removing Tomcat group" else einfo ">>> Tomcat user and group preserved" fi }