Blame SPECS/java-11-openjdk.spec

2535c8
# RPM conditionals so as to be able to dynamically produce
2535c8
# slowdebug/release builds. See:
2535c8
# http://rpm.org/user_doc/conditional_builds.html
2535c8
#
2535c8
# Examples:
2535c8
#
2535c8
# Produce release *and* slowdebug builds on x86_64 (default):
2535c8
# $ rpmbuild -ba java-1.8.0-openjdk.spec
2535c8
#
2535c8
# Produce only release builds (no slowdebug builds) on x86_64:
2535c8
# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
2535c8
#
2535c8
# Only produce a release build on x86_64:
2535c8
# $ fedpkg mockbuild --without slowdebug
2535c8
#
2535c8
# Only produce a debug build on x86_64:
2535c8
# $ fedpkg local --without release
2535c8
#
2535c8
# Enable slowdebug builds by default on relevant arches.
2535c8
%bcond_without slowdebug
2535c8
# Enable release builds by default on relevant arches.
2535c8
%bcond_without release
2535c8
2535c8
# The -g flag says to use strip -g instead of full strip on DSOs or EXEs.
2535c8
# This fixes detailed NMT and other tools which need minimal debug info.
2535c8
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1520879
2535c8
%global _find_debuginfo_opts -g
2535c8
2535c8
# note: parametrized macros are order-sensitive (unlike not-parametrized) even with normal macros
2535c8
# also necessary when passing it as parameter to other macros. If not macro, then it is considered a switch
2535c8
# see the difference between global and define:
2535c8
# See https://github.com/rpm-software-management/rpm/issues/127 to comments at  "pmatilai commented on Aug 18, 2017"
2535c8
# (initiated in https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
2535c8
%global debug_suffix_unquoted -debug
2535c8
# quoted one for shell operations
2535c8
%global debug_suffix "%{debug_suffix_unquoted}"
2535c8
%global normal_suffix ""
2535c8
2535c8
# if you want only debug build but providing java build only normal build but set normalbuild_parameter
2535c8
%global debug_warning This package has full debug on. Install only in need and remove asap.
2535c8
%global debug_on with full debug on
2535c8
%global for_debug for packages with debug on
2535c8
2535c8
%if %{with release}
2535c8
%global include_normal_build 1
2535c8
%else
2535c8
%global include_normal_build 0
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%global build_loop1 %{normal_suffix}
2535c8
%else
2535c8
%global build_loop1 %{nil}
2535c8
%endif
2535c8
2535c8
%global aarch64         aarch64 arm64 armv8
2535c8
# we need to distinguish between big and little endian PPC64
2535c8
%global ppc64le         ppc64le
2535c8
%global ppc64be         ppc64 ppc64p7
2535c8
%global multilib_arches %{power64} sparc64 x86_64
2535c8
%global jit_arches      %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm} s390x
2535c8
%global aot_arches      x86_64 %{aarch64}
2535c8
2535c8
# By default, we build a debug build during main build on JIT architectures
2535c8
%if %{with slowdebug}
2535c8
%ifarch %{jit_arches}
2535c8
%ifnarch %{arm}
2535c8
%global include_debug_build 1
2535c8
%else
2535c8
%global include_debug_build 0
2535c8
%endif
2535c8
%else
2535c8
%global include_debug_build 0
2535c8
%endif
2535c8
%else
2535c8
%global include_debug_build 0
2535c8
%endif
2535c8
2535c8
# On x86_64 and AArch64, we use the Shenandoah HotSpot
2535c8
%ifarch x86_64 %{aarch64}
2535c8
%global use_shenandoah_hotspot 1
2535c8
%else
2535c8
%global use_shenandoah_hotspot 0
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%global build_loop2 %{debug_suffix}
2535c8
%else
2535c8
%global build_loop2 %{nil}
2535c8
%endif
2535c8
2535c8
# if you disable both builds, then the build fails
2535c8
# Note that the debug build requires the normal build for docs
2535c8
%global build_loop  %{build_loop1} %{build_loop2}
2535c8
# note: that order: normal_suffix debug_suffix, in case of both enabled
2535c8
# is expected in one single case at the end of the build
2535c8
%global rev_build_loop  %{build_loop2} %{build_loop1}
2535c8
2535c8
%ifarch %{jit_arches}
2535c8
%global bootstrap_build 1
2535c8
%else
2535c8
%global bootstrap_build 1
2535c8
%endif
2535c8
2535c8
%if %{bootstrap_build}
2535c8
%global release_targets bootcycle-images docs-zip
2535c8
%else
2535c8
%global release_targets images docs-zip
2535c8
%endif
2535c8
# No docs nor bootcycle for debug builds
2535c8
%global debug_targets images
2535c8
2535c8
2535c8
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
2535c8
# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
2535c8
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs)
2535c8
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid FORTIFY_SOURCE warnings
2535c8
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and it's otherwise the default for C++
2535c8
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r -e 's|-O[0-9]*||')
2535c8
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
2535c8
%global ourldflags %{__global_ldflags}
2535c8
2535c8
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
2535c8
# the initialization must be here. Later the pkg-config have buggy behavior
2535c8
# looks like openjdk RPM specific bug
2535c8
# Always set this so the nss.cfg file is not broken
2535c8
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
2535c8
2535c8
# fix for https://bugzilla.redhat.com/show_bug.cgi?id=1111349
2535c8
%global _privatelibs libsplashscreen[.]so.*|libawt_xawt[.]so.*|libjli[.]so.*|libattach[.]so.*|libawt[.]so.*|libextnet[.]so.*|libawt_headless[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjimage[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmanagement_agent[.]so.*|libmanagement_ext[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libprefs[.]so.*|librmi[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*
2535c8
2535c8
%global __provides_exclude ^(%{_privatelibs})$
2535c8
%global __requires_exclude ^(%{_privatelibs})$
2535c8
2535c8
# In some cases, the arch used by the JDK does
2535c8
# not match _arch.
2535c8
# Also, in some cases, the machine name used by SystemTap
2535c8
# does not match that given by _build_cpu
2535c8
%ifarch x86_64
2535c8
%global archinstall amd64
2535c8
%endif
2535c8
%ifarch ppc
2535c8
%global archinstall ppc
2535c8
%endif
2535c8
%ifarch %{ppc64be}
2535c8
%global archinstall ppc64
2535c8
%endif
2535c8
%ifarch %{ppc64le}
2535c8
%global archinstall ppc64le
2535c8
%endif
2535c8
%ifarch %{ix86}
2535c8
%global archinstall i686
2535c8
%endif
2535c8
%ifarch ia64
2535c8
%global archinstall ia64
2535c8
%endif
2535c8
%ifarch s390
2535c8
%global archinstall s390
2535c8
%endif
2535c8
%ifarch s390x
2535c8
%global archinstall s390x
2535c8
%endif
2535c8
%ifarch %{arm}
2535c8
%global archinstall arm
2535c8
%endif
2535c8
%ifarch %{aarch64}
2535c8
%global archinstall aarch64
2535c8
%endif
2535c8
# 32 bit sparc, optimized for v9
2535c8
%ifarch sparcv9
2535c8
%global archinstall sparc
2535c8
%endif
2535c8
# 64 bit sparc
2535c8
%ifarch sparc64
2535c8
%global archinstall sparcv9
2535c8
%endif
2535c8
%ifnarch %{jit_arches}
2535c8
%global archinstall %{_arch}
2535c8
%endif
2535c8
2535c8
2535c8
2535c8
%ifarch %{jit_arches}
2535c8
%global with_systemtap 1
2535c8
%else
2535c8
%global with_systemtap 0
2535c8
%endif
2535c8
2535c8
# New Version-String scheme-style defines
2535c8
%global majorver 11
2535c8
%global securityver 5
2535c8
# buildjdkver is usually same as %%{majorver},
2535c8
# but in time of bootstrap of next jdk, it is majorver-1, 
2535c8
# and this it is better to change it here, on single place
2535c8
%global buildjdkver %{majorver}
2535c8
# Used via new version scheme. JDK 11 was
2535c8
# GA'ed in September 2018 => 18.9
2535c8
%global vendor_version_string 18.9
2535c8
# Add LTS designator for RHEL builds
2535c8
%if 0%{?rhel}
2535c8
  %global lts_designator "LTS"
2535c8
  %global lts_designator_zip -%{lts_designator}
2535c8
%else
2535c8
  %global lts_designator ""
2535c8
  %global lts_designator_zip ""
2535c8
%endif
2535c8
2535c8
# Standard JPackage naming and versioning defines
2535c8
%global origin          openjdk
2535c8
%global origin_nice     OpenJDK
2535c8
%global top_level_dir_name   %{origin}
2535c8
%global minorver        0
2535c8
%global buildver        2
2535c8
%global rpmrelease      2
2535c8
#%%global tagsuffix      %{nil}
2535c8
# priority must be 7 digits in total
2535c8
# setting to 1, so debug ones can have 0
2535c8
%global priority        00000%{minorver}1
2535c8
%global newjavaver      %{majorver}.%{minorver}.%{securityver}
2535c8
2535c8
%global javaver         %{majorver}
2535c8
2535c8
# Define milestone (EA for pre-releases, GA for releases)
2535c8
# Release will be (where N is usually a number starting at 1):
2535c8
# - 0.N%%{?extraver}%%{?dist} for EA releases,
2535c8
# - N%%{?extraver}{?dist} for GA releases
2535c8
%global is_ga           0
2535c8
%if %{is_ga}
2535c8
%global ea_designator ""
2535c8
%global ea_designator_zip ""
2535c8
%global extraver %{nil}
2535c8
%global eaprefix %{nil}
2535c8
%else
2535c8
%global ea_designator ea
2535c8
%global ea_designator_zip -%{ea_designator}
2535c8
%global extraver .%{ea_designator}
2535c8
%global eaprefix 0.
2535c8
%endif
2535c8
2535c8
# parametrized macros are order-sensitive
2535c8
%global compatiblename  java-%{majorver}-%{origin}
2535c8
%global fullversion     %{compatiblename}-%{version}-%{release}
2535c8
# images stub
2535c8
%global jdkimage       jdk
2535c8
# output dir stub
2535c8
%global buildoutputdir() %{expand:openjdk/build%1}
2535c8
# we can copy the javadoc to not arched dir, or make it not noarch
2535c8
# javadoc is no longer noarch, as it have aot on only some arches
2535c8
%global uniquejavadocdir()    %{expand:%{fullversion}.%{_arch}%1}
2535c8
# main id and dir of this jdk
2535c8
%global uniquesuffix()        %{expand:%{fullversion}.%{_arch}%1}
2535c8
2535c8
# Standard JPackage directories and symbolic links.
2535c8
%global sdkdir()        %{expand:%{uniquesuffix %%1}}
2535c8
%global jrelnk()        %{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%1}
2535c8
2535c8
%global sdkbindir()     %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
2535c8
%global jrebindir()     %{expand:%{_jvmdir}/%{sdkdir %%1}/bin}
2535c8
2535c8
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
2535c8
2535c8
%if %{with_systemtap}
2535c8
# Where to install systemtap tapset (links)
2535c8
# We would like these to be in a package specific sub-dir,
2535c8
# but currently systemtap doesn't support that, so we have to
2535c8
# use the root tapset dir for now. To distinguish between 64
2535c8
# and 32 bit architectures we place the tapsets under the arch
2535c8
# specific dir (note that systemtap will only pickup the tapset
2535c8
# for the primary arch for now). Systemtap uses the machine name
2535c8
# aka build_cpu as architecture specific directory name.
2535c8
%global tapsetroot /usr/share/systemtap
2535c8
%global tapsetdirttapset %{tapsetroot}/tapset/
2535c8
%global tapsetdir %{tapsetdirttapset}/%{_build_cpu}
2535c8
%endif
2535c8
2535c8
# not-duplicated scriptlets for normal/debug packages
2535c8
%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
2535c8
2535c8
2535c8
%define post_script() %{expand:
2535c8
update-desktop-database %{_datadir}/applications &> /dev/null || :
2535c8
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
2535c8
exit 0
2535c8
}
2535c8
2535c8
2535c8
%define post_headless() %{expand:
2535c8
%ifarch %{jit_arches}
2535c8
# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
2535c8
%ifnarch %{ppc64le}
2535c8
# see https://bugzilla.redhat.com/show_bug.cgi?id=513605
2535c8
%{jrebindir %%1}/java -Xshare:dump >/dev/null 2>/dev/null
2535c8
%endif
2535c8
%endif
2535c8
2535c8
PRIORITY=%{priority}
2535c8
if [ "%1" == %{debug_suffix} ]; then
2535c8
  let PRIORITY=PRIORITY-1
2535c8
fi
2535c8
2535c8
ext=.gz
2535c8
alternatives \\
2535c8
  --install %{_bindir}/java java %{jrebindir %%1}/java $PRIORITY  --family %{name}.%{_arch} \\
2535c8
  --slave %{_jvmdir}/jre jre %{_jvmdir}/%{sdkdir %%1} \\
2535c8
  --slave %{_bindir}/jjs jjs %{jrebindir %%1}/jjs \\
2535c8
  --slave %{_bindir}/keytool keytool %{jrebindir %%1}/keytool \\
2535c8
  --slave %{_bindir}/pack200 pack200 %{jrebindir %%1}/pack200 \\
2535c8
  --slave %{_bindir}/rmid rmid %{jrebindir %%1}/rmid \\
2535c8
  --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir %%1}/rmiregistry \\
2535c8
  --slave %{_bindir}/unpack200 unpack200 %{jrebindir %%1}/unpack200 \\
2535c8
  --slave %{_mandir}/man1/java.1$ext java.1$ext \\
2535c8
  %{_mandir}/man1/java-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
2535c8
  %{_mandir}/man1/jjs-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
2535c8
  %{_mandir}/man1/keytool-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
2535c8
  %{_mandir}/man1/pack200-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
2535c8
  %{_mandir}/man1/rmid-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
2535c8
  %{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
2535c8
  %{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1$ext
2535c8
2535c8
for X in %{origin} %{javaver} ; do
2535c8
  alternatives --install %{_jvmdir}/jre-"$X" jre_"$X" %{_jvmdir}/%{sdkdir %%1} $PRIORITY --family %{name}.%{_arch}
2535c8
done
2535c8
2535c8
update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1} $PRIORITY  --family %{name}.%{_arch}
2535c8
2535c8
2535c8
update-desktop-database %{_datadir}/applications &> /dev/null || :
2535c8
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
2535c8
2535c8
# see pretrans where this file is declared
2535c8
# also see that pretrans is only for non-debug
2535c8
if [ ! "%1" == %{debug_suffix} ]; then
2535c8
  if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
2535c8
    sh  %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}  %{_jvmdir}/%{sdkdir %%1}
2535c8
  fi
2535c8
fi
2535c8
2535c8
exit 0
2535c8
}
2535c8
2535c8
%global postun_script() %{expand:
2535c8
update-desktop-database %{_datadir}/applications &> /dev/null || :
2535c8
if [ $1 -eq 0 ] ; then
2535c8
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
2535c8
    %{update_desktop_icons}
2535c8
fi
2535c8
exit 0
2535c8
}
2535c8
2535c8
2535c8
%global postun_headless() %{expand:
2535c8
  alternatives --remove java %{jrebindir %%1}/java
2535c8
  alternatives --remove jre_%{origin} %{_jvmdir}/%{sdkdir %%1}
2535c8
  alternatives --remove jre_%{javaver} %{_jvmdir}/%{sdkdir %%1}
2535c8
  alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk %%1}
2535c8
}
2535c8
2535c8
%global posttrans_script() %{expand:
2535c8
%{update_desktop_icons}
2535c8
}
2535c8
2535c8
%global post_devel() %{expand:
2535c8
2535c8
PRIORITY=%{priority}
2535c8
if [ "%1" == %{debug_suffix} ]; then
2535c8
  let PRIORITY=PRIORITY-1
2535c8
fi
2535c8
2535c8
ext=.gz
2535c8
alternatives \\
2535c8
  --install %{_bindir}/javac javac %{sdkbindir %%1}/javac $PRIORITY  --family %{name}.%{_arch} \\
2535c8
  --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir %%1} \\
2535c8
%ifarch %{aot_arches}
2535c8
  --slave %{_bindir}/jaotc jaotc %{sdkbindir %%1}/jaotc \\
2535c8
%endif
2535c8
  --slave %{_bindir}/jlink jlink %{sdkbindir %%1}/jlink \\
2535c8
  --slave %{_bindir}/jmod jmod %{sdkbindir %%1}/jmod \\
2535c8
%ifarch %{jit_arches}
2535c8
%ifnarch s390x
2535c8
  --slave %{_bindir}/jhsdb jhsdb %{sdkbindir %%1}/jhsdb \\
2535c8
%endif
2535c8
%endif
2535c8
  --slave %{_bindir}/jar jar %{sdkbindir %%1}/jar \\
2535c8
  --slave %{_bindir}/jarsigner jarsigner %{sdkbindir %%1}/jarsigner \\
2535c8
  --slave %{_bindir}/javadoc javadoc %{sdkbindir %%1}/javadoc \\
2535c8
  --slave %{_bindir}/javap javap %{sdkbindir %%1}/javap \\
2535c8
  --slave %{_bindir}/jcmd jcmd %{sdkbindir %%1}/jcmd \\
2535c8
  --slave %{_bindir}/jconsole jconsole %{sdkbindir %%1}/jconsole \\
2535c8
  --slave %{_bindir}/jdb jdb %{sdkbindir %%1}/jdb \\
2535c8
  --slave %{_bindir}/jdeps jdeps %{sdkbindir %%1}/jdeps \\
2535c8
  --slave %{_bindir}/jdeprscan jdeprscan %{sdkbindir %%1}/jdeprscan \\
2535c8
  --slave %{_bindir}/jimage jimage %{sdkbindir %%1}/jimage \\
2535c8
  --slave %{_bindir}/jinfo jinfo %{sdkbindir %%1}/jinfo \\
2535c8
  --slave %{_bindir}/jmap jmap %{sdkbindir %%1}/jmap \\
2535c8
  --slave %{_bindir}/jps jps %{sdkbindir %%1}/jps \\
2535c8
  --slave %{_bindir}/jrunscript jrunscript %{sdkbindir %%1}/jrunscript \\
2535c8
  --slave %{_bindir}/jshell jshell %{sdkbindir %%1}/jshell \\
2535c8
  --slave %{_bindir}/jstack jstack %{sdkbindir %%1}/jstack \\
2535c8
  --slave %{_bindir}/jstat jstat %{sdkbindir %%1}/jstat \\
2535c8
  --slave %{_bindir}/jstatd jstatd %{sdkbindir %%1}/jstatd \\
2535c8
  --slave %{_bindir}/rmic rmic %{sdkbindir %%1}/rmic \\
2535c8
  --slave %{_bindir}/serialver serialver %{sdkbindir %%1}/serialver \\
2535c8
  --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
2535c8
  %{_mandir}/man1/jar-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
2535c8
  %{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
2535c8
  %{_mandir}/man1/javac-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
2535c8
  %{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
2535c8
  %{_mandir}/man1/javap-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
2535c8
  %{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
2535c8
  %{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
2535c8
  %{_mandir}/man1/jdb-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
2535c8
  %{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
2535c8
  %{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
2535c8
  %{_mandir}/man1/jmap-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
2535c8
  %{_mandir}/man1/jps-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
2535c8
  %{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
2535c8
  %{_mandir}/man1/jstack-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
2535c8
  %{_mandir}/man1/jstat-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
2535c8
  %{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
2535c8
  %{_mandir}/man1/rmic-%{uniquesuffix %%1}.1$ext \\
2535c8
  --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
2535c8
  %{_mandir}/man1/serialver-%{uniquesuffix %%1}.1$ext \\
2535c8
2535c8
for X in %{origin} %{javaver} ; do
2535c8
  alternatives \\
2535c8
    --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir %%1} $PRIORITY  --family %{name}.%{_arch}
2535c8
done
2535c8
2535c8
update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin} java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1} $PRIORITY  --family %{name}.%{_arch}
2535c8
2535c8
update-desktop-database %{_datadir}/applications &> /dev/null || :
2535c8
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
2535c8
2535c8
exit 0
2535c8
}
2535c8
2535c8
%global postun_devel() %{expand:
2535c8
  alternatives --remove javac %{sdkbindir %%1}/javac
2535c8
  alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir %%1}
2535c8
  alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir %%1}
2535c8
  alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir %%1}
2535c8
2535c8
update-desktop-database %{_datadir}/applications &> /dev/null || :
2535c8
2535c8
if [ $1 -eq 0 ] ; then
2535c8
    /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
2535c8
    %{update_desktop_icons}
2535c8
fi
2535c8
exit 0
2535c8
}
2535c8
2535c8
%global posttrans_devel() %{expand:
2535c8
%{update_desktop_icons}
2535c8
}
2535c8
2535c8
%global post_javadoc() %{expand:
2535c8
2535c8
PRIORITY=%{priority}
2535c8
if [ "%1" == %{debug_suffix} ]; then
2535c8
  let PRIORITY=PRIORITY-1
2535c8
fi
2535c8
2535c8
alternatives \\
2535c8
  --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api \\
2535c8
  $PRIORITY  --family %{name}
2535c8
exit 0
2535c8
}
2535c8
2535c8
%global postun_javadoc() %{expand:
2535c8
  alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir %%1}/api
2535c8
exit 0
2535c8
}
2535c8
2535c8
%global post_javadoc_zip() %{expand:
2535c8
2535c8
PRIORITY=%{priority}
2535c8
if [ "%1" == %{debug_suffix} ]; then
2535c8
  let PRIORITY=PRIORITY-1
2535c8
fi
2535c8
2535c8
alternatives \\
2535c8
  --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip \\
2535c8
  $PRIORITY  --family %{name}
2535c8
exit 0
2535c8
}
2535c8
2535c8
%global postun_javadoc_zip() %{expand:
2535c8
  alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir %%1}.zip
2535c8
exit 0
2535c8
}
2535c8
2535c8
%define files_jre() %{expand:
2535c8
%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libsplashscreen.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libawt_xawt.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjawt.so
2535c8
}
2535c8
2535c8
2535c8
%define files_jre_headless() %{expand:
2535c8
%license %{_jvmdir}/%{sdkdir %%1}/legal
2535c8
%dir %{_sysconfdir}/.java/.systemPrefs
2535c8
%dir %{_sysconfdir}/.java
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}
2535c8
%{_jvmdir}/%{sdkdir %%1}/release
2535c8
%{_jvmdir}/%{jrelnk %%1}
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/bin
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/java
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jjs
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/keytool
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/pack200
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/rmid
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/rmiregistry
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/unpack200
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/lib
2535c8
%ifarch %{jit_arches}
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/classlist
2535c8
%endif
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jexec
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jspawnhelper
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jrt-fs.jar
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/modules
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/psfont.properties.ja
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/psfontj2d.properties
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/tzdb.dat
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/lib/jli
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jli/libjli.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jvm.cfg
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libattach.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libawt.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libextnet.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjsig.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libawt_headless.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libdt_socket.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libfontmanager.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libinstrument.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libj2gss.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libj2pcsc.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libj2pkcs11.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjaas.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjava.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjavajpeg.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjdwp.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjimage.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libjsound.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/liblcms.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libmanagement.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libmanagement_agent.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libmanagement_ext.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libmlib_image.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libnet.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libnio.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libprefs.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/librmi.so
2535c8
# Zero and S390x don't have SA
2535c8
%ifarch %{jit_arches}
2535c8
%ifnarch s390x
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libsaproc.so
2535c8
%endif
2535c8
%endif
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libsctp.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libsunec.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libunpack.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libverify.so
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/libzip.so
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/lib/jfr
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jfr/default.jfc
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/jfr/profile.jfc
2535c8
%{_mandir}/man1/java-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jjs-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/keytool-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/pack200-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/rmid-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/rmiregistry-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/unpack200-%{uniquesuffix %%1}.1*
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/server/
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/client/
2535c8
%ifarch %{jit_arches}
2535c8
%ifnarch %{power64}
2535c8
%attr(444, root, root) %ghost %{_jvmdir}/%{sdkdir %%1}/lib/server/classes.jsa
2535c8
%attr(444, root, root) %ghost %{_jvmdir}/%{sdkdir %%1}/lib/client/classes.jsa
2535c8
%endif
2535c8
%endif
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/lib/security
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/security/cacerts
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/conf
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/conf/management
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/conf/security
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/conf/security/policy
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/limited
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/unlimited
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/lib/security/default.policy
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/lib/security/blacklisted.certs
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/lib/security/public_suffix_list.dat
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/limited/exempt_local.policy
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/limited/default_local.policy
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/limited/default_US_export.policy
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/unlimited/default_local.policy
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/unlimited/default_US_export.policy
2535c8
 %{_jvmdir}/%{sdkdir %%1}/conf/security/policy/README.txt
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/java.policy
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/java.security
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/logging.properties
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/security/nss.cfg
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/management/jmxremote.access
2535c8
# this is conifg template, thus not config-noreplace
2535c8
%config  %{_jvmdir}/%{sdkdir %%1}/conf/management/jmxremote.password.template
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/management/management.properties
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/net.properties
2535c8
%config(noreplace) %{_jvmdir}/%{sdkdir %%1}/conf/sound.properties
2535c8
}
2535c8
2535c8
%global files_devel() %{expand:
2535c8
%dir %{_jvmdir}/%{sdkdir %%1}/bin
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jar
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jarsigner
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/javac
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/javadoc
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/javap
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jconsole
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jcmd
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jdb
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jdeps
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jdeprscan
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jimage
2535c8
# Zero and S390x don't have SA
2535c8
%ifarch %{jit_arches}
2535c8
%ifnarch s390x
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jhsdb
2535c8
%endif
2535c8
%endif
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jinfo
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jlink
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jmap
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jmod
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jps
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jrunscript
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jshell
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jstack
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jstat
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jstatd
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/rmic
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/serialver
2535c8
%ifarch %{aot_arches}
2535c8
%{_jvmdir}/%{sdkdir %%1}/bin/jaotc
2535c8
%endif
2535c8
%{_jvmdir}/%{sdkdir %%1}/include
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/ct.sym
2535c8
%if %{with_systemtap}
2535c8
%{_jvmdir}/%{sdkdir %%1}/tapset
2535c8
%endif
2535c8
%{_datadir}/applications/*jconsole%1.desktop
2535c8
%{_mandir}/man1/jar-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jarsigner-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/javac-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/javadoc-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/javap-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jconsole-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jcmd-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jdb-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jdeps-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jinfo-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jmap-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jps-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jrunscript-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jstack-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jstat-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/jstatd-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/rmic-%{uniquesuffix %%1}.1*
2535c8
%{_mandir}/man1/serialver-%{uniquesuffix %%1}.1*
2535c8
%if %{with_systemtap}
2535c8
%dir %{tapsetroot}
2535c8
%dir %{tapsetdirttapset}
2535c8
%dir %{tapsetdir}
2535c8
%{tapsetdir}/*%{_arch}%1.stp
2535c8
%endif
2535c8
}
2535c8
2535c8
%define files_jmods() %{expand:
2535c8
%{_jvmdir}/%{sdkdir %%1}/jmods
2535c8
}
2535c8
2535c8
%define files_demo() %{expand:
2535c8
%license %{_jvmdir}/%{sdkdir %%1}/legal
2535c8
%{_jvmdir}/%{sdkdir %%1}/demo
2535c8
%{_jvmdir}/%{sdkdir %%1}/sample
2535c8
}
2535c8
2535c8
%define files_src() %{expand:
2535c8
%license %{_jvmdir}/%{sdkdir %%1}/legal
2535c8
%{_jvmdir}/%{sdkdir %%1}/lib/src.zip
2535c8
}
2535c8
2535c8
%define files_javadoc() %{expand:
2535c8
%doc %{_javadocdir}/%{uniquejavadocdir %%1}
2535c8
%license %{buildoutputdir %%1}/images/%{jdkimage}/legal
2535c8
}
2535c8
2535c8
%define files_javadoc_zip() %{expand:
2535c8
%doc %{_javadocdir}/%{uniquejavadocdir %%1}.zip
2535c8
%license %{buildoutputdir %%1}/images/%{jdkimage}/legal
2535c8
}
2535c8
2535c8
# not-duplicated requires/provides/obsolate for normal/debug packages
2535c8
%global java_rpo() %{expand:
2535c8
Requires: fontconfig%{?_isa}
2535c8
Requires: xorg-x11-fonts-Type1
2535c8
# Requires rest of java
2535c8
Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
# for java-X-openjdk package's desktop binding
2535c8
#Recommends: gtk2%{?_isa}
2535c8
# rhel7 do not have week depndencies
2535c8
2535c8
Provides: java-%{javaver}-%{origin}%1 = %{epoch}:%{version}-%{release}
2535c8
2535c8
# Standard JPackage base provides
2535c8
#Provides: jre = %{javaver}%1
2535c8
#Provides: jre-%{origin}%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: jre-%{javaver}%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: jre-%{javaver}-%{origin}%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}%1 = %{epoch}:%{version}-%{release}
2535c8
#Provides: java-%{origin}%1 = %{epoch}:%{version}-%{release}
2535c8
#Provides: java%1 = %{epoch}:%{javaver}
2535c8
}
2535c8
2535c8
%global java_headless_rpo() %{expand:
2535c8
# Require /etc/pki/java/cacerts
2535c8
Requires: ca-certificates
2535c8
# Require jpackage-utils for ownership of /usr/lib/jvm/ and macros
2535c8
Requires: javapackages-tools
2535c8
# Require zone-info data provided by tzdata-java sub-package
2535c8
Requires: tzdata-java >= 2015d
2535c8
# for support of kernel stream control
2535c8
# libsctp.so.1 is being `dlopen`ed on demand
2535c8
Requires: lksctp-tools%{?_isa}
2535c8
# For smartcard support
2535c8
# libpcsclite.so & libpcsclite.so.1 are both tried for dlopen
2535c8
# and this package provides the latter (see RH910107)
2535c8
Requires: pcsc-lite-libs%{?_isa}
2535c8
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it,
2535c8
# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
2535c8
# considered as regression
2535c8
Requires: copy-jdk-configs >= 3.3
2535c8
OrderWithRequires: copy-jdk-configs
2535c8
# for printing support
2535c8
Requires: cups-libs%{?_isa}
2535c8
# Post requires alternatives to install tool alternatives
2535c8
Requires(post):   %{_sbindir}/alternatives
2535c8
# in version 1.7 and higher for --family switch
2535c8
Requires(post):   chkconfig >= 1.7
2535c8
# Postun requires alternatives to uninstall tool alternatives
2535c8
Requires(postun): %{_sbindir}/alternatives
2535c8
# in version 1.7 and higher for --family switch
2535c8
Requires(postun):   chkconfig >= 1.7
2535c8
2535c8
# rhel7 do not have weak depndencies
2535c8
2535c8
# Standard JPackage base provides
2535c8
#Provides: jre-headless%1 = %{epoch}:%{javaver}
2535c8
Provides: jre-%{javaver}-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
#Provides: jre-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: jre-%{javaver}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
#Provides: java-%{origin}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
#Provides: java-headless%1 = %{epoch}:%{javaver}
2535c8
2535c8
# https://bugzilla.redhat.com/show_bug.cgi?id=1312019
2535c8
Provides: /usr/bin/jjs
2535c8
2535c8
}
2535c8
2535c8
%global java_devel_rpo() %{expand:
2535c8
# Require base package
2535c8
Requires:         %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
# Post requires alternatives to install tool alternatives
2535c8
Requires(post):   %{_sbindir}/alternatives
2535c8
# in version 1.7 and higher for --family switch
2535c8
Requires(post):   chkconfig >= 1.7
2535c8
# Postun requires alternatives to uninstall tool alternatives
2535c8
Requires(postun): %{_sbindir}/alternatives
2535c8
# in version 1.7 and higher for --family switch
2535c8
Requires(postun):   chkconfig >= 1.7
2535c8
2535c8
# Standard JPackage devel provides
2535c8
Provides: java-sdk-%{javaver}-%{origin}%1 = %{epoch}:%{version}
2535c8
Provides: java-sdk-%{javaver}%1 = %{epoch}:%{version}
2535c8
#Provides: java-sdk-%{origin}%1 = %{epoch}:%{version}
2535c8
#Provides: java-sdk%1 = %{epoch}:%{javaver}
2535c8
Provides: java-%{javaver}-devel%1 = %{epoch}:%{version}
2535c8
Provides: java-%{javaver}-%{origin}-devel%1 = %{epoch}:%{version}
2535c8
#Provides: java-devel-%{origin}%1 = %{epoch}:%{version}
2535c8
#Provides: java-devel%1 = %{epoch}:%{javaver}
2535c8
2535c8
}
2535c8
2535c8
%define java_jmods_rpo() %{expand:
2535c8
# Requires devel package
2535c8
# as jmods are bytecode, they should be OK without any _isa
2535c8
Requires:         %{name}-devel%1 = %{epoch}:%{version}-%{release}
2535c8
OrderWithRequires: %{name}-headless%1 = %{epoch}:%{version}-%{release}
2535c8
2535c8
Provides: java-jmods%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-jmods%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-%{origin}-jmods%1 = %{epoch}:%{version}-%{release}
2535c8
2535c8
}
2535c8
2535c8
%global java_demo_rpo() %{expand:
2535c8
Requires: %{name}%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
2535c8
Provides: java-demo%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-demo%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-%{origin}-demo%1 = %{epoch}:%{version}-%{release}
2535c8
2535c8
}
2535c8
2535c8
%global java_javadoc_rpo() %{expand:
2535c8
OrderWithRequires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
# Post requires alternatives to install javadoc alternative
2535c8
Requires(post):   %{_sbindir}/alternatives
2535c8
# in version 1.7 and higher for --family switch
2535c8
Requires(post):   chkconfig >= 1.7
2535c8
# Postun requires alternatives to uninstall javadoc alternative
2535c8
Requires(postun): %{_sbindir}/alternatives
2535c8
# in version 1.7 and higher for --family switch
2535c8
Requires(postun):   chkconfig >= 1.7
2535c8
2535c8
# Standard JPackage javadoc provides.
2535c8
Provides: java-javadoc%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-javadoc%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-%{origin}-javadoc%1 = %{epoch}:%{version}-%{release}
2535c8
}
2535c8
2535c8
%global java_src_rpo() %{expand:
2535c8
Requires: %{name}-headless%1%{?_isa} = %{epoch}:%{version}-%{release}
2535c8
2535c8
# Standard JPackage sources provides.
2535c8
Provides: java-src%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-src%1 = %{epoch}:%{version}-%{release}
2535c8
Provides: java-%{javaver}-%{origin}-src%1 = %{epoch}:%{version}-%{release}
2535c8
}
2535c8
2535c8
# Prevent brp-java-repack-jars from being run.
2535c8
%global __jar_repack 0
2535c8
2535c8
Name:    java-%{javaver}-%{origin}
2535c8
Version: %{newjavaver}.%{buildver}
2535c8
Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
2535c8
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
2535c8
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
2535c8
# also included the epoch in their virtual provides. This created a
2535c8
# situation where in-the-wild java-1.5.0-ibm packages provided "java =
2535c8
# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
2535c8
# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
2535c8
# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
2535c8
# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
2535c8
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
2535c8
2535c8
Epoch:   1
2535c8
Summary: %{origin_nice} Runtime Environment %{majorver}
2535c8
Group:   Development/Languages
2535c8
2535c8
# HotSpot code is licensed under GPLv2
2535c8
# JDK library code is licensed under GPLv2 with the Classpath exception
2535c8
# The Apache license is used in code taken from Apache projects (primarily xalan & xerces)
2535c8
# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C Software License
2535c8
# The JSR166 concurrency code is in the public domain
2535c8
# The BSD and MIT licenses are used for a number of third-party libraries (see ADDITIONAL_LICENSE_INFO)
2535c8
# The OpenJDK source tree includes:
2535c8
# - JPEG library (IJG), zlib & libpng (zlib), giflib (MIT), harfbuzz (ISC),
2535c8
# - freetype (FTL), jline (BSD) and LCMS (MIT)
2535c8
# - jquery (MIT), jdk.crypto.cryptoki PKCS 11 wrapper (RSA)
2535c8
# - public_suffix_list.dat from publicsuffix.org (MPLv2.0)
2535c8
# The test code includes copies of NSS under the Mozilla Public License v2.0
2535c8
# The PCSClite headers are under a BSD with advertising license
2535c8
# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any later version
2535c8
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 and ISC and FTL and RSA
2535c8
URL:      http://openjdk.java.net/
2535c8
2535c8
2535c8
# to regenerate source0 (jdk) and source8 (jdk's taspets) run update_package.sh
2535c8
# update_package.sh contains hard-coded repos, revisions, tags, and projects to regenerate the source archives
2535c8
Source0: shenandoah-jdk%{majorver}-shenandoah-jdk-%{newjavaver}+%{buildver}%{?tagsuffix:-%{tagsuffix}}-4curve.tar.xz
2535c8
Source8: systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
2535c8
2535c8
# Desktop files. Adapted from IcedTea
2535c8
Source9: jconsole.desktop.in
2535c8
2535c8
# nss configuration file
2535c8
Source11: nss.cfg.in
2535c8
2535c8
# Removed libraries that we link instead
2535c8
Source12: remove-intree-libraries.sh
2535c8
2535c8
# Ensure we aren't using the limited crypto policy
2535c8
Source13: TestCryptoLevel.java
2535c8
2535c8
# Ensure ECDSA is working
2535c8
Source14: TestECDSA.java
2535c8
2535c8
############################################
2535c8
#
2535c8
# RPM/distribution specific patches
2535c8
#
2535c8
############################################
2535c8
2535c8
# NSS via SunPKCS11 Provider (disabled comment
2535c8
# due to memory leak).
2535c8
Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
2535c8
2535c8
# Ignore AWTError when assistive technologies are loaded
2535c8
Patch1:    rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
2535c8
# Restrict access to java-atk-wrapper classes
2535c8
Patch2:    rh1648644-java_access_bridge_privileged_security.patch
2535c8
Patch3:    rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch
2535c8
# Follow system wide crypto policy RHBZ#1249083
2535c8
Patch4:    pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch
2535c8
2535c8
#############################################
2535c8
#
2535c8
# Shenandoah specific patches
2535c8
#
2535c8
#############################################
2535c8
2535c8
#############################################
2535c8
#
2535c8
# OpenJDK specific patches
2535c8
#
2535c8
#############################################
2535c8
2535c8
# RH1566890: CVE-2018-3639
2535c8
Patch6:    rh1566890-CVE_2018_3639-speculative_store_bypass.patch
2535c8
# JDK-8009550, RH910107: Search for libpcsclite.so.1 if libpcsclite.so fails
2535c8
Patch7: jdk8009550-rh910107-search_for_versioned_libpcsclite.patch
2535c8
# S390 ambiguous log2_intptr call
2535c8
Patch8: s390-8214206_fix.patch
2535c8
2535c8
#############################################
2535c8
#
2535c8
# JDK 9+ only patches
2535c8
#
2535c8
#############################################
2535c8
2535c8
BuildRequires: autoconf
2535c8
BuildRequires: automake
2535c8
BuildRequires: alsa-lib-devel
2535c8
BuildRequires: binutils
2535c8
BuildRequires: cups-devel
2535c8
BuildRequires: desktop-file-utils
2535c8
# elfutils only are OK for build without AOT
2535c8
BuildRequires: elfutils-devel
2535c8
BuildRequires: fontconfig
2535c8
BuildRequires: freetype-devel
2535c8
BuildRequires: giflib-devel
2535c8
BuildRequires: gcc-c++
2535c8
BuildRequires: gdb
2535c8
BuildRequires: gtk2-devel
2535c8
# LCMS on rhel7 is older then LCMS in intree JDK
2535c8
BuildRequires: lcms2-devel
2535c8
BuildRequires: libjpeg-devel
2535c8
BuildRequires: libpng-devel
2535c8
BuildRequires: libxslt
2535c8
BuildRequires: libX11-devel
2535c8
BuildRequires: libXi-devel
2535c8
BuildRequires: libXinerama-devel
2535c8
BuildRequires: libXt-devel
2535c8
BuildRequires: libXtst-devel
2535c8
# Requirements for setting up the nss.cfg
2535c8
BuildRequires: nss-devel
2535c8
BuildRequires: pkgconfig
2535c8
BuildRequires: xorg-x11-proto-devel
2535c8
BuildRequires: zip
2535c8
BuildRequires: javapackages-tools
2535c8
BuildRequires: java-%{buildjdkver}-openjdk-devel
2535c8
# Zero-assembler build requirement
2535c8
%ifnarch %{jit_arches}
2535c8
BuildRequires: libffi-devel
2535c8
%endif
2535c8
BuildRequires: tzdata-java >= 2015d
2535c8
# Earlier versions have a bug in tree vectorization on PPC
2535c8
BuildRequires: gcc >= 4.8.3-8
2535c8
2535c8
%if %{with_systemtap}
2535c8
BuildRequires: systemtap-sdt-devel
2535c8
%endif
2535c8
2535c8
# this is always built, also during debug-only build
2535c8
# when it is built in debug-only this package is just placeholder
2535c8
%{java_rpo %{nil}}
2535c8
2535c8
%description
2535c8
The %{origin_nice} runtime environment.
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package debug
2535c8
Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_rpo -- %{debug_suffix_unquoted}}
2535c8
%description debug
2535c8
The %{origin_nice} runtime environment.
2535c8
%{debug_warning}
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package headless
2535c8
Summary: %{origin_nice} Headless Runtime Environment %{majorver}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_headless_rpo %{nil}}
2535c8
2535c8
%description headless
2535c8
The %{origin_nice} runtime environment %{majorver} without audio and video support.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package headless-debug
2535c8
Summary: %{origin_nice} Runtime Environment %{debug_on}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_headless_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description headless-debug
2535c8
The %{origin_nice} runtime environment %{majorver} without audio and video support.
2535c8
%{debug_warning}
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package devel
2535c8
Summary: %{origin_nice} Development Environment %{majorver}
2535c8
Group:   Development/Tools
2535c8
2535c8
%{java_devel_rpo %{nil}}
2535c8
2535c8
%description devel
2535c8
The %{origin_nice} development tools %{majorver}.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package devel-debug
2535c8
Summary: %{origin_nice} Development Environment %{majorver} %{debug_on}
2535c8
Group:   Development/Tools
2535c8
2535c8
%{java_devel_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description devel-debug
2535c8
The %{origin_nice} development tools %{majorver}.
2535c8
%{debug_warning}
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package jmods
2535c8
Summary: JMods for %{origin_nice} %{majorver}
2535c8
Group:   Development/Tools
2535c8
2535c8
%{java_jmods_rpo %{nil}}
2535c8
2535c8
%description jmods
2535c8
The JMods for %{origin_nice}.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package jmods-debug
2535c8
Summary: JMods for %{origin_nice} %{majorver} %{debug_on}
2535c8
Group:   Development/Tools
2535c8
2535c8
%{java_jmods_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description jmods-debug
2535c8
The JMods for %{origin_nice} %{majorver}.
2535c8
%{debug_warning}
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package demo
2535c8
Summary: %{origin_nice} Demos %{majorver}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_demo_rpo %{nil}}
2535c8
2535c8
%description demo
2535c8
The %{origin_nice} demos %{majorver}.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package demo-debug
2535c8
Summary: %{origin_nice} Demos %{majorver} %{debug_on}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_demo_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description demo-debug
2535c8
The %{origin_nice} demos %{majorver}.
2535c8
%{debug_warning}
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package src
2535c8
Summary: %{origin_nice} Source Bundle %{majorver}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_src_rpo %{nil}}
2535c8
2535c8
%description src
2535c8
The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver}
2535c8
class library source code for use by IDE indexers and debuggers.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package src-debug
2535c8
Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug}
2535c8
Group:   Development/Languages
2535c8
2535c8
%{java_src_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description src-debug
2535c8
The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice} %{majorver}
2535c8
 class library source code for use by IDE indexers and debuggers. Debugging %{for_debug}.
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package javadoc
2535c8
Summary: %{origin_nice} %{majorver} API documentation
2535c8
Group:   Documentation
2535c8
Requires: javapackages-tools
2535c8
2535c8
%{java_javadoc_rpo %{nil}}
2535c8
2535c8
%description javadoc
2535c8
The %{origin_nice} %{majorver} API documentation.
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%package javadoc-zip
2535c8
Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive
2535c8
Group:   Documentation
2535c8
Requires: javapackages-tools
2535c8
2535c8
%{java_javadoc_rpo %{nil}}
2535c8
2535c8
%description javadoc-zip
2535c8
The %{origin_nice} %{majorver} API documentation compressed in a single archive.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package javadoc-debug
2535c8
Summary: %{origin_nice} %{majorver} API documentation %{for_debug}
2535c8
Group:   Documentation
2535c8
Requires: javapackages-tools
2535c8
2535c8
%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description javadoc-debug
2535c8
The %{origin_nice} %{majorver} API documentation %{for_debug}.
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%package javadoc-zip-debug
2535c8
Summary: %{origin_nice} %{majorver} API documentation compressed in a single archive %{for_debug}
2535c8
Group:   Documentation
2535c8
Requires: javapackages-tools
2535c8
2535c8
%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%description javadoc-zip-debug
2535c8
The %{origin_nice} %{majorver} API documentation compressed in a single archive %{for_debug}.
2535c8
%endif
2535c8
2535c8
%prep
2535c8
if [ %{include_normal_build} -eq 0 -o  %{include_normal_build} -eq 1 ] ; then
2535c8
  echo "include_normal_build is %{include_normal_build}"
2535c8
else
2535c8
  echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for yes or 0 for no"
2535c8
  exit 11
2535c8
fi
2535c8
if [ %{include_debug_build} -eq 0 -o  %{include_debug_build} -eq 1 ] ; then
2535c8
  echo "include_debug_build is %{include_debug_build}"
2535c8
else
2535c8
  echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes or 0 for no"
2535c8
  exit 12
2535c8
fi
2535c8
if [ %{include_debug_build} -eq 0 -a  %{include_normal_build} -eq 0 ] ; then
2535c8
  echo "You have disabled both include_debug_build and include_normal_build. That is a no go."
2535c8
  exit 13
2535c8
fi
2535c8
if [ %{include_normal_build} -eq 0 ] ; then
2535c8
  echo "You have disabled the normal build, but this is required to provide docs for the debug build."
2535c8
  exit 14
2535c8
fi
2535c8
%setup -q -c -n %{uniquesuffix ""} -T -a 0
2535c8
# https://bugzilla.redhat.com/show_bug.cgi?id=1189084
2535c8
prioritylength=`expr length %{priority}`
2535c8
if [ $prioritylength -ne 7 ] ; then
2535c8
 echo "priority must be 7 digits in total, violated"
2535c8
 exit 14
2535c8
fi
2535c8
2535c8
# OpenJDK patches
2535c8
2535c8
# Remove libraries that are linked
2535c8
sh %{SOURCE12}
2535c8
pushd %{top_level_dir_name}
2535c8
%patch1 -p1
2535c8
%patch2 -p1
2535c8
%patch3 -p1
2535c8
%patch4 -p1
2535c8
%patch6 -p1
2535c8
%patch7 -p1
2535c8
%patch8 -p1
2535c8
popd # openjdk
2535c8
2535c8
%patch1000
2535c8
2535c8
# Extract systemtap tapsets
2535c8
%if %{with_systemtap}
2535c8
tar --strip-components=1 -x -I xz -f %{SOURCE8}
2535c8
%if %{include_debug_build}
2535c8
cp -r tapset tapset%{debug_suffix}
2535c8
%endif
2535c8
2535c8
2535c8
for suffix in %{build_loop} ; do
2535c8
  for file in "tapset"$suffix/*.in; do
2535c8
    OUTPUT_FILE=`echo $file | sed -e "s:\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g"`
2535c8
    sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir $suffix}/lib/server/libjvm.so:g" $file > $file.1
2535c8
# TODO find out which architectures other than i686 have a client vm
2535c8
%ifarch %{ix86}
2535c8
    sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir $suffix}/lib/client/libjvm.so:g" $file.1 > $OUTPUT_FILE
2535c8
%else
2535c8
    sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.1 > $OUTPUT_FILE
2535c8
%endif
2535c8
    sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir $suffix}:g" $OUTPUT_FILE
2535c8
    sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE
2535c8
    sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir $suffix}/:g" $OUTPUT_FILE
2535c8
  done
2535c8
done
2535c8
# systemtap tapsets ends
2535c8
%endif
2535c8
2535c8
# Prepare desktop files
2535c8
for suffix in %{build_loop} ; do
2535c8
for file in %{SOURCE9}; do
2535c8
    FILE=`basename $file | sed -e s:\.in$::g`
2535c8
    EXT="${FILE##*.}"
2535c8
    NAME="${FILE%.*}"
2535c8
    OUTPUT_FILE=$NAME$suffix.$EXT
2535c8
    sed    -e  "s:@JAVA_HOME@:%{sdkbindir $suffix}:g" $file > $OUTPUT_FILE
2535c8
    sed -i -e  "s:@JRE_HOME@:%{jrebindir $suffix}:g" $OUTPUT_FILE
2535c8
    sed -i -e  "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
2535c8
    sed -i -e  "s:@JAVA_MAJOR_VERSION@:%{majorver}:g" $OUTPUT_FILE
2535c8
    sed -i -e  "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
2535c8
done
2535c8
done
2535c8
2535c8
# Setup nss.cfg
2535c8
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
2535c8
2535c8
2535c8
%build
2535c8
# How many CPU's do we have?
2535c8
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
2535c8
export NUM_PROC=${NUM_PROC:-1}
2535c8
%if 0%{?_smp_ncpus_max}
2535c8
# Honor %%_smp_ncpus_max
2535c8
[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
2535c8
%endif
2535c8
2535c8
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
2535c8
export ARCH_DATA_MODEL=64
2535c8
%endif
2535c8
%ifarch alpha
2535c8
export CFLAGS="$CFLAGS -mieee"
2535c8
%endif
2535c8
2535c8
# We use ourcppflags because the OpenJDK build seems to
2535c8
# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
2535c8
# Explicitly set the C++ standard as the default has changed on GCC >= 6
2535c8
EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks"
2535c8
EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks"
2535c8
%ifarch %{ix86}
2535c8
EXTRA_CFLAGS="${EXTRA_CFLAGS} -mstackrealign"
2535c8
EXTRA_CPP_FLAGS="${EXTRA_CPP_FLAGS} -mstackrealign"
2535c8
%endif
2535c8
2535c8
%ifarch %{power64} ppc
2535c8
# fix rpmlint warnings
2535c8
EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
2535c8
%endif
2535c8
export EXTRA_CFLAGS
2535c8
2535c8
for suffix in %{build_loop} ; do
2535c8
if [ "x$suffix" = "x" ] ; then
2535c8
  debugbuild=release
2535c8
else
2535c8
  # change --something to something and rpeffix as slow
2535c8
  debugbuild=`echo slow$suffix  | sed "s/-//g"`
2535c8
fi
2535c8
2535c8
# Variable used in hs_err hook on build failures
2535c8
top_dir_abs_path=$(pwd)/%{top_level_dir_name}
2535c8
2535c8
mkdir -p %{buildoutputdir $suffix}
2535c8
pushd %{buildoutputdir $suffix}
2535c8
2535c8
bash ../configure \
2535c8
%ifnarch %{jit_arches}
2535c8
    --with-jvm-variants=zero \
2535c8
%endif
2535c8
%ifarch %{ppc64le}
2535c8
    --with-jobs=1 \
2535c8
%endif
2535c8
    --with-version-build=%{buildver} \
2535c8
    --with-version-pre="%{ea_designator}" \
2535c8
    --with-version-opt=%{lts_designator} \
2535c8
    --with-vendor-version-string="%{vendor_version_string}" \
2535c8
    --with-boot-jdk=/usr/lib/jvm/java-%{buildjdkver}-openjdk \
2535c8
    --with-debug-level=$debugbuild \
2535c8
    --with-native-debug-symbols=internal \
2535c8
    --enable-unlimited-crypto \
2535c8
    --with-zlib=system \
2535c8
    --with-libjpeg=system \
2535c8
    --with-giflib=system \
2535c8
    --with-libpng=system \
2535c8
    --with-lcms=bundled \
2535c8
    --with-stdc++lib=dynamic \
2535c8
    --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
2535c8
    --with-extra-cflags="$EXTRA_CFLAGS" \
2535c8
    --with-extra-ldflags="%{ourldflags}" \
2535c8
    --with-num-cores="$NUM_PROC" \
2535c8
    --disable-javac-server \
2535c8
%ifarch x86_64
2535c8
    --with-jvm-features=zgc \
2535c8
%endif
2535c8
    --disable-warnings-as-errors
2535c8
2535c8
# Debug builds don't need same targets as release for
2535c8
# build speed-up
2535c8
maketargets="%{release_targets}"
2535c8
if echo $debugbuild | grep -q "debug" ; then
2535c8
  maketargets="%{debug_targets}"
2535c8
fi
2535c8
make \
2535c8
    JAVAC_FLAGS=-g \
2535c8
    LOG=trace \
2535c8
    WARNINGS_ARE_ERRORS="-Wno-error" \
2535c8
    CFLAGS_WARNINGS_ARE_ERRORS="-Wno-error" \
2535c8
    $maketargets || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs cat && false )
2535c8
2535c8
# the build (erroneously) removes read permissions from some jars
2535c8
# this is a regression in OpenJDK 7 (our compiler):
2535c8
# http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
2535c8
find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
2535c8
2535c8
# Build screws up permissions on binaries
2535c8
# https://bugs.openjdk.java.net/browse/JDK-8173610
2535c8
find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
2535c8
find images/%{jdkimage}/bin/ -exec chmod +x {} \;
2535c8
2535c8
popd >& /dev/null
2535c8
2535c8
# Install nss.cfg right away as we will be using the JRE above
2535c8
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{jdkimage}
2535c8
2535c8
# Install nss.cfg right away as we will be using the JRE above
2535c8
install -m 644 nss.cfg $JAVA_HOME/conf/security/
2535c8
2535c8
# Use system-wide tzdata
2535c8
rm $JAVA_HOME/lib/tzdb.dat
2535c8
ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/lib/tzdb.dat
2535c8
2535c8
# build cycles
2535c8
done
2535c8
2535c8
%check
2535c8
2535c8
# We test debug first as it will give better diagnostics on a crash
2535c8
for suffix in %{rev_build_loop} ; do
2535c8
2535c8
export JAVA_HOME=$(pwd)/%{buildoutputdir $suffix}/images/%{jdkimage}
2535c8
2535c8
#check Shenandoah is enabled
2535c8
%if %{use_shenandoah_hotspot}
2535c8
$JAVA_HOME//bin/java -XX:+UseShenandoahGC -version
2535c8
%endif
2535c8
2535c8
# Check unlimited policy has been used
2535c8
$JAVA_HOME/bin/javac -d . %{SOURCE13}
2535c8
$JAVA_HOME/bin/java --add-opens java.base/javax.crypto=ALL-UNNAMED TestCryptoLevel
2535c8
2535c8
# Check ECC is working
2535c8
$JAVA_HOME/bin/javac -d . %{SOURCE14}
2535c8
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||")
2535c8
2535c8
# Check debug symbols are present and can identify code
2535c8
find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0' lib
2535c8
do
2535c8
  if [ -f "$lib" ] ; then
2535c8
    echo "Testing $lib for debug symbols"
2535c8
    # All these tests rely on RPM failing the build if the exit code of any set
2535c8
    # of piped commands is non-zero.
2535c8
2535c8
    # Test for .debug_* sections in the shared object. This is the main test
2535c8
    # Stripped objects will not contain these
2535c8
    eu-readelf -S "$lib" | grep "] .debug_"
2535c8
    test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2
2535c8
2535c8
    # Test FILE symbols. These will most likely be removed by anything that
2535c8
    # manipulates symbol tables because it's generally useless. So a nice test
2535c8
    # that nothing has messed with symbols
2535c8
    old_IFS="$IFS"
2535c8
    IFS=$'\n'
2535c8
    for line in $(eu-readelf -s "$lib" | grep "00000000      0 FILE    LOCAL  DEFAULT")
2535c8
    do
2535c8
     # We expect to see .cpp files, except for architectures like aarch64 and
2535c8
     # s390 where we expect .o and .oS files
2535c8
      echo "$line" | grep -E "ABS ((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$"
2535c8
    done
2535c8
    IFS="$old_IFS"
2535c8
2535c8
    # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking
2535c8
    if [ "`basename $lib`" = "libjvm.so" ]; then
2535c8
      eu-readelf -s "$lib" | \
2535c8
        grep -E "00000000      0 FILE    LOCAL  DEFAULT      ABS javaCalls.(cpp|o)$"
2535c8
    fi
2535c8
2535c8
    # Test that there are no .gnu_debuglink sections pointing to another
2535c8
    # debuginfo file. There shouldn't be any debuginfo files, so the link makes
2535c8
    # no sense either
2535c8
    eu-readelf -S "$lib" | grep 'gnu'
2535c8
    if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then
2535c8
      echo "bad .gnu_debuglink section."
2535c8
      eu-readelf -x .gnu_debuglink "$lib"
2535c8
      false
2535c8
    fi
2535c8
  fi
2535c8
done
2535c8
2535c8
# Make sure gdb can do a backtrace based on line numbers on libjvm.so
2535c8
# javaCalls.cpp:58 should map to:
2535c8
# http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/share/vm/runtime/javaCalls.cpp#l58 
2535c8
# Using line number 1 might cause build problems. See:
2535c8
# https://bugzilla.redhat.com/show_bug.cgi?id=1539664
2535c8
# https://bugzilla.redhat.com/show_bug.cgi?id=1538767
2535c8
# Temporarily disabled on s390x as it sporadically crashes with SIGFPE, Arithmetic exception.
2535c8
%ifnarch s390x
2535c8
gdb -q "$JAVA_HOME/bin/java" <
2535c8
handle SIGSEGV pass nostop noprint
2535c8
handle SIGILL pass nostop noprint
2535c8
set breakpoint pending on
2535c8
break javaCalls.cpp:1
2535c8
commands 1
2535c8
backtrace
2535c8
quit
2535c8
end
2535c8
run -version
2535c8
EOF
2535c8
grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
2535c8
%endif
2535c8
2535c8
# Check src.zip has all sources. See RHBZ#1130490
2535c8
jar -tf $JAVA_HOME/lib/src.zip | grep 'sun.misc.Unsafe'
2535c8
2535c8
# Check class files include useful debugging information
2535c8
$JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from"
2535c8
$JAVA_HOME/bin/javap -l java.lang.Object | grep LineNumberTable
2535c8
$JAVA_HOME/bin/javap -l java.lang.Object | grep LocalVariableTable
2535c8
2535c8
# Check generated class files include useful debugging information
2535c8
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
2535c8
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
2535c8
$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
2535c8
2535c8
# build cycles check
2535c8
done
2535c8
2535c8
%install
2535c8
STRIP_KEEP_SYMTAB=libjvm*
2535c8
2535c8
for suffix in %{build_loop} ; do
2535c8
2535c8
# Install the jdk
2535c8
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}
2535c8
cp -a %{buildoutputdir $suffix}/images/%{jdkimage} \
2535c8
  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}
2535c8
2535c8
# Install jsa directories so we can owe them
2535c8
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/lib/%{archinstall}/server/
2535c8
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/lib/%{archinstall}/client/
2535c8
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/lib/client/ || true  ; # sometimes is here, sometimes not, ifout it or || true it out
2535c8
2535c8
pushd %{buildoutputdir $suffix}/images/%{jdkimage}
2535c8
2535c8
%if %{with_systemtap}
2535c8
  # Install systemtap support files
2535c8
  install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset
2535c8
  # note, that uniquesuffix  is in BUILD dir in this case
2535c8
  cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
2535c8
  pushd  $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/tapset/
2535c8
   tapsetFiles=`ls *.stp`
2535c8
  popd
2535c8
  install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
2535c8
  for name in $tapsetFiles ; do
2535c8
    targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
2535c8
    ln -sf %{_jvmdir}/%{sdkdir $suffix}/tapset/$name $RPM_BUILD_ROOT%{tapsetdir}/$targetName
2535c8
  done
2535c8
%endif
2535c8
2535c8
  # Remove empty cacerts database
2535c8
  rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/lib/security/cacerts
2535c8
  # Install cacerts symlink needed by some apps which hard-code the path
2535c8
  pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/lib/security
2535c8
      ln -sf /etc/pki/java/cacerts .
2535c8
  popd
2535c8
2535c8
  # Install version-ed symlinks
2535c8
  pushd $RPM_BUILD_ROOT%{_jvmdir}
2535c8
    ln -sf %{sdkdir $suffix} %{jrelnk $suffix}
2535c8
  popd
2535c8
2535c8
2535c8
  # Install man pages
2535c8
  install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
2535c8
  for manpage in man/man1/*
2535c8
  do
2535c8
    # Convert man pages to UTF8 encoding
2535c8
    iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
2535c8
    mv -f $manpage.tmp $manpage
2535c8
    install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
2535c8
      $manpage .1)-%{uniquesuffix $suffix}.1
2535c8
  done
2535c8
  # Remove man pages from jdk image
2535c8
  rm -rf $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir $suffix}/man
2535c8
2535c8
popd
2535c8
2535c8
2535c8
# Install Javadoc documentation
2535c8
# Always take docs from normal build to avoid building them twice
2535c8
install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
2535c8
cp -a %{buildoutputdir $normal_suffix}/images/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir $suffix}
2535c8
cp -a %{buildoutputdir $normal_suffix}/bundles/jdk-%{newjavaver}%{ea_designator_zip}+%{buildver}%{lts_designator_zip}-docs.zip $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
2535c8
2535c8
# Install icons and menu entries
2535c8
for s in 16 24 32 48 ; do
2535c8
  install -D -p -m 644 \
2535c8
    %{top_level_dir_name}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png \
2535c8
    $RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
2535c8
done
2535c8
2535c8
# Install desktop files
2535c8
install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
2535c8
for e in jconsole$suffix ; do
2535c8
    desktop-file-install --vendor=%{uniquesuffix $suffix} --mode=644 \
2535c8
        --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
2535c8
done
2535c8
2535c8
# Install /etc/.java/.systemPrefs/ directory
2535c8
# See https://bugzilla.redhat.com/show_bug.cgi?id=741821
2535c8
mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
2535c8
2535c8
# copy samples next to demos; samples are mostly js files
2535c8
cp -r %{top_level_dir_name}/src/sample  $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir $suffix}/
2535c8
2535c8
2535c8
# stabilize permissions
2535c8
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir $suffix}/ -name "*.so" -exec chmod 755 {} \; ; 
2535c8
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir $suffix}/ -type d -exec chmod 755 {} \; ; 
2535c8
find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir $suffix}/legal -type f -exec chmod 644 {} \; ; 
2535c8
2535c8
# end, dual install
2535c8
done
2535c8
2535c8
%if %{include_normal_build}
2535c8
# intentionally only for non-debug
2535c8
%pretrans headless -p <lua>
2535c8
-- see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
2535c8
-- see https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
2535c8
-- if copy-jdk-configs is in transaction, it installs in pretrans to temp
2535c8
-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction  and so is
2535c8
-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
2535c8
-- whether copy-jdk-configs is installed or not. If so, then configs are copied
2535c8
-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
2535c8
local posix = require "posix"
2535c8
local debug = false
2535c8
2535c8
SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua"
2535c8
SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua"
2535c8
2535c8
local stat1 = posix.stat(SOURCE1, "type");
2535c8
local stat2 = posix.stat(SOURCE2, "type");
2535c8
2535c8
  if (stat1 ~= nil) then
2535c8
  if (debug) then
2535c8
    print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this one.")
2535c8
  end;
2535c8
  package.path = package.path .. ";" .. SOURCE1
2535c8
else
2535c8
  if (stat2 ~= nil) then
2535c8
  if (debug) then
2535c8
    print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in transaction. Using.")
2535c8
  end;
2535c8
  package.path = package.path .. ";" .. SOURCE2
2535c8
  else
2535c8
    if (debug) then
2535c8
      print(SOURCE1 .." does NOT exists")
2535c8
      print(SOURCE2 .." does NOT exists")
2535c8
      print("No config files will be copied")
2535c8
    end
2535c8
  return
2535c8
  end
2535c8
end
2535c8
-- run content of included file with fake args
2535c8
arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"}
2535c8
require "copy_jdk_configs.lua"
2535c8
2535c8
%post
2535c8
%{post_script %{nil}}
2535c8
2535c8
%post headless
2535c8
%{post_headless %{nil}}
2535c8
2535c8
%postun
2535c8
%{postun_script %{nil}}
2535c8
2535c8
%postun headless
2535c8
%{postun_headless %{nil}}
2535c8
2535c8
%posttrans
2535c8
%{posttrans_script %{nil}}
2535c8
2535c8
%post devel
2535c8
%{post_devel %{nil}}
2535c8
2535c8
%postun devel
2535c8
%{postun_devel %{nil}}
2535c8
2535c8
%posttrans  devel
2535c8
%{posttrans_devel %{nil}}
2535c8
2535c8
%post javadoc
2535c8
%{post_javadoc %{nil}}
2535c8
2535c8
%postun javadoc
2535c8
%{postun_javadoc %{nil}}
2535c8
2535c8
%post javadoc-zip
2535c8
%{post_javadoc_zip %{nil}}
2535c8
2535c8
%postun javadoc-zip
2535c8
%{postun_javadoc_zip %{nil}}
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%post debug
2535c8
%{post_script -- %{debug_suffix_unquoted}}
2535c8
2535c8
%post headless-debug
2535c8
%{post_headless -- %{debug_suffix_unquoted}}
2535c8
2535c8
%postun debug
2535c8
%{postun_script -- %{debug_suffix_unquoted}}
2535c8
2535c8
%postun headless-debug
2535c8
%{postun_headless -- %{debug_suffix_unquoted}}
2535c8
2535c8
%posttrans debug
2535c8
%{posttrans_script -- %{debug_suffix_unquoted}}
2535c8
2535c8
%post devel-debug
2535c8
%{post_devel -- %{debug_suffix_unquoted}}
2535c8
2535c8
%postun devel-debug
2535c8
%{postun_devel -- %{debug_suffix_unquoted}}
2535c8
2535c8
%posttrans  devel-debug
2535c8
%{posttrans_devel -- %{debug_suffix_unquoted}}
2535c8
2535c8
%post javadoc-debug
2535c8
%{post_javadoc -- %{debug_suffix_unquoted}}
2535c8
2535c8
%postun javadoc-debug
2535c8
%{postun_javadoc -- %{debug_suffix_unquoted}}
2535c8
2535c8
%post javadoc-zip-debug
2535c8
%{post_javadoc_zip -- %{debug_suffix_unquoted}}
2535c8
2535c8
%postun javadoc-zip-debug
2535c8
%{postun_javadoc_zip -- %{debug_suffix_unquoted}}
2535c8
2535c8
%endif
2535c8
2535c8
%if %{include_normal_build}
2535c8
%files
2535c8
# main package builds always
2535c8
%{files_jre %{nil}}
2535c8
%else
2535c8
%files
2535c8
# placeholder
2535c8
%endif
2535c8
2535c8
2535c8
%if %{include_normal_build}
2535c8
%files headless
2535c8
# important note, see https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
2535c8
# all config/noreplace files (and more) have to be declared in pretrans. See pretrans
2535c8
%{files_jre_headless %{nil}}
2535c8
2535c8
%files devel
2535c8
%{files_devel %{nil}}
2535c8
2535c8
%files jmods
2535c8
%{files_jmods %{nil}}
2535c8
2535c8
%files demo
2535c8
%{files_demo %{nil}}
2535c8
2535c8
%files src
2535c8
%{files_src %{nil}}
2535c8
2535c8
%files javadoc
2535c8
%{files_javadoc %{nil}}
2535c8
2535c8
# this puts huge file to /usr/share
2535c8
# unluckily ti is really a documentation file
2535c8
# and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64 only
2535c8
# same for debug variant
2535c8
%files javadoc-zip
2535c8
%{files_javadoc_zip %{nil}}
2535c8
%endif
2535c8
2535c8
%if %{include_debug_build}
2535c8
%files debug
2535c8
%{files_jre -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files headless-debug
2535c8
%{files_jre_headless -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files devel-debug
2535c8
%{files_devel -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files jmods-debug
2535c8
%{files_jmods -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files demo-debug
2535c8
%{files_demo -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files src-debug
2535c8
%{files_src -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files javadoc-debug
2535c8
%{files_javadoc -- %{debug_suffix_unquoted}}
2535c8
2535c8
%files javadoc-zip-debug
2535c8
%{files_javadoc_zip -- %{debug_suffix_unquoted}}
2535c8
2535c8
%endif
2535c8
2535c8
%changelog
2535c8
* Tue Aug 27 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.5.2-0.2.ea
2535c8
- Update generate_source_tarball.sh script to use the PR3751 patch and retain the secp256k1 curve.
2535c8
- Regenerate source tarball using the updated script and add the -'4curve' suffix.
2535c8
- PR3751 includes the changes in the PR1834/RH1022017 patch which is removed.
2535c8
- Resolves: rhbz#1699068
2535c8
2535c8
* Sat Aug 24 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.5.2-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.5+2 (EA)
2535c8
- Resolves: rhbz#1737117
2535c8
2535c8
* Mon Aug 12 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.5.1-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.5+1 (EA)
2535c8
- Switch to EA mode for 11.0.5 pre-release builds.
2535c8
- Resolves: rhbz#1737117
2535c8
2535c8
* Tue Jul 09 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.11-1
2535c8
- Update to shenandoah-jdk-11.0.4+11 (GA)
2535c8
- Switch to GA mode for final release.
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.10-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+10 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.9-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+9 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Mon Jul 08 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.8-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+8 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Sun Jul 07 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.7-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+7 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Wed Jul 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.6-0.1.ea
2535c8
- Provide Javadoc debug subpackages for now, but populate them from the normal build.
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Wed Jul 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.6-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+6 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Wed Jul 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.5-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+5 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Tue Jul 02 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.4-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+4 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Mon Jul 01 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.3-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+3 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Sun Jun 30 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.4.2-0.1.ea
2535c8
- Use RHEL 7 format for jspawnhelper addition.
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Sun Jun 30 2019 Andrew John Hughes <gnu.andrew@redhat.com> - 1:11.0.4.2-0.1.ea
2535c8
- Update to shenandoah-jdk-11.0.4+2 (EA)
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Fri Jun 21 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.4.2-0.1.ea
2535c8
- Package jspawnhelper (see JDK-8220360).
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Fri Jun 21 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.3.7-3
2535c8
- Include 'ea' designator in Release when appropriate.
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Wed May 22 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.3.7-3
2535c8
- Handle milestone as variables so we can alter it easily and set the docs zip filename appropriately.
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Thu Apr 25 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.3.7-2
2535c8
- Don't build the test images needlessly.
2535c8
- Don't produce javadoc/javadoc-zip sub packages for the debug variant build.
2535c8
- Don't perform a bootcycle build for the debug variant build.
2535c8
- Resolves: rhbz#1724452
2535c8
2535c8
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.3.7-1
2535c8
- Update to shenandoah-jdk-11.0.3+7 (April 2019 GA)
2535c8
- Resolves: rhbz#1693468
2535c8
2535c8
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.3.6-1
2535c8
- Add -mstackrealign workaround to build flags to avoid SSE issues on x86
2535c8
- Resolves: rhbz#1677516
2535c8
2535c8
* Thu Apr 04 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.3.6-1
2535c8
- Fix macro which doesn't expand.
2535c8
- Related: rhbz#1684617
2535c8
2535c8
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.3.6-1
2535c8
- Add cast to resolve s390 ambiguity in call to log2_intptr
2535c8
- Resolves: rhbz#1677516
2535c8
2535c8
* Thu Apr 04 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.3.6-1
2535c8
- Update to shenandoah-jdk-11.0.3+6 (April 2019 EA)
2535c8
- Drop JDK-8210416/RH1632174 applied upstream.
2535c8
- Drop JDK-8210425/RH1632174 applied upstream.
2535c8
- Drop JDK-8210647/RH1632174 applied upstream.
2535c8
- Drop JDK-8210761/RH1632174 applied upstream.
2535c8
- Drop JDK-8210703/RH1632174 applied upstream.
2535c8
- Resolves: rhbz#1677516
2535c8
2535c8
* Wed Apr 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.2.7-4
2535c8
- Replace pcsc-lite-devel with pcsc-lite-libs so deps can be resolved without optional repository
2535c8
- Add JDK-8009550/RH910107 patch so OpenJDK checks for libpcsclite.so.1 (in pcsc-lite-libs)
2535c8
- Add missing ISA to cups-libs requirement
2535c8
- Remove duplicate lksctp-tools requirement
2535c8
- Resolves: rhbz#1684617
2535c8
2535c8
* Wed Apr 03 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.2.7-4
2535c8
- Disable gdb check on s390 as it sporadically fails with SIGFPE
2535c8
- Resolves: rhbz#1693468
2535c8
2535c8
* Tue Apr 02 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.2.7-3
2535c8
- Drop NSS runtime dependencies and patches to link against it.
2535c8
- Resolves: rhbz#1656677
2535c8
2535c8
* Thu Mar 21 2019 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.2.7-2
2535c8
- Add patch for RH1566890
2535c8
- Resolves: rhbz#1693468
2535c8
2535c8
* Tue Jan 15 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.2.7-1
2535c8
- Update to shenandoah-jdk-11.0.2+7 (January 2019 CPU)
2535c8
- Make tagsuffix optional and comment it out while unused.
2535c8
- Drop JDK-8211105/RH1628612/RH1630996 applied upstream.
2535c8
- Drop JDK-8209639/RH1640127 applied upstream.
2535c8
- Re-generate JDK-8210416/RH1632174 following JDK-8209786
2535c8
- Resolves: rhbz#1661577
2535c8
2535c8
* Mon Jan 14 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.1.13-8
2535c8
- Fix remove-intree-libraries.sh to not exit early and skip SunEC handling.
2535c8
- Fix PR1983 SunEC patch so that ecc_impl.h is patched rather than added
2535c8
- Resolves: rhbz#1661577
2535c8
2535c8
* Fri Jan 11 2019 Andrew Hughes <gnu.andrew@redhat.com> - 1:11.0.1.13-8
2535c8
- Update to shenandoah-jdk-11.0.1+13-20190101
2535c8
- Update tarball generation script in preparation for PR3681/RH1656677 SunEC changes.
2535c8
- Use remove-intree-libraries.sh to remove the remaining SunEC code for now.
2535c8
- Add missing RH1022017 patch to reduce curves reported by SSL to those we support.
2535c8
- Drop upstream Shenandoah patch RH1648995.
2535c8
- Resolves: rhbz#1661577
2535c8
2535c8
* Fri Dec 07 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.1.13-7
2535c8
- Added %%global _find_debuginfo_opts -g
2535c8
- Resolves: rhbz#1656997
2535c8
2535c8
* Mon Nov 12 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.1.13-6
2535c8
- fixed tck failures of arraycopy and process exec with shenandoah on
2535c8
- added patch585 rh1648995-shenandoah_array_copy_broken_by_not_always_copy_forward_for_disjoint_arrays.patch
2535c8
2535c8
* Wed Nov 07 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.1.13-5
2535c8
- headless' suggests of cups, replaced by Requires of cups-libs
2535c8
2535c8
* Thu Nov 01 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.1.13-3
2535c8
- added Patch584 jdk8209639-rh1640127-02-coalesce_attempted_spill_non_spillable.patch
2535c8
2535c8
* Mon Oct 29 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.1.13-3
2535c8
- Use upstream's version of Aarch64 intrinsics disable patch:
2535c8
  - Removed:
2535c8
    RHBZ-1628612-JDK-8210461-workaround-disable-aarch64-intrinsic.patch
2535c8
    RHBZ-1630996-JDK-8210858-workaround-disable-aarch64-intrinsic-log.patch
2535c8
  - Superceded by:
2535c8
    jdk8211105-aarch64-disable_cos_sin_and_log_intrinsics.patch
2535c8
2535c8
* Thu Oct 18 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.1.13-2
2535c8
- Use LTS designator in version output for RHEL.
2535c8
2535c8
* Thu Oct 18 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.1.13-1
2535c8
- Update to October 2018 CPU release, 11.0.1+13.
2535c8
2535c8
* Wed Oct 17 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.0.28-2
2535c8
- Use --with-vendor-version-string=18.9 so as to show original
2535c8
  GA date for the JDK.
2535c8
2535c8
* Fri Sep 28 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.0.28-1
2535c8
- Identify as GA version and no longer as early access (EA).
2535c8
- JDK 11 has been released for GA on 2018-09-25.
2535c8
2535c8
* Fri Sep 28 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.28-9
2535c8
- Rework changes from 1:11.0.ea.22-6. RHBZ#1632174 supercedes
2535c8
  RHBZ-1624122.
2535c8
- Add patch, jdk8210416-rh1632174-compile_fdlibm_with_o2_ffp_contract_off_on_gcc_clang_arches.patch, so as to
2535c8
  optimize compilation of fdlibm library.
2535c8
- Add patch, jdk8210425-rh1632174-sharedRuntimeTrig_sharedRuntimeTrans_compiled_without_optimization.patch, so
2535c8
  as to optimize compilation of sharedRuntime{Trig,Trans}.cpp
2535c8
- Add patch, jdk8210647-rh1632174-libsaproc_is_being_compiled_without_optimization.patch, so as to
2535c8
  optimize compilation of libsaproc (extra c flags won't override
2535c8
  optimization).
2535c8
- Add patch, jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch, so as to
2535c8
  optimize compilation of libjsig.
2535c8
- Add patch, jdk8210703-rh1632174-vmStructs_cpp_no_longer_compiled_with_o0, so as to
2535c8
  optimize compilation of vmStructs.cpp (part of libjvm.so).
2535c8
- Reinstate filtering of opt flags coming from redhat-rpm-config.
2535c8
2535c8
* Thu Sep 27 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.28-8
2535c8
- removed version less provides
2535c8
- javadocdir moved to arched dir as it is no longer noarch
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Thu Sep 20 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.28-6
2535c8
- Add patch, RHBZ-1630996-JDK-8210858-workaround-disable-aarch64-intrinsic-log.patch,
2535c8
  so as to disable log math intrinsic on aarch64. Work-around for
2535c8
  JDK-8210858
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Thu Sep 13 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.28-5
2535c8
- Add patch, RHBZ-1628612-JDK-8210461-workaround-disable-aarch64-intrinsic.patch,
2535c8
  so as to disable dsin/dcos math intrinsics on aarch64. Work-around for
2535c8
  JDK-8210461.
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Wed Sep 12 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.22-6
2535c8
- Add patch, JDK-8210416-RHBZ-1624122-fdlibm-opt-fix.patch, so as to
2535c8
  optimize compilation of fdlibm library.
2535c8
- Add patch, JDK-8210425-RHBZ-1624122-sharedRuntimeTrig-opt-fix.patch, so
2535c8
  as to optimize compilation of sharedRuntime{Trig,Trans}.cpp
2535c8
- Add patch, JDK-8210647-RHBZ-1624122-libsaproc-opt-fix.patch, so as to
2535c8
  optimize compilation of libsaproc (extra c flags won't override
2535c8
  optimization).
2535c8
- Add patch, JDK-8210703-RHBZ-1624122-vmStructs-opt-fix.patch, so as to
2535c8
  optimize compilation of vmStructs.cpp (part of libjvm.so).
2535c8
- No longer filter -O flags from C flags coming from
2535c8
  redhat-rpm-config.
2535c8
- Resolves: RHBZ#1570856
2535c8
2535c8
* Mon Sep 10 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.28-4
2535c8
- link to jhsdb followed its file to ifarch jit_arches ifnarch s390x
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Fri Sep 7 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.28-4
2535c8
- modified to build by itself
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Fri Sep 7 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.28-3
2535c8
- Enable ZGC on x86_64.
2535c8
- Resolves: RHBZ#1570856
2535c8
2535c8
* Wed Sep 5 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.28-2
2535c8
- jfr/*jfc files listed for all arches
2535c8
- lib/classlist do not exists s390, ifarch-ed via jit_arches out
2535c8
- specfile slightly improved to allow srpm rebuild on rhel8/fedoras
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Fri Aug 31 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.28-1
2535c8
- Update to latest upstream build jdk11+28, the first release
2535c8
  candidate.
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Wed Aug 29 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:11.0.ea.22-8
2535c8
- Adjust system NSS patch, pr1983-rh1565658-support_using_the_system_installation_of_nss_with_the_sunec_provider_jdk11.patch, so
2535c8
  as to filter -Wl,--as-needed from linker flags. Fixes FTBFS issue.
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Tue Aug 28 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.22-6
2535c8
- dissabled accessibility, fixed provides for main package's debug variant
2535c8
- Resolves: RHBZ#1570856
2535c8
2535c8
* Mon Aug 27 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.22-8
2535c8
- jfr/*jfc files listed for all arches
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Mon Aug 27 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.22-7
2535c8
- added space behind jmd slave
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Mon Aug 27 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.22-6
2535c8
- jfr/*jfc files listed also for ppc
2535c8
- Resolves: rhbz#1570856
2535c8
2535c8
* Thu Aug 23 2018 Jiri Vanek <jvanek@redhat.com> - 1:11.0.ea.22-5
2535c8
- Initial Load
2535c8
- removed -fno-lifetime-dse; rhel7 gcc to old (4.8.5)
2535c8
- lib/classlist do not exists s390, ifarch-ed via jit_arches out
2535c8
- Resolves: rhbz#1570856