You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/www-servers/resin/resin-4.0.48-r1.ebuild

180 lines
4.2 KiB

# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
JAVA_PKG_IUSE="source"
inherit java-pkg-2 java-ant-2 epatch 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/jsr101:0
dev-java/mojarra:2.2
dev-java/oracle-javamail:0
dev-java/validation-api:1.0
dev-java/resin-servlet-api:3.1
dev-java/glassfish-xmlrpc-api:0
dev-java/glassfish-deployment-api:1.2"
RDEPEND="
${CDEPEND}
>=virtual/jre-1.6"
DEPEND="
${CDEPEND}
app-arch/unzip
dev-libs/openssl
>=virtual/jdk-1.6
dev-java/ant-core:0"
JAVA_ANT_REWRITE_CLASSPATH="yes"
EANT_GENTOO_CLASSPATH="
jsr101
mojarra-2.2
oracle-javamail
validation-api-1.0
glassfish-xmlrpc-api
resin-servlet-api-3.1
glassfish-deployment-api-1.2
"
PATCHES=(
"${FILESDIR}"/${PN}-4.0.48-build.xml.patch
)
pkg_setup() {
export RESIN_HOME="/usr/$(get_libdir)/resin"
java-pkg-2_pkg_setup
enewgroup resin
enewuser resin -1 /bin/bash "${RESIN_HOME}" resin
}
src_prepare() {
epatch "${PATCHES[@]}"
# No bundled JARs!
rm -rv "${S}"/modules/ext/*.jar "${S}"/project-jars || die
java-ant_bsfix_one "${S}/build.xml"
java-ant_bsfix_one "${S}/build-common.xml"
rm -rv lib/* || die
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}
}
src_compile() {
einfo "Building libraries..."
emake
einfo "Building jars..."
eant || die "ant failed"
}
src_install() {
emake DESTDIR="${D}" install
einfo "Moving configuration to /etc ..."
dodir /etc/
mv "${D}/${RESIN_HOME}/conf" "${D}/etc/resin" || die
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 -rv "${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}/${PN}-4.0.48.init" resin
newconfd "${FILESDIR}/${PN}-4.0.48.conf" resin
sed -i -e "s,__RESIN_HOME__,${RESIN_HOME},g" "${D}/etc/init.d/resin" || die
einfo "Fixing location of jars ..."
#rm -v "${S}"/lib/tools.jar || die
java-pkg_dojar "${S}"/lib/*.jar
rm -rv "${D}/${RESIN_HOME}"/lib || die
dosym /usr/share/resin/lib ${RESIN_HOME}/lib
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
rm -rv "${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.1 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 -rv "${D}/${RESIN_HOME}"/{bin,doc} || die
#rm -rv "${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
}