1 # Copyright 1999-2008 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
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 )"
16 KEYWORDS
="~x86 ~amd64"
18 DEPEND
=">=virtual/jdk-1.5"
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"
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`"
34 einfo
"Glassfish domains stopped."
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..."
46 enewuser glassfish
-1 -1 /dev
/null glassfish
50 # unsetting the DISPLAY is required to stop the glassfish installer popping up a
51 # graphical license display.
53 echo "a\n" | java
-Xmx256m -jar "${DISTDIR}/${INSTALL_FILE}"
57 cd ${GLASSFISH_WORKDIR}
58 chmod -R +x lib
/ant
/bin
61 setupfile
="setup-cluster.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
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
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
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.
128 einfo
"${GLASSFISH_GENTOO_README} contains more information on this installation."
132 stop_domains
${GLASSFISH_INSTALL_BASE}