/[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 740710 - (show annotations) (download)
Tue Oct 14 23:03:34 2014 UTC (9 years, 6 months ago) by umeabot
File size: 43239 byte(s)
Second Mageia 5 Mass Rebuild
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}.3
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.2.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.2.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.2.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.2.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.2.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.2.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.2.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

  ViewVC Help
Powered by ViewVC 1.1.30