From d35f94566069cb2d6ade51b1e5beac364e218956 Mon Sep 17 00:00:00 2001 From: James Le Cuirot Date: Sat, 15 Aug 2015 23:40:11 +0100 Subject: [PATCH] profiles: Mask tomcat websockets flag on ppc64 Java 7+ is required for websocket support. --- profiles/arch/powerpc/ppc64/package.use.mask | 4 + .../files/tomcat-8.0.24-build.xml.patch | 230 ++++++++++++++++++ www-servers/tomcat/files/tomcat-r1.init | 110 +++++++++ www-servers/tomcat/tomcat-7.0.63.ebuild | 149 ++++++++++++ www-servers/tomcat/tomcat-8.0.24.ebuild | 148 +++++++++++ 5 files changed, 641 insertions(+) create mode 100644 www-servers/tomcat/files/tomcat-8.0.24-build.xml.patch create mode 100644 www-servers/tomcat/files/tomcat-r1.init create mode 100644 www-servers/tomcat/tomcat-7.0.63.ebuild create mode 100644 www-servers/tomcat/tomcat-8.0.24.ebuild diff --git a/profiles/arch/powerpc/ppc64/package.use.mask b/profiles/arch/powerpc/ppc64/package.use.mask index 9bce7a0413e6..81777272f9a8 100644 --- a/profiles/arch/powerpc/ppc64/package.use.mask +++ b/profiles/arch/powerpc/ppc64/package.use.mask @@ -2,6 +2,10 @@ # Distributed under the terms of the GNU General Public License v2 # $Id$ +# James Le Cuirot (15 Aug 2015) +# Java 7+ is required for websocket support. +www-servers/tomcat websockets + # Ben de Groot (20 Jul 2015) # missing keywords media-sound/audacity midi diff --git a/www-servers/tomcat/files/tomcat-8.0.24-build.xml.patch b/www-servers/tomcat/files/tomcat-8.0.24-build.xml.patch new file mode 100644 index 000000000000..9854c9da0e79 --- /dev/null +++ b/www-servers/tomcat/files/tomcat-8.0.24-build.xml.patch @@ -0,0 +1,230 @@ +diff -Naur apache-tomcat-8.0.24-src.orig/build.xml apache-tomcat-8.0.24-src/build.xml +--- apache-tomcat-8.0.24-src.orig/build.xml 2015-07-01 21:25:21.000000000 +0100 ++++ apache-tomcat-8.0.24-src/build.xml 2015-08-14 13:45:50.315788075 +0100 +@@ -697,24 +697,29 @@ + manifest="${tomcat.manifests}/annotations-api.jar.manifest" /> + + ++ + ++ + + ++ + + + +- ++ + + + +@@ -1049,7 +1054,7 @@ + + + +- ++ + + + +@@ -1083,7 +1088,7 @@ + + + +- ++ + + + + + +- ++ + + + + ++ + +@@ -1542,7 +1548,7 @@ + + ++ description="Prepare to build web services extras package" unless="noget"> + + + +@@ -1681,7 +1687,7 @@ + + ++ description="Prepare to build web services extras package" unless="noget"> + + + +@@ -2739,7 +2745,7 @@ + + + ++ description="Download (and build) components necessary to compile" unless="noget"> + + + +@@ -2773,7 +2779,7 @@ + + + ++ description="Download additional components for the tests" unless="noget"> + + + +@@ -2819,7 +2825,7 @@ + + + ++ description="Download additional components for a distribution" unless="noget"> + + + +@@ -2845,18 +2851,18 @@ + + + +- ++ + + + + +- ++ + + + + +- ++ + + + +@@ -2868,7 +2874,7 @@ + + + +- ++ + + + +@@ -2887,7 +2893,7 @@ + + + +- ++ + + + +@@ -2898,7 +2904,7 @@ + + + +- ++ + + + +@@ -2916,7 +2922,7 @@ + + + +- ++ + + + +@@ -2926,7 +2932,7 @@ + + + +- ++ + + + +@@ -2949,7 +2955,7 @@ + + + +- ++ + + + +@@ -2960,7 +2966,7 @@ + + + +- ++ + + + +@@ -2971,7 +2977,7 @@ + + ++ description="Prepares the source tree to be built in Eclipse" unless="noget"> + + + diff --git a/www-servers/tomcat/files/tomcat-r1.init b/www-servers/tomcat/files/tomcat-r1.init new file mode 100644 index 000000000000..ec09aa3acfbc --- /dev/null +++ b/www-servers/tomcat/files/tomcat-r1.init @@ -0,0 +1,110 @@ +#!/@GENTOO_PORTAGE_EPREFIX@sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +extra_commands="forcestop" + +PIDFILE=/@GENTOO_PORTAGE_EPREFIX@var/run/${RC_SVCNAME}.pid + +: ${CATALINA_HOME:=/@GENTOO_PORTAGE_EPREFIX@usr/share/tomcat-@SLOT@} +: ${CATALINA_BASE:=/@GENTOO_PORTAGE_EPREFIX@var/lib/${RC_SVCNAME}} +: ${CATALINA_TMPDIR:=/@GENTOO_PORTAGE_EPREFIX@var/tmp/${RC_SVCNAME}} +: ${CATALINA_USER:=tomcat} +: ${CATALINA_GROUP:=tomcat} + +: ${TOMCAT_START:=start} + +: ${JPDA_TRANSPORT:="dt_socket"} +: ${JPDA_ADDRESS:="8000"} +: ${JPDA_OPTS="-Xdebug -Xrunjdwp:transport=${JPDA_TRANSPORT},address=${JPDA_ADDRESS},server=y,suspend=n"} + +export JAVA_HOME=`java-config ${TOMCAT_JVM:+--select-vm ${TOMCAT_JVM}} --jre-home` +export CLASSPATH="${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar" + +depend() { + use dns logger net +} + +start() { + ebegin "Starting ${RC_SVCNAME}" + + if [ ! -e "${CATALINA_TMPDIR}" ]; then + eerror "CATALINA_TMPDIR does not exist. Unable to start tomcat." + eerror "Please see /@GENTOO_PORTAGE_EPREFIX@etc/conf.d/${RC_SVCNAME} for more information." + eend 1 + fi + + local DEPEND=$(java-config --query DEPEND --package tomcat-@SLOT@):${TOMCAT_EXTRA_JARS} + DEPEND=${DEPEND%:} + + local GCLASSPATH=$(java-config --with-dependencies --classpath "${DEPEND//:/,}"):${TOMCAT_EXTRA_CLASSPATH} + GCLASSPATH=${GCLASSPATH%:} + + local cmd=java args= + if [ "${TOMCAT_START}" = "debug" ] || [ "${TOMCAT_START}" = "-security debug" ] ; then + cmd=jdb + args="${args} -sourcepath ${CATALINA_HOME}/../../jakarta-tomcat-catalina/catalina/src/share" + fi + if [ "${TOMCAT_START}" = "-security debug" ] || [ "${TOMCAT_START}" = "-security start" ]; then + args="${args} -Djava.security.manager" + args="${args} -Djava.security.policy=${CATALINA_BASE}/conf/catalina.policy" + fi + if [ "${TOMCAT_START}" = "jpda start" ] ; then + args="${args} ${JPDA_OPTS}" + fi + if [ -r "${CATALINA_HOME}"/bin/tomcat-juli.jar ]; then + args="${args} -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager \ + -Djava.util.logging.config.file=${CATALINA_BASE}/conf/logging.properties" + fi + + start-stop-daemon --start \ + --quiet --background \ + --chdir "${CATALINA_TMPDIR}" \ + --user ${CATALINA_USER}:${CATALINA_GROUP} \ + --make-pidfile --pidfile ${PIDFILE} \ + --exec ${JAVA_HOME}/bin/${cmd} \ + -- \ + ${JAVA_OPTS} \ + ${args} \ + -Dcatalina.base="${CATALINA_BASE}" \ + -Dcatalina.home="${CATALINA_HOME}" \ + -Djava.io.tmpdir="${CATALINA_TMPDIR}" \ + -Dgentoo.classpath="${GCLASSPATH//:/,}" \ + -classpath "${CLASSPATH}" \ + org.apache.catalina.startup.Bootstrap \ + ${CATALINA_OPTS} \ + ${TOMCAT_START} + + eend $? +} + +stop() { + ebegin "Stopping '${RC_SVCNAME}'" + + start-stop-daemon --stop \ + --quiet --retry=60 \ + --pidfile ${PIDFILE} \ + --exec ${JAVA_HOME}/bin/java \ + -- \ + ${JAVA_OPTS} \ + -classpath "${CLASSPATH}" \ + ${CATALINA_OPTS} \ + stop ${STD_OUT} + + eend $? +} + +forcestop() { + ebegin "Forcing '${RC_SVCNAME}' to stop" + + start-stop-daemon --stop \ + --quiet --retry=60 \ + --pidfile ${PIDFILE} \ + --signal=9 + + if service_started "${RC_SVCNAME}"; then + mark_service_stopped "${RC_SVCNAME}" + fi + + eend $? +} diff --git a/www-servers/tomcat/tomcat-7.0.63.ebuild b/www-servers/tomcat/tomcat-7.0.63.ebuild new file mode 100644 index 000000000000..2781b1346add --- /dev/null +++ b/www-servers/tomcat/tomcat-7.0.63.ebuild @@ -0,0 +1,149 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +JAVA_PKG_IUSE="doc source test" + +inherit eutils java-pkg-2 java-ant-2 prefix user + +MY_P="apache-${P}-src" + +DESCRIPTION="Tomcat Servlet-3.0/JSP-2.2 Container" +HOMEPAGE="http://tomcat.apache.org/" +SRC_URI="mirror://apache/${PN}/tomcat-7/v${PV}/src/${MY_P}.tar.gz" + +LICENSE="Apache-2.0" +SLOT="7" +KEYWORDS="~amd64 ~ppc ~ppc64 ~x86 ~x86-freebsd ~amd64-linux ~x86-linux ~x86-solaris" +IUSE="extra-webapps websockets" + +RESTRICT="test" # can we run them on a production system? + +ECJ_SLOT="4.4" +SAPI_SLOT="3.0" + +COMMON_DEP="dev-java/eclipse-ecj:${ECJ_SLOT} + dev-java/oracle-javamail:0 + dev-java/tomcat-servlet-api:${SAPI_SLOT}" +RDEPEND="${COMMON_DEP} + websockets? ( >=virtual/jre-1.7 ) + !websockets? ( >=virtual/jre-1.6 ) + !