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

Contents of /updates/8/java-1.8.0-openjdk/current/SPECS/java-1.8.0-openjdk.spec

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1615477 - (show annotations) (download)
Tue Aug 18 22:32:22 2020 UTC (3 years, 8 months ago) by tv
Original Path: cauldron/java-1.8.0-openjdk/current/SPECS/java-1.8.0-openjdk.spec
File size: 90569 byte(s)
requires x11-font-type1 instead
1 %define _disable_ld_no_undefined 1
2
3 # RPM conditionals so as to be able to dynamically produce
4 # slowdebug/release builds. See:
5 # http://rpm.org/user_doc/conditional_builds.html
6 #
7 # Examples:
8 #
9 # Produce release *and* slowdebug builds on x86_64 (default):
10 # $ rpmbuild -ba java-1.8.0-openjdk.spec
11 #
12 # Produce only release builds (no slowdebug builds) on x86_64:
13 # $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
14 #
15 # Only produce a release build on x86_64:
16 # $ fedpkg mockbuild --without slowdebug
17 #
18 # Only produce a debug build on x86_64:
19 # $ fedpkg local --without release
20 #
21 # Enable slowdebug builds by default on relevant arches.
22 %bcond_without slowdebug
23 # Enable release builds by default on relevant arches.
24 %bcond_without release
25
26 # The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
27 # This fixes detailed NMT and other tools which need minimal debug info.
28 # See: https://bugzilla.redhat.com/show_bug.cgi?id=1520879
29 %global _find_debuginfo_opts -g
30
31 # note: parametrized macros are order-sensitive (unlike not-parametrized) even with normal macros
32 # also necessary when passing it as parameter to other macros. If not macro, then it is considered a switch
33 # see the difference between global and define:
34 # See https://github.com/rpm-software-management/rpm/issues/127 to comments at "pmatilai commented on Aug 18, 2017"
35 # (initiated in https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
36 %global debug_suffix_unquoted -slowdebug
37 # quoted one for shell operations
38 %global debug_suffix "%{debug_suffix_unquoted}"
39 %global normal_suffix ""
40
41 # if you want only debug build but providing java build only normal build but set normalbuild_parameter
42 %global debug_warning This package has full debug on. Install only in need and remove asap.
43 %global debug_on with full debug on
44 %global for_debug for packages with debug on
45
46 %if %{with release}
47 %global include_normal_build 1
48 %else
49 %global include_normal_build 0
50 %endif
51
52 %if %{include_normal_build}
53 %global build_loop1 %{normal_suffix}
54 %else
55 %global build_loop1 %{nil}
56 %endif
57
58 # We have hardcoded list of files, which is appearing in alternatives, and in files
59 # in alternatives those are slaves and master, very often triplicated by man pages
60 # in files all masters and slaves are ghosted
61 # the ghosts are here to allow installation via query like `dnf install /usr/bin/java`
62 # you can list those files, with appropriate sections: cat *.spec | grep -e --install -e --slave -e post_
63 # TODO - fix those hardcoded lists via single list
64 # those files ,must *NOT* be ghosted for *slowdebug* packages
65 # FIXME - if you are moving jshell or jlink or simialr, always modify all three sections
66 # you can check via headless and devels:
67 # rpm -ql --noghost java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
68 # == rpm -ql java-11-openjdk-headless-slowdebug-11.0.1.13-8.fc29.x86_64.rpm | grep bin
69 # != rpm -ql java-11-openjdk-headless-11.0.1.13-8.fc29.x86_64.rpm | grep bin
70 # similarly for other %%{_jvmdir}/{jre,java} and %%{_javadocdir}/{java,java-zip}
71 %define is_release_build() %( if [ "%{?1}" == "%{debug_suffix_unquoted}" ]; then echo "0" ; else echo "1"; fi )
72
73 # while JDK is a techpreview(is_system_jdk=0), some provides are turned off. Once jdk stops to be an techpreview, move it to 1
74 # as sytem JDK, we mean any JDK which can run whole system java stack without issues (like bytecode issues, module issues, dependencies...)
75 %global is_system_jdk 0
76
77 %global aarch64 aarch64 arm64 armv8
78 # we need to distinguish between big and little endian PPC64
79 %global ppc64le ppc64le
80 %global ppc64be ppc64 ppc64p7
81 %global multilib_arches %{power64} sparc64 x86_64
82 %global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
83 %global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64}
84 %global jfr_arches x86_64 sparcv9 sparc64 %{aarch64} %{power64}
85
86 # By default, we build a debug build during main build on JIT architectures
87 %if %{with slowdebug}
88 %ifarch %{jit_arches}
89 %ifnarch %{arm}
90 %global include_debug_build 1
91 %else
92 %global include_debug_build 0
93 %endif
94 %else
95 %global include_debug_build 0
96 %endif
97 %else
98 %global include_debug_build 0
99 %endif
100
101 %if %{include_debug_build}
102 %global build_loop2 %{debug_suffix}
103 %else
104 %global build_loop2 %{nil}
105 %endif
106
107 # if you disable both builds, then the build fails
108 %global build_loop %{build_loop1} %{build_loop2}
109 # note: that order: normal_suffix debug_suffix, in case of both enabled
110 # is expected in one single case at the end of the build
111 %global rev_build_loop %{build_loop2} %{build_loop1}
112
113 %ifarch %{jit_arches}
114 %global bootstrap_build 1
115 %else
116 %global bootstrap_build 1
117 %endif
118
119 %global bootstrap_targets images
120 %global release_targets images docs-zip
121 # No docs nor bootcycle for debug builds
122 %global debug_targets images
123
124 # This package fails to build with LTO due to undefined symbols. LTO
125 # was disabled in OpenSuSE as well, but with no real explanation why
126 # beyond the undefined symbols. It really should be investigated further.
127 # Disable LTO
128 %define _lto_cflags %{nil}
129
130 # Filter out flags from the optflags macro that cause problems with the OpenJDK build
131 # We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs)
132 # We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
133 # We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid FORTIFY_SOURCE warnings
134 # We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and it's otherwise the default for C++
135 %global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r -e 's|-O[0-9]*||')
136 %global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
137 %global ourldflags %{__global_ldflags}
138
139 # With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
140 # the initialization must be here. Later the pkg-config have buggy behavior
141 # looks like openjdk RPM specific bug
142 # Always set this so the nss.cfg file is not broken
143 %global NSS_LIBDIR %(pkg-config --variable=libdir nss)
144 %global NSS_LIBS %(pkg-config --libs nss)
145 %global NSS_CFLAGS %(pkg-config --cflags nss)
146
147 # In some cases, the arch used by the JDK does
148 # not match _arch.
149 # Also, in some cases, the machine name used by SystemTap
150 # does not match that given by _target_cpu
151 %ifarch x86_64
152 %global archinstall amd64
153 %global stapinstall x86_64
154 %endif
155 %ifarch ppc
156 %global archinstall ppc
157 %global stapinstall powerpc
158 %endif
159 %ifarch %{ppc64be}
160 %global archinstall ppc64
161 %global stapinstall powerpc
162 %endif
163 %ifarch %{ppc64le}
164 %global archinstall ppc64le
165 %global stapinstall powerpc
166 %endif
167 %ifarch %{ix86}
168 %global archinstall i386
169 %global stapinstall i386
170 %endif
171 %ifarch ia64
172 %global archinstall ia64
173 %global stapinstall ia64
174 %endif
175 %ifarch s390
176 %global archinstall s390
177 %global stapinstall s390
178 %endif
179 %ifarch s390x
180 %global archinstall s390x
181 %global stapinstall s390
182 %endif
183 %ifarch %{arm}
184 %global archinstall arm
185 %global stapinstall arm
186 %endif
187 %ifarch %{aarch64}
188 %global archinstall aarch64
189 %global stapinstall arm64
190 %endif
191 # 32 bit sparc, optimized for v9
192 %ifarch sparcv9
193 %global archinstall sparc
194 %global stapinstall %{_target_cpu}
195 %endif
196 # 64 bit sparc
197 %ifarch sparc64
198 %global archinstall sparcv9
199 %global stapinstall %{_target_cpu}
200 %endif
201 # Need to support noarch for srpm build
202 %ifarch noarch
203 %global archinstall %{nil}
204 %global stapinstall %{nil}
205 %endif
206
207 %ifarch %{jit_arches}
208 %global with_systemtap 1
209 %else
210 %global with_systemtap 0
211 %endif
212
213 # New Version-String scheme-style defines
214 %global majorver 8
215
216 %ifarch %{ix86} x86_64
217 %global with_openjfx_binding 1
218 %global openjfx_path %{_jvmdir}/openjfx8
219 # links src directories
220 %global jfx_jre_libs_dir %{openjfx_path}/rt/lib
221 %global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall}
222 %global jfx_sdk_libs_dir %{openjfx_path}/lib
223 %global jfx_sdk_bins_dir %{openjfx_path}/bin
224 %global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext
225 # links src files
226 # maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude cyclic depndenci, but this list is aweful
227 %global jfx_jre_libs jfxswt.jar javafx.properties
228 %global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so libglass.so libjavafx_iio.so libglassgtk2.so libglassgtk3.so
229 %global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
230 %global jfx_sdk_bins javafxpackager javapackager
231 %global jfx_jre_exts jfxrt.jar
232 %else
233 %global with_openjfx_binding 0
234 %endif
235
236 # Standard JPackage naming and versioning defines.
237 %global origin openjdk
238 %global origin_nice OpenJDK
239 %global top_level_dir_name %{origin}
240 # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there.
241 %global shenandoah_project aarch64-port
242 %global shenandoah_repo jdk8u-shenandoah
243 %global shenandoah_revision aarch64-shenandoah-jdk8u272-b02
244 # Define old aarch64/jdk8u tree variables for compatibility
245 %global project %{shenandoah_project}
246 %global repo %{shenandoah_repo}
247 %global revision %{shenandoah_revision}
248 # Define IcedTea version used for SystemTap tapsets and desktop files
249 %global icedteaver 3.15.0
250
251 # e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 -> aarch64-shenandoah-jdk8u212-b04
252 %global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*})
253 # eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont forget spec escape % by %%)
254 %global whole_update %(VERSION=%{version_tag}; echo ${VERSION%%-*})
255 # eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
256 %global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
257 # eg jdk8u60-b27 -> b27
258 %global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-})
259 %global rpmrelease 0
260 # Define milestone (EA for pre-releases, GA ("fcs") for releases)
261 # Release will be (where N is usually a number starting at 1):
262 # - 0.N%%{?extraver}%%{?dist} for EA releases,
263 # - N%%{?extraver}{?dist} for GA releases
264 %global is_ga 0
265 %if %{is_ga}
266 %global milestone fcs
267 %global milestone_version %{nil}
268 %global extraver %{nil}
269 %global eaprefix %{nil}
270 %else
271 %global milestone ea
272 %global milestone_version "-ea"
273 %global extraver .%{milestone}
274 %global eaprefix 0.
275 %endif
276 # priority must be 7 digits in total; up to openjdk 1.8
277 %if %is_system_jdk
278 %global priority 1800%{updatever}
279 %else
280 # for techpreview, using 1, so slowdebugs can have 0
281 %global priority 0000001
282 %endif
283
284 %global javaver 1.%{majorver}.0
285
286 # Define what url should JVM offer in case of a crash report
287 # order may be important, epel may have rhel declared
288 %global bugs https://bugs.mageia.org/enter_bug.cgi
289
290 # parametrized macros are order-sensitive
291 %global compatiblename %{name}
292 %global fullversion %{compatiblename}-%{version}-%{release}
293 # images stub
294 %global jdkimage j2sdk-image
295 # output dir stub
296 %define buildoutputdir() %{expand:build/jdk8.build%{?1}}
297 # we can copy the javadoc to not arched dir, or make it not noarch
298 %define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
299 # main id and dir of this jdk
300 %define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
301
302 # fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349
303 # https://bugzilla.redhat.com/show_bug.cgi?id=1590796#c14
304 # https://bugzilla.redhat.com/show_bug.cgi?id=1655938
305 %global _privatelibs libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
306 %global _publiclibs libjawt[.]so.*|libjava[.]so.*|libjvm[.]so.*|libverify[.]so.*|libjsig[.]so.*
307 %if %is_system_jdk
308 %global __provides_exclude ^(%{_privatelibs})$
309 %global __requires_exclude ^(%{_privatelibs})$
310 # Never generate lib-style provides/requires for slowdebug packages
311 %global __provides_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
312 %global __requires_exclude_from ^.*/%{uniquesuffix -- %{debug_suffix_unquoted}}/.*$
313 %else
314 # Don't generate provides/requires for JDK provided shared libraries at all.
315 %global __provides_exclude ^(%{_privatelibs}|%{_publiclibs})$
316 %global __requires_exclude ^(%{_privatelibs}|%{_publiclibs})$
317 %endif
318
319
320 %global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin}
321 %define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
322 # Standard JPackage directories and symbolic links.
323 %define sdkdir() %{expand:%{uniquesuffix -- %{?1}}}
324 %define jrelnk() %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
325
326 %define jredir() %{expand:%{sdkdir -- %{?1}}/jre}
327 %define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
328 %define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
329
330 %global rpm_state_dir %{_localstatedir}/lib/rpm-state/
331
332 %if %{with_systemtap}
333 # Where to install systemtap tapset (links)
334 # We would like these to be in a package specific sub-dir,
335 # but currently systemtap doesn't support that, so we have to
336 # use the root tapset dir for now. To distinguish between 64
337 # and 32 bit architectures we place the tapsets under the arch
338 # specific dir (note that systemtap will only pickup the tapset
339 # for the primary arch for now). Systemtap uses the machine name
340 # aka target_cpu as architecture specific directory name.
341 %global tapsetroot /usr/share/systemtap
342 %global tapsetdirttapset %{tapsetroot}/tapset/
343 %global tapsetdir %{tapsetdirttapset}/%{stapinstall}
344 %endif
345
346 # not-duplicated scriptlets for normal/debug packages
347 %global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
348
349
350 %define post_script() %{expand:
351 update-desktop-database %{_datadir}/applications &> /dev/null || :
352 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
353 exit 0
354 }
355
356
357 %define post_headless() %{expand:
358 %ifarch %{jit_arches}
359 # MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
360 %ifnarch %{power64}
361 # see https://bugzilla.redhat.com/show_bug.cgi?id=513605
362 %{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
363 %endif
364 %endif
365
366 PRIORITY=%{priority}
367 if [ "%{?1}" == %{debug_suffix} ]; then
368 let PRIORITY=PRIORITY-1
369 fi
370
371 ext=.xz
372 alternatives \\
373 --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family %{name}.%{_arch} \\
374 --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
375 --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
376 --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
377 --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\
378 --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\
379 --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\
380 --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\
381 --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\
382 --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\
383 --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\
384 --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\
385 --slave %{_mandir}/man1/java.1$ext java.1$ext \\
386 %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
387 --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
388 %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\
389 --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
390 %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\
391 --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
392 %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\
393 --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
394 %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\
395 --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
396 %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\
397 --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
398 %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\
399 --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\
400 %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\
401 --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
402 %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\
403 --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
404 %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\
405 --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
406 %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
407
408 for X in %{origin} %{javaver} ; do
409 alternatives --install %{_jvmdir}/jre-"$X" jre_"$X" %{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
410 done
411
412 update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family %{name}.%{_arch}
413
414
415 update-desktop-database %{_datadir}/applications &> /dev/null || :
416 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
417
418 # see pretrans where this file is declared
419 # also see that pretrans is only for non-debug
420 if [ ! "%{?1}" == %{debug_suffix} ]; then
421 if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
422 sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch} %{_jvmdir}/%{sdkdir -- %{?1}}
423 fi
424 fi
425
426 exit 0
427 }
428
429 %define postun_script() %{expand:
430 update-desktop-database %{_datadir}/applications &> /dev/null || :
431 if [ $1 -eq 0 ] ; then
432 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
433 %{update_desktop_icons}
434 fi
435 exit 0
436 }
437
438
439 %define postun_headless() %{expand:
440 alternatives --remove java %{jrebindir -- %{?1}}/java
441 alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
442 alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
443 alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
444 }
445
446 %define posttrans_script() %{expand:
447 %{update_desktop_icons}
448 }
449
450 %define post_devel() %{expand:
451
452 PRIORITY=%{priority}
453 if [ "%{?1}" == %{debug_suffix} ]; then
454 let PRIORITY=PRIORITY-1
455 fi
456
457 ext=.xz
458 alternatives \\
459 --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family %{name}.%{_arch} \\
460 --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
461 --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
462 --slave %{_bindir}/clhsdb clhsdb %{sdkbindir -- %{?1}}/clhsdb \\
463 --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\
464 --slave %{_bindir}/hsdb hsdb %{sdkbindir -- %{?1}}/hsdb \\
465 --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\
466 --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\
467 --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
468 --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\
469 --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\
470 --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\
471 --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
472 --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
473 --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
474 --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
475 %ifarch %{jfr_arches}
476 --slave %{_bindir}/jfr jfr %{sdkbindir -- %{?1}}/jfr \\
477 %endif
478 --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
479 --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
480 --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
481 --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\
482 --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\
483 --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\
484 --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\
485 --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\
486 --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\
487 --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\
488 --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\
489 --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\
490 --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\
491 --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\
492 --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\
493 --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\
494 --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\
495 %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\
496 --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\
497 %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\
498 --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\
499 %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\
500 --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
501 %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\
502 --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
503 %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\
504 --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
505 %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\
506 --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
507 %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\
508 --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\
509 %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\
510 --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
511 %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\
512 --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
513 %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
514 --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
515 %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\
516 --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
517 %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\
518 --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
519 %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\
520 --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\
521 %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\
522 --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
523 %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\
524 --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
525 %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\
526 --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
527 %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\
528 --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
529 %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\
530 --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\
531 %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\
532 --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
533 %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\
534 --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
535 %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\
536 --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
537 %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\
538 --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
539 %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\
540 --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
541 %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\
542 --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
543 %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\
544 --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
545 %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\
546 --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\
547 %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\
548 --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\
549 %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\
550 --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
551 %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
552
553 for X in %{origin} %{javaver} ; do
554 alternatives \\
555 --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
556 done
557
558 update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
559
560 update-desktop-database %{_datadir}/applications &> /dev/null || :
561 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
562
563 exit 0
564 }
565
566 %define postun_devel() %{expand:
567 alternatives --remove javac %{sdkbindir -- %{?1}}/javac
568 alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
569 alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
570 alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
571
572 update-desktop-database %{_datadir}/applications &> /dev/null || :
573
574 if [ $1 -eq 0 ] ; then
575 /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
576 %{update_desktop_icons}
577 fi
578 exit 0
579 }
580
581 %define posttrans_devel() %{expand:
582 %{update_desktop_icons}
583 }
584
585 %define post_javadoc() %{expand:
586
587 PRIORITY=%{priority}
588 if [ "%{?1}" == %{debug_suffix} ]; then
589 let PRIORITY=PRIORITY-1
590 fi
591
592 alternatives \\
593 --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api \\
594 $PRIORITY --family %{name}
595 exit 0
596 }
597
598 %define postun_javadoc() %{expand:
599 alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
600 exit 0
601 }
602
603 %define post_javadoc_zip() %{expand:
604
605 PRIORITY=%{priority}
606 if [ "%{?1}" == %{debug_suffix} ]; then
607 let PRIORITY=PRIORITY-1
608 fi
609
610 alternatives \\
611 --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip \\
612 $PRIORITY --family %{name}
613 exit 0
614 }
615
616 %define postun_javadoc_zip() %{expand:
617 alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
618 exit 0
619 }
620
621 %define files_jre() %{expand:
622 %{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
623 %{_datadir}/applications/*policytool%{?1}.desktop
624 %{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so
625 %{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so
626 %{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so
627 %{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so
628 %{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool
629 %if %is_system_jdk
630 %if %{is_release_build -- %{?1}}
631 %ghost %{_bindir}/policytool
632 %endif
633 %endif
634 }
635
636
637 %define files_jre_headless() %{expand:
638 %defattr(-,root,root,-)
639 %dir %{_sysconfdir}/.java/.systemPrefs
640 %dir %{_sysconfdir}/.java
641 %license %{_jvmdir}/%{jredir -- %{?1}}/ASSEMBLY_EXCEPTION
642 %license %{_jvmdir}/%{jredir -- %{?1}}/LICENSE
643 %license %{_jvmdir}/%{jredir -- %{?1}}/THIRD_PARTY_README
644 %doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
645 %dir %{_jvmdir}/%{sdkdir -- %{?1}}
646 %{_jvmdir}/%{jrelnk -- %{?1}}
647 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
648 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
649 %dir %{_jvmdir}/%{jredir -- %{?1}}
650 %dir %{_jvmdir}/%{jredir -- %{?1}}/bin
651 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib
652 %{_jvmdir}/%{jredir -- %{?1}}/bin/java
653 %{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
654 %{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
655 %{_jvmdir}/%{jredir -- %{?1}}/bin/orbd
656 %{_jvmdir}/%{jredir -- %{?1}}/bin/pack200
657 %{_jvmdir}/%{jredir -- %{?1}}/bin/rmid
658 %{_jvmdir}/%{jredir -- %{?1}}/bin/rmiregistry
659 %{_jvmdir}/%{jredir -- %{?1}}/bin/servertool
660 %{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv
661 %{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200
662 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/
663 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/
664 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/
665 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar
666 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
667 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar
668 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/policy/limited/local_policy.jar
669 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.policy
670 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/java.security
671 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/blacklisted.certs
672 %config(noreplace) %{etcjavadir -- %{?1}}/lib/logging.properties
673 %config(noreplace) %{etcjavadir -- %{?1}}/lib/calendars.properties
674 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/US_export_policy.jar
675 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/local_policy.jar
676 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/US_export_policy.jar
677 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/local_policy.jar
678 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy
679 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security
680 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs
681 %{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties
682 %{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties
683 %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
684 %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
685 %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
686 %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1*
687 %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1*
688 %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1*
689 %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
690 %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1*
691 %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1*
692 %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
693 %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
694 %{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
695 %config(noreplace) %{etcjavadir -- %{?1}}/lib/security/nss.cfg
696 %ifarch %{jit_arches}
697 %ifnarch %{power64}
698 %attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/classes.jsa
699 %attr(444, root, root) %ghost %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/classes.jsa
700 %endif
701 %endif
702 %dir %{etcjavasubdir}
703 %dir %{etcjavadir -- %{?1}}
704 %dir %{etcjavadir -- %{?1}}/lib
705 %dir %{etcjavadir -- %{?1}}/lib/security
706 %{etcjavadir -- %{?1}}/lib/security/cacerts
707 %dir %{etcjavadir -- %{?1}}/lib/security/policy
708 %dir %{etcjavadir -- %{?1}}/lib/security/policy/limited
709 %dir %{etcjavadir -- %{?1}}/lib/security/policy/unlimited
710 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
711 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
712 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}
713 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli
714 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
715 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
716 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so
717 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so
718 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so
719 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so
720 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so
721 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so
722 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so
723 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so
724 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so
725 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so
726 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so
727 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so
728 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so
729 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjavajpeg.so
730 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so
731 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so
732 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so
733 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsound.so
734 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/liblcms.so
735 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmanagement.so
736 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmlib_image.so
737 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
738 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
739 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
740 %ifarch %{sa_arches}
741 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
742 %endif
743 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
744 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
745 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
746 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so
747 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so
748 %{_jvmdir}/%{jredir -- %{?1}}/lib/charsets.jar
749 %{_jvmdir}/%{jredir -- %{?1}}/lib/classlist
750 %{_jvmdir}/%{jredir -- %{?1}}/lib/content-types.properties
751 %{_jvmdir}/%{jredir -- %{?1}}/lib/currency.data
752 %{_jvmdir}/%{jredir -- %{?1}}/lib/flavormap.properties
753 %{_jvmdir}/%{jredir -- %{?1}}/lib/hijrah-config-umalqura.properties
754 %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors/*
755 %{_jvmdir}/%{jredir -- %{?1}}/lib/jce.jar
756 %{_jvmdir}/%{jredir -- %{?1}}/lib/jexec
757 %{_jvmdir}/%{jredir -- %{?1}}/lib/jsse.jar
758 %{_jvmdir}/%{jredir -- %{?1}}/lib/jvm.hprof.txt
759 %{_jvmdir}/%{jredir -- %{?1}}/lib/meta-index
760 %{_jvmdir}/%{jredir -- %{?1}}/lib/net.properties
761 %config(noreplace) %{etcjavadir -- %{?1}}/lib/net.properties
762 %{_jvmdir}/%{jredir -- %{?1}}/lib/psfont.properties.ja
763 %{_jvmdir}/%{jredir -- %{?1}}/lib/psfontj2d.properties
764 %{_jvmdir}/%{jredir -- %{?1}}/lib/resources.jar
765 %{_jvmdir}/%{jredir -- %{?1}}/lib/rt.jar
766 %{_jvmdir}/%{jredir -- %{?1}}/lib/sound.properties
767 %{_jvmdir}/%{jredir -- %{?1}}/lib/tzdb.dat
768 %{_jvmdir}/%{jredir -- %{?1}}/lib/management-agent.jar
769 %{_jvmdir}/%{jredir -- %{?1}}/lib/management/*
770 %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/*
771 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/cldrdata.jar
772 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar
773 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar
774 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar
775 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index
776 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar
777 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar
778 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar
779 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar
780 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar
781 %ifarch %{jfr_arches}
782 %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr.jar
783 %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/default.jfc
784 %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr/profile.jfc
785 %endif
786
787 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images
788 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors
789 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management
790 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm
791 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext
792 %ifarch %{jfr_arches}
793 %dir %{_jvmdir}/%{jredir -- %{?1}}/lib/jfr
794 %endif
795 %if %is_system_jdk
796 %if %{is_release_build -- %{?1}}
797 %ghost %{_bindir}/java
798 %ghost %{_jvmdir}/jre
799 # https://bugzilla.redhat.com/show_bug.cgi?id=1312019
800 %ghost %{_bindir}/jjs
801 %ghost %{_bindir}/keytool
802 %ghost %{_bindir}/orbd
803 %ghost %{_bindir}/pack200
804 %ghost %{_bindir}/rmid
805 %ghost %{_bindir}/rmiregistry
806 %ghost %{_bindir}/servertool
807 %ghost %{_bindir}/tnameserv
808 %ghost %{_bindir}/unpack200
809 %endif
810 %endif
811 }
812
813 %define files_devel() %{expand:
814 %defattr(-,root,root,-)
815 %license %{_jvmdir}/%{sdkdir -- %{?1}}/ASSEMBLY_EXCEPTION
816 %license %{_jvmdir}/%{sdkdir -- %{?1}}/LICENSE
817 %license %{_jvmdir}/%{sdkdir -- %{?1}}/THIRD_PARTY_README
818 %dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
819 %dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
820 %dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
821 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer
822 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/clhsdb
823 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck
824 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/hsdb
825 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj
826 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar
827 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner
828 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/java
829 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac
830 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc
831 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah
832 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap
833 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/java-rmi.cgi
834 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd
835 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole
836 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb
837 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps
838 %ifarch %{jfr_arches}
839 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jfr
840 %endif
841 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat
842 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo
843 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs
844 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jmap
845 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jps
846 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jrunscript
847 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jsadebugd
848 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstack
849 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstat
850 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstatd
851 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool
852 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/native2ascii
853 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/orbd
854 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/pack200
855 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/policytool
856 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmic
857 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmid
858 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry
859 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/schemagen
860 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/serialver
861 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/servertool
862 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/tnameserv
863 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/unpack200
864 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsgen
865 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport
866 %{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc
867 %{_jvmdir}/%{sdkdir -- %{?1}}/include/*
868 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}
869 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
870 %if %{with_systemtap}
871 %{_jvmdir}/%{sdkdir -- %{?1}}/tapset
872 %endif
873 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
874 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
875 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
876 %ifarch %{sa_arches}
877 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
878 %endif
879 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
880 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
881 %{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
882 %{_datadir}/applications/*jconsole%{?1}.desktop
883 %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1*
884 %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1*
885 %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1*
886 %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1*
887 %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1*
888 %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1*
889 %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1*
890 %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1*
891 %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1*
892 %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1*
893 %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
894 %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1*
895 %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1*
896 %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1*
897 %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1*
898 %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1*
899 %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1*
900 %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1*
901 %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1*
902 %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1*
903 %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1*
904 %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1*
905 %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1*
906 %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1*
907 %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1*
908 %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1*
909 %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1*
910 %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1*
911 %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1*
912 %if %{with_systemtap}
913 %dir %{tapsetroot}
914 %dir %{tapsetdirttapset}
915 %dir %{tapsetdir}
916 %{tapsetdir}/*%{_arch}%{?1}.stp
917 %endif
918 %if %is_system_jdk
919 %if %{is_release_build -- %{?1}}
920 %ghost %{_jvmdir}/java
921 %ghost %{_bindir}/appletviewer
922 %ghost %{_bindir}/clhsdb
923 %ghost %{_bindir}/extcheck
924 %ghost %{_bindir}/hsdb
925 %ghost %{_bindir}/idlj
926 %ghost %{_bindir}/jar
927 %ghost %{_bindir}/jarsigner
928 %ghost %{_bindir}/java
929 %ghost %{_bindir}/java-rmi.cgi
930 %ghost %{_bindir}/javac
931 %ghost %{_bindir}/javadoc
932 %ghost %{_bindir}/javah
933 %ghost %{_bindir}/javap
934 %ghost %{_bindir}/jcmd
935 %ghost %{_bindir}/jconsole
936 %ghost %{_bindir}/jdb
937 %ghost %{_bindir}/jdeps
938 %ghost %{_bindir}/jhat
939 %ghost %{_bindir}/jinfo
940 %ghost %{_bindir}/jjs
941 %ghost %{_bindir}/jmap
942 %ghost %{_bindir}/jps
943 %ghost %{_bindir}/jrunscript
944 %ghost %{_bindir}/jsadebugd
945 %ghost %{_bindir}/jstack
946 %ghost %{_bindir}/jstat
947 %ghost %{_bindir}/jstatd
948 %ghost %{_bindir}/keytool
949 %ghost %{_bindir}/native2ascii
950 %ghost %{_bindir}/orbd
951 %ghost %{_bindir}/pack200
952 %ghost %{_bindir}/policytool
953 %ghost %{_bindir}/rmic
954 %ghost %{_bindir}/rmid
955 %ghost %{_bindir}/rmiregistry
956 %ghost %{_bindir}/schemagen
957 %ghost %{_bindir}/serialver
958 %ghost %{_bindir}/servertool
959 %ghost %{_bindir}/tnameserv
960 %ghost %{_bindir}/unpack200
961 %ghost %{_bindir}/wsgen
962 %ghost %{_bindir}/wsimport
963 %ghost %{_bindir}/xjc
964 %endif
965 %endif
966 }
967
968 %define files_jmods() %{expand:
969 %{_jvmdir}/%{sdkdir -- %{?1}}/jmods
970 }
971
972 %define files_demo() %{expand:
973 %defattr(-,root,root,-)
974 %license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
975 }
976
977 %define files_src() %{expand:
978 %defattr(-,root,root,-)
979 %doc README.md
980 %{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
981 }
982
983 %define files_javadoc() %{expand:
984 %defattr(-,root,root,-)
985 %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
986 %license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
987 %if %is_system_jdk
988 %if %{is_release_build -- %{?1}}
989 %ghost %{_javadocdir}/java
990 %endif
991 %endif
992 }
993
994 %define files_javadoc_zip() %{expand:
995 %defattr(-,root,root,-)
996 %doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
997 %license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
998 %if %is_system_jdk
999 %if %{is_release_build -- %{?1}}
1000 %ghost %{_javadocdir}/java-zip
1001 %endif
1002 %endif
1003 }
1004
1005 %define files_accessibility() %{expand:
1006 %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so
1007 %{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar
1008 %{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties
1009 }
1010
1011 # not-duplicated requires/provides/obsoletes for normal/debug packages
1012 %define java_rpo() %{expand:
1013 Requires: fontconfig%{?_isa}
1014 Requires: x11-font-type1
1015 # Require libXcomposite explicitly since it's only dynamically loaded
1016 # at runtime. Fixes screenshot issues. See JDK-8150954.
1017 Requires: %mklibname xcomposite 1
1018 # Requires rest of java
1019 Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1020 OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1021 # for java-X-openjdk package's desktop binding
1022 %if 0%{?fedora} || 0%{?rhel} >= 8
1023 Recommends: gtk2%{?_isa}
1024 %endif
1025
1026 Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
1027
1028 # Standard JPackage base provides
1029 Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
1030 Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
1031 Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
1032 %if %is_system_jdk
1033 Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
1034 Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
1035 Provides: java%{?1} = %{epoch}:%{version}-%{release}
1036 Provides: jre%{?1} = %{epoch}:%{version}-%{release}
1037 %endif
1038 }
1039
1040 %define java_headless_rpo() %{expand:
1041 # Require /etc/pki/java/cacerts
1042 # Require /etc/pki/java/cacerts.
1043 #Requires: ca-certificates
1044 Requires: rootcerts-java
1045 # Require jpackage-utils for ownership of /usr/lib/jvm/
1046 Requires: jpackage-utils
1047 # Require zoneinfo data provided by tzdata-java subpackage.
1048 # 2020a required as of JDK-8243541
1049 Requires: timezone-java >= 2020a
1050 # libsctp.so.1 is being `dlopen`ed on demand
1051 Requires: lksctp-tools%{?_isa}
1052 # tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it,
1053 # not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
1054 # considered as regression
1055 Requires: copy-jdk-configs >= 3.3
1056 #OrderWithRequires: copy-jdk-configs
1057 # for printing support
1058 # FIXME: Add good deps for mageia
1059 #Requires: cups-libs
1060 # Post requires alternatives to install tool alternatives
1061 Requires(post): update-alternatives
1062 # Postun requires alternatives to uninstall tool alternatives
1063 Requires(postun): update-alternatives
1064 # for optional support of kernel stream control, card reader and printing bindings
1065 Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
1066
1067 # Standard JPackage base provides
1068 Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
1069 Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
1070 Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
1071 Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
1072 %if %is_system_jdk
1073 Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
1074 Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
1075 Provides: jre-headless%{?1} = %{epoch}:%{version}-%{release}
1076 Provides: java-headless%{?1} = %{epoch}:%{version}-%{release}
1077 %endif
1078 }
1079
1080 %define java_devel_rpo() %{expand:
1081 # Requires base package
1082 Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1083 OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1084 # Post requires alternatives to install tool alternatives
1085 Requires(post): %{_sbindir}/alternatives
1086 # Postun requires alternatives to uninstall tool alternatives
1087 Requires(postun): %{_sbindir}/alternatives
1088
1089 # Standard JPackage devel provides
1090 Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
1091 Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
1092 Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}-%{release}
1093 Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
1094 %if %is_system_jdk
1095 Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}-%{release}
1096 Provides: java-devel%{?1} = %{epoch}:%{version}-%{release}
1097 Provides: java-%{origin}-devel%{?1} = %{epoch}:%{version}-%{release}
1098 Provides: java-sdk%{?1} = %{epoch}:%{version}-%{release}
1099 %endif
1100 }
1101
1102 %define java_demo_rpo() %{expand:
1103 Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1104 OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1105
1106 Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
1107 Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
1108 %if %is_system_jdk
1109 Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
1110 Provides: java-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
1111 %endif
1112 }
1113
1114 %define java_javadoc_rpo() %{expand:
1115 OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1116 # Post requires alternatives to install javadoc alternative
1117 Requires(post): %{_sbindir}/alternatives
1118 # Postun requires alternatives to uninstall javadoc alternative
1119 Requires(postun): %{_sbindir}/alternatives
1120
1121 # Standard JPackage javadoc provides
1122 Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
1123 Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
1124 %if %is_system_jdk
1125 Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
1126 %endif
1127 }
1128
1129 %define java_src_rpo() %{expand:
1130 Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1131
1132 # Standard JPackage sources provides
1133 Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
1134 Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
1135 %if %is_system_jdk
1136 Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
1137 Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
1138 %endif
1139 }
1140
1141 %define java_accessibility_rpo() %{expand:
1142 Requires: java-atk-wrapper%{?_isa}
1143 Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1144 OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
1145
1146 Provides: java-accessibility%{?1} = %{epoch}:%{version}-%{release}
1147 Provides: java-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
1148 Provides: java-%{javaver}-accessibility%{?1} = %{epoch}:%{version}-%{release}
1149 Provides: java-%{javaver}-%{origin}-accessibility%{?1} = %{epoch}:%{version}-%{release}
1150
1151 }
1152
1153 # Prevent brp-java-repack-jars from being run
1154 %global __jar_repack 0
1155
1156 Name: java-%{javaver}-%{origin}
1157 Version: %{javaver}.%{updatever}.%{buildver}
1158 Release: %mkrel %{?eaprefix}%{rpmrelease}%{?extraver}.2
1159 # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
1160 # and this change was brought into RHEL-4. java-1.5.0-ibm packages
1161 # also included the epoch in their virtual provides. This created a
1162 # situation where in-the-wild java-1.5.0-ibm packages provided "java =
1163 # 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
1164 # interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
1165 # satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
1166 # JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
1167 # provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
1168
1169 Epoch: 1
1170 Summary: %{origin_nice} Runtime Environment %{majorver}
1171 Group: Development/Java
1172
1173 # HotSpot code is licensed under GPLv2
1174 # JDK library code is licensed under GPLv2 with the Classpath exception
1175 # The Apache license is used in code taken from Apache projects (primarily JAXP & JAXWS)
1176 # DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License
1177 # The JSR166 concurrency code is in the public domain
1178 # The BSD and MIT licenses are used for a number of third-party libraries (see THIRD_PARTY_README)
1179 # The OpenJDK source tree includes the JPEG library (IJG), zlib & libpng (zlib), giflib and LCMS (MIT)
1180 # The test code includes copies of NSS under the Mozilla Public License v2.0
1181 # The PCSClite headers are under a BSD with advertising license
1182 # The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version
1183 License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C and zlib
1184 URL: http://openjdk.java.net/
1185
1186 # Shenandoah HotSpot
1187 # aarch64-port/jdk8u-shenandoah contains an integration forest of
1188 # OpenJDK 8u, the aarch64 port and Shenandoah
1189 # To regenerate, use:
1190 # VERSION=%%{shenandoah_revision}
1191 # FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
1192 # REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
1193 # where the source is obtained from http://hg.openjdk.java.net/%%{project}/%%{repo}
1194 Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}-4curve.tar.xz
1195
1196 # Custom README for -src subpackage
1197 Source2: README.md
1198
1199 # Release notes
1200 Source7: NEWS
1201
1202 # Use 'icedtea_sync.sh' to update the following
1203 # They are based on code contained in the IcedTea project (3.x).
1204 # Systemtap tapsets. Zipped up to keep it small.
1205 Source8: tapsets-icedtea-%{icedteaver}.tar.xz
1206
1207 # Desktop files. Adapted from IcedTea
1208 Source9: jconsole.desktop.in
1209 Source10: policytool.desktop.in
1210
1211 # nss configuration file
1212 Source11: nss.cfg.in
1213
1214 # Removed libraries that we link instead
1215 Source12: %{name}-remove-intree-libraries.sh
1216
1217 # Ensure we aren't using the limited crypto policy
1218 Source13: TestCryptoLevel.java
1219
1220 # Ensure ECDSA is working
1221 Source14: TestECDSA.java
1222
1223 # Verify system crypto (policy) can be disabled via a property
1224 Source15: TestSecurityProperties.java
1225
1226 Source20: repackReproduciblePolycies.sh
1227
1228 # New versions of config files with aarch64 support. This is not upstream yet.
1229 Source100: config.guess
1230 Source101: config.sub
1231
1232 ############################################
1233 #
1234 # RPM/distribution specific patches
1235 #
1236 # This section includes patches specific to
1237 # Fedora/RHEL which can not be upstreamed
1238 # either in their current form or at all.
1239 ############################################
1240
1241 # Accessibility patches
1242 # Ignore AWTError when assistive technologies are loaded
1243 Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
1244 # Restrict access to java-atk-wrapper classes
1245 Patch3: rh1648644-java_access_bridge_privileged_security.patch
1246 # Turn on AssumeMP by default on RHEL systems
1247 Patch534: rh1648246-always_instruct_vm_to_assume_multiple_processors_are_available.patch
1248
1249 #############################################
1250 #
1251 # Upstreamable patches
1252 #
1253 # This section includes patches which need to
1254 # be reviewed & pushed to the current development
1255 # tree of OpenJDK.
1256 #############################################
1257 # PR2737: Allow multiple initialization of PKCS11 libraries
1258 Patch5: pr2737-allow_multiple_pkcs11_library_initialisation_to_be_a_non_critical_error.patch
1259 # PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync with IcedTea 2.x)
1260 Patch504: rh1163501-increase_2048_bit_dh_upper_bound_fedora_infrastructure_in_dhparametergenerator.patch
1261 # Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543: Arrange font actions
1262 Patch512: rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch
1263 # RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than system line endings
1264 Patch523: pr2974-rh1337583-add_systemlineendings_option_to_keytool_and_use_line_separator_instead_of_crlf_in_pkcs10.patch
1265 # PR3083, RH1346460: Regression in SSL debug output without an ECC provider
1266 Patch528: pr3083-rh1346460-for_ssl_debug_return_null_instead_of_exception_when_theres_no_ecc_provider.patch
1267 # RH1566890: CVE-2018-3639
1268 Patch529: rh1566890-CVE_2018_3639-speculative_store_bypass.patch
1269 Patch531: rh1566890-CVE_2018_3639-speculative_store_bypass_toggle.patch
1270 # PR3601: Fix additional -Wreturn-type issues introduced by 8061651
1271 Patch530: pr3601-fix_additional_Wreturn_type_issues_introduced_by_8061651_for_prims_jvm_cpp.patch
1272 # PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
1273 # PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
1274 Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch
1275 # PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
1276 Patch400: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
1277 # PR3655: Allow use of system crypto policy to be disabled by the user
1278 Patch401: pr3655-toggle_system_crypto_policy.patch
1279 # JDK-8218811: replace open by os::open in hotspot coding
1280 # This fixes a GCC 10 build issue
1281 Patch111: jdk8218811-perfMemory_linux.patch
1282
1283 #############################################
1284 #
1285 # Arch-specific upstreamable patches
1286 #
1287 # This section includes patches which need to
1288 # be reviewed & pushed upstream and are specific
1289 # to certain architectures. This usually means the
1290 # current OpenJDK development branch, but may also
1291 # include other trees e.g. for the AArch64 port for
1292 # OpenJDK 8u.
1293 #############################################
1294 # s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
1295 Patch103: pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch
1296 # x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations (-mstackrealign workaround)
1297 Patch105: jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch
1298 # AArch64: PR3519: Fix further functions with a missing return value (AArch64)
1299 Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch
1300 # S390 ambiguous log2_intptr calls
1301 Patch107: s390-8214206_fix.patch
1302
1303 #############################################
1304 #
1305 # Patches which need backporting to 8u
1306 #
1307 # This section includes patches which have
1308 # been pushed upstream to the latest OpenJDK
1309 # development tree, but need to be backported
1310 # to OpenJDK 8u.
1311 #############################################
1312 # S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
1313 # This fixes printf warnings that lead to build failure with -Werror=format-security from optflags
1314 Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch
1315 # PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
1316 Patch571: jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch
1317 # 8143245, PR3548: Zero build requires disabled warnings
1318 Patch574: jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch
1319 # 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
1320 Patch575: jdk8197981-pr3548-missing_return_statement_in_sync_val_compare_and_swap_8.patch
1321 # 8062808, PR3548: Turn on the -Wreturn-type warning
1322 Patch577: jdk8062808-pr3548-turn_on_the_wreturn_type_warning.patch
1323 # s390: JDK-8203030, Type fixing for s390
1324 Patch102: jdk8203030-zero_s390_31_bit_size_t_type_conflicts_in_shared_code.patch
1325 # 8035341: Allow using a system installed libpng
1326 Patch202: jdk8035341-allow_using_system_installed_libpng.patch
1327 # 8042159: Allow using a system-installed lcms2
1328 Patch203: jdk8042159-allow_using_system_installed_lcms2-root.patch
1329 Patch204: jdk8042159-allow_using_system_installed_lcms2-jdk.patch
1330
1331 #############################################
1332 #
1333 # Patches appearing in 8u262
1334 #
1335 # This section includes patches which are present
1336 # in the listed OpenJDK 8u release and should be
1337 # able to be removed once that release is out
1338 # and used by this RPM.
1339 #############################################
1340
1341 #############################################
1342 #
1343 # Patches ineligible for 8u
1344 #
1345 # This section includes patches which are present
1346 # upstream, but ineligible for upstream 8u backport.
1347 #############################################
1348 # 8043805: Allow using a system-installed libjpeg
1349 Patch201: jdk8043805-allow_using_system_installed_libjpeg.patch
1350
1351 #############################################
1352 #
1353 # Shenandoah fixes
1354 #
1355 # This section includes patches which are
1356 # specific to the Shenandoah garbage collector
1357 # and should be upstreamed to the appropriate
1358 # trees.
1359 #############################################
1360
1361 #############################################
1362 #
1363 # Non-OpenJDK fixes
1364 #
1365 # This section includes patches to code other
1366 # that from OpenJDK.
1367 #############################################
1368 Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
1369
1370 #############################################
1371 #
1372 # Dependencies
1373 #
1374 #############################################
1375 BuildRequires: autoconf
1376 BuildRequires: automake
1377 BuildRequires: alsa-lib-devel
1378 BuildRequires: binutils
1379 BuildRequires: cups-devel
1380 BuildRequires: desktop-file-utils
1381 # elfutils only are OK for build without AOT
1382 BuildRequires: elfutils-devel
1383 BuildRequires: fontconfig-devel
1384 BuildRequires: freetype-devel
1385 BuildRequires: giflib-devel
1386 BuildRequires: gcc-c++
1387 BuildRequires: gdb
1388 BuildRequires: gtk2-devel
1389 BuildRequires: lcms2-devel
1390 BuildRequires: libjpeg-devel
1391 BuildRequires: libpng-devel
1392 BuildRequires: libxslt
1393 BuildRequires: libx11-devel
1394 BuildRequires: libxext-devel
1395 BuildRequires: libxi-devel
1396 BuildRequires: libxinerama-devel
1397 BuildRequires: libxrender-devel
1398 BuildRequires: libxt-devel
1399 BuildRequires: libxtst-devel
1400 # Requirements for setting up the nss.cfg
1401 BuildRequires: nss-devel
1402 BuildRequires: pkgconfig
1403 BuildRequires: x11-proto-devel
1404 BuildRequires: zip
1405 BuildRequires: unzip
1406 BuildRequires: java-1.8.0-openjdk-devel
1407 # Zero-assembler build requirement
1408 %ifnarch %{jit_arches}
1409 BuildRequires: libffi-devel
1410 %endif
1411 # 2020a required as of JDK-8243541
1412 BuildRequires: tzdata-java >= 2020a
1413 # Earlier versions have a bug in tree vectorization on PPC
1414 BuildRequires: gcc >= 4.8.3-8
1415
1416 %if %{with_systemtap}
1417 BuildRequires: systemtap
1418 %endif
1419
1420 # this is always built, also during debug-only build
1421 # when it is built in debug-only this package is just placeholder
1422 %{java_rpo %{nil}}
1423
1424 %description
1425 The %{origin_nice} runtime environment %{majorver}.
1426
1427 %if %{include_debug_build}
1428 %package slowdebug
1429 Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
1430 Group: Development/Java
1431
1432 %{java_rpo -- %{debug_suffix_unquoted}}
1433 %description slowdebug
1434 The %{origin_nice} runtime environment %{majorver}.
1435 %{debug_warning}
1436 %endif
1437
1438 %if %{include_normal_build}
1439 %package headless
1440 Summary: %{origin_nice} Headless Runtime Environment %{majorver}
1441 Group: Development/Java
1442 %{java_headless_rpo %{nil}}
1443
1444 %description headless
1445 The %{origin_nice} runtime environment %{majorver} without audio and video support.
1446 %endif
1447
1448 %if %{include_debug_build}
1449 %package headless-slowdebug
1450 Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
1451 Group: Development/Java
1452 %{java_headless_rpo -- %{debug_suffix_unquoted}}
1453
1454 %description headless-slowdebug
1455 The %{origin_nice} runtime environment %{majorver} without audio and video support.
1456 %{debug_warning}
1457 %endif
1458
1459 %if %{include_normal_build}
1460 %package devel
1461 Summary: %{origin_nice} Development Environment %{majorver}
1462 Group: Development/Java
1463 %{java_devel_rpo %{nil}}
1464
1465 %description devel
1466 The %{origin_nice} development tools %{majorver}.
1467 %endif
1468
1469 %if %{include_debug_build}
1470 %package devel-slowdebug
1471 Summary: %{origin_nice} Development Environment %{majorver} %{debug_on}
1472 Group: Development/Java
1473 %{java_devel_rpo -- %{debug_suffix_unquoted}}
1474
1475 %description devel-slowdebug
1476 The %{origin_nice} development tools %{majorver}.
1477 %{debug_warning}
1478 %endif
1479
1480 %if %{include_normal_build}
1481 %package demo
1482 Summary: %{origin_nice} Demos %{majorver}
1483 Group: Development/Java
1484 %{java_demo_rpo %{nil}}
1485
1486 %description demo
1487 The %{origin_nice} demos %{majorver}.
1488 %endif
1489
1490 %if %{include_debug_build}
1491 %package demo-slowdebug
1492 Summary: %{origin_nice} Demos %{majorver} %{debug_on}
1493 Group: Development/Java
1494 %{java_demo_rpo -- %{debug_suffix_unquoted}}
1495
1496 %description demo-slowdebug
1497 The %{origin_nice} demos %{majorver}.
1498 %{debug_warning}
1499 %endif
1500
1501 %if %{include_normal_build}
1502 %package src
1503 Summary: %{origin_nice} Source Bundle %{majorver}
1504 Group: Development/Java
1505 %{java_src_rpo %{nil}}
1506
1507 %description src
1508 The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver}
1509 class library source code for use by IDE indexers and debuggers.
1510 %endif
1511
1512 %if %{include_debug_build}
1513 %package src-slowdebug
1514 Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug}
1515 Group: Development/Java
1516 %{java_src_rpo -- %{debug_suffix_unquoted}}
1517
1518 %description src-slowdebug
1519 The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver}
1520 class library source code for use by IDE indexers and debuggers. Debugging %{for_debug}.
1521 %endif
1522
1523 %if %{include_normal_build}
1524 %package javadoc
1525 Summary: %{origin_nice} %{majorver} API documentation
1526 Group: Development/Java
1527 Requires: javapackages-filesystem
1528 Obsoletes: javadoc-slowdebug < 1:1.8.0.222.b10-1
1529 BuildArch: noarch
1530
1531 %{java_javadoc_rpo %{nil}}
1532
1533 %description javadoc
1534 The %{origin_nice} %{majorver} API documentation.
1535 %endif
1536
1537 %if %{include_normal_build}
1538 %package javadoc-zip
1539 Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
1540 Group: Development/Java
1541 Requires: javapackages-filesystem
1542 Obsoletes: javadoc-zip-slowdebug < 1:1.8.0.222.b10-1
1543 BuildArch: noarch
1544
1545 %{java_javadoc_rpo %{nil}}
1546
1547 %description javadoc-zip
1548 The %{origin_nice} %{majorver} API documentation compressed in a single archive.
1549 %endif
1550
1551 %if %{include_normal_build}
1552 %package accessibility
1553 Summary: %{origin_nice} %{majorver} accessibility connector
1554 Group: Development/Java
1555 %{java_accessibility_rpo %{nil}}
1556
1557 %description accessibility
1558 Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper. This allows
1559 compatible at-spi2 based accessibility programs to work for AWT and Swing-based
1560 programs.
1561
1562 Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself is still
1563 being tuned to be working with accessibility features. There are known issues
1564 with accessibility on, so please do not install this package unless you really
1565 need to.
1566 %endif
1567
1568 %if %{include_debug_build}
1569 %package accessibility-slowdebug
1570 Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug}
1571 Group: Development/Java
1572 %{java_accessibility_rpo -- %{debug_suffix_unquoted}}
1573
1574 %description accessibility-slowdebug
1575 See normal java-%{version}-openjdk-accessibility description.
1576 %endif
1577
1578
1579 %if %{with_openjfx_binding}
1580 %package openjfx
1581 Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX integration to %{name}
1582 Group: Development/Java
1583 Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
1584 Requires: openjfx8%{?_isa}
1585 Provides: javafx = %{epoch}:%{version}-%{release}
1586 %description openjfx
1587 Set of links from OpenJDK (jre) to OpenJFX
1588
1589 %package openjfx-devel
1590 Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks finishing Java FX integration to %{name}-devel
1591 Group: Development/Java
1592 Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
1593 Requires: openjfx8-devel%{?_isa}
1594 Provides: javafx-devel = %{epoch}:%{version}-%{release}
1595 %description openjfx-devel
1596 Set of links from OpenJDK (sdk) to OpenJFX
1597
1598 %if %{include_debug_build}
1599 %package openjfx-slowdebug
1600 Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing Java FX integration to %{name}-slowdebug
1601 Group: Development/Java
1602 Requires: %{name}-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
1603 Requires: openjfx8%{?_isa}
1604 Provides: javafx-slowdebug = %{epoch}:%{version}-%{release}
1605 %description openjfx-slowdebug
1606 Set of links from OpenJDK-slowdebug (jre) to normal OpenJFX. OpenJFX do not support debug buuilds of itself
1607
1608 %package openjfx-devel-slowdebug
1609 Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds symliks finishing Java FX integration to %{name}-devel-slowdebug
1610 Group: Development/Java
1611 Requires: %{name}-devel-slowdebug%{?_isa} = %{epoch}:%{version}-%{release}
1612 Requires: openjfx8-devel%{?_isa}
1613 Provides: javafx-devel-slowdebug = %{epoch}:%{version}-%{release}
1614 %description openjfx-devel-slowdebug
1615 Set of links from OpenJDK-slowdebug (sdk) to normal OpenJFX. OpenJFX do not support debug buuilds of itself
1616 %endif
1617 %endif
1618
1619 %prep
1620
1621 # Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
1622 %if 0%{?stapinstall:1}
1623 echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}"
1624 %else
1625 %{error:Unrecognised architecture %{_target_cpu}}
1626 %endif
1627
1628 if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
1629 echo "include_normal_build is %{include_normal_build}"
1630 else
1631 echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for yes or 0 for no"
1632 exit 11
1633 fi
1634 if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then
1635 echo "include_debug_build is %{include_debug_build}"
1636 else
1637 echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes or 0 for no"
1638 exit 12
1639 fi
1640 if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
1641 echo "You have disabled both include_debug_build and include_normal_build. That is a no go."
1642 exit 13
1643 fi
1644
1645 echo "Update version: %{updatever}"
1646 echo "Build number: %{buildver}"
1647 echo "Milestone: %{milestone}"
1648 %setup -q -c -n %{uniquesuffix ""} -T -a 0
1649 # https://bugzilla.redhat.com/show_bug.cgi?id=1189084
1650 prioritylength=`expr length %{priority}`
1651 if [ $prioritylength -ne 7 ] ; then
1652 echo "priority must be 7 digits in total, violated"
1653 exit 14
1654 fi
1655 # For old patches
1656 ln -s %{top_level_dir_name} jdk8
1657
1658 cp %{SOURCE2} .
1659
1660 # replace outdated configure guess script
1661 #
1662 # the configure macro will do this too, but it also passes a few flags not
1663 # supported by openjdk configure script
1664 cp %{SOURCE100} %{top_level_dir_name}/common/autoconf/build-aux/
1665 cp %{SOURCE101} %{top_level_dir_name}/common/autoconf/build-aux/
1666
1667 # OpenJDK patches
1668
1669 # Remove libraries that are linked
1670 sh %{SOURCE12}
1671
1672 # System library fixes
1673 %patch201
1674 %patch202
1675 %patch203
1676 %patch204
1677
1678 # System security policy fixes
1679 %patch400
1680 %patch401
1681
1682 %patch1
1683 %patch3
1684 %patch5
1685
1686 # s390 build fixes
1687 %patch102
1688 %patch103
1689 %patch107
1690
1691 # AArch64 fixes
1692 %patch106
1693
1694 # x86 fixes
1695 %patch105
1696
1697 # Upstreamable fixes
1698 %patch502
1699 %patch504
1700 %patch512
1701 %patch523
1702 %patch528
1703 %patch529
1704 %patch531
1705 %patch530
1706 %patch571
1707 %patch574
1708 %patch575
1709 %patch577
1710 %patch111
1711
1712 # RPM-only fixes
1713 %patch539
1714 %patch1000
1715
1716 # RHEL-only patches
1717 %if ! 0%{?fedora} && 0%{?rhel} <= 7
1718 %patch534
1719 %endif
1720
1721 # Shenandoah patches
1722
1723 # Extract systemtap tapsets
1724 %if %{with_systemtap}
1725 tar --strip-components=1 -x -I xz -f %{SOURCE8}
1726 %if %{include_debug_build}
1727 cp -r tapset tapset%{debug_suffix}
1728 %endif
1729
1730
1731 for suffix in %{build_loop} ; do
1732 for file in "tapset"$suffix/*.in; do
1733 OUTPUT_FILE=`echo $file | sed -e "s:\.stp\.in$:-%{version}-%{release}.%{_arch}.stp:g"`
1734 sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1
1735 # TODO find out which architectures other than i686 have a client vm
1736 %ifarch %{ix86}
1737 sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/jre/lib/%{archinstall}/client/libjvm.so:g" $file.1 > $OUTPUT_FILE
1738 %else
1739 sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.1 > $OUTPUT_FILE
1740 %endif
1741 sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g" $OUTPUT_FILE
1742 sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE
1743 sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE
1744 done
1745 done
1746 # systemtap tapsets ends
1747 %endif
1748
1749 # Prepare desktop files
1750 # The _X_ syntax indicates variables that are replaced by make upstream
1751 # The @X@ syntax indicates variables that are replaced by configure upstream
1752 for suffix in %{build_loop} ; do
1753 for file in %{SOURCE9} %{SOURCE10} ; do
1754 FILE=`basename $file | sed -e s:\.in$::g`
1755 EXT="${FILE##*.}"
1756 NAME="${FILE%.*}"
1757 OUTPUT_FILE=$NAME$suffix.$EXT
1758 sed -e "s:_SDKBINDIR_:%{sdkbindir -- $suffix}:g" $file > $OUTPUT_FILE
1759 sed -i -e "s:_JREBINDIR_:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
1760 sed -i -e "s:@target_cpu@:%{_arch}:g" $OUTPUT_FILE
1761 sed -i -e "s:@OPENJDK_VER@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
1762 sed -i -e "s:@JAVA_VER@:%{javaver}:g" $OUTPUT_FILE
1763 sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
1764 done
1765 done
1766
1767 # Setup nss.cfg
1768 sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
1769
1770
1771 %build
1772 # How many CPU's do we have?
1773 export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
1774 export NUM_PROC=${NUM_PROC:-1}
1775 %if 0%{?_smp_ncpus_max}
1776 # Honor %%_smp_ncpus_max
1777 [ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
1778 %endif
1779
1780 %ifarch s390x sparc64 alpha %{power64} %{aarch64}
1781 export ARCH_DATA_MODEL=64
1782 %endif
1783 %ifarch alpha
1784 export CFLAGS="$CFLAGS -mieee"
1785 %endif
1786
1787 # We use ourcppflags because the OpenJDK build seems to
1788 # pass EXTRA_CFLAGS to the HotSpot C++ compiler...
1789 EXTRA_CFLAGS="%ourcppflags -Wno-error -fcommon"
1790 EXTRA_CPP_FLAGS="%ourcppflags"
1791
1792 %ifarch %{power64} ppc
1793 # fix rpmlint warnings
1794 EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
1795 %endif
1796
1797 EXTRA_ASFLAGS="${EXTRA_CFLAGS} -Wa,--generate-missing-build-notes=yes"
1798 export EXTRA_CFLAGS EXTRA_ASFLAGS
1799
1800 (cd %{top_level_dir_name}/common/autoconf
1801 bash ./autogen.sh
1802 )
1803
1804 function buildjdk() {
1805 local outputdir=${1}
1806 local buildjdk=${2}
1807 local maketargets=${3}
1808 local debuglevel=${4}
1809
1810 local top_srcdir_abs_path=$(pwd)/%{top_level_dir_name}
1811 # Variable used in hs_err hook on build failures
1812 local top_builddir_abs_path=$(pwd)/${outputdir}
1813
1814 export CC=%__cc
1815 echo "Checking build JDK ${buildjdk} is operational..."
1816 ${buildjdk}/bin/java -version
1817 echo "Building 8u%{updatever}-%{buildver}, milestone %{milestone}"
1818
1819 mkdir -p ${outputdir}
1820 pushd ${outputdir}
1821
1822 bash ${top_srcdir_abs_path}/configure \
1823 %ifarch %{jfr_arches}
1824 --enable-jfr \
1825 %else
1826 --disable-jfr \
1827 %endif
1828 %ifnarch %{jit_arches}
1829 --with-jvm-variants=zero \
1830 %endif
1831 --with-native-debug-symbols=internal \
1832 --with-milestone=%{milestone} \
1833 --with-update-version=%{updatever} \
1834 --with-build-number=%{buildver} \
1835 --with-vendor-name="Mageia" \
1836 --with-vendor-url="https://www.mageia.org/" \
1837 --with-vendor-bug-url="%{bugs}" \
1838 --with-vendor-vm-bug-url="%{bugs}" \
1839 --with-boot-jdk=${buildjdk} \
1840 --with-debug-level=${debuglevel} \
1841 --enable-unlimited-crypto \
1842 --with-zlib=system \
1843 --with-libjpeg=system \
1844 --with-giflib=system \
1845 --with-libpng=system \
1846 --with-lcms=system \
1847 --with-stdc++lib=dynamic \
1848 --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
1849 --with-extra-cflags="$EXTRA_CFLAGS" \
1850 --with-extra-asflags="$EXTRA_ASFLAGS" \
1851 --with-extra-ldflags="%{ourldflags}" \
1852 --with-num-cores="$NUM_PROC"
1853
1854 cat spec.gmk
1855 cat hotspot-spec.gmk
1856
1857 make \
1858 JAVAC_FLAGS=-g \
1859 LOG=trace \
1860 SCTP_WERROR= \
1861 ${maketargets} || ( pwd; find ${top_srcdir_abs_path} ${top_builddir_abs_path} -name "hs_err_pid*.log" | xargs cat && false )
1862
1863 # the build (erroneously) removes read permissions from some jars
1864 # this is a regression in OpenJDK 7 (our compiler):
1865 # http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
1866 find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
1867 chmod ugo+r images/%{jdkimage}/lib/ct.sym
1868
1869 # remove redundant *diz and *debuginfo files
1870 find images/%{jdkimage} -iname '*.diz' -exec rm -v {} \;
1871 find images/%{jdkimage} -iname '*.debuginfo' -exec rm -v {} \;
1872
1873 # Build screws up permissions on binaries
1874 # https://bugs.openjdk.java.net/browse/JDK-8173610
1875 find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
1876 find images/%{jdkimage}/bin/ -exec chmod +x {} \;
1877
1878 popd >& /dev/null
1879 }
1880
1881 for suffix in %{build_loop} ; do
1882 if [ "x$suffix" = "x" ] ; then
1883 debugbuild=release
1884 else
1885 # change --something to something
1886 debugbuild=`echo $suffix | sed "s/-//g"`
1887 fi
1888
1889 systemjdk=/usr/lib/jvm/java-openjdk
1890 builddir=%{buildoutputdir -- $suffix}
1891 bootbuilddir=boot${builddir}
1892
1893 # Debug builds don't need same targets as release for
1894 # build speed-up
1895 maketargets="%{release_targets}"
1896 if echo $debugbuild | grep -q "debug" ; then
1897 maketargets="%{debug_targets}"
1898 fi
1899
1900 %if %{bootstrap_build}
1901 buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild}
1902 buildjdk ${builddir} $(pwd)/${bootbuilddir}/images/%{jdkimage} "${maketargets}" ${debugbuild}
1903 rm -rf ${bootbuilddir}
1904 %else
1905 buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild}
1906 %endif
1907
1908 # Install nss.cfg right away as we will be using the JRE above
1909 export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
1910
1911 # Install nss.cfg right away as we will be using the JRE above
1912 install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
1913
1914 # Use system-wide tzdata
1915 rm $JAVA_HOME/jre/lib/tzdb.dat
1916 ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
1917
1918 # build cycles
1919 done
1920
1921 %check
1922
1923 # We test debug first as it will give better diagnostics on a crash
1924 for suffix in %{rev_build_loop} ; do
1925
1926 export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
1927
1928 # Check unlimited policy has been used
1929 $JAVA_HOME/bin/javac -d . %{SOURCE13}
1930 $JAVA_HOME/bin/java TestCryptoLevel
1931
1932 # Check ECC is working
1933 $JAVA_HOME/bin/javac -d . %{SOURCE14}
1934 $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
1935
1936 # Verify system crypto (policy) can be disabled
1937 $JAVA_HOME/bin/javac -d . %{SOURCE15}
1938 $JAVA_HOME/bin/java -Djava.security.disableSystemPropertiesFile=true $(echo $(basename %{SOURCE15})|sed "s|\.java||")
1939
1940 # Check debug symbols are present and can identify code
1941 find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0' lib
1942 do
1943 if [ -f "$lib" ] ; then
1944 echo "Testing $lib for debug symbols"
1945 # All these tests rely on RPM failing the build if the exit code of any set
1946 # of piped commands is non-zero.
1947
1948 # Test for .debug_* sections in the shared object. This is the main test
1949 # Stripped objects will not contain these
1950 eu-readelf -S "$lib" | grep "] .debug_"
1951 test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2
1952
1953 # Test FILE symbols. These will most likely be removed by anything that
1954 # manipulates symbol tables because it's generally useless. So a nice test
1955 # that nothing has messed with symbols
1956 old_IFS="$IFS"
1957 IFS=$'\n'
1958 for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT")
1959 do
1960 # We expect to see .cpp files, except for architectures like aarch64 and
1961 # s390 where we expect .o and .oS files
1962 echo "$line" | grep -E "ABS ((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$"
1963 done
1964 IFS="$old_IFS"
1965
1966 # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking
1967 if [ "`basename $lib`" = "libjvm.so" ]; then
1968 eu-readelf -s "$lib" | \
1969 grep -E "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$"
1970 fi
1971
1972 # Test that there are no .gnu_debuglink sections pointing to another
1973 # debuginfo file. There shouldn't be any debuginfo files, so the link makes
1974 # no sense either
1975 eu-readelf -S "$lib" | grep 'gnu'
1976 if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then
1977 echo "bad .gnu_debuglink section."
1978 eu-readelf -x .gnu_debuglink "$lib"
1979 false
1980 fi
1981 fi
1982 done
1983
1984 # Make sure gdb can do a backtrace based on line numbers on libjvm.so
1985 # javaCalls.cpp:58 should map to:
1986 # http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58
1987 # Using line number 1 might cause build problems. See:
1988 # https://bugzilla.redhat.com/show_bug.cgi?id=1539664
1989 # https://bugzilla.redhat.com/show_bug.cgi?id=1538767
1990 gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
1991 handle SIGSEGV pass nostop noprint
1992 handle SIGILL pass nostop noprint
1993 set breakpoint pending on
1994 break javaCalls.cpp:58
1995 commands 1
1996 backtrace
1997 quit
1998 end
1999 run -version
2000 EOF
2001 grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
2002
2003 # Check src.zip has all sources. See RHBZ#1130490
2004 jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
2005
2006 # Check class files include useful debugging information
2007 $JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from"
2008 $JAVA_HOME/bin/javap -l java.lang.Object | grep LineNumberTable
2009 $JAVA_HOME/bin/javap -l java.lang.Object | grep LocalVariableTable
2010
2011 # Check generated class files include useful debugging information
2012 $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
2013 $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
2014 $JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
2015
2016 # build cycles check
2017 done
2018
2019 %install
2020 STRIP_KEEP_SYMTAB=libjvm*
2021
2022 for suffix in %{build_loop} ; do
2023
2024 # Install the jdk
2025 pushd %{buildoutputdir -- $suffix}/images/%{jdkimage}
2026
2027 # Install jsa directories so we can owe them
2028 mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
2029 mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
2030
2031 # Install main files.
2032 install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
2033 cp -a bin include lib src.zip {ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
2034 install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
2035 cp -a jre/bin jre/lib jre/{ASSEMBLY_EXCEPTION,LICENSE,THIRD_PARTY_README} $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
2036
2037 %if %{with_systemtap}
2038 # Install systemtap support files
2039 install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
2040 # note, that uniquesuffix is in BUILD dir in this case
2041 cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
2042 pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
2043 tapsetFiles=`ls *.stp`
2044 popd
2045 install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
2046 for name in $tapsetFiles ; do
2047 targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
2048 ln -sf %{_jvmdir}/%{sdkdir -- $suffix}/tapset/$name $RPM_BUILD_ROOT%{tapsetdir}/$targetName
2049 done
2050 %endif
2051
2052 # Remove empty cacerts database
2053 rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts
2054 # Install cacerts symlink needed by some apps which hardcode the path
2055 pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security
2056 ln -sf /etc/pki/java/cacerts .
2057 popd
2058
2059 # Install versioned symlinks
2060 pushd $RPM_BUILD_ROOT%{_jvmdir}
2061 ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix}
2062 popd
2063
2064 # Remove javaws man page
2065 rm -f man/man1/javaws*
2066
2067 # Install man pages
2068 install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
2069 for manpage in man/man1/*
2070 do
2071 # Convert man pages to UTF8 encoding
2072 iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
2073 mv -f $manpage.tmp $manpage
2074 install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
2075 $manpage .1)-%{uniquesuffix -- $suffix}.1
2076 done
2077
2078 # Install demos and samples.
2079 cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
2080 mkdir -p sample/rmi
2081 if [ ! -e sample/rmi/java-rmi.cgi ] ; then
2082 # hack to allow --short-circuit on install
2083 mv bin/java-rmi.cgi sample/rmi
2084 fi
2085 cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
2086
2087 popd
2088
2089 if ! echo $suffix | grep -q "debug" ; then
2090 # Install Javadoc documentation
2091 install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
2092 cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}
2093 built_doc_archive=`echo "jdk-%{javaver}_%{updatever}%{milestone_version}$suffix-%{buildver}-docs.zip" | sed s/slowdebug/debug/`
2094 cp -a %{buildoutputdir -- $suffix}/bundles/$built_doc_archive $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
2095 fi
2096
2097 # Install release notes
2098 commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
2099 install -d -m 755 ${commondocdir}
2100 cp -a %{SOURCE7} ${commondocdir}
2101
2102 # Install icons and menu entries
2103 for s in 16 24 32 48 ; do
2104 install -D -p -m 644 \
2105 %{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
2106 $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
2107 done
2108
2109 # Install desktop files
2110 install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
2111 for e in jconsole$suffix policytool$suffix ; do
2112 desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \
2113 --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
2114 done
2115
2116 # Install /etc/.java/.systemPrefs/ directory
2117 # See https://bugzilla.redhat.com/show_bug.cgi?id=741821
2118 mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
2119
2120 # FIXME: remove SONAME entries from demo DSOs. See
2121 # https://bugzilla.redhat.com/show_bug.cgi?id=436497
2122
2123 # Find non-documentation demo files.
2124 find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
2125 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
2126 -type f -o -type l | sort \
2127 | grep -v README \
2128 | sed 's|'$RPM_BUILD_ROOT'||' \
2129 >> %{name}-demo.files"$suffix"
2130 # Find documentation demo files.
2131 find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
2132 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
2133 -type f -o -type l | sort \
2134 | grep README \
2135 | sed 's|'$RPM_BUILD_ROOT'||' \
2136 | sed 's|^|%doc |' \
2137 >> %{name}-demo.files"$suffix"
2138
2139 # Create links which leads to separately installed java-atk-bridge and allow configuration
2140 # links points to java-atk-wrapper - an dependence
2141 pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}
2142 ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
2143 popd
2144 pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext
2145 ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
2146 popd
2147 pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/
2148 echo "#Config file to enable java-atk-wrapper" > accessibility.properties
2149 echo "" >> accessibility.properties
2150 echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >> accessibility.properties
2151 echo "" >> accessibility.properties
2152 popd
2153
2154 # intentionally after all else, fx links with redirections on its own
2155 %if %{with_openjfx_binding}
2156 FXSDK_FILES=%{name}-openjfx-devel.files"$suffix"
2157 FXJRE_FILES=%{name}-openjfx.files"$suffix"
2158 echo -n "" > $FXJRE_FILES
2159 echo -n "" > $FXSDK_FILES
2160 for file in %{jfx_jre_libs} ; do
2161 srcfile=%{jfx_jre_libs_dir}/$file
2162 targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file
2163 ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
2164 echo $targetfile >> $FXJRE_FILES
2165 done
2166 for file in %{jfx_jre_native} ; do
2167 srcfile=%{jfx_jre_native_dir}/$file
2168 targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file
2169 ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
2170 echo $targetfile >> $FXJRE_FILES
2171 done
2172 for file in %{jfx_jre_exts} ; do
2173 srcfile=%{jfx_jre_exts_dir}/$file
2174 targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file
2175 ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
2176 echo $targetfile >> $FXJRE_FILES
2177 done
2178 for file in %{jfx_sdk_libs} ; do
2179 srcfile=%{jfx_sdk_libs_dir}/$file
2180 targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file
2181 ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
2182 echo $targetfile >> $FXSDK_FILES
2183 done
2184 for file in %{jfx_sdk_bins} ; do
2185 srcfile=%{jfx_sdk_bins_dir}/$file
2186 targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file
2187 ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
2188 echo $targetfile >> $FXSDK_FILES
2189 done
2190 %endif
2191
2192 bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
2193 # https://bugzilla.redhat.com/show_bug.cgi?id=1183793
2194 touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/security/java.security
2195
2196 # moving config files to /etc
2197 mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/unlimited/
2198 mkdir -p $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/lib/security/policy/limited/
2199 for file in lib/security/cacerts lib/security/policy/unlimited/US_export_policy.jar lib/security/policy/unlimited/local_policy.jar lib/security/policy/limited/US_export_policy.jar lib/security/policy/limited/local_policy.jar lib/security/java.policy lib/security/java.security lib/security/blacklisted.certs lib/logging.properties lib/calendars.properties lib/security/nss.cfg lib/net.properties ; do
2200 mv $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file $RPM_BUILD_ROOT/%{etcjavadir -- $suffix}/$file
2201 ln -sf %{etcjavadir -- $suffix}/$file $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/$file
2202 done
2203
2204 # stabilize permissions
2205 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod 755 {} \; ;
2206 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
2207 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ;
2208 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec chmod 644 {} \; ;
2209 find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "THIRD_PARTY_README" -exec chmod 644 {} \; ;
2210
2211 # end, dual install
2212 done
2213
2214 %if %{include_normal_build}
2215 # intentionally only for non-debug
2216 %pretrans headless -p <lua>
2217 -- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
2218 -- see https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
2219 -- if copy-jdk-configs is in transaction, it installs in pretrans to temp
2220 -- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction and so is
2221 -- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
2222 -- whether copy-jdk-configs is installed or not. If so, then configs are copied
2223 -- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
2224 local posix = require "posix"
2225 local debug = false
2226
2227 SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua"
2228 SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua"
2229
2230 local stat1 = posix.stat(SOURCE1, "type");
2231 local stat2 = posix.stat(SOURCE2, "type");
2232
2233 if (stat1 ~= nil) then
2234 if (debug) then
2235 print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this one.")
2236 end;
2237 package.path = package.path .. ";" .. SOURCE1
2238 else
2239 if (stat2 ~= nil) then
2240 if (debug) then
2241 print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in transaction. Using.")
2242 end;
2243 package.path = package.path .. ";" .. SOURCE2
2244 else
2245 if (debug) then
2246 print(SOURCE1 .." does NOT exists")
2247 print(SOURCE2 .." does NOT exists")
2248 print("No config files will be copied")
2249 end
2250 return
2251 end
2252 end
2253 -- run content of included file with fake args
2254 arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"}
2255 require "copy_jdk_configs.lua"
2256
2257 %post
2258 %{post_script %{nil}}
2259
2260 %post headless
2261 %{post_headless %{nil}}
2262
2263 %postun
2264 %{postun_script %{nil}}
2265
2266 %postun headless
2267 %{postun_headless %{nil}}
2268
2269 %posttrans
2270 %{posttrans_script %{nil}}
2271
2272 %post devel
2273 %{post_devel %{nil}}
2274
2275 %postun devel
2276 %{postun_devel %{nil}}
2277
2278 %posttrans devel
2279 %{posttrans_devel %{nil}}
2280
2281 %post javadoc
2282 %{post_javadoc %{nil}}
2283
2284 %postun javadoc
2285 %{postun_javadoc %{nil}}
2286
2287 %post javadoc-zip
2288 %{post_javadoc_zip %{nil}}
2289
2290 %postun javadoc-zip
2291 %{postun_javadoc_zip %{nil}}
2292 %endif
2293
2294 %if %{include_debug_build}
2295 %post slowdebug
2296 %{post_script -- %{debug_suffix_unquoted}}
2297
2298 %post headless-slowdebug
2299 %{post_headless -- %{debug_suffix_unquoted}}
2300
2301 %postun slowdebug
2302 %{postun_script -- %{debug_suffix_unquoted}}
2303
2304 %postun headless-slowdebug
2305 %{postun_headless -- %{debug_suffix_unquoted}}
2306
2307 %posttrans slowdebug
2308 %{posttrans_script -- %{debug_suffix_unquoted}}
2309
2310 %post devel-slowdebug
2311 %{post_devel -- %{debug_suffix_unquoted}}
2312
2313 %postun devel-slowdebug
2314 %{postun_devel -- %{debug_suffix_unquoted}}
2315
2316 %posttrans devel-slowdebug
2317 %{posttrans_devel -- %{debug_suffix_unquoted}}
2318
2319 %endif
2320
2321 %if %{include_normal_build}
2322 %files
2323 # main package builds always
2324 %{files_jre %{nil}}
2325 %else
2326 %files
2327 # placeholder
2328 %endif
2329
2330
2331 %if %{include_normal_build}
2332 %files headless
2333 # important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
2334 # all config/noreplace files (and more) have to be declared in pretrans. See pretrans
2335 %{files_jre_headless %{nil}}
2336
2337 %files devel
2338 %{files_devel %{nil}}
2339
2340 %files demo -f %{name}-demo.files
2341 %{files_demo %{nil}}
2342
2343 %files src
2344 %{files_src %{nil}}
2345
2346 %files javadoc
2347 %{files_javadoc %{nil}}
2348
2349 # this puts huge file to /usr/share
2350 # unluckily ti is really a documentation file
2351 # and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64 only
2352 # same for debug variant
2353 %files javadoc-zip
2354 %{files_javadoc_zip %{nil}}
2355
2356 %files accessibility
2357 %{files_accessibility %{nil}}
2358
2359 %if %{with_openjfx_binding}
2360 %files openjfx -f %{name}-openjfx.files
2361
2362 %files openjfx-devel -f %{name}-openjfx-devel.files
2363 %endif
2364 %endif
2365
2366 %if %{include_debug_build}
2367 %files slowdebug
2368 %{files_jre -- %{debug_suffix_unquoted}}
2369
2370 %files headless-slowdebug
2371 %{files_jre_headless -- %{debug_suffix_unquoted}}
2372
2373 %files devel-slowdebug
2374 %{files_devel -- %{debug_suffix_unquoted}}
2375
2376 %files demo-slowdebug -f %{name}-demo.files-slowdebug
2377 %{files_demo -- %{debug_suffix_unquoted}}
2378
2379 %files src-slowdebug
2380 %{files_src -- %{debug_suffix_unquoted}}
2381
2382 %files accessibility-slowdebug
2383 %{files_accessibility -- %{debug_suffix_unquoted}}
2384
2385 %if %{with_openjfx_binding}
2386 %files openjfx-slowdebug -f %{name}-openjfx.files-slowdebug
2387
2388 %files openjfx-devel-slowdebug -f %{name}-openjfx-devel.files-slowdebug
2389 %endif
2390 %endif
2391
2392

  ViewVC Help
Powered by ViewVC 1.1.30