# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils java-utils-2 MY_PV="v2ur2" MY_BUILDNR="b04" MY_SRC_PREFIX="http://download.java.net/javaee5" MY_SRC_DIR="promoted/Linux" MY_JAR_PREFIX="glassfish-installer" ML_JAR_SUFFIX="linux-ml.jar" JAR_SUFFIX="linux.jar" MY_URL="ml? ( ${MY_SRC_PREFIX}/${MY_PV}/${MY_SRC_DIR}/${MY_JAR_PREFIX}-${MY_PV}-${MY_BUILDNR}-${ML_JAR_SUFFIX} ) !ml? ( ${MY_SRC_PREFIX}/${MY_PV}/${MY_SRC_DIR}/${MY_JAR_PREFIX}-${MY_PV}-${MY_BUILDNR}-${JAR_SUFFIX} )" DESCRIPTION="Glassfish Application Server" HOMEPAGE="https://glassfish.dev.java.net/" SRC_URI="${MY_URL}" RESTRICT="nomirror" LICENSE="CDDL GPL-2" SLOT="0" KEYWORDS="~x86" IUSE="cluster ml" DEPEND=">=virtual/jdk-1.5" RDEPEND="${DEPEND}" GLASSFISH_INSTALL_BASE="/opt/glassfish" GLASSFISH_WORKDIR="${WORKDIR}/glassfish" GLASSFISH_ENVD_FILE="99glassfish" stop_domains() { elog "" elog "Stopping any running Glassfish domains..." local domains=`$1/bin/asadmin list-domains | grep "running" | grep -v "not" | cut -f 1 -d" "` for domain in $domains; do $1/bin/asadmin stop-domain $domain elog " [$domain] stopped" done elog "Glassfish domains stopped." elog "" } pkg_setup() { java-pkg_init if has_version ${PN}; then elog "Glassfish already installed..." local gfhome=`grep GLASSFISH_HOME /etc/env.d/${GLASSFISH_ENVD_FILE} | cut -f 2 -d"="` stop_domains "$gfhome" elog "Reinstalling Glassfish..." fi enewgroup glassfish enewuser glassfish -1 -1 /dev/null glassfish } src_unpack() { echo "a\n" | java -Xmx256m -jar ${DISTDIR}/${A} } src_install() { cd ${GLASSFISH_WORKDIR} chmod -R +x lib/ant/bin local setupfile if use cluster; then setupfile="setup-cluster.xml" else setupfile="setup.xml" fi lib/ant/bin/ant -f ${setupfile} chown -R glassfish:glassfish ${GLASSFISH_WORKDIR} # Remove sunos files as we don't need them find ${GLASSFISH_WORKDIR} -type d -name sunos -prune -exec rm -rf {} \; # Glassfish has a number of hardcoded paths in various files after the setup is # run. These need to be modified to work in the real install location. einfo "Fixing hardcoded paths from: ${GLASSFISH_WORKDIR} to ${GLASSFISH_INSTALL_BASE}" for file in `grep -rl "${GLASSFISH_WORKDIR}" *`; do einfo "Fixing path in file: $file" sed -i -e "s@${GLASSFISH_WORKDIR}@${GLASSFISH_INSTALL_BASE}@g" $file done einfo "Fixing hardcoded paths - done" diropts -m775 -o glassfish -g glassfish dodir ${GLASSFISH_INSTALL_BASE} cp -pr ${GLASSFISH_WORKDIR}/* "${D}"${GLASSFISH_INSTALL_BASE} chmod -R 775 "${D}"${GLASSFISH_INSTALL_BASE} local envd_dir="${D}/etc/env.d/" mkdir -p "${envd_dir}" echo "PATH=${GLASSFISH_INSTALL_BASE}/bin" > "${envd_dir}"${GLASSFISH_ENVD_FILE} echo "GLASSFISH_HOME=${GLASSFISH_INSTALL_BASE}" >> "${envd_dir}"${GLASSFISH_ENVD_FILE} } pkg_postinst() { elog "" elog "Glassfish Application Server has been installed using the glassfish" elog "user and glassfish group. To use Glassfish as another user, add the" elog "glassfish group to the user." elog "" elog "To use the Glassfish commands, do 'source /etc/profile'. This will" elog "add the ${GLASSFISH_INSTALL_BASE}/bin to your PATH and create the" elog "GLASSFISH_HOME environment variable as ${GLASSFISH_INSTALL_BASE}." elog "" elog "To get started with Glassfish, see the Quick Start Guide at:" elog "https://glassfish.dev.java.net/downloads/quickstart/index.html" elog "" } pkg_prerm() { stop_domains ${GLASSFISH_INSTALL_BASE} } pkg_postrm() { elog "" elog "Some files may still exist in ${GLASSFISH_INSTALL_BASE} from" elog "running Glassfish, e.g. log files, new domains, etc." elog "These files have deliberately not been removed." elog "" }