New revision with support for changing the home directory of the tomcat user with...
authorPetteri Räty <betelgeuse@gentoo.org>
Mon, 14 Nov 2005 20:17:58 +0000 (20:17 +0000)
committerPetteri Räty <betelgeuse@gentoo.org>
Mon, 14 Nov 2005 20:17:58 +0000 (20:17 +0000)
Package-Manager: portage-2.0.53_rc7

www-servers/tomcat/ChangeLog
www-servers/tomcat/Manifest
www-servers/tomcat/files/5.0.28/tomcat.conf-r1
www-servers/tomcat/files/5.0.28/tomcat.init
www-servers/tomcat/files/digest-tomcat-5.0.28-r10 [new file with mode: 0644]
www-servers/tomcat/tomcat-5.0.28-r10.ebuild [new file with mode: 0644]

index 02b257e962b6f18d8a5513df93ad5c0de9adfb8f..6906b219fd495e22f98d2f90365448456a63aa3a 100644 (file)
@@ -1,6 +1,15 @@
 # ChangeLog for www-servers/tomcat
 # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.42 2005/10/17 21:04:30 betelgeuse Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/ChangeLog,v 1.43 2005/11/14 20:17:58 betelgeuse Exp $
+
+*tomcat-5.0.28-r10 (14 Nov 2005)
+
+  14 Nov 2005; Petteri Räty <betelgeuse@gentoo.org>
+  files/5.0.28/tomcat.conf-r1, files/5.0.28/tomcat.init,
+  +tomcat-5.0.28-r10.ebuild:
+  New revision with support for changing the home directory of the tomcat user
+  with emerge --config. Fixes bug #109079. Also the init script now creates a
+  pidfile.
 
 *tomcat-5.0.28-r9 (17 Oct 2005)
 
index d56d7a2e092ef59455907ab6c30cd2fb57d093c3..6edfcf4c3e31a2d38c71b14676ef1209a3b78942 100644 (file)
@@ -1,7 +1,7 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-MD5 4fb0bfdae26c469d4fa8d317d958105f ChangeLog 18518
+MD5 b9fb7b69288d59034b282159b4e45124 ChangeLog 18860
 MD5 cbb635ed31e3b7ddabe1db851a8b471e files/5.0.27/gentoo.diff 463
 MD5 c19b85e130d0e0a565eebc406d699965 files/5.0.27/jikes.diff 510
 MD5 bf74c2bd8c21359ada1793cddfa95f37 files/5.0.27/tomcat.conf 2660
@@ -14,20 +14,22 @@ MD5 98a29b32de00d97f156dc31dfe3cf472 files/5.0.28/jikes.diff 584
 MD5 4a887877fb26ce5a6a1d58c66578bd7f files/5.0.28/log4j.properties 401
 MD5 0990cfa870b64034e742297c6be3634b files/5.0.28/scripts.patch 823
 MD5 a4df0ce5b57f2bcaa707ff3b5858bee4 files/5.0.28/tomcat.conf 2707
-MD5 be12f05c16725d1c68cd1ba916ff8748 files/5.0.28/tomcat.conf-r1 2709
+MD5 a279252c639b232107c83c6cb981c261 files/5.0.28/tomcat.conf-r1 2837
 MD5 286d3dcf80a376b72913412cec25e496 files/5.0.28/tomcat.env 34
-MD5 14dfced3843054d6f2552437a3776679 files/5.0.28/tomcat.init 728
+MD5 c84cd76463e0c773cc3c58f9d6ea7e92 files/5.0.28/tomcat.init 766
 MD5 d5a48abc8db5543a73abbbf151d0630e files/digest-tomcat-5.0.27-r6 75
+MD5 af26ca4772989a2090085a6e24b71628 files/digest-tomcat-5.0.28-r10 78
 MD5 af26ca4772989a2090085a6e24b71628 files/digest-tomcat-5.0.28-r8 78
 MD5 af26ca4772989a2090085a6e24b71628 files/digest-tomcat-5.0.28-r9 78
 MD5 f994107ba9a296c7de72d951eb9ddb29 metadata.xml 454
 MD5 e35c5aa21003d0e3f61bfc44a59104fd tomcat-5.0.27-r6.ebuild 3886
+MD5 0834be3df6afbfaf96e457c19b6a2055 tomcat-5.0.28-r10.ebuild 11061
 MD5 dea4438dfc3c1b5bbd13eb05e6d2210f tomcat-5.0.28-r8.ebuild 9958
 MD5 a5e32b74350e806a25b4cd56a9fdd6d4 tomcat-5.0.28-r9.ebuild 10001
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.2 (GNU/Linux)
 
-iD8DBQFDVBIMQiJ/wx066S4RAnSHAJ9kaygCdkVRyzLMbtqQ5PNXMCtdrQCeMg6F
-Do9hAnhkoKcRepxuGJrU1v0=
-=J7DF
+iD8DBQFDePEEQiJ/wx066S4RAm9GAJ0aKrN+j0vQXGcF8obcx7ziWCydMgCghP2V
+FzrSoo0NBdJFBAe6yU1PBDI=
+=Hgg3
 -----END PGP SIGNATURE-----
index 0108f3c3f35e32de62173682c5251c34b5415d03..f44cdbc4250626869dc4a8fcffc9e28ddebc8753 100644 (file)
@@ -1,4 +1,7 @@
-# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/files/5.0.28/tomcat.conf-r1,v 1.1 2005/09/18 14:10:44 humpback Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/files/5.0.28/tomcat.conf-r1,v 1.2 2005/11/14 20:17:58 betelgeuse Exp $
+
+# This file is also sourced by the catalina.sh script so all the variables you 
+# declare here are available for that script
 
 # JVM Runtime
 # Using the default setting, it will determine your JVM from the system-vm
index 9d38240cf9834d68b9d911d3c871db2d39e948b1..2bce4eb1328ff64ef3d98459fdbfdc96adc9a315 100644 (file)
@@ -1,7 +1,7 @@
 #!/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.0.28/tomcat.init,v 1.5 2005/09/22 00:06:03 betelgeuse Exp $
+# $Header: /var/cvsroot/gentoo-x86/www-servers/tomcat/files/5.0.28/tomcat.init,v 1.6 2005/11/14 20:17:58 betelgeuse Exp $
 
 depend() {
        use dns logger mysql postgresql net
@@ -11,9 +11,9 @@ start()       {
        ebegin "Starting Tomcat"
        cd ${CATALINA_BASE}/webapps
        start-stop-daemon --start --quiet --chuid tomcat:tomcat \
+                 --make-pidfile --pidfile /var/run/tomcat.pid \
                          --exec ${CATALINA_HOME}/bin/catalina.sh \
                          --background -- ${TOMCAT_START}
-       #sleep 5
        eend $?
 }
 
@@ -22,6 +22,5 @@ stop()        {
        start-stop-daemon --start --quiet --chuid tomcat:tomcat \
                          --exec ${CATALINA_HOME}/bin/catalina.sh \
                          --background -- ${TOMCAT_STOP}
-       #sleep 5
        eend $?
 }
diff --git a/www-servers/tomcat/files/digest-tomcat-5.0.28-r10 b/www-servers/tomcat/files/digest-tomcat-5.0.28-r10
new file mode 100644 (file)
index 0000000..38ec503
--- /dev/null
@@ -0,0 +1 @@
+MD5 8115f86558aef8a17543397e7f9d9469 jakarta-tomcat-5.0.28-src.tar.gz 3565766
diff --git a/www-servers/tomcat/tomcat-5.0.28-r10.ebuild b/www-servers/tomcat/tomcat-5.0.28-r10.ebuild
new file mode 100644 (file)
index 0000000..16e0787
--- /dev/null
@@ -0,0 +1,328 @@
+# 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.0.28-r10.ebuild,v 1.1 2005/11/14 20:17:58 betelgeuse Exp $
+
+inherit eutils java-pkg
+
+DESCRIPTION="Apache Servlet-2.4/JSP-2.0 Container"
+
+SLOT="${PV/.*}"
+SRC_URI="mirror://apache/jakarta/tomcat-${SLOT}/v${PV}/src/jakarta-${P}-src.tar.gz"
+HOMEPAGE="http://jakarta.apache.org/tomcat"
+KEYWORDS="~x86 ~amd64 -ppc64 ~sparc"
+LICENSE="Apache-2.0"
+#only one accepted revision of struts to force upgrading because of slot changes
+RDEPEND=">=virtual/jdk-1.4
+       =dev-java/commons-beanutils-1.7*
+       >=dev-java/commons-collections-3.1
+       >=dev-java/commons-daemon-1.0
+       >=dev-java/commons-dbcp-1.2.1
+       >=dev-java/commons-digester-1.5
+       >=dev-java/commons-fileupload-1.0
+       =dev-java/commons-httpclient-2*
+       >=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/sun-jmx
+       >=dev-java/log4j-1.2.8
+       =dev-java/jakarta-regexp-1.3*
+       >=dev-java/saxpath-1.0
+       ~dev-java/servletapi-2.4
+       =dev-java/struts-1.1-r4
+       dev-java/sun-jaf-bin
+       >=dev-java/xerces-2.6.2-r1
+       jikes? ( dev-java/jikes )"
+DEPEND=">=virtual/jdk-1.4
+       ${RDEPEND}
+       sys-apps/sed
+       dev-java/ant"
+IUSE="doc examples jikes"
+
+S=${WORKDIR}/jakarta-${P}-src
+
+TOMCAT_HOME="/usr/share/${PN}-${SLOT}"
+TOMCAT_NAME="${PN}-${SLOT}"
+WEBAPPS_DIR="/var/lib/${TOMCAT_NAME}/default/webapps"
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+
+       epatch ${FILESDIR}/${PV}/build.xml-01.patch
+       epatch ${FILESDIR}/${PV}/build.xml-02.patch
+       epatch ${FILESDIR}/${PV}/gentoo.diff
+       epatch ${FILESDIR}/${PV}/scripts.patch
+       use jikes && epatch ${FILESDIR}/${PV}/jikes.diff
+
+       # avoid packed jars :-)
+       mkdir -p ${S}/jakarta-tomcat-5/build/common
+       cd ${S}/jakarta-tomcat-5/build
+
+       mkdir ./bin && cd ./bin
+       java-pkg_jar-from commons-logging commons-logging-api.jar
+       java-pkg_jar-from sun-jmx jmxri.jar jmx.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
+       java-pkg_jar-from jakarta-regexp-1.3
+}
+
+src_compile(){
+       local antflags="-Dbase.path=${T}"
+       use jikes && antflags="${antflags} -Dbuild.compiler=jikes"
+
+       antflags="${antflags} -Dactivation.jar=$(java-config -p sun-jaf-bin)"
+       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} -Dlog4j.jar=$(java-config -p log4j)"
+       antflags="${antflags} -Dregexp.jar=$(java-config -p jakarta-regexp-1.3)"
+       antflags="${antflags} -Dstruts.jar=$(java-pkg_getjar struts-1.1 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 sun-jmx jmxri.jar)"
+       antflags="${antflags} -Djmx-tools.jar=$(java-pkg_getjar sun-jmx jmxtools.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-1.1/"
+
+       ant ${antflags} || die "compile failed"
+
+}
+src_install() {
+       # new user for tomcat
+       enewgroup tomcat
+       enewuser tomcat -1 -1 /dev/null tomcat
+
+       cd ${S}/jakarta-tomcat-5/build
+
+       # init.d, env.d, conf.d
+       newinitd ${FILESDIR}/${PV}/tomcat.init ${TOMCAT_NAME}
+       newconfd ${FILESDIR}/${PV}/tomcat.conf-r1 ${TOMCAT_NAME}
+       newenvd ${FILESDIR}/${PV}/${PN}.env 21${PN}
+
+       if use jikes; then
+               sed -e "\cCATALINA_OPTScaCATALINA_OPTS=\"-Dbuild.compiler.emacs=true\"" \
+                       -i ${D}/etc/conf.d/${TOMCAT_NAME}
+       fi
+
+       # create dir structure
+       diropts -m755 -o tomcat -g tomcat
+       dodir   /usr/share/${TOMCAT_NAME}
+       keepdir /var/log/${TOMCAT_NAME}/default
+       keepdir /var/tmp/${TOMCAT_NAME}/default
+       keepdir /var/run/${TOMCAT_NAME}/default
+
+       local CATALINA_BASE=/var/lib/${TOMCAT_NAME}/default/
+       dodir   ${CATALINA_BASE}
+       keepdir ${CATALINA_BASE}/shared/lib
+       keepdir ${CATALINA_BASE}/shared/classes
+
+       dodir   /etc/${TOMCAT_NAME}/default
+       fperms  440 /etc/${TOMCAT_NAME}/default
+
+       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}/jakarta-tomcat-catalina/webapps/admin/admin.xml \
+               conf/Catalina/localhost
+       cp ${S}/jakarta-tomcat-catalina/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.1 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
+       chmod -R 750 conf/*
+       chown -R tomcat:tomcat webapps/* conf/*
+       cp -pR conf/* ${D}/etc/${TOMCAT_NAME}/default || 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}
+
+       # 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}/default ${CATALINA_BASE}/conf
+       dosym /var/log/${TOMCAT_NAME}/default ${CATALINA_BASE}/logs
+       dosym /var/tmp/${TOMCAT_NAME}/default ${CATALINA_BASE}/temp
+       dosym /var/run/${TOMCAT_NAME}/default ${CATALINA_BASE}/work
+
+       cp ${FILESDIR}/${PV}/log4j.properties ${D}/etc/${TOMCAT_NAME}/
+       chown tomcat:tomcat ${D}/etc/${TOMCAT_NAME}/log4j.properties
+
+       dodoc  ${S}/jakarta-tomcat-5/{RELEASE-NOTES,RUNNING.txt}
+       fperms 640 /etc/${TOMCAT_NAME}/default/tomcat-users.xml
+}
+
+pkg_postinst() {
+       #due to previous ebuild bloopers, make sure everything is correct
+       chown root:0 /etc/init.d/${TOMCAT_NAME}
+       chown root:0 /etc/conf.d/${TOMCAT_NAME}
+       chmod -R 750 /etc/${TOMCAT_NAME}
+
+       einfo
+       einfo " NOTICE!"
+       einfo " FILE LOCATIONS:"
+       einfo " 1.  Tomcat home directory: ${TOMCAT_HOME}"
+       einfo "     Contains application data, configuration files."
+       einfo " 2.  Runtime settings: /etc/conf.d/${TOMCAT_NAME}"
+       einfo "     Contains CLASSPATH and JAVA_HOME settings."
+       einfo " 3.  Configuration:  /etc/${TOMCAT_NAME}/default"
+       einfo " 4.  Logs:  /var/log/${TOMCAT_NAME}/default"
+       einfo
+       einfo
+       einfo " STARTING AND STOPPING TOMCAT:"
+       einfo "   /etc/init.d/${TOMCAT_NAME} start"
+       einfo "   /etc/init.d/${TOMCAT_NAME} stop"
+       einfo "   /etc/init.d/${TOMCAT_NAME} restart"
+       einfo
+       einfo
+       ewarn " If you are upgrading from older ebuild do NOT use"
+       ewarn " /etc/init.d/tomcat and /etc/conf.d/tomcat you probably"
+       ewarn " want to remove these."
+       einfo
+       ewarn " This ebuild implements a new filesystem layout for tomcat"
+       ewarn " please read http://gentoo-wiki.com/Tomcat_Gentoo_ebuild for"
+       ewarn " more information!."
+       einfo
+       einfo " NETWORK CONFIGURATION:"
+       einfo " By default, Tomcat runs on port 8080.  You can change this"
+       einfo " value by editing /etc/${TOMCAT_NAME}/default/server.xml."
+       einfo
+       einfo " To test Tomcat while it's running, point your web browser to:"
+       einfo " http://localhost:8080/"
+       if ! use examples; then
+               ewarn
+               ewarn "You do not have the examples USE flag set, examples have NOT been installed."
+               ewarn
+       fi
+       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 "${WEBAPPS_DIR}"
+       einfo "is now owned by tomcat:tomcat and has 750 as permissions."
+       einfo "This is needed to deploy WAR files from the manager webapp."
+       einfo "See bug 99704. If you are upgrading tomcat you need to manually"
+       einfo "change the permissions."
+
+       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
+}