/[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 1902496 - (show annotations) (download)
Fri Nov 4 09:10:46 2022 UTC (17 months, 2 weeks ago) by ns80
File size: 102221 byte(s)
- Update to shenandoah-jdk8u352-b08 (GA)
- Update release notes for 8u352-b08.

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

  ViewVC Help
Powered by ViewVC 1.1.30