diff --git a/java-21-openjdk-portable.specfile b/java-21-openjdk-portable.specfile index 8f54c2e..bf8380d 100644 --- a/java-21-openjdk-portable.specfile +++ b/java-21-openjdk-portable.specfile @@ -1,6 +1,3 @@ -# portable jdk 21 specific bug, _jvmdir being missing -%define _jvmdir /usr/lib/jvm - # debug_package %%{nil} is portable-jdks specific %define debug_package %{nil} @@ -31,6 +28,10 @@ # Build with system libraries %bcond_with system_libs +# This is RHEL 7 specific as it doesn't seem to have the +# __brp_strip_static_archive macro. +%define __os_install_post %{nil} + # Workaround for stripping of debug symbols from static libraries %if %{with staticlibs} %define __brp_strip_static_archive %{nil} @@ -54,10 +55,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: @@ -144,7 +141,7 @@ %global zgc_arches x86_64 # Set of architectures for which alt-java has SSB mitigation %global ssbd_arches x86_64 -# Set of architectures for which java has short vector math library (libjsvml.so) +# Set of architectures for which java has short vector math library (libsvml.so) %global svml_arches x86_64 # Set of architectures where we verify backtraces with gdb # s390x fails on RHEL 7 so we exclude it there @@ -153,8 +150,6 @@ %else %global gdb_arches %{jit_arches} %{zero_arches} %endif -# Set of architectures for which we have a devkit -%global devkit_arches %{aarch64} %{ppc64le} s390x x86_64 # By default, we build a slowdebug build during main build on JIT architectures %if %{with slowdebug} @@ -234,6 +229,13 @@ # Target to use to just build HotSpot %global hotspot_target hotspot +# DTS toolset to use to provide gcc & binutils +%global dtsversion 10 + +# 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 # We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs) @@ -312,7 +314,7 @@ # New Version-String scheme-style defines %global featurever 21 %global interimver 0 -%global updatever 2 +%global updatever 3 %global patchver 0 # buildjdkver is usually same as %%{featurever}, # but in time of bootstrap of next jdk, it is featurever-1, @@ -362,7 +364,7 @@ # Define IcedTea version used for SystemTap tapsets and desktop file %global icedteaver 6.0.0pre00-c848b93a8598 # Define current Git revision for the FIPS support patches -%global fipsver 75ffdc48eda +%global fipsver 0a42e29b391 # Define JDK versions %global newjavaver %{featurever}.%{interimver}.%{updatever}.%{patchver} %global javaver %{featurever} @@ -376,8 +378,8 @@ %global origin_nice OpenJDK %global top_level_dir_name %{vcstag} %global top_level_dir_name_backup %{top_level_dir_name}-backup -%global buildver 13 -%global rpmrelease 2 +%global buildver 9 +%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 @@ -481,7 +483,6 @@ %define jrebindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin} %global alt_java_name alt-java -%global devkit_name %{origin}-devkit %global rpm_state_dir %{_localstatedir}/lib/rpm-state/ @@ -493,9 +494,6 @@ %global alternatives_requires %{_sbindir}/alternatives %endif -# x86 is not supported by OpenJDK 17 -ExcludeArch: %{ix86} - # Portables have no repo (requires/provides), but these are awesome for orientation in spec # Also scriptlets are happily missing and files are handled old fashion # not-duplicated requires/provides/obsoletes for normal/debug packages @@ -519,12 +517,12 @@ ExcludeArch: %{ix86} # Prevent brp-java-repack-jars from being run %global __jar_repack 0 +# Define the architectures on which we build +ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64 +# Define the OS this package is built on +%global pkgos rhel7 -# portables have grown out of its component, moving back to java-x-vendor -# this expression, when declared as global, filled component with java-x-vendor portable -%define component %(echo %{name} | sed "s;-portable;;g") - -Name: java-%{javaver}-%{origin}-portable +Name: java-%{javaver}-%{origin}-portable%{?pkgos:-%{pkgos}} Version: %{newjavaver}.%{buildver} Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons @@ -538,6 +536,11 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist} # provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". Epoch: 1 + +# portables have grown out of its component, moving back to java-x-vendor +# this expression, when declared as global, filled component with java-x-vendor portable +%define component %(echo %{name} | sed "s;-portable%{?pkgos:-%{pkgos}};;g") + Summary: %{origin_nice} %{featurever} Runtime Environment portable edition # Groups are only used up to RHEL 8 and on Fedora versions prior to F30 %if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30) @@ -602,6 +605,7 @@ Source18: TestTranslations.java # RPM/distribution specific patches # ############################################ + # Crypto policy and FIPS support patches # Patch is generated from the fips-21u tree at https://github.com/rh-openjdk/jdk/tree/fips-21u # as follows: git diff %%{vcstag} src make test > fips-21u-$(git show -s --format=%h HEAD).patch @@ -646,10 +650,6 @@ Patch1001: fips-%{featurever}u-%{fipsver}.patch # ############################################# -# JDK-8009550, RH910107: Depend on pcsc-lite-libs instead of pcsc-lite-devel as this is only in optional repo -# PR: https://github.com/openjdk/jdk/pull/15409 -Patch6: jdk8009550-rh910107-fail_to_load_pcsc_library.patch - # Currently empty ############################################# @@ -658,8 +658,6 @@ Patch6: jdk8009550-rh910107-fail_to_load_pcsc_library.patch # ############################################# -# Currently empty - ############################################# # # Portable build specific patches @@ -678,13 +676,9 @@ BuildRequires: desktop-file-utils BuildRequires: elfutils-devel BuildRequires: file BuildRequires: fontconfig-devel -%ifarch %{devkit_arches} -BuildRequires: openjdk-devkit >= 1.0-2 -%else -# Earlier versions have a bug in tree vectorization on PPC -BuildRequires: gcc >= 4.8.3-8 +BuildRequires: devtoolset-%{dtsversion}-gcc +BuildRequires: devtoolset-%{dtsversion}-gcc-c++ BuildRequires: gcc-c++ -%endif BuildRequires: gdb BuildRequires: libxslt BuildRequires: libX11-devel @@ -705,20 +699,25 @@ BuildRequires: zip # to pack portable tarballs BuildRequires: tar BuildRequires: unzip -# Not needed for portables -# BuildRequires: javapackages-filesystem -BuildRequires: java-%{buildjdkver}-openjdk-devel +BuildRequires: javapackages-tools +BuildRequires: java-%{buildjdkver}-%{origin}%{?pkgos:-%{pkgos}}-devel # Zero-assembler build requirement %ifarch %{zero_arches} BuildRequires: libffi-devel %endif # Full documentation build requirements +# pandoc is not available on RHEL 7 +%if 0%{?rhel} >= 8 BuildRequires: graphviz BuildRequires: pandoc -# 2023c required as of JDK-8305113 -BuildRequires: tzdata-java >= 2023c +%endif +# 2024a required as of JDK-8325150 +# Use 2023d until 2024a is in the buildroot +BuildRequires: tzdata-java >= 2023d # cacerts build requirement in portable mode BuildRequires: ca-certificates +# Earlier versions have a bug in tree vectorization on PPC +BuildRequires: gcc >= 4.8.3-8 %if %{with_systemtap} BuildRequires: systemtap-sdt-devel @@ -734,7 +733,7 @@ BuildRequires: libjpeg-devel BuildRequires: libpng-devel %else # Version in src/java.desktop/share/legal/freetype.md -Provides: bundled(freetype) = 2.13.0 +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 @@ -746,10 +745,8 @@ Provides: bundled(libjpeg) = 6b # Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h Provides: bundled(libpng) = 1.6.40 # We link statically against libstdc++ to increase portability -%ifnarch %{devkit_arches} BuildRequires: libstdc++-static %endif -%endif # this is always built, also during debug-only build # when it is built in debug-only this package is just placeholder @@ -894,10 +891,10 @@ The %{origin_nice} %{featurever} miscellany. echo "Preparing %{oj_vendor_version}" # Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-( -%if 0%{?stapinstall:1} - echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}" +%if 0%{?_build_cpu:1} + echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{_build_cpu}" %else - %{error:Unrecognised architecture %{_target_cpu}} + %{error:Unrecognised architecture %{_build_cpu}} %endif if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then @@ -945,11 +942,22 @@ sh %{SOURCE12} %{top_level_dir_name} %endif # Patch the JDK +# 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. pushd %{top_level_dir_name} # Add crypto policy and FIPS support -%patch1001 -p1 -# Patches in need of upstreaming -%patch6 -p1 +%patch -P1001 -p1 popd # openjdk @@ -975,7 +983,7 @@ fi # Extract systemtap tapsets %if %{with_systemtap} -tar --strip-components=1 -x -I 'xz -T0' -f %{SOURCE8} +tar --strip-components=1 -x -I xz -f %{SOURCE8} %if %{include_debug_build} cp -r tapset tapset%{debug_suffix} %endif @@ -995,20 +1003,8 @@ done # Prepare desktop files # Portables do not have desktop integration -# Extract devkit -%ifarch %{devkit_arches} - devkittarball=%{_datadir}/%{devkit_name}/sdk-%{_target_cpu}-%{_target_os}-gnu*.tar.gz - echo "Extracting devkit ${devkittarball}"; - mkdir devkit; - tar -C devkit --strip-components=1 -xzf ${devkittarball} - DEVKIT_ROOT=$(pwd)/devkit - source ${DEVKIT_ROOT}/devkit.info - echo "Installed ${DEVKIT_NAME} devkit" -%else - echo "No devkit for %{_target_cpu}"; -%endif - %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} @@ -1040,14 +1036,63 @@ EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing" EXTRA_CFLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')" EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')" %endif -%ifarch %{devkit_arches} -# Remove annobin plugin reference which isn't available in the devkit -EXTRA_CFLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')" -EXTRA_CPP_FLAGS="$(echo ${EXTRA_CFLAGS} | sed -e 's|-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1||')" -%endif - export EXTRA_CFLAGS EXTRA_CPP_FLAGS +# 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}")" + +echo "Building %{SOURCE11}" +mkdir -p %{altjavaoutputdir} +gcc ${EXTRA_CFLAGS} -o %{altjavaoutputdir}/%{alt_java_name} %{SOURCE11} +echo "Generating %{alt_java_name} man page" +altjavamanpage=%{altjavaoutputdir}/%{alt_java_name}.1 +echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > ${altjavamanpage} +cat %{top_level_dir_name}/src/java.base/share/man/java.1 >> ${altjavamanpage} + +echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}" + function buildjdk() { local outputdir=${1} local buildjdk=${2} @@ -1055,16 +1100,10 @@ function buildjdk() { local debuglevel=${4} local link_opt=${5} local debug_symbols=${6} - local devkit=${7} local top_dir_abs_src_path=$(pwd)/%{top_level_dir_name} local top_dir_abs_build_path=$(pwd)/${outputdir} -%ifarch s390x - # devkit libstdc++.a fails with "error: relocation refers - # to local symbol "" [9], which is defined in a discarded section - libc_link_opt="dynamic"; -%else # This must be set using the global, so that the # static libraries still use a dynamic stdc++lib if [ "x%{link_type}" = "xbundled" ] ; then @@ -1072,7 +1111,6 @@ function buildjdk() { else libc_link_opt="dynamic"; fi -%endif echo "Using output directory: ${outputdir}"; echo "Checking build JDK ${buildjdk} is operational..." @@ -1090,22 +1128,19 @@ function buildjdk() { # rather than ${link_opt} as the system versions # are always used in a system_libs build, even # for the static library build - bash ${top_dir_abs_src_path}/configure \ + scl enable devtoolset-%{dtsversion} "bash ${top_dir_abs_src_path}/configure \ %ifarch %{zero_arches} --with-jvm-variants=zero \ %endif -%ifarch %{devkit_arches} - --with-devkit=${devkit} \ -%endif - --with-cacerts-file=$(readlink -f %{_sysconfdir}/pki/java/cacerts) \ + --with-cacerts-file=`readlink -f %{_sysconfdir}/pki/java/cacerts` \ --with-version-build=%{buildver} \ - --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}" \ - --with-vendor-bug-url="%{oj_vendor_bug_url}" \ - --with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \ + --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}\" \ + --with-vendor-bug-url=\"%{oj_vendor_bug_url}\" \ + --with-vendor-vm-bug-url=\"%{oj_vendor_bug_url}\" \ --with-boot-jdk=${buildjdk} \ --with-debug-level=${debuglevel} \ --with-native-debug-symbols="${debug_symbols}" \ @@ -1119,51 +1154,42 @@ function buildjdk() { --with-lcms=${link_opt} \ --with-harfbuzz=${link_opt} \ --with-stdc++lib=${libc_link_opt} \ - --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \ - --with-extra-cflags="$EXTRA_CFLAGS" \ - --with-extra-ldflags="%{ourldflags}" \ - --with-num-cores="$NUM_PROC" \ - --with-source-date="${SOURCE_DATE_EPOCH}" \ + --with-extra-cxxflags=\"$EXTRA_CPP_FLAGS\" \ + --with-extra-cflags=\"$EXTRA_CFLAGS\" \ + --with-extra-ldflags=\"%{ourldflags}\" \ + --with-num-cores=\"$NUM_PROC\" \ + --with-source-date=\"version\" \ --disable-javac-server \ %ifarch %{zgc_arches} --with-jvm-features=zgc \ %endif - --disable-warnings-as-errors + --disable-warnings-as-errors" 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 ) - + scl enable devtoolset-%{dtsversion} "make LOG=trace $maketargets || \ + ( 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 toolpath=${2} local jdkimagepath=${outputdir}/images/%{jdkimage} local jreimagepath=${outputdir}/images/%{jreimage} local jmodimagepath=${outputdir}/images/jmods local supportdir=${outputdir}/support - -%ifarch %{devkit_arches} - OBJCOPY=${toolpath}/objcopy - STRIP=${toolpath}/strip -%else - OBJCOPY=$(which objcopy) - STRIP=$(which strip) -%endif + local modulebuildpath=${outputdir}/jdk/modules 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 + for file in $(find ${jdkimagepath} ${jreimagepath} ${supportdir} ${modulebuildpath} -type f) ; do + if file ${file} | cut -d ':' -f 2 | grep -q 'ELF'; then noextfile=${file/.so/}; - ${OBJCOPY} --only-keep-debug ${file} ${noextfile}.debuginfo; - ${OBJCOPY} --add-gnu-debuglink=${noextfile}.debuginfo ${file}; - ${STRIP} -g ${file}; + scl enable devtoolset-%{dtsversion} "objcopy --only-keep-debug ${file} ${noextfile}.debuginfo"; + scl enable devtoolset-%{dtsversion} "objcopy --add-gnu-debuglink=${noextfile}.debuginfo ${file}"; + scl enable devtoolset-%{dtsversion} "strip -g ${file}"; fi done @@ -1243,13 +1269,6 @@ function installjdk() { # Install local files which are distributed with the JDK install -m 644 %{SOURCE10} ${imagepath} - # Create fake alt-java as a placeholder for future alt-java - pushd ${imagepath} - # add alt-java man page - echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1 - cat man/man1/java.1 >> man/man1/%{alt_java_name}.1 - popd - # Print release information cat ${imagepath}/release fi @@ -1269,13 +1288,50 @@ function genchecksum() { popd } -function packagejdk() { - # Reusing OPENJDK_UPSTREAM_TAG_EPOCH for the modification times of all - # files in the portable tarballs 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}")" +# Create a reproducible tarball in an appropriate way for +# the version of tar in use +function createtar() { + local directory=${1} + local archive=${2} + local filter=${3} + local transform=${4} + if [ "x${filter}" != "x" ] ; then + local filteroption="-name ${filter}"; + fi + if [ "x${transform}" != "x" ] ; then + local transoption="--transform ${transform}"; + fi + + local common_tar_opts="--owner=0 --group=0 --numeric-owner \ + ${transoption} --create --xz" + # Capture tar version, removing the decimal point (so 1.28 => 128) + tarver=$(tar --version|head -n1|sed -re 's|tar \(GNU tar\) ([0-9]).([0-9]*)|\1\2|') + echo "Detected tar ${tarver}" + if [ ${tarver} -gt 128 ] ; then + local tar_time="$(date --utc --iso-8601=seconds --date=@"${OPENJDK_UPSTREAM_TAG_EPOCH}")" + local tar_opts="--mtime=${tar_time} --sort=name ${common_tar_opts}" + if test "x${filteroption}" = "x"; then + tar ${tar_opts} --file ${archive} ${directory} + else + tar ${tar_opts} --file ${archive} $(find ${directory} ${filteroption}) + fi + else + # See https://reproducible-builds.org/docs/archives/ + # RHEL-7 has tar 1.26 which does not support --sort=name (added + # in 1.28), 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} \ + --no-recursion --null --files-from - \ + ${common_tar_opts}" + find ${directory} ${filteroption} -print0 | \ + LC_ALL=C sort -z | \ + tar ${tar_opts} --file ${archive} + fi +} + +function packagejdk() { local imagesdir=$(pwd)/${1}/images local docdir=$(pwd)/${1}/images/docs local bundledir=$(pwd)/${1}/bundles @@ -1283,8 +1339,6 @@ function packagejdk() { local srcdir=$(pwd)/%{top_level_dir_name} local tapsetdir=$(pwd)/tapset local altjavadir=$(pwd)/${3} - local tar_time="$(date --utc --iso-8601=seconds --date=@"${OPENJDK_UPSTREAM_TAG_EPOCH}")" - local tar_opts="--mtime=${tar_time} --sort=name -cJf" echo "Packaging build from ${imagesdir} to ${packagesdir}..." mkdir -p ${packagesdir} @@ -1315,7 +1369,7 @@ function packagejdk() { if [ "x$suffix" = "x" ] ; then # Keep the unstripped version for consumption by RHEL RPMs mv %{jdkimage}.unstripped ${jdkname} - tar ${tar_opts} ${unstrippedarchive} ${jdkname} + createtar ${jdkname} ${unstrippedarchive} genchecksum ${unstrippedarchive} mv ${jdkname} %{jdkimage}.unstripped fi @@ -1326,13 +1380,13 @@ function packagejdk() { # Release images have external debug symbols if [ "x$suffix" = "x" ] ; then - tar ${tar_opts} ${debugarchive} $(find ${jdkname} -name \*.debuginfo) + createtar ${jdkname} ${debugarchive} \*.debuginfo genchecksum ${debugarchive} mkdir ${docname} mv ${docdir} ${docname} mv ${bundledir}/${built_doc_archive} ${docname} - tar ${tar_opts} ${docarchive} ${docname} + createtar ${docname} ${docarchive} genchecksum ${docarchive} mkdir ${miscname} @@ -1342,23 +1396,23 @@ function packagejdk() { %if %{with_systemtap} cp -a ${tapsetdir}* ${miscname} %endif - cp -av ${altjavadir}/%{alt_java_name} ${miscname} - tar ${tar_opts} ${miscarchive} ${miscname} + cp -av ${altjavadir}/%{alt_java_name}{,.1} ${miscname} + createtar ${miscname} ${miscarchive} genchecksum ${miscarchive} fi - tar ${tar_opts} ${jdkarchive} --exclude='**.debuginfo' ${jdkname} + createtar ${jdkname} ${jdkarchive} genchecksum ${jdkarchive} - tar ${tar_opts} ${jrearchive} --exclude='**.debuginfo' ${jrename} + createtar ${jrename} ${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 ${tar_opts} ${staticarchive} \ - --transform "s|^%{static_libs_image}/lib/*|${staticname}/lib/static/linux-%{archinstall}/glibc/|" "%{static_libs_image}/lib" + createtar "%{static_libs_image}/lib" ${staticarchive} "" \ + "s|^%{static_libs_image}/lib/*|${staticname}/lib/static/linux-%{archinstall}/glibc/|" genchecksum ${staticarchive} %endif @@ -1371,26 +1425,11 @@ function packagejdk() { } -%ifarch %{devkit_arches} - DEVKIT_ROOT=$(pwd)/devkit - source ${DEVKIT_ROOT}/devkit.info - GCC="${DEVKIT_TOOLCHAIN_PATH}/gcc --sysroot=${DEVKIT_SYSROOT}" -%else - GCC=$(which gcc) -%endif - -echo "Building %{SOURCE11}" -mkdir -p %{altjavaoutputdir} -${GCC} ${EXTRA_CFLAGS} -o %{altjavaoutputdir}/%{alt_java_name} %{SOURCE11} - -echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}" - %if %{build_hotspot_first} # Build a fresh libjvm.so first and use it to bootstrap - echo "Building HotSpot only for the latest libjvm.so" cp -LR --preserve=mode,timestamps %{bootjdk} newboot systemjdk=$(pwd)/newboot - buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal" ${DEVKIT_ROOT} + buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal" mv build/newboot/jdk/lib/%{vm_variant}/libjvm.so newboot/lib/%{vm_variant} %else systemjdk=%{bootjdk} @@ -1433,15 +1472,15 @@ for suffix in %{build_loop} ; do run_bootstrap=%{bootstrap_build} fi if ${run_bootstrap} ; then - buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT} + 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} ${DEVKIT_ROOT} - stripjdk ${builddir} ${DEVKIT_TOOLCHAIN_PATH} + 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} ${DEVKIT_ROOT} - stripjdk ${builddir} ${DEVKIT_TOOLCHAIN_PATH} + buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} + stripjdk ${builddir} installjdk ${builddir} ${installdir} fi packagejdk ${installdir} ${packagesdir} %{altjavaoutputdir} @@ -1475,22 +1514,6 @@ 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 -# Set up tools -%ifarch %{devkit_arches} - DEVKIT_ROOT=$(pwd)/devkit - source ${DEVKIT_ROOT}/devkit.info - NM="${DEVKIT_TOOLCHAIN_PATH}/nm" -%else - NM=$(which nm) -%endif -# elfutils readelf supports more binaries than binutils version on RHEL 8 -# and debug symbols tests below were designed around this version -READELF=$(which eu-readelf) -# Only native gdb seems to work -# The devkit gdb needs the devkit stdc++ library but then the JVM -# segfaults when this is on the LD_LIBRARY_PATH -GDB=$(which gdb) - # Check Shenandoah is enabled %if %{use_shenandoah_hotspot} $JAVA_HOME//bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version @@ -1519,14 +1542,14 @@ $JAVA_HOME/bin/javac -d . %{SOURCE16} $JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendor}" "%{oj_vendor_url}" "%{oj_vendor_bug_url}" "%{oj_vendor_version}" # Check java launcher has no SSB mitigation -if ! ${NM} $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi +if ! nm $JAVA_HOME/bin/java | grep set_speculation ; then true ; else false; fi # Check alt-java launcher has SSB mitigation on supported architectures # set_speculation function exists in both cases, so check for prctl call %ifarch %{ssbd_arches} -${NM} %{altjavaoutputdir}/%{alt_java_name} | grep prctl +nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl %else -if ! ${NM} %{altjavaoutputdir}/%{alt_java_name} | grep prctl ; then true ; else false; fi +if ! nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl ; then true ; else false; fi %endif %if ! 0%{?flatpak} @@ -1544,8 +1567,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 -${READELF} --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet4AddressImpl.c -${READELF} --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet6AddressImpl.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 @@ -1564,15 +1587,15 @@ do # Test for .debug_* sections in the shared object. This is the main test # Stripped objects will not contain these - ${READELF} -S "$lib" | grep "] .debug_" - test $(${READELF} -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2 + eu-readelf -S "$lib" | grep "] .debug_" + test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2 # Test FILE symbols. These will most likely be removed by anything that # manipulates symbol tables because it's generally useless. So a nice test # that nothing has messed with symbols old_IFS="$IFS" IFS=$'\n' - for line in $(${READELF} -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT") + for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT") do # We expect to see .cpp and .S files, except for architectures like aarch64 and # s390 where we expect .o and .oS files @@ -1582,17 +1605,17 @@ do # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking if [ "`basename $lib`" = "libjvm.so" ]; then - ${READELF} -s "$lib" | \ + eu-readelf -s "$lib" | \ grep -E "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$" fi # Test that there are no .gnu_debuglink sections pointing to another # debuginfo file. There shouldn't be any debuginfo files, so the link makes # no sense either - ${READELF} -S "$lib" | grep 'gnu' - if ${READELF} -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then + eu-readelf -S "$lib" | grep 'gnu' + if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then echo "bad .gnu_debuglink section." - ${READELF} -x .gnu_debuglink "$lib" + eu-readelf -x .gnu_debuglink "$lib" false fi fi @@ -1604,7 +1627,7 @@ done # Using line number 1 might cause build problems. See: # https://bugzilla.redhat.com/show_bug.cgi?id=1539664 # https://bugzilla.redhat.com/show_bug.cgi?id=1538767 -${GDB} -q "$JAVA_HOME/bin/java" < - 1:21.0.2.0.13-2 -- rebuilt +* Sat Apr 13 2024 Andrew Hughes - 1:21.0.3.0.9-1 +- Update to jdk-21.0.3+9 (GA) +- Update release notes to 21.0.3+9 +- Switch to GA mode. +- Change --with-source-date value to 'version' to match Temurin builds +- ** This tarball is embargoed until 2024-04-16 @ 1pm PT. ** +- Resolves: OPENJDK-2585 -* Fri Mar 15 2024 Andrew Hughes - 1:21.0.2.0.13-1 -- Update to jdk-21.0.2+13 (GA) -- Update release notes to 21.0.2+13 -- Bump libpng version to 1.6.40 following JDK-8316030 -- Bump HarfBuzz version to 8.2.2 following JDK-8313643 +* Thu Apr 04 2024 Andrew Hughes - 1:21.0.3.0.7-0.1.ea +- Update to jdk-21.0.3+7 (EA) +- Update release notes to 21.0.3+7 +- Require tzdata 2024a due to upstream inclusion of JDK-8322725 +- Only require tzdata 2023d for now as 2024a is unavailable in buildroot +- Drop JDK-8009550 which is now available upstream +- Re-generate FIPS patch against 21.0.3+7 following backport of JDK-8325254 -* Mon Mar 11 2024 Andrew Hughes - 1:21.0.1.0.12-2 -- Use a devkit to build on architectures where we have one (s390x, aarch64, ppc64le, x86_64) -- Use a dynamic libstdc++ on s390x to workaround failure with static libstdc++ -- Use the devkit tools during the check stage so they can understand the generated binaries -- Use eu-readelf on devkit and non-devkit builds as debug symbol tests rely on its behaviour -- Use system gdb for both builds as devkit version fails (needs devkit libraries, then JDK segfaults with them) -- Filter out annobin plugin when using the devkit -- Drop static libstdc++ build dependency on devkit builds as it should come from the devkit +* Thu Mar 21 2024 Andrew Hughes - 1:21.0.3.0.1-0.2.ea +- generate_source_tarball.sh: Update examples in header for clarity +- generate_source_tarball.sh: Cleanup message issued when checkout already exists +- generate_source_tarball.sh: Create directory in TMPDIR when using WITH_TEMP +- generate_source_tarball.sh: Only add --depth=1 on non-local repositories +- icedtea_sync.sh: Reinstate from rhel-8.9.0 branch +- Move maintenance scripts to a scripts subdirectory +- discover_trees.sh: Set compile-command and indentation instructions for Emacs +- discover_trees.sh: shellcheck: Do not use -o (SC2166) +- discover_trees.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- discover_trees.sh: shellcheck: Double-quote variable references (SC2086) +- generate_source_tarball.sh: Add authorship +- icedtea_sync.sh: Set compile-command and indentation instructions for Emacs +- icedtea_sync.sh: shellcheck: Double-quote variable references (SC2086) +- icedtea_sync.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- openjdk_news.sh: Set compile-command and indentation instructions for Emacs +- openjdk_news.sh: shellcheck: Double-quote variable references (SC2086) +- openjdk_news.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- openjdk_news.sh: shellcheck: Remove deprecated egrep usage (SC2196) +- generate_source_tarball.sh: Output values of new options WITH_TEMP and OPENJDK_LATEST +- generate_source_tarball.sh: Double-quote DEPTH reference (SC2086) +- Vary reproducible tar creation by version of tar detected +- Set OPENJDK_UPSTREAM_TAG_EPOCH & VERSION_FILE at start of build section as in 17u +- generate_source_tarball.sh: Avoid empty DEPTH reference while still appeasing shellcheck + +* Wed Mar 20 2024 Thomas Fitzsimmons - 1:21.0.3.0.1-0.2.ea +- generate_source_tarball.sh: Add WITH_TEMP environment variable +- generate_source_tarball.sh: Multithread xz on all available cores +- generate_source_tarball.sh: Add OPENJDK_LATEST environment variable +- generate_source_tarball.sh: Update comment about tarball naming +- generate_source_tarball.sh: Reformat comment header +- generate_source_tarball.sh: Reformat and update help output +- generate_source_tarball.sh: Do a shallow clone, for speed +- generate_source_tarball.sh: Append -ea designator when required +- generate_source_tarball.sh: Eliminate some removal prompting +- generate_source_tarball.sh: Make tarball reproducible +- generate_source_tarball.sh: Prefix temporary directory with temp- +- generate_source_tarball.sh: Remove temporary directory exit conditions +- generate_source_tarball.sh: Fix -ea logic to add dash +- generate_source_tarball.sh: Set compile-command in Emacs +- generate_source_tarball.sh: Remove REPO_NAME from FILE_NAME_ROOT +- generate_source_tarball.sh: Move PROJECT_NAME and REPO_NAME checks +- generate_source_tarball.sh: shellcheck: Remove x-prefixes since we use Bash (SC2268) +- generate_source_tarball.sh: shellcheck: Double-quote variable references (SC2086) +- generate_source_tarball.sh: shellcheck: Do not use -a (SC2166) +- generate_source_tarball.sh: shellcheck: Do not use $ on arithmetic variables (SC2004) +- Use backward-compatible patch syntax +- generate_source_tarball.sh: Ignore -ga tags with OPENJDK_LATEST +- generate_source_tarball.sh: Fix whitespace +- generate_source_tarball.sh: Remove trailing period in echo +- generate_source_tarball.sh: Use long-style argument to grep +- generate_source_tarball.sh: Add license +- generate_source_tarball.sh: Add indentation instructions for Emacs +- Remove -T0 argument from systemtap tar invocation + +* Mon Mar 11 2024 Andrew Hughes - 1:21.0.3.0.1-0.2.ea - Introduce tar_opts to avoid repetition of lengthy tar creation options +- Add module build path to stripped directories to catch jpackageapplauncher files +- Move alt-java man page to the misc tarball so it is not in the JDK image +- Resolves: OPENJDK-2820 +- Resolves: OPENJDK-2821 -* Thu Feb 08 2024 Thomas Fitzsimmons - 1:21.0.1.0.12-2 +* Thu Feb 08 2024 Thomas Fitzsimmons - 1:21.0.3.0.1-0.2.ea - Invoke xz in multi-threaded mode - Remove ppc64le with-jobs=1 workaround - Make portable tarball modification times reproducible +- Use RHEL-7 tar-1.26-compatible invocations for reproducible tarballs -* Fri Oct 27 2023 Andrew Hughes - 1:21.0.1.0.12-1 +* Fri Feb 02 2024 Andrew Hughes - 1:21.0.3.0.1-0.1.ea +- Update to jdk-21.0.3+1 (EA) +- Update release notes to 21.0.3+1 +- Switch to EA mode +- Require tzdata 2023d due to upstream inclusion of JDK-8322725 +- Bump FreeType version to 2.13.2 following JDK-8316028 + +* Sat Jan 27 2024 Andrew Hughes - 1:21.0.2.0.13-2 +- Sync with upstream release notes + +* Tue Jan 09 2024 Andrew Hughes - 1:21.0.2.0.13-1 +- Update to jdk-21.0.2+13 (GA) +- Update release notes to 21.0.2+13 +- Drop no longer needed local patch to fix versioning +- ** This tarball is embargoed until 2024-01-16 @ 1pm PT. ** + +* Mon Jan 08 2024 Andrew Hughes - 1:21.0.2.0.12-1 +- Update to jdk-21.0.2+12 (GA) +- Update release notes to 21.0.2+12 +- ** This tarball is embargoed until 2024-01-16 @ 1pm PT. ** + +* Sat Jan 06 2024 Andrew Hughes - 1:21.0.2.0.11-1 +- Update to jdk-21.0.2+11 (GA) +- Update release notes to 21.0.2+11 +- Bump libpng version to 1.6.40 following JDK-8316030 +- Bump HarfBuzz version to 8.2.2 following JDK-8313643 +- Drop local JDK-8311630 patch which is now upstream +- Locally patch versioning to be 21.0.2 released on 2014-01-16 +- ** This tarball is embargoed until 2024-01-16 @ 1pm PT. ** + +* Mon Nov 06 2023 Andrew Hughes - 1:21.0.1.0.12-2 +- Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x + +* Sun Oct 29 2023 Andrew Hughes - 1:21.0.1.0.12-1 - Update to jdk-21.0.1.0+12 (GA) - Update release notes to 21.0.1.0+12 - Update openjdk_news script to specify subdirectory last @@ -1796,32 +1912,17 @@ done - Update bug URL for RHEL to point to the Red Hat customer portal - Fix upstream release URL for OpenJDK source - Update buildjdkver to match the featurever - -* Fri Oct 27 2023 Andrew Hughes - 1:21.0.0.0.35-4 -- Rebuild jmods using the stripped binaries in release builds -- Make sure the unstripped JDK is customised by the installjdk function -- Resolves: OPENJDK-1974 - -* Thu Oct 26 2023 Andrew Hughes - 1:21.0.0.0.35-3 - 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 - Drop unused globals for tapset installation +- Rebuild jmods using the stripped binaries in release builds +- Make sure the unstripped JDK is customised by the installjdk function -* Thu Aug 24 2023 Andrew Hughes - 1:21.0.0.0.35-2 -- Update documentation (README.md, add missing JEP to release notes) -- Replace alt-java patch with a binary separate from the JDK -- Drop stale patches that are of little use any more: -- * nss.cfg has been disabled since early PKCS11 work and long superseded by FIPS work -- * No accessibility subpackage to warrant RH1648242 patch any more -- * No use of system libjpeg turbo to warrant RH649512 patch any more -- Replace RH1684077 pcsc-lite-libs patch with better JDK-8009550 fix being upstreamed -- Related: rhbz#2192749 - -* Mon Aug 21 2023 Andrew Hughes - 1:21.0.0.0.35-1 +* Sat Oct 28 2023 Andrew Hughes - 1:21.0.0.0.35-1 - Update to jdk-21.0.0+35 - Update release notes to 21.0.0+35 +- Update documentation (README.md) - Update system crypto policy & FIPS patch from new fips-21u tree - Update generate_tarball.sh to sync with upstream vanilla script inc. no more ECC removal - Drop fakefeaturever now it is no longer needed @@ -1829,13 +1930,20 @@ done - Change top_level_dir_name to use the VCS tag, matching new upstream release style tarball - Use upstream release URL for OpenJDK source - Re-enable tzdata tests now we are on the latest JDK and things are back in sync -- Related: rhbz#2192749 +- Fix trailing '.' in tarball name +- Use rpmrelease in vendor version to avoid inclusion of dist tag +- Replace alt-java patch with a binary separate from the JDK +- Drop stale patches that are of little use any more: +- * nss.cfg has been disabled since early PKCS11 work and long superseded by FIPS work +- * No accessibility subpackage to warrant RH1648242 patch any more +- * No use of system libjpeg turbo to warrant RH649512 patch any more +- Replace RH1684077 pcsc-lite-libs patch with better JDK-8009550 fix being upstreamed -* Mon Aug 21 2023 Petra Alice Mikova - 1:21.0.0.0.35-1 +* Sat Oct 28 2023 Petra Alice Mikova - 1:21.0.0.0.35-1 - Replace smoke test files used in the staticlibs test, as fdlibm was removed by JDK-8303798 - Related: rhbz#2192749 -* Wed Aug 16 2023 Andrew Hughes - 1:20.0.0.0.36-1 +* Fri Oct 27 2023 Andrew Hughes - 1:20.0.2.0.9-1.1 - Update to jdk-20.0.2+9 - Update release notes to 20.0.2+9 - Update system crypto policy & FIPS patch from new fips-20u tree @@ -1843,12 +1951,12 @@ done - Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit) - Related: rhbz#2192749 -* Wed Aug 16 2023 Jiri Vanek - 1:20.0.0.0.36-1 +* Fri Oct 27 2023 Jiri Vanek - 1:20.0.0.0.36-1 - Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream - Adapted rh1750419-redhat_alt_java.patch - Related: rhbz#2192749 -* Tue Aug 15 2023 Andrew Hughes - 1:19.0.1.0.10-1 +* Fri Oct 27 2023 Andrew Hughes - 1:19.0.1.0.10-1 - Update to jdk-19.0.2 release - Update release notes to 19.0.2 - Rebase FIPS patches from fips-19u branch @@ -1857,7 +1965,7 @@ done - Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases - Related: rhbz#2192749 -* Thu Aug 10 2023 Andrew Hughes - 1:18.0.2.0.9-1 +* Tue Oct 24 2023 Andrew Hughes - 1:18.0.2.0.9-1 - Update to jdk-18.0.2 release - Update release notes to actually reflect OpenJDK 18 - Support JVM variant zero following JDK-8273494 no longer installing Zero's libjvm.so in the server directory @@ -1867,18 +1975,25 @@ done - Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21 - Switch bootjdkver to java-21-openjdk - Disable tzdata tests until we are on the latest JDK and things are back in sync +- Drop bootstrap JDKs and use the java-21-openjdk-rhel7 build - Related: rhbz#2192749 -* Thu Aug 10 2023 Petra Alice Mikova - 1:18.0.0.0.37-1 +* Tue Oct 24 2023 Petra Alice Mikova - 1:18.0.0.0.37-1 - Update to ea version of jdk18 - Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch + +* Tue Aug 22 2023 Andrew Hughes - 1:17.0.7.0.7-2 +- Define architectures we build on to avoid those without DTS 10 (e.g. s390) + +* Tue Aug 22 2023 Andrew Hughes - 1:17.0.7.0.7-2 +- Switch to DTS 10 - Related: rhbz#2192749 * Mon May 15 2023 Andrew Hughes - 1:17.0.7.0.7-2 - Create java-21-openjdk-portable package based on java-17-openjdk-portable - Related: rhbz#2192749 -* Tue Apr 25 2023 Andrew Hughes - 1:17.0.7.0.7-2 +* Thu Apr 13 2023 Andrew Hughes - 1:17.0.7.0.7-1 - Update to jdk-17.0.7.0+7 - Update release notes to 17.0.7.0+7 - Require tzdata 2023c due to local inclusion of JDK-8274864 & JDK-8305113 @@ -1891,20 +2006,12 @@ done - * test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java: fixed jtreg main class - * RH1940064: Enable XML Signature provider in FIPS mode - * RH2173781: Avoid calling C_GetInfo() too early, before cryptoki is initialized -- Fix trailing '.' in tarball name -- Use rpmrelease in vendor version to avoid inclusion of dist tag - ** This tarball is embargoed until 2023-04-18 @ 1pm PT. ** - Resolves: rhbz#2185182 - Resolves: rhbz#2134669 - Resolves: rhbz#1940064 - Resolves: rhbz#2173781 -* Thu Apr 20 2023 Andrew Hughes - 1:17.0.6.0.10-7 -- Sync with existing RHEL 8 build, in order to start building portables on RHEL 8 -- Restore system bootstrap JDK (RHEL 8 has java-17-openjdk) -- Remove use of devtoolset (RHEL 8 native compilers should be sufficient) -- Explicitly exclude x86, as on RHEL RPMs - * Tue Feb 21 2023 Andrew Hughes - 1:17.0.6.0.10-6 - Add docs, icons and samples to the portable output - Make sure generated checksums work and don't include full path diff --git a/java-21-openjdk.spec b/java-21-openjdk.spec index 04f451d..7ee9908 100644 --- a/java-21-openjdk.spec +++ b/java-21-openjdk.spec @@ -2500,6 +2500,7 @@ require "copy_jdk_configs.lua" - Update to jdk-21.0.3+9 (GA) - Update release notes to 21.0.3+9 - Switch to GA mode. +- Sync the copy of the portable specfile with the latest update - ** This tarball is embargoed until 2024-04-16 @ 1pm PT. ** - Resolves: RHEL-32406