/[gentoo-x86]/eclass/java-vm-2.eclass
Gentoo

Diff of /eclass/java-vm-2.eclass

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.8 Revision 1.9
1# Copyright 1999-2004 Gentoo Foundation 1# Copyright 1999-2004 Gentoo Foundation
2# Distributed under the terms of the GNU General Public License v2 2# Distributed under the terms of the GNU General Public License v2
3# $Header: /var/cvsroot/gentoo-x86/eclass/java-vm-2.eclass,v 1.8 2006/08/31 01:03:11 nichoj Exp $ 3# $Header: /var/cvsroot/gentoo-x86/eclass/java-vm-2.eclass,v 1.9 2006/09/01 03:00:47 nichoj Exp $
4
5# -----------------------------------------------------------------------------
6# @eclass-begin
7# @eclass-shortdesc Java Virtual Machine eclass
8# @eclass-maintainer java@gentoo.org
4# 9#
5# Author: Karl Trygve Kalleberg <karltk@gentoo.org> 10# This eclass provides functionality which assists with installing
11# virtual machines, and ensures that they are recognized by java-config.
12#
13# -----------------------------------------------------------------------------
6 14
7inherit eutils 15inherit eutils
8 16
9DEPEND=" 17DEPEND="
10 =dev-java/java-config-2.0* 18 =dev-java/java-config-2.0*
11 =dev-java/java-config-1.3*
12 >=sys-apps/portage-2.1" 19 >=sys-apps/portage-2.1"
13RDEPEND=" 20RDEPEND="
14 =dev-java/java-config-2.0* 21 =dev-java/java-config-2.0*"
22
23# If the VM supports generation-1, we need to depend on java-config-1
24if [[ ${JAVA_SUPPORTS_GENERATION_1} == 'true' ]]; then
15 =dev-java/java-config-1.3*" 25 DEPEND="${DEPEND} =dev-java/java-config-1.3*"
26 RDEPEND="${DDEPEND} =dev-java/java-config-1.3*"
27fi
16 28
17export WANT_JAVA_CONFIG=2 29export WANT_JAVA_CONFIG=2
18 30
19if [[ "${SLOT}" != "0" ]]; then 31if [[ "${SLOT}" != "0" ]]; then
20 VMHANDLE=${PN}-${SLOT} 32 VMHANDLE=${PN}-${SLOT}
31 # Set the generation-2 system VM, if it isn't set 43 # Set the generation-2 system VM, if it isn't set
32 if [[ -z "$(java-config-2 -f)" ]]; then 44 if [[ -z "$(java-config-2 -f)" ]]; then
33 java_set_default_vm_ 45 java_set_default_vm_
34 fi 46 fi
35 47
36 if [[ ${JAVA_VM_NO_GENERATION1} != "true" ]]; then 48 # support both variables for now
49 if [[ ${JAVA_SUPPORTS_GENERATION_1} == 'true' && ${JAVA_VM_NO_GENERATION1} != 'true' ]]; then
37 local systemvm1="$(java-config-1 -f 2>/dev/null)" 50 local systemvm1="$(java-config-1 -f 2>/dev/null)"
38 # no generation-1 system-vm was yet set 51 # no generation-1 system-vm was previously set
39 if [[ -z "${systemvm1}" ]]; then 52 if [[ -z "${systemvm1}" ]]; then
40 # if 20java exists, must be using old VM 53 # if 20java exists, must be using old VM
41 if [[ -f /etc/env.d/20java ]]; then 54 if [[ -f /etc/env.d/20java ]]; then
42 ewarn "The current generation-1 system-vm is using an out-of-date VM," 55 ewarn "The current generation-1 system-vm is using an out-of-date VM,"
43 ewarn "as in, it hasn't been updated for use with the new Java sytem." 56 ewarn "as in, it hasn't been updated for use with the new Java sytem."
59 ewarn "the generation-1 system-vm must be a JDK." 72 ewarn "the generation-1 system-vm must be a JDK."
60 ewarn "Setting generation-1 system-vm to ${VMHANDLE}" 73 ewarn "Setting generation-1 system-vm to ${VMHANDLE}"
61 java-config-1 --set-system-vm=${P} 2>/dev/null 74 java-config-1 --set-system-vm=${P} 2>/dev/null
62 fi 75 fi
63 # else... some other VM is being updated, so we don't have to worry 76 # else... some other VM is being updated, so we don't have to worry
77 else
78 einfo "JREs and 1.5+ JDKs are not supported for use with generation-1."
79 einfo "This is because generation-1 is only for use for building packages."
80 einfo "Only generation-2 should be used by end-users,"
81 einfo "where all JREs and JDKs will be available"
64 fi 82 fi
65 83
84 # Install a default nsplugin if we don't already have one
66 if has nsplugin ${IUSE} && use nsplugin; then 85 if has nsplugin ${IUSE} && use nsplugin; then
67 if [[ ! -f /usr/lib/nsbrowser/plugins/javaplugin.so ]]; then 86 if [[ ! -f /usr/lib/nsbrowser/plugins/javaplugin.so ]]; then
68 eselect java-nsplugin set ${VMHANDLE} 87 eselect java-nsplugin set ${VMHANDLE}
69 fi 88 fi
70 fi 89 fi
71 90
72 java_mozilla_clean_ 91 java_mozilla_clean_
73} 92}
74 93
75java-vm-2_pkg_prerm() { 94java-vm-2_pkg_prerm() {
76 if [[ "$(java-config -f)" == "${VMHANDLE}" ]]; then 95 if [[ "$(java-config -f 2>/dev/null)" == "${VMHANDLE}" ]]; then
77 ewarn "It appears you are removing your default system VM!" 96 ewarn "It appears you are removing your system-vm!"
78 ewarn "Please run java-config -L then java-config -S to set a new system VM!" 97 ewarn "Please run java-config -L to list available VMs,"
98 ewarn "then use java-config -S to set a new system-vm!"
79 fi 99 fi
80} 100}
81 101
82java_set_default_vm_() { 102java_set_default_vm_() {
83 java-config-2 --set-system-vm="${VMHANDLE}" 103 java-config-2 --set-system-vm="${VMHANDLE}"
84 104
85 einfo " After installing ${P} this" 105 einfo " ${P} set as the default system-vm."
86 einfo " was set as the default JVM to run."
87} 106}
88 107
89get_system_arch() { 108get_system_arch() {
90 local sarch 109 local sarch
91 sarch=$(echo ${ARCH} | sed -e s/[i]*.86/i386/ -e s/x86_64/amd64/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/) 110 sarch=$(echo ${ARCH} | sed -e s/[i]*.86/i386/ -e s/x86_64/amd64/ -e s/sun4u/sparc/ -e s/sparc64/sparc/ -e s/arm.*/arm/ -e s/sa110/arm/)
105 if [[ ! -f ${source_env_file} ]]; then 124 if [[ ! -f ${source_env_file} ]]; then
106 die "Unable to find the env file: ${source_env_file}" 125 die "Unable to find the env file: ${source_env_file}"
107 fi 126 fi
108 127
109 dodir ${JAVA_VM_CONFIG_DIR} 128 dodir ${JAVA_VM_CONFIG_DIR}
110 dodir /etc/env.d/java # generation-1 compatibility
111 sed \ 129 sed \
112 -e "s/@P@/${P}/g" \ 130 -e "s/@P@/${P}/g" \
113 -e "s/@PN@/${PN}/g" \ 131 -e "s/@PN@/${PN}/g" \
114 -e "s/@PV@/${PV}/g" \ 132 -e "s/@PV@/${PV}/g" \
115 -e "s/@PF@/${PF}/g" \ 133 -e "s/@PF@/${PF}/g" \
119 > ${env_file} || die "sed failed" 137 > ${env_file} || die "sed failed"
120 138
121 echo "VMHANDLE=\"${VMHANDLE}\"" >> ${env_file} 139 echo "VMHANDLE=\"${VMHANDLE}\"" >> ${env_file}
122 140
123 # generation-1 compatibility 141 # generation-1 compatibility
124 if [[ ${JAVA_VM_NO_GENERATION1} != true ]]; then 142 # respect both variables for now...
143 if [[ ${JAVA_SUPPORTS_GENERATION_1} == 'true' && ${JAVA_VM_NO_GENERATION1} != 'true' ]]; then
144 einfo "Enabling generation-1 compatibility..."
145 dodir /etc/env.d/java # generation-1 compatibility
125 # We need to strip some things out of the new style env, 146 # We need to strip some things out of the new style env,
126 # because these end up going in the env 147 # because these end up going in the env
127 sed -e 's/.*CLASSPATH.*//' \ 148 sed -e 's/.*CLASSPATH.*//' \
128 -e 's/.*PROVIDES.*//' \ 149 -e 's/.*PROVIDES.*//' \
129 ${env_file} \ 150 ${env_file} \
130 > ${old_env_file} || die "failed to create old-style env file" 151 > ${old_env_file} || die "failed to create generation-1 env file"
152 else
153 ewarn "Disabling generation-1 compatibility..."
131 fi 154 fi
132 155
133 [[ -n ${JAVA_PROVIDE} ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\"" >> ${env_file} 156 [[ -n ${JAVA_PROVIDE} ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\"" >> ${env_file}
134 157
135 local java_home=$(source ${env_file}; echo ${JAVA_HOME}) 158 local java_home=$(source ${env_file}; echo ${JAVA_HOME})
168 for file in ${plugin_dir}/libjavaplugin*; do 191 for file in ${plugin_dir}/libjavaplugin*; do
169 rm -f ${file} 192 rm -f ${file}
170 done 193 done
171} 194}
172 195
196# ------------------------------------------------------------------------------
197# @eclass-end
198# ------------------------------------------------------------------------------

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

  ViewVC Help
Powered by ViewVC 1.1.20