| 1 | # Copyright 1999-2004 Gentoo Foundation |
1 | # Copyright 1999-2012 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.2 2006/06/25 16:28:09 nichoj Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/java-vm-2.eclass,v 1.45 2012/07/18 16:54:55 sera Exp $ |
| 4 | # |
|
|
| 5 | # Author: Karl Trygve Kalleberg <karltk@gentoo.org> |
|
|
| 6 | |
4 | |
| 7 | inherit eutils |
5 | # @ECLASS: java-vm-2.eclass |
|
|
6 | # @MAINTAINER: |
|
|
7 | # java@gentoo.org |
|
|
8 | # @BLURB: Java Virtual Machine eclass |
|
|
9 | # @DESCRIPTION: |
|
|
10 | # This eclass provides functionality which assists with installing |
|
|
11 | # virtual machines, and ensures that they are recognized by java-config. |
| 8 | |
12 | |
| 9 | DEPEND=" |
13 | inherit eutils fdo-mime multilib pax-utils prefix |
| 10 | =dev-java/java-config-2.0* |
14 | |
| 11 | =dev-java/java-config-1.3*" |
15 | EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_prerm pkg_postrm |
|
|
16 | |
| 12 | RDEPEND=" |
17 | RDEPEND=" |
| 13 | =dev-java/java-config-2.0* |
18 | =dev-java/java-config-2* |
| 14 | =dev-java/java-config-1.3*" |
19 | || ( app-admin/eselect-java <dev-java/java-config-2.2 )" |
|
|
20 | DEPEND="${RDEPEND}" |
|
|
21 | has "${EAPI}" 0 1 && DEPEND="${DEPEND} >=sys-apps/portage-2.1" |
| 15 | |
22 | |
| 16 | export WANT_JAVA_CONFIG=2 |
23 | export WANT_JAVA_CONFIG=2 |
| 17 | |
24 | |
| 18 | if [[ "${SLOT}" != "0" ]]; then |
|
|
| 19 | VMHANDLE=${PN}-${SLOT} |
|
|
| 20 | else |
|
|
| 21 | VMHANDLE=${PN} |
|
|
| 22 | fi |
|
|
| 23 | |
25 | |
|
|
26 | # @ECLASS-VARIABLE: JAVA_VM_CONFIG_DIR |
|
|
27 | # @INTERNAL |
|
|
28 | # @DESCRIPTION: |
|
|
29 | # Where to place the vm env file. |
| 24 | JAVA_VM_CONFIG_DIR="/usr/share/java-config-2/vm" |
30 | JAVA_VM_CONFIG_DIR="/usr/share/java-config-2/vm" |
|
|
31 | |
|
|
32 | # @ECLASS-VARIABLE: JAVA_VM_DIR |
|
|
33 | # @INTERNAL |
|
|
34 | # @DESCRIPTION: |
|
|
35 | # Base directory for vm links. |
| 25 | JAVA_VM_DIR="/usr/lib/jvm" |
36 | JAVA_VM_DIR="/usr/lib/jvm" |
| 26 | |
37 | |
| 27 | EXPORT_FUNCTIONS pkg_postinst pkg_prerm |
38 | # @ECLASS-VARIABLE: JAVA_VM_SYSTEM |
|
|
39 | # @INTERNAL |
|
|
40 | # @DESCRIPTION: |
|
|
41 | # Link for system-vm |
|
|
42 | JAVA_VM_SYSTEM="/etc/java-config-2/current-system-vm" |
|
|
43 | |
|
|
44 | # @ECLASS-VARIABLE: JAVA_VM_BUILD_ONLY |
|
|
45 | # @DESCRIPTION: |
|
|
46 | # Set to YES to mark a vm as build-only. |
|
|
47 | JAVA_VM_BUILD_ONLY="${JAVA_VM_BUILD_ONLY:-FALSE}" |
|
|
48 | |
|
|
49 | |
|
|
50 | # @FUNCTION: java-vm-2_pkg_setup |
|
|
51 | # @DESCRIPTION: |
|
|
52 | # default pkg_setup |
|
|
53 | # |
|
|
54 | # Initialize vm handle. |
|
|
55 | |
|
|
56 | java-vm-2_pkg_setup() { |
|
|
57 | if [[ "${SLOT}" != "0" ]]; then |
|
|
58 | VMHANDLE=${PN}-${SLOT} |
|
|
59 | else |
|
|
60 | VMHANDLE=${PN} |
|
|
61 | fi |
|
|
62 | } |
|
|
63 | |
|
|
64 | |
|
|
65 | # @FUNCTION: java-vm-2_pkg_postinst |
|
|
66 | # @DESCRIPTION: |
|
|
67 | # default pkg_postinst |
|
|
68 | # |
|
|
69 | # Set the generation-2 system VM and Java plugin, if it isn't set or the |
|
|
70 | # setting is invalid. Also update mime database. |
| 28 | |
71 | |
| 29 | java-vm-2_pkg_postinst() { |
72 | java-vm-2_pkg_postinst() { |
| 30 | # Set the generation-2 system VM, if it isn't set |
73 | # Note that we cannot rely on java-config here, as it will silently recognize |
| 31 | if [[ -z "$(java-config-2 -f)" ]]; then |
74 | # e.g. icedtea6-bin as valid system VM if icedtea6 is set but invalid (e.g. due |
|
|
75 | # to the migration to icedtea-6) |
|
|
76 | if [[ ! -L "${ROOT}${JAVA_VM_SYSTEM}" ]]; then |
| 32 | java_set_default_vm_ |
77 | java_set_default_vm_ |
| 33 | fi |
78 | else |
| 34 | |
79 | local current_vm_path=$(readlink "${ROOT}${JAVA_VM_SYSTEM}") |
| 35 | if [[ ${JAVA_VM_NO_GENERATION1} != "true" ]]; then |
80 | local current_vm=$(basename "${ROOT}${current_vm_path}") |
| 36 | local systemvm1="$(java-config-1 -f)" |
81 | if [[ ! -L "${ROOT}${JAVA_VM_DIR}/${current_vm}" ]]; then |
| 37 | # no generation-1 system-vm was yet set |
82 | java_set_default_vm_ |
| 38 | if [[ -z "${systemvm1}" ]]; then |
|
|
| 39 | einfo "No valid generation-1 system-vm set, setting to ${P}" |
|
|
| 40 | java-config-1 --set-system-vm=${P} |
|
|
| 41 | # dirty check to see if we are upgrading current generation-1 system vm |
|
|
| 42 | elif [[ ${systemvm1} =~ "^${VMHANDLE}" ]]; then |
|
|
| 43 | einfo "Upgrading generation-1 system-vm... updating its env file" |
|
|
| 44 | java-config-1 --set-system-vm=${P} |
|
|
| 45 | fi |
83 | fi |
| 46 | # else... some other VM is being updated, so we don't have to worry |
|
|
| 47 | fi |
84 | fi |
| 48 | |
85 | |
|
|
86 | java-vm_check-nsplugin |
| 49 | java_mozilla_clean_ |
87 | java_mozilla_clean_ |
|
|
88 | fdo-mime_desktop_database_update |
| 50 | } |
89 | } |
|
|
90 | |
|
|
91 | |
|
|
92 | # @FUNCTION: java-vm_check-nsplugin |
|
|
93 | # @INTERNAL |
|
|
94 | # @DESCRIPTION: |
|
|
95 | # Check if the nsplugin needs updating |
|
|
96 | |
|
|
97 | java-vm_check-nsplugin() { |
|
|
98 | local libdir |
|
|
99 | if [[ ${VMHANDLE} =~ emul-linux-x86 ]]; then |
|
|
100 | libdir=lib32 |
|
|
101 | else |
|
|
102 | libdir=lib |
|
|
103 | fi |
|
|
104 | |
|
|
105 | has ${EAPI:-0} 0 1 2 && ! use prefix && EPREFIX= |
|
|
106 | |
|
|
107 | # Install a default nsplugin if we don't already have one |
|
|
108 | if in_iuse nsplugin && use nsplugin; then |
|
|
109 | if [[ ! -f "${ROOT}${EPREFIX}"/usr/${libdir}/nsbrowser/plugins/javaplugin.so ]]; then |
|
|
110 | einfo "No system nsplugin currently set." |
|
|
111 | java-vm_set-nsplugin |
|
|
112 | else |
|
|
113 | einfo "System nsplugin is already set, not changing it." |
|
|
114 | fi |
|
|
115 | einfo "You can change nsplugin with eselect java-nsplugin." |
|
|
116 | fi |
|
|
117 | } |
|
|
118 | |
|
|
119 | |
|
|
120 | # @FUNCTION: java-vm_set-nsplugin |
|
|
121 | # @INTERNAL |
|
|
122 | # @DESCRIPTION: |
|
|
123 | # Set the nsplugin implemetation. |
|
|
124 | |
|
|
125 | java-vm_set-nsplugin() { |
|
|
126 | local extra_args |
|
|
127 | if use amd64; then |
|
|
128 | if [[ ${VMHANDLE} =~ emul-linux-x86 ]]; then |
|
|
129 | extra_args="32bit" |
|
|
130 | else |
|
|
131 | extra_args="64bit" |
|
|
132 | fi |
|
|
133 | einfo "Setting ${extra_args} nsplugin to ${VMHANDLE}" |
|
|
134 | else |
|
|
135 | einfo "Setting nsplugin to ${VMHANDLE}..." |
|
|
136 | fi |
|
|
137 | eselect java-nsplugin set ${extra_args} ${VMHANDLE} |
|
|
138 | } |
|
|
139 | |
|
|
140 | |
|
|
141 | # @FUNCTION: java-vm-2_pkg_prerm |
|
|
142 | # @DESCRIPTION: |
|
|
143 | # default pkg_prerm |
|
|
144 | # |
|
|
145 | # Warn user if removing system-vm. |
| 51 | |
146 | |
| 52 | java-vm-2_pkg_prerm() { |
147 | java-vm-2_pkg_prerm() { |
| 53 | if [[ "$(java-config -f)" == "${VMHANDLE}" ]]; then |
148 | # Although REPLACED_BY_VERSION is EAPI=4, we shouldn't need to check EAPI for this use case |
|
|
149 | if [[ "$(GENTOO_VM="" java-config -f 2>/dev/null)" == "${VMHANDLE}" && -z "${REPLACED_BY_VERSION}" ]]; then |
| 54 | ewarn "It appears you are removing your default system VM!" |
150 | ewarn "It appears you are removing your system-vm!" |
| 55 | ewarn "Please run java-config -L then java-config -S to set a new system VM!" |
151 | ewarn "Please run java-config -L to list available VMs," |
|
|
152 | ewarn "then use java-config -S to set a new system-vm!" |
| 56 | fi |
153 | fi |
| 57 | } |
154 | } |
|
|
155 | |
|
|
156 | |
|
|
157 | # @FUNCTION: java-vm-2_pkg_postrm |
|
|
158 | # @DESCRIPTION: |
|
|
159 | # default pkg_postrm |
|
|
160 | # |
|
|
161 | # Update mime database. |
|
|
162 | |
|
|
163 | java-vm-2_pkg_postrm() { |
|
|
164 | fdo-mime_desktop_database_update |
|
|
165 | } |
|
|
166 | |
|
|
167 | |
|
|
168 | # @FUNCTION: java_set_default_vm_ |
|
|
169 | # @INTERNAL |
|
|
170 | # @DESCRIPTION: |
|
|
171 | # Set system-vm. |
| 58 | |
172 | |
| 59 | java_set_default_vm_() { |
173 | java_set_default_vm_() { |
| 60 | java-config-2 --set-system-vm="${VMHANDLE}" |
174 | java-config-2 --set-system-vm="${VMHANDLE}" |
| 61 | |
175 | |
| 62 | einfo " After installing ${P} this" |
176 | einfo " ${P} set as the default system-vm." |
| 63 | einfo " was set as the default JVM to run." |
|
|
| 64 | } |
177 | } |
|
|
178 | |
|
|
179 | |
|
|
180 | # @FUNCTION: get_system_arch |
|
|
181 | # @DESCRIPTION: |
|
|
182 | # Get Java specific arch name. |
| 65 | |
183 | |
| 66 | get_system_arch() { |
184 | get_system_arch() { |
| 67 | local sarch |
185 | local sarch |
| 68 | 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/) |
186 | 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/) |
| 69 | if [ -z "${sarch}" ]; then |
187 | if [ -z "${sarch}" ]; then |
| 70 | sarch=$(uname -m | 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/) |
188 | sarch=$(uname -m | 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/) |
| 71 | fi |
189 | fi |
| 72 | echo ${sarch} |
190 | echo ${sarch} |
| 73 | } |
191 | } |
| 74 | |
192 | |
|
|
193 | |
|
|
194 | # @FUNCTION: set_java_env |
|
|
195 | # @DESCRIPTION: |
|
|
196 | # Installs a vm env file. |
|
|
197 | |
| 75 | # TODO rename to something more evident, like install_env_file |
198 | # TODO rename to something more evident, like install_env_file |
| 76 | set_java_env() { |
199 | set_java_env() { |
|
|
200 | debug-print-function ${FUNCNAME} $* |
|
|
201 | |
|
|
202 | if has ${EAPI:-0} 0 1 2 && ! use prefix ; then |
|
|
203 | ED="${D}" |
|
|
204 | EPREFIX="" |
|
|
205 | fi |
|
|
206 | |
| 77 | local platform="$(get_system_arch)" |
207 | local platform="$(get_system_arch)" |
| 78 | local env_file="${D}${JAVA_VM_CONFIG_DIR}/${VMHANDLE}" |
208 | local env_file="${ED}${JAVA_VM_CONFIG_DIR}/${VMHANDLE}" |
| 79 | local old_env_file="${D}/etc/env.d/java/20${P}" |
209 | local old_env_file="${ED}/etc/env.d/java/20${P}" |
|
|
210 | if [[ ${1} ]]; then |
|
|
211 | local source_env_file="${1}" |
|
|
212 | else |
| 80 | local source_env_file="${FILESDIR}/${VMHANDLE}.env" |
213 | local source_env_file="${FILESDIR}/${VMHANDLE}.env" |
|
|
214 | fi |
| 81 | |
215 | |
| 82 | if [[ ! -f ${source_env_file} ]]; then |
216 | if [[ ! -f ${source_env_file} ]]; then |
| 83 | die "Unable to find the env file: ${source_env_file}" |
217 | die "Unable to find the env file: ${source_env_file}" |
| 84 | fi |
218 | fi |
| 85 | |
219 | |
| 86 | dodir ${JAVA_VM_CONFIG_DIR} |
220 | dodir ${JAVA_VM_CONFIG_DIR} |
| 87 | dodir /etc/env.d/java # generation-1 compatibility |
|
|
| 88 | sed \ |
221 | sed \ |
| 89 | -e "s/@P@/${P}/g" \ |
222 | -e "s/@P@/${P}/g" \ |
| 90 | -e "s/@PN@/${PN}/g" \ |
223 | -e "s/@PN@/${PN}/g" \ |
| 91 | -e "s/@PV@/${PV}/g" \ |
224 | -e "s/@PV@/${PV}/g" \ |
| 92 | -e "s/@PF@/${PF}/g" \ |
225 | -e "s/@PF@/${PF}/g" \ |
|
|
226 | -e "s/@SLOT@/${SLOT}/g" \ |
| 93 | -e "s/@PLATFORM@/${platform}/g" \ |
227 | -e "s/@PLATFORM@/${platform}/g" \ |
|
|
228 | -e "s/@LIBDIR@/$(get_libdir)/g" \ |
| 94 | -e "/^LDPATH=.*lib\\/\\\"/s|\"\\(.*\\)\"|\"\\1${platform}/:\\1${platform}/server/\"|" \ |
229 | -e "/^LDPATH=.*lib\\/\\\"/s|\"\\(.*\\)\"|\"\\1${platform}/:\\1${platform}/server/\"|" \ |
| 95 | < ${source_env_file} \ |
230 | < "${source_env_file}" \ |
| 96 | > ${env_file} || die "sed failed" |
231 | > "${env_file}" || die "sed failed" |
| 97 | |
232 | |
|
|
233 | ( |
| 98 | echo "VMHANDLE=\"${VMHANDLE}\"" >> ${env_file} |
234 | echo "VMHANDLE=\"${VMHANDLE}\"" |
| 99 | |
235 | echo "BUILD_ONLY=\"${JAVA_VM_BUILD_ONLY}\"" |
| 100 | # generation-1 compatibility |
236 | ) >> "${env_file}" |
| 101 | if [[ ${JAVA_VM_NO_GENERATION1} != true ]]; then |
237 | |
| 102 | # We need to strip some things out of the new style env, |
238 | eprefixify ${env_file} |
| 103 | # because these end up going in the env |
|
|
| 104 | sed -e 's/.*CLASSPATH.*//' \ |
|
|
| 105 | -e 's/.*PROVIDES.*//' \ |
|
|
| 106 | ${env_file} \ |
|
|
| 107 | > ${old_env_file} || die "failed to create old-style env file" |
|
|
| 108 | fi |
|
|
| 109 | |
239 | |
| 110 | [[ -n ${JAVA_PROVIDE} ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\"" >> ${env_file} |
240 | [[ -n ${JAVA_PROVIDE} ]] && echo "PROVIDES=\"${JAVA_PROVIDE}\"" >> ${env_file} |
| 111 | |
241 | |
| 112 | local java_home=$(source ${env_file}; echo ${JAVA_HOME}) |
242 | local java_home=$(source "${env_file}"; echo ${JAVA_HOME}) |
| 113 | [[ -z ${java_home} ]] && die "No JAVA_HOME defined in ${env_file}" |
243 | [[ -z ${java_home} ]] && die "No JAVA_HOME defined in ${env_file}" |
| 114 | |
244 | |
| 115 | # Make the symlink |
245 | # Make the symlink |
|
|
246 | dodir "${JAVA_VM_DIR}" |
| 116 | dosym ${java_home} ${JAVA_VM_DIR}/${VMHANDLE} \ |
247 | dosym ${java_home#${EPREFIX}} ${JAVA_VM_DIR}/${VMHANDLE} \ |
| 117 | || die "Failed to make VM symlink at ${JAVA_VM_DIR}/${VMHANDE}" |
248 | || die "Failed to make VM symlink at ${JAVA_VM_DIR}/${VMHANDLE}" |
| 118 | } |
249 | } |
| 119 | |
250 | |
|
|
251 | |
|
|
252 | # @FUNCTION: java-vm_set-pax-markings |
|
|
253 | # @DESCRIPTION: |
|
|
254 | # Set PaX markings on all JDK/JRE executables to allow code-generation on |
|
|
255 | # the heap by the JIT compiler. |
|
|
256 | # |
|
|
257 | # The markings need to be set prior to the first invocation of the the freshly |
|
|
258 | # built / installed VM. Be it before creating the Class Data Sharing archive or |
|
|
259 | # generating cacerts. Otherwise a PaX enabled kernel will kill the VM. |
|
|
260 | # Bug #215225 #389751 |
|
|
261 | # |
|
|
262 | # @CODE |
|
|
263 | # Parameters: |
|
|
264 | # $1 - JDK/JRE base directory. |
|
|
265 | # |
|
|
266 | # Examples: |
|
|
267 | # java-vm_set-pax-markings "${S}" |
|
|
268 | # java-vm_set-pax-markings "${ED}"/opt/${P} |
|
|
269 | # @CODE |
|
|
270 | |
|
|
271 | java-vm_set-pax-markings() { |
|
|
272 | debug-print-function ${FUNCNAME} "$*" |
|
|
273 | [[ $# -ne 1 ]] && die "${FUNCNAME}: takes exactly one argument" |
|
|
274 | [[ ! -f "${1}"/bin/java ]] \ |
|
|
275 | && die "${FUNCNAME}: argument needs to be JDK/JRE base directory" |
|
|
276 | |
|
|
277 | local executables=( "${1}"/bin/* ) |
|
|
278 | [[ -d "${1}"/jre ]] && executables+=( "${1}"/jre/bin/* ) |
|
|
279 | |
|
|
280 | # Usally disabeling MPROTECT is sufficent |
|
|
281 | local pax_markings="m" |
|
|
282 | # On x86 for heap sizes over 700MB disable SEGMEXEC and PAGEEXEC as well. |
|
|
283 | use x86 && pax_markings="msp" |
|
|
284 | |
|
|
285 | pax-mark ${pax_markings} $(list-paxables "${executables[@]}") |
|
|
286 | } |
|
|
287 | |
|
|
288 | |
|
|
289 | # @FUNCTION: java-vm_revdep-mask |
|
|
290 | # @DESCRIPTION: |
|
|
291 | # Installs a revdep-rebuild control file which SEARCH_DIR_MASK set to the path |
|
|
292 | # where the VM is installed. Prevents pointless rebuilds - see bug #177925. |
|
|
293 | # Also gives a notice to the user. |
|
|
294 | # |
|
|
295 | # @CODE |
|
|
296 | # Parameters: |
|
|
297 | # $1 - Path of the VM (defaults to /opt/${P} if not set) |
|
|
298 | # |
|
|
299 | # Examples: |
|
|
300 | # java-vm_revdep-mask |
|
|
301 | # java-vm_revdep-mask /path/to/jdk/ |
|
|
302 | # |
|
|
303 | # @CODE |
|
|
304 | |
|
|
305 | java-vm_revdep-mask() { |
|
|
306 | if has ${EAPI:-0} 0 1 2 && ! use prefix; then |
|
|
307 | ED="${D}" |
|
|
308 | EPREFIX= |
|
|
309 | fi |
|
|
310 | |
|
|
311 | local VMROOT="${1-"${EPREFIX}"/opt/${P}}" |
|
|
312 | |
|
|
313 | dodir /etc/revdep-rebuild/ |
|
|
314 | echo "SEARCH_DIRS_MASK=\"${VMROOT}\""> "${ED}/etc/revdep-rebuild/61-${VMHANDLE}" |
|
|
315 | } |
|
|
316 | |
|
|
317 | |
|
|
318 | # @FUNCTION: java-vm_sandbox-predict |
|
|
319 | # @DESCRIPTION: |
|
|
320 | # Install a sandbox control file. Specified paths won't cause a sandbox |
|
|
321 | # violation if opened read write but no write takes place. See bug 388937#c1 |
|
|
322 | # |
|
|
323 | # @CODE |
|
|
324 | # Examples: |
|
|
325 | # java-vm_sandbox-predict /dev/random /proc/self/coredump_filter |
|
|
326 | # @CODE |
|
|
327 | |
|
|
328 | java-vm_sandbox-predict() { |
|
|
329 | debug-print-function ${FUNCNAME} "$*" |
|
|
330 | [[ -z "${1}" ]] && die "${FUNCNAME} takes at least one argument" |
|
|
331 | |
|
|
332 | has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}" |
|
|
333 | |
|
|
334 | local path path_arr=("$@") |
|
|
335 | # subshell this to prevent IFS bleeding out dependant on bash version. |
|
|
336 | # could use local, which *should* work, but that requires a lot of testing. |
|
|
337 | path=$(IFS=":"; echo "${path_arr[*]}") |
|
|
338 | dodir /etc/sandbox.d |
|
|
339 | echo "SANDBOX_PREDICT=\"${path}\"" > "${ED}/etc/sandbox.d/20${VMHANDLE}" \ |
|
|
340 | || die "Failed to write sandbox control file" |
|
|
341 | } |
|
|
342 | |
|
|
343 | |
|
|
344 | # @FUNCTION: java_get_plugin_dir_ |
|
|
345 | # @INTERNAL |
|
|
346 | # @DESCRIPTION: |
|
|
347 | # Get the java plugin dir. |
| 120 | |
348 | |
| 121 | java_get_plugin_dir_() { |
349 | java_get_plugin_dir_() { |
|
|
350 | has ${EAPI:-0} 0 1 2 && ! use prefix && EPREFIX= |
| 122 | echo /usr/$(get_libdir)/nsbrowser/plugins |
351 | echo "${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins |
| 123 | } |
352 | } |
|
|
353 | |
|
|
354 | |
|
|
355 | # @FUNCTION: install_mozilla_plugin |
|
|
356 | # @DESCRIPTION: |
|
|
357 | # Register a netscape java-plugin. |
| 124 | |
358 | |
| 125 | install_mozilla_plugin() { |
359 | install_mozilla_plugin() { |
| 126 | local plugin=${1} |
360 | local plugin="${1}" |
|
|
361 | local variant="${2}" |
| 127 | |
362 | |
|
|
363 | has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}" |
| 128 | if [ ! -f "${D}/${plugin}" ] ; then |
364 | if [[ ! -f "${ED}/${plugin}" ]]; then |
| 129 | die "Cannot find mozilla plugin at ${D}/${plugin}" |
365 | die "Cannot find mozilla plugin at ${ED}/${plugin}" |
| 130 | fi |
366 | fi |
| 131 | |
367 | |
| 132 | local plugin_dir=$(java_get_plugin_dir_) |
368 | if [[ -n "${variant}" ]]; then |
|
|
369 | variant="-${variant}" |
|
|
370 | fi |
|
|
371 | |
|
|
372 | local plugin_dir="/usr/share/java-config-2/nsplugin" |
| 133 | dodir ${plugin_dir} |
373 | dodir "${plugin_dir}" |
| 134 | dosym ${plugin} ${plugin_dir}/javaplugin.so |
374 | dosym "${plugin}" "${plugin_dir}/${VMHANDLE}${variant}-javaplugin.so" |
| 135 | } |
375 | } |
|
|
376 | |
|
|
377 | |
|
|
378 | # @FUNCTION: java_mozilla_clean_ |
|
|
379 | # @INTERNAL |
|
|
380 | # @DESCRIPTION: |
|
|
381 | # Because previously some ebuilds installed symlinks outside of pkg_install |
|
|
382 | # and are left behind, which forces you to manualy remove them to select the |
|
|
383 | # jdk/jre you want to use for java |
| 136 | |
384 | |
| 137 | java_mozilla_clean_() { |
385 | java_mozilla_clean_() { |
| 138 | # Because previously some ebuilds installed symlinks outside of pkg_install |
|
|
| 139 | # and are left behind, which forces you to manualy remove them to select the |
|
|
| 140 | # jdk/jre you want to use for java |
|
|
| 141 | local plugin_dir=$(java_get_plugin_dir_) |
386 | local plugin_dir=$(java_get_plugin_dir_) |
| 142 | for file in ${plugin_dir}/javaplugin_*; do |
387 | for file in ${plugin_dir}/javaplugin_*; do |
| 143 | rm -f ${file} |
388 | rm -f ${file} |
| 144 | done |
389 | done |
| 145 | for file in ${plugin_dir}/libjavaplugin*; do |
390 | for file in ${plugin_dir}/libjavaplugin*; do |
| 146 | rm -f ${file} |
391 | rm -f ${file} |
| 147 | done |
392 | done |
| 148 | } |
393 | } |
| 149 | |
|
|