net-misc/wolman - dropped
[anomen-overlay.git] / dev-java / glassfish / glassfish-2.1.1.ebuild
blob5d2db781c524a7c60420f8c033223cc4010e5beb
1 # Copyright 1999-2008 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: $
5 inherit eutils java-utils-2
7 DESCRIPTION="Glassfish Application Server"
8 HOMEPAGE="https://glassfish.dev.java.net/"
10 INSTALL_FILE="glassfish-installer-v${PV}-b31g-linux.jar"
11 SRC_URI="http://java.net/download/javaee5/v${PV}_branch/promoted/Linux/${INSTALL_FILE}"
12 RESTRICT="mirror strip binchecks"
14 LICENSE="|| ( CDDL GPL-2-with-linking-exception )"
15 SLOT="${PV}"
16 KEYWORDS="~x86 ~amd64"
17 IUSE="cluster ml"
18 DEPEND=">=virtual/jdk-1.5"
19 RDEPEND="${DEPEND}"
21 GLASSFISH_INSTALL_BASE="/opt/glassfish-v${PV}"
22 GLASSFISH_DOMAINS="/var/opt/glassfish/domains"
23 GLASSFISH_WORKDIR="${WORKDIR}/glassfish"
24 GLASSFISH_DOMAINS_WORKDIR="${WORKDIR}/domains"
25 GLASSFISH_ENVD_FILE="99glassfish"
26 GLASSFISH_GENTOO_README="${GLASSFISH_INSTALL_BASE}/README.gentoo"
28 stop_domains() {
29 einfo "Stopping any running Glassfish domains..."
30 local domains=`$1/bin/asadmin list-domains | grep "running" | grep -v "not" | cut -f 1 -d" "`
31 for domain in $domains; do
32 einfo "`$1/bin/asadmin stop-domain $domain`"
33 done
34 einfo "Glassfish domains stopped."
37 pkg_setup() {
38 java-pkg_init
39 if has_version ${CATEGORY}/${PN}; then
40 einfo "Glassfish already installed..."
41 local gfhome=`grep GLASSFISH_HOME /etc/env.d/${GLASSFISH_ENVD_FILE} | cut -f 2 -d"="`
42 stop_domains "$gfhome"
43 einfo "Reinstalling Glassfish..."
45 enewgroup glassfish
46 enewuser glassfish -1 -1 /dev/null glassfish
49 src_unpack() {
50 # unsetting the DISPLAY is required to stop the glassfish installer popping up a
51 # graphical license display.
52 unset DISPLAY
53 echo "a\n" | java -Xmx256m -jar "${DISTDIR}/${INSTALL_FILE}"
56 src_install() {
57 cd ${GLASSFISH_WORKDIR}
58 chmod -R +x lib/ant/bin
59 local setupfile
60 if use cluster; then
61 setupfile="setup-cluster.xml"
62 else
63 setupfile="setup.xml"
66 sed -i -e "s@.{install.home}/domains@${GLASSFISH_DOMAINS_WORKDIR}@" "${GLASSFISH_WORKDIR}/${setupfile}"
68 # The ant setup writes 2 files into the home directory of the installing user.
69 # Attempts to set HOME="..." failed, probably because of ant.
70 addwrite /root/.asadmintruststore
71 addwrite /root/.asadminpass
72 addwrite /root/cf.out
73 lib/ant/bin/ant -f ${setupfile}
76 # Remove sunos files as we don't need them
77 find ${GLASSFISH_WORKDIR} -type d -name sunos -prune -exec rm -rf {} \;
79 # Glassfish has a number of hardcoded paths in various files after the setup is
80 # run. These need to be modified to work in the real install location.
81 einfo "Fixing hardcoded paths"
82 for file in `grep -rl "${GLASSFISH_WORKDIR}" ${WORKDIR}`; do
83 einfo "Fixing path in file: $file"
84 sed -i -e "s@${GLASSFISH_WORKDIR}@${GLASSFISH_INSTALL_BASE}@g" $file
85 done
86 for file in `grep -rl "${GLASSFISH_DOMAINS_WORKDIR}" ${WORKDIR}`; do
87 einfo "Fixing path in file: $file"
88 sed -i -e "s@${GLASSFISH_DOMAINS_WORKDIR}@${GLASSFISH_DOMAINS}@g" $file
89 done
90 einfo "Fixing hardcoded paths - done"
92 #diropts -m775 -o glassfish -g glassfish
93 dodir ${GLASSFISH_INSTALL_BASE}
94 cp -pPR ${GLASSFISH_WORKDIR}/* "${D}${GLASSFISH_INSTALL_BASE}"
95 #chmod -R 775 "${D}"${GLASSFISH_INSTALL_BASE}
97 dodir ${GLASSFISH_DOMAINS}
98 cp -pPR ${GLASSFISH_DOMAINS_WORKDIR}/* "${D}${GLASSFISH_DOMAINS}"
100 dosym ../../var/opt/glassfish/domains ${GLASSFISH_INSTALL_BASE}/domains
101 fowners -R glassfish:glassfish ${GLASSFISH_DOMAINS}
102 fperms a+w -R ${GLASSFISH_DOMAINS}
104 local envd_dir="${D}/etc/env.d/"
105 mkdir -p "${envd_dir}"
106 echo "PATH=${GLASSFISH_INSTALL_BASE}/bin" > "${envd_dir}"${GLASSFISH_ENVD_FILE}
107 echo "GLASSFISH_HOME=${GLASSFISH_INSTALL_BASE}" >> "${envd_dir}"${GLASSFISH_ENVD_FILE}
109 cat <<- EOF > "${D}"${GLASSFISH_GENTOO_README}
110 Glassfish Application Server has been installed using the glassfish
111 user and glassfish group. To use Glassfish as another user, add the
112 glassfish group to the user.
114 To use the Glassfish commands, do 'source /etc/profile'. This will
115 add the ${GLASSFISH_INSTALL_BASE}/bin to your PATH and create the
116 GLASSFISH_HOME environment variable as ${GLASSFISH_INSTALL_BASE}.
118 To get started with Glassfish, see the Quick Start Guide at:
119 https://glassfish.dev.java.net/downloads/quickstart/index.html
121 If you remove Glassfish, some files may still exist in ${GLASSFISH_INSTALL_BASE}
122 from running Glassfish, e.g. log files, new domains, etc. The removal
123 process deliberately leaves these files alone.
127 pkg_postinst() {
128 einfo "${GLASSFISH_GENTOO_README} contains more information on this installation."
131 pkg_prerm() {
132 stop_domains ${GLASSFISH_INSTALL_BASE}