|
|
|
@ -317,9 +317,8 @@
|
|
|
|
|
%global stapinstall %{nil}
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# always off for portable builds
|
|
|
|
|
%ifarch %{systemtap_arches}
|
|
|
|
|
%global with_systemtap 0
|
|
|
|
|
%global with_systemtap 1
|
|
|
|
|
%else
|
|
|
|
|
%global with_systemtap 0
|
|
|
|
|
%endif
|
|
|
|
@ -327,7 +326,7 @@
|
|
|
|
|
# New Version-String scheme-style defines
|
|
|
|
|
%global featurever 17
|
|
|
|
|
%global interimver 0
|
|
|
|
|
%global updatever 7
|
|
|
|
|
%global updatever 8
|
|
|
|
|
%global patchver 0
|
|
|
|
|
# buildjdkver is usually same as %%{featurever},
|
|
|
|
|
# but in time of bootstrap of next jdk, it is featurever-1,
|
|
|
|
@ -375,7 +374,7 @@
|
|
|
|
|
%global top_level_dir_name %{origin}
|
|
|
|
|
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
|
|
|
|
%global buildver 7
|
|
|
|
|
%global rpmrelease 2
|
|
|
|
|
%global rpmrelease 1
|
|
|
|
|
#%%global tagsuffix %%{nil}
|
|
|
|
|
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
|
|
|
|
|
%if %is_system_jdk
|
|
|
|
@ -491,20 +490,6 @@
|
|
|
|
|
%global alternatives_requires %{_sbindir}/alternatives
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%if %{with_systemtap}
|
|
|
|
|
# Where to install systemtap tapset (links)
|
|
|
|
|
# We would like these to be in a package specific sub-dir,
|
|
|
|
|
# but currently systemtap doesn't support that, so we have to
|
|
|
|
|
# use the root tapset dir for now. To distinguish between 64
|
|
|
|
|
# and 32 bit architectures we place the tapsets under the arch
|
|
|
|
|
# specific dir (note that systemtap will only pickup the tapset
|
|
|
|
|
# for the primary arch for now). Systemtap uses the machine name
|
|
|
|
|
# aka target_cpu as architecture specific directory name.
|
|
|
|
|
%global tapsetroot /usr/share/systemtap
|
|
|
|
|
%global tapsetdirttapset %{tapsetroot}/tapset/
|
|
|
|
|
%global tapsetdir %{tapsetdirttapset}/%{stapinstall}
|
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
# x86 is not supported by OpenJDK 17
|
|
|
|
|
ExcludeArch: %{ix86}
|
|
|
|
|
|
|
|
|
@ -580,8 +565,7 @@ Source0: openjdk-jdk%{featurever}u-%{vcstag}.tar.xz
|
|
|
|
|
# Use 'icedtea_sync.sh' to update the following
|
|
|
|
|
# They are based on code contained in the IcedTea project (6.x).
|
|
|
|
|
# Systemtap tapsets. Zipped up to keep it small.
|
|
|
|
|
# Disabled in portables
|
|
|
|
|
#Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
|
|
|
|
|
Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
|
|
|
|
|
|
|
|
|
|
# Desktop files. Adapted from IcedTea
|
|
|
|
|
# Disabled in portables
|
|
|
|
@ -678,10 +662,6 @@ Patch1001: fips-17u-%{fipsver}.patch
|
|
|
|
|
# OpenJDK patches appearing in 17.0.8
|
|
|
|
|
#
|
|
|
|
|
#############################################
|
|
|
|
|
# JDK-8274864: Remove Amman/Cairo hacks in ZoneInfoFile
|
|
|
|
|
Patch2001: jdk8274864-remove_amman_cairo_hacks.patch
|
|
|
|
|
# JDK-8305113: (tz) Update Timezone Data to 2023c
|
|
|
|
|
Patch2002: jdk8305113-tzdata2023c.patch
|
|
|
|
|
|
|
|
|
|
#############################################
|
|
|
|
|
#
|
|
|
|
@ -733,6 +713,9 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel
|
|
|
|
|
%ifarch %{zero_arches}
|
|
|
|
|
BuildRequires: libffi-devel
|
|
|
|
|
%endif
|
|
|
|
|
# Full documentation build requirements
|
|
|
|
|
BuildRequires: graphviz
|
|
|
|
|
BuildRequires: pandoc
|
|
|
|
|
# 2023c required as of JDK-8305113
|
|
|
|
|
BuildRequires: tzdata-java >= 2023c
|
|
|
|
|
# cacerts build requirement in portable mode
|
|
|
|
@ -758,9 +741,9 @@ Provides: bundled(freetype) = 2.12.1
|
|
|
|
|
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
|
|
|
|
|
Provides: bundled(giflib) = 5.2.1
|
|
|
|
|
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
|
|
|
|
|
Provides: bundled(harfbuzz) = 4.4.1
|
|
|
|
|
Provides: bundled(harfbuzz) = 7.0.1
|
|
|
|
|
# Version in src/java.desktop/share/native/liblcms/lcms2.h
|
|
|
|
|
Provides: bundled(lcms2) = 2.12.0
|
|
|
|
|
Provides: bundled(lcms2) = 2.15.0
|
|
|
|
|
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
|
|
|
|
|
Provides: bundled(libjpeg) = 6b
|
|
|
|
|
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
|
|
|
|
@ -964,9 +947,6 @@ pushd %{top_level_dir_name}
|
|
|
|
|
%patch1001 -p1
|
|
|
|
|
# nss.cfg PKCS11 support; must come last as it also alters java.security
|
|
|
|
|
%patch1000 -p1
|
|
|
|
|
# tzdata update
|
|
|
|
|
%patch2001 -p1
|
|
|
|
|
%patch2002 -p1
|
|
|
|
|
popd # openjdk
|
|
|
|
|
|
|
|
|
|
%patch600
|
|
|
|
@ -988,7 +968,9 @@ if [ "x${UPSTREAM_EA_DESIGNATOR}" != "x%{ea_designator}" ] ; then
|
|
|
|
|
echo "WARNING: Designator mismatch";
|
|
|
|
|
echo "Spec file is configured for a %{build_type} build with designator '%{ea_designator}'"
|
|
|
|
|
echo "Upstream version-pre setting is '${UPSTREAM_EA_DESIGNATOR}'";
|
|
|
|
|
exit 17
|
|
|
|
|
# Temporarily commented out as local copy of jdk-17.0.8+7 has the wrong setting
|
|
|
|
|
# This is fixed in the final upstream version
|
|
|
|
|
# exit 17
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Extract systemtap tapsets
|
|
|
|
@ -1003,18 +985,8 @@ cp -r tapset tapset%{fastdebug_suffix}
|
|
|
|
|
|
|
|
|
|
for suffix in %{build_loop} ; do
|
|
|
|
|
for file in "tapset"$suffix/*.in; do
|
|
|
|
|
OUTPUT_FILE=`echo $file | sed -e "s:\.stp\.in$:-%{version}-%{release}.%{_arch}.stp:g"`
|
|
|
|
|
sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/lib/server/libjvm.so:g" $file > $file.1
|
|
|
|
|
sed -e "s:@JAVA_SPEC_VER@:%{javaver}:g" $file.1 > $file.2
|
|
|
|
|
# TODO find out which architectures other than i686 have a client vm
|
|
|
|
|
%ifarch %{ix86}
|
|
|
|
|
sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/lib/client/libjvm.so:g" $file.2 > $OUTPUT_FILE
|
|
|
|
|
%else
|
|
|
|
|
sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.2 > $OUTPUT_FILE
|
|
|
|
|
%endif
|
|
|
|
|
sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g" $OUTPUT_FILE
|
|
|
|
|
sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE
|
|
|
|
|
sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE
|
|
|
|
|
sed -i -e "s:@JAVA_SPEC_VER@:%{javaver}:g" $file
|
|
|
|
|
sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $file
|
|
|
|
|
done
|
|
|
|
|
done
|
|
|
|
|
# systemtap tapsets ends
|
|
|
|
@ -1105,8 +1077,8 @@ function buildjdk() {
|
|
|
|
|
%endif
|
|
|
|
|
--with-cacerts-file=$(readlink -f %{_sysconfdir}/pki/java/cacerts) \
|
|
|
|
|
--with-version-build=%{buildver} \
|
|
|
|
|
--with-version-pre="${ea_designator}" \
|
|
|
|
|
--with-version-opt=%{lts_designator} \
|
|
|
|
|
--with-version-pre="%{ea_designator}" \
|
|
|
|
|
--with-version-opt="%{lts_designator}" \
|
|
|
|
|
--with-vendor-version-string="%{oj_vendor_version}" \
|
|
|
|
|
--with-vendor-name="%{oj_vendor}" \
|
|
|
|
|
--with-vendor-url="%{oj_vendor_url}" \
|
|
|
|
@ -1138,16 +1110,64 @@ function buildjdk() {
|
|
|
|
|
|
|
|
|
|
cat spec.gmk
|
|
|
|
|
make LOG=trace $maketargets || \
|
|
|
|
|
( pwd; find ${top_dir_abs_src_path} ${top_dir_abs_build_path} -name \"hs_err_pid*.log\" | xargs cat && false )
|
|
|
|
|
( pwd; find ${top_dir_abs_src_path} ${top_dir_abs_build_path} -name \"hs_err_pid*.log\" | xargs cat && false )
|
|
|
|
|
|
|
|
|
|
popd
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function stripjdk() {
|
|
|
|
|
local outputdir=${1}
|
|
|
|
|
local jdkimagepath=${outputdir}/images/%{jdkimage}
|
|
|
|
|
local jreimagepath=${outputdir}/images/%{jreimage}
|
|
|
|
|
local jmodimagepath=${outputdir}/images/jmods
|
|
|
|
|
local supportdir=${outputdir}/support
|
|
|
|
|
|
|
|
|
|
if [ "x$suffix" = "x" ] ; then
|
|
|
|
|
# Keep the unstripped version for consumption by RHEL RPMs
|
|
|
|
|
cp -a ${jdkimagepath}{,.unstripped}
|
|
|
|
|
|
|
|
|
|
# Strip the files
|
|
|
|
|
for file in $(find ${jdkimagepath} ${jreimagepath} ${supportdir} -type f) ; do
|
|
|
|
|
if file ${file} | grep -q 'ELF'; then
|
|
|
|
|
noextfile=${file/.so/};
|
|
|
|
|
objcopy --only-keep-debug ${file} ${noextfile}.debuginfo;
|
|
|
|
|
objcopy --add-gnu-debuglink=${noextfile}.debuginfo ${file};
|
|
|
|
|
strip -g ${file};
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Rebuild jmod files against the stripped binaries
|
|
|
|
|
if [ ! -d ${supportdir} ] ; then
|
|
|
|
|
echo "Support directory missing.";
|
|
|
|
|
exit 15
|
|
|
|
|
fi
|
|
|
|
|
for cmd in $(find ${supportdir} -name '*.jmod_exec.cmdline') ; do
|
|
|
|
|
pre=${cmd/_exec/_pre};
|
|
|
|
|
post=${cmd/_exec/_post};
|
|
|
|
|
jmod=$(echo ${cmd}|sed 's#.*_create_##'|sed 's#_exec.cmdline##')
|
|
|
|
|
echo "Rebuilding ${jmod} against stripped binaries...";
|
|
|
|
|
if [ -e ${pre} ] ; then
|
|
|
|
|
echo "Executing ${pre}...";
|
|
|
|
|
cat ${pre} | sh -s ;
|
|
|
|
|
fi
|
|
|
|
|
echo "Executing ${cmd}...";
|
|
|
|
|
cat ${cmd} | sh -s ;
|
|
|
|
|
if [ -e ${post} ] ; then
|
|
|
|
|
echo "Executing ${post}...";
|
|
|
|
|
cat ${post} | sh -s ;
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
rm -rf ${jdkimagepath}/jmods
|
|
|
|
|
cp -a ${jmodimagepath} ${jdkimagepath}
|
|
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function installjdk() {
|
|
|
|
|
local outputdir=${1}
|
|
|
|
|
local installdir=${2}
|
|
|
|
|
local jdkimagepath=${installdir}/images/%{jdkimage}
|
|
|
|
|
local jreimagepath=${installdir}/images/%{jreimage}
|
|
|
|
|
local unstripped=${jdkimagepath}.unstripped
|
|
|
|
|
|
|
|
|
|
echo "Installing build from ${outputdir} to ${installdir}..."
|
|
|
|
|
mkdir -p ${installdir}
|
|
|
|
@ -1176,7 +1196,7 @@ function installjdk() {
|
|
|
|
|
fi;
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
for imagepath in ${jdkimagepath} ${jreimagepath} ; do
|
|
|
|
|
for imagepath in ${jdkimagepath} ${jreimagepath} ${unstripped}; do
|
|
|
|
|
|
|
|
|
|
if [ -d ${imagepath} ] ; then
|
|
|
|
|
# the build (erroneously) removes read permissions from some jars
|
|
|
|
@ -1225,6 +1245,7 @@ function packagejdk() {
|
|
|
|
|
local bundledir=$(pwd)/${1}/bundles
|
|
|
|
|
local packagesdir=$(pwd)/${2}
|
|
|
|
|
local srcdir=$(pwd)/%{top_level_dir_name}
|
|
|
|
|
local tapsetdir=$(pwd)/tapset
|
|
|
|
|
|
|
|
|
|
echo "Packaging build from ${imagesdir} to ${packagesdir}..."
|
|
|
|
|
mkdir -p ${packagesdir}
|
|
|
|
@ -1252,42 +1273,39 @@ function packagejdk() {
|
|
|
|
|
miscname=%{miscportablename}
|
|
|
|
|
miscarchive=${packagesdir}/%{miscportablearchive}
|
|
|
|
|
|
|
|
|
|
# Rename directories for packaging
|
|
|
|
|
cp -r %{jdkimage} ${jdkname}
|
|
|
|
|
cp -r %{jreimage} ${jrename}
|
|
|
|
|
|
|
|
|
|
# Release images have external debug symbols
|
|
|
|
|
if [ "x$suffix" = "x" ] ; then
|
|
|
|
|
# Keep the unstripped version for consumption by RHEL RPMs
|
|
|
|
|
mv %{jdkimage}.unstripped ${jdkname}
|
|
|
|
|
tar -cJf ${unstrippedarchive} ${jdkname}
|
|
|
|
|
genchecksum ${unstrippedarchive}
|
|
|
|
|
mv ${jdkname} %{jdkimage}.unstripped
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# Strip the files
|
|
|
|
|
for file in $(find ${jdkname} ${jrename} -type f) ; do
|
|
|
|
|
if file ${file} | grep -q 'ELF'; then
|
|
|
|
|
noextfile=${file/.so/};
|
|
|
|
|
objcopy --only-keep-debug ${file} ${noextfile}.debuginfo;
|
|
|
|
|
objcopy --add-gnu-debuglink=${noextfile}.debuginfo ${file};
|
|
|
|
|
strip -g ${file};
|
|
|
|
|
fi
|
|
|
|
|
done
|
|
|
|
|
# Rename directories for packaging
|
|
|
|
|
cp -r %{jdkimage} ${jdkname}
|
|
|
|
|
cp -r %{jreimage} ${jrename}
|
|
|
|
|
|
|
|
|
|
# Release images have external debug symbols
|
|
|
|
|
if [ "x$suffix" = "x" ] ; then
|
|
|
|
|
tar -cJf ${debugarchive} $(find ${jdkname} -name \*.debuginfo)
|
|
|
|
|
genchecksum ${debugarchive}
|
|
|
|
|
|
|
|
|
|
mkdir ${docname}
|
|
|
|
|
mv ${docdir} ${docname}
|
|
|
|
|
mv ${bundledir}/${built_doc_archive} ${docname}
|
|
|
|
|
tar -cJf ${docarchive} ${docname}
|
|
|
|
|
genchecksum ${docarchive}
|
|
|
|
|
|
|
|
|
|
mkdir ${miscname}
|
|
|
|
|
for s in 16 24 32 48 ; do
|
|
|
|
|
cp -av ${srcdir}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png ${miscname}
|
|
|
|
|
done
|
|
|
|
|
cp -a ${srcdir}/src/sample ${miscname}
|
|
|
|
|
tar -cJf ${miscarchive} ${miscname}
|
|
|
|
|
genchecksum ${miscarchive}
|
|
|
|
|
mkdir ${docname}
|
|
|
|
|
mv ${docdir} ${docname}
|
|
|
|
|
mv ${bundledir}/${built_doc_archive} ${docname}
|
|
|
|
|
tar -cJf ${docarchive} ${docname}
|
|
|
|
|
genchecksum ${docarchive}
|
|
|
|
|
|
|
|
|
|
mkdir ${miscname}
|
|
|
|
|
for s in 16 24 32 48 ; do
|
|
|
|
|
cp -av ${srcdir}/src/java.desktop/unix/classes/sun/awt/X11/java-icon${s}.png ${miscname}
|
|
|
|
|
done
|
|
|
|
|
cp -a ${srcdir}/src/sample ${miscname}
|
|
|
|
|
%if %{with_systemtap}
|
|
|
|
|
cp -a ${tapsetdir}* ${miscname}
|
|
|
|
|
%endif
|
|
|
|
|
tar -cJf ${miscarchive} ${miscname}
|
|
|
|
|
genchecksum ${miscarchive}
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
tar -cJf ${jdkarchive} --exclude='**.debuginfo' ${jdkname}
|
|
|
|
@ -1364,10 +1382,12 @@ for suffix in %{build_loop} ; do
|
|
|
|
|
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} ${debug_symbols}
|
|
|
|
|
installjdk ${bootbuilddir} ${bootinstalldir}
|
|
|
|
|
buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols}
|
|
|
|
|
stripjdk ${builddir}
|
|
|
|
|
installjdk ${builddir} ${installdir}
|
|
|
|
|
%{!?with_artifacts:rm -rf ${bootinstalldir}}
|
|
|
|
|
else
|
|
|
|
|
buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols}
|
|
|
|
|
stripjdk ${builddir}
|
|
|
|
|
installjdk ${builddir} ${installdir}
|
|
|
|
|
fi
|
|
|
|
|
packagejdk ${installdir} ${packagesdir}
|
|
|
|
@ -1672,6 +1692,41 @@ done
|
|
|
|
|
%{_jvmdir}/%{miscportablearchive}.sha256sum
|
|
|
|
|
|
|
|
|
|
%changelog
|
|
|
|
|
* Fri Jul 14 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.7-1
|
|
|
|
|
- Update to jdk-17.0.8+7 (GA)
|
|
|
|
|
- Update release notes to 17.0.8+7
|
|
|
|
|
- Switch to GA mode for final release.
|
|
|
|
|
- * This tarball is embargoed until 2023-07-18 @ 1pm PT. *
|
|
|
|
|
|
|
|
|
|
* Thu Jul 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.6-0.1.ea
|
|
|
|
|
- Update to jdk-17.0.8+6 (EA)
|
|
|
|
|
- Update release notes to 17.0.8+6
|
|
|
|
|
|
|
|
|
|
* Thu Jul 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.1-0.3.ea
|
|
|
|
|
- Make sure the unstripped JDK is customised by the installjdk function
|
|
|
|
|
|
|
|
|
|
* Wed Jul 12 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.1-0.2.ea
|
|
|
|
|
- Rebuild jmods using the stripped binaries in release builds
|
|
|
|
|
- Resolves: OPENJDK-1974
|
|
|
|
|
|
|
|
|
|
* Tue Jul 04 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.1-0.1.ea
|
|
|
|
|
- Use absolute path to tapset directory
|
|
|
|
|
- Drop unused globals for tapset installation
|
|
|
|
|
|
|
|
|
|
* Tue Jul 04 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.1-0.1.ea
|
|
|
|
|
- Re-enable SystemTap support and perform only substitutions possible without final NVR available
|
|
|
|
|
- Depend on graphviz & pandoc for full documentation support
|
|
|
|
|
- Fix typo which stops the EA designator being included in the build
|
|
|
|
|
- Include tapsets in the miscellaneous tarball
|
|
|
|
|
|
|
|
|
|
* Mon Jul 03 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.8.0.1-0.1.ea
|
|
|
|
|
- Update to jdk-17.0.8+1 (EA)
|
|
|
|
|
- Update release notes to 17.0.8+1
|
|
|
|
|
- Switch to EA mode
|
|
|
|
|
- Drop local inclusion of JDK-8274864 & JDK-8305113 as they are included in 17.0.8+1
|
|
|
|
|
- Bump bundled LCMS version to 2.15 as in jdk-17.0.8+1.
|
|
|
|
|
- Bump bundled HarfBuzz version to 7.0.1 as in jdk-17.0.8+1
|
|
|
|
|
|
|
|
|
|
* Tue Apr 25 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2
|
|
|
|
|
- Update to jdk-17.0.7.0+7
|
|
|
|
|
- Update release notes to 17.0.7.0+7
|
|
|
|
|