From e00b68ca9abf7956b555972b1ad9c688200d2556 Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Wed, 3 Jul 2024 17:11:34 +0100 Subject: [PATCH] Sync the copy of the portable specfile with the latest update Related: RHEL-45358 --- java-21-openjdk-portable.specfile | 94 +++++++++++++++++++++++++------ java-21-openjdk.spec | 1 + 2 files changed, 77 insertions(+), 18 deletions(-) diff --git a/java-21-openjdk-portable.specfile b/java-21-openjdk-portable.specfile index bf8380d..106cc56 100644 --- a/java-21-openjdk-portable.specfile +++ b/java-21-openjdk-portable.specfile @@ -314,7 +314,7 @@ # New Version-String scheme-style defines %global featurever 21 %global interimver 0 -%global updatever 3 +%global updatever 4 %global patchver 0 # buildjdkver is usually same as %%{featurever}, # but in time of bootstrap of next jdk, it is featurever-1, @@ -378,7 +378,7 @@ %global origin_nice OpenJDK %global top_level_dir_name %{vcstag} %global top_level_dir_name_backup %{top_level_dir_name}-backup -%global buildver 9 +%global buildver 1 %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 @@ -398,7 +398,7 @@ # Release will be (where N is usually a number starting at 1): # - 0.N%%{?extraver}%%{?dist} for EA releases, # - N%%{?extraver}{?dist} for GA releases -%global is_ga 1 +%global is_ga 0 %if %{is_ga} %global build_type GA %global ea_designator "" @@ -731,6 +731,7 @@ BuildRequires: harfbuzz-devel BuildRequires: lcms2-devel BuildRequires: libjpeg-devel BuildRequires: libpng-devel +BuildRequires: zlib-devel %else # Version in src/java.desktop/share/legal/freetype.md Provides: bundled(freetype) = 2.13.2 @@ -739,11 +740,13 @@ Provides: bundled(giflib) = 5.2.1 # Version in src/java.desktop/share/native/libharfbuzz/hb-version.h Provides: bundled(harfbuzz) = 8.2.2 # Version in src/java.desktop/share/native/liblcms/lcms2.h -Provides: bundled(lcms2) = 2.15.0 +Provides: bundled(lcms2) = 2.16.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.40 +# Version in src/java.base/share/native/libzip/zlib/zlib.h +Provides: bundled(zlib) = 1.3.1 # We link statically against libstdc++ to increase portability BuildRequires: libstdc++-static %endif @@ -1173,18 +1176,21 @@ function buildjdk() { function stripjdk() { local outputdir=${1} - local jdkimagepath=${outputdir}/images/%{jdkimage} - local jreimagepath=${outputdir}/images/%{jreimage} - local jmodimagepath=${outputdir}/images/jmods + local jdkimagepath=images/%{jdkimage} + local jreimagepath=images/%{jreimage} + local jmodimagepath=images/jmods + local modulefile=lib/modules local supportdir=${outputdir}/support local modulebuildpath=${outputdir}/jdk/modules + local jdkoutdir=${outputdir}/${jdkimagepath} + local jreoutdir=${outputdir}/${jreimagepath} if [ "x$suffix" = "x" ] ; then # Keep the unstripped version for consumption by RHEL RPMs - cp -a ${jdkimagepath}{,.unstripped} + cp -a ${jdkoutdir}{,.unstripped} # Strip the files - for file in $(find ${jdkimagepath} ${jreimagepath} ${supportdir} ${modulebuildpath} -type f) ; do + for file in $(find ${jdkoutdir} ${jreoutdir} ${supportdir} ${modulebuildpath} -type f) ; do if file ${file} | cut -d ':' -f 2 | grep -q 'ELF'; then noextfile=${file/.so/}; scl enable devtoolset-%{dtsversion} "objcopy --only-keep-debug ${file} ${noextfile}.debuginfo"; @@ -1198,24 +1204,53 @@ function stripjdk() { echo "Support directory missing."; exit 15 fi - for cmd in $(find ${supportdir} -name '*.jmod_exec.cmdline') ; do + # Build the java.base jmod a third time to fix the hashes of dependent jmods + for cmd in $(find ${supportdir}/${jmodimagepath} -name '*.jmod_exec.cmdline') \ + ${supportdir}/${jmodimagepath}/*java.base*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}..."; + echo -e "Executing ${pre}...\n$(cat ${pre})"; cat ${pre} | sh -s ; fi - echo "Executing ${cmd}..."; + echo "Executing ${cmd}...$(cat ${cmd})"; cat ${cmd} | sh -s ; if [ -e ${post} ] ; then - echo "Executing ${post}..."; + echo -e "Executing ${post}...\n$(cat ${post})"; cat ${post} | sh -s ; fi done - rm -rf ${jdkimagepath}/jmods - cp -a ${jmodimagepath} ${jdkimagepath} + + # Rebuild the image with the stripped modules + for image in ${jdkimagepath} ${jreimagepath} ; do + outdir=${outputdir}/${image}; + jlink=${supportdir}/${image}/_jlink*_exec.cmdline; + # Backup the existing image as it contains + # files not generated by jlink + mv ${outdir}{,.bak}; + # Regenerate the image using the command + # generated using the initial build + echo -e "Executing ${jlink}...\n$(cat ${jlink})"; + cat ${jlink} | sh -s; + # Move the new jmods and module file from the new + # image to the old one + if [ -e ${outdir}.bak/jmods ] ; then + rm -rf ${outdir}.bak/jmods; + mv ${outdir}/jmods ${outdir}.bak; + fi + rm -f ${outdir}.bak/${modulefile}; + mv ${outdir}/${modulefile} ${outdir}.bak/$(dirname ${modulefile}); + # Restore the original image + rm -rf ${outdir}; + mv ${outdir}{.bak,}; + # Update the CDS archives + for cmd in ${supportdir}/${image}/*_gen_cds*_exec.cmdline ; do + echo -e "Executing ${cmd}...\n$(cat ${cmd})"; + cat ${cmd} | sh -s; + done + done fi } @@ -1295,6 +1330,7 @@ function createtar() { local archive=${2} local filter=${3} local transform=${4} + local exclude=${5} if [ "x${filter}" != "x" ] ; then local filteroption="-name ${filter}"; @@ -1302,9 +1338,12 @@ function createtar() { if [ "x${transform}" != "x" ] ; then local transoption="--transform ${transform}"; fi + if [ "x${exclude}" != "x" ] ; then + local excludeoption="--exclude=${exclude}"; + fi local common_tar_opts="--owner=0 --group=0 --numeric-owner \ - ${transoption} --create --xz" + ${transoption} ${excludeoption} --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}" @@ -1401,10 +1440,10 @@ function packagejdk() { genchecksum ${miscarchive} fi - createtar ${jdkname} ${jdkarchive} + createtar ${jdkname} ${jdkarchive} "" "" "**.debuginfo" genchecksum ${jdkarchive} - createtar ${jrename} ${jrearchive} + createtar ${jrename} ${jrearchive} "" "" "**.debuginfo" genchecksum ${jrearchive} %if %{include_staticlibs} @@ -1785,6 +1824,25 @@ done %{_jvmdir}/%{miscportablearchive}.sha256sum %changelog +* Sat Jun 22 2024 Andrew Hughes - 1:21.0.4.0.1-0.1.ea +- Update to jdk-21.0.4+1 (EA) +- Update release notes to 21.0.4+1 +- Switch to EA mode +- Bump LCMS 2 version to 2.16.0 following JDK-8321489 +- Add zlib build requirement or bundled version (1.3.1), depending on system_libs setting +- Resolves: OPENJDK-3060 +- Resolves: OPENJDK-3063 + +* Tue Jun 11 2024 Andrew Hughes - 1:21.0.3.0.9-3 +- Re-run jlink to regenerate the jmods directory and lib/modules with stripped libraries +- Rebuild CDS archives against the updated lib/modules +- Resolves: OPENJDK-2829 + +* Wed May 01 2024 Thomas Fitzsimmons - 1:21.0.3.0.9-2 +- createtar: Add exclude option +- packagejdk: Exclude debuginfo when creating jdkarchive and jrearchive tarballs +- Resolves: OPENJDK-2995 + * 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 diff --git a/java-21-openjdk.spec b/java-21-openjdk.spec index 7912ab2..80b58a4 100644 --- a/java-21-openjdk.spec +++ b/java-21-openjdk.spec @@ -2507,6 +2507,7 @@ require "copy_jdk_configs.lua" - Bump LCMS 2 version to 2.16.0 following JDK-8321489 - Add zlib build requirement or bundled version (1.3.1), depending on system_libs setting - Restore NEWS file so portable can be rebuilt +- Sync the copy of the portable specfile with the latest update - Related: RHEL-45358 - Resolves: RHEL-46027