dev-java/dbvis: drop old versions
[anomen-overlay.git] / dev-java / glassfish / glassfish-2.1.ebuild
blobe936b9f4eacdfdfbae266abe97467b92a2ddf79a
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-v2ur1-b09d-linux.jar"
11 SRC_URI="!ml? (
12 http://download.java.net/javaee5/v2ur1/promoted/Linux/${INSTALL_FILE}
14 ml? ( http://download.java.net/javaee5/v2ur1/promoted/Linux/glassfish-installer-v2ur1-b09d-linux-ml.jar )
16 RESTRICT="mirror strip binchecks"
18 LICENSE="|| ( CDDL GPL-2-with-linking-exception )"
19 SLOT="${PV}"
20 KEYWORDS="~x86 ~amd64"
21 IUSE="cluster ml"
22 DEPEND=">=virtual/jdk-1.5"
23 RDEPEND="${DEPEND}"
25 GLASSFISH_INSTALL_BASE="/opt/glassfish-v${PV}"
26 GLASSFISH_DOMAINS="/var/opt/glassfish/domains"
27 GLASSFISH_WORKDIR="${WORKDIR}/glassfish"
28 GLASSFISH_DOMAINS_WORKDIR="${WORKDIR}/domains"
29 GLASSFISH_ENVD_FILE="99glassfish"
30 GLASSFISH_GENTOO_README="${GLASSFISH_INSTALL_BASE}/README.gentoo"
32 stop_domains() {
33 einfo "Stopping any running Glassfish domains..."
34 local domains=`$1/bin/asadmin list-domains | grep "running" | grep -v "not" | cut -f 1 -d" "`
35 for domain in $domains; do
36 einfo "`$1/bin/asadmin stop-domain $domain`"
37 done
38 einfo "Glassfish domains stopped."
41 pkg_setup() {
42 java-pkg_init
43 if has_version ${CATEGORY}/${PN}; then
44 einfo "Glassfish already installed..."
45 local gfhome=`grep GLASSFISH_HOME /etc/env.d/${GLASSFISH_ENVD_FILE} | cut -f 2 -d"="`
46 stop_domains "$gfhome"
47 einfo "Reinstalling Glassfish..."
49 enewgroup glassfish
50 enewuser glassfish -1 -1 /dev/null glassfish
53 src_unpack() {
54 # unsetting the DISPLAY is required to stop the glassfish installer popping up a
55 # graphical license display.
56 unset DISPLAY
57 echo "a\n" | java -Xmx256m -jar "${DISTDIR}/${INSTALL_FILE}"
60 src_install() {
61 cd ${GLASSFISH_WORKDIR}
62 chmod -R +x lib/ant/bin
63 local setupfile
64 if use cluster; then
65 setupfile="setup-cluster.xml"
66 else
67 setupfile="setup.xml"
70 sed -i -e "s@.{install.home}/domains@${GLASSFISH_DOMAINS_WORKDIR}@" "${GLASSFISH_WORKDIR}/${setupfile}"
72 # The ant setup writes 2 files into the home directory of the installing user.
73 # Attempts to set HOME="..." failed, probably because of ant.
74 addwrite /root/.asadmintruststore
75 addwrite /root/.asadminpass
76 addwrite /root/cf.out
77 lib/ant/bin/ant -f ${setupfile}
79 sed -i -e 's!AS_JAVA=.*!AS_JAVA="/etc/java-config-2/current-system-vm"!' "${GLASSFISH_WORKDIR}/config/asenv.conf"
80 sed -i -e 's!ASK_FOR_REGISTRATION!DONT_ASK_FOR_REGISTRATION!' "${GLASSFISH_WORKDIR}/lib/registration/servicetag-registry.xml"
82 # Remove sunos files as we don't need them
83 find ${GLASSFISH_WORKDIR} -type d -name sunos -prune -exec rm -rf {} \;
85 # Glassfish has a number of hardcoded paths in various files after the setup is
86 # run. These need to be modified to work in the real install location.
87 einfo "Fixing hardcoded paths"
88 for file in `grep -rl "${GLASSFISH_WORKDIR}" ${WORKDIR}`; do
89 einfo "Fixing path in file: $file"
90 sed -i -e "s@${GLASSFISH_WORKDIR}@${GLASSFISH_INSTALL_BASE}@g" $file
91 done
92 for file in `grep -rl "${GLASSFISH_DOMAINS_WORKDIR}" ${WORKDIR}`; do
93 einfo "Fixing path in file: $file"
94 sed -i -e "s@${GLASSFISH_DOMAINS_WORKDIR}@${GLASSFISH_DOMAINS}@g" $file
95 done
96 einfo "Fixing hardcoded paths - done"
98 #diropts -m775 -o glassfish -g glassfish
99 dodir ${GLASSFISH_INSTALL_BASE}
100 cp -pPR ${GLASSFISH_WORKDIR}/* "${D}${GLASSFISH_INSTALL_BASE}"
101 #chmod -R 775 "${D}"${GLASSFISH_INSTALL_BASE}
103 dodir ${GLASSFISH_DOMAINS}
104 cp -pPR ${GLASSFISH_DOMAINS_WORKDIR}/* "${D}${GLASSFISH_DOMAINS}"
106 dosym ../../var/opt/glassfish/domains ${GLASSFISH_INSTALL_BASE}/domains
107 fowners -R glassfish:glassfish ${GLASSFISH_DOMAINS}
108 fperms ug+w -R ${GLASSFISH_DOMAINS}
110 local envd_dir="${D}/etc/env.d/"
111 mkdir -p "${envd_dir}"
112 echo "PATH=${GLASSFISH_INSTALL_BASE}/bin" > "${envd_dir}"${GLASSFISH_ENVD_FILE}
113 echo "GLASSFISH_HOME=${GLASSFISH_INSTALL_BASE}" >> "${envd_dir}"${GLASSFISH_ENVD_FILE}
115 cat <<- EOF > "${D}"${GLASSFISH_GENTOO_README}
116 Glassfish Application Server has been installed using the glassfish
117 user and glassfish group. To use Glassfish as another user, add the
118 glassfish group to the user.
120 To use the Glassfish commands, do 'source /etc/profile'. This will
121 add the ${GLASSFISH_INSTALL_BASE}/bin to your PATH and create the
122 GLASSFISH_HOME environment variable as ${GLASSFISH_INSTALL_BASE}.
124 To get started with Glassfish, see the Quick Start Guide at:
125 https://glassfish.dev.java.net/downloads/quickstart/index.html
127 If you remove Glassfish, some files may still exist in ${GLASSFISH_INSTALL_BASE}
128 from running Glassfish, e.g. log files, new domains, etc. The removal
129 process deliberately leaves these files alone.
133 pkg_postinst() {
134 einfo "${GLASSFISH_GENTOO_README} contains more information on this installation."
137 pkg_prerm() {
138 stop_domains ${GLASSFISH_INSTALL_BASE}