| 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.35 2011/10/29 14:36:34 caster Exp $ |
3 | # $Header: /var/cvsroot/gentoo-x86/eclass/java-vm-2.eclass,v 1.45 2012/07/18 16:54:55 sera Exp $ |
| 4 | |
4 | |
| 5 | # ----------------------------------------------------------------------------- |
5 | # @ECLASS: java-vm-2.eclass |
| 6 | # @eclass-begin |
6 | # @MAINTAINER: |
| 7 | # @eclass-shortdesc Java Virtual Machine eclass |
7 | # java@gentoo.org |
| 8 | # @eclass-maintainer java@gentoo.org |
8 | # @BLURB: Java Virtual Machine eclass |
| 9 | # |
9 | # @DESCRIPTION: |
| 10 | # This eclass provides functionality which assists with installing |
10 | # This eclass provides functionality which assists with installing |
| 11 | # virtual machines, and ensures that they are recognized by java-config. |
11 | # virtual machines, and ensures that they are recognized by java-config. |
| 12 | # |
|
|
| 13 | # ----------------------------------------------------------------------------- |
|
|
| 14 | |
12 | |
| 15 | inherit eutils fdo-mime multilib prefix |
13 | inherit eutils fdo-mime multilib pax-utils prefix |
| 16 | |
14 | |
|
|
15 | EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_prerm pkg_postrm |
|
|
16 | |
|
|
17 | RDEPEND=" |
| 17 | DEPEND="=dev-java/java-config-2*" |
18 | =dev-java/java-config-2* |
|
|
19 | || ( app-admin/eselect-java <dev-java/java-config-2.2 )" |
|
|
20 | DEPEND="${RDEPEND}" |
| 18 | has "${EAPI}" 0 1 && DEPEND="${DEPEND} >=sys-apps/portage-2.1" |
21 | has "${EAPI}" 0 1 && DEPEND="${DEPEND} >=sys-apps/portage-2.1" |
| 19 | |
22 | |
| 20 | RDEPEND=" |
|
|
| 21 | =dev-java/java-config-2*" |
|
|
| 22 | |
|
|
| 23 | export WANT_JAVA_CONFIG=2 |
23 | export WANT_JAVA_CONFIG=2 |
| 24 | |
24 | |
|
|
25 | |
|
|
26 | # @ECLASS-VARIABLE: JAVA_VM_CONFIG_DIR |
|
|
27 | # @INTERNAL |
|
|
28 | # @DESCRIPTION: |
|
|
29 | # Where to place the vm env file. |
| 25 | 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. |
| 26 | JAVA_VM_DIR="/usr/lib/jvm" |
36 | JAVA_VM_DIR="/usr/lib/jvm" |
|
|
37 | |
|
|
38 | # @ECLASS-VARIABLE: JAVA_VM_SYSTEM |
|
|
39 | # @INTERNAL |
|
|
40 | # @DESCRIPTION: |
|
|
41 | # Link for system-vm |
| 27 | JAVA_VM_SYSTEM="/etc/java-config-2/current-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. |
| 28 | JAVA_VM_BUILD_ONLY="${JAVA_VM_BUILD_ONLY:-FALSE}" |
47 | JAVA_VM_BUILD_ONLY="${JAVA_VM_BUILD_ONLY:-FALSE}" |
| 29 | |
48 | |
| 30 | EXPORT_FUNCTIONS pkg_setup pkg_postinst pkg_prerm pkg_postrm |
49 | |
|
|
50 | # @FUNCTION: java-vm-2_pkg_setup |
|
|
51 | # @DESCRIPTION: |
|
|
52 | # default pkg_setup |
|
|
53 | # |
|
|
54 | # Initialize vm handle. |
| 31 | |
55 | |
| 32 | java-vm-2_pkg_setup() { |
56 | java-vm-2_pkg_setup() { |
| 33 | if [[ "${SLOT}" != "0" ]]; then |
57 | if [[ "${SLOT}" != "0" ]]; then |
| 34 | VMHANDLE=${PN}-${SLOT} |
58 | VMHANDLE=${PN}-${SLOT} |
| 35 | else |
59 | else |
| 36 | VMHANDLE=${PN} |
60 | VMHANDLE=${PN} |
| 37 | fi |
61 | fi |
| 38 | } |
62 | } |
| 39 | |
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. |
|
|
71 | |
| 40 | java-vm-2_pkg_postinst() { |
72 | java-vm-2_pkg_postinst() { |
| 41 | # Set the generation-2 system VM, if it isn't set or the setting is invalid |
|
|
| 42 | # Note that we cannot rely on java-config here, as it will silently recognize |
73 | # Note that we cannot rely on java-config here, as it will silently recognize |
| 43 | # e.g. icedtea6-bin as valid system VM if icedtea6 is set but invalid (e.g. due |
74 | # e.g. icedtea6-bin as valid system VM if icedtea6 is set but invalid (e.g. due |
| 44 | # to the migration to icedtea-6) |
75 | # to the migration to icedtea-6) |
| 45 | if [[ ! -L "${JAVA_VM_SYSTEM}" ]]; then |
76 | if [[ ! -L "${ROOT}${JAVA_VM_SYSTEM}" ]]; then |
| 46 | java_set_default_vm_ |
77 | java_set_default_vm_ |
| 47 | else |
78 | else |
| 48 | local current_vm_path="$(readlink "${JAVA_VM_SYSTEM}")" |
79 | local current_vm_path=$(readlink "${ROOT}${JAVA_VM_SYSTEM}") |
| 49 | local current_vm="$(basename "${current_vm_path}")" |
80 | local current_vm=$(basename "${ROOT}${current_vm_path}") |
| 50 | if [[ ! -L "${JAVA_VM_DIR}/${current_vm}" ]]; then |
81 | if [[ ! -L "${ROOT}${JAVA_VM_DIR}/${current_vm}" ]]; then |
| 51 | java_set_default_vm_ |
82 | java_set_default_vm_ |
| 52 | fi |
83 | fi |
| 53 | fi |
84 | fi |
| 54 | |
85 | |
| 55 | java-vm_check-nsplugin |
86 | java-vm_check-nsplugin |
| 56 | java_mozilla_clean_ |
87 | java_mozilla_clean_ |
| 57 | fdo-mime_desktop_database_update |
88 | fdo-mime_desktop_database_update |
| 58 | } |
89 | } |
|
|
90 | |
|
|
91 | |
|
|
92 | # @FUNCTION: java-vm_check-nsplugin |
|
|
93 | # @INTERNAL |
|
|
94 | # @DESCRIPTION: |
|
|
95 | # Check if the nsplugin needs updating |
| 59 | |
96 | |
| 60 | java-vm_check-nsplugin() { |
97 | java-vm_check-nsplugin() { |
| 61 | local libdir |
98 | local libdir |
| 62 | if [[ ${VMHANDLE} =~ emul-linux-x86 ]]; then |
99 | if [[ ${VMHANDLE} =~ emul-linux-x86 ]]; then |
| 63 | libdir=lib32 |
100 | libdir=lib32 |
| … | |
… | |
| 66 | fi |
103 | fi |
| 67 | |
104 | |
| 68 | has ${EAPI:-0} 0 1 2 && ! use prefix && EPREFIX= |
105 | has ${EAPI:-0} 0 1 2 && ! use prefix && EPREFIX= |
| 69 | |
106 | |
| 70 | # Install a default nsplugin if we don't already have one |
107 | # Install a default nsplugin if we don't already have one |
| 71 | if has nsplugin ${IUSE} && use nsplugin; then |
108 | if in_iuse nsplugin && use nsplugin; then |
| 72 | if [[ ! -f "${EPREFIX}"/usr/${libdir}/nsbrowser/plugins/javaplugin.so ]]; then |
109 | if [[ ! -f "${ROOT}${EPREFIX}"/usr/${libdir}/nsbrowser/plugins/javaplugin.so ]]; then |
| 73 | einfo "No system nsplugin currently set." |
110 | einfo "No system nsplugin currently set." |
| 74 | java-vm_set-nsplugin |
111 | java-vm_set-nsplugin |
| 75 | else |
112 | else |
| 76 | einfo "System nsplugin is already set, not changing it." |
113 | einfo "System nsplugin is already set, not changing it." |
| 77 | fi |
114 | fi |
| 78 | einfo "You can change nsplugin with eselect java-nsplugin." |
115 | einfo "You can change nsplugin with eselect java-nsplugin." |
| 79 | fi |
116 | fi |
| 80 | } |
117 | } |
|
|
118 | |
|
|
119 | |
|
|
120 | # @FUNCTION: java-vm_set-nsplugin |
|
|
121 | # @INTERNAL |
|
|
122 | # @DESCRIPTION: |
|
|
123 | # Set the nsplugin implemetation. |
| 81 | |
124 | |
| 82 | java-vm_set-nsplugin() { |
125 | java-vm_set-nsplugin() { |
| 83 | local extra_args |
126 | local extra_args |
| 84 | if use amd64; then |
127 | if use amd64; then |
| 85 | if [[ ${VMHANDLE} =~ emul-linux-x86 ]]; then |
128 | if [[ ${VMHANDLE} =~ emul-linux-x86 ]]; then |
| … | |
… | |
| 92 | einfo "Setting nsplugin to ${VMHANDLE}..." |
135 | einfo "Setting nsplugin to ${VMHANDLE}..." |
| 93 | fi |
136 | fi |
| 94 | eselect java-nsplugin set ${extra_args} ${VMHANDLE} |
137 | eselect java-nsplugin set ${extra_args} ${VMHANDLE} |
| 95 | } |
138 | } |
| 96 | |
139 | |
|
|
140 | |
|
|
141 | # @FUNCTION: java-vm-2_pkg_prerm |
|
|
142 | # @DESCRIPTION: |
|
|
143 | # default pkg_prerm |
|
|
144 | # |
|
|
145 | # Warn user if removing system-vm. |
|
|
146 | |
| 97 | java-vm-2_pkg_prerm() { |
147 | java-vm-2_pkg_prerm() { |
| 98 | # Although REPLACED_BY_VERSION is EAPI=4, we shouldn't need to check EAPI for this use case |
148 | # Although REPLACED_BY_VERSION is EAPI=4, we shouldn't need to check EAPI for this use case |
| 99 | if [[ "$(java-config -f 2>/dev/null)" == "${VMHANDLE}" && -z "${REPLACED_BY_VERSION}" ]]; then |
149 | if [[ "$(GENTOO_VM="" java-config -f 2>/dev/null)" == "${VMHANDLE}" && -z "${REPLACED_BY_VERSION}" ]]; then |
| 100 | ewarn "It appears you are removing your system-vm!" |
150 | ewarn "It appears you are removing your system-vm!" |
| 101 | ewarn "Please run java-config -L to list available VMs," |
151 | ewarn "Please run java-config -L to list available VMs," |
| 102 | ewarn "then use java-config -S to set a new system-vm!" |
152 | ewarn "then use java-config -S to set a new system-vm!" |
| 103 | fi |
153 | fi |
| 104 | } |
154 | } |
| 105 | |
155 | |
|
|
156 | |
|
|
157 | # @FUNCTION: java-vm-2_pkg_postrm |
|
|
158 | # @DESCRIPTION: |
|
|
159 | # default pkg_postrm |
|
|
160 | # |
|
|
161 | # Update mime database. |
|
|
162 | |
| 106 | java-vm-2_pkg_postrm() { |
163 | java-vm-2_pkg_postrm() { |
| 107 | fdo-mime_desktop_database_update |
164 | fdo-mime_desktop_database_update |
| 108 | } |
165 | } |
| 109 | |
166 | |
|
|
167 | |
|
|
168 | # @FUNCTION: java_set_default_vm_ |
|
|
169 | # @INTERNAL |
|
|
170 | # @DESCRIPTION: |
|
|
171 | # Set system-vm. |
|
|
172 | |
| 110 | java_set_default_vm_() { |
173 | java_set_default_vm_() { |
| 111 | java-config-2 --set-system-vm="${VMHANDLE}" |
174 | java-config-2 --set-system-vm="${VMHANDLE}" |
| 112 | |
175 | |
| 113 | einfo " ${P} set as the default system-vm." |
176 | einfo " ${P} set as the default system-vm." |
| 114 | } |
177 | } |
|
|
178 | |
|
|
179 | |
|
|
180 | # @FUNCTION: get_system_arch |
|
|
181 | # @DESCRIPTION: |
|
|
182 | # Get Java specific arch name. |
| 115 | |
183 | |
| 116 | get_system_arch() { |
184 | get_system_arch() { |
| 117 | local sarch |
185 | local sarch |
| 118 | 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/) |
| 119 | if [ -z "${sarch}" ]; then |
187 | if [ -z "${sarch}" ]; then |
| 120 | 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/) |
| 121 | fi |
189 | fi |
| 122 | echo ${sarch} |
190 | echo ${sarch} |
| 123 | } |
191 | } |
|
|
192 | |
|
|
193 | |
|
|
194 | # @FUNCTION: set_java_env |
|
|
195 | # @DESCRIPTION: |
|
|
196 | # Installs a vm env file. |
| 124 | |
197 | |
| 125 | # TODO rename to something more evident, like install_env_file |
198 | # TODO rename to something more evident, like install_env_file |
| 126 | set_java_env() { |
199 | set_java_env() { |
| 127 | debug-print-function ${FUNCNAME} $* |
200 | debug-print-function ${FUNCNAME} $* |
| 128 | |
201 | |
| … | |
… | |
| 148 | sed \ |
221 | sed \ |
| 149 | -e "s/@P@/${P}/g" \ |
222 | -e "s/@P@/${P}/g" \ |
| 150 | -e "s/@PN@/${PN}/g" \ |
223 | -e "s/@PN@/${PN}/g" \ |
| 151 | -e "s/@PV@/${PV}/g" \ |
224 | -e "s/@PV@/${PV}/g" \ |
| 152 | -e "s/@PF@/${PF}/g" \ |
225 | -e "s/@PF@/${PF}/g" \ |
|
|
226 | -e "s/@SLOT@/${SLOT}/g" \ |
| 153 | -e "s/@PLATFORM@/${platform}/g" \ |
227 | -e "s/@PLATFORM@/${platform}/g" \ |
| 154 | -e "s/@LIBDIR@/$(get_libdir)/g" \ |
228 | -e "s/@LIBDIR@/$(get_libdir)/g" \ |
| 155 | -e "/^LDPATH=.*lib\\/\\\"/s|\"\\(.*\\)\"|\"\\1${platform}/:\\1${platform}/server/\"|" \ |
229 | -e "/^LDPATH=.*lib\\/\\\"/s|\"\\(.*\\)\"|\"\\1${platform}/:\\1${platform}/server/\"|" \ |
| 156 | < "${source_env_file}" \ |
230 | < "${source_env_file}" \ |
| 157 | > "${env_file}" || die "sed failed" |
231 | > "${env_file}" || die "sed failed" |
| … | |
… | |
| 172 | dodir "${JAVA_VM_DIR}" |
246 | dodir "${JAVA_VM_DIR}" |
| 173 | dosym ${java_home#${EPREFIX}} ${JAVA_VM_DIR}/${VMHANDLE} \ |
247 | dosym ${java_home#${EPREFIX}} ${JAVA_VM_DIR}/${VMHANDLE} \ |
| 174 | || die "Failed to make VM symlink at ${JAVA_VM_DIR}/${VMHANDLE}" |
248 | || die "Failed to make VM symlink at ${JAVA_VM_DIR}/${VMHANDLE}" |
| 175 | } |
249 | } |
| 176 | |
250 | |
| 177 | # ----------------------------------------------------------------------------- |
251 | |
| 178 | # @ebuild-function java-vm_revdep-mask |
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 |
| 179 | # |
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: |
| 180 | # Installs a revdep-rebuild control file which SEARCH_DIR_MASK set to the path |
291 | # Installs a revdep-rebuild control file which SEARCH_DIR_MASK set to the path |
| 181 | # where the VM is installed. Prevents pointless rebuilds - see bug #177925. |
292 | # where the VM is installed. Prevents pointless rebuilds - see bug #177925. |
| 182 | # Also gives a notice to the user. |
293 | # Also gives a notice to the user. |
| 183 | # |
294 | # |
| 184 | # @example |
295 | # @CODE |
| 185 | # java-vm_revdep-mask |
296 | # Parameters: |
| 186 | # java-vm_revdep-mask /path/to/jdk/ |
|
|
| 187 | # |
|
|
| 188 | # @param $1 - Path of the VM (defaults to /opt/${P} if not set) |
297 | # $1 - Path of the VM (defaults to /opt/${P} if not set) |
| 189 | # ------------------------------------------------------------------------------ |
298 | # |
|
|
299 | # Examples: |
|
|
300 | # java-vm_revdep-mask |
|
|
301 | # java-vm_revdep-mask /path/to/jdk/ |
|
|
302 | # |
|
|
303 | # @CODE |
|
|
304 | |
| 190 | java-vm_revdep-mask() { |
305 | java-vm_revdep-mask() { |
| 191 | if has ${EAPI:-0} 0 1 2 && ! use prefix; then |
306 | if has ${EAPI:-0} 0 1 2 && ! use prefix; then |
| 192 | ED="${D}" |
307 | ED="${D}" |
| 193 | EPREFIX= |
308 | EPREFIX= |
| 194 | fi |
309 | fi |
| 195 | |
310 | |
| 196 | local VMROOT="${1-"${EPREFIX}"/opt/${P}}" |
311 | local VMROOT="${1-"${EPREFIX}"/opt/${P}}" |
| 197 | |
312 | |
| 198 | dodir /etc/revdep-rebuild/ |
313 | dodir /etc/revdep-rebuild/ |
| 199 | echo "SEARCH_DIRS_MASK=\"${VMROOT}\""> "${ED}/etc/revdep-rebuild/61-${VMHANDLE}" |
314 | echo "SEARCH_DIRS_MASK=\"${VMROOT}\""> "${ED}/etc/revdep-rebuild/61-${VMHANDLE}" |
| 200 | |
|
|
| 201 | elog "A revdep-rebuild control file was installed to prevent reinstalls due to" |
|
|
| 202 | elog "missing dependencies (see bug #177925 for more info). Note that some parts" |
|
|
| 203 | elog "of the JVM may require dependencies that are pulled only through respective" |
|
|
| 204 | elog "USE flags (typically X, alsa, odbc) and some Java code may fail without them." |
|
|
| 205 | } |
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. |
| 206 | |
348 | |
| 207 | java_get_plugin_dir_() { |
349 | java_get_plugin_dir_() { |
| 208 | has ${EAPI:-0} 0 1 2 && ! use prefix && EPREFIX= |
350 | has ${EAPI:-0} 0 1 2 && ! use prefix && EPREFIX= |
| 209 | echo "${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins |
351 | echo "${EPREFIX}"/usr/$(get_libdir)/nsbrowser/plugins |
| 210 | } |
352 | } |
| 211 | |
353 | |
|
|
354 | |
|
|
355 | # @FUNCTION: install_mozilla_plugin |
|
|
356 | # @DESCRIPTION: |
|
|
357 | # Register a netscape java-plugin. |
|
|
358 | |
| 212 | install_mozilla_plugin() { |
359 | install_mozilla_plugin() { |
| 213 | local plugin="${1}" |
360 | local plugin="${1}" |
| 214 | local variant="${2}" |
361 | local variant="${2}" |
| 215 | |
362 | |
| 216 | has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}" |
363 | has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}" |
| … | |
… | |
| 225 | local plugin_dir="/usr/share/java-config-2/nsplugin" |
372 | local plugin_dir="/usr/share/java-config-2/nsplugin" |
| 226 | dodir "${plugin_dir}" |
373 | dodir "${plugin_dir}" |
| 227 | dosym "${plugin}" "${plugin_dir}/${VMHANDLE}${variant}-javaplugin.so" |
374 | dosym "${plugin}" "${plugin_dir}/${VMHANDLE}${variant}-javaplugin.so" |
| 228 | } |
375 | } |
| 229 | |
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 |
|
|
384 | |
| 230 | java_mozilla_clean_() { |
385 | java_mozilla_clean_() { |
| 231 | # Because previously some ebuilds installed symlinks outside of pkg_install |
|
|
| 232 | # and are left behind, which forces you to manualy remove them to select the |
|
|
| 233 | # jdk/jre you want to use for java |
|
|
| 234 | local plugin_dir=$(java_get_plugin_dir_) |
386 | local plugin_dir=$(java_get_plugin_dir_) |
| 235 | for file in ${plugin_dir}/javaplugin_*; do |
387 | for file in ${plugin_dir}/javaplugin_*; do |
| 236 | rm -f ${file} |
388 | rm -f ${file} |
| 237 | done |
389 | done |
| 238 | for file in ${plugin_dir}/libjavaplugin*; do |
390 | for file in ${plugin_dir}/libjavaplugin*; do |
| 239 | rm -f ${file} |
391 | rm -f ${file} |
| 240 | done |
392 | done |
| 241 | } |
393 | } |
| 242 | |
|
|
| 243 | # ------------------------------------------------------------------------------ |
|
|
| 244 | # @eclass-end |
|
|
| 245 | # ------------------------------------------------------------------------------ |
|
|