forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
www-servers/resin: disable a patch that doesn't work with JDK version…
…s lower than 1.8. Fixes bug 558442. Package-Manager: portage-2.2.18 Signed-off-by: Patrice Clement <[email protected]>
- Loading branch information
Showing
1 changed file
with
199 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,199 @@ | ||
# Copyright 1999-2015 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
# $Id$ | ||
|
||
EAPI="5" | ||
|
||
JAVA_PKG_IUSE="source" | ||
|
||
inherit java-pkg-2 java-ant-2 eutils flag-o-matic multilib user | ||
|
||
DESCRIPTION="A fast Servlet and JSP engine" | ||
HOMEPAGE="http://www.caucho.com" | ||
SRC_URI="http://www.caucho.com/download/${P}-src.zip" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0" | ||
IUSE="admin doc" | ||
|
||
KEYWORDS="~amd64 ~x86" | ||
|
||
CDEPEND="dev-java/resin-servlet-api:3.0 | ||
dev-java/jsr101:0 | ||
dev-java/mojarra:1.2 | ||
dev-java/oracle-javamail:0 | ||
dev-java/validation-api:1.0 | ||
dev-java/glassfish-xmlrpc-api:0 | ||
dev-java/glassfish-deployment-api:1.2" | ||
|
||
RDEPEND=">=virtual/jre-1.6 | ||
${CDEPEND}" | ||
DEPEND=">=virtual/jdk-1.6 | ||
app-arch/unzip | ||
dev-libs/openssl | ||
dev-java/ant-core:0 | ||
${CDEPEND}" | ||
|
||
RESIN_HOME="/usr/$(get_libdir)/resin" | ||
|
||
JAVA_ANT_REWRITE_CLASSPATH="yes" | ||
|
||
EANT_GENTOO_CLASSPATH=" | ||
jsr101 | ||
mojarra-1.2 | ||
oracle-javamail | ||
validation-api-1.0 | ||
glassfish-xmlrpc-api | ||
resin-servlet-api-3.0 | ||
glassfish-deployment-api-1.2" | ||
|
||
PATCHES=( | ||
"${FILESDIR}"/"${PV}"/resin-compile.patch | ||
"${FILESDIR}"/"${PV}"/build.xml.patch | ||
) | ||
|
||
pkg_setup() { | ||
java-pkg-2_pkg_setup | ||
enewgroup resin | ||
enewuser resin -1 /bin/bash ${RESIN_HOME} resin | ||
} | ||
|
||
src_prepare() { | ||
local vm_version=$(java-pkg_get-vm-version) | ||
|
||
# #558442. | ||
if [[ "${vm_version}" == "1.8" ]]; then | ||
PATCHES+=("${FILESDIR}"/"${PV}"/VarType.java.patch) | ||
fi | ||
|
||
epatch "${PATCHES[@]}" | ||
|
||
# No bundled JARs! | ||
rm -f "${S}/modules/ext/"*.jar || die | ||
rm -rf "${S}/project-jars" || die | ||
|
||
java-ant_bsfix_one "${S}/build.xml" | ||
java-ant_bsfix_one "${S}/build-common.xml" | ||
|
||
rm -rf lib/* || die | ||
|
||
java-pkg_jar-from --into lib jsr101 | ||
java-pkg_jar-from --into lib mojarra-1.2 | ||
java-pkg_jar-from --into lib oracle-javamail | ||
java-pkg_jar-from --into lib validation-api-1.0 | ||
java-pkg_jar-from --into lib glassfish-xmlrpc-api | ||
java-pkg_jar-from --into lib glassfish-deployment-api-1.2 | ||
java-pkg_jar-from --into lib resin-servlet-api-3.0 resin-servlet-api.jar | ||
|
||
ln -s $(java-config --jdk-home)/lib/tools.jar || die | ||
} | ||
|
||
src_configure() { | ||
append-flags -fPIC -DPIC | ||
|
||
chmod 755 "${S}/configure" || die | ||
econf --prefix=${RESIN_HOME} || die "econf failed" | ||
} | ||
|
||
src_compile() { | ||
einfo "Building libraries..." | ||
emake || die "make failed" | ||
|
||
einfo "Building jars..." | ||
eant || die "ant failed" | ||
} | ||
|
||
src_install() { | ||
emake DESTDIR="${D}" install || die "Install failed" | ||
|
||
einfo "Moving configuration to /etc ..." | ||
dodir /etc/ | ||
mv "${D}/${RESIN_HOME}/conf" "${D}/etc/resin" || die "mv of conf failed" | ||
dosym /etc/resin ${RESIN_HOME}/conf | ||
|
||
einfo "Rewriting resin.xml ..." | ||
sed -i \ | ||
-e 's,${resin.root}/doc/resin-doc,webapps/resin-doc,' \ | ||
-e 's,${resin.root}/doc/admin,webapps/admin,' \ | ||
"${D}/etc/resin/resin.xml" || die | ||
|
||
einfo "Fixing log directory ..." | ||
rm -rf "${D}/${RESIN_HOME}/log" || die | ||
keepdir /var/log/resin | ||
dosym /var/log/resin ${RESIN_HOME}/log | ||
|
||
einfo "Installing basic documentation ..." | ||
dodoc README "${S}"/conf/*.xml | ||
|
||
einfo "Installing init.d script ..." | ||
newinitd "${FILESDIR}/${PV}/resin.init" resin | ||
newconfd "${FILESDIR}/${PV}/resin.conf" resin | ||
|
||
sed -i -e "s,__RESIN_HOME__,${RESIN_HOME},g" "${D}/etc/init.d/resin" || die | ||
|
||
einfo "Fixing location of jars ..." | ||
rm -f "${S}/lib/tools.jar" || die | ||
java-pkg_dojar "${S}"/lib/*.jar | ||
rm -fr "${D}/${RESIN_HOME}/lib" || die | ||
dosym /usr/share/resin/lib ${RESIN_HOME}/lib | ||
|
||
einfo "Symlinking directories from /var/lib/resin ..." | ||
rm -rf "${D}/${RESIN_HOME}/resin-data" || die | ||
rm -rf "${D}/${RESIN_HOME}/watchdog-data" || die | ||
dodir /var/lib/resin/webapps | ||
keepdir /var/lib/resin/hosts | ||
keepdir /var/lib/resin/resin-data | ||
keepdir /var/lib/resin/watchdog-data | ||
mv "${D}"/${RESIN_HOME}/webapps/* "${D}/var/lib/resin/webapps" || \ | ||
die "mv of webapps failed" | ||
rm -rf "${D}/${RESIN_HOME}/webapps" || die | ||
dosym /var/lib/resin/webapps ${RESIN_HOME}/webapps | ||
dosym /var/lib/resin/hosts ${RESIN_HOME}/hosts | ||
dosym /var/lib/resin/resin-data ${RESIN_HOME}/resin-data | ||
dosym /var/lib/resin/watchdog-data ${RESIN_HOME}/watchdog-data | ||
|
||
dosym \ | ||
"$(java-pkg_getjar resin-servlet-api-3.0 resin-servlet-api.jar)" \ | ||
"${JAVA_PKG_JARDEST}/resin-servlet-api.jar" | ||
|
||
use admin && { | ||
einfo "Installing administration app ..." | ||
cp -a "${S}/doc/admin" "${D}/var/lib/resin/webapps/" || die | ||
} | ||
use doc && { | ||
einfo "Installing documentation app ..." | ||
cp -a "${S}/doc/resin-doc" "${D}/var/lib/resin/webapps/" || die | ||
} | ||
|
||
use source && { | ||
einfo "Installing sources ..." | ||
java-pkg_dosrc "${S}"/modules/*/src/* > /dev/null | ||
} | ||
|
||
einfo "Removing stale directories ..." | ||
rm -fr "${D}/${RESIN_HOME}/bin" || die | ||
rm -fr "${D}/${RESIN_HOME}/doc" || die | ||
rm -fr "${D}/${RESIN_HOME}/keys" || die | ||
rm -fr "${D}/${RESIN_HOME}/licenses" || die | ||
rm -fr "${D}/etc/resin/"*.orig || die | ||
|
||
einfo "Fixing ownerships and permissions ..." | ||
fowners -R 0:root / | ||
fowners -R resin:resin /etc/resin | ||
fowners -R resin:resin /var/lib/resin | ||
fowners -R resin:resin /var/log/resin | ||
|
||
fperms 644 /etc/conf.d/resin | ||
fperms 755 /etc/init.d/resin | ||
fperms 750 /var/lib/resin | ||
fperms 750 /etc/resin | ||
} | ||
|
||
pkg_postinst() { | ||
elog | ||
elog " User and group 'resin' have been added." | ||
elog | ||
elog " By default, Resin runs on port 8080. You can change this" | ||
elog " value by editing /etc/resin/resin.properties." | ||
elog | ||
} |