Compare commits

..

44 Commits
a8 ... c9s

Author SHA1 Message Date
Andrew Hughes
1373f85492 Add missing section headers in NEWS
Related: RHEL-47023
2024-09-21 00:01:03 +01:00
Andrew Hughes
1da4a20951 Sync the copy of the portable specfile with the latest update
Related: RHEL-47023
2024-09-20 23:58:10 +01:00
Andrew Hughes
521da0f35b Update to jdk-21.0.4+7 (GA)
Update release notes to 21.0.4+7
Switch to GA mode.

** This tarball is embargoed until 2024-07-16 @ 1pm PT. **

Resolves: RHEL-47023
2024-09-20 23:55:44 +01:00
Andrew Hughes
6fc84e43ba Actually require tzdata 2024a now it is available in the buildroot
Related: RHEL-30947
2024-09-20 23:44:43 +01:00
Andrew Hughes
42aa82f6d9 Limit Java only tests to one architecture using jdk_test_arch
Resolves: RHEL-47395
2024-09-20 23:41:30 +01:00
Andrew Hughes
d0355d7b64 Update to jdk-21.0.4+5 (EA)
Update release notes to 21.0.4+5

Resolves: RHEL-45355
2024-09-20 23:28:48 +01:00
Andrew Hughes
794ab54312 Sync the copy of the portable specfile with the latest update
Related: RHEL-45355
2024-09-20 23:28:08 +01:00
Andrew Hughes
55fd4a01af Restore NEWS file so portable can be rebuilt
Resolves: RHEL-46029
2024-09-20 23:26:30 +01:00
Andrew Hughes
0586057410 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

Related: RHEL-45355
2024-09-20 23:21:12 +01:00
Andrew Hughes
bb246828ec Sync the copy of the portable specfile with the latest update
Related: RHEL-32424
Related: RHEL-30946
2024-08-02 21:58:07 +01:00
Andrew Hughes
8a3e0956db Update to jdk-21.0.3+9 (GA)
- Update release notes to 21.0.3+9
- Switch to GA mode.

** This tarball is embargoed until 2024-04-16 @ 1pm PT. **

Resolves: RHEL-32424
2024-08-02 21:58:04 +01:00
Andrew Hughes
4dfc5acfc8 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

Resolves: RHEL-30946
2024-08-02 21:58:01 +01:00
Andrew Hughes
87737cc6b9 generate_source_tarball.sh: Double-quote DEPTH reference (SC2086)
- generate_source_tarball.sh: Avoid empty DEPTH reference while still appeasing shellcheck

Related: RHEL-30946
2024-08-02 21:57:46 +01:00
Andrew Hughes
3d3d43cc4b generate_source_tarball.sh: Output values of new options WITH_TEMP and OPENJDK_LATEST
Related: RHEL-30946
2024-08-02 21:40:57 +01:00
Andrew Hughes
5a64784bdd Fix maintenance scripts to pass shellcheck
- 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)

Related: RHEL-30946
2024-08-02 21:40:52 +01:00
Andrew Hughes
af5f67c762 Move maintenance scripts to a scripts subdirectory
Related: RHEL-30946
2024-08-02 21:40:46 +01:00
Andrew Hughes
90c520ab5f generate_source_tarball.sh: Only add --depth=1 on non-local repositories
Related: RHEL-30946
2024-08-02 21:40:42 +01:00
Andrew Hughes
67e13eada0 generate_source_tarball.sh: Add indentation instructions for Emacs
Related: RHEL-30946
2024-08-02 21:40:30 +01:00
Andrew Hughes
6ad22762db generate_source_tarball.sh: Create directory in TMPDIR when using WITH_TEMP
Related: RHEL-30946
2024-08-02 21:40:24 +01:00
Andrew Hughes
21d6c4e2e2 generate_source_tarball.sh: Cleanup message issued when checkout already exists
Related: RHEL-30946
2024-08-02 21:40:20 +01:00
Andrew Hughes
6b0c2f3cd8 generate_source_tarball.sh: Add license
Related: RHEL-30946
2024-08-02 21:40:15 +01:00
Andrew Hughes
bba43d2310 generate_source_tarball.sh: Update examples in header for clarity
Related: RHEL-30946
2024-08-02 21:40:12 +01:00
Thomas Fitzsimmons
a97516ad23 generate_source_tarball.sh: Use long-style argument to grep
Related: RHEL-30946
2024-08-02 21:40:08 +01:00
Thomas Fitzsimmons
3e53a21aff generate_source_tarball.sh: Remove trailing period in echo
Related: RHEL-30946
2024-08-02 21:40:05 +01:00
Thomas Fitzsimmons
c30782ba7c generate_source_tarball.sh: Fix whitespace
Related: RHEL-30946
2024-08-02 21:40:01 +01:00
Thomas Fitzsimmons
1f3242fb02 generate_source_tarball.sh: Ignore -ga tags with OPENJDK_LATEST
Related: RHEL-30946
2024-08-02 21:39:56 +01:00
Andrew Hughes
71c35cc1e4 Use backward-compatible patch syntax
Related: RHEL-30946
2024-08-02 21:39:53 +01:00
Andrew Hughes
31ea1e8cdf Fix shellcheck issues with generate_source_tarball.sh
- 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)

Related: RHEL-30946
2024-08-02 21:39:48 +01:00
Andrew Hughes
f3802e52a4 Make source tarballs reproducible and support construction in a temporary directory.
- 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

Related: RHEL-30946
2024-08-02 21:39:42 +01:00
Andrew Hughes
5fd92f9c5d Install alt-java man page from the misc tarball as it is no longer in the JDK image
Related: RHEL-30946
2024-08-02 21:39:38 +01:00
Andrew Hughes
48fc0fd7e9 Invoke xz in multi-threaded mode
Related: RHEL-30946
2024-08-02 21:39:35 +01:00
Andrew Hughes
cd7883c7b1 Bump rpmrelease for next build
Related: RHEL-30946
2024-08-02 21:39:30 +01:00
Andrew Hughes
db8c14c5de 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 local inclusion of JDK-8322725
Bump FreeType version to 2.13.2 following JDK-8316028

Related: RHEL-30946
2024-08-02 21:37:21 +01:00
Andrew Hughes
738cf78b0a Define portablesuffix according to whether pkgos is defined or not
Place the pkgos definition high enough that it is usable by portablesuffix.

Related: RHEL-30946
2024-07-25 01:20:21 +01:00
Andrew Hughes
5b22e08152 Update to jdk-21.0.2+13 (GA)
Sync the copy of the portable specfile with the latest update
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

** This tarball is embargoed until 2024-01-16 @ 1pm PT. **

Resolves: RHEL-20999
2024-07-25 01:20:12 +01:00
Andrew Hughes
6812daac8f Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x
Sync the copy of the portable specfile with the latest update

Resolves: RHEL-16290
2024-07-25 00:26:25 +01:00
Andrew Hughes
7b175be3b3 Define pkgnameroot to simplify build requirements and allow '-rhel7' suffix on RHEL
Related: RHEL-12998
2024-07-24 23:23:15 +01:00
Andrew Hughes
b06f70935c 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-12998
Resolves: RHEL-14953
Resolves: RHEL-13925
Resolves: RHEL-14957
Resolves: RHEL-14945
Resolves: RHEL-11321
Resolves: RHEL-14947
2024-07-24 23:22:14 +01:00
Andrew Hughes
5082fb0d28 Patch and documentation cleanup
Update documentation (README.md)
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 & RH1648644 patches 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
Adapt alt-java test to new binary where there is always a set_speculation function

Related: RHEL-12998
2024-07-24 23:21:06 +01:00
Andrew Hughes
b426381567 Update to jdk-21.0.0+35
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
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
Install jaxp.properties introduced by JDK-8303530
Install lible.so introduced by JDK-8306983

Related: RHEL-12998
Resolves: RHEL-41087
2024-07-24 15:53:27 +01:00
Andrew Hughes
83fc55cc6b 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
Update generate_tarball.sh ICEDTEA_VERSION
Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream
Adapted rh1750419-redhat_alt_java.patch

Related: RHEL-12998
2024-06-24 18:34:23 +01:00
Andrew Hughes
871f5e0737 Update to jdk-19.0.2 release
Update release notes to 19.0.2
Rebase FIPS patches from fips-19u branch
Remove references to sample directory removed by JDK-8284999
Add local patch JDK-8295447 (javac NPE) which was accepted into 19u upstream but not in the GA tag
Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases

Related: RHEL-12998
2024-06-07 17:14:08 +01:00
Andrew Hughes
d9723ba601 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
Rebase FIPS patches from fips-18u branch
Rebase RH1648249 nss.cfg patch so it applies after the FIPS patch
Drop now unused fresh_libjvm, build_hotspot_first and bootjdk variables, as we don't build a JDK here
Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21
Disable tzdata tests until we are on the latest JDK and things are back in sync
Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
Add new slave jwebserver and corresponding manpage
Add javaver- and origin-specific javadoc and javadoczip alternatives.
Use empty nss.fips.cfg until it is again available via the FIPS patch

Related: RHEL-12998
2024-05-31 18:23:08 +01:00
Andrew Hughes
64d1908992 Set portablerelease and portablerhel to use the CentOS 9 build
Related: RHEL-12998
2024-05-11 01:35:24 +01:00
23 changed files with 1045 additions and 237 deletions

25
.gitignore vendored
View File

@ -1,2 +1,23 @@
SOURCES/openjdk-21.0.4+7.tar.xz /openjdk-jdk17u-jdk-17.0.7+7.tar.xz
SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz /tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz
/openjdk-jdk18u-jdk-18.0.1+0.tar.xz
/openjdk-jdk18u-jdk-18.0.1+10.tar.xz
/openjdk-jdk18u-jdk-18.0.1.1+2.tar.xz
/openjdk-jdk18u-jdk-18.0.2+9.tar.xz
/openjdk-jdk19u-jdk-19+36.tar.xz
/openjdk-jdk19u-jdk-19.0.1+10.tar.xz
/openjdk-jdk19u-jdk-19.0.2+7.tar.xz
/openjdk-jdk20u-jdk-20+36.tar.xz
/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
/openjdk-21.0.2+11.tar.xz
/openjdk-21.0.2+12.tar.xz
/openjdk-21.0.2+13.tar.xz
/openjdk-21.0.3+1-ea.tar.xz
/openjdk-21.0.3+7-ea.tar.xz
/openjdk-21.0.3+9.tar.xz
/openjdk-21.0.4+1-ea.tar.xz
/openjdk-21.0.4+5-ea.tar.xz
/openjdk-21.0.4+7.tar.xz

View File

@ -1,2 +0,0 @@
83148f1aa3a0f2fe1d4d5d98ee49c4849a2c8b7c SOURCES/openjdk-21.0.4+7.tar.xz
c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz

View File

7
gating.yaml Normal file
View File

@ -0,0 +1,7 @@
# recipients: java-qa
--- !Policy
product_versions:
- rhel-9
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}

View File

@ -30,7 +30,9 @@
# This is RHEL 7 specific as it doesn't seem to have the # This is RHEL 7 specific as it doesn't seem to have the
# __brp_strip_static_archive macro. # __brp_strip_static_archive macro.
%if 0%{?rhel} == 7
%define __os_install_post %{nil} %define __os_install_post %{nil}
%endif
# Workaround for stripping of debug symbols from static libraries # Workaround for stripping of debug symbols from static libraries
%if %{with staticlibs} %if %{with staticlibs}
@ -55,6 +57,10 @@
# See: https://bugzilla.redhat.com/show_bug.cgi?id=1520879 # See: https://bugzilla.redhat.com/show_bug.cgi?id=1520879
%global _find_debuginfo_opts -g %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 # 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 # 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: # see the difference between global and define:
@ -141,7 +147,7 @@
%global zgc_arches x86_64 %global zgc_arches x86_64
# Set of architectures for which alt-java has SSB mitigation # Set of architectures for which alt-java has SSB mitigation
%global ssbd_arches x86_64 %global ssbd_arches x86_64
# Set of architectures for which java has short vector math library (libsvml.so) # Set of architectures for which java has short vector math library (libjsvml.so)
%global svml_arches x86_64 %global svml_arches x86_64
# Set of architectures where we verify backtraces with gdb # Set of architectures where we verify backtraces with gdb
# s390x fails on RHEL 7 so we exclude it there # s390x fails on RHEL 7 so we exclude it there
@ -152,6 +158,11 @@
%endif %endif
# Architecture on which we run Java only tests # Architecture on which we run Java only tests
%global jdk_test_arch x86_64 %global jdk_test_arch x86_64
# Set of architectures for which we have a devkit
# Only used on RHEL
%if 0%{?centos} == 0
%global devkit_arches %{aarch64} %{ppc64le} s390x x86_64
%endif
# By default, we build a slowdebug build during main build on JIT architectures # By default, we build a slowdebug build during main build on JIT architectures
%if %{with slowdebug} %if %{with slowdebug}
@ -232,11 +243,9 @@
%global hotspot_target hotspot %global hotspot_target hotspot
# DTS toolset to use to provide gcc & binutils # DTS toolset to use to provide gcc & binutils
%if 0%{?rhel} == 7
%global dtsversion 10 %global dtsversion 10
%endif
# 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 # 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 -O flags so that the optimization of HotSpot is not lowered from O3 to O2
@ -332,7 +341,7 @@
%global lts_designator_zip "" %global lts_designator_zip ""
%endif %endif
# JDK to use for bootstrapping # JDK to use for bootstrapping
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk %global bootjdk /usr/lib/jvm/java-%{featurever}-openjdk
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so # 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 # This will only work where the bootstrap JDK is the same major version
# as the JDK being built # as the JDK being built
@ -485,6 +494,7 @@
%define jrebindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin} %define jrebindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
%global alt_java_name alt-java %global alt_java_name alt-java
%global devkit_name %{origin}-devkit
%global rpm_state_dir %{_localstatedir}/lib/rpm-state/ %global rpm_state_dir %{_localstatedir}/lib/rpm-state/
@ -519,10 +529,19 @@
# Prevent brp-java-repack-jars from being run # Prevent brp-java-repack-jars from being run
%global __jar_repack 0 %global __jar_repack 0
# Define the architectures on which we build
ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64 # Define an optional suffix for the OS this package is built on
# Define the OS this package is built on %if 0%{?rhel} == 7
%global pkgos rhel7 %global pkgos rhel7
%endif
# Define the architectures on which we build
# On RHEL, this should be the architectures with a devkit
%if 0%{?centos} == 0
ExclusiveArch: %{devkit_arches}
%else
ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64
%endif
Name: java-%{javaver}-%{origin}-portable%{?pkgos:-%{pkgos}} Name: java-%{javaver}-%{origin}-portable%{?pkgos:-%{pkgos}}
Version: %{newjavaver}.%{buildver} Version: %{newjavaver}.%{buildver}
@ -538,11 +557,6 @@ Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0". # provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
Epoch: 1 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 Summary: %{origin_nice} %{featurever} Runtime Environment portable edition
# Groups are only used up to RHEL 8 and on Fedora versions prior to F30 # 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) %if (0%{?rhel} > 0 && 0%{?rhel} <= 8) || (0%{?fedora} >= 0 && 0%{?fedora} < 30)
@ -607,7 +621,6 @@ Source18: TestTranslations.java
# RPM/distribution specific patches # RPM/distribution specific patches
# #
############################################ ############################################
# Crypto policy and FIPS support 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 # 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 # as follows: git diff %%{vcstag} src make test > fips-21u-$(git show -s --format=%h HEAD).patch
@ -660,6 +673,8 @@ Patch1001: fips-%{featurever}u-%{fipsver}.patch
# #
############################################# #############################################
# Currently empty
############################################# #############################################
# #
# Portable build specific patches # Portable build specific patches
@ -678,9 +693,19 @@ BuildRequires: desktop-file-utils
BuildRequires: elfutils-devel BuildRequires: elfutils-devel
BuildRequires: file BuildRequires: file
BuildRequires: fontconfig-devel BuildRequires: fontconfig-devel
# RHEL 7 builds obtain a newer compiler from DTS
%if 0%{?rhel} == 7
BuildRequires: devtoolset-%{dtsversion}-gcc BuildRequires: devtoolset-%{dtsversion}-gcc
BuildRequires: devtoolset-%{dtsversion}-gcc-c++ BuildRequires: devtoolset-%{dtsversion}-gcc-c++
%else
%ifarch %{devkit_arches}
BuildRequires: %{devkit_name} >= 1.0-6
%else
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
BuildRequires: gcc-c++ BuildRequires: gcc-c++
%endif
%endif
BuildRequires: gdb BuildRequires: gdb
BuildRequires: libxslt BuildRequires: libxslt
BuildRequires: libX11-devel BuildRequires: libX11-devel
@ -693,7 +718,7 @@ BuildRequires: libXtst-devel
# Requirement for setting up nss.fips.cfg # Requirement for setting up nss.fips.cfg
BuildRequires: nss-devel BuildRequires: nss-devel
# Requirement for system security property test # Requirement for system security property test
# N/A for portable. RHEL7 doesn't provide them # N/A for portable as we don't enable support for them
#BuildRequires: crypto-policies #BuildRequires: crypto-policies
BuildRequires: pkgconfig BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel BuildRequires: xorg-x11-proto-devel
@ -701,22 +726,20 @@ BuildRequires: zip
# to pack portable tarballs # to pack portable tarballs
BuildRequires: tar BuildRequires: tar
BuildRequires: unzip BuildRequires: unzip
BuildRequires: javapackages-tools BuildRequires: javapackages-filesystem
BuildRequires: java-%{buildjdkver}-%{origin}%{?pkgos:-%{pkgos}}-devel BuildRequires: java-%{featurever}-%{origin}%{?pkgos:-%{pkgos}}-devel
# Zero-assembler build requirement # Zero-assembler build requirement
%ifarch %{zero_arches} %ifarch %{zero_arches}
BuildRequires: libffi-devel BuildRequires: libffi-devel
%endif %endif
# Full documentation build requirements # Full documentation build requirements
# pandoc is not available on RHEL 7 # pandoc is only available on RHEL/CentOS 8
%if 0%{?rhel} >= 8 %if 0%{?rhel} == 8
BuildRequires: graphviz BuildRequires: graphviz
BuildRequires: pandoc BuildRequires: pandoc
%endif %endif
# cacerts build requirement in portable mode # cacerts build requirement in portable mode
BuildRequires: ca-certificates BuildRequires: ca-certificates
# Earlier versions have a bug in tree vectorization on PPC
BuildRequires: gcc >= 4.8.3-8
%if %{with_systemtap} %if %{with_systemtap}
BuildRequires: systemtap-sdt-devel BuildRequires: systemtap-sdt-devel
@ -747,8 +770,10 @@ Provides: bundled(libpng) = 1.6.40
# Version in src/java.base/share/native/libzip/zlib/zlib.h # Version in src/java.base/share/native/libzip/zlib/zlib.h
Provides: bundled(zlib) = 1.3.1 Provides: bundled(zlib) = 1.3.1
# We link statically against libstdc++ to increase portability # We link statically against libstdc++ to increase portability
%ifnarch %{devkit_arches}
BuildRequires: libstdc++-static BuildRequires: libstdc++-static
%endif %endif
%endif
# this is always built, also during debug-only build # this is always built, also during debug-only build
# when it is built in debug-only this package is just placeholder # when it is built in debug-only this package is just placeholder
@ -891,12 +916,13 @@ The %{origin_nice} %{featurever} miscellany.
%prep %prep
echo "Preparing %{oj_vendor_version}" echo "Preparing %{oj_vendor_version}"
echo "System is RHEL=%{?rhel}%{!?rhel:0}, CentOS=%{?centos}%{!?centos:0}, EPEL=%{?epel}%{!?epel:0}, Fedora=%{?fedora}%{!?fedora:0}"
# Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-( # Using the echo macro breaks rpmdev-bumpspec, as it parses the first line of stdout :-(
%if 0%{?_build_cpu:1} %if 0%{?stapinstall:1}
echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{_build_cpu}" echo "CPU: %{_target_cpu}, arch install directory: %{archinstall}, SystemTap install directory: %{stapinstall}"
%else %else
%{error:Unrecognised architecture %{_build_cpu}} %{error:Unrecognised architecture %{_target_cpu}}
%endif %endif
if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
@ -1005,8 +1031,24 @@ done
# Prepare desktop files # Prepare desktop files
# Portables do not have desktop integration # Portables do not have desktop integration
%build # 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
%if 0%{?centos} > 0
echo "No devkit for CentOS %{?centos}"
%else
echo "No devkit for %{_target_cpu} on RHEL %{?rhel}";
%endif
%endif
%build
# How many CPU's do we have? # How many CPU's do we have?
export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :) export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
export NUM_PROC=${NUM_PROC:-1} export NUM_PROC=${NUM_PROC:-1}
@ -1038,6 +1080,12 @@ 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_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|')" EXTRA_CPP_FLAGS="$(echo ${EXTRA_CPP_FLAGS} | sed -e 's|-mstackrealign|-mincoming-stack-boundary=2 -mpreferred-stack-boundary=4|')"
%endif %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 export EXTRA_CFLAGS EXTRA_CPP_FLAGS
# Set modification times (mtimes) of files within JAR files generated # Set modification times (mtimes) of files within JAR files generated
@ -1085,16 +1133,6 @@ export EXTRA_CFLAGS EXTRA_CPP_FLAGS
VERSION_FILE="$(pwd)"/"%{top_level_dir_name}"/make/conf/version-numbers.conf VERSION_FILE="$(pwd)"/"%{top_level_dir_name}"/make/conf/version-numbers.conf
OPENJDK_UPSTREAM_TAG_EPOCH="$(stat --format=%Y "${VERSION_FILE}")" 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() { function buildjdk() {
local outputdir=${1} local outputdir=${1}
local buildjdk=${2} local buildjdk=${2}
@ -1102,10 +1140,16 @@ function buildjdk() {
local debuglevel=${4} local debuglevel=${4}
local link_opt=${5} local link_opt=${5}
local debug_symbols=${6} local debug_symbols=${6}
local devkit=${7}
local top_dir_abs_src_path=$(pwd)/%{top_level_dir_name} local top_dir_abs_src_path=$(pwd)/%{top_level_dir_name}
local top_dir_abs_build_path=$(pwd)/${outputdir} 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 # This must be set using the global, so that the
# static libraries still use a dynamic stdc++lib # static libraries still use a dynamic stdc++lib
if [ "x%{link_type}" = "xbundled" ] ; then if [ "x%{link_type}" = "xbundled" ] ; then
@ -1113,6 +1157,7 @@ function buildjdk() {
else else
libc_link_opt="dynamic"; libc_link_opt="dynamic";
fi fi
%endif
echo "Using output directory: ${outputdir}"; echo "Using output directory: ${outputdir}";
echo "Checking build JDK ${buildjdk} is operational..." echo "Checking build JDK ${buildjdk} is operational..."
@ -1123,6 +1168,11 @@ function buildjdk() {
echo "Using debug_symbols: ${debug_symbols}" echo "Using debug_symbols: ${debug_symbols}"
echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}" echo "Building %{newjavaver}-%{buildver}, pre=%{ea_designator}, opt=%{lts_designator}"
%ifarch %{devkit_arches}
LIBPATH="${devkit}/lib:${devkit}/lib64"
echo "Setting library path to ${LIBPATH}"
%endif
mkdir -p ${outputdir} mkdir -p ${outputdir}
pushd ${outputdir} pushd ${outputdir}
@ -1130,19 +1180,23 @@ function buildjdk() {
# rather than ${link_opt} as the system versions # rather than ${link_opt} as the system versions
# are always used in a system_libs build, even # are always used in a system_libs build, even
# for the static library build # for the static library build
scl enable devtoolset-%{dtsversion} "bash ${top_dir_abs_src_path}/configure \ LD_LIBRARY_PATH=${LIBPATH} \
bash ${top_dir_abs_src_path}/configure \
%ifarch %{zero_arches} %ifarch %{zero_arches}
--with-jvm-variants=zero \ --with-jvm-variants=zero \
%endif %endif
--with-cacerts-file=`readlink -f %{_sysconfdir}/pki/java/cacerts` \ %ifarch %{devkit_arches}
--with-devkit=${devkit} \
%endif
--with-cacerts-file=$(readlink -f %{_sysconfdir}/pki/java/cacerts) \
--with-version-build=%{buildver} \ --with-version-build=%{buildver} \
--with-version-pre=\"%{ea_designator}\" \ --with-version-pre="%{ea_designator}" \
--with-version-opt=\"%{lts_designator}\" \ --with-version-opt="%{lts_designator}" \
--with-vendor-version-string=\"%{oj_vendor_version}\" \ --with-vendor-version-string="%{oj_vendor_version}" \
--with-vendor-name=\"%{oj_vendor}\" \ --with-vendor-name="%{oj_vendor}" \
--with-vendor-url=\"%{oj_vendor_url}\" \ --with-vendor-url="%{oj_vendor_url}" \
--with-vendor-bug-url=\"%{oj_vendor_bug_url}\" \ --with-vendor-bug-url="%{oj_vendor_bug_url}" \
--with-vendor-vm-bug-url=\"%{oj_vendor_bug_url}\" \ --with-vendor-vm-bug-url="%{oj_vendor_bug_url}" \
--with-boot-jdk=${buildjdk} \ --with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \ --with-debug-level=${debuglevel} \
--with-native-debug-symbols="${debug_symbols}" \ --with-native-debug-symbols="${debug_symbols}" \
@ -1156,25 +1210,28 @@ function buildjdk() {
--with-lcms=${link_opt} \ --with-lcms=${link_opt} \
--with-harfbuzz=${link_opt} \ --with-harfbuzz=${link_opt} \
--with-stdc++lib=${libc_link_opt} \ --with-stdc++lib=${libc_link_opt} \
--with-extra-cxxflags=\"$EXTRA_CPP_FLAGS\" \ --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
--with-extra-cflags=\"$EXTRA_CFLAGS\" \ --with-extra-cflags="$EXTRA_CFLAGS" \
--with-extra-ldflags=\"%{ourldflags}\" \ --with-extra-ldflags="%{ourldflags}" \
--with-num-cores=\"$NUM_PROC\" \ --with-num-cores="$NUM_PROC" \
--with-source-date=\"version\" \ --with-source-date="version" \
--disable-javac-server \ --disable-javac-server \
%ifarch %{zgc_arches} %ifarch %{zgc_arches}
--with-jvm-features=zgc \ --with-jvm-features=zgc \
%endif %endif
--disable-warnings-as-errors" --disable-warnings-as-errors
cat spec.gmk cat spec.gmk
scl enable devtoolset-%{dtsversion} "make LOG=trace $maketargets || \ LD_LIBRARY_PATH=${LIBPATH} \
( pwd; find ${top_dir_abs_src_path} ${top_dir_abs_build_path} -name \"hs_err_pid*.log\" | xargs cat && false )" 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 popd
} }
function stripjdk() { function stripjdk() {
local outputdir=${1} local outputdir=${1}
local toolpath=${2}
local jdkimagepath=images/%{jdkimage} local jdkimagepath=images/%{jdkimage}
local jreimagepath=images/%{jreimage} local jreimagepath=images/%{jreimage}
local jmodimagepath=images/jmods local jmodimagepath=images/jmods
@ -1184,6 +1241,14 @@ function stripjdk() {
local jdkoutdir=${outputdir}/${jdkimagepath} local jdkoutdir=${outputdir}/${jdkimagepath}
local jreoutdir=${outputdir}/${jreimagepath} local jreoutdir=${outputdir}/${jreimagepath}
%ifarch %{devkit_arches}
OBJCOPY=${toolpath}/objcopy
STRIP=${toolpath}/strip
%else
OBJCOPY=$(which objcopy)
STRIP=$(which strip)
%endif
if [ "x$suffix" = "x" ] ; then if [ "x$suffix" = "x" ] ; then
# Keep the unstripped version for consumption by RHEL RPMs # Keep the unstripped version for consumption by RHEL RPMs
cp -a ${jdkoutdir}{,.unstripped} cp -a ${jdkoutdir}{,.unstripped}
@ -1192,9 +1257,9 @@ function stripjdk() {
for file in $(find ${jdkoutdir} ${jreoutdir} ${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 if file ${file} | cut -d ':' -f 2 | grep -q 'ELF'; then
noextfile=${file/.so/}; noextfile=${file/.so/};
scl enable devtoolset-%{dtsversion} "objcopy --only-keep-debug ${file} ${noextfile}.debuginfo"; ${OBJCOPY} --only-keep-debug ${file} ${noextfile}.debuginfo;
scl enable devtoolset-%{dtsversion} "objcopy --add-gnu-debuglink=${noextfile}.debuginfo ${file}"; ${OBJCOPY} --add-gnu-debuglink=${noextfile}.debuginfo ${file};
scl enable devtoolset-%{dtsversion} "strip -g ${file}"; ${STRIP} -g ${file};
fi fi
done done
@ -1465,11 +1530,31 @@ function packagejdk() {
} }
%ifarch %{devkit_arches}
DEVKIT_ROOT=$(pwd)/devkit
source ${DEVKIT_ROOT}/devkit.info
GCC="${DEVKIT_TOOLCHAIN_PATH}/gcc --sysroot=${DEVKIT_SYSROOT}"
LIBPATH="${DEVKIT_ROOT}/lib:${DEVKIT_ROOT}/lib64"
%else
GCC=$(which gcc)
%endif
echo "Building %{SOURCE11}"
mkdir -p %{altjavaoutputdir}
LD_LIBRARY_PATH="${LIBPATH}" ${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}"
%if %{build_hotspot_first} %if %{build_hotspot_first}
# Build a fresh libjvm.so first and use it to bootstrap # 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 cp -LR --preserve=mode,timestamps %{bootjdk} newboot
systemjdk=$(pwd)/newboot systemjdk=$(pwd)/newboot
buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal" buildjdk build/newboot ${systemjdk} %{hotspot_target} "release" "bundled" "internal" ${DEVKIT_ROOT}
mv build/newboot/jdk/lib/%{vm_variant}/libjvm.so newboot/lib/%{vm_variant} mv build/newboot/jdk/lib/%{vm_variant}/libjvm.so newboot/lib/%{vm_variant}
%else %else
systemjdk=%{bootjdk} systemjdk=%{bootjdk}
@ -1512,15 +1597,15 @@ for suffix in %{build_loop} ; do
run_bootstrap=%{bootstrap_build} run_bootstrap=%{bootstrap_build}
fi fi
if ${run_bootstrap} ; then if ${run_bootstrap} ; then
buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} ${debug_symbols} buildjdk ${bootbuilddir} ${systemjdk} "%{bootstrap_targets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT}
installjdk ${bootbuilddir} ${bootinstalldir} installjdk ${bootbuilddir} ${bootinstalldir}
buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} buildjdk ${builddir} $(pwd)/${bootinstalldir}/images/%{jdkimage} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT}
stripjdk ${builddir} stripjdk ${builddir} ${DEVKIT_TOOLCHAIN_PATH}
installjdk ${builddir} ${installdir} installjdk ${builddir} ${installdir}
%{!?with_artifacts:rm -rf ${bootinstalldir}} %{!?with_artifacts:rm -rf ${bootinstalldir}}
else else
buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} buildjdk ${builddir} ${systemjdk} "${maketargets}" ${debugbuild} ${link_opt} ${debug_symbols} ${DEVKIT_ROOT}
stripjdk ${builddir} stripjdk ${builddir} ${DEVKIT_TOOLCHAIN_PATH}
installjdk ${builddir} ${installdir} installjdk ${builddir} ${installdir}
fi fi
packagejdk ${installdir} ${packagesdir} %{altjavaoutputdir} packagejdk ${installdir} ${packagesdir} %{altjavaoutputdir}
@ -1554,6 +1639,22 @@ export JAVA_HOME=${top_dir_abs_main_build_path}/images/%{jdkimage}
#sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \ #sed -i -e "s:^security.useSystemPropertiesFile=.*:security.useSystemPropertiesFile=true:" \
#${JAVA_HOME}/conf/security/java.security #${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 # Check Shenandoah is enabled
%if %{use_shenandoah_hotspot} %if %{use_shenandoah_hotspot}
$JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version $JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -version
@ -1615,14 +1716,14 @@ $JAVA_HOME/bin/java -XX:+UnlockExperimentalVMOptions -XX:+UseShenandoahGC -versi
%endif %endif
# Check java launcher has no SSB mitigation # 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 # Check alt-java launcher has SSB mitigation on supported architectures
# set_speculation function exists in both cases, so check for prctl call # set_speculation function exists in both cases, so check for prctl call
%ifarch %{ssbd_arches} %ifarch %{ssbd_arches}
nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl ${NM} %{altjavaoutputdir}/%{alt_java_name} | grep prctl
%else %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 %endif
%if %{include_staticlibs} %if %{include_staticlibs}
@ -1630,8 +1731,8 @@ if ! nm %{altjavaoutputdir}/%{alt_java_name} | grep prctl ; then true ; else fal
export STATIC_LIBS_HOME=${top_dir_abs_staticlibs_build_path}/images/%{static_libs_image} export STATIC_LIBS_HOME=${top_dir_abs_staticlibs_build_path}/images/%{static_libs_image}
ls -l $STATIC_LIBS_HOME ls -l $STATIC_LIBS_HOME
ls -l $STATIC_LIBS_HOME/lib 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 Inet4AddressImpl.c
readelf --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet6AddressImpl.c ${READELF} --debug-dump $STATIC_LIBS_HOME/lib/libnet.a | grep Inet6AddressImpl.c
%endif %endif
# Release builds strip the debug symbols into external .debuginfo files # Release builds strip the debug symbols into external .debuginfo files
@ -1650,15 +1751,15 @@ do
# Test for .debug_* sections in the shared object. This is the main test # Test for .debug_* sections in the shared object. This is the main test
# Stripped objects will not contain these # Stripped objects will not contain these
eu-readelf -S "$lib" | grep "] .debug_" ${READELF} -S "$lib" | grep "] .debug_"
test $(eu-readelf -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2 test $(${READELF} -S "$lib" | grep -E "\]\ .debug_(info|abbrev)" | wc --lines) == 2
# Test FILE symbols. These will most likely be removed by anything that # Test FILE symbols. These will most likely be removed by anything that
# manipulates symbol tables because it's generally useless. So a nice test # manipulates symbol tables because it's generally useless. So a nice test
# that nothing has messed with symbols # that nothing has messed with symbols
old_IFS="$IFS" old_IFS="$IFS"
IFS=$'\n' IFS=$'\n'
for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT") for line in $(${READELF} -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT")
do do
# We expect to see .cpp and .S files, except for architectures like aarch64 and # We expect to see .cpp and .S files, except for architectures like aarch64 and
# s390 where we expect .o and .oS files # s390 where we expect .o and .oS files
@ -1668,17 +1769,17 @@ do
# If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking
if [ "`basename $lib`" = "libjvm.so" ]; then if [ "`basename $lib`" = "libjvm.so" ]; then
eu-readelf -s "$lib" | \ ${READELF} -s "$lib" | \
grep -E "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$" grep -E "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$"
fi fi
# Test that there are no .gnu_debuglink sections pointing to another # Test that there are no .gnu_debuglink sections pointing to another
# debuginfo file. There shouldn't be any debuginfo files, so the link makes # debuginfo file. There shouldn't be any debuginfo files, so the link makes
# no sense either # no sense either
eu-readelf -S "$lib" | grep 'gnu' ${READELF} -S "$lib" | grep 'gnu'
if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then if ${READELF} -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then
echo "bad .gnu_debuglink section." echo "bad .gnu_debuglink section."
eu-readelf -x .gnu_debuglink "$lib" ${READELF} -x .gnu_debuglink "$lib"
false false
fi fi
fi fi
@ -1690,7 +1791,7 @@ done
# Using line number 1 might cause build problems. See: # 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=1539664
# https://bugzilla.redhat.com/show_bug.cgi?id=1538767 # https://bugzilla.redhat.com/show_bug.cgi?id=1538767
gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out ${GDB} -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
handle SIGSEGV pass nostop noprint handle SIGSEGV pass nostop noprint
handle SIGILL pass nostop noprint handle SIGILL pass nostop noprint
set breakpoint pending on set breakpoint pending on
@ -1841,6 +1942,14 @@ done
- Update to jdk-21.0.4+7 (GA) - Update to jdk-21.0.4+7 (GA)
- Update release notes to 21.0.4+7 - Update release notes to 21.0.4+7
- Switch to GA mode. - Switch to GA mode.
- Sync with RHEL 7 portable build:
- Conditionally define __os_install_post, dtsversion & pkgos only on RHEL 7
- Use ExclusiveArch over ExcludeArch
- Depend on devtoolset only on RHEL 7
- Use javapackages-filesystem rather than manually defining _jvmdir
- Restrict pandoc dependency to RHEL/CentOS 8
- Drop unused component macro
- Sync ExclusiveArch with devkit_arches on RHEL only
- ** This tarball is embargoed until 2024-07-16 @ 1pm PT. ** - ** This tarball is embargoed until 2024-07-16 @ 1pm PT. **
- Resolves: OPENJDK-2756 - Resolves: OPENJDK-2756
- Resolves: OPENJDK-3163 - Resolves: OPENJDK-3163
@ -1850,11 +1959,11 @@ done
- Update release notes to 21.0.4+5 - Update release notes to 21.0.4+5
- Move unstripped, misc and doc tarball handling into normal build / no suffix blocks - Move unstripped, misc and doc tarball handling into normal build / no suffix blocks
- Limit Java only tests to one architecture using jdk_test_arch - Limit Java only tests to one architecture using jdk_test_arch
- Drop unneeded tzdata-java build dependency following 3e3cf8fa2df7bac2f6a60a0ddd596ec39228a3e1 - Drop unneeded tzdata-java build dependency following f854bb3955fb57bba4e83d09813e9cfd0e81079e
- Resolves: OPENJDK-3132 - Resolves: OPENJDK-3133
- Resolves: OPENJDK-3194 - Resolves: OPENJDK-3237
- Resolves: OPENJDK-3181 - Resolves: OPENJDK-3182
- Resolves: OPENJDK-3189 - Resolves: OPENJDK-3190
* Sat Jun 22 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.1-0.1.ea * Sat Jun 22 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.1-0.1.ea
- Update to jdk-21.0.4+1 (EA) - Update to jdk-21.0.4+1 (EA)
@ -1862,26 +1971,15 @@ done
- Switch to EA mode - Switch to EA mode
- Bump LCMS 2 version to 2.16.0 following JDK-8321489 - 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 - Add zlib build requirement or bundled version (1.3.1), depending on system_libs setting
- Resolves: OPENJDK-3060 - Resolves: OPENJDK-3061
- Resolves: OPENJDK-3063 - Resolves: OPENJDK-3064
* Tue Jun 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 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 <fitzsim@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:21.0.3.0.9-1 * Sat Apr 13 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.9-1
- Update to jdk-21.0.3+9 (GA) - Update to jdk-21.0.3+9 (GA)
- Update release notes to 21.0.3+9 - Update release notes to 21.0.3+9
- Switch to GA mode. - Switch to GA mode.
- Change --with-source-date value to 'version' to match Temurin builds - Update buildjdkver to match the featurever
- ** This tarball is embargoed until 2024-04-16 @ 1pm PT. ** - ** This tarball is embargoed until 2024-04-16 @ 1pm PT. **
- Resolves: OPENJDK-2585
* Thu Apr 04 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.7-0.1.ea * Thu Apr 04 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.7-0.1.ea
- Update to jdk-21.0.3+7 (EA) - Update to jdk-21.0.3+7 (EA)
@ -1891,32 +1989,7 @@ done
- Drop JDK-8009550 which is now available upstream - Drop JDK-8009550 which is now available upstream
- Re-generate FIPS patch against 21.0.3+7 following backport of JDK-8325254 - Re-generate FIPS patch against 21.0.3+7 following backport of JDK-8325254
* Thu Mar 21 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.2.ea * Wed Mar 20 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.3.0.1-0.1.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 <fitzsim@redhat.com> - 1:21.0.3.0.1-0.2.ea
- generate_source_tarball.sh: Add WITH_TEMP environment variable - generate_source_tarball.sh: Add WITH_TEMP environment variable
- generate_source_tarball.sh: Multithread xz on all available cores - generate_source_tarball.sh: Multithread xz on all available cores
- generate_source_tarball.sh: Add OPENJDK_LATEST environment variable - generate_source_tarball.sh: Add OPENJDK_LATEST environment variable
@ -1945,54 +2018,83 @@ done
- generate_source_tarball.sh: Add license - generate_source_tarball.sh: Add license
- generate_source_tarball.sh: Add indentation instructions for Emacs - generate_source_tarball.sh: Add indentation instructions for Emacs
- Remove -T0 argument from systemtap tar invocation - Remove -T0 argument from systemtap tar invocation
* Mon Mar 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 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 <fitzsim@redhat.com> - 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 - Use RHEL-7 tar-1.26-compatible invocations for reproducible tarballs
- createtar: Add exclude option
- packagejdk: Exclude debuginfo when creating jdkarchive and jrearchive tarballs
- Resolves: OPENJDK-2995
* Fri Feb 02 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.1.ea * Mon Mar 18 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.1.ea
- Update to jdk-21.0.3+1 (EA) - Update to jdk-21.0.3+1 (EA)
- Update release notes to 21.0.3+1 - Update release notes to 21.0.3+1
- Switch to EA mode - Switch to EA mode
- Require tzdata 2023d due to upstream inclusion of JDK-8322725 - Require tzdata 2023d due to upstream inclusion of JDK-8322725
- Bump FreeType version to 2.13.2 following JDK-8316028 - Bump FreeType version to 2.13.2 following JDK-8316028
- 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
- 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)
- generate_source_tarball.sh: Avoid empty DEPTH reference while still appeasing shellcheck
- Vary reproducible tar creation by version of tar detected
- Set OPENJDK_UPSTREAM_TAG_EPOCH & VERSION_FILE at start of build section as in 17u
- Change --with-source-date value to 'version' to match Temurin builds
- Re-run jlink to regenerate the jmods directory and lib/modules with stripped libraries
- Rebuild CDS archives against the updated lib/modules
- Require openjdk-devkit 1.0-4 to bring in fixes for .comment section and deterministic archives
- Bump devkit requirement to 1.0-5 to bring in the bootstrapped version
- Set LD_LIBRARY_PATH when calling gcc to build alt-java
- Set LD_LIBRARY_PATH when calling configure
- Set LD_LIBRARY_PATH when calling make
- Bump devkit requirement to 1.0-6 to bring in the AS=<path>/as fix
- Resolves: OPENJDK-2820
- Resolves: OPENJDK-2821
- Resolves: OPENJDK-2585
- Resolves: OPENJDK-3138
* Sat Jan 27 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-2 * Fri Mar 15 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-1
- Sync with upstream release notes
* Tue Jan 09 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-1
- Update to jdk-21.0.2+13 (GA) - Update to jdk-21.0.2+13 (GA)
- Update release notes to 21.0.2+13 - 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 <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 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 libpng version to 1.6.40 following JDK-8316030
- Bump HarfBuzz version to 8.2.2 following JDK-8313643 - Bump HarfBuzz version to 8.2.2 following JDK-8313643
- Drop local JDK-8311630 patch which is now upstream - pandoc is only available on RHEL/CentOS 8
- Locally patch versioning to be 21.0.2 released on 2014-01-16 - Check for CentOS being defined to determine use of devkit
- ** This tarball is embargoed until 2024-01-16 @ 1pm PT. ** - Set buildjdkver to 20 until OpenJDK 21 is available in the buildroot
- Use featurever for JDK build dependencies
* Mon Nov 06 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2 * Mon Mar 11 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2
- Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x - 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
- Disable devkit build on CentOS where it is unavailable
- Introduce tar_opts to avoid repetition of lengthy tar creation options
* Sun Oct 29 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-1 * Thu Feb 08 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.1.0.12-2
- Invoke xz in multi-threaded mode
- Remove ppc64le with-jobs=1 workaround
- Make portable tarball modification times reproducible
* 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 to jdk-21.0.1.0+12 (GA)
- Update release notes to 21.0.1.0+12 - Update release notes to 21.0.1.0+12
- Update openjdk_news script to specify subdirectory last - Update openjdk_news script to specify subdirectory last
@ -2002,17 +2104,33 @@ done
- Update bug URL for RHEL to point to the Red Hat customer portal - Update bug URL for RHEL to point to the Red Hat customer portal
- Fix upstream release URL for OpenJDK source - Fix upstream release URL for OpenJDK source
- Update buildjdkver to match the featurever - 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-3224
* 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 - 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 - Fix typo which stops the EA designator being included in the build
- Include tapsets in the miscellaneous tarball - Include tapsets in the miscellaneous tarball
- Drop unused globals for tapset installation - 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
* Sat Oct 28 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-1 * 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
- Adapt alt-java test to new binary where there is always a set_speculation function
- 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 to jdk-21.0.0+35
- Update release notes to 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 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 - Update generate_tarball.sh to sync with upstream vanilla script inc. no more ECC removal
- Drop fakefeaturever now it is no longer needed - Drop fakefeaturever now it is no longer needed
@ -2020,42 +2138,39 @@ done
- Change top_level_dir_name to use the VCS tag, matching new upstream release style tarball - Change top_level_dir_name to use the VCS tag, matching new upstream release style tarball
- Use upstream release URL for OpenJDK source - Use upstream release URL for OpenJDK source
- Re-enable tzdata tests now we are on the latest JDK and things are back in sync - Re-enable tzdata tests now we are on the latest JDK and things are back in sync
- Fix trailing '.' in tarball name - Related: rhbz#2192749
- 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
* Sat Oct 28 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:21.0.0.0.35-1 * 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 - Replace smoke test files used in the staticlibs test, as fdlibm was removed by JDK-8303798
- Related: rhbz#2192749 - Related: rhbz#2192749
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.2.0.9-1.1 * Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.2.0.9-1
- Update to jdk-20.0.2+9 - Update to jdk-20.0.2+9
- Update release notes to 20.0.2+9 - Update release notes to 20.0.2+9
- Update system crypto policy & FIPS patch from new fips-20u tree - Update system crypto policy & FIPS patch from new fips-20u tree
- Update generate_tarball.sh ICEDTEA_VERSION - Update generate_tarball.sh ICEDTEA_VERSION
- Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit) - Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
- Related: rhbz#2192749
* Fri Oct 27 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.0.0.36-1 * Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.2.0.9-1
- Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream - Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream
- Adapted rh1750419-redhat_alt_java.patch - Adapted rh1750419-redhat_alt_java.patch
- Related: rhbz#2192749
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.1.0.10-1 * Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-2
- Bump rpmrelease to rebuild for CentOS 9
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-1
- Update to jdk-19.0.2 release - Update to jdk-19.0.2 release
- Update release notes to 19.0.2 - Update release notes to 19.0.2
- Rebase FIPS patches from fips-19u branch - Rebase FIPS patches from fips-19u branch
- Remove references to sample directory removed by JDK-8284999 - Remove references to sample directory removed by JDK-8284999
- Add local patch JDK-8295447 (javac NPE) which was accepted into 19u upstream but not in the GA tag - Add local patch JDK-8295447 (javac NPE) which was accepted into 19u upstream but not in the GA tag
- Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases - Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases
- Related: rhbz#2192749 - Switch buildjdkver to java-21-openjdk
* Tue Oct 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-1 * Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-2
- Bump rpmrelease to rebuild for CentOS 9
* Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-1
- Update to jdk-18.0.2 release - Update to jdk-18.0.2 release
- Update release notes to actually reflect OpenJDK 18 - 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 - Support JVM variant zero following JDK-8273494 no longer installing Zero's libjvm.so in the server directory
@ -2063,27 +2178,20 @@ done
- Rebase RH1648249 nss.cfg patch so it applies after the FIPS patch - Rebase RH1648249 nss.cfg patch so it applies after the FIPS patch
- Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built - Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built
- Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21 - 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 - 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
* Tue Oct 24 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:18.0.0.0.37-1 * Thu Aug 10 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:18.0.0.0.37-1
- Update to ea version of jdk18 - Update to ea version of jdk18
- Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch - Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
* Tue Aug 22 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2 * Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3
- Define architectures we build on to avoid those without DTS 10 (e.g. s390) - Bump rpmrelease to rebuild for CentOS 9
* Tue Aug 22 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2
- Switch to DTS 10
- Related: rhbz#2192749
* Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2 * Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2
- Create java-21-openjdk-portable package based on java-17-openjdk-portable - Create java-21-openjdk-portable package based on java-17-openjdk-portable
- Related: rhbz#2192749 - Related: rhbz#2192749
* Thu Apr 13 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-1 * Tue Apr 25 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-2
- Update to jdk-17.0.7.0+7 - Update to jdk-17.0.7.0+7
- Update release notes to 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 - Require tzdata 2023c due to local inclusion of JDK-8274864 & JDK-8305113
@ -2096,12 +2204,20 @@ done
- * test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java: fixed jtreg main class - * test/jdk/sun/security/pkcs11/fips/VerifyMissingAttributes.java: fixed jtreg main class
- * RH1940064: Enable XML Signature provider in FIPS mode - * RH1940064: Enable XML Signature provider in FIPS mode
- * RH2173781: Avoid calling C_GetInfo() too early, before cryptoki is initialized - * 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. ** - ** This tarball is embargoed until 2023-04-18 @ 1pm PT. **
- Resolves: rhbz#2185182 - Resolves: rhbz#2185182
- Resolves: rhbz#2134669 - Resolves: rhbz#2134669
- Resolves: rhbz#1940064 - Resolves: rhbz#1940064
- Resolves: rhbz#2173781 - Resolves: rhbz#2173781
* Thu Apr 20 2023 Andrew Hughes <gnu.andrew@redhat.com> - 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 <gnu.andrew@redhat.com> - 1:17.0.6.0.10-6 * Tue Feb 21 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.6.0.10-6
- Add docs, icons and samples to the portable output - Add docs, icons and samples to the portable output
- Make sure generated checksums work and don't include full path - Make sure generated checksums work and don't include full path

View File

@ -146,8 +146,11 @@
%global jdk_test_arch x86_64 %global jdk_test_arch x86_64
# Define the OS the portable JDK is built on # Define the OS the portable JDK is built on
# This is undefined for openjdk-portable-rhel-8 builds and # This is undefined for CentOS & openjdk-portable-rhel-8 builds and
# equals 'rhel7' for openjdk-portable-rhel-7 builds # equals 'rhel7' for openjdk-portable-rhel-7 builds
%if 0%{?centos} == 0
%global pkgos rhel7
%endif
# By default, we build a debug build during main build on JIT architectures # By default, we build a debug build during main build on JIT architectures
%if %{with slowdebug} %if %{with slowdebug}
@ -360,7 +363,7 @@
%global rpmrelease 1 %global rpmrelease 1
# Settings used by the portable build # Settings used by the portable build
%global portablerelease 1 %global portablerelease 1
%global portablesuffix %{?pkgos:el7_9}%{!?pkgos:el8} %global portablesuffix %{?pkgos:el7_9}%{!?pkgos:el9}
%global portablebuilddir /builddir/build/BUILD %global portablebuilddir /builddir/build/BUILD
# 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 # 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
@ -1155,7 +1158,7 @@ Requires: lksctp-tools%{?_isa}
# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it, # tool to copy jdk's configs - should be Recommends only, but then only dnf/yum enforce it,
# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be # not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
# considered as regression # considered as regression
Requires: copy-jdk-configs >= 3.3 Requires: copy-jdk-configs >= 4.0
OrderWithRequires: copy-jdk-configs OrderWithRequires: copy-jdk-configs
%endif %endif
# for printing support # for printing support
@ -1273,7 +1276,7 @@ Provides: java-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
Name: java-%{javaver}-%{origin} Name: java-%{javaver}-%{origin}
Version: %{newjavaver}.%{buildver} Version: %{newjavaver}.%{buildver}
Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}.alma.1 Release: %{?eaprefix}%{rpmrelease}%{?extraver}%{?dist}
# Equivalent for the portable build # Equivalent for the portable build
%global prelease %{?eaprefix}%{portablerelease}%{?extraver} %global prelease %{?eaprefix}%{portablerelease}%{?extraver}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
@ -2315,9 +2318,10 @@ else
return return
end end
end end
-- run content of included file with fake args arg = nil ; -- it is better to null the arg up, no meter if they exists or not, and use cjc as module in unified way, instead of relaying on "main" method during require "copy_jdk_configs.lua"
arg = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"} cjc = require "copy_jdk_configs.lua"
require "copy_jdk_configs.lua" args = {"--currentjvm", "%{uniquesuffix %{nil}}", "--jvmdir", "%{_jvmdir %{nil}}", "--origname", "%{name}", "--origjavaver", "%{javaver}", "--arch", "%{_arch}", "--temp", "%{rpm_state_dir}/%{name}.%{_arch}"}
cjc.mainProgram(args)
%post %post
%{post_script %{nil}} %{post_script %{nil}}
@ -2513,9 +2517,6 @@ require "copy_jdk_configs.lua"
%endif %endif
%changelog %changelog
* Wed Jul 17 2024 Eduard Abdullin <eabdullin@almalinux.org> - 1:21.0.4.0.7-1.alma.1
- Delete pkgos definition
* Fri Jul 12 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.7-1 * Fri Jul 12 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.7-1
- Update to jdk-21.0.4+7 (GA) - Update to jdk-21.0.4+7 (GA)
- Update release notes to 21.0.4+7 - Update release notes to 21.0.4+7
@ -2523,15 +2524,15 @@ require "copy_jdk_configs.lua"
- Sync the copy of the portable specfile with the latest update - Sync the copy of the portable specfile with the latest update
- Add missing section headers in NEWS - Add missing section headers in NEWS
- ** This tarball is embargoed until 2024-07-16 @ 1pm PT. ** - ** This tarball is embargoed until 2024-07-16 @ 1pm PT. **
- Resolves: RHEL-47009 - Resolves: RHEL-47023
* Wed Jun 26 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.5-0.1.ea * Wed Jun 26 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.5-0.1.ea
- Update to jdk-21.0.4+5 (EA) - Update to jdk-21.0.4+5 (EA)
- Update release notes to 21.0.4+5 - Update release notes to 21.0.4+5
- Limit Java only tests to one architecture using jdk_test_arch - Limit Java only tests to one architecture using jdk_test_arch
- Actually require tzdata 2024a now it is available in the buildroot - Actually require tzdata 2024a now it is available in the buildroot
- Resolves: RHEL-45358 - Resolves: RHEL-45355
- Resolves: RHEL-47398 - Resolves: RHEL-47395
* Sat Jun 22 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.1-0.1.ea * Sat Jun 22 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.4.0.1-0.1.ea
- Update to jdk-21.0.4+1 (EA) - Update to jdk-21.0.4+1 (EA)
@ -2541,8 +2542,8 @@ require "copy_jdk_configs.lua"
- Add zlib build requirement or bundled version (1.3.1), depending on system_libs setting - Add zlib build requirement or bundled version (1.3.1), depending on system_libs setting
- Restore NEWS file so portable can be rebuilt - Restore NEWS file so portable can be rebuilt
- Sync the copy of the portable specfile with the latest update - Sync the copy of the portable specfile with the latest update
- Related: RHEL-45358 - Related: RHEL-45355
- Resolves: RHEL-46027 - Resolves: RHEL-46029
* Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.9-1 * Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.9-1
- Update to jdk-21.0.3+9 (GA) - Update to jdk-21.0.3+9 (GA)
@ -2550,7 +2551,7 @@ require "copy_jdk_configs.lua"
- Switch to GA mode. - Switch to GA mode.
- Sync the copy of the portable specfile with the latest update - Sync the copy of the portable specfile with the latest update
- ** This tarball is embargoed until 2024-04-16 @ 1pm PT. ** - ** This tarball is embargoed until 2024-04-16 @ 1pm PT. **
- Resolves: RHEL-32406 - Resolves: RHEL-32424
* Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.7-0.1.ea * Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.7-0.1.ea
- Update to jdk-21.0.3+7 (EA) - Update to jdk-21.0.3+7 (EA)
@ -2559,7 +2560,7 @@ require "copy_jdk_configs.lua"
- Only require tzdata 2023d for now as 2024a is unavailable in buildroot - Only require tzdata 2023d for now as 2024a is unavailable in buildroot
- Drop JDK-8009550 which is now available upstream - Drop JDK-8009550 which is now available upstream
- Re-generate FIPS patch against 21.0.3+7 following backport of JDK-8325254 - Re-generate FIPS patch against 21.0.3+7 following backport of JDK-8325254
- Resolves: RHEL-30943 - Resolves: RHEL-30946
* Sun Apr 14 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.3.0.1-0.2.ea * Sun Apr 14 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.3.0.1-0.2.ea
- Invoke xz in multi-threaded mode - Invoke xz in multi-threaded mode
@ -2590,7 +2591,7 @@ require "copy_jdk_configs.lua"
- generate_source_tarball.sh: Use long-style argument to grep - generate_source_tarball.sh: Use long-style argument to grep
- generate_source_tarball.sh: Add license - generate_source_tarball.sh: Add license
- generate_source_tarball.sh: Add indentation instructions for Emacs - generate_source_tarball.sh: Add indentation instructions for Emacs
- Related: RHEL-30943 - Related: RHEL-30946
* Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.2.ea * Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.2.ea
- Install alt-java man page from the misc tarball as it is no longer in the JDK image - Install alt-java man page from the misc tarball as it is no longer in the JDK image
@ -2614,7 +2615,7 @@ require "copy_jdk_configs.lua"
- generate_source_tarball.sh: Output values of new options WITH_TEMP and OPENJDK_LATEST - generate_source_tarball.sh: Output values of new options WITH_TEMP and OPENJDK_LATEST
- generate_source_tarball.sh: Double-quote DEPTH reference (SC2086) - generate_source_tarball.sh: Double-quote DEPTH reference (SC2086)
- generate_source_tarball.sh: Avoid empty DEPTH reference while still appeasing shellcheck - generate_source_tarball.sh: Avoid empty DEPTH reference while still appeasing shellcheck
- Related: RHEL-30943 - Related: RHEL-30946
* Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.1.ea * Sun Apr 14 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.3.0.1-0.1.ea
- Update to jdk-21.0.3+1 (EA) - Update to jdk-21.0.3+1 (EA)
@ -2622,12 +2623,11 @@ require "copy_jdk_configs.lua"
- Switch to EA mode - Switch to EA mode
- Require tzdata 2023d due to upstream inclusion of JDK-8322725 - Require tzdata 2023d due to upstream inclusion of JDK-8322725
- Bump FreeType version to 2.13.2 following JDK-8316028 - Bump FreeType version to 2.13.2 following JDK-8316028
- Related: RHEL-30943 - Related: RHEL-30946
* Fri Apr 12 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-2 * Fri Apr 12 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-2
- Sync the copy of the portable specfile with the latest update
- Define portablesuffix according to whether pkgos is defined or not - Define portablesuffix according to whether pkgos is defined or not
- Related: RHEL-30943 - Related: RHEL-30946
* Tue Jan 09 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-1 * Tue Jan 09 2024 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.2.0.13-1
- Update to jdk-21.0.2+13 (GA) - Update to jdk-21.0.2+13 (GA)
@ -2636,17 +2636,16 @@ require "copy_jdk_configs.lua"
- Bump HarfBuzz version to 8.2.2 following JDK-8313643 - Bump HarfBuzz version to 8.2.2 following JDK-8313643
- Drop local JDK-8311630 patch which is now upstream - Drop local JDK-8311630 patch which is now upstream
- ** This tarball is embargoed until 2024-01-16 @ 1pm PT. ** - ** This tarball is embargoed until 2024-01-16 @ 1pm PT. **
- Resolves: RHEL-20985 - Resolves: RHEL-20999
* Mon Nov 06 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-3 * Mon Nov 06 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-3
- Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x - Include JDK-8311630 patch to implement Foreign Function & Memory preview API on s390x
- Sync the copy of the portable specfile with the latest update - Sync the copy of the portable specfile with the latest update
- Resolves: RHEL-16289 - Resolves: RHEL-16290
* Mon Oct 30 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2 * Mon Oct 30 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-2
- Switch to using portable binaries built on RHEL 7 - Define pkgnameroot to simplify build requirements and allow '-rhel7' suffix on RHEL
- Sync the copy of the portable specfile with the RHEL 7 version - Related: RHEL-12998
- Related: RHEL-12996
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.1.0.12-1 * 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 to jdk-21.0.1.0+12 (GA)
@ -2668,21 +2667,21 @@ require "copy_jdk_configs.lua"
- Add missing jfr, jpackage and jwebserver alternative ghosts - Add missing jfr, jpackage and jwebserver alternative ghosts
- Move jcmd to the headless package - Move jcmd to the headless package
- Revert alt-java binary location to being within the JDK tree - Revert alt-java binary location to being within the JDK tree
- Resolves: RHEL-12996 - Resolves: RHEL-12998
- Resolves: RHEL-14951 - Resolves: RHEL-14953
- Resolves: RHEL-13924 - Resolves: RHEL-13925
- Resolves: RHEL-14955 - Resolves: RHEL-14957
- Related: RHEL-14943 - Related: RHEL-14945
- Resolves: RHEL-11322 - Resolves: RHEL-11321
- Resolves: RHEL-14949 - Resolves: RHEL-14947
* Fri Oct 27 2023 Jiri Vanek <jvanek@redhat.com> - 1:21.0.1.0.12-1 * Fri Oct 27 2023 Jiri Vanek <jvanek@redhat.com> - 1:21.0.1.0.12-1
- Exclude classes_nocoops.jsa on i686 and arm32 - Exclude classes_nocoops.jsa on i686 and arm32
- Related: RHEL-14943 - Related: RHEL-14945
* Fri Oct 27 2023 Severin Gehwolf <sgehwolf@redhat.com> - 1:21.0.1.0.12-1 * Fri Oct 27 2023 Severin Gehwolf <sgehwolf@redhat.com> - 1:21.0.1.0.12-1
- Fix packaging of CDS archives - Fix packaging of CDS archives
- Resolves: RHEL-14943 - Resolves: RHEL-14945
* Thu Aug 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-2 * Thu Aug 24 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-2
- Update documentation (README.md) - Update documentation (README.md)
@ -2693,7 +2692,7 @@ require "copy_jdk_configs.lua"
- * No use of system libjpeg turbo to warrant RH649512 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 - Replace RH1684077 pcsc-lite-libs patch with better JDK-8009550 fix being upstreamed
- Adapt alt-java test to new binary where there is always a set_speculation function - Adapt alt-java test to new binary where there is always a set_speculation function
- Related: RHEL-12996 - Related: RHEL-12998
* Mon Aug 21 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-1 * 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 to jdk-21.0.0+35
@ -2705,11 +2704,12 @@ require "copy_jdk_configs.lua"
- Re-enable tzdata tests now we are on the latest JDK and things are back in sync - Re-enable tzdata tests now we are on the latest JDK and things are back in sync
- Install jaxp.properties introduced by JDK-8303530 - Install jaxp.properties introduced by JDK-8303530
- Install lible.so introduced by JDK-8306983 - Install lible.so introduced by JDK-8306983
- Related: RHEL-12996 - Related: RHEL-12998
- Resolves: RHEL-41087
* Mon Aug 21 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:21.0.0.0.35-1 * 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 - Replace smoke test files used in the staticlibs test, as fdlibm was removed by JDK-8303798
- Related: RHEL-12996 - Related: RHEL-12998
* Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.0.0.36-1 * Wed Aug 16 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.0.0.36-1
- Update to jdk-20.0.2+9 - Update to jdk-20.0.2+9
@ -2717,21 +2717,21 @@ require "copy_jdk_configs.lua"
- Update system crypto policy & FIPS patch from new fips-20u tree - Update system crypto policy & FIPS patch from new fips-20u tree
- Update generate_tarball.sh ICEDTEA_VERSION - Update generate_tarball.sh ICEDTEA_VERSION
- Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit) - Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
- Related: RHEL-12996 - Related: RHEL-12998
* Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.0.0.36-1 * Wed Aug 16 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.0.0.36-1
- Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream - Dropped JDK-8295447, JDK-8296239 & JDK-8299439 patches now upstream
- Adapted rh1750419-redhat_alt_java.patch - Adapted rh1750419-redhat_alt_java.patch
- Related: RHEL-12996 - Related: RHEL-12998
* Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.2.0.7-1 * Tue Aug 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:19.0.1.0.10-1
- Update to jdk-19.0.2 release - Update to jdk-19.0.2 release
- Update release notes to 19.0.2 - Update release notes to 19.0.2
- Rebase FIPS patches from fips-19u branch - Rebase FIPS patches from fips-19u branch
- Remove references to sample directory removed by JDK-8284999 - Remove references to sample directory removed by JDK-8284999
- Add local patch JDK-8295447 (javac NPE) which was accepted into 19u upstream but not in the GA tag - Add local patch JDK-8295447 (javac NPE) which was accepted into 19u upstream but not in the GA tag
- Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases - Add local patches for JDK-8296239 & JDK-8299439 (Croatia Euro update) which are present in 8u, 11u & 17u releases
- Related: RHEL-12996 - Related: RHEL-12998
* Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-1 * Thu Aug 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:18.0.2.0.9-1
- Update to jdk-18.0.2 release - Update to jdk-18.0.2 release
@ -2742,22 +2742,26 @@ require "copy_jdk_configs.lua"
- Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21 - Drop tzdata patches added for 17.0.7 which will eventually appear in the upstream tarball when we reach OpenJDK 21
- Disable tzdata tests until we are on the latest JDK and things are back in sync - Disable tzdata tests until we are on the latest JDK and things are back in sync
- Use empty nss.fips.cfg until it is again available via the FIPS patch - Use empty nss.fips.cfg until it is again available via the FIPS patch
- Related: RHEL-12996 - Related: RHEL-12998
* Thu Aug 10 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:18.0.2.0.9-1 * Thu Aug 10 2023 Petra Alice Mikova <pmikova@redhat.com> - 1:18.0.2.0.9-1
- Update to ea version of jdk18 - Update to ea version of jdk18
- Add new slave jwebserver and corresponding manpage - Add new slave jwebserver and corresponding manpage
- Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch - Adjust rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
- Related: RHEL-12996 - Related: RHEL-12998
* Thu Aug 10 2023 FeRD (Frank Dana) <ferdnyc@gmail.com> - 1:18.0.2.0.9-1 * Thu Aug 10 2023 FeRD (Frank Dana) <ferdnyc@gmail.com> - 1:18.0.2.0.9-1
- Add javaver- and origin-specific javadoc and javadoczip alternatives. - Add javaver- and origin-specific javadoc and javadoczip alternatives.
- Related: RHEL-12996 - Related: RHEL-12998
* Tue Aug 08 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-4
- Set portablerelease and portablerhel to use the CentOS 9 build
- Related: RHEL-12998
* Tue Aug 08 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-4 * Tue Aug 08 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-4
- Add files missed by centpkg import. - Add files missed by centpkg import.
- Related: rhbz#2192749 - Related: rhbz#2192748
* Fri Aug 04 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3 * Fri Aug 04 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3
- Create java-21-openjdk package based on java-17-openjdk - Create java-21-openjdk package based on java-17-openjdk
- Related: rhbz#2192749 - Related: rhbz#2192748

3
rpminspect.yaml Normal file
View File

@ -0,0 +1,3 @@
---
inspections:
javabytecode: off

61
scripts/discover_trees.sh Executable file
View File

@ -0,0 +1,61 @@
#!/bin/sh
# Copyright (C) 2024 Red Hat, Inc.
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
TREE=${1}
if test "${TREE}" = ""; then
TREE=${PWD}
fi
if [ -e "${TREE}"/nashorn/.hg ] || [ -e "${TREE}"/nashorn/merge.changeset ] ; then
NASHORN="nashorn" ;
fi
if [ -e "${TREE}"/corba/.hg ] || [ -e "${TREE}"/corba/merge.changeset ] ; then
CORBA="corba";
fi
if [ -e "${TREE}"/jaxp/.hg ] || [ -e "${TREE}"/jaxp/merge.changeset ] ; then
JAXP="jaxp";
fi
if [ -e "${TREE}"/jaxws/.hg ] || [ -e "${TREE}"/jaxws/merge.changeset ] ; then
JAXWS="jaxws";
fi
if [ -e "${TREE}"/langtools/.hg ] || [ -e "${TREE}"/langtools/merge.changeset ] ; then
LANGTOOLS="langtools";
fi
if [ -e "${TREE}"/jdk/.hg ] || [ -e "${TREE}"/jdk/merge.changeset ] ; then
JDK="jdk";
fi
if [ -e "${TREE}"/hotspot/.hg ] || [ -e "${TREE}"/hotspot/merge.changeset ] ; then
HOTSPOT="hotspot";
fi
SUBTREES="${CORBA} ${JAXP} ${JAXWS} ${LANGTOOLS} ${NASHORN} ${JDK} ${HOTSPOT}";
echo "${SUBTREES}"
# Local Variables:
# compile-command: "shellcheck discover_trees.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

View File

@ -0,0 +1,294 @@
#!/bin/bash
# Copyright (C) 2024 Red Hat, Inc.
# Written by:
# Andrew John Hughes <gnu.andrew@redhat.com>
# Thomas Fitzsimmons <fitzsim@redhat.com>
# Jiri Vanek <jvanek@redhat.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Generates the source tarball for OpenJDK projects.
#
# There are multiple ways to specify the source code location and version:
#
# 1. Specify the version (VERSION), the location of the Git repository
# (REPO_ROOT) and the root of the output tarball name (FILE_NAME_ROOT)
# 2. Specify the version (VERSION) along with an upstream project name
# (PROJECT_NAME) and repository name (REPO_NAME) that can be used
# to construct the URL of the upstream OpenJDK repository.
# 3. Specify OPENJDK_LATEST=1 and allow the script to obtain the JDK
# feature version from the spec file, which is then used to
# obtain the latest build promotion from the upstream repository.
#
# An appropriate bootstrap JDK is also required for when ./configure
# is run within the checked out repository to generate the .src-rev.
# file. This can be specified by setting BOOT_JDK.
#
# Example 1:
# This will check out the specified version from the specified
# repository and construct a tarball called openjdk-17.0.3+5.tar.xz:
#
# $ VERSION=jdk-17.0.3+5 FILE_NAME_ROOT=open${VERSION} \
# REPO_ROOT=$HOME/projects/openjdk/upstream/17u \
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
#
# Example 2:
# This will check out the same version as example 1, but from the
# upstream repository:
#
# $ VERSION=jdk-17.0.3+5 PROJECT_NAME=openjdk REPO_NAME=jdk17u \
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
#
# Example 3:
# This will read the OpenJDK feature version from the spec file, then create a
# tarball from the most recent tag for that version in the upstream Git
# repository.
#
# $ OPENJDK_LATEST=1 \
# BOOT_JDK=/usr/lib/jvm/java-17-openjdk ./generate_source_tarball.sh
#
set -e
OPENJDK_URL_DEFAULT=https://github.com
COMPRESSION_DEFAULT=xz
if [ "$1" = "help" ] ; then
echo "Behaviour may be specified by setting the following variables:"
echo
echo "VERSION - the version of the specified OpenJDK project"
echo " (required unless OPENJDK_LATEST is set)"
echo "PROJECT_NAME - the name of the OpenJDK project being archived"
echo " (needed to compute REPO_ROOT and/or"
echo " FILE_NAME_ROOT automatically;"
echo " optional if they are set explicitly)"
echo "REPO_NAME - the name of the OpenJDK repository"
echo " (needed to compute REPO_ROOT automatically;"
echo " optional if REPO_ROOT is set explicitly)"
echo "OPENJDK_URL - the URL to retrieve code from"
echo " (defaults to ${OPENJDK_URL_DEFAULT})"
echo "COMPRESSION - the compression type to use"
echo " (defaults to ${COMPRESSION_DEFAULT})"
echo "FILE_NAME_ROOT - name of the archive, minus extensions"
echo " (defaults to PROJECT_NAME-VERSION)"
echo "REPO_ROOT - the location of the Git repository to archive"
echo " (defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME.git)"
echo "TO_COMPRESS - what part of clone to pack"
echo " (defaults to ${VERSION})"
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
echo " (defaults to packaged JDK version)"
echo "WITH_TEMP - run in a temporary directory"
echo " (defaults to disabled)"
echo "OPENJDK_LATEST - deduce VERSION from most recent upstream tag"
echo " (implies WITH_TEMP, computes everything else"
echo " automatically; Note: accesses network to read"
echo " tag list from remote Git repository)"
exit 1;
fi
if [ "$OPENJDK_LATEST" != "" ] ; then
FEATURE_VERSION=$(echo '%featurever' \
| rpmspec --shell ./*.spec 2>/dev/null \
| grep --after-context 1 featurever \
| tail --lines 1)
PROJECT_NAME=openjdk
REPO_NAME=jdk"${FEATURE_VERSION}"u
# Skip -ga tags since those are the same as the most recent non-ga tag, and
# the non-ga tag is the one that is used to generated the official source
# tarball. For example:
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10-ga^{}
# 25a2e6c20c9a96853714284cabc6b456eb095070 refs/tags/jdk-17.0.10-ga
# ca760c86642aa2e0d9b571aaabac054c0239fbdc refs/tags/jdk-17.0.10+7^{}
# e49c5749b10f3e90274b72e9279f794fdd191d27 refs/tags/jdk-17.0.10+7
VERSION=$(git ls-remote --tags --refs --sort=-version:refname \
"${OPENJDK_URL_DEFAULT}/${PROJECT_NAME}/${REPO_NAME}.git" \
"jdk-${FEATURE_VERSION}*" \
| grep --invert-match '\-ga$' \
| head --lines 1 | cut --characters 52-)
FILE_NAME_ROOT=open${VERSION}
WITH_TEMP=1
fi
if [ "$WITH_TEMP" != "" ] ; then
pushd "$(mktemp --directory --tmpdir temp-generated-source-tarball-XXX)"
fi
if [ "$VERSION" = "" ] ; then
echo "No VERSION specified"
exit 2
fi
echo "Version: ${VERSION}"
NUM_VER=${VERSION##jdk-}
RELEASE_VER=${NUM_VER%%+*}
BUILD_VER=${NUM_VER##*+}
MAJOR_VER=${RELEASE_VER%%.*}
echo "Major version is ${MAJOR_VER}, release ${RELEASE_VER}, build ${BUILD_VER}"
if [ "$BOOT_JDK" = "" ] ; then
echo "No boot JDK specified".
BOOT_JDK=/usr/lib/jvm/java-${MAJOR_VER}-openjdk;
echo -n "Checking for ${BOOT_JDK}...";
if [ -d "${BOOT_JDK}" ] && [ -x "${BOOT_JDK}"/bin/java ] ; then
echo "Boot JDK found at ${BOOT_JDK}";
else
echo "Not found";
PREV_VER=$((MAJOR_VER - 1));
BOOT_JDK=/usr/lib/jvm/java-${PREV_VER}-openjdk;
echo -n "Checking for ${BOOT_JDK}...";
if [ -d ${BOOT_JDK} ] && [ -x ${BOOT_JDK}/bin/java ] ; then
echo "Boot JDK found at ${BOOT_JDK}";
else
echo "Not found";
exit 4;
fi
fi
else
echo "Boot JDK: ${BOOT_JDK}";
fi
if [ "$OPENJDK_URL" = "" ] ; then
OPENJDK_URL=${OPENJDK_URL_DEFAULT}
echo "No OpenJDK URL specified; defaulting to ${OPENJDK_URL}"
else
echo "OpenJDK URL: ${OPENJDK_URL}"
fi
if [ "$COMPRESSION" = "" ] ; then
# rhel 5 needs tar.gz
COMPRESSION=${COMPRESSION_DEFAULT}
fi
echo "Creating a tar.${COMPRESSION} archive"
if [ "$FILE_NAME_ROOT" = "" ] ; then
if [ "$PROJECT_NAME" = "" ] ; then
echo "No PROJECT_NAME specified, needed by FILE_NAME_ROOT"
exit 1
fi
FILE_NAME_ROOT=${PROJECT_NAME}-${VERSION}
echo "No file name root specified; default to ${FILE_NAME_ROOT}"
fi
if [ "$REPO_ROOT" = "" ] ; then
if [ "$PROJECT_NAME" = "" ] ; then
echo "No PROJECT_NAME specified, needed by REPO_ROOT"
exit 1
fi
if [ "$REPO_NAME" = "" ] ; then
echo "No REPO_NAME specified, needed by REPO_ROOT"
exit 3
fi
REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git"
echo "No repository root specified; default to ${REPO_ROOT}"
fi;
if [ "$TO_COMPRESS" = "" ] ; then
TO_COMPRESS="${VERSION}"
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}"
echo -e "\tWITH_TEMP: ${WITH_TEMP}"
echo -e "\tOPENJDK_LATEST: ${OPENJDK_LATEST}"
if [ -d "${FILE_NAME_ROOT}" ] ; then
echo "Reusing existing ${FILE_NAME_ROOT}"
STAT_TIME="$(stat --format=%Y "${FILE_NAME_ROOT}")"
TAR_TIME="$(date --date=@"${STAT_TIME}" --iso-8601=seconds)"
else
mkdir "${FILE_NAME_ROOT}"
pushd "${FILE_NAME_ROOT}"
echo "Cloning ${VERSION} root repository from ${REPO_ROOT}"
if realpath -q "${REPO_ROOT}"; then
echo "Local path detected; not adding depth argument";
DEPTH="--";
else
DEPTH="--depth=1";
echo "Remote repository detected; adding ${DEPTH}";
fi
git clone -b "${VERSION}" "${DEPTH}" "${REPO_ROOT}" "${VERSION}"
pushd "${VERSION}"
TAR_TIME="$(git log --max-count 1 --format=%cI)"
popd
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
sh "${PWD}"/../"${VERSION}"/configure --with-boot-jdk="${BOOT_JDK}"
make store-source-revision
popd
rm -rf build
# Remove commit checks
echo "Removing $(find "${VERSION}" -name '.jcheck' -print)"
find "${VERSION}" -name '.jcheck' -print0 | xargs -0 rm -r
# Remove history and GHA
echo "find ${VERSION} -name '.hgtags'"
find "${VERSION}" -name '.hgtags' -exec rm -v '{}' '+'
echo "find ${VERSION} -name '.hgignore'"
find "${VERSION}" -name '.hgignore' -exec rm -v '{}' '+'
echo "find ${VERSION} -name '.gitattributes'"
find "${VERSION}" -name '.gitattributes' -exec rm -v '{}' '+'
echo "find ${VERSION} -name '.gitignore'"
find "${VERSION}" -name '.gitignore' -exec rm -v '{}' '+'
# Work around some Git objects not having write permissions.
echo "chmod --recursive u+w ${VERSION}/.git"
chmod --recursive u+w "${VERSION}"/.git
echo "find ${VERSION} -name '.git'"
find "${VERSION}" -name '.git' -exec rm -rv '{}' '+'
echo "find ${VERSION} -name '.github'"
find "${VERSION}" -name '.github' -exec rm -rv '{}' '+'
echo "Compressing remaining forest"
if [ "$COMPRESSION" = "xz" ] ; then
SWITCH=cJf
else
SWITCH=czf
fi
EA_PART="$(awk -F= \
'/^DEFAULT_PROMOTED_VERSION_PRE/ { if ($2) print "-"$2 }' \
"${VERSION}"/make/conf/version-numbers.conf)"
TARBALL_NAME=${FILE_NAME_ROOT}${EA_PART}.tar.${COMPRESSION}
XZ_OPT=${XZ_OPT-"-T0"} \
tar --mtime="${TAR_TIME}" --owner=root --group=root --sort=name \
--exclude-vcs -$SWITCH "${TARBALL_NAME}" "${TO_COMPRESS}"
mv "${TARBALL_NAME}" ..
popd
if [ "$WITH_TEMP" != "" ] ; then
echo "Tarball is: $(realpath .)/${TARBALL_NAME}"
popd
else
echo -n "Done. You may want to remove the uncompressed version"
echo " - $FILE_NAME_ROOT"
fi
# Local Variables:
# compile-command: "shellcheck generate_source_tarball.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

198
scripts/icedtea_sync.sh Executable file
View File

@ -0,0 +1,198 @@
#!/bin/bash
# Copyright (C) 2024 Red Hat, Inc.
# Written by Andrew John Hughes <gnu.andrew@redhat.com>.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
ICEDTEA_USE_VCS=true
ICEDTEA_VERSION=3.15.0
ICEDTEA_URL=https://icedtea.classpath.org/download/source
ICEDTEA_SIGNING_KEY=CFDA0F9B35964222
ICEDTEA_HG_URL=https://icedtea.classpath.org/hg/icedtea11
set -e
RPM_DIR=${PWD}
if [ ! -f "${RPM_DIR}/jconsole.desktop.in" ] ; then
echo "Not in RPM source tree.";
exit 1;
fi
if test "${TMPDIR}" = ""; then
TMPDIR=/tmp;
fi
WORKDIR=${TMPDIR}/it.sync
echo "Using working directory ${WORKDIR}"
mkdir "${WORKDIR}"
pushd "${WORKDIR}"
if test "${WGET}" = ""; then
WGET=$(which wget);
if test "${WGET}" = ""; then
echo "wget not found";
exit 1;
fi
fi
if test "${TAR}" = ""; then
TAR=$(which tar)
if test "${TAR}" = ""; then
echo "tar not found";
exit 2;
fi
fi
echo "Dependencies:";
echo -e "\tWGET: ${WGET}";
echo -e "\tTAR: ${TAR}\n";
if test "${ICEDTEA_USE_VCS}" = "true"; then
echo "Mode: Using VCS";
if test "${GREP}" = ""; then
GREP=$(which grep);
if test "${GREP}" = ""; then
echo "grep not found";
exit 3;
fi
fi
if test "${CUT}" = ""; then
CUT=$(which cut);
if test "${CUT}" = ""; then
echo "cut not found";
exit 4;
fi
fi
if test "${TR}" = ""; then
TR=$(which tr);
if test "${TR}" = ""; then
echo "tr not found";
exit 5;
fi
fi
if test "${HG}" = ""; then
HG=$(which hg);
if test "${HG}" = ""; then
echo "hg not found";
exit 6;
fi
fi
echo "Dependencies:";
echo -e "\tGREP: ${GREP}";
echo -e "\tCUT: ${CUT}";
echo -e "\tTR: ${TR}";
echo -e "\tHG: ${HG}";
echo "Checking out repository from VCS...";
${HG} clone ${ICEDTEA_HG_URL} icedtea
echo "Obtaining version from configure.ac...";
ROOT_VER=$(${GREP} '^AC_INIT' icedtea/configure.ac|${CUT} -d ',' -f 2|${TR} -d '[][:space:]')
echo "Root version from configure: ${ROOT_VER}";
VCS_REV=$(${HG} log -R icedtea --template '{node|short}' -r tip)
echo "VCS revision: ${VCS_REV}";
ICEDTEA_VERSION="${ROOT_VER}-${VCS_REV}"
echo "Creating icedtea-${ICEDTEA_VERSION}";
mkdir "icedtea-${ICEDTEA_VERSION}"
echo "Copying required files from checkout to icedtea-${ICEDTEA_VERSION}";
# Commented out for now as IcedTea 6's jconsole.desktop.in is outdated
#cp -a icedtea/jconsole.desktop.in ../icedtea-${ICEDTEA_VERSION}
cp -a "${RPM_DIR}/jconsole.desktop.in" "icedtea-${ICEDTEA_VERSION}"
cp -a icedtea/tapset "icedtea-${ICEDTEA_VERSION}"
rm -rf icedtea
else
echo "Mode: Using tarball";
if test "${ICEDTEA_VERSION}" = ""; then
echo "No IcedTea version specified for tarball download.";
exit 3;
fi
if test "${CHECKSUM}" = ""; then
CHECKSUM=$(which sha256sum)
if test "${CHECKSUM}" = ""; then
echo "sha256sum not found";
exit 4;
fi
fi
if test "${PGP}" = ""; then
PGP=$(which gpg)
if test "${PGP}" = ""; then
echo "gpg not found";
exit 5;
fi
fi
echo "Dependencies:";
echo -e "\tCHECKSUM: ${CHECKSUM}";
echo -e "\tPGP: ${PGP}\n";
echo "Checking for IcedTea signing key ${ICEDTEA_SIGNING_KEY}...";
if ! gpg --list-keys ${ICEDTEA_SIGNING_KEY}; then
echo "IcedTea signing key ${ICEDTEA_SIGNING_KEY} not installed.";
exit 6;
fi
echo "Downloading IcedTea release tarball...";
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz
echo "Downloading IcedTea tarball signature...";
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.tar.xz.sig
echo "Downloading IcedTea tarball checksums...";
${WGET} -v ${ICEDTEA_URL}/icedtea-${ICEDTEA_VERSION}.sha256
echo "Verifying checksums...";
${CHECKSUM} --check --ignore-missing icedtea-${ICEDTEA_VERSION}.sha256
echo "Checking signature...";
${PGP} --verify icedtea-${ICEDTEA_VERSION}.tar.xz.sig
echo "Extracting files...";
${TAR} xJf icedtea-${ICEDTEA_VERSION}.tar.xz \
icedtea-${ICEDTEA_VERSION}/tapset \
icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz
rm -vf icedtea-${ICEDTEA_VERSION}.tar.xz.sig
rm -vf icedtea-${ICEDTEA_VERSION}.sha256
fi
echo "Replacing desktop files...";
mv -v "icedtea-${ICEDTEA_VERSION}/jconsole.desktop.in" "${RPM_DIR}"
echo "Creating new tapset tarball...";
mv -v "icedtea-${ICEDTEA_VERSION}" openjdk
${TAR} cJf "${RPM_DIR}/tapsets-icedtea-${ICEDTEA_VERSION}.tar.xz" openjdk
rm -rvf openjdk
popd
rm -rf "${WORKDIR}"
# Local Variables:
# compile-command: "shellcheck icedtea_sync.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

83
scripts/openjdk_news.sh Executable file
View File

@ -0,0 +1,83 @@
#!/bin/bash
# Copyright (C) 2024 Red Hat, Inc.
# Written by Andrew John Hughes <gnu.andrew@redhat.com>, 2012-2022
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
OLD_RELEASE=$1
NEW_RELEASE=$2
REPO=$3
SUBDIR=$4
SCRIPT_DIR=$(dirname "${0}")
if test "${SUBDIR}" = ""; then
echo "No subdirectory specified; using .";
SUBDIR=".";
fi
if test "$REPO" = ""; then
echo "No repository specified; using ${PWD}"
REPO=${PWD}
fi
if test "${TMPDIR}" = ""; then
TMPDIR=/tmp;
fi
echo "Repository: ${REPO}"
if [ -e "${REPO}/.git" ] ; then
TYPE=git;
elif [ -e "${REPO}/.hg" ] ; then
TYPE=hg;
else
echo "No Mercurial or Git repository detected.";
exit 1;
fi
if test "$OLD_RELEASE" = "" || test "$NEW_RELEASE" = ""; then
echo "ERROR: Need to specify old and new release";
exit 2;
fi
echo "Listing fixes between $OLD_RELEASE and $NEW_RELEASE in $REPO"
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" "${TMPDIR}/fixes"
for repos in . $("${SCRIPT_DIR}/discover_trees.sh" "${REPO}");
do
if test "$TYPE" = "hg"; then
hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
grep -E '^[o:| ]*summary'|grep -v 'Added tag'|sed -r 's#^[o:| ]*summary:\W*([0-9])# - JDK-\1#'| \
sed 's#^[o:| ]*summary:\W*# - #' >> "${TMPDIR}/fixes2";
hg log -v -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R "$REPO/$repos" -G -M "${REPO}/${SUBDIR}" | \
grep -E '^[o:| ]*[0-9]{7}'|sed -r 's#^[o:| ]*([0-9]{7})# - JDK-\1#' >> "${TMPDIR}/fixes3";
else
git -C "${REPO}" log --no-merges --pretty=format:%B "${NEW_RELEASE}...${OLD_RELEASE}" -- "${SUBDIR}" |grep -E '^[0-9]{7}' | \
sed -r 's#^([0-9])# - JDK-\1#' >> "${TMPDIR}/fixes2";
touch "${TMPDIR}/fixes3" ; # unused
fi
done
sort "${TMPDIR}/fixes2" "${TMPDIR}/fixes3" | uniq > "${TMPDIR}/fixes"
rm -f "${TMPDIR}/fixes2" "${TMPDIR}/fixes3"
echo "In ${TMPDIR}/fixes:"
cat "${TMPDIR}/fixes"
# Local Variables:
# compile-command: "shellcheck openjdk_news.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz) = 97d026212363b3c83f6a04100ad7f6fdde833d16579717f8756e2b8c2eb70e144a41a330cb9ccde9c3badd37a2d54fdf4650a950ec21d8b686d545ecb2a64d30
SHA512 (openjdk-21.0.4+7.tar.xz) = 339e7e4833b80d43c8e8c6d9c0f4cb48fa23a73756f11863b2cd4b8f1f5c1d00d29ab9f1d7821bcc8020b3ef15b8a2adbe9c30719df8c9cfc07087b250ef643e

21
tests/tests.yml Normal file
View File

@ -0,0 +1,21 @@
---
- hosts: localhost
roles:
- role: standard-test-source
tags:
- always
- role: standard-test-basic
tags:
- classic
- atomic
required_packages:
- java-21-openjdk-devel
tests:
- javaVersion1:
dir: ~
run: set -ex; useradd franta1; su franta1 -c 'java -version';
run: set -ex; useradd franta4; su franta4 -c 'javac -version';
run: ls -l /usr/lib/jvm;
- javaVersion2:
dir: ~
run: set -ex; useradd franta2; su franta2 -c 'java --version'