/[packages]/cauldron/java-1.8.0-openjdk/current/SPECS/java-1.8.0-openjdk.spec
ViewVC logotype

Contents of /cauldron/java-1.8.0-openjdk/current/SPECS/java-1.8.0-openjdk.spec

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.30