import java-17-openjdk-portable-17.0.11.0.9-3.el9

i8 changed/i8/java-17-openjdk-portable-17.0.11.0.9-3.el8
Arkady L. Shane 10 months ago
parent 3fa91db452
commit 4d5312b8f3
Signed by: tigro
GPG Key ID: 1EC08A25C9DB2503

2
.gitignore vendored

@ -1,2 +1,2 @@
SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
SOURCES/openjdk-17.0.10+7.tar.xz
SOURCES/openjdk-17.0.11+9.tar.xz

@ -1,2 +1,2 @@
540d8b5c8775178dabc5b1d8b779527512b4dad1 SOURCES/openjdk-17.0.11+9.tar.xz
c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
3bf0901457dc879dcf7cd5068c55d94c0b79ead0 SOURCES/openjdk-17.0.10+7.tar.xz

@ -1,41 +0,0 @@
OpenJDK 17 is the latest Long-Term Support (LTS) release of the Java platform.
For a list of major changes from OpenJDK 11 (java-11-openjdk), see the upstream
release page for OpenJDK 17 and the preceding interim releases:
* 12: https://openjdk.java.net/projects/jdk/12/
* 13: https://openjdk.java.net/projects/jdk/13/
* 14: https://openjdk.java.net/projects/jdk/14/
* 15: https://openjdk.java.net/projects/jdk/15/
* 16: https://openjdk.java.net/projects/jdk/16/
* 17: https://openjdk.java.net/projects/jdk/17/
# Rebuilding the OpenJDK package
The OpenJDK packages are now created from a single build which is then
packaged for different major versions of Red Hat Enterprise Linux
(RHEL). This allows the OpenJDK team to focus their efforts on the
development and testing of this single build, rather than having
multiple builds which only differ by the platform they were built on.
This does make rebuilding the package slightly more complicated than a
normal package. Modifications should be made to the
`java-17-openjdk-portable.specfile` file, which can be found with this
README file in the source RPM or installed in the documentation tree
by the `java-17-openjdk-headless` RPM.
Once the modified `java-17-openjdk-portable` RPMs are built, they
should be installed and will produce a number of tarballs in the
`/usr/lib/jvm` directory. The `java-17-openjdk` RPMs can then be
built, which will use these tarballs to create the usual RPMs found in
RHEL. The `java-17-openjdk-portable` RPMs can be uninstalled once the
desired final RPMs are produced.
Note that the `java-17-openjdk.spec` file has a hard requirement on
the exact version of java-17-openjdk-portable to use, so this will
need to be modified if the version or rpmrelease values are changed in
`java-17-openjdk-portable.specfile`.
To reduce the number of RPMs involved, the `fastdebug` and `slowdebug`
builds may be disabled using `--without fastdebug` and `--without
slowdebug`.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -1,10 +0,0 @@
[Desktop Entry]
Name=OpenJDK @JAVA_VER@ for @target_cpu@ Monitoring & Management Console (@OPENJDK_VER@)
Comment=Monitor and manage OpenJDK applications
Exec=_SDKBINDIR_/jconsole
Icon=java-@JAVA_VER@-@JAVA_VENDOR@
Terminal=false
Type=Application
StartupWMClass=sun-tools-jconsole-JConsole
Categories=Development;Profiling;Java;
Version=1.0

@ -1,50 +0,0 @@
commit 5b613e3ebed6c141146e743e64c894fe4f39421e
Author: Andrew John Hughes <andrew@openjdk.org>
Date: Fri Sep 1 15:53:41 2023 +0000
8312489: Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar
Backport-of: e47a84f23dd2608c6f5748093eefe301fb5bf750
diff --git a/src/java.base/share/classes/java/util/jar/JarFile.java b/src/java.base/share/classes/java/util/jar/JarFile.java
index bd538649a4f..70cf99504e4 100644
--- a/src/java.base/share/classes/java/util/jar/JarFile.java
+++ b/src/java.base/share/classes/java/util/jar/JarFile.java
@@ -803,7 +803,9 @@ private byte[] getBytes(ZipEntry ze) throws IOException {
throw new IOException("Unsupported size: " + uncompressedSize +
" for JarEntry " + ze.getName() +
". Allowed max size: " +
- SignatureFileVerifier.MAX_SIG_FILE_SIZE + " bytes");
+ SignatureFileVerifier.MAX_SIG_FILE_SIZE + " bytes. " +
+ "You can use the jdk.jar.maxSignatureFileSize " +
+ "system property to increase the default value.");
}
int len = (int)uncompressedSize;
int bytesRead;
diff --git a/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java b/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java
index 4ea9255ba0a..05acdcb9474 100644
--- a/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java
+++ b/src/java.base/share/classes/sun/security/util/SignatureFileVerifier.java
@@ -856,16 +856,16 @@ private static int initializeMaxSigFileSize() {
* the maximum allowed number of bytes for the signature-related files
* in a JAR file.
*/
- Integer tmp = GetIntegerAction.privilegedGetProperty(
- "jdk.jar.maxSignatureFileSize", 8000000);
+ int tmp = GetIntegerAction.privilegedGetProperty(
+ "jdk.jar.maxSignatureFileSize", 16000000);
if (tmp < 0 || tmp > MAX_ARRAY_SIZE) {
if (debug != null) {
- debug.println("Default signature file size 8000000 bytes " +
- "is used as the specified size for the " +
- "jdk.jar.maxSignatureFileSize system property " +
+ debug.println("The default signature file size of 16000000 bytes " +
+ "will be used for the jdk.jar.maxSignatureFileSize " +
+ "system property since the specified value " +
"is out of range: " + tmp);
}
- tmp = 8000000;
+ tmp = 16000000;
}
return tmp;
}

@ -1,20 +0,0 @@
--- openjdk/src/java.base/share/conf/security/java.security
+++ openjdk/src/java.base/share/conf/security/java.security
@@ -304,6 +304,8 @@
#
package.access=sun.misc.,\
sun.reflect.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.,\
#
# List of comma-separated packages that start with or equal this string
@@ -316,6 +318,8 @@
#
package.definition=sun.misc.,\
sun.reflect.,\
+ org.GNOME.Accessibility.,\
+ org.GNOME.Bonobo.,\
#
# Determines whether this properties file can be appended to

@ -1,19 +0,0 @@
Remove uses of FAR in jpeg code
Upstream libjpeg-trubo removed the (empty) FAR macro:
http://sourceforge.net/p/libjpeg-turbo/code/1312/
Adjust our code to not use the undefined FAR macro anymore.
diff --git a/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c b/jdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
--- openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
+++ openjdk/src/java.desktop/share/native/libjavajpeg/imageioJPEG.c
@@ -1385,7 +1385,7 @@
/* and fill it in */
dst_ptr = icc_data;
for (seq_no = first; seq_no < last; seq_no++) {
- JOCTET FAR *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
+ JOCTET *src_ptr = icc_markers[seq_no]->data + ICC_OVERHEAD_LEN;
unsigned int length =
icc_markers[seq_no]->data_length - ICC_OVERHEAD_LEN;

@ -1,6 +1,3 @@
# portable jdk 17 specific bug, _jvmdir being missing
%define _jvmdir /usr/lib/jvm
# debug_package %%{nil} is portable-jdks specific
%define debug_package %{nil}
@ -11,10 +8,10 @@
# Examples:
#
# Produce release, fastdebug *and* slowdebug builds on x86_64 (default):
# $ rpmbuild -ba java-17-openjdk.spec
# $ rpmbuild -ba java-*-openjdk.spec
#
# Produce only release builds (no debug builds) on x86_64:
# $ rpmbuild -ba java-17-openjdk.spec --without slowdebug --without fastdebug
# $ rpmbuild -ba java-*-openjdk.spec --without slowdebug --without fastdebug
#
# Only produce a release build on x86_64:
# $ fedpkg mockbuild --without slowdebug --without fastdebug
@ -27,7 +24,7 @@
# Enable static library builds by default.
%bcond_without staticlibs
# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
%bcond_with fresh_libjvm
%bcond_without fresh_libjvm
# Build with system libraries
%bcond_with system_libs
@ -39,13 +36,6 @@
%global include_staticlibs 0
%endif
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
%if %{with fresh_libjvm}
%global build_hotspot_first 1
%else
%global build_hotspot_first 0
%endif
%if %{with system_libs}
%global system_libs 1
%global link_type system
@ -61,10 +51,6 @@
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1520879
%global _find_debuginfo_opts -g
# Disable LTO as this causes build failures at the moment.
# See RHBZ#1861401
%define _lto_cflags %{nil}
# note: parametrized macros are order-sensitive (unlike not-parametrized) even with normal macros
# also necessary when passing it as parameter to other macros. If not macro, then it is considered a switch
# see the difference between global and define:
@ -239,8 +225,9 @@
# Target to use to just build HotSpot
%global hotspot_target hotspot
# JDK to use for bootstrapping
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Disable LTO as this causes build failures at the moment.
# See RHBZ#1861401
%define _lto_cflags %{nil}
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
@ -326,12 +313,12 @@
# New Version-String scheme-style defines
%global featurever 17
%global interimver 0
%global updatever 10
%global updatever 11
%global patchver 0
# buildjdkver is usually same as %%{featurever},
# but in time of bootstrap of next jdk, it is featurever-1,
# and this it is better to change it here, on single place
%global buildjdkver 17
%global buildjdkver %{featurever}
# We don't add any LTS designator for STS packages (Fedora and EPEL).
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
%if 0%{?rhel} && !0%{?epel}
@ -341,6 +328,16 @@
%global lts_designator ""
%global lts_designator_zip ""
%endif
# JDK to use for bootstrapping
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
# This will only work where the bootstrap JDK is the same major version
# as the JDK being built
%if %{with fresh_libjvm} && %{buildjdkver} == %{featurever}
%global build_hotspot_first 1
%else
%global build_hotspot_first 0
%endif
# Define vendor information used by OpenJDK
%global oj_vendor Red Hat, Inc.
@ -367,12 +364,11 @@
%global icedteaver 6.0.0pre00-c848b93a8598
# Define current Git revision for the FIPS support patches
%global fipsver d63771ea660
%global javaver %{featurever}
# Define JDK versions
%global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver}
%global javaver %{featurever}
# Strip up to 6 trailing zeros in newjavaver, as the JDK does, to get the correct version used in filenames
%global filever %(svn=%{newjavaver}; for i in 1 2 3 4 5 6 ; do svn=${svn%%.0} ; done; echo ${svn})
# The tag used to create the OpenJDK tarball
%global vcstag jdk-%{filever}+%{buildver}%{?tagsuffix:-%{tagsuffix}}
@ -381,8 +377,8 @@
%global origin_nice OpenJDK
%global top_level_dir_name %{vcstag}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 7
%global rpmrelease 1
%global buildver 9
%global rpmrelease 3
#%%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
@ -468,6 +464,9 @@
%global __requires_exclude ^(%{_privatelibs}|%{_publiclibs})$
%endif
# VM variant being built
# This is always 'server' on 17u which doesn't have JDK-8273494
%global vm_variant server
%global etcjavasubdir %{_sysconfdir}/java/java-%{javaver}-%{origin}
%define etcjavadir() %{expand:%{etcjavasubdir}/%{uniquesuffix -- %{?1}}}
@ -558,14 +557,13 @@ Group: Development/Languages
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
URL: http://openjdk.java.net/
# The source tarball, generated using generate_source_tarball.sh
Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/open%{vcstag}%{ea_designator_zip}.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.
Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
Source8: tapsets-icedtea-%{icedteaver}.tar.xz
# Desktop files. Adapted from IcedTea
# Disabled in portables
@ -601,13 +599,21 @@ Source18: TestTranslations.java
#
############################################
# This patch is probably not necessary anymore. I will revisit
# removing it if I find that QE performs AWT testing on a per-release
# basis.
# Ignore AWTError when assistive technologies are loaded
Patch1: rh1648242-accessible_toolkit_crash_do_not_break_jvm.patch
Patch3: rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk10_and_up.patch
# NSS via SunPKCS11 Provider (disabled due to memory leak).
# This patch is almost certainly not needed, but I am keeping it
# forever because java.security has shipped to customers already, and
# is marked %config(noreplace). I do not want to risk
# warnings/confusion/conflict by changing its default contents
# mid-lifecycle.
# NSS via SunPKCS11 Provider (commented out due to memory leak).
Patch1000: rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch
# RH1750419: enable build of speculative store bypass hardened alt-java (CVE-2018-3639)
Patch600: rh1750419-redhat_alt_java.patch
# gnu_andrew is working on backporting a fix for this patch to 17u.
# Depend on pcsc-lite-libs instead of pcsc-lite-devel as this is only in optional repo
Patch6: rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
@ -616,7 +622,7 @@ Patch6: rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-d
# as follows: git diff %%{vcstag} src make test > fips-17u-$(git show -s --format=%h HEAD).patch
# Diff is limited to src and make subdirectories to exclude .github changes
# The following list is generated by:
# git log %%{vcstag}.. --no-merges --format=%s --reverse:
# git log %%{vcstag}.. --no-merges --format=%s --reverse
# Fixes currently included:
# PR3183, RH1340845: Support Fedora & RHEL system crypto policy
# PR3695: Allow system crypto policy enforcement to be toggled on/off
@ -654,7 +660,7 @@ Patch6: rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-d
# test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java: fixed jtreg main class (#27)
# RH1940064: Enable XML Signature provider in FIPS mode (#24)
# RH2173781: Avoid calling C_GetInfo() too early, before cryptoki is initialized (#26)
Patch1001: fips-17u-%{fipsver}.patch
Patch1001: fips-%{featurever}u-%{fipsver}.patch
#############################################
#
@ -666,23 +672,17 @@ Patch1001: fips-17u-%{fipsver}.patch
#############################################
#
# OpenJDK patches appearing in 17.0.10
# OpenJDK patches which missed last update
#
#############################################
# Currently empty
#############################################
#
# Portable build specific patches
#
#############################################
#############################################
#
# OpenJDK patches targetted for 17.0.6
#
#############################################
# Currently empty
BuildRequires: autoconf
BuildRequires: automake
@ -715,8 +715,8 @@ BuildRequires: zip
# to pack portable tarballs
BuildRequires: tar
BuildRequires: unzip
# No javapackages-filesystem on el7,nor is needed for portables
# BuildRequires: javapackages-filesystem
# Define _jvmdir macro
BuildRequires: javapackages-filesystem
BuildRequires: java-%{buildjdkver}-openjdk-devel
# Zero-assembler build requirement
%ifarch %{zero_arches}
@ -725,8 +725,8 @@ BuildRequires: libffi-devel
# Full documentation build requirements
BuildRequires: graphviz
BuildRequires: pandoc
# 2023c required as of JDK-8305113
BuildRequires: tzdata-java >= 2023c
# 2024a required as of JDK-8325150
BuildRequires: tzdata-java >= 2024a
# cacerts build requirement in portable mode
BuildRequires: ca-certificates
# Earlier versions have a bug in tree vectorization on PPC
@ -745,18 +745,18 @@ BuildRequires: lcms2-devel
BuildRequires: libjpeg-devel
BuildRequires: libpng-devel
%else
# Version in src/java.desktop/share/native/libfreetype/include/freetype/freetype.h
Provides: bundled(freetype) = 2.13.0
# Version in src/java.desktop/share/legal/freetype.md
Provides: bundled(freetype) = 2.13.2
# 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) = 7.2.0
Provides: bundled(harfbuzz) = 8.2.2
# Version in src/java.desktop/share/native/liblcms/lcms2.h
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
Provides: bundled(libpng) = 1.6.39
Provides: bundled(libpng) = 1.6.40
# We link statically against libstdc++ to increase portability
BuildRequires: libstdc++-static
%endif
@ -932,6 +932,13 @@ if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 -a %{includ
echo "You have disabled all builds (normal,fastdebug,slowdebug). That is a no go."
exit 14
fi
%if %{with fresh_libjvm} && ! %{build_hotspot_first}
echo "WARNING: The build of a fresh libjvm has been disabled due to a JDK version mismatch"
echo "Build JDK version is %{buildjdkver}, feature JDK version is %{featurever}"
%endif
export XZ_OPT="-T0"
%setup -q -c -n %{uniquesuffix ""} -T -a 0
# https://bugzilla.redhat.com/show_bug.cgi?id=1189084
prioritylength=`expr length %{priority}`
@ -948,11 +955,21 @@ sh %{SOURCE12} %{top_level_dir_name}
%endif
# Patch the JDK
# -P N: apply patch number N, same as passing N as a positional argument on rpm >= 4.18
# -p N: strip N leading slashes from paths
pushd %{top_level_dir_name}
# This syntax is deprecated:
# %patchN [...]
# and should be replaced with:
# %patch -PN [...]
# For example:
# %patch1001 -p1
# becomes:
# %patch -P1001 -p1
# The replacement format suggested by recent (circa Fedora 38) RPM
# deprecation messages:
# %patch N [...]
# is not backward-compatible with prior (circa RHEL-8) versions of
# rpmbuild.
%patch -P1 -p1
%patch -P3 -p1
%patch -P6 -p1
# Add crypto policy and FIPS support
%patch -P1001 -p1
@ -962,6 +979,7 @@ pushd %{top_level_dir_name}
%patch -P600 -p1
popd # openjdk
# The OpenJDK version file includes the current
# upstream version information. For some reason,
# configure does not automatically use the
@ -1008,6 +1026,7 @@ done
sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
%build
# How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1}
@ -1015,6 +1034,7 @@ export NUM_PROC=${NUM_PROC:-1}
# Honor %%_smp_ncpus_max
[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
%endif
export XZ_OPT="-T0"
%ifarch s390x sparc64 alpha %{power64} %{aarch64}
export ARCH_DATA_MODEL=64
@ -1042,6 +1062,51 @@ export EXTRA_CFLAGS EXTRA_CPP_FLAGS
echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}"
# Set modification times (mtimes) of files within JAR files generated
# by the OpenJDK build to a timestamp that is constant across RPM
# rebuilds. OpenJDK provides the --with-source-date configure option
# for this purpose. Potential arguments in the RPM build context are:
#
# A) --with-source-date="${SOURCE_DATE_EPOCH}"
# B) --with-source-date=version
# C) --with-source-date="${OPENJDK_UPSTREAM_TAG_EPOCH}"
#
# Consider Option A. Fedora 38 (rpm-4.18.2) and RHEL-8 (rpm-4.14.3)
# have different support for SOURCE_DATE_EPOCH. To keep
# SOURCE_DATE_EPOCH constant across RPM rebuilds, one could set the
# source_date_epoch_from_changelog macro to 1 on both Fedora 38 and
# RHEL-8. However, on RHEL-8, this results in the RPM build times
# being set to the timestamp of the most recent changelog. This is
# bad for tracing when RPMs were actually built. Fedora 38 supports a
# better behaviour via the introduction of the
# use_source_date_epoch_as_buildtime macro, set to 0 by default.
# There is no way to make this work on RHEL-8 as well though, so
# option A is suboptimal.
#
# Option B uses the value of the DEFAULT_VERSION_DATE field from
# make/conf/version-numbers.conf. DEFAULT_VERSION_DATE represents the
# aspirational eventual JDK general availability (GA) release date.
# When the RPM build occurs prior to GA, generated JAR files will have
# payload mtimes in the future relative to the RPM build time.
# Whereas for tarballs some tools will issue warnings about future
# mtimes, per OPENJDK-2583 apparently this is no problem for Java and
# JAR files.
#
# Option C uses the modification timestamp of files in the source
# tarball. The reproducibility logic in generate_source_tarball.sh
# sets them all to the commit time of the release-tagged OpenJDK
# commit, as archived in the tarball. This timestamp is deterministic
# across RPM rebuilds and is reliably in the past. Any file's mtime
# will do, so use version-numbers.conf's.
#
# Use option B for JAR files, based on the discussion in OPENJDK-2583.
#
# For portable tarballs, use option C (OPENJDK_UPSTREAM_TAG_EPOCH) for
# the modification times of all files in the portable tarballs. Doing
# so eliminates one source of variability across RPM rebuilds.
VERSION_FILE="$(pwd)"/"%{top_level_dir_name}"/make/conf/version-numbers.conf
OPENJDK_UPSTREAM_TAG_EPOCH="$(stat --format=%Y "${VERSION_FILE}")"
function buildjdk() {
local outputdir=${1}
local buildjdk=${2}
@ -1080,9 +1145,6 @@ function buildjdk() {
bash ${top_dir_abs_src_path}/configure \
%ifarch %{zero_arches}
--with-jvm-variants=zero \
%endif
%ifarch %{ppc64le}
--with-jobs=1 \
%endif
--with-cacerts-file=$(readlink -f %{_sysconfdir}/pki/java/cacerts) \
--with-version-build=%{buildver} \
@ -1110,7 +1172,7 @@ function buildjdk() {
--with-extra-cflags="$EXTRA_CFLAGS" \
--with-extra-ldflags="%{ourldflags}" \
--with-num-cores="$NUM_PROC" \
--with-source-date="${SOURCE_DATE_EPOCH}" \
--with-source-date=version \
--disable-javac-server \
%ifarch %{zgc_arches}
--with-jvm-features=zgc \
@ -1119,7 +1181,7 @@ 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
}
@ -1255,6 +1317,21 @@ function packagejdk() {
local packagesdir=$(pwd)/${2}
local srcdir=$(pwd)/%{top_level_dir_name}
local tapsetdir=$(pwd)/tapset
# See https://reproducible-builds.org/docs/archives/
# RHEL-7 has tar 1.26 which does not support --sort=name, so use
# find-piped-through-sort instead. Omit --pax-option since it
# made the docs package not reproducible due to PaxHeaders
# timestamp differences.
local tar_opts="--mtime=@${OPENJDK_UPSTREAM_TAG_EPOCH} \
--owner=0 \
--group=0 \
--numeric-owner \
--no-recursion \
--null \
--files-from - \
--create \
--xz \
--file"
echo "Packaging build from ${imagesdir} to ${packagesdir}..."
mkdir -p ${packagesdir}
@ -1285,7 +1362,7 @@ function packagejdk() {
if [ "x$suffix" = "x" ] ; then
# Keep the unstripped version for consumption by RHEL RPMs
mv %{jdkimage}.unstripped ${jdkname}
tar -cJf ${unstrippedarchive} ${jdkname}
find ${jdkname} -print0 | LC_ALL=C sort -z | tar ${tar_opts} ${unstrippedarchive}
genchecksum ${unstrippedarchive}
mv ${jdkname} %{jdkimage}.unstripped
fi
@ -1296,13 +1373,13 @@ function packagejdk() {
# Release images have external debug symbols
if [ "x$suffix" = "x" ] ; then
tar -cJf ${debugarchive} $(find ${jdkname} -name \*.debuginfo)
find ${jdkname} -name \*.debuginfo -print0 | LC_ALL=C sort -z | tar ${tar_opts} ${debugarchive}
genchecksum ${debugarchive}
mkdir ${docname}
mv ${docdir} ${docname}
mv ${bundledir}/${built_doc_archive} ${docname}
tar -cJf ${docarchive} ${docname}
find ${docname} -print0 | LC_ALL=C sort -z | tar ${tar_opts} ${docarchive}
genchecksum ${docarchive}
mkdir ${miscname}
@ -1313,22 +1390,22 @@ function packagejdk() {
%if %{with_systemtap}
cp -a ${tapsetdir}* ${miscname}
%endif
tar -cJf ${miscarchive} ${miscname}
find ${miscname} -print0 | LC_ALL=C sort -z | tar ${tar_opts} ${miscarchive}
genchecksum ${miscarchive}
fi
tar -cJf ${jdkarchive} --exclude='**.debuginfo' ${jdkname}
find ${jdkname} -print0 | LC_ALL=C sort -z | tar --exclude='**.debuginfo' ${tar_opts} ${jdkarchive}
genchecksum ${jdkarchive}
tar -cJf ${jrearchive} --exclude='**.debuginfo' ${jrename}
find ${jrename} -print0 | LC_ALL=C sort -z | tar --exclude='**.debuginfo' ${tar_opts} ${jrearchive}
genchecksum ${jrearchive}
%if %{include_staticlibs}
# Static libraries (needed for building graal vm with native image)
# Tar as overlay. Transform to the JDK name, since we just want to "add"
# static libraries to that folder
tar -cJf ${staticarchive} \
--transform "s|^%{static_libs_image}/lib/*|${staticname}/lib/static/linux-%{archinstall}/glibc/|" "%{static_libs_image}/lib"
find "%{static_libs_image}/lib" -print0 | LC_ALL=C sort -z \
| tar --transform "s|^%{static_libs_image}/lib/*|${staticname}/lib/static/linux-%{archinstall}/glibc/|" ${tar_opts} ${staticarchive}
genchecksum ${staticarchive}
%endif
@ -1346,7 +1423,7 @@ function packagejdk() {
cp -LR --preserve=mode,timestamps %{bootjdk} newboot
systemjdk=$(pwd)/newboot
buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal"
mv build/newboot/jdk/lib/server/libjvm.so newboot/lib/server
mv build/newboot/jdk/lib/%{vm_variant}/libjvm.so newboot/lib/%{vm_variant}
%else
systemjdk=%{bootjdk}
%endif
@ -1430,10 +1507,9 @@ export JAVA_HOME=${top_dir_abs_main_build_path}/images/%{jdkimage}
#sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \
#${JAVA_HOME}/conf/security/java.security
#check Shenandoah is enabled
# Check Shenandoah is enabled
%if %{use_shenandoah_hotspot}
$JAVA_HOME//bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version
$JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version
%endif
# Check unlimited policy has been used
@ -1472,6 +1548,7 @@ if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; els
# Check translations are available for new timezones (during flatpak builds, the
# tzdb.dat used by this test is not where the test expects it, so this is
# disabled for flatpak builds)
# Disable test until we are on the latest JDK
$JAVA_HOME/bin/javac -d . %{SOURCE18}
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE18})|sed "s|\.java||") JRE
$JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|sed "s|\.java||") CLDR
@ -1482,9 +1559,8 @@ $JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|
export STATIC_LIBS_HOME=${top_dir_abs_staticlibs_build_path}/images/%{static_libs_image}
ls -l $STATIC_LIBS_HOME
ls -l $STATIC_LIBS_HOME/lib
# they are here, but grep do not find the remainders
#readelf --debug-dump $STATIC_LIBS_HOME/lib/libfdlibm.a | grep w_remainder.c
#readelf --debug-dump $STATIC_LIBS_HOME/lib/libfdlibm.a | grep e_remainder.c
readelf --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet4AddressImpl.c
readelf --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet6AddressImpl.c
%endif
# Release builds strip the debug symbols into external .debuginfo files
@ -1701,8 +1777,118 @@ done
%{_jvmdir}/%{miscportablearchive}.sha256sum
%changelog
* Sun Jan 21 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 1:17.0.10.0.7-1
- Rebuilt for MSVSphere 9.3
* Fri Apr 19 2024 Arkady L. Shane <tigro@msvsphere-os.ru> - 1:17.0.11.0.9-3
- Build for MSVSphere
* Wed Apr 10 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.9-3
- BuildRequires tzdata-java >= 2024a (JDK-8325150)
* Wed Apr 10 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.9-2
- NEWS: Add CVEs
- NEWS: Remove backed out items from changes section
- NEWS: Remove release note for JDK-8225377, which was backed out
* Tue Apr 9 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.9-1
- Update to jdk-17.0.11+9 (GA)
- Update NEWS for 17.0.11+9
- Switch to GA mode for release
- ** This tarball is embargoed until 2024-04-16 @ 1pm PT. **
* Thu Apr 4 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.7-0.1.ea
- Import like NEWS entries verbatim from 21.0.3
* Thu Mar 28 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.7-0.1.ea
- Update to jdk-17.0.11+7 (EA)
* Mon Mar 11 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.6-0.1.ea
- Update to jdk-17.0.11+6 (EA)
* Fri Mar 8 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.5-0.1.ea
- Update to jdk-17.0.11+5 (EA)
* Mon Feb 26 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.4-0.1.ea
- Revert: Remove ExcludeArch to match java-21-openjdk
* Wed Feb 21 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.4-0.1.ea
- Update to jdk-17.0.11+4 (EA)
* Wed Feb 14 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.3-0.1.ea
- Update to jdk-17.0.11+3 (EA)
* Fri Feb 9 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.2-0.1.ea
- Remove RH1649512 patch for libjpeg-turbo FAR macro
- Add some patch commentary
* Thu Feb 8 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.2-0.1.ea
- Update to jdk-17.0.11+2 (EA)
* Thu Feb 8 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.2.ea
- generate_source_tarball.sh: Add license
- openjdk_news.sh: Use grep -E instead of egrep
* Wed Feb 7 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.2.ea
- Fix the quoting of hs_err_pid
* Tue Feb 6 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.2.ea
- Use RHEL-7 tar-1.26-compatible invocations for reproducible tarballs
- On RHEL-7 default to building without a fresh libjvm.so
* Mon Feb 5 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.11.0.1-0.2.ea
- Require tzdata 2023d due to local inclusion of JDK-8322725
* Mon Feb 5 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.2.ea
- Bump rpmrelease to 2
- Move _lto_cflags setting to match its java-21-openjdk location
- Remove ExcludeArch to match java-21-openjdk
- Update comment and whitespace to match java-21-openjdk
- Update NEWS
- Remove -T0 argument from systemtap tar invocation
- Indent a line in buildjdk
- Remove extra stripjdk from merge
* Fri Feb 2 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.1.ea
- Use --with-source-date=version (OPENJDK-2583, OPENJDK-2730)
- Update freetype bundled provides version from 2.13.0 to 2.13.2
- Update harfbuzz bundled provides version from 7.2.0 to 8.2.2
- Update libpng bundled provides version from 1.6.39 to 1.6.40
- Related: OPENJDK-2730
* Thu Feb 1 2024 Jiri Vanek <jvanek@redhat.com> - 1:17.0.11.0.1-0.1.ea
- generate_source_tarball.sh: Update version in comment
- generate_source_tarball.sh: Remove trailing period in echo
* Thu Feb 1 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.11.0.1-0.1.ea
- BuildRequires javapackages-filesystem for _jvmdir macro
- Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built
- Update buildjdkver to match the featurever
- Use featurever macro to specify fips patch
- Check debug symbols in libnet.a static library as a smoke test
- Introduce vm_variant global for consistency with future JDK builds
- Related: rhbz#2203412
- Introduce tar_opts to shorten tarball creation lines
* Thu Feb 1 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.1.ea
- NEWS: Add initial changes for 17.0.11
- Sync whitespace and comments from java-21-openjdk.spec
- Sync macro definition ordering from java-21-openjdk.spec
- Correct rh1649512 patch name
- Fix comment to match RHEL 9.2.0 branch
- Fix icedteaver macro reference syntax
- Remove extra slash in use_shenandoah_hotspot JAVA_HOME expansion
- Explain patchN syntax situation in a comment
- generate_source_tarball.sh: Fix whitespace
- generate_source_tarball.sh: Skip -ga tags
- generate_source_tarball.sh: Get -ea suffix from version-numbers.conf
- generate_source_tarball.sh: Use git archive to generate tarball
- generate_source_tarball.sh: Add indentation instructions for Emacs
- Default to without fresh_libjvm now that 17.0.9.0.9-1 is staged
- double-build.bash: New file
- Parallelize xz across all available cores
- Remove ppc64le --with-jobs=1 workaround
- Make JAR file and portable tarball modification times reproducible
* Wed Jan 31 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.11.0.1-0.1.ea
- Update to jdk-17.0.11+1 (EA)
* Thu Jan 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.10.0.7-1
- Update to jdk-17.0.10+7 (GA)
@ -1714,7 +1900,7 @@ done
* Thu Jan 11 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:17.0.10.0.6-0.1.ea
- generate_source_tarball.sh: Add note on network usage of OPENJDK_LATEST
- generate_source_tarball.sh: Remove unneeded FIXME
- generate_source_tarball.sh: Remove unneeded fix-me
* Thu Jan 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.10.0.6-0.1.ea
- Update release notes to 17.0.10+6

Loading…
Cancel
Save