Update to jdk-21.0.1.0+12 (GA)
Update release notes to 21.0.1.0+12 Sync the copy of the portable specfile with the latest update Update openjdk_news script to specify subdirectory last Add missing discover_trees script required by openjdk_news Synchronise bundled versions with 21u sources (FreeType, LCMS, HarfBuzz, libpng) Sync generate_tarball.sh with 11u & 17u version Update bug URL for RHEL to point to the Red Hat customer portal Fix upstream release URL for OpenJDK source Following JDK-8005165, class data sharing can be enabled on all JIT architectures Use tapsets from the misc tarball Introduce 'prelease' for the portable release versioning, to handle EA builds Make sure root installation directory is created first Use in-place substitution for all but the first of the tapset changes Synchronise runtime and buildtime tzdata requirements Remove ghosts for binaries not in java-21-openjdk (pack200, rmid, unpack200) Add missing jfr, jpackage and jwebserver alternative ghosts Move jcmd to the headless package Revert alt-java binary location to being within the JDK tree Fix packaging of CDS archives Exclude classes_nocoops.jsa on i686 and arm32 Resolves: RHEL-12996 Resolves: RHEL-14951 Resolves: RHEL-13924 Resolves: RHEL-14955 Related: RHEL-14943 Resolves: RHEL-11322 Resolves: RHEL-14949
This commit is contained in:
parent
e04786271f
commit
1fa177aca7
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,3 +11,4 @@
|
||||
/openjdk-jdk20u-jdk-20.0.1+9.tar.xz
|
||||
/openjdk-jdk20u-jdk-20.0.2+9.tar.xz
|
||||
/openjdk-jdk21u-jdk-21+35.tar.xz
|
||||
/openjdk-21.0.1+12.tar.xz
|
||||
|
@ -29,7 +29,6 @@ set -e
|
||||
|
||||
OPENJDK_URL_DEFAULT=https://github.com
|
||||
COMPRESSION_DEFAULT=xz
|
||||
# Corresponding IcedTea version
|
||||
|
||||
if [ "x$1" = "xhelp" ] ; then
|
||||
echo -e "Behaviour may be specified by setting the following variables:\n"
|
||||
@ -39,6 +38,7 @@ if [ "x$1" = "xhelp" ] ; then
|
||||
echo "OPENJDK_URL - the URL to retrieve code from (optional; defaults to ${OPENJDK_URL_DEFAULT})"
|
||||
echo "COMPRESSION - the compression type to use (optional; defaults to ${COMPRESSION_DEFAULT})"
|
||||
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"
|
||||
echo "REPO_ROOT - the location of the Git repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME.git)"
|
||||
echo "TO_COMPRESS - what part of clone to pack (default is ${VERSION})"
|
||||
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
|
||||
exit 1;
|
||||
@ -117,9 +117,20 @@ fi;
|
||||
|
||||
if [ "x$TO_COMPRESS" = "x" ] ; then
|
||||
TO_COMPRESS="${VERSION}"
|
||||
echo "No targets to be compressed specified, ; default to ${TO_COMPRESS}"
|
||||
echo "No targets to be compressed specified ; default to ${TO_COMPRESS}"
|
||||
fi;
|
||||
|
||||
echo -e "Settings:"
|
||||
echo -e "\tVERSION: ${VERSION}"
|
||||
echo -e "\tPROJECT_NAME: ${PROJECT_NAME}"
|
||||
echo -e "\tREPO_NAME: ${REPO_NAME}"
|
||||
echo -e "\tOPENJDK_URL: ${OPENJDK_URL}"
|
||||
echo -e "\tCOMPRESSION: ${COMPRESSION}"
|
||||
echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}"
|
||||
echo -e "\tREPO_ROOT: ${REPO_ROOT}"
|
||||
echo -e "\tTO_COMPRESS: ${TO_COMPRESS}"
|
||||
echo -e "\tBOOT_JDK: ${BOOT_JDK}"
|
||||
|
||||
if [ -d ${FILE_NAME_ROOT} ] ; then
|
||||
echo "exists exists exists exists exists exists exists "
|
||||
echo "reusing reusing reusing reusing reusing reusing "
|
||||
@ -132,6 +143,7 @@ else
|
||||
popd
|
||||
fi
|
||||
pushd "${FILE_NAME_ROOT}"
|
||||
|
||||
# Generate .src-rev so build has knowledge of the revision the tarball was created from
|
||||
mkdir build
|
||||
pushd build
|
||||
@ -164,7 +176,8 @@ pushd "${FILE_NAME_ROOT}"
|
||||
else
|
||||
SWITCH=czf
|
||||
fi
|
||||
tar --exclude-vcs -$SWITCH ${FILE_NAME_ROOT}.tar.${COMPRESSION} $TO_COMPRESS
|
||||
mv ${FILE_NAME_ROOT}.tar.${COMPRESSION} ..
|
||||
TARBALL_NAME=${FILE_NAME_ROOT}.tar.${COMPRESSION}
|
||||
tar --exclude-vcs -$SWITCH ${TARBALL_NAME} $TO_COMPRESS
|
||||
mv ${TARBALL_NAME} ..
|
||||
popd
|
||||
echo "Done. You may want to remove the uncompressed version - $FILE_NAME_ROOT."
|
||||
|
@ -241,12 +241,6 @@
|
||||
%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
|
||||
%global ourldflags %{__global_ldflags}
|
||||
|
||||
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
|
||||
# the initialization must be here. Later the pkg-config have buggy behavior
|
||||
# looks like openjdk RPM specific bug
|
||||
# Always set this so the nss.cfg file is not broken
|
||||
%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
|
||||
|
||||
# In some cases, the arch used by the JDK does
|
||||
# not match _arch.
|
||||
# Also, in some cases, the machine name used by SystemTap
|
||||
@ -307,9 +301,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
|
||||
@ -317,12 +310,12 @@
|
||||
# New Version-String scheme-style defines
|
||||
%global featurever 21
|
||||
%global interimver 0
|
||||
%global updatever 0
|
||||
%global updatever 1
|
||||
%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 20
|
||||
%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}
|
||||
@ -333,7 +326,7 @@
|
||||
%global lts_designator_zip ""
|
||||
%endif
|
||||
# JDK to use for bootstrapping
|
||||
%global bootjdk /usr/lib/jvm/java-%{featurever}-openjdk
|
||||
%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
|
||||
@ -356,7 +349,7 @@
|
||||
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{name}&version=%{fedora}
|
||||
%else
|
||||
%if 0%{?rhel}
|
||||
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%20%{rhel}&component=%{name}
|
||||
%global oj_vendor_bug_url https://access.redhat.com/support/cases/
|
||||
%else
|
||||
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi
|
||||
%endif
|
||||
@ -381,7 +374,7 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{vcstag}
|
||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||
%global buildver 35
|
||||
%global buildver 12
|
||||
%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
|
||||
@ -405,7 +398,7 @@
|
||||
%if %{is_ga}
|
||||
%global build_type GA
|
||||
%global ea_designator ""
|
||||
%global ea_designator_zip ""
|
||||
%global ea_designator_zip %{nil}
|
||||
%global extraver %{nil}
|
||||
%global eaprefix %{nil}
|
||||
%else
|
||||
@ -425,6 +418,7 @@
|
||||
# output dir stub
|
||||
%define buildoutputdir() %{expand:build/jdk%{featurever}.build%{?1}}
|
||||
%define installoutputdir() %{expand:install/jdk%{featurever}.install%{?1}}
|
||||
%global altjavaoutputdir install/altjava.install
|
||||
%define packageoutputdir() %{expand:packages/jdk%{featurever}.packages%{?1}}
|
||||
# we can copy the javadoc to not arched dir, or make it not noarch
|
||||
%define uniquejavadocdir() %{expand:%{fullversion}.%{_arch}%{?1}}
|
||||
@ -496,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}
|
||||
|
||||
@ -579,13 +559,12 @@ License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv
|
||||
URL: http://openjdk.java.net/
|
||||
|
||||
# The source tarball, generated using generate_source_tarball.sh
|
||||
Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/openjdk-jdk%{featurever}u-%{vcstag}.tar.xz
|
||||
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.
|
||||
# Disabled in portables
|
||||
#Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
|
||||
Source8: tapsets-icedtea-%%{icedteaver}.tar.xz
|
||||
|
||||
# Desktop files. Adapted from IcedTea
|
||||
# Disabled in portables
|
||||
@ -594,8 +573,8 @@ Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/openjdk-jdk%{featu
|
||||
# Release notes
|
||||
Source10: NEWS
|
||||
|
||||
# nss configuration file
|
||||
Source11: nss.cfg.in
|
||||
# Source code for alt-java
|
||||
Source11: alt-java.c
|
||||
|
||||
# Removed libraries that we link instead
|
||||
Source12: remove-intree-libraries.sh
|
||||
@ -621,16 +600,6 @@ Source18: TestTranslations.java
|
||||
#
|
||||
############################################
|
||||
|
||||
# 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).
|
||||
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
|
||||
# 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
|
||||
|
||||
# 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
|
||||
@ -675,6 +644,10 @@ 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
|
||||
|
||||
#############################################
|
||||
@ -713,7 +686,7 @@ BuildRequires: libXrandr-devel
|
||||
BuildRequires: libXrender-devel
|
||||
BuildRequires: libXt-devel
|
||||
BuildRequires: libXtst-devel
|
||||
# Requirement for setting up nss.cfg
|
||||
# Requirement for setting up nss.fips.cfg
|
||||
BuildRequires: nss-devel
|
||||
# Requirement for system security property test
|
||||
# N/A for portable. RHEL7 doesn't provide them
|
||||
@ -726,11 +699,14 @@ BuildRequires: tar
|
||||
BuildRequires: unzip
|
||||
# Not needed for portables
|
||||
# BuildRequires: javapackages-filesystem
|
||||
BuildRequires: java-%{featurever}-openjdk-devel
|
||||
BuildRequires: java-%{buildjdkver}-openjdk-devel
|
||||
# Zero-assembler build requirement
|
||||
%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
|
||||
@ -751,18 +727,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.12.1
|
||||
# Version in src/java.desktop/share/legal/freetype.md
|
||||
Provides: bundled(freetype) = 2.13.0
|
||||
# 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.2.0
|
||||
# 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
|
||||
Provides: bundled(libpng) = 1.6.37
|
||||
Provides: bundled(libpng) = 1.6.39
|
||||
# We link statically against libstdc++ to increase portability
|
||||
BuildRequires: libstdc++-static
|
||||
%endif
|
||||
@ -961,14 +937,10 @@ sh %{SOURCE12} %{top_level_dir_name}
|
||||
|
||||
# Patch the JDK
|
||||
pushd %{top_level_dir_name}
|
||||
%patch1 -p1
|
||||
%patch3 -p1
|
||||
%patch6 -p1
|
||||
# Add crypto policy and FIPS support
|
||||
%patch1001 -p1
|
||||
# nss.cfg PKCS11 support; must come last as it also alters java.security
|
||||
%patch1000 -p1
|
||||
%patch600 -p1
|
||||
# Patches in need of upstreaming
|
||||
%patch6 -p1
|
||||
popd # openjdk
|
||||
|
||||
|
||||
@ -1004,18 +976,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/%{vm_variant}/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
|
||||
@ -1024,9 +986,6 @@ done
|
||||
# Prepare desktop files
|
||||
# Portables do not have desktop integration
|
||||
|
||||
# Setup nss.cfg
|
||||
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 || :)
|
||||
@ -1060,6 +1019,10 @@ EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-mstackrealign|-mincoming
|
||||
%endif
|
||||
export EXTRA_CFLAGS EXTRA_CPP_FLAGS
|
||||
|
||||
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}"
|
||||
|
||||
function buildjdk() {
|
||||
@ -1106,8 +1069,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}" \
|
||||
@ -1139,16 +1102,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}
|
||||
@ -1177,7 +1188,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
|
||||
@ -1192,7 +1203,6 @@ function installjdk() {
|
||||
|
||||
# Install local files which are distributed with the JDK
|
||||
install -m 644 %{SOURCE10} ${imagepath}
|
||||
install -m 644 nss.cfg ${imagepath}/conf/security/
|
||||
|
||||
# Create fake alt-java as a placeholder for future alt-java
|
||||
pushd ${imagepath}
|
||||
@ -1226,6 +1236,8 @@ function packagejdk() {
|
||||
local bundledir=$(pwd)/${1}/bundles
|
||||
local packagesdir=$(pwd)/${2}
|
||||
local srcdir=$(pwd)/%{top_level_dir_name}
|
||||
local tapsetdir=$(pwd)/tapset
|
||||
local altjavadir=$(pwd)/${3}
|
||||
|
||||
echo "Packaging build from ${imagesdir} to ${packagesdir}..."
|
||||
mkdir -p ${packagesdir}
|
||||
@ -1253,41 +1265,39 @@ function packagejdk() {
|
||||
miscname=%{miscportablename}
|
||||
miscarchive=${packagesdir}/%{miscportablearchive}
|
||||
|
||||
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
|
||||
|
||||
# Rename directories for packaging
|
||||
mv %{jdkimage} ${jdkname}
|
||||
mv %{jreimage} ${jrename}
|
||||
|
||||
# Release images have external debug symbols
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
# Keep the unstripped version for consumption by RHEL RPMs
|
||||
tar -cJf ${unstrippedarchive} ${jdkname}
|
||||
genchecksum ${unstrippedarchive}
|
||||
|
||||
# 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
|
||||
|
||||
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 ${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
|
||||
tar -cJf ${miscarchive} ${miscname}
|
||||
genchecksum ${miscarchive}
|
||||
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
|
||||
%if %{with_systemtap}
|
||||
cp -a ${tapsetdir}* ${miscname}
|
||||
%endif
|
||||
cp -av ${altjavadir}/%{alt_java_name} ${miscname}
|
||||
tar -cJf ${miscarchive} ${miscname}
|
||||
genchecksum ${miscarchive}
|
||||
fi
|
||||
|
||||
tar -cJf ${jdkarchive} --exclude='**.debuginfo' ${jdkname}
|
||||
@ -1364,13 +1374,15 @@ 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}
|
||||
packagejdk ${installdir} ${packagesdir} %{altjavaoutputdir}
|
||||
|
||||
%if %{system_libs}
|
||||
# Restore original source tree we modified by removing full in-tree sources
|
||||
@ -1432,10 +1444,11 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendo
|
||||
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 $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation
|
||||
nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl
|
||||
%else
|
||||
if ! nm $JAVA_HOME/bin/%{alt_java_name} | grep set_speculation ; then true ; else false; fi
|
||||
if ! nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl ; then true ; else false; fi
|
||||
%endif
|
||||
|
||||
%if ! 0%{?flatpak}
|
||||
@ -1671,6 +1684,39 @@ done
|
||||
%{_jvmdir}/%{miscportablearchive}.sha256sum
|
||||
|
||||
%changelog
|
||||
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 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
|
||||
- Add missing discover_trees script required by openjdk_news
|
||||
- Synchronise bundled versions with 21u sources (FreeType, LCMS, HarfBuzz, libpng)
|
||||
- Sync generate_tarball.sh with 11u & 17u version
|
||||
- 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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
|
||||
|
||||
* Thu Aug 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:21.0.0.0.35-1
|
||||
- Update to jdk-21.0.0+35
|
||||
- Update release notes to 21.0.0+35
|
||||
@ -1681,9 +1727,11 @@ 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
|
||||
|
||||
* Mon Aug 21 2023 Petra Alice Mikova <pmikova@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:20.0.0.0.36-1
|
||||
- Update to jdk-20.0.2+9
|
||||
|
@ -1,3 +1,8 @@
|
||||
# To rebuild this RPM, you must first rebuild the portable
|
||||
# RPM using the java-21-openjdk-portable.specfile, install
|
||||
# it and then adjust portablerelease and portablesuffix
|
||||
# to match the new portable.
|
||||
|
||||
# RPM conditionals so as to be able to dynamically produce
|
||||
# slowdebug/release builds. See:
|
||||
# http://rpm.org/user_doc/conditional_builds.html
|
||||
@ -124,9 +129,9 @@
|
||||
# Set of architectures which support the serviceability agent
|
||||
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
|
||||
# Set of architectures which support class data sharing
|
||||
# See https://bugzilla.redhat.com/show_bug.cgi?id=513605
|
||||
# MetaspaceShared::generate_vtable_methods is not implemented for the PPC JIT
|
||||
%global share_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{arm} s390x
|
||||
# As of JDK-8005165 in OpenJDK 10, class sharing is not arch-specific
|
||||
# However, it does segfault on the Zero assembler port, so currently JIT only
|
||||
%global share_arches %{jit_arches}
|
||||
# Set of architectures for which we build the Shenandoah garbage collector
|
||||
%global shenandoah_arches x86_64 %{aarch64}
|
||||
# Set of architectures for which we build the Z garbage collector
|
||||
@ -295,7 +300,7 @@
|
||||
# New Version-String scheme-style defines
|
||||
%global featurever 21
|
||||
%global interimver 0
|
||||
%global updatever 0
|
||||
%global updatever 1
|
||||
%global patchver 0
|
||||
# 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.
|
||||
@ -320,7 +325,7 @@
|
||||
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Fedora&component=%{name}&version=%{fedora}
|
||||
%else
|
||||
%if 0%{?rhel}
|
||||
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi?product=Red%20Hat%20Enterprise%20Linux%20%{rhel}&component=%{name}
|
||||
%global oj_vendor_bug_url https://access.redhat.com/support/cases/
|
||||
%else
|
||||
%global oj_vendor_bug_url https://bugzilla.redhat.com/enter_bug.cgi
|
||||
%endif
|
||||
@ -345,10 +350,10 @@
|
||||
%global origin_nice OpenJDK
|
||||
%global top_level_dir_name %{vcstag}
|
||||
%global top_level_dir_name_backup %{top_level_dir_name}-backup
|
||||
%global buildver 35
|
||||
%global rpmrelease 2
|
||||
%global buildver 12
|
||||
%global rpmrelease 1
|
||||
# Settings used by the portable build
|
||||
%global portablerelease 2
|
||||
%global portablerelease 1
|
||||
%global portablesuffix el8
|
||||
%global portablebuilddir /builddir/build/BUILD
|
||||
|
||||
@ -373,7 +378,7 @@
|
||||
%if %{is_ga}
|
||||
%global build_type GA
|
||||
%global ea_designator ""
|
||||
%global ea_designator_zip ""
|
||||
%global ea_designator_zip %{nil}
|
||||
%global extraver %{nil}
|
||||
%global eaprefix %{nil}
|
||||
%else
|
||||
@ -434,7 +439,6 @@
|
||||
%define jrebindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
|
||||
|
||||
%global alt_java_name alt-java
|
||||
%global alt_java_versioned %{alt_java_name}-%{featurever}
|
||||
|
||||
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
|
||||
|
||||
@ -531,13 +535,16 @@ key=java
|
||||
alternatives \\
|
||||
--install %{_bindir}/java $key %{jrebindir -- %{?1}}/java $PRIORITY --family %{family} \\
|
||||
--slave %{_jvmdir}/jre jre %{_jvmdir}/%{sdkdir -- %{?1}} \\
|
||||
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{_bindir}/%{alt_java_versioned} \\
|
||||
--slave %{_bindir}/%{alt_java_name} %{alt_java_name} %{jrebindir -- %{?1}}/%{alt_java_name} \\
|
||||
--slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
|
||||
--slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
|
||||
--slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\
|
||||
--slave %{_mandir}/man1/java.1$ext java.1$ext \\
|
||||
%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/%{alt_java_name}.1$ext %{alt_java_name}.1$ext \\
|
||||
%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
|
||||
%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
|
||||
%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
|
||||
@ -557,10 +564,6 @@ alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin} $key %{_jvmdir}/%{jre
|
||||
}
|
||||
|
||||
%define post_headless() %{expand:
|
||||
%ifarch %{share_arches}
|
||||
%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
|
||||
%endif
|
||||
|
||||
update-desktop-database %{_datadir}/applications &> /dev/null || :
|
||||
/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
|
||||
|
||||
@ -626,7 +629,6 @@ alternatives \\
|
||||
--slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
|
||||
--slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\
|
||||
--slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\
|
||||
--slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
|
||||
--slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
|
||||
--slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
|
||||
--slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
|
||||
@ -654,8 +656,6 @@ alternatives \\
|
||||
%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
|
||||
%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
|
||||
%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
|
||||
%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\
|
||||
--slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
|
||||
@ -810,7 +810,6 @@ exit 0
|
||||
|
||||
%define files_jre_headless() %{expand:
|
||||
%license %{_jvmdir}/%{sdkdir -- %{?1}}/legal
|
||||
%{_bindir}/%{alt_java_versioned}
|
||||
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/NEWS
|
||||
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/README.md
|
||||
%doc %{_defaultdocdir}/%{uniquejavadocdir -- %{?1}}/java-%{featurever}-openjdk-portable.specfile
|
||||
@ -821,6 +820,8 @@ exit 0
|
||||
%{_jvmdir}/%{jrelnk -- %{?1}}
|
||||
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/%{alt_java_name}
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry
|
||||
%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
|
||||
@ -885,11 +886,15 @@ exit 0
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jfr/profile.jfc
|
||||
%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/%{alt_java_name}-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/
|
||||
%ifarch %{share_arches}
|
||||
%attr(444, root, root) %ghost %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/classes.jsa
|
||||
%attr(444, root, root) %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/classes.jsa
|
||||
%ifnarch %{ix86} %{arm32}
|
||||
%attr(444, root, root) %{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{vm_variant}/classes_nocoops.jsa
|
||||
%endif
|
||||
%endif
|
||||
%dir %{etcjavasubdir}
|
||||
%dir %{etcjavadir -- %{?1}}
|
||||
@ -929,13 +934,11 @@ exit 0
|
||||
%if %is_system_jdk
|
||||
%if %{is_release_build -- %{?1}}
|
||||
%ghost %{_bindir}/java
|
||||
%ghost %{_bindir}/%{alt_java_name}
|
||||
%ghost %{_jvmdir}/jre
|
||||
%ghost %{_bindir}/%{alt_java_name}
|
||||
%ghost %{_bindir}/jcmd
|
||||
%ghost %{_bindir}/keytool
|
||||
%ghost %{_bindir}/pack200
|
||||
%ghost %{_bindir}/rmid
|
||||
%ghost %{_bindir}/rmiregistry
|
||||
%ghost %{_bindir}/unpack200
|
||||
%ghost %{_jvmdir}/jre-%{origin}
|
||||
%ghost %{_jvmdir}/jre-%{javaver}
|
||||
%ghost %{_jvmdir}/jre-%{javaver}-%{origin}
|
||||
@ -955,7 +958,6 @@ exit 0
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps
|
||||
%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeprscan
|
||||
@ -993,7 +995,6 @@ exit 0
|
||||
%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/jdeprscan-%{uniquesuffix -- %{?1}}.1*
|
||||
%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1*
|
||||
@ -1029,20 +1030,22 @@ exit 0
|
||||
%ghost %{_bindir}/jarsigner
|
||||
%ghost %{_bindir}/javadoc
|
||||
%ghost %{_bindir}/javap
|
||||
%ghost %{_bindir}/jcmd
|
||||
%ghost %{_bindir}/jconsole
|
||||
%ghost %{_bindir}/jdb
|
||||
%ghost %{_bindir}/jdeps
|
||||
%ghost %{_bindir}/jdeprscan
|
||||
%ghost %{_bindir}/jfr
|
||||
%ghost %{_bindir}/jimage
|
||||
%ghost %{_bindir}/jinfo
|
||||
%ghost %{_bindir}/jmap
|
||||
%ghost %{_bindir}/jps
|
||||
%ghost %{_bindir}/jpackage
|
||||
%ghost %{_bindir}/jrunscript
|
||||
%ghost %{_bindir}/jshell
|
||||
%ghost %{_bindir}/jstack
|
||||
%ghost %{_bindir}/jstat
|
||||
%ghost %{_bindir}/jstatd
|
||||
%ghost %{_bindir}/jwebserver
|
||||
%ghost %{_bindir}/serialver
|
||||
%ghost %{_jvmdir}/java-%{origin}
|
||||
%ghost %{_jvmdir}/java-%{javaver}
|
||||
@ -1137,8 +1140,8 @@ Requires: ca-certificates
|
||||
# Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros
|
||||
Requires: javapackages-filesystem
|
||||
# Require zone-info data provided by tzdata-java sub-package
|
||||
# 2022g required as of JDK-8297804
|
||||
Requires: tzdata-java >= 2022g
|
||||
# 2023c required as of JDK-8305113
|
||||
Requires: tzdata-java >= 2023c
|
||||
# for support of kernel stream control
|
||||
# libsctp.so.1 is being `dlopen`ed on demand
|
||||
Requires: lksctp-tools%{?_isa}
|
||||
@ -1263,6 +1266,8 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
|
||||
Name: java-%{javaver}-%{origin}
|
||||
Version: %{newjavaver}.%{buildver}
|
||||
Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
|
||||
# Equivalent for the portable build
|
||||
%global prelease %{?eaprefix}%{portablerelease}%{?extraver}
|
||||
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
|
||||
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
|
||||
# also included the epoch in their virtual provides. This created a
|
||||
@ -1298,7 +1303,7 @@ License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv
|
||||
URL: http://openjdk.java.net/
|
||||
|
||||
# The source tarball, generated using generate_source_tarball.sh
|
||||
Source0: https://openjdk-sources.osci.io/openjdk%{featurever}/openjdk-jdk%{featurever}u-%{vcstag}.tar.xz
|
||||
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).
|
||||
@ -1334,14 +1339,14 @@ Source19: README.md
|
||||
Source20: java-%{featurever}-openjdk-portable.specfile
|
||||
|
||||
# Setup variables to reference correct sources
|
||||
%global releasezip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.unstripped.jdk.%{_arch}.tar.xz
|
||||
%global staticlibzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.static-libs.%{_arch}.tar.xz
|
||||
%global docszip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.docs.%{_arch}.tar.xz
|
||||
%global misczip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.misc.%{_arch}.tar.xz
|
||||
%global slowdebugzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.slowdebug.jdk.%{_arch}.tar.xz
|
||||
%global slowdebugstaticlibzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.slowdebug.static-libs.%{_arch}.tar.xz
|
||||
%global fastdebugzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.fastdebug.jdk.%{_arch}.tar.xz
|
||||
%global fastdebugstaticlibzip %{_jvmdir}/%{name}-%{version}-%{portablerelease}.portable.fastdebug.static-libs.%{_arch}.tar.xz
|
||||
%global releasezip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.unstripped.jdk.%{_arch}.tar.xz
|
||||
%global staticlibzip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.static-libs.%{_arch}.tar.xz
|
||||
%global docszip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.docs.%{_arch}.tar.xz
|
||||
%global misczip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.misc.%{_arch}.tar.xz
|
||||
%global slowdebugzip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.slowdebug.jdk.%{_arch}.tar.xz
|
||||
%global slowdebugstaticlibzip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.slowdebug.static-libs.%{_arch}.tar.xz
|
||||
%global fastdebugzip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.fastdebug.jdk.%{_arch}.tar.xz
|
||||
%global fastdebugstaticlibzip %{_jvmdir}/%{name}-%{version}-%{prelease}.portable.fastdebug.static-libs.%{_arch}.tar.xz
|
||||
|
||||
############################################
|
||||
#
|
||||
@ -1443,19 +1448,19 @@ BuildRequires: xorg-x11-proto-devel
|
||||
BuildRequires: zip
|
||||
BuildRequires: javapackages-filesystem
|
||||
%if %{include_normal_build}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-unstripped = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-static-libs = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-unstripped = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-static-libs = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
%endif
|
||||
%if %{include_fastdebug_build}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-devel-fastdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-static-libs-fastdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-devel-fastdebug = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-static-libs-fastdebug = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
%endif
|
||||
%if %{include_debug_build}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-devel-slowdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-static-libs-slowdebug = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-devel-slowdebug = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-static-libs-slowdebug = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
%endif
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-docs = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-misc = %{epoch}:%{version}-%{portablerelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-docs = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
BuildRequires: java-%{featurever}-openjdk-portable-misc = %{epoch}:%{version}-%{prelease}.%{portablesuffix}
|
||||
# Zero-assembler build requirement
|
||||
%ifarch %{zero_arches}
|
||||
BuildRequires: libffi-devel
|
||||
@ -1478,18 +1483,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.12.1
|
||||
# Version in src/java.desktop/share/legal/freetype.md
|
||||
Provides: bundled(freetype) = 2.13.0
|
||||
# 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.2.0
|
||||
# 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
|
||||
Provides: bundled(libpng) = 1.6.37
|
||||
Provides: bundled(libpng) = 1.6.39
|
||||
%endif
|
||||
|
||||
# this is always built, also during debug-only build
|
||||
@ -1877,35 +1882,6 @@ if [ "x${UPSTREAM_EA_DESIGNATOR}" != "x%{ea_designator}" ] ; then
|
||||
exit 17
|
||||
fi
|
||||
|
||||
# Extract systemtap tapsets
|
||||
%if %{with_systemtap}
|
||||
tar --strip-components=1 -x -I xz -f %{SOURCE8}
|
||||
%if %{include_debug_build}
|
||||
cp -r tapset tapset%{debug_suffix}
|
||||
%endif
|
||||
%if %{include_fastdebug_build}
|
||||
cp -r tapset tapset%{fastdebug_suffix}
|
||||
%endif
|
||||
|
||||
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/%{vm_variant}/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
|
||||
done
|
||||
done
|
||||
# systemtap tapsets ends
|
||||
%endif
|
||||
|
||||
# Prepare desktop files
|
||||
# The _X_ syntax indicates variables that are replaced by make upstream
|
||||
# The @X@ syntax indicates variables that are replaced by configure upstream
|
||||
@ -1939,6 +1915,16 @@ function customisejdk() {
|
||||
fi
|
||||
}
|
||||
|
||||
mkdir -p $(dirname %{installoutputdir})
|
||||
|
||||
docdir=%{installoutputdir -- "-docs"}
|
||||
tar -xJf %{docszip}
|
||||
mv java-%{featurever}-openjdk*.docs.* ${docdir}
|
||||
|
||||
miscdir=%{installoutputdir -- "-misc"}
|
||||
tar -xJf %{misczip}
|
||||
mv java-%{featurever}-openjdk*.misc.* ${miscdir}
|
||||
|
||||
for suffix in %{build_loop} ; do
|
||||
|
||||
if [ "x$suffix" = "x" ] ; then
|
||||
@ -1957,17 +1943,32 @@ for suffix in %{build_loop} ; do
|
||||
# TODO: should verify checksums when using packages from buildroot
|
||||
tar -xJf ${jdkzip}
|
||||
tar -xJf ${staticlibzip}
|
||||
mkdir -p $(dirname ${installdir})
|
||||
mv java-%{featurever}-openjdk* ${installdir}
|
||||
|
||||
# Fix build paths in ELF files so it looks like we built them
|
||||
portablenvr="%{name}-%{VERSION}-%{portablerelease}.%{portablesuffix}.%{_arch}"
|
||||
portablenvr="%{name}-%{VERSION}-%{prelease}.%{portablesuffix}.%{_arch}"
|
||||
for file in $(find ${installdir} -type f) ; do
|
||||
if file ${file} | grep -q 'ELF'; then
|
||||
%{debugedit} -b %{portablebuilddir}/${portablenvr} -d $(pwd) -n ${file}
|
||||
fi
|
||||
done
|
||||
|
||||
# Set tapset variables to match this build
|
||||
%if %{with_systemtap}
|
||||
for file in ${miscdir}/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/%{vm_variant}/libjvm.so:g" $file > ${OUTPUT_FILE}
|
||||
# TODO find out which architectures other than i686 have a client vm
|
||||
%ifarch %{ix86}
|
||||
sed -i -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir -- $suffix}/lib/client/libjvm.so:g" ${OUTPUT_FILE}
|
||||
%else
|
||||
sed -i -e "/@ABS_CLIENT_LIBJVM_SO@/d" ${OUTPUT_FILE}
|
||||
%endif
|
||||
sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g" $OUTPUT_FILE
|
||||
sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE
|
||||
done
|
||||
%endif
|
||||
|
||||
# Final setup on the main image
|
||||
customisejdk ${installdir}
|
||||
|
||||
@ -1977,14 +1978,6 @@ for suffix in %{build_loop} ; do
|
||||
# build cycles
|
||||
done # end of release / debug cycle loop
|
||||
|
||||
docdir=%{installoutputdir -- "-docs"}
|
||||
tar -xJf %{docszip}
|
||||
mv java-%{featurever}-openjdk*.docs.* ${docdir}
|
||||
|
||||
miscdir=%{installoutputdir -- "-misc"}
|
||||
tar -xJf %{misczip}
|
||||
mv java-%{featurever}-openjdk*.misc.* ${miscdir}
|
||||
|
||||
%check
|
||||
|
||||
# We test debug first as it will give better diagnostics on a crash
|
||||
@ -2021,7 +2014,7 @@ 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
|
||||
alt_java_binary=${RPM_BUILD_ROOT}%{_bindir}/%{alt_java_versioned}
|
||||
alt_java_binary=$RPM_BUILD_ROOT%{jrebindir -- $suffix}/%{alt_java_name}
|
||||
%ifarch %{ssbd_arches}
|
||||
nm ${alt_java_binary} | grep prctl
|
||||
%else
|
||||
@ -2136,11 +2129,7 @@ for suffix in %{build_loop} ; do
|
||||
jdk_image=$(pwd)/%{installoutputdir -- ${suffix}}
|
||||
# Should match same definitions in build section
|
||||
docdir=$(pwd)/%{installoutputdir -- "-docs"}
|
||||
miscdir=%{installoutputdir -- "-misc"}
|
||||
|
||||
# Install %{alt_java_name} binary versioned
|
||||
install -D -p -m 755 ${miscdir}/%{alt_java_name} \
|
||||
$RPM_BUILD_ROOT%{_bindir}/%{alt_java_versioned}
|
||||
miscdir=$(pwd)/%{installoutputdir -- "-misc"}
|
||||
|
||||
# Install release notes and rebuild instructions
|
||||
commondocdir=${RPM_BUILD_ROOT}%{_defaultdocdir}/%{uniquejavadocdir -- $suffix}
|
||||
@ -2151,14 +2140,13 @@ cp -a %{SOURCE19} %{SOURCE20} ${commondocdir}
|
||||
# Install the jdk
|
||||
mkdir -p $RPM_BUILD_ROOT%{_jvmdir}
|
||||
cp -a ${jdk_image} $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
|
||||
|
||||
pushd ${jdk_image}
|
||||
# Install %{alt_java_name} binary
|
||||
install -D -p -m 755 ${miscdir}/%{alt_java_name} $RPM_BUILD_ROOT%{jrebindir -- $suffix}
|
||||
|
||||
%if %{with_systemtap}
|
||||
# Install systemtap support files
|
||||
install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
|
||||
# note, that uniquesuffix is in BUILD dir in this case
|
||||
cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
|
||||
cp -a ${miscdir}/tapset$suffix/*.stp $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
|
||||
pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
|
||||
tapsetFiles=`ls *.stp`
|
||||
popd
|
||||
@ -2183,6 +2171,7 @@ pushd ${jdk_image}
|
||||
|
||||
# Install man pages
|
||||
install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
|
||||
pushd ${jdk_image}
|
||||
for manpage in man/man1/*
|
||||
do
|
||||
# Convert man pages to UTF8 encoding
|
||||
@ -2193,8 +2182,7 @@ pushd ${jdk_image}
|
||||
done
|
||||
# Remove man pages from jdk image
|
||||
rm -rf $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/man
|
||||
|
||||
popd
|
||||
popd
|
||||
|
||||
if ! echo $suffix | grep -q "debug" ; then
|
||||
# Install Javadoc documentation
|
||||
@ -2489,6 +2477,42 @@ require "copy_jdk_configs.lua"
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 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
|
||||
- Sync the copy of the portable specfile with the latest update
|
||||
- Update openjdk_news script to specify subdirectory last
|
||||
- Add missing discover_trees script required by openjdk_news
|
||||
- Synchronise bundled versions with 21u sources (FreeType, LCMS, HarfBuzz, libpng)
|
||||
- Sync generate_tarball.sh with 11u & 17u version
|
||||
- Update bug URL for RHEL to point to the Red Hat customer portal
|
||||
- Fix upstream release URL for OpenJDK source
|
||||
- Following JDK-8005165, class data sharing can be enabled on all JIT architectures
|
||||
- Use tapsets from the misc tarball
|
||||
- Introduce 'prelease' for the portable release versioning, to handle EA builds
|
||||
- Make sure root installation directory is created first
|
||||
- Use in-place substitution for all but the first of the tapset changes
|
||||
- Synchronise runtime and buildtime tzdata requirements
|
||||
- Remove ghosts for binaries not in java-21-openjdk (pack200, rmid, unpack200)
|
||||
- Add missing jfr, jpackage and jwebserver alternative ghosts
|
||||
- Move jcmd to the headless package
|
||||
- Revert alt-java binary location to being within the JDK tree
|
||||
- Resolves: RHEL-12996
|
||||
- Resolves: RHEL-14951
|
||||
- Resolves: RHEL-13924
|
||||
- Resolves: RHEL-14955
|
||||
- Related: RHEL-14943
|
||||
- Resolves: RHEL-11322
|
||||
- Resolves: RHEL-14949
|
||||
|
||||
* Fri Oct 27 2023 Jiri Vanek <jvanek@redhat.com> - 1:21.0.1.0.12-1
|
||||
- Exclude classes_nocoops.jsa on i686 and arm32
|
||||
- Related: RHEL-14943
|
||||
|
||||
* Fri Oct 27 2023 Severin Gehwolf <sgehwolf@redhat.com> - 1:21.0.1.0.12-1
|
||||
- Fix packaging of CDS archives
|
||||
- Resolves: RHEL-14943
|
||||
|
||||
* Thu Aug 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-2
|
||||
- Update documentation (README.md)
|
||||
- Replace alt-java patch with a binary separate from the JDK
|
||||
|
@ -18,8 +18,8 @@
|
||||
|
||||
OLD_RELEASE=$1
|
||||
NEW_RELEASE=$2
|
||||
SUBDIR=$3
|
||||
REPO=$4
|
||||
REPO=$3
|
||||
SUBDIR=$4
|
||||
SCRIPT_DIR=$(dirname ${0})
|
||||
|
||||
if test "x${SUBDIR}" = "x"; then
|
||||
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
|
||||
SHA512 (openjdk-jdk21u-jdk-21+35.tar.xz) = 311e954cc8d28a336b85efc05baade8945fe5292ae2d91cc7ff71c6b3a1830b1a4b9fc641f87e68a4b3db175eb5c21a18664457715da9b37720c5d4b3eb67195
|
||||
SHA512 (openjdk-21.0.1+12.tar.xz) = fe722867334c1aed1f4cd9825fe6dc747b33e0e41c9986cacba46b1ee6d3f059bac87c62e299ea5ef5ef64b3c404c43a572b487bb66f024c6cc997176ee0a910
|
||||
|
Loading…
Reference in New Issue
Block a user