1 |
# If debug is 1, OpenJDK is built with all debug info present. |
2 |
%global debug 0 |
3 |
|
4 |
%global aarch64_hg_tag 992 |
5 |
|
6 |
%global aarch64 aarch64 arm64 armv8 |
7 |
# sometimes we need to distinguish big and little endian PPC64 |
8 |
%global ppc64le ppc64le |
9 |
%global ppc64be ppc64 ppc64p7 |
10 |
%global multilib_arches %{power64} sparc64 x86_64 |
11 |
%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} |
12 |
|
13 |
# With diabled nss is NSS deactivated, so in NSS_LIBDIR can be wrong path |
14 |
# the initialisation must be here. LAter the pkg-connfig have bugy behaviour |
15 |
#looks liekopenjdk RPM specific bug |
16 |
# Always set this so the nss.cfg file is not broken |
17 |
%global NSS_LIBDIR %(pkg-config --variable=libdir nss) |
18 |
|
19 |
#fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349 |
20 |
%global _privatelibs libmawt[.]so.* |
21 |
%global __provides_exclude ^(%{_privatelibs})$ |
22 |
%global __requires_exclude ^(%{_privatelibs})$ |
23 |
|
24 |
%ifarch x86_64 |
25 |
%global archinstall amd64 |
26 |
%endif |
27 |
%ifarch ppc |
28 |
%global archinstall ppc |
29 |
%endif |
30 |
%ifarch %{power64} |
31 |
%global archinstall ppc64 |
32 |
%endif |
33 |
%ifarch %{ppc64le} |
34 |
%global archinstall ppc64le |
35 |
%endif |
36 |
%ifarch %{ix86} |
37 |
%global archinstall i386 |
38 |
%endif |
39 |
%ifarch ia64 |
40 |
%global archinstall ia64 |
41 |
%endif |
42 |
%ifarch s390 |
43 |
%global archinstall s390 |
44 |
%endif |
45 |
%ifarch s390x |
46 |
%global archinstall s390x |
47 |
%endif |
48 |
%ifarch %{arm} |
49 |
%global archinstall arm |
50 |
%endif |
51 |
%ifarch %{aarch64} |
52 |
%global archinstall aarch64 |
53 |
%endif |
54 |
# 32 bit sparc, optimized for v9 |
55 |
%ifarch sparcv9 |
56 |
%global archinstall sparc |
57 |
%endif |
58 |
# 64 bit sparc |
59 |
%ifarch sparc64 |
60 |
%global archinstall sparcv9 |
61 |
%endif |
62 |
%ifnarch %{jit_arches} |
63 |
%global archinstall %{_arch} |
64 |
%endif |
65 |
|
66 |
%if %{debug} |
67 |
%global debugbuild slowdebug |
68 |
%else |
69 |
%global debugbuild release |
70 |
%endif |
71 |
|
72 |
%global buildoutputdir jdk8/build/jdk8.build |
73 |
|
74 |
%ifarch %{jit_arches} |
75 |
%global with_systemtap 1 |
76 |
%else |
77 |
%global with_systemtap 0 |
78 |
%endif |
79 |
|
80 |
# Convert an absolute path to a relative path. Each symbolic link is |
81 |
# specified relative to the directory in which it is installed so that |
82 |
# it will resolve properly within chrooted installations. |
83 |
%global script 'use File::Spec; print File::Spec->abs2rel($ARGV[0], $ARGV[1])' |
84 |
%global abs2rel %{__perl} -e %{script} |
85 |
|
86 |
# Hard-code libdir on 64-bit architectures to make the 64-bit JDK |
87 |
# simply be another alternative. |
88 |
%global LIBDIR %{_libdir} |
89 |
#backuped original one |
90 |
%ifarch %{multilib_arches} |
91 |
%global syslibdir %{_prefix}/lib64 |
92 |
%global _libdir %{_prefix}/lib |
93 |
%else |
94 |
%global syslibdir %{_libdir} |
95 |
%endif |
96 |
|
97 |
# Standard JPackage naming and versioning defines. |
98 |
%global origin openjdk |
99 |
%global updatever 40 |
100 |
%global buildver b02 |
101 |
%global aarch64_updatever 0 |
102 |
%global aarch64_buildver b128 |
103 |
# priority must be 6 digits in total |
104 |
%global priority 18000%{updatever} |
105 |
%global javaver 1.8.0 |
106 |
|
107 |
# Standard JPackage directories and symbolic links. |
108 |
%global sdkdir %{uniquesuffix} |
109 |
%global jrelnk jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch} |
110 |
|
111 |
%global jredir %{sdkdir}/jre |
112 |
%global sdkbindir %{_jvmdir}/%{sdkdir}/bin |
113 |
%global jrebindir %{_jvmdir}/%{jredir}/bin |
114 |
%global jvmjardir %{_jvmjardir}/%{uniquesuffix} |
115 |
|
116 |
%global fullversion %{name}-%{version}-%{release} |
117 |
|
118 |
%global uniquesuffix %{fullversion}.%{_arch} |
119 |
#we can copy the javadoc to not arched dir, or made it not noarch |
120 |
%global uniquejavadocdir %{fullversion} |
121 |
|
122 |
%if %{with_systemtap} |
123 |
# Where to install systemtap tapset (links) |
124 |
# We would like these to be in a package specific subdir, |
125 |
# but currently systemtap doesn't support that, so we have to |
126 |
# use the root tapset dir for now. To distinquish between 64 |
127 |
# and 32 bit architectures we place the tapsets under the arch |
128 |
# specific dir (note that systemtap will only pickup the tapset |
129 |
# for the primary arch for now). Systemtap uses the machine name |
130 |
# aka build_cpu as architecture specific directory name. |
131 |
%global tapsetroot /usr/share/systemtap |
132 |
%global tapsetdir %{tapsetroot}/tapset/%{_build_cpu} |
133 |
%endif |
134 |
|
135 |
# Prevent brp-java-repack-jars from being run. |
136 |
%global __jar_repack 0 |
137 |
|
138 |
Name: java-%{javaver}-%{origin} |
139 |
Version: %{javaver}.%{updatever} |
140 |
Release: %mkrel 4.%{buildver}.1 |
141 |
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, |
142 |
# and this change was brought into RHEL-4. java-1.5.0-ibm packages |
143 |
# also included the epoch in their virtual provides. This created a |
144 |
# situation where in-the-wild java-1.5.0-ibm packages provided "java = |
145 |
# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is |
146 |
# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be |
147 |
# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in |
148 |
# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual |
149 |
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". |
150 |
Epoch: 1 |
151 |
Summary: OpenJDK Runtime Environment |
152 |
Group: Development/Java |
153 |
|
154 |
License: ASL 1.1 and ASL 2.0 and GPL+ and GPLv2 and GPLv2 with exceptions and LGPL+ and LGPLv2 and MPLv1.0 and MPLv1.1 and Public Domain and W3C |
155 |
URL: http://openjdk.java.net/ |
156 |
|
157 |
# Source from upstrem OpenJDK8 project. To regenerate, use |
158 |
# ./generate_source_tarball.sh jdk8u jdk8u jdk8u%{updatever}-%{buildver} |
159 |
# ./generate_source_tarball.sh aarch64-port jdk8 %{aarch64_hg_tag} |
160 |
Source0: jdk8u-jdk8u%{updatever}-%{buildver}.tar.xz |
161 |
Source1: aarch64-hotspot-jdk8-%{aarch64_buildver}-aarch64-%{aarch64_hg_tag}.tar.xz |
162 |
|
163 |
# Custom README for -src subpackage |
164 |
Source2: README.src |
165 |
|
166 |
# Use 'generate_tarballs.sh' to generate the following tarballs |
167 |
# They are based on code contained in the IcedTea7 project. |
168 |
|
169 |
# Systemtap tapsets. Zipped up to keep it small. |
170 |
Source8: systemtap-tapset.tar.gz |
171 |
|
172 |
# Desktop files. Adapated from IcedTea. |
173 |
Source9: jconsole.desktop.in |
174 |
Source10: policytool.desktop.in |
175 |
|
176 |
# nss configuration file |
177 |
Source11: nss.cfg |
178 |
|
179 |
# Removed libraries that we link instead |
180 |
Source12: remove-intree-libraries.sh |
181 |
|
182 |
# Ensure we aren't using the limited crypto policy |
183 |
Source13: TestCryptoLevel.java |
184 |
|
185 |
# New versions of config files with aarch64 support. This is not upstream yet. |
186 |
Source100: config.guess |
187 |
Source101: config.sub |
188 |
|
189 |
# RPM/distribution specific patches |
190 |
|
191 |
# Ignore AWTError when assistive technologies are loaded |
192 |
Patch1: %{name}-accessible-toolkit.patch |
193 |
|
194 |
# RHBZ 1015432 |
195 |
Patch2: 1015432.patch |
196 |
# Restrict access to java-atk-wrapper classes |
197 |
Patch3: java-atk-wrapper-security.patch |
198 |
# RHBZ 808293 |
199 |
Patch4: PStack-808293.patch |
200 |
# Allow multiple initialization of PKCS11 libraries |
201 |
Patch5: multiple-pkcs11-library-init.patch |
202 |
# Disable doclint for compatibility |
203 |
Patch6: disable-doclint-by-default.patch |
204 |
# Include all sources in src.zip |
205 |
Patch7: include-all-srcs.patch |
206 |
# Problem discovered with make 4.0 |
207 |
Patch11: hotspot-build-j-directive.patch |
208 |
|
209 |
# |
210 |
# OpenJDK specific patches |
211 |
# |
212 |
|
213 |
|
214 |
# JVM heap size changes for s390 (thanks to aph) |
215 |
Patch100: %{name}-s390-java-opts.patch |
216 |
# Type fixing for s390 |
217 |
Patch102: %{name}-size_t.patch |
218 |
|
219 |
# Patch for PPC/PPC64 |
220 |
Patch103: %{name}-ppc-zero-hotspot.patch |
221 |
|
222 |
Patch201: system-libjpeg.patch |
223 |
Patch202: system-libpng.patch |
224 |
Patch203: system-lcms.patch |
225 |
|
226 |
Patch300: jstack-pr1845.patch |
227 |
|
228 |
Patch9999: enableArm64.patch |
229 |
|
230 |
BuildRequires: autoconf |
231 |
BuildRequires: automake |
232 |
BuildRequires: alsa-lib-devel |
233 |
BuildRequires: binutils |
234 |
BuildRequires: cups-devel |
235 |
BuildRequires: desktop-file-utils |
236 |
BuildRequires: fontconfig |
237 |
BuildRequires: freetype-devel |
238 |
BuildRequires: giflib-devel |
239 |
BuildRequires: gcc-c++ |
240 |
BuildRequires: gtk2-devel |
241 |
BuildRequires: lcms2-devel |
242 |
BuildRequires: libjpeg-devel |
243 |
BuildRequires: libpng-devel |
244 |
BuildRequires: libxslt-devel |
245 |
BuildRequires: libx11-devel |
246 |
BuildRequires: libxi-devel |
247 |
BuildRequires: libxinerama-devel |
248 |
BuildRequires: libxt-devel |
249 |
BuildRequires: libxtst-devel |
250 |
# Requirements for setting up the nss.cfg |
251 |
BuildRequires: nss-devel |
252 |
BuildRequires: pkgconfig |
253 |
BuildRequires: x11-proto-devel |
254 |
#BuildRequires: redhat-lsb |
255 |
BuildRequires: zip |
256 |
BuildRequires: java-1.8.0-openjdk-devel |
257 |
# Zero-assembler build requirement. |
258 |
%ifnarch %{jit_arches} |
259 |
BuildRequires: libffi-devel |
260 |
%endif |
261 |
BuildRequires: timezone-java >= 2014f-1 |
262 |
|
263 |
# cacerts build requirement. |
264 |
BuildRequires: openssl |
265 |
# execstack build requirement. |
266 |
# no prelink on ARM yet |
267 |
%ifnarch %{arm} %{aarch64} %{ppc64le} |
268 |
BuildRequires: prelink |
269 |
%endif |
270 |
%if %{with_systemtap} |
271 |
BuildRequires: systemtap |
272 |
%endif |
273 |
|
274 |
Requires: fontconfig |
275 |
#Requires: x11-font-type1 |
276 |
|
277 |
# Requires rest of java |
278 |
Requires: %{name}-headless = %{epoch}:%{version}-%{release} |
279 |
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} |
280 |
|
281 |
|
282 |
# Standard JPackage base provides. |
283 |
Provides: jre-%{javaver}-%{origin} = %{epoch}:%{version}-%{release} |
284 |
Provides: jre-%{origin} = %{epoch}:%{version}-%{release} |
285 |
Provides: jre-%{javaver} = %{epoch}:%{version}-%{release} |
286 |
Provides: java-%{javaver} = %{epoch}:%{version}-%{release} |
287 |
Provides: jre = %{javaver} |
288 |
Provides: java-%{origin} = %{epoch}:%{version}-%{release} |
289 |
Provides: java = %{epoch}:%{javaver} |
290 |
# Standard JPackage extensions provides. |
291 |
Provides: java-fonts = %{epoch}:%{version} |
292 |
|
293 |
Obsoletes: java-1.7.0-openjdk < 1:1.7.0.65-2.5.1.2 |
294 |
Provides: java-1.7.0-openjdk = %{epoch}:%{version}-%{release} |
295 |
|
296 |
%description |
297 |
The OpenJDK runtime environment. |
298 |
|
299 |
%package headless |
300 |
Summary: OpenJDK Runtime Environment |
301 |
Group: Development/Java |
302 |
|
303 |
# Require /etc/pki/java/cacerts. |
304 |
#Requires: ca-certificates |
305 |
Requires: rootcerts-java |
306 |
# Require jpackage-utils for ownership of /usr/lib/jvm/ |
307 |
Requires: jpackage-utils |
308 |
# Require zoneinfo data provided by tzdata-java subpackage. |
309 |
Requires: timezone-java >= 2014f-1 |
310 |
# Post requires alternatives to install tool alternatives. |
311 |
Requires(post): %{_sbindir}/alternatives |
312 |
# Postun requires alternatives to uninstall tool alternatives. |
313 |
Requires(postun): %{_sbindir}/alternatives |
314 |
|
315 |
# Standard JPackage base provides. |
316 |
Provides: jre-%{javaver}-%{origin}-headless = %{epoch}:%{version}-%{release} |
317 |
Provides: jre-%{origin}-headless = %{epoch}:%{version}-%{release} |
318 |
Provides: jre-%{javaver}-headless = %{epoch}:%{version}-%{release} |
319 |
Provides: java-%{javaver}-headless = %{epoch}:%{version}-%{release} |
320 |
Provides: jre-headless = %{epoch}:%{javaver} |
321 |
Provides: java-%{origin}-headless = %{epoch}:%{version}-%{release} |
322 |
Provides: java-headless = %{epoch}:%{javaver} |
323 |
# Standard JPackage extensions provides. |
324 |
Provides: jndi = %{epoch}:%{version} |
325 |
Provides: jndi-ldap = %{epoch}:%{version} |
326 |
Provides: jndi-cos = %{epoch}:%{version} |
327 |
Provides: jndi-rmi = %{epoch}:%{version} |
328 |
Provides: jndi-dns = %{epoch}:%{version} |
329 |
Provides: jaas = %{epoch}:%{version} |
330 |
Provides: jsse = %{epoch}:%{version} |
331 |
Provides: jce = %{epoch}:%{version} |
332 |
Provides: jdbc-stdext = 4.1 |
333 |
Provides: java-sasl = %{epoch}:%{version} |
334 |
|
335 |
Obsoletes: java-1.7.0-openjdk-headless < 1:1.7.0.65-2.5.1.2 |
336 |
Provides: java-1.7.0-openjdk-headless = %{epoch}:%{version}-%{release} |
337 |
|
338 |
%description headless |
339 |
The OpenJDK runtime environment without audio and video support. |
340 |
|
341 |
%package devel |
342 |
Summary: OpenJDK Development Environment |
343 |
Group: Development/Java |
344 |
|
345 |
# Require base package. |
346 |
Requires: %{name} = %{epoch}:%{version}-%{release} |
347 |
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} |
348 |
# Post requires alternatives to install tool alternatives. |
349 |
Requires(post): %{_sbindir}/alternatives |
350 |
# Postun requires alternatives to uninstall tool alternatives. |
351 |
Requires(postun): %{_sbindir}/alternatives |
352 |
|
353 |
# Standard JPackage devel provides. |
354 |
Provides: java-sdk-%{javaver}-%{origin} = %{epoch}:%{version} |
355 |
Provides: java-sdk-%{javaver} = %{epoch}:%{version} |
356 |
Provides: java-sdk-%{origin} = %{epoch}:%{version} |
357 |
Provides: java-sdk = %{epoch}:%{javaver} |
358 |
Provides: java-%{javaver}-devel = %{epoch}:%{version} |
359 |
Provides: java-devel-%{origin} = %{epoch}:%{version} |
360 |
Provides: java-devel = %{epoch}:%{javaver} |
361 |
|
362 |
Obsoletes: java-1.7.0-openjdk-devel < 1:1.7.0.65-2.5.1.2 |
363 |
Provides: java-1.7.0-openjdk-devel = %{epoch}:%{version}-%{release} |
364 |
|
365 |
%description devel |
366 |
The OpenJDK development tools. |
367 |
|
368 |
%package demo |
369 |
Summary: OpenJDK Demos |
370 |
Group: Development/Java |
371 |
|
372 |
Requires: %{name} = %{epoch}:%{version}-%{release} |
373 |
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} |
374 |
|
375 |
Obsoletes: java-1.7.0-openjdk-demo < 1:1.7.0.65-2.5.1.2 |
376 |
Provides: java-1.7.0-openjdk-demo = %{epoch}:%{version}-%{release} |
377 |
|
378 |
%description demo |
379 |
The OpenJDK demos. |
380 |
|
381 |
%package src |
382 |
Summary: OpenJDK Source Bundle |
383 |
Group: Development/Java |
384 |
|
385 |
Requires: %{name} = %{epoch}:%{version}-%{release} |
386 |
|
387 |
Obsoletes: java-1.7.0-openjdk-src < 1:1.7.0.65-2.5.1.2 |
388 |
Provides: java-1.7.0-openjdk-src = %{epoch}:%{version}-%{release} |
389 |
|
390 |
%description src |
391 |
The OpenJDK source bundle. |
392 |
|
393 |
%package javadoc |
394 |
Summary: OpenJDK API Documentation |
395 |
Group: Documentation |
396 |
Requires: jpackage-utils |
397 |
BuildArch: noarch |
398 |
|
399 |
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} |
400 |
# Post requires alternatives to install javadoc alternative. |
401 |
Requires(post): %{_sbindir}/alternatives |
402 |
# Postun requires alternatives to uninstall javadoc alternative. |
403 |
Requires(postun): %{_sbindir}/alternatives |
404 |
|
405 |
# Standard JPackage javadoc provides. |
406 |
Provides: java-javadoc = %{epoch}:%{version}-%{release} |
407 |
Provides: java-%{javaver}-javadoc = %{epoch}:%{version}-%{release} |
408 |
|
409 |
Obsoletes: java-1.7.0-openjdk-javadoc < 1:1.7.0.65-2.5.1.2 |
410 |
Provides: java-1.7.0-openjdk-javadoc = %{epoch}:%{version}-%{release} |
411 |
|
412 |
%description javadoc |
413 |
The OpenJDK API documentation. |
414 |
|
415 |
%package accessibility |
416 |
Summary: OpenJDK accessibility connector |
417 |
Requires: java-atk-wrapper |
418 |
Requires: %{name} = %{epoch}:%{version}-%{release} |
419 |
OrderWithRequires: %{name}-headless = %{epoch}:%{version}-%{release} |
420 |
|
421 |
Obsoletes: java-1.7.0-openjdk-accessibility < 1:1.7.0.65-2.5.1.2 |
422 |
Provides: java-1.7.0-openjdk-accessibility = %{epoch}:%{version}-%{release} |
423 |
|
424 |
%description accessibility |
425 |
Enables accessibility support in OpenJDK by using java-atk-wrapper. This allows |
426 |
compatible at-spi2 based accessibility programs to work for AWT and Swing-based |
427 |
programs. |
428 |
|
429 |
Please note, the java-atk-wrapper is still in beta, and OpenJDK itself is still |
430 |
being tuned to be working with accessibility features. There are known issues |
431 |
with accessibility on, so please do not install this package unless you really |
432 |
need to. |
433 |
|
434 |
|
435 |
%prep |
436 |
%setup -q -c -n %{uniquesuffix} -T -a 0 |
437 |
%ifarch %{aarch64} |
438 |
pushd jdk8 |
439 |
rm -r hotspot |
440 |
tar xf %{SOURCE1} |
441 |
popd |
442 |
%endif |
443 |
cp %{SOURCE2} . |
444 |
|
445 |
# replace outdated configure guess script |
446 |
# |
447 |
# the configure macro will do this too, but it also passes a few flags not |
448 |
# supported by openjdk configure script |
449 |
cp %{SOURCE100} jdk8/common/autoconf/build-aux/ |
450 |
cp %{SOURCE101} jdk8/common/autoconf/build-aux/ |
451 |
|
452 |
# OpenJDK patches |
453 |
|
454 |
# Remove libraries that are linked |
455 |
sh %{SOURCE12} |
456 |
|
457 |
%ifarch %{aarch64} |
458 |
%patch9999 |
459 |
%endif |
460 |
|
461 |
%patch201 |
462 |
%patch202 |
463 |
%patch203 |
464 |
|
465 |
%patch1 |
466 |
%patch2 |
467 |
%patch3 |
468 |
%patch4 |
469 |
%patch5 |
470 |
%patch6 |
471 |
%patch7 |
472 |
%patch11 |
473 |
|
474 |
# s390 build fixes |
475 |
%ifarch s390 |
476 |
%patch100 |
477 |
%patch102 |
478 |
%endif |
479 |
|
480 |
%ifarch ppc %{power64} |
481 |
# PPC fixes |
482 |
%patch103 |
483 |
%endif |
484 |
|
485 |
# Extract systemtap tapsets |
486 |
%if %{with_systemtap} |
487 |
|
488 |
tar xzf %{SOURCE8} |
489 |
|
490 |
%patch300 |
491 |
|
492 |
for file in tapset/*.in; do |
493 |
|
494 |
OUTPUT_FILE=`echo $file | sed -e s:%{javaver}\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g` |
495 |
sed -e s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/libjvm.so:g $file > $file.1 |
496 |
# TODO find out which architectures other than i686 have a client vm |
497 |
%ifarch %{ix86} |
498 |
sed -e s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client/libjvm.so:g $file.1 > $OUTPUT_FILE |
499 |
%else |
500 |
sed -e '/@ABS_CLIENT_LIBJVM_SO@/d' $file.1 > $OUTPUT_FILE |
501 |
%endif |
502 |
sed -i -e s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir}:g $OUTPUT_FILE |
503 |
sed -i -e s:@INSTALL_ARCH_DIR@:%{archinstall}:g $OUTPUT_FILE |
504 |
|
505 |
done |
506 |
|
507 |
%endif |
508 |
|
509 |
# Prepare desktop files |
510 |
for file in %{SOURCE9} %{SOURCE10} ; do |
511 |
OUTPUT_FILE=`basename $file | sed -e s:\.in$::g` |
512 |
sed -e s:#JAVA_HOME#:%{sdkbindir}:g $file > $OUTPUT_FILE |
513 |
sed -i -e s:#JRE_HOME#:%{jrebindir}:g $OUTPUT_FILE |
514 |
sed -i -e s:#ARCH#:%{version}-%{release}.%{_arch}:g $OUTPUT_FILE |
515 |
done |
516 |
|
517 |
%build |
518 |
# How many cpu's do we have? |
519 |
export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :` |
520 |
export NUM_PROC=${NUM_PROC:-1} |
521 |
|
522 |
# Build IcedTea and OpenJDK. |
523 |
%ifarch s390x sparc64 alpha %{power64} %{aarch64} |
524 |
export ARCH_DATA_MODEL=64 |
525 |
%endif |
526 |
%ifarch alpha |
527 |
export CFLAGS="$CFLAGS -mieee" |
528 |
%endif |
529 |
|
530 |
export CFLAGS="$CFLAGS -fstack-protector-strong" |
531 |
|
532 |
(cd jdk8/common/autoconf |
533 |
bash ./autogen.sh |
534 |
) |
535 |
|
536 |
mkdir -p %{buildoutputdir} |
537 |
|
538 |
pushd %{buildoutputdir} |
539 |
|
540 |
bash ../../configure \ |
541 |
%ifnarch %{jit_arches} |
542 |
--with-jvm-variants=zero \ |
543 |
%endif |
544 |
--disable-zip-debug-info \ |
545 |
--with-milestone="fcs" \ |
546 |
%ifnarch %{aarch64} |
547 |
--with-update-version=%{updatever} \ |
548 |
--with-build-number=%{buildver} \ |
549 |
%else |
550 |
--with-build-number=%{aarch64_buildver} \ |
551 |
--with-user-release-suffix="aarch64-%{aarch64_hg_tag}" \ |
552 |
%endif |
553 |
--with-boot-jdk=/usr/lib/jvm/java-openjdk \ |
554 |
--with-debug-level=%{debugbuild} \ |
555 |
--enable-unlimited-crypto \ |
556 |
--with-zlib=system \ |
557 |
--with-libjpeg=system \ |
558 |
--with-giflib=system \ |
559 |
--with-libpng=system \ |
560 |
--with-lcms=system \ |
561 |
--with-stdc++lib=dynamic \ |
562 |
--with-num-cores="$NUM_PROC" \ |
563 |
--with-extra-cflags="-fno-devirtualize" \ |
564 |
--with-extra-cxxflags="-fno-devirtualize" |
565 |
|
566 |
# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist |
567 |
# disables FDS for all build configs and reverts to pre-FDS make logic. |
568 |
# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says |
569 |
# ignore all the other logic about which debug options and just do '-g'. |
570 |
|
571 |
make \ |
572 |
DEBUG_BINARIES=true \ |
573 |
STRIP_POLICY=no_strip \ |
574 |
POST_STRIP_CMD="" \ |
575 |
LOG=trace \ |
576 |
all |
577 |
|
578 |
# the build (erroneously) removes read permissions from some jars |
579 |
# this is a regression in OpenJDK 7 (our compiler): |
580 |
# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437 |
581 |
find images/j2sdk-image -iname '*.jar' -exec chmod ugo+r {} \; |
582 |
chmod ugo+r images/j2sdk-image/lib/ct.sym |
583 |
|
584 |
# remove redundant *diz and *debuginfo files |
585 |
find images/j2sdk-image -iname '*.diz' -exec rm {} \; |
586 |
find images/j2sdk-image -iname '*.debuginfo' -exec rm {} \; |
587 |
|
588 |
popd >& /dev/null |
589 |
|
590 |
# Install nss.cfg right away as we will be using the JRE above |
591 |
export JAVA_HOME=$(pwd)/%{buildoutputdir}/images/j2sdk-image |
592 |
|
593 |
# Install nss.cfg right away as we will be using the JRE above |
594 |
install -m 644 %{SOURCE11} $JAVA_HOME/jre/lib/security/ |
595 |
|
596 |
|
597 |
# Use system-wide tzdata |
598 |
rm $JAVA_HOME/jre/lib/tzdb.dat |
599 |
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat |
600 |
|
601 |
# Check unlimited policy has been used |
602 |
$JAVA_HOME/bin/javac -d . %{SOURCE13} |
603 |
$JAVA_HOME/bin/java TestCryptoLevel |
604 |
|
605 |
# Check debug symbols are present and can identify code |
606 |
SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so" |
607 |
if [ -f "$SERVER_JVM" ] ; then |
608 |
nm -aCl "$SERVER_JVM" | grep javaCalls.cpp |
609 |
fi |
610 |
CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so" |
611 |
if [ -f "$CLIENT_JVM" ] ; then |
612 |
nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp |
613 |
fi |
614 |
ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so" |
615 |
if [ -f "$ZERO_JVM" ] ; then |
616 |
nm -aCl "$ZERO_JVM" | grep javaCalls.cpp |
617 |
fi |
618 |
|
619 |
%install |
620 |
rm -rf $RPM_BUILD_ROOT |
621 |
STRIP_KEEP_SYMTAB=libjvm* |
622 |
|
623 |
# Install symlink to default soundfont |
624 |
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio |
625 |
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/audio |
626 |
ln -s %{_datadir}/soundfonts/default.sf2 |
627 |
popd |
628 |
|
629 |
pushd %{buildoutputdir}/images/j2sdk-image |
630 |
|
631 |
#install jsa directories so we can owe them |
632 |
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ |
633 |
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ |
634 |
|
635 |
# Install main files. |
636 |
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} |
637 |
cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} |
638 |
install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} |
639 |
cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} |
640 |
|
641 |
%if %{with_systemtap} |
642 |
# Install systemtap support files. |
643 |
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset |
644 |
cp -a $RPM_BUILD_DIR/%{uniquesuffix}/tapset/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/tapset/ |
645 |
install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir} |
646 |
pushd $RPM_BUILD_ROOT%{tapsetdir} |
647 |
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{sdkdir}/tapset %{tapsetdir}) |
648 |
ln -sf $RELATIVE/*.stp . |
649 |
popd |
650 |
%endif |
651 |
|
652 |
# Install cacerts symlink. |
653 |
rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security/cacerts |
654 |
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir}/lib/security |
655 |
RELATIVE=$(%{abs2rel} %{_sysconfdir}/pki/java \ |
656 |
%{_jvmdir}/%{jredir}/lib/security) |
657 |
ln -sf $RELATIVE/cacerts . |
658 |
popd |
659 |
|
660 |
# Install extension symlinks. |
661 |
install -d -m 755 $RPM_BUILD_ROOT%{jvmjardir} |
662 |
pushd $RPM_BUILD_ROOT%{jvmjardir} |
663 |
RELATIVE=$(%{abs2rel} %{_jvmdir}/%{jredir}/lib %{jvmjardir}) |
664 |
ln -sf $RELATIVE/jsse.jar jsse-%{version}.jar |
665 |
ln -sf $RELATIVE/jce.jar jce-%{version}.jar |
666 |
ln -sf $RELATIVE/rt.jar jndi-%{version}.jar |
667 |
ln -sf $RELATIVE/rt.jar jndi-ldap-%{version}.jar |
668 |
ln -sf $RELATIVE/rt.jar jndi-cos-%{version}.jar |
669 |
ln -sf $RELATIVE/rt.jar jndi-rmi-%{version}.jar |
670 |
ln -sf $RELATIVE/rt.jar jaas-%{version}.jar |
671 |
ln -sf $RELATIVE/rt.jar jdbc-stdext-%{version}.jar |
672 |
ln -sf jdbc-stdext-%{version}.jar jdbc-stdext-3.0.jar |
673 |
ln -sf $RELATIVE/rt.jar sasl-%{version}.jar |
674 |
for jar in *-%{version}.jar |
675 |
do |
676 |
if [ x%{version} != x%{javaver} ] |
677 |
then |
678 |
ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|-%{javaver}.jar|g") |
679 |
fi |
680 |
ln -sf $jar $(echo $jar | sed "s|-%{version}.jar|.jar|g") |
681 |
done |
682 |
popd |
683 |
|
684 |
# Install JCE policy symlinks. |
685 |
install -d -m 755 $RPM_BUILD_ROOT%{_jvmprivdir}/%{uniquesuffix}/jce/vanilla |
686 |
|
687 |
# Install versioned symlinks. |
688 |
pushd $RPM_BUILD_ROOT%{_jvmdir} |
689 |
ln -sf %{jredir} %{jrelnk} |
690 |
popd |
691 |
|
692 |
pushd $RPM_BUILD_ROOT%{_jvmjardir} |
693 |
ln -sf %{sdkdir} %{jrelnk} |
694 |
popd |
695 |
|
696 |
# Remove javaws man page |
697 |
rm -f man/man1/javaws* |
698 |
|
699 |
# Install man pages. |
700 |
install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1 |
701 |
for manpage in man/man1/* |
702 |
do |
703 |
# Convert man pages to UTF8 encoding. |
704 |
iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp |
705 |
mv -f $manpage.tmp $manpage |
706 |
install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \ |
707 |
$manpage .1)-%{uniquesuffix}.1 |
708 |
done |
709 |
|
710 |
# Install demos and samples. |
711 |
cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} |
712 |
mkdir -p sample/rmi |
713 |
mv bin/java-rmi.cgi sample/rmi |
714 |
cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir} |
715 |
|
716 |
popd |
717 |
|
718 |
|
719 |
# Install Javadoc documentation. |
720 |
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} |
721 |
cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir} |
722 |
|
723 |
# Install icons and menu entries. |
724 |
for s in 16 24 32 48 ; do |
725 |
install -D -p -m 644 \ |
726 |
jdk8/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \ |
727 |
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}.png |
728 |
done |
729 |
|
730 |
# Install desktop files. |
731 |
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps} |
732 |
for e in jconsole policytool ; do |
733 |
desktop-file-install --vendor=%{uniquesuffix} --mode=644 \ |
734 |
--dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop |
735 |
done |
736 |
|
737 |
# Install /etc/.java/.systemPrefs/ directory |
738 |
# See https://bugzilla.redhat.com/show_bug.cgi?id=741821 |
739 |
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs |
740 |
|
741 |
# Find JRE directories. |
742 |
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type d \ |
743 |
| grep -v jre/lib/security \ |
744 |
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \ |
745 |
> %{name}.files-headless |
746 |
# Find JRE files. |
747 |
find $RPM_BUILD_ROOT%{_jvmdir}/%{jredir} -type f -o -type l \ |
748 |
| grep -v jre/lib/security \ |
749 |
| sed 's|'$RPM_BUILD_ROOT'||' \ |
750 |
> %{name}.files.all |
751 |
#split %{name}.files to %{name}.files-headless and %{name}.files |
752 |
#see https://bugzilla.redhat.com/show_bug.cgi?id=875408 |
753 |
NOT_HEADLESS=\ |
754 |
"%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjsoundalsa.so |
755 |
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libpulse-java.so |
756 |
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libsplashscreen.so |
757 |
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libawt_xawt.so |
758 |
%{_jvmdir}/%{uniquesuffix}/jre/lib/%{archinstall}/libjawt.so" |
759 |
#filter %{name}.files from %{name}.files.all to %{name}.files-headless |
760 |
ALL=`cat %{name}.files.all` |
761 |
for file in $ALL ; do |
762 |
INLCUDE="NO" ; |
763 |
for blacklist in $NOT_HEADLESS ; do |
764 |
#we can not match normally, because rpmbuild will evaluate !0 result as script failure |
765 |
q=`expr match "$file" "$blacklist"` || : |
766 |
l=`expr length "$blacklist"` || : |
767 |
if [ $q -eq $l ]; then |
768 |
INLCUDE="YES" ; |
769 |
fi; |
770 |
done |
771 |
if [ "x$INLCUDE" = "xNO" ]; then |
772 |
echo "$file" >> %{name}.files-headless |
773 |
else |
774 |
echo "$file" >> %{name}.files |
775 |
fi |
776 |
done |
777 |
# Find demo directories. |
778 |
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ |
779 |
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample -type d \ |
780 |
| sed 's|'$RPM_BUILD_ROOT'|%dir |' \ |
781 |
> %{name}-demo.files |
782 |
|
783 |
# FIXME: remove SONAME entries from demo DSOs. See |
784 |
# https://bugzilla.redhat.com/show_bug.cgi?id=436497 |
785 |
|
786 |
# Find non-documentation demo files. |
787 |
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ |
788 |
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \ |
789 |
-type f -o -type l | sort \ |
790 |
| grep -v README \ |
791 |
| sed 's|'$RPM_BUILD_ROOT'||' \ |
792 |
>> %{name}-demo.files |
793 |
# Find documentation demo files. |
794 |
find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/demo \ |
795 |
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir}/sample \ |
796 |
-type f -o -type l | sort \ |
797 |
| grep README \ |
798 |
| sed 's|'$RPM_BUILD_ROOT'||' \ |
799 |
| sed 's|^|%doc |' \ |
800 |
>> %{name}-demo.files |
801 |
|
802 |
# intentionally after the files generation, as it goes to separate package |
803 |
# Create links which leads to separately installed java-atk-bridge and allow configuration |
804 |
# links points to java-atk-wrapper - an dependence |
805 |
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/%{archinstall} |
806 |
ln -s %{syslibdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so |
807 |
popd |
808 |
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ext |
809 |
ln -s %{syslibdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar |
810 |
popd |
811 |
pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/lib/ |
812 |
echo "#Config file to enable java-atk-wrapper" > accessibility.properties |
813 |
echo "" >> accessibility.properties |
814 |
echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties |
815 |
echo "" >> accessibility.properties |
816 |
popd |
817 |
|
818 |
%pretrans headless -p <lua> |
819 |
-- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue |
820 |
|
821 |
local posix = require "posix" |
822 |
|
823 |
local currentjvm = "%{uniquesuffix}" |
824 |
local jvmdir = "%{_jvmdir}" |
825 |
local jvmDestdir = jvmdir |
826 |
local origname = "%{name}" |
827 |
local origjavaver = "%{javaver}" |
828 |
--trasnform substitute names to lua patterns |
829 |
--all percentages must be doubled for case of RPM escapingg |
830 |
local name = string.gsub(string.gsub(origname, "%%-", "%%%%-"), "%%.", "%%%%.") |
831 |
local javaver = string.gsub(origjavaver, "%%.", "%%%%.") |
832 |
local arch ="%{_arch}" |
833 |
local debug = false; |
834 |
|
835 |
local jvms = { } |
836 |
|
837 |
local caredFiles = {"jre/lib/calendars.properties", |
838 |
"jre/lib/content-types.properties", |
839 |
"jre/lib/flavormap.properties", |
840 |
"jre/lib/logging.properties", |
841 |
"jre/lib/net.properties", |
842 |
"jre/lib/psfontj2d.properties", |
843 |
"jre/lib/sound.properties", |
844 |
"jre/lib/tz.properties", |
845 |
"jre/lib/deployment.properties", |
846 |
"jre/lib/deployment.config", |
847 |
"jre/lib/security/US_export_policy.jar", |
848 |
"jre/lib/security/java.policy", |
849 |
"jre/lib/security/java.security", |
850 |
"jre/lib/security/local_policy.jar", |
851 |
"jre/lib/security/nss.cfg,", |
852 |
"jre/lib/ext"} |
853 |
|
854 |
function splitToTable(source, pattern) |
855 |
local i1 = string.gmatch(source, pattern) |
856 |
local l1 = {} |
857 |
for i in i1 do |
858 |
table.insert(l1, i) |
859 |
end |
860 |
return l1 |
861 |
end |
862 |
|
863 |
if (debug) then |
864 |
print("started") |
865 |
end; |
866 |
|
867 |
foundJvms = posix.dir(jvmdir); |
868 |
if (foundJvms == nil) then |
869 |
if (debug) then |
870 |
print("no, or nothing in "..jvmdir.." exit") |
871 |
end; |
872 |
return |
873 |
end |
874 |
|
875 |
if (debug) then |
876 |
print("found "..#foundJvms.."jvms") |
877 |
end; |
878 |
|
879 |
for i,p in pairs(foundJvms) do |
880 |
-- regex similar to %{_jvmdir}/%{name}-%{javaver}*%{_arch} bash command |
881 |
--all percentages must be doubled for case of RPM escapingg |
882 |
if (string.find(p, name.."%%-"..javaver..".*"..arch) ~= nil ) then |
883 |
if (debug) then |
884 |
print("matched: "..p) |
885 |
end; |
886 |
if (currentjvm == p) then |
887 |
if (debug) then |
888 |
print("this jdk is already installed. exiting lua script") |
889 |
end; |
890 |
return |
891 |
end ; |
892 |
table.insert(jvms, p) |
893 |
else |
894 |
if (debug) then |
895 |
print("NOT matched: "..p) |
896 |
end; |
897 |
end |
898 |
end |
899 |
|
900 |
if (#jvms <=0) then |
901 |
if (debug) then |
902 |
print("no matching jdk in "..jvmdir.." exit") |
903 |
end; |
904 |
return |
905 |
end; |
906 |
|
907 |
if (debug) then |
908 |
print("matched "..#jvms.." jdk in "..jvmdir) |
909 |
end; |
910 |
|
911 |
--full names are like java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64 |
912 |
table.sort(jvms , function(a,b) |
913 |
-- version-sort |
914 |
-- split on non word: . - |
915 |
local l1 = splitToTable(a, "[^%.-]+") |
916 |
local l2 = splitToTable(b, "[^%.-]+") |
917 |
for x = 1, math.min(#l1, #l2) do |
918 |
local l1x = tonumber(l1[x]) |
919 |
local l2x = tonumber(l2[x]) |
920 |
if (l1x ~= nil and l2x ~= nil)then |
921 |
--if hunks are numbers, go with them |
922 |
if (l1x < l2x) then return true; end |
923 |
if (l1x > l2x) then return false; end |
924 |
else |
925 |
if (l1[x] < l2[x]) then return true; end |
926 |
if (l1[x] > l2[x]) then return false; end |
927 |
end |
928 |
-- if hunks are equals then move to another pair of hunks |
929 |
end |
930 |
return a<b |
931 |
|
932 |
end) |
933 |
|
934 |
if (debug) then |
935 |
print("sorted lsit of jvms") |
936 |
for i,file in pairs(jvms) do |
937 |
print(file) |
938 |
end |
939 |
end |
940 |
|
941 |
latestjvm = jvms[#jvms] |
942 |
|
943 |
|
944 |
for i,file in pairs(caredFiles) do |
945 |
local SOURCE=jvmdir.."/"..latestjvm.."/"..file |
946 |
local DEST=jvmDestdir.."/"..currentjvm.."/"..file |
947 |
if (debug) then |
948 |
print("going to copy "..SOURCE) |
949 |
print("to "..DEST) |
950 |
end; |
951 |
local stat1 = posix.stat(SOURCE, "type"); |
952 |
if (stat1 ~= nil) then |
953 |
if (debug) then |
954 |
print(SOURCE.." exists") |
955 |
end; |
956 |
local s = "" |
957 |
local dirs = splitToTable(DEST, "[^/]+") |
958 |
for i,d in pairs(dirs) do |
959 |
if (i == #dirs) then |
960 |
break |
961 |
end |
962 |
s = s.."/"..d |
963 |
local stat2 = posix.stat(s, "type"); |
964 |
if (stat2 == nil) then |
965 |
if (debug) then |
966 |
print(s.." does not exists, creating") |
967 |
end; |
968 |
posix.mkdir(s) |
969 |
else |
970 |
if (debug) then |
971 |
print(s.." exists,not creating") |
972 |
end; |
973 |
end |
974 |
end |
975 |
-- Copy with -a to keep everything intact |
976 |
local exe = "cp".." -ar "..SOURCE.." "..DEST |
977 |
if (debug) then |
978 |
print("executing "..exe) |
979 |
end; |
980 |
os.execute(exe) |
981 |
else |
982 |
if (debug) then |
983 |
print(SOURCE.." does not exists") |
984 |
end; |
985 |
end |
986 |
end |
987 |
|
988 |
|
989 |
%post headless |
990 |
# FIXME: identical binaries are copied, not linked. This needs to be |
991 |
# fixed upstream. |
992 |
%ifarch %{jit_arches} |
993 |
#see https://bugzilla.redhat.com/show_bug.cgi?id=513605 |
994 |
%{jrebindir}/java -Xshare:dump >/dev/null 2>/dev/null |
995 |
%endif |
996 |
|
997 |
ext=%{_extension} |
998 |
alternatives \ |
999 |
--install %{_bindir}/java java %{jrebindir}/java %{priority} \ |
1000 |
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir} \ |
1001 |
--slave %{_jvmjardir}/jre jre_exports %{_jvmjardir}/%{jrelnk} \ |
1002 |
--slave %{_bindir}/jjs jjs %{jrebindir}/jjs \ |
1003 |
--slave %{_bindir}/keytool keytool %{jrebindir}/keytool \ |
1004 |
--slave %{_bindir}/orbd orbd %{jrebindir}/orbd \ |
1005 |
--slave %{_bindir}/pack200 pack200 %{jrebindir}/pack200 \ |
1006 |
--slave %{_bindir}/rmid rmid %{jrebindir}/rmid \ |
1007 |
--slave %{_bindir}/rmiregistry rmiregistry %{jrebindir}/rmiregistry \ |
1008 |
--slave %{_bindir}/servertool servertool %{jrebindir}/servertool \ |
1009 |
--slave %{_bindir}/tnameserv tnameserv %{jrebindir}/tnameserv \ |
1010 |
--slave %{_bindir}/unpack200 unpack200 %{jrebindir}/unpack200 \ |
1011 |
--slave %{_mandir}/man1/java.1$ext java.1$ext \ |
1012 |
%{_mandir}/man1/java-%{uniquesuffix}.1$ext \ |
1013 |
--slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \ |
1014 |
%{_mandir}/man1/jjs-%{uniquesuffix}.1$ext \ |
1015 |
--slave %{_bindir}/policytool policytool %{jrebindir}/policytool \ |
1016 |
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \ |
1017 |
%{_mandir}/man1/keytool-%{uniquesuffix}.1$ext \ |
1018 |
--slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \ |
1019 |
%{_mandir}/man1/orbd-%{uniquesuffix}.1$ext \ |
1020 |
--slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \ |
1021 |
%{_mandir}/man1/pack200-%{uniquesuffix}.1$ext \ |
1022 |
--slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \ |
1023 |
%{_mandir}/man1/rmid-%{uniquesuffix}.1$ext \ |
1024 |
--slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \ |
1025 |
%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1$ext \ |
1026 |
--slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \ |
1027 |
%{_mandir}/man1/servertool-%{uniquesuffix}.1$ext \ |
1028 |
--slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \ |
1029 |
%{_mandir}/man1/tnameserv-%{uniquesuffix}.1$ext \ |
1030 |
--slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \ |
1031 |
%{_mandir}/man1/unpack200-%{uniquesuffix}.1$ext |
1032 |
|
1033 |
for X in %{origin} %{javaver} ; do |
1034 |
alternatives \ |
1035 |
--install %{_jvmdir}/jre-"$X" \ |
1036 |
jre_"$X" %{_jvmdir}/%{jredir} %{priority} \ |
1037 |
--slave %{_jvmjardir}/jre-"$X" \ |
1038 |
jre_"$X"_exports %{_jvmjardir}/%{jredir} |
1039 |
done |
1040 |
|
1041 |
update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} %{priority} \ |
1042 |
--slave %{_jvmjardir}/jre-%{javaver} jre_%{javaver}_%{origin}_exports %{jvmjardir} |
1043 |
|
1044 |
exit 0 |
1045 |
|
1046 |
|
1047 |
%postun headless |
1048 |
alternatives --remove java %{jrebindir}/java |
1049 |
alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir} |
1050 |
alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir} |
1051 |
alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk} |
1052 |
|
1053 |
|
1054 |
%post devel |
1055 |
ext=%{_extension} |
1056 |
alternatives \ |
1057 |
--install %{_bindir}/javac javac %{sdkbindir}/javac %{priority} \ |
1058 |
--slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir} \ |
1059 |
--slave %{_jvmjardir}/java java_sdk_exports %{_jvmjardir}/%{sdkdir} \ |
1060 |
--slave %{_bindir}/appletviewer appletviewer %{sdkbindir}/appletviewer \ |
1061 |
--slave %{_bindir}/extcheck extcheck %{sdkbindir}/extcheck \ |
1062 |
--slave %{_bindir}/idlj idlj %{sdkbindir}/idlj \ |
1063 |
--slave %{_bindir}/jar jar %{sdkbindir}/jar \ |
1064 |
--slave %{_bindir}/jarsigner jarsigner %{sdkbindir}/jarsigner \ |
1065 |
--slave %{_bindir}/javadoc javadoc %{sdkbindir}/javadoc \ |
1066 |
--slave %{_bindir}/javah javah %{sdkbindir}/javah \ |
1067 |
--slave %{_bindir}/javap javap %{sdkbindir}/javap \ |
1068 |
--slave %{_bindir}/jcmd jcmd %{sdkbindir}/jcmd \ |
1069 |
--slave %{_bindir}/jconsole jconsole %{sdkbindir}/jconsole \ |
1070 |
--slave %{_bindir}/jdb jdb %{sdkbindir}/jdb \ |
1071 |
--slave %{_bindir}/jdeps jdeps %{sdkbindir}/jdeps \ |
1072 |
--slave %{_bindir}/jhat jhat %{sdkbindir}/jhat \ |
1073 |
--slave %{_bindir}/jinfo jinfo %{sdkbindir}/jinfo \ |
1074 |
--slave %{_bindir}/jmap jmap %{sdkbindir}/jmap \ |
1075 |
--slave %{_bindir}/jps jps %{sdkbindir}/jps \ |
1076 |
--slave %{_bindir}/jrunscript jrunscript %{sdkbindir}/jrunscript \ |
1077 |
--slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir}/jsadebugd \ |
1078 |
--slave %{_bindir}/jstack jstack %{sdkbindir}/jstack \ |
1079 |
--slave %{_bindir}/jstat jstat %{sdkbindir}/jstat \ |
1080 |
--slave %{_bindir}/jstatd jstatd %{sdkbindir}/jstatd \ |
1081 |
--slave %{_bindir}/native2ascii native2ascii %{sdkbindir}/native2ascii \ |
1082 |
--slave %{_bindir}/rmic rmic %{sdkbindir}/rmic \ |
1083 |
--slave %{_bindir}/schemagen schemagen %{sdkbindir}/schemagen \ |
1084 |
--slave %{_bindir}/serialver serialver %{sdkbindir}/serialver \ |
1085 |
--slave %{_bindir}/wsgen wsgen %{sdkbindir}/wsgen \ |
1086 |
--slave %{_bindir}/wsimport wsimport %{sdkbindir}/wsimport \ |
1087 |
--slave %{_bindir}/xjc xjc %{sdkbindir}/xjc \ |
1088 |
--slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \ |
1089 |
%{_mandir}/man1/appletviewer-%{uniquesuffix}.1$ext \ |
1090 |
--slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \ |
1091 |
%{_mandir}/man1/extcheck-%{uniquesuffix}.1$ext \ |
1092 |
--slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \ |
1093 |
%{_mandir}/man1/idlj-%{uniquesuffix}.1$ext \ |
1094 |
--slave %{_mandir}/man1/jar.1$ext jar.1$ext \ |
1095 |
%{_mandir}/man1/jar-%{uniquesuffix}.1$ext \ |
1096 |
--slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \ |
1097 |
%{_mandir}/man1/jarsigner-%{uniquesuffix}.1$ext \ |
1098 |
--slave %{_mandir}/man1/javac.1$ext javac.1$ext \ |
1099 |
%{_mandir}/man1/javac-%{uniquesuffix}.1$ext \ |
1100 |
--slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \ |
1101 |
%{_mandir}/man1/javadoc-%{uniquesuffix}.1$ext \ |
1102 |
--slave %{_mandir}/man1/javah.1$ext javah.1$ext \ |
1103 |
%{_mandir}/man1/javah-%{uniquesuffix}.1$ext \ |
1104 |
--slave %{_mandir}/man1/javap.1$ext javap.1$ext \ |
1105 |
%{_mandir}/man1/javap-%{uniquesuffix}.1$ext \ |
1106 |
--slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \ |
1107 |
%{_mandir}/man1/jcmd-%{uniquesuffix}.1$ext \ |
1108 |
--slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \ |
1109 |
%{_mandir}/man1/jconsole-%{uniquesuffix}.1$ext \ |
1110 |
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \ |
1111 |
%{_mandir}/man1/jdb-%{uniquesuffix}.1$ext \ |
1112 |
--slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \ |
1113 |
%{_mandir}/man1/jdeps-%{uniquesuffix}.1$ext \ |
1114 |
--slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \ |
1115 |
%{_mandir}/man1/jhat-%{uniquesuffix}.1$ext \ |
1116 |
--slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \ |
1117 |
%{_mandir}/man1/jinfo-%{uniquesuffix}.1$ext \ |
1118 |
--slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \ |
1119 |
%{_mandir}/man1/jmap-%{uniquesuffix}.1$ext \ |
1120 |
--slave %{_mandir}/man1/jps.1$ext jps.1$ext \ |
1121 |
%{_mandir}/man1/jps-%{uniquesuffix}.1$ext \ |
1122 |
--slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \ |
1123 |
%{_mandir}/man1/jrunscript-%{uniquesuffix}.1$ext \ |
1124 |
--slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \ |
1125 |
%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1$ext \ |
1126 |
--slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \ |
1127 |
%{_mandir}/man1/jstack-%{uniquesuffix}.1$ext \ |
1128 |
--slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \ |
1129 |
%{_mandir}/man1/jstat-%{uniquesuffix}.1$ext \ |
1130 |
--slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \ |
1131 |
%{_mandir}/man1/jstatd-%{uniquesuffix}.1$ext \ |
1132 |
--slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \ |
1133 |
%{_mandir}/man1/native2ascii-%{uniquesuffix}.1$ext \ |
1134 |
--slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \ |
1135 |
%{_mandir}/man1/policytool-%{uniquesuffix}.1$ext \ |
1136 |
--slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \ |
1137 |
%{_mandir}/man1/rmic-%{uniquesuffix}.1$ext \ |
1138 |
--slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \ |
1139 |
%{_mandir}/man1/schemagen-%{uniquesuffix}.1$ext \ |
1140 |
--slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \ |
1141 |
%{_mandir}/man1/serialver-%{uniquesuffix}.1$ext \ |
1142 |
--slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \ |
1143 |
%{_mandir}/man1/wsgen-%{uniquesuffix}.1$ext \ |
1144 |
--slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \ |
1145 |
%{_mandir}/man1/wsimport-%{uniquesuffix}.1$ext \ |
1146 |
--slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \ |
1147 |
%{_mandir}/man1/xjc-%{uniquesuffix}.1$ext |
1148 |
|
1149 |
for X in %{origin} %{javaver} ; do |
1150 |
alternatives \ |
1151 |
--install %{_jvmdir}/java-"$X" \ |
1152 |
java_sdk_"$X" %{_jvmdir}/%{sdkdir} %{priority} \ |
1153 |
--slave %{_jvmjardir}/java-"$X" \ |
1154 |
java_sdk_"$X"_exports %{_jvmjardir}/%{sdkdir} |
1155 |
done |
1156 |
|
1157 |
update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} %{priority} \ |
1158 |
--slave %{_jvmjardir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin}_exports %{_jvmjardir}/%{sdkdir} |
1159 |
|
1160 |
exit 0 |
1161 |
|
1162 |
%postun devel |
1163 |
alternatives --remove javac %{sdkbindir}/javac |
1164 |
alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir} |
1165 |
alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir} |
1166 |
alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir} |
1167 |
|
1168 |
%post javadoc |
1169 |
alternatives \ |
1170 |
--install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir}/api \ |
1171 |
%{priority} |
1172 |
|
1173 |
exit 0 |
1174 |
|
1175 |
%postun javadoc |
1176 |
alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir}/api |
1177 |
|
1178 |
exit 0 |
1179 |
|
1180 |
|
1181 |
%files -f %{name}.files |
1182 |
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}.png |
1183 |
%{_datadir}/applications/*policytool.desktop |
1184 |
|
1185 |
# important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue |
1186 |
# all config/norepalce files (and more) have to be declared in pretrans. See pretrans |
1187 |
%files headless -f %{name}.files-headless |
1188 |
%defattr(-,root,root,-) |
1189 |
%doc %{buildoutputdir}/images/j2sdk-image/jre/ASSEMBLY_EXCEPTION |
1190 |
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE |
1191 |
%doc %{buildoutputdir}/images/j2sdk-image/jre/THIRD_PARTY_README |
1192 |
%dir %{_jvmdir}/%{sdkdir} |
1193 |
%{_jvmdir}/%{jrelnk} |
1194 |
%{_jvmjardir}/%{jrelnk} |
1195 |
%{_jvmprivdir}/* |
1196 |
%{jvmjardir} |
1197 |
%dir %{_jvmdir}/%{jredir}/lib/security |
1198 |
%{_jvmdir}/%{jredir}/lib/security/cacerts |
1199 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/US_export_policy.jar |
1200 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/local_policy.jar |
1201 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.policy |
1202 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/java.security |
1203 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/blacklisted.certs |
1204 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/logging.properties |
1205 |
%{_mandir}/man1/java-%{uniquesuffix}.1* |
1206 |
%{_mandir}/man1/jjs-%{uniquesuffix}.1* |
1207 |
%{_mandir}/man1/keytool-%{uniquesuffix}.1* |
1208 |
%{_mandir}/man1/orbd-%{uniquesuffix}.1* |
1209 |
%{_mandir}/man1/pack200-%{uniquesuffix}.1* |
1210 |
%{_mandir}/man1/rmid-%{uniquesuffix}.1* |
1211 |
%{_mandir}/man1/rmiregistry-%{uniquesuffix}.1* |
1212 |
%{_mandir}/man1/servertool-%{uniquesuffix}.1* |
1213 |
%{_mandir}/man1/tnameserv-%{uniquesuffix}.1* |
1214 |
%{_mandir}/man1/unpack200-%{uniquesuffix}.1* |
1215 |
%config(noreplace) %{_jvmdir}/%{jredir}/lib/security/nss.cfg |
1216 |
%{_jvmdir}/%{jredir}/lib/audio/ |
1217 |
%ifarch %{jit_arches} |
1218 |
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/server/classes.jsa |
1219 |
%attr(664, root, root) %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/client/classes.jsa |
1220 |
%endif |
1221 |
|
1222 |
%{_jvmdir}/%{jredir}/lib/%{archinstall}/server/ |
1223 |
%{_jvmdir}/%{jredir}/lib/%{archinstall}/client/ |
1224 |
|
1225 |
%files devel |
1226 |
%defattr(-,root,root,-) |
1227 |
%doc %{buildoutputdir}/images/j2sdk-image/ASSEMBLY_EXCEPTION |
1228 |
%doc %{buildoutputdir}/images/j2sdk-image/LICENSE |
1229 |
%doc %{buildoutputdir}/images/j2sdk-image/THIRD_PARTY_README |
1230 |
%dir %{_jvmdir}/%{sdkdir}/bin |
1231 |
%dir %{_jvmdir}/%{sdkdir}/include |
1232 |
%dir %{_jvmdir}/%{sdkdir}/lib |
1233 |
%if %{with_systemtap} |
1234 |
%dir %{_jvmdir}/%{sdkdir}/tapset |
1235 |
%endif |
1236 |
%{_jvmdir}/%{sdkdir}/bin/* |
1237 |
%{_jvmdir}/%{sdkdir}/include/* |
1238 |
%{_jvmdir}/%{sdkdir}/lib/* |
1239 |
%if %{with_systemtap} |
1240 |
%{_jvmdir}/%{sdkdir}/tapset/*.stp |
1241 |
%endif |
1242 |
%{_jvmjardir}/%{sdkdir} |
1243 |
%{_datadir}/applications/*jconsole.desktop |
1244 |
%{_mandir}/man1/appletviewer-%{uniquesuffix}.1* |
1245 |
%{_mandir}/man1/extcheck-%{uniquesuffix}.1* |
1246 |
%{_mandir}/man1/idlj-%{uniquesuffix}.1* |
1247 |
%{_mandir}/man1/jar-%{uniquesuffix}.1* |
1248 |
%{_mandir}/man1/jarsigner-%{uniquesuffix}.1* |
1249 |
%{_mandir}/man1/javac-%{uniquesuffix}.1* |
1250 |
%{_mandir}/man1/javadoc-%{uniquesuffix}.1* |
1251 |
%{_mandir}/man1/javah-%{uniquesuffix}.1* |
1252 |
%{_mandir}/man1/javap-%{uniquesuffix}.1* |
1253 |
%{_mandir}/man1/jconsole-%{uniquesuffix}.1* |
1254 |
%{_mandir}/man1/jcmd-%{uniquesuffix}.1* |
1255 |
%{_mandir}/man1/jdb-%{uniquesuffix}.1* |
1256 |
%{_mandir}/man1/jdeps-%{uniquesuffix}.1* |
1257 |
%{_mandir}/man1/jhat-%{uniquesuffix}.1* |
1258 |
%{_mandir}/man1/jinfo-%{uniquesuffix}.1* |
1259 |
%{_mandir}/man1/jmap-%{uniquesuffix}.1* |
1260 |
%{_mandir}/man1/jps-%{uniquesuffix}.1* |
1261 |
%{_mandir}/man1/jrunscript-%{uniquesuffix}.1* |
1262 |
%{_mandir}/man1/jsadebugd-%{uniquesuffix}.1* |
1263 |
%{_mandir}/man1/jstack-%{uniquesuffix}.1* |
1264 |
%{_mandir}/man1/jstat-%{uniquesuffix}.1* |
1265 |
%{_mandir}/man1/jstatd-%{uniquesuffix}.1* |
1266 |
%{_mandir}/man1/native2ascii-%{uniquesuffix}.1* |
1267 |
%{_mandir}/man1/policytool-%{uniquesuffix}.1* |
1268 |
%{_mandir}/man1/rmic-%{uniquesuffix}.1* |
1269 |
%{_mandir}/man1/schemagen-%{uniquesuffix}.1* |
1270 |
%{_mandir}/man1/serialver-%{uniquesuffix}.1* |
1271 |
%{_mandir}/man1/wsgen-%{uniquesuffix}.1* |
1272 |
%{_mandir}/man1/wsimport-%{uniquesuffix}.1* |
1273 |
%{_mandir}/man1/xjc-%{uniquesuffix}.1* |
1274 |
%if %{with_systemtap} |
1275 |
%{tapsetroot} |
1276 |
%endif |
1277 |
|
1278 |
%files demo -f %{name}-demo.files |
1279 |
%defattr(-,root,root,-) |
1280 |
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE |
1281 |
|
1282 |
%files src |
1283 |
%defattr(-,root,root,-) |
1284 |
%doc README.src |
1285 |
%{_jvmdir}/%{sdkdir}/src.zip |
1286 |
|
1287 |
%files javadoc |
1288 |
%defattr(-,root,root,-) |
1289 |
%doc %{_javadocdir}/%{uniquejavadocdir} |
1290 |
%doc %{buildoutputdir}/images/j2sdk-image/jre/LICENSE |
1291 |
|
1292 |
%files accessibility |
1293 |
%{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so |
1294 |
%{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar |
1295 |
%{_jvmdir}/%{jredir}/lib/accessibility.properties |
1296 |
|