Compare commits

..

68 Commits

Author SHA1 Message Date
Andrew Hughes
d114cc441d Sync the copy of the portable specfile with the latest update
- Related: RHEL-90309
2025-05-09 23:25:49 +01:00
Andrew Hughes
fa21a3fa7d Add local version of JDK-8351500 for early interim release before 21.0.8
- Resolves: RHEL-90309
2025-05-09 23:24:14 +01:00
Andrew Hughes
3f11c93f7c Sync the copy of the portable specfile with the latest update
** This tarball is embargoed until 2025-04-15 @ 1pm PT. **

- Related: RHEL-86984
- Related: RHEL-86635
2025-04-30 18:37:37 +01:00
Andrew Hughes
d334f8531e Update to jdk-21.0.7+6 (GA)
- Update release notes to 21.0.7+6
- Rebase FIPS support against 21.0.7+5
- Require tzdata 2025a due to upstream inclusion of JDK-8347965

** This tarball is embargoed until 2025-04-15 @ 1pm PT. **

Resolves: RHEL-86984
Resolves: RHEL-86635
2025-04-30 18:37:03 +01:00
Andrew Hughes
ca0a5e63ee Bump tzdata requirement to 2024b for JDK-8339637
Resolves: RHEL-74001
2025-02-06 12:40:27 +00:00
Andrew Hughes
05293ac7e9 Update README.md to list an easier way of disabling the devkit
Related: RHEL-74403
2025-01-19 16:14:04 +00:00
Andrew Hughes
cf8b7d84b9 Sync the copy of the portable & devkit specfiles with the latest update
- Include the latest devkit patches

Related: RHEL-73562
2025-01-19 16:13:27 +00:00
Andrew Hughes
02a2b413f4 Update to jdk-21.0.6+7 (GA)
- Update release notes to 21.0.6+7

** This tarball is embargoed until 2025-01-21 @ 1pm PT. **

Resolves: RHEL-73562
2025-01-19 16:12:39 +00:00
Andrew Hughes
7bbdbc1d34 Include the devkit specfile and patches
- Sync the copy of the portable specfile with the devkit version
- Document the devkit in README.md

Related: RHEL-74403
2025-01-17 19:25:04 +00:00
Andrew Hughes
b5a0113565 Transition to the devkit build by not defining pkgos
- Exempt x86_64 from the static libs debuginfo test until portable uses an older DWARF version

Resolves: RHEL-74403
2025-01-17 19:21:04 +00:00
Andrew Hughes
fdc7bd8e57 Sync the copy of the portable specfile with the latest update
- Related: RHEL-61344
2024-10-23 18:28:13 +01:00
Andrew Hughes
af23ba1f68 Update to jdk-21.0.5+11 (GA)
- Update release notes to 21.0.5+11
- Remove local JDK-8327501 & JDK-8328366 backport as this is now upstream.

- Related: RHEL-61344
2024-10-23 18:18:25 +01:00
Andrew Hughes
84356cb5cb Sync the copy of the portable specfile with the latest update
** This tarball is embargoed until 2024-10-15 @ 1pm PT. **

- Related: RHEL-61344
2024-10-13 23:22:47 +01:00
Andrew Hughes
193727dbc1 Update to jdk-21.0.5+10 (GA)
- Update release notes to 21.0.5+10
- Switch to GA mode.
- Revert JDK-8327501 & JDK-8328366 backport until more mature.

** This tarball is embargoed until 2024-10-15 @ 1pm PT. **

- Resolves: RHEL-61344
2024-10-13 21:22:30 +01:00
Andrew Hughes
aa5e20fe2a pkgos definition needs to be early enough to be used in portablesuffix
- Related: RHEL-58797
2024-10-11 22:38:50 +01:00
Andrew Hughes
35ed24d674 Sync the copy of the portable specfile with the latest update
- Related: RHEL-58797
2024-10-11 19:09:26 +01:00
Andrew Hughes
f8540f07dc Update to jdk-21.0.5+9 (EA)
- Update release notes to 21.0.5+9

- Resolves: RHEL-58797
2024-10-11 19:08:50 +01:00
Andrew Hughes
7dbc284c12 Update to jdk-21.0.5+5 (EA)
- Update release notes to 21.0.5+5

- Related: RHEL-58797
2024-10-11 18:43:12 +01:00
Andrew Hughes
45e481afc8 Make build scripts executable
- Related: RHEL-58797
2024-10-11 18:37:20 +01:00
Andrew Hughes
d86bebc2e0 Update to jdk-21.0.5+1 (EA)
- Update release notes to 21.0.5+1
- Switch to EA mode
- Bump giflib version to 5.2.2 following JDK-8328999
- Bump libpng version to 1.6.43 following JDK-8329004

- Related: RHEL-58797
- Resolves: RHEL-17191
2024-10-11 18:35:38 +01:00
Andrew Hughes
13629ae49c Sync with RHEL 7 portable build
- Use ExclusiveArch over ExcludeArch
2024-10-11 18:26:43 +01:00
Andrew Hughes
ded048d843 Add build scripts to repository to ease remembering all CentOS & RHEL targets and options
Related: RHEL-58797
2024-10-07 23:15:54 +01:00
Andrew Hughes
e88ec2c9fa Handle debugedit being a separate package installed in /usr on RHEL/CentOS 10
Related: RHEL-58797
2024-10-07 22:17:55 +01:00
Andrew Hughes
5eba7c7f79 Vary portablesuffix depending on whether we are on RHEL ('el8') or CentOS ('el9')
Related: RHEL-58797
2024-10-07 21:16:01 +01:00
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
42 changed files with 4204 additions and 627 deletions

38
.gitignore vendored
View File

@ -1,2 +1,36 @@
SOURCES/openjdk-21.0.8+9.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
/openjdk-21.0.5+1-ea.tar.xz
/openjdk-21.0.5+5-ea.tar.xz
/openjdk-21.0.5+9-ea.tar.xz
/openjdk-21.0.5+10.tar.xz
/openjdk-21.0.5+11.tar.xz
/openjdk-21.0.6+6-ea.tar.xz
/openjdk-21.0.6+7.tar.xz
/openjdk-21.0.7+1-ea.tar.xz
/openjdk-21.0.7+2-ea.tar.xz
/openjdk-21.0.7+3-ea.tar.xz
/openjdk-21.0.7+4-ea.tar.xz
/openjdk-21.0.7+5-ea.tar.xz
/openjdk-21.0.7+6.tar.xz

View File

@ -1,2 +0,0 @@
3af78581a3c2538dda0885e64327745497a6f875 SOURCES/openjdk-21.0.8+9.tar.xz
c8281ee37b77d535c9c1af86609a531958ff7b34 SOURCES/tapsets-icedtea-6.0.0pre00-c848b93a8598.tar.xz

View File

@ -3,539 +3,6 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
New in release OpenJDK 21.0.8 (2025-07-15):
===========================================
Live versions of these release notes can be found at:
* https://bit.ly/openjdk2108
* CVEs
- CVE-2025-30749
- CVE-2025-30754
- CVE-2025-50059
- CVE-2025-50106
* Changes
- JDK-6956385: URLConnection.getLastModified() leaks file handles for jar:file and file: URLs
- JDK-8051591: Test javax/swing/JTabbedPane/8007563/Test8007563.java fails
- JDK-8136895: Writer not closed with disk full error, file resource leaked
- JDK-8180450: secondary_super_cache does not scale well
- JDK-8183348: Better cleanup for jdk/test/sun/security/pkcs12/P12SecretKey.java
- JDK-8200566: DistributionPointFetcher fails to fetch CRLs if the DistributionPoints field contains more than one DistributionPoint and the first one fails
- JDK-8202100: Merge vm/share/InMemoryJavaCompiler w/ jdk/test/lib/compiler/InMemoryJavaCompiler
- JDK-8210471: GZIPInputStream constructor could leak an un-end()ed Inflater
- JDK-8211400: nsk.share.gc.Memory::getArrayLength returns wrong value
- JDK-8220213: com/sun/jndi/dns/ConfigTests/Timeout.java failed intermittent
- JDK-8249831: Test sun/security/mscapi/nonUniqueAliases/NonUniqueAliases.java is marked with @ignore
- JDK-8253440: serviceability/sa/TestJhsdbJstackLineNumbers.java failed with "Didn't find enough line numbers"
- JDK-8256211: assert fired in java/net/httpclient/DependentPromiseActionsTest (infrequent)
- JDK-8258483: [TESTBUG] gtest CollectorPolicy.young_scaled_initial_ergo_vm fails if heap is too small
- JDK-8267174: Many test files have the wrong Copyright header
- JDK-8270269: Desktop.browse method fails if earlier CoInitialize call as COINIT_MULTITHREADED
- JDK-8276995: Bug in jdk.jfr.event.gc.collection.TestSystemGC
- JDK-8279016: JFR Leak Profiler is broken with Shenandoah
- JDK-8280991: [XWayland] No displayChanged event after setDisplayMode call
- JDK-8281511: java/net/ipv6tests/UdpTest.java fails with checkTime failed
- JDK-8282726: java/net/vthread/BlockingSocketOps.java timeout/hang intermittently on Windows
- JDK-8286204: [Accessibility,macOS,VoiceOver] VoiceOver reads the spinner value 10 as 1 when user iterates to 10 for the first time on macOS
- JDK-8286789: Test forceEarlyReturn002.java timed out
- JDK-8286875: ProgrammableUpcallHandler::on_entry/on_exit access thread fields from native
- JDK-8294155: Exception thrown before awaitAndCheck hangs PassFailJFrame
- JDK-8295804: javax/swing/JFileChooser/JFileChooserSetLocationTest.java failed with "setLocation() is not working properly"
- JDK-8297692: Avoid sending per-region GCPhaseParallel JFR events in G1ScanCollectionSetRegionClosure
- JDK-8303770: Remove Baltimore root certificate expiring in May 2025
- JDK-8305010: Test vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java timed out: thread not suspended
- JDK-8307318: Test serviceability/sa/ClhsdbCDSJstackPrintAll.java failed: ArrayIndexOutOfBoundsException
- JDK-8307824: Clean up Finalizable.java and finalize terminology in vmTestbase/nsk/share
- JDK-8308033: The jcmd thread dump related tests should test virtual threads
- JDK-8308966: Add intrinsic for float/double modulo for x86 AVX2 and AVX512
- JDK-8309667: TLS handshake fails because of ConcurrentModificationException in PKCS12KeyStore.engineGetEntry
- JDK-8309841: Jarsigner should print a warning if an entry is removed
- JDK-8309978: [x64] Fix useless padding
- JDK-8310066: Improve test coverage for JVMTI GetThreadState on carrier and mounted vthread
- JDK-8310525: DynamicLauncher for JDP test needs to try harder to find a free port
- JDK-8310643: Misformatted copyright messages in FFM
- JDK-8312246: NPE when HSDB visits bad oop
- JDK-8312475: org.jline.util.PumpReader signed byte problem
- JDK-8313290: Misleading exception message from STS.Subtask::get when task forked after shutdown
- JDK-8313430: [JVMCI] fatal error: Never compilable: in JVMCI shutdown
- JDK-8313654: Test WaitNotifySuspendedVThreadTest.java timed out
- JDK-8314056: Remove runtime platform check from frem/drem
- JDK-8314136: Test java/net/httpclient/CancelRequestTest.java failed: WARNING: tracker for HttpClientImpl(42) has outstanding operations
- JDK-8314236: Overflow in Collections.rotate
- JDK-8314319: LogCompilation doesn't reset lateInlining when it encounters a failure.
- JDK-8314840: 3 gc/epsilon tests ignore external vm options
- JDK-8314842: zgc/genzgc tests ignore vm flags
- JDK-8315128: jdk/jfr/event/runtime/TestResidentSetSizeEvent.java fails with "The size should be less than or equal to peak"
- JDK-8315484: java/awt/dnd/RejectDragDropActionTest.java timed out
- JDK-8315669: Open source several Swing PopupMenu related tests
- JDK-8315742: Open source several Swing Scroll related tests
- JDK-8315827: Kitchensink.java and RenaissanceStressTest.java time out with jvmti module errors
- JDK-8315871: Opensource five more Swing regression tests
- JDK-8315876: Open source several Swing CSS related tests
- JDK-8315951: Open source several Swing HTMLEditorKit related tests
- JDK-8315981: Opensource five more random Swing tests
- JDK-8316061: Open source several Swing RootPane and Slider related tests
- JDK-8316324: Opensource five miscellaneous Swing tests
- JDK-8316388: Opensource five Swing component related regression tests
- JDK-8316452: java/lang/instrument/modules/AppendToClassPathModuleTest.java ignores VM flags
- JDK-8316497: ColorConvertOp - typo for non-ICC conversions needs one-line fix
- JDK-8316580: HttpClient with StructuredTaskScope does not close when a task fails
- JDK-8316629: j.text.DateFormatSymbols setZoneStrings() exception is unhelpful
- JDK-8317264: Pattern.Bound has `static` fields that should be `static final`.
- JDK-8318509: x86 count_positives intrinsic broken for -XX:AVX3Threshold=0
- JDK-8318636: Add jcmd to print annotated process memory map
- JDK-8318700: MacOS Zero cannot run gtests due to wrong JVM path
- JDK-8318811: Compiler directives parser swallows a character after line comments
- JDK-8318915: Enhance checks in BigDecimal.toPlainString()
- JDK-8319439: Move BufferNode from PtrQueue files to new files
- JDK-8319572: Test jdk/incubator/vector/LoadJsvmlTest.java ignores VM flags
- JDK-8319690: [AArch64] C2 compilation hits offset_ok_for_immed: assert "c2 compiler bug"
- JDK-8320687: sun.jvmstat.monitor.MonitoredHost.getMonitoredHost() throws unexpected exceptions when invoked concurrently
- JDK-8320948: NPE due to unreported compiler error
- JDK-8321204: C2: assert(false) failed: node should be in igvn hash table
- JDK-8321479: java -D-D crashes
- JDK-8321931: memory_swap_current_in_bytes reports 0 as "unlimited"
- JDK-8322141: SequenceInputStream.transferTo should not return as soon as Long.MAX_VALUE bytes have been transferred
- JDK-8322475: Extend printing for System.map
- JDK-8323795: jcmd Compiler.codecache should print total size of code cache
- JDK-8324345: Stack overflow during C2 compilation when splitting memory phi
- JDK-8324678: Replace NULL with nullptr in HotSpot gtests
- JDK-8324681: Replace NULL with nullptr in HotSpot jtreg test native code files
- JDK-8324799: Use correct extension for C++ test headers
- JDK-8324880: Rename get_stack_trace.h
- JDK-8325055: Rename Injector.h
- JDK-8325180: Rename jvmti_FollowRefObjects.h
- JDK-8325347: Rename native_thread.h
- JDK-8325367: Rename nsk_list.h
- JDK-8325435: [macos] Menu or JPopupMenu not closed when main window is resized
- JDK-8325456: Rename nsk_mutex.h
- JDK-8325458: Rename mlvmJvmtiUtils.h
- JDK-8325680: Uninitialised memory in deleteGSSCB of GSSLibStub.c:179
- JDK-8325682: Rename nsk_strace.h
- JDK-8325910: Rename jnihelper.h
- JDK-8326090: Rename jvmti_aod.h
- JDK-8326389: [test] improve assertEquals failure output
- JDK-8326524: Rename agent_common.h
- JDK-8326586: Improve Speed of System.map
- JDK-8327071: [Testbug] g-tests for cgroup leave files in /tmp on linux
- JDK-8327169: serviceability/dcmd/vm/SystemMapTest.java and SystemDumpMapTest.java may fail after JDK-8326586
- JDK-8327370: (ch) sun.nio.ch.Poller.register throws AssertionError
- JDK-8327461: KeyStore getEntry is not thread-safe
- JDK-8328107: Shenandoah/C2: TestVerifyLoopOptimizations test failure
- JDK-8328301: Convert Applet test ManualHTMLDataFlavorTest.java to main program
- JDK-8328482: Convert and Open source few manual applet test to main based
- JDK-8328484: Convert and Opensource few JFileChooser applet test to main
- JDK-8328648: Remove applet usage from JFileChooser tests bug4150029
- JDK-8328670: Automate and open source few closed manual applet test
- JDK-8328673: Convert closed text/html/CSS manual applet test to main
- JDK-8328864: NullPointerException in sun.security.jca.ProviderList.getService()
- JDK-8329261: G1: interpreter post-barrier x86 code asserts index size of wrong buffer
- JDK-8329729: java/util/Properties/StoreReproducibilityTest.java times out
- JDK-8330106: C2: VectorInsertNode::make() shouldn't call ConINode::make() directly
- JDK-8330158: C2: Loop strip mining uses ABS with min int
- JDK-8330534: Update nsk/jdwp tests to use driver instead of othervm
- JDK-8330598: java/net/httpclient/Http1ChunkedTest.java fails with java.util.MissingFormatArgumentException: Format specifier '%s'
- JDK-8330936: [ubsan] exclude function BilinearInterp and ShapeSINextSpan in libawt java2d from ubsan checks
- JDK-8331088: Incorrect TraceLoopPredicate output
- JDK-8331735: UpcallLinker::on_exit races with GC when copying frame anchor
- JDK-8332252: Clean up vmTestbase/vm/share
- JDK-8332506: SIGFPE In ObjectSynchronizer::is_async_deflation_needed()
- JDK-8332631: Update nsk.share.jpda.BindServer to don't use finalization
- JDK-8332641: Update nsk.share.jpda.Jdb to don't use finalization
- JDK-8332880: JFR GCHelper class recognizes "Archive" regions as valid
- JDK-8332921: Ctrl+C does not call shutdown hooks after JLine upgrade
- JDK-8333013: Update vmTestbase/nsk/share/LocalProcess.java to don't use finalization
- JDK-8333117: Remove support of remote and manual debuggee launchers
- JDK-8333680: com/sun/tools/attach/BasicTests.java fails with "SocketException: Permission denied: connect"
- JDK-8333805: Replaying compilation with null static final fields results in a crash
- JDK-8333890: Fatal error in auto-vectorizer with float16 kernel.
- JDK-8334644: Automate javax/print/attribute/PageRangesException.java
- JDK-8334780: Crash: assert(h_array_list.not_null()) failed: invariant
- JDK-8334895: OpenJDK fails to configure on linux aarch64 when CDS is disabled after JDK-8331942
- JDK-8335181: Incorrect handling of HTTP/2 GOAWAY frames in HttpClient
- JDK-8335643: serviceability/dcmd/vm tests fail for ZGC after JDK-8322475
- JDK-8335662: [AArch64] C1: guarantee(val < (1ULL << nbits)) failed: Field too big for insn
- JDK-8335684: Test ThreadCpuTime.java should pause like ThreadCpuTimeArray.java
- JDK-8335710: serviceability/dcmd/vm/SystemDumpMapTest.java and SystemMapTest.java fail on Linux Alpine after 8322475
- JDK-8335836: serviceability/jvmti/StartPhase/AllowedFunctions/AllowedFunctions.java fails with unexpected exit code: 112
- JDK-8335860: compiler/vectorization/TestFloat16VectorConvChain.java fails with non-standard AVX/SSE settings
- JDK-8336042: Caller/callee param size mismatch in deoptimization causes crash
- JDK-8336499: Failure when creating non-CRT RSA private keys in SunPKCS11
- JDK-8336587: failure_handler lldb command times out on macosx-aarch64 core file
- JDK-8336827: compiler/vectorization/TestFloat16VectorConvChain.java timeouts on ppc64 platforms after JDK-8335860
- JDK-8337221: CompileFramework: test library to conveniently compile java and jasm sources for fuzzing
- JDK-8337299: vmTestbase/nsk/jdb/stop_at/stop_at002/stop_at002.java failure goes undetected
- JDK-8337681: PNGImageWriter uses much more memory than necessary
- JDK-8337795: Type annotation attached to incorrect type during class reading
- JDK-8337958: Out-of-bounds array access in secondary_super_cache
- JDK-8337981: ShenandoahHeap::is_in should check for alive regions
- JDK-8337998: CompletionFailure in getEnclosingType attaching type annotations
- JDK-8338010: WB_IsFrameDeoptimized miss ResourceMark
- JDK-8338064: Give better error for ConcurrentHashTable corruption
- JDK-8338136: Hotspot should support multiple large page sizes on Windows
- JDK-8338154: Fix -Wzero-as-null-pointer-constant warnings in gtest framework
- JDK-8338202: Shenandoah: Improve handshake closure labels
- JDK-8338314: JFR: Split JFRCheckpoint VM operation
- JDK-8339148: Make os::Linux::active_processor_count() public
- JDK-8339288: Improve diagnostic logging runtime/cds/DeterministicDump.java
- JDK-8339300: CollectorPolicy.young_scaled_initial_ergo_vm gtest fails on ppc64 based platforms
- JDK-8339538: Wrong timeout computations in DnsClient
- JDK-8339639: Opensource few AWT PopupMenu tests
- JDK-8339678: Update runtime/condy tests to be executed with VM flags
- JDK-8339727: Open source several AWT focus tests - series 1
- JDK-8339769: Incorrect error message during startup if working directory does not exist
- JDK-8339794: Open source closed choice tests #1
- JDK-8339810: Clean up the code in sun.tools.jar.Main to properly close resources and use ZipFile during extract
- JDK-8339836: Open source several AWT Mouse tests - Batch 1
- JDK-8339842: Open source several AWT focus tests - series 2
- JDK-8339895: Open source several AWT focus tests - series 3
- JDK-8339906: Open source several AWT focus tests - series 4
- JDK-8339935: Open source several AWT focus tests - series 5
- JDK-8339982: Open source several AWT Mouse tests - Batch 2
- JDK-8339984: Open source AWT MenuItem related tests
- JDK-8339995: Open source several AWT focus tests - series 6
- JDK-8340024: In ClassReader, extract a constant for the superclass supertype_index
- JDK-8340077: Open source few Checkbox tests - Set2
- JDK-8340084: Open source AWT Frame related tests
- JDK-8340143: Open source several Java2D rendering loop tests.
- JDK-8340146: ZGC: TestAllocateHeapAt.java should not run with UseLargePages
- JDK-8340164: Open source few Component tests - Set1
- JDK-8340173: Open source some Component/Panel/EventQueue tests - Set2
- JDK-8340176: Replace usage of -noclassgc with -Xnoclassgc in test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest2.java
- JDK-8340193: Open source several AWT Dialog tests - Batch 1
- JDK-8340228: Open source couple more miscellaneous AWT tests
- JDK-8340271: Open source several AWT Robot tests
- JDK-8340279: Open source several AWT Dialog tests - Batch 2
- JDK-8340332: Open source mixed AWT tests - Set3
- JDK-8340366: Open source several AWT Dialog tests - Batch 3
- JDK-8340367: Opensource few AWT image tests
- JDK-8340393: Open source closed choice tests #2
- JDK-8340407: Open source a few more Component related tests
- JDK-8340417: Open source some MenuBar tests - Set1
- JDK-8340432: Open source some MenuBar tests - Set2
- JDK-8340433: Open source closed choice tests #3
- JDK-8340437: Open source few more AWT Frame related tests
- JDK-8340458: Open source additional Component tests (part 2)
- JDK-8340555: Open source DnD tests - Set4
- JDK-8340560: Open Source several AWT/2D font and rendering tests
- JDK-8340605: Open source several AWT PopupMenu tests
- JDK-8340621: Open source several AWT List tests
- JDK-8340625: Open source additional Component tests (part 3)
- JDK-8340639: Open source few more AWT List tests
- JDK-8340713: Open source DnD tests - Set5
- JDK-8340784: Remove PassFailJFrame constructor with screenshots
- JDK-8340790: Open source several AWT Dialog tests - Batch 4
- JDK-8340809: Open source few more AWT PopupMenu tests
- JDK-8340874: Open source some of the AWT Geometry/Button tests
- JDK-8340907: Open source closed frame tests # 2
- JDK-8340966: Open source few Checkbox and Cursor tests - Set1
- JDK-8340967: Open source few Cursor tests - Set2
- JDK-8340978: Open source few DnD tests - Set6
- JDK-8340985: Open source some Desktop related tests
- JDK-8341000: Open source some of the AWT Window tests
- JDK-8341004: Open source AWT FileDialog related tests
- JDK-8341072: Open source several AWT Canvas and Rectangle related tests
- JDK-8341128: open source some 2d graphics tests
- JDK-8341148: Open source several Choice related tests
- JDK-8341162: Open source some of the AWT window test
- JDK-8341170: Open source several Choice related tests (part 2)
- JDK-8341177: Opensource few List and a Window test
- JDK-8341191: Open source few more AWT FileDialog tests
- JDK-8341239: Open source closed frame tests # 3
- JDK-8341257: Open source few DND tests - Set1
- JDK-8341258: Open source few various AWT tests - Set1
- JDK-8341278: Open source few TrayIcon tests - Set7
- JDK-8341298: Open source more AWT window tests
- JDK-8341373: Open source closed frame tests # 4
- JDK-8341378: Open source few TrayIcon tests - Set8
- JDK-8341447: Open source closed frame tests # 5
- JDK-8341535: sun/awt/font/TestDevTransform.java fails with RuntimeException: Different rendering
- JDK-8341637: java/net/Socket/UdpSocket.java fails with "java.net.BindException: Address already in use" (macos-aarch64)
- JDK-8341779: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377)
- JDK-8341972: java/awt/dnd/DnDRemoveFocusOwnerCrashTest.java timed out after JDK-8341257
- JDK-8342075: HttpClient: improve HTTP/2 flow control checks
- JDK-8342376: More reliable OOM handling in ExceptionDuringDumpAtObjectsInitPhase test
- JDK-8342524: Use latch in AbstractButton/bug6298940.java instead of delay
- JDK-8342633: javax/management/security/HashedPasswordFileTest.java creates tmp file in src dir
- JDK-8342958: Use jvmArgs consistently in microbenchmarks
- JDK-8343019: Primitive caches must use boxed instances from the archive
- JDK-8343037: Missing @since tag on JColorChooser.showDialog overload
- JDK-8343103: Enable debug logging for vmTestbase/nsk/jvmti/scenarios/sampling/SP05/sp05t003/TestDescription.java
- JDK-8343124: Tests fails with java.lang.IllegalAccessException: class com.sun.javatest.regtest.agent.MainWrapper$MainTask cannot access
- JDK-8343144: UpcallLinker::on_entry racingly clears pending exception with GC safepoints
- JDK-8343170: java/awt/Cursor/JPanelCursorTest/JPanelCursorTest.java does not show the default cursor
- JDK-8343224: print/Dialog/PaperSizeError.java fails with MediaSizeName is not A4: A4
- JDK-8343342: java/io/File/GetXSpace.java fails on Windows with CD-ROM drive
- JDK-8343345: Use -jvmArgsPrepend when running microbenchmarks in RunTests.gmk
- JDK-8343529: serviceability/sa/ClhsdbWhere.java fails AssertionFailure: Corrupted constant pool
- JDK-8343754: Problemlist jdk/jfr/event/oldobject/TestShenandoah.java after JDK-8279016
- JDK-8343855: HTTP/2 ConnectionWindowUpdateSender may miss some unprocessed DataFrames from closed streams
- JDK-8343891: Test javax/swing/JTabbedPane/TestJTabbedPaneBackgroundColor.java failed
- JDK-8343936: Adjust timeout in test javax/management/monitor/DerivedGaugeMonitorTest.java
- JDK-8344316: security/auth/callback/TextCallbackHandler/Password.java make runnable with JTReg and add the UI
- JDK-8344346: java/net/httpclient/ShutdownNow.java fails with java.lang.AssertionError: client was still running, but exited after further delay: timeout should be adjusted
- JDK-8344361: Restore null return for invalid services from legacy providers
- JDK-8344414: ZGC: Another division by zero in rule_major_allocation_rate
- JDK-8344925: translet-name ignored when package-name is also set
- JDK-8345133: Test sun/security/tools/jarsigner/TsacertOptionTest.java failed: Warning found in stdout
- JDK-8345134: Test sun/security/tools/jarsigner/ConciseJarsigner.java failed: unable to find valid certification path to requested target
- JDK-8345146: [PPC64] Make intrinsic conversions between bit representations of half precision values and floats
- JDK-8345341: Fix incorrect log message in JDI stop002t test
- JDK-8345357: test/jdk/javax/swing/JRadioButton/8033699/bug8033699.java fails in ubuntu22.04
- JDK-8345447: test/jdk/javax/swing/JToolBar/4529206/bug4529206.java fails in ubuntu22.04
- JDK-8345547: test/jdk/javax/swing/text/DefaultEditorKit/4278839/bug4278839.java fails in ubuntu22.04
- JDK-8345598: Upgrade NSS binaries for interop tests
- JDK-8345625: Better HTTP connections
- JDK-8345728: [Accessibility,macOS,Screen Magnifier]: JCheckbox unchecked state does not magnify but works for checked state
- JDK-8345838: Remove the appcds/javaldr/AnonVmClassesDuringDump.java test
- JDK-8346049: jdk/test/lib/security/timestamp/TsaServer.java warnings
- JDK-8346082: Output JVMTI agent information in hserr files
- JDK-8346264: "Total compile time" counter should include time spent in failing/bailout compiles
- JDK-8346581: JRadioButton/ButtonGroupFocusTest.java fails in CI on Linux
- JDK-8346888: [ubsan] block.cpp:1617:30: runtime error: 9.97582e+36 is outside the range of representable values of type 'int'
- JDK-8347000: Bug in com/sun/net/httpserver/bugs/B6361557.java test
- JDK-8347019: Test javax/swing/JRadioButton/8033699/bug8033699.java still fails: Focus is not on Radio Button Single as Expected
- JDK-8347083: Incomplete logging in nsk/jvmti/ResourceExhausted/resexhausted00* tests
- JDK-8347126: gc/stress/TestStressG1Uncommit.java gets OOM-killed
- JDK-8347173: java/net/DatagramSocket/InterruptibleDatagramSocket.java fails with virtual thread factory
- JDK-8347286: (fs) Remove some extensions from java/nio/file/Files/probeContentType/Basic.java
- JDK-8347296: WinInstallerUiTest fails in local test runs if the path to test work directory is longer that regular
- JDK-8347373: HTTP/2 flow control checks may count unprocessed data twice
- JDK-8347506: Compatible OCSP readtimeout property with OCSP timeout
- JDK-8347596: Update HSS/LMS public key encoding
- JDK-8347629: Test FailOverDirectExecutionControlTest.java fails with -Xcomp
- JDK-8347995: Race condition in jdk/java/net/httpclient/offline/FixedResponseHttpClient.java
- JDK-8348107: test/jdk/java/net/httpclient/HttpsTunnelAuthTest.java fails intermittently
- JDK-8348110: Update LCMS to 2.17
- JDK-8348299: Update List/ItemEventTest/ItemEventTest.java
- JDK-8348323: Corrupted timezone string in JVM crash log
- JDK-8348596: Update FreeType to 2.13.3
- JDK-8348597: Update HarfBuzz to 10.4.0
- JDK-8348598: Update Libpng to 1.6.47
- JDK-8348600: Update PipeWire to 1.3.81
- JDK-8348865: JButton/bug4796987.java never runs because Windows XP is unavailable
- JDK-8348936: [Accessibility,macOS,VoiceOver] VoiceOver doesn't announce untick on toggling the checkbox with "space" key on macOS
- JDK-8348989: Better Glyph drawing
- JDK-8349111: Enhance Swing supports
- JDK-8349200: [JMH] time.format.ZonedDateTimeFormatterBenchmark fails
- JDK-8349348: Refactor ClassLoaderDeadlock.sh and Deadlock.sh to run fully in java
- JDK-8349358: [JMH] Cannot access class jdk.internal.vm.ContinuationScope
- JDK-8349492: Update sun/security/pkcs12/KeytoolOpensslInteropTest.java to use a recent Openssl version
- JDK-8349501: Relocate supporting classes in security/testlibrary to test/lib/jdk tree
- JDK-8349594: Enhance TLS protocol support
- JDK-8349623: [ASAN] Gtest os_linux.glibc_mallinfo_wrapper_vm fails
- JDK-8349637: Integer.numberOfLeadingZeros outputs incorrectly in certain cases
- JDK-8349751: AIX build failure after upgrade pipewire to 1.3.81
- JDK-8350201: Out of bounds access on Linux aarch64 in os::print_register_info
- JDK-8350211: CTW: Attempt to preload all classes in constant pool
- JDK-8350224: Test javax/swing/JComboBox/TestComboBoxComponentRendering.java fails in ubuntu 23.x and later
- JDK-8350260: Improve HTML instruction formatting in PassFailJFrame
- JDK-8350313: Include timings for leaving safepoint in safepoint logging
- JDK-8350383: Test: add more test case for string compare (UL case)
- JDK-8350386: Test TestCodeCacheFull.java fails with option -XX:-UseCodeCacheFlushing
- JDK-8350412: [21u] AArch64: Ambiguous frame layout leads to incorrect traces in JFR
- JDK-8350483: AArch64: turn on signum intrinsics by default on Ampere CPUs
- JDK-8350498: Remove two Camerfirma root CA certificates
- JDK-8350546: Several java/net/InetAddress tests fails UnknownHostException
- JDK-8350616: Skip ValidateHazardPtrsClosure in non-debug builds
- JDK-8350650: Bump update version for OpenJDK: jdk-21.0.8
- JDK-8350682: [JMH] vector.IndexInRangeBenchmark failed with IndexOutOfBoundsException for size=1024
- JDK-8350786: Some java/lang jtreg tests miss requires vm.hasJFR
- JDK-8350924: javax/swing/JMenu/4213634/bug4213634.java fails
- JDK-8350991: Improve HTTP client header handling
- JDK-8351086: (fc) Make java/nio/channels/FileChannel/BlockDeviceSize.java test manual
- JDK-8351500: G1: NUMA migrations cause crashes in region allocation
- JDK-8351665: Remove unused UseNUMA in os_aix.cpp
- JDK-8351933: Inaccurate masking of TC subfield decrement in ForkJoinPool
- JDK-8352076: [21u] Problem list tests that fail in 21 and would be fixed by 8309622
- JDK-8352109: java/awt/Desktop/MailTest.java fails in platforms where Action.MAIL is not supported
- JDK-8352302: Test sun/security/tools/jarsigner/TimestampCheck.java is failing
- JDK-8352512: TestVectorZeroCount: counter not reset between iterations
- JDK-8352676: Opensource JMenu tests - series1
- JDK-8352680: Opensource few misc swing tests
- JDK-8352684: Opensource JInternalFrame tests - series1
- JDK-8352706: httpclient HeadTest does not run on HTTP2
- JDK-8352716: (tz) Update Timezone Data to 2025b
- JDK-8352908: Open source several swing tests batch1
- JDK-8352942: jdk/jfr/startupargs/TestMemoryOptions.java fails with 32-bit build
- JDK-8353070: Clean up and open source couple AWT Graphics related tests (Part 1)
- JDK-8353138: Screen capture for test TaskbarPositionTest.java, failure case
- JDK-8353190: Use "/native" Run Option for TestAvailableProcessors Execution
- JDK-8353237: [AArch64] Incorrect result of VectorizedHashCode intrinsic on Cortex-A53
- JDK-8353320: Open source more Swing text tests
- JDK-8353446: Open source several AWT Menu tests - Batch 2
- JDK-8353475: Open source two Swing DefaultCaret tests
- JDK-8353685: Open some JComboBox bugs 4
- JDK-8353709: Debug symbols bundle should contain full debug files when building --with-external-symbols-in-bundles=public
- JDK-8353787: Increased number of SHA-384-Digest java.util.jar.Attributes$Name instances leading to higher memory footprint
- JDK-8353942: Open source Swing Tests - Set 5
- JDK-8354255: [jittester] Remove TempDir debug output
- JDK-8354530: AIX: sporadic unexpected errno when calling setsockopt in Net.joinOrDrop
- JDK-8354554: Open source several clipboard tests batch1
- JDK-8354802: MAX_SECS definition is unused in os_linux
- JDK-8354893: [REDO BACKPORT] javac crashes while adding type annotations to the return type of a constructor (JDK-8320001)
- JDK-8355498: [AIX] Adapt code for C++ VLA rule
- JDK-8356053: Test java/awt/Toolkit/Headless/HeadlessToolkit.java fails by timeout
- JDK-8356096: ISO 4217 Amendment 179 Update
- JDK-8356571: Re-enable -Wtype-limits for GCC in LCMS
- JDK-8357105: C2: compilation fails with "assert(false) failed: empty program detected during loop optimization"
- JDK-8357193: [VS 2022 17.14] Warning C5287 in debugInit.c: enum type mismatch during build
- JDK-8359170: Add 2 TLS and 2 CS Sectigo roots
- JDK-8360147: Better Glyph drawing redux
- JDK-8360406: [21u] Disable logic for attaching type annotations to class files until 8359336 is fixed
- JDK-8361672: [21u] Remove designator DEFAULT_PROMOTED_VERSION_PRE=ea for release 21.0.8
Notes on individual issues:
===========================
tools/javac:
JDK-8341779: [REDO BACKPORT] type annotations are not visible to javac plugins across compilation boundaries (JDK-8225377)
==========================================================================================================================
The compiler in previous releases of OpenJDK 21 would only provide
access to type annotations on types loaded from source code files. If
the type was instead loaded from bytecode, then any type annotations
would be absent.
With this release, `TypeMirror` now provides access to annotations for
types loaded from bytecode. These type annotations can be obtained
using `AnnotationMirror#getAnnotationMirrors` and will be included in
the output of `AnnotationMirror#toString`.
Programs that rely on type annotations being absent from elements
loaded from bytecode will need to be updated accordingly. Due to
ongoing issues with this new feature (see JDK-8360406), it is not
enabled by default and the option `-XDaddTypeAnnotationsToSymbol=true`
must be specified in order for bytecode type annotations to be
included.
core-libs/java.net:
JDK-8342075: HttpClient: improve HTTP/2 flow control checks
===========================================================
This release of OpenJDK 21 enhances the HTTP/2 client implementation
in `java.net.http.HttpClient` to report flow control errors back to
the server. While this should be transparent in most cases, it may
lead to streams being reset or connections being closed if connecting
to a HTTP/2 server that does not correctly handle these errors.
Flow control limits can be adjusted using the following existing
properties:
* `jdk.httpclient.connectionWindowSize`
- Specifies the HTTP/2 client connection window size in bytes.
- Default value: `2^26`
- Range: `2^16-1` to `2^31-1`.
* `jdk.httpclient.windowSize`
- Specifies the HTTP/2 client stream window size in bytes.
- Default value: `16777216` (16MB)
- Range: `2^14` to `2^31-1`
Specifying an invalid value leads to the default value being used.
The implementation guarantees that the actual value used for the
connection window size will be no smaller than the stream window size.
hotspot/runtime:
JDK-8318636: Add jcmd to print annotated process memory map
===========================================================
Two new diagnostic commands have been added to `jcmd`, which print the
virtual memory map of the JVM either to standard output or a file. If
Native Memory Tracking (NMT) is enabled, NMT information about the
virtual memory segments will be included.
The new commands are:
* `jcmd <pid> System.map` -- prints the virtual memory map of the JVM
identified by `<pid>` to the standard output.
* `jcmd <pid> System.dump_map` -- prints the virtual memory map of the
JVM identified by `<pid>` to a file `vm_memory_map_<pid>.txt` in the
current directory.
security-libs/java.security:
JDK-8303770: Remove Baltimore root certificate expiring in May 2025
===================================================================
The following root certificate from Baltimore has been removed from
the `cacerts` keystore:
Alias Name: baltimorecybertrustca [jdk]
Distinguished Name: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE
JDK-8347506: Compatible OCSP readtimeout property with OCSP timeout
===================================================================
The initial release of OpenJDK 21 introduced the
`com.sun.security.ocsp.readtimeout` property, which was paired with
the existing `com.sun.security.ocsp.timeout` to give greater control
over the timeouts for OCSP connections and certificate retrieval. The
existence of two separate properties allows the timeout for reading
data to be set separately from the timeout for the transport layer.
When `com.sun.security.ocsp.readtimeout` was backported to OpenJDK
17.0.15, the default value of `com.sun.security.ocsp.readtimeout` was
changed from 15 seconds to the value of
`com.sun.security.ocsp.timeout`, which itself has a default of 15
seconds. This change is brought forward to OpenJDK 21 with this
release.
If neither property is set, both will default to 15 seconds as in
previous OpenJDK 21 releases. If only `com.sun.security.ocsp.timeout`
is set, `com.sun.security.ocsp.readtimeout` will use the same value
which retains the behaviour from before the
`com.sun.security.ocsp.readtimeout` property was introduced.
JDK-8347596: Update HSS/LMS public key encoding
===============================================
The X.509 encoding format for HSS/LMS public keys has been updated to
align with the latest standard outlined in RFC 9708 [0]. Notably, the
OCTET_STRING wrapping around the public key value has been removed.
For compatibility, the JDK will still detect the presence of DER
encoding when reading keys encoded by earlier releases.
[0] https://www.rfc-editor.org/rfc/rfc9708.html#name-hss-lms-public-key-identifi
JDK-8350498: Remove two Camerfirma root CA certificates
=======================================================
The following expired root certificates from Camerfirma have been
removed from the `cacerts` keystore:
Alias name: camerfirmachamberscommerceca [jdk]
CN=Chambers of Commerce Root
OU=http://www.chambersign.org
O=AC Camerfirma SA CIF A82743287
C=EU
SHA256: 0C:25:8A:12:A5:67:4A:EF:25:F2:8B:A7:DC:FA:EC:EE:A3:48:E5:41:E6:F5:CC:4E:E6:3B:71:B3:61:60:6A:C3
Alias name: camerfirmachambersignca [jdk]
CN=Global Chambersign Root - 2008
O=AC Camerfirma S.A.
SERIALNUMBER=A82743287
L=Madrid (see current address at www.camerfirma.com/address)
C=EU
SHA256: 13:63:35:43:93:34:A7:69:80:16:A0:D3:24:DE:72:28:4E:07:9D:7B:52:20:BB:8F:BD:74:78:16:EE:BE:BA:CA
JDK-8359170: Add 2 TLS and 2 CS Sectigo roots
=============================================
The following root certificates have been added to the cacerts
truststore:
Name: Sectigo Limited
Alias Name: sectigocodesignroote46
Distinguished Name: CN=Sectigo Public Code Signing Root E46, O=Sectigo Limited, C=GB
Name: Sectigo Limited
Alias Name: sectigocodesignrootr46
Distinguished Name: CN=Sectigo Public Code Signing Root R46, O=Sectigo Limited, C=GB
Name: Sectigo Limited
Alias Name: sectigotlsroote46
Distinguished Name: Sectigo Public Server Authentication Root E46, O=Sectigo Limited, C=GB
Name: Sectigo Limited
Alias Name: sectigotlsrootr46
Distinguished Name: Sectigo Public Server Authentication Root R46, O=Sectigo Limited, C=GB
New in release OpenJDK 21.0.7 (2025-04-15): New in release OpenJDK 21.0.7 (2025-04-15):
=========================================== ===========================================
Live versions of these release notes can be found at: Live versions of these release notes can be found at:
@ -2137,6 +1604,8 @@ Name: GlobalSign
Alias Name: globalsigne46 Alias Name: globalsigne46
Distinguished Name: CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE Distinguished Name: CN=GlobalSign Root E46, O=GlobalSign nv-sa, C=BE
security-libs/javax.security:
JDK-8328638: Fallback Option For POST-only OCSP Requests JDK-8328638: Fallback Option For POST-only OCSP Requests
======================================================== ========================================================
JDK-8179503, introduced in OpenJDK 17, added support for using the JDK-8179503, introduced in OpenJDK 17, added support for using the
@ -2176,6 +1645,8 @@ runtime search path to use down to the default of the linker. With
this release, the option `--disable-new-dtags` is explicitly passed to this release, the option `--disable-new-dtags` is explicitly passed to
the linker to avoid setting DT_RUNPATH. the linker to avoid setting DT_RUNPATH.
tools/jpackage:
JDK-8295111: dpkg appears to have problems resolving symbolically linked native libraries JDK-8295111: dpkg appears to have problems resolving symbolically linked native libraries
========================================================================================= =========================================================================================
The jpackage tool uses `dpkg -S` to lookup which package provides a The jpackage tool uses `dpkg -S` to lookup which package provides a

View File

@ -1 +0,0 @@
../SOURCES/java-21-openjdk-portable.specfile

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

@ -126,7 +126,7 @@
# Set of architectures for which we build fastdebug builds # Set of architectures for which we build fastdebug builds
%global fastdebug_arches x86_64 ppc64le aarch64 %global fastdebug_arches x86_64 ppc64le aarch64
# Set of architectures with a Just-In-Time (JIT) compiler # Set of architectures with a Just-In-Time (JIT) compiler
%global jit_arches %{arm} %{aarch64} %{ix86} %{power64} s390x sparcv9 sparc64 x86_64 riscv64 %global jit_arches %{arm} %{aarch64} %{ix86} %{power64} s390x sparcv9 sparc64 x86_64
# Set of architectures which use the Zero assembler port (!jit_arches) # Set of architectures which use the Zero assembler port (!jit_arches)
%global zero_arches ppc s390 %global zero_arches ppc s390
# Set of architectures which run a full bootstrap cycle # Set of architectures which run a full bootstrap cycle
@ -136,15 +136,15 @@
# Set of architectures with a Ahead-Of-Time (AOT) compiler # Set of architectures with a Ahead-Of-Time (AOT) compiler
%global aot_arches x86_64 %{aarch64} %global aot_arches x86_64 %{aarch64}
# Set of architectures which support the serviceability agent # Set of architectures which support the serviceability agent
%global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm} riscv64 %global sa_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64} %{arm}
# Set of architectures which support class data sharing # Set of architectures which support class data sharing
# As of JDK-8005165 in OpenJDK 10, class sharing is not arch-specific # As of JDK-8005165 in OpenJDK 10, class sharing is not arch-specific
# However, it does segfault on the Zero assembler port, so currently JIT only # However, it does segfault on the Zero assembler port, so currently JIT only
%global share_arches %{jit_arches} %global share_arches %{jit_arches}
# Set of architectures for which we build the Shenandoah garbage collector # Set of architectures for which we build the Shenandoah garbage collector
%global shenandoah_arches x86_64 %{aarch64} riscv64 %global shenandoah_arches x86_64 %{aarch64}
# Set of architectures for which we build the Z garbage collector # Set of architectures for which we build the Z garbage collector
%global zgc_arches x86_64 riscv64 %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 (libjsvml.so) # Set of architectures for which java has short vector math library (libjsvml.so)
@ -161,7 +161,7 @@
# Set of architectures for which we have a devkit # Set of architectures for which we have a devkit
# Only used on RHEL # Only used on RHEL
%if 0%{?centos} == 0 %if 0%{?centos} == 0
%global devkit_arches %{aarch64} %{ppc64le} riscv64 s390x x86_64 %global devkit_arches %{aarch64} %{ppc64le} s390x x86_64
%endif %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
@ -300,10 +300,6 @@
%global archinstall aarch64 %global archinstall aarch64
%global stapinstall arm64 %global stapinstall arm64
%endif %endif
%ifarch riscv64
%global archinstall riscv64
%global stapinstall %{_target_cpu}
%endif
# 32 bit sparc, optimized for v9 # 32 bit sparc, optimized for v9
%ifarch sparcv9 %ifarch sparcv9
%global archinstall sparc %global archinstall sparc
@ -329,7 +325,7 @@
# New Version-String scheme-style defines # New Version-String scheme-style defines
%global featurever 21 %global featurever 21
%global interimver 0 %global interimver 0
%global updatever 8 %global updatever 7
%global patchver 0 %global patchver 0
# buildjdkver is usually same as %%{featurever}, # buildjdkver is usually same as %%{featurever},
# but in time of bootstrap of next jdk, it is featurever-1, # but in time of bootstrap of next jdk, it is featurever-1,
@ -393,8 +389,8 @@
%global origin_nice OpenJDK %global origin_nice OpenJDK
%global top_level_dir_name %{vcstag} %global top_level_dir_name %{vcstag}
%global top_level_dir_name_backup %{top_level_dir_name}-backup %global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 9 %global buildver 6
%global rpmrelease 1 %global rpmrelease 2
#%%global tagsuffix %%{nil} #%%global tagsuffix %%{nil}
# Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit # Priority must be 8 digits in total; up to openjdk 1.8, we were using 18..... so when we moved to 11, we had to add another digit
%if %is_system_jdk %if %is_system_jdk
@ -544,7 +540,7 @@
%if 0%{?centos} == 0 %if 0%{?centos} == 0
ExclusiveArch: %{devkit_arches} ExclusiveArch: %{devkit_arches}
%else %else
ExclusiveArch: %{aarch64} %{ppc64le} riscv64 s390x x86_64 ExclusiveArch: %{aarch64} %{ppc64le} s390x x86_64
%endif %endif
Name: java-%{javaver}-%{origin}-portable%{?pkgos:-%{pkgos}} Name: java-%{javaver}-%{origin}-portable%{?pkgos:-%{pkgos}}
@ -677,7 +673,9 @@ Patch1001: fips-%{featurever}u-%{fipsver}.patch
# #
############################################# #############################################
# Currently empty # JDK-8351500: G1: NUMA migrations cause crashes in region allocation
# Upstream in 21.0.8+1
Patch2001: jdk8351500-numa_migration_crashes.patch
############################################# #############################################
# #
@ -731,7 +729,7 @@ BuildRequires: zip
BuildRequires: tar BuildRequires: tar
BuildRequires: unzip BuildRequires: unzip
BuildRequires: javapackages-filesystem 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
@ -760,17 +758,17 @@ BuildRequires: libpng-devel
BuildRequires: zlib-devel BuildRequires: zlib-devel
%else %else
# Version in src/java.desktop/share/legal/freetype.md # Version in src/java.desktop/share/legal/freetype.md
Provides: bundled(freetype) = 2.13.3 Provides: bundled(freetype) = 2.13.2
# Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h # Version in src/java.desktop/share/native/libsplashscreen/giflib/gif_lib.h
Provides: bundled(giflib) = 5.2.2 Provides: bundled(giflib) = 5.2.2
# Version in src/java.desktop/share/native/libharfbuzz/hb-version.h # Version in src/java.desktop/share/native/libharfbuzz/hb-version.h
Provides: bundled(harfbuzz) = 10.4.0 Provides: bundled(harfbuzz) = 8.2.2
# Version in src/java.desktop/share/native/liblcms/lcms2.h # Version in src/java.desktop/share/native/liblcms/lcms2.h
Provides: bundled(lcms2) = 2.17.0 Provides: bundled(lcms2) = 2.16.0
# Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h # Version in src/java.desktop/share/native/libjavajpeg/jpeglib.h
Provides: bundled(libjpeg) = 6b Provides: bundled(libjpeg) = 6b
# Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h # Version in src/java.desktop/share/native/libsplashscreen/libpng/png.h
Provides: bundled(libpng) = 1.6.47 Provides: bundled(libpng) = 1.6.43
# 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
@ -990,6 +988,8 @@ sh %{SOURCE12} %{top_level_dir_name}
pushd %{top_level_dir_name} pushd %{top_level_dir_name}
# Add crypto policy and FIPS support # Add crypto policy and FIPS support
%patch -P1001 -p1 %patch -P1001 -p1
# Add early JDK-8351500
%patch -P2001 -p1
popd # openjdk popd # openjdk
@ -1152,11 +1152,6 @@ function buildjdk() {
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
@ -1164,7 +1159,6 @@ 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..."
@ -1945,63 +1939,6 @@ done
%endif %endif
%changelog %changelog
* Thu Jul 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.9-1.1
- Update to jdk-21.0.8+9 (GA)
- Update release notes to 21.0.8+9
- Switch to GA mode
- ** This tarball is embargoed until 2025-07-15 @ 1pm PT. **
* Thu Jul 10 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.8-0.1.ea
- Update to jdk-21.0.8+8 (EA)
- Update release notes to 21.0.8+8
* Wed Jul 09 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.2-0.1.ea
- Update to jdk-21.0.8+2 (EA)
- Update release notes to 21.0.8+2
- Add timezone data update check to openjdk_news.sh
- Add duplicate check to openjdk_news.sh
- Exit if no fixes are obtained rather than try to run filters in openjdk_news.sh
- Related: OPENJDK-3949
* Tue Jul 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.1-0.1.ea
- Update get_bundle_versions.sh to match other scripts
- * get_bundle_versions.sh: Add license
- * get_bundle_versions.sh: Set compile-command in Emacs
- * get_bundle_versions.sh: Use different error codes for different failures
- * get_bundle_versions.sh: Remove unneeded '.' in JPEG version
- * get_bundle_versions.sh: shellcheck: Double-quote variable references (SC2086)
- * get_bundle_versions.sh: shellcheck: Drop use of cat and pass file to awk directly (SC2002)
- Add OpenJDK 8u support to get_bundle_versions.sh
- Print bundle updates and backouts at end of openjdk_news.sh output
- Refer user to get_bundle_versions.sh when bundle updates are found by openjdk_news.sh
- Resolves: OPENJDK-3949
* Tue Jul 08 2025 Antonio Vieiro <avieirov@redhat.com> - 1:21.0.8.0.1-0.1.ea
- Add script to obtain bundled library versions from OpenJDK sources
- Related: OPENJDK-3949
* Tue Jul 08 2025 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.8.0.1-0.1.ea
- Warn about bundled provide version bumps and backouts in openjdk_news.sh
- Related: OPENJDK-3949
* Tue Jul 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.8.0.1-0.1.ea
- Update to jdk-21.0.8+1 (EA)
- Update release notes to 21.0.8+1
- Bump freetype version to 2.13.3 following JDK-8348596
- Bump harfbuzz version to 10.4.0 following JDK-8348597
- Bump lcms2 version to 2.17.0 following JDK-8348110
- Bump libpng version to 1.6.47 following JDK-8348598
- Switch to EA mode
- Drop JDK-8351500 local patch which is now available in 21.0.8+1 upstream
* Fri Jul 04 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.7.0.6-3
- Move riscv64 addition to ExclusiveArch to devkit_arches on RHEL
- Related: OPENJDK-3850
* Tue May 20 2025 Kashyap Chamarthy <kchamart@redhat.com> - 1:21.0.7.0.6-3
- Enable riscv64 arch; thanks: Songsong Zhang <U2FsdGVkX1@gmail.com>
- Resolves: OPENJDK-3850
* Thu May 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.7.0.6-2 * Thu May 08 2025 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.7.0.6-2
- Add local version of JDK-8351500 for early interim release before 21.0.8 - Add local version of JDK-8351500 for early interim release before 21.0.8
- Resolves: OPENJDK-3679 - Resolves: OPENJDK-3679
@ -2083,7 +2020,7 @@ 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-3133 - Resolves: OPENJDK-3133
- Resolves: OPENJDK-3237 - Resolves: OPENJDK-3237
- Resolves: OPENJDK-3182 - Resolves: OPENJDK-3182
@ -2102,6 +2039,7 @@ done
- 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.
- 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. **
* 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
@ -2196,6 +2134,10 @@ done
- Update release notes to 21.0.2+13 - Update release notes to 21.0.2+13
- 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
- pandoc is only available on RHEL/CentOS 8
- Check for CentOS being defined to determine use of devkit
- Set buildjdkver to 20 until OpenJDK 21 is available in the buildroot
- Use featurever for JDK build dependencies
* Mon Mar 11 2024 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
- Use a devkit to build on architectures where we have one (s390x, aarch64, ppc64le, x86_64) - Use a devkit to build on architectures where we have one (s390x, aarch64, ppc64le, x86_64)
@ -2205,6 +2147,7 @@ done
- Use system gdb for both builds as devkit version fails (needs devkit libraries, then JDK segfaults with them) - 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 - Filter out annobin plugin when using the devkit
- Drop static libstdc++ build dependency on devkit builds as it should come from 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 - Introduce tar_opts to avoid repetition of lengthy tar creation options
* Thu Feb 08 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.1.0.12-2 * Thu Feb 08 2024 Thomas Fitzsimmons <fitzsim@redhat.com> - 1:21.0.1.0.12-2
@ -2226,7 +2169,7 @@ done
* Fri Oct 27 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-4 * 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 - Rebuild jmods using the stripped binaries in release builds
- Make sure the unstripped JDK is customised by the installjdk function - Make sure the unstripped JDK is customised by the installjdk function
- Resolves: OPENJDK-1974 - Resolves: OPENJDK-3224
* Thu Oct 26 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:21.0.0.0.35-3 * 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
@ -2238,6 +2181,7 @@ done
* 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, add missing JEP to release notes) - Update documentation (README.md, add missing JEP to release notes)
- Replace alt-java patch with a binary separate from the JDK - 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: - 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 - * 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 accessibility subpackage to warrant RH1648242 patch any more
@ -2261,18 +2205,21 @@ done
- 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
* 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.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)
* 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.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
* Tue Aug 15 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
@ -2281,6 +2228,9 @@ done
- 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
- Switch buildjdkver to java-21-openjdk - Switch buildjdkver to java-21-openjdk
* 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 * 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
@ -2290,12 +2240,13 @@ done
- 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
- 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
- Related: rhbz#2192749
* Thu Aug 10 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
- Related: rhbz#2192749
* Mon May 15 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:17.0.7.0.7-3
- Bump rpmrelease to rebuild for CentOS 9
* 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

2893
java-21-openjdk.spec Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,274 @@
commit c5c0ac6140ec5241d949bc66f54469bfa516c60c
Author: Thomas Stuefe <stuefe@openjdk.org>
Date: Thu Mar 27 17:37:44 2025 +0000
8351500: G1: NUMA migrations cause crashes in region allocation
Reviewed-by: sjohanss
Backport-of: 37ec796255ae857588a5c7e0d572407dd81cbec9
diff --git a/src/hotspot/share/gc/g1/g1Allocator.cpp b/src/hotspot/share/gc/g1/g1Allocator.cpp
index 5b33e24de75..23c7ee839d8 100644
--- a/src/hotspot/share/gc/g1/g1Allocator.cpp
+++ b/src/hotspot/share/gc/g1/g1Allocator.cpp
@@ -212,10 +212,10 @@ size_t G1Allocator::used_in_alloc_regions() {
HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
- size_t word_size,
- uint node_index) {
+ uint node_index,
+ size_t word_size) {
size_t temp = 0;
- HeapWord* result = par_allocate_during_gc(dest, word_size, word_size, &temp, node_index);
+ HeapWord* result = par_allocate_during_gc(dest, node_index, word_size, word_size, &temp);
assert(result == nullptr || temp == word_size,
"Requested " SIZE_FORMAT " words, but got " SIZE_FORMAT " at " PTR_FORMAT,
word_size, temp, p2i(result));
@@ -223,13 +223,13 @@ HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
}
HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
+ uint node_index,
size_t min_word_size,
size_t desired_word_size,
- size_t* actual_word_size,
- uint node_index) {
+ size_t* actual_word_size) {
switch (dest.type()) {
case G1HeapRegionAttr::Young:
- return survivor_attempt_allocation(min_word_size, desired_word_size, actual_word_size, node_index);
+ return survivor_attempt_allocation(node_index, min_word_size, desired_word_size, actual_word_size);
case G1HeapRegionAttr::Old:
return old_attempt_allocation(min_word_size, desired_word_size, actual_word_size);
default:
@@ -238,10 +238,10 @@ HeapWord* G1Allocator::par_allocate_during_gc(G1HeapRegionAttr dest,
}
}
-HeapWord* G1Allocator::survivor_attempt_allocation(size_t min_word_size,
+HeapWord* G1Allocator::survivor_attempt_allocation(uint node_index,
+ size_t min_word_size,
size_t desired_word_size,
- size_t* actual_word_size,
- uint node_index) {
+ size_t* actual_word_size) {
assert(!_g1h->is_humongous(desired_word_size),
"we should not be seeing humongous-size allocations in this path");
@@ -396,10 +396,10 @@ HeapWord* G1PLABAllocator::allocate_direct_or_new_plab(G1HeapRegionAttr dest,
size_t actual_plab_size = 0;
HeapWord* buf = _allocator->par_allocate_during_gc(dest,
+ node_index,
required_in_plab,
plab_word_size,
- &actual_plab_size,
- node_index);
+ &actual_plab_size);
assert(buf == nullptr || ((actual_plab_size >= required_in_plab) && (actual_plab_size <= plab_word_size)),
"Requested at minimum %zu, desired %zu words, but got %zu at " PTR_FORMAT,
@@ -418,7 +418,7 @@ HeapWord* G1PLABAllocator::allocate_direct_or_new_plab(G1HeapRegionAttr dest,
*plab_refill_failed = true;
}
// Try direct allocation.
- HeapWord* result = _allocator->par_allocate_during_gc(dest, word_sz, node_index);
+ HeapWord* result = _allocator->par_allocate_during_gc(dest, node_index, word_sz);
if (result != nullptr) {
plab_data->_direct_allocated += word_sz;
plab_data->_num_direct_allocations++;
diff --git a/src/hotspot/share/gc/g1/g1Allocator.hpp b/src/hotspot/share/gc/g1/g1Allocator.hpp
index 32f37778a18..b2828d64d87 100644
--- a/src/hotspot/share/gc/g1/g1Allocator.hpp
+++ b/src/hotspot/share/gc/g1/g1Allocator.hpp
@@ -78,19 +78,16 @@ class G1Allocator : public CHeapObj<mtGC> {
inline OldGCAllocRegion* old_gc_alloc_region();
// Allocation attempt during GC for a survivor object / PLAB.
- HeapWord* survivor_attempt_allocation(size_t min_word_size,
+ HeapWord* survivor_attempt_allocation(uint node_index,
+ size_t min_word_size,
size_t desired_word_size,
- size_t* actual_word_size,
- uint node_index);
+ size_t* actual_word_size);
// Allocation attempt during GC for an old object / PLAB.
HeapWord* old_attempt_allocation(size_t min_word_size,
size_t desired_word_size,
size_t* actual_word_size);
- // Node index of current thread.
- inline uint current_node_index() const;
-
public:
G1Allocator(G1CollectedHeap* heap);
~G1Allocator();
@@ -110,18 +107,22 @@ class G1Allocator : public CHeapObj<mtGC> {
void abandon_gc_alloc_regions();
bool is_retained_old_region(HeapRegion* hr);
+ // Node index of current thread.
+ inline uint current_node_index() const;
+
// Allocate blocks of memory during mutator time.
// Attempt allocation in the current alloc region.
- inline HeapWord* attempt_allocation(size_t min_word_size,
+ inline HeapWord* attempt_allocation(uint node_index,
+ size_t min_word_size,
size_t desired_word_size,
size_t* actual_word_size);
// This is to be called when holding an appropriate lock. It first tries in the
// current allocation region, and then attempts an allocation using a new region.
- inline HeapWord* attempt_allocation_locked(size_t word_size);
+ inline HeapWord* attempt_allocation_locked(uint node_index, size_t word_size);
- inline HeapWord* attempt_allocation_force(size_t word_size);
+ inline HeapWord* attempt_allocation_force(uint node_index, size_t word_size);
size_t unsafe_max_tlab_alloc();
size_t used_in_alloc_regions();
@@ -131,14 +132,15 @@ class G1Allocator : public CHeapObj<mtGC> {
// heap, and then allocate a block of the given size. The block
// may not be a humongous - it must fit into a single heap region.
HeapWord* par_allocate_during_gc(G1HeapRegionAttr dest,
- size_t word_size,
- uint node_index);
+ uint node_index,
+ size_t word_size
+ );
HeapWord* par_allocate_during_gc(G1HeapRegionAttr dest,
+ uint node_index,
size_t min_word_size,
size_t desired_word_size,
- size_t* actual_word_size,
- uint node_index);
+ size_t* actual_word_size);
};
// Manages the PLABs used during garbage collection. Interface for allocation from PLABs.
diff --git a/src/hotspot/share/gc/g1/g1Allocator.inline.hpp b/src/hotspot/share/gc/g1/g1Allocator.inline.hpp
index 13ae9b9bbbd..7e516b48faa 100644
--- a/src/hotspot/share/gc/g1/g1Allocator.inline.hpp
+++ b/src/hotspot/share/gc/g1/g1Allocator.inline.hpp
@@ -49,11 +49,10 @@ inline OldGCAllocRegion* G1Allocator::old_gc_alloc_region() {
return &_old_gc_alloc_region;
}
-inline HeapWord* G1Allocator::attempt_allocation(size_t min_word_size,
+inline HeapWord* G1Allocator::attempt_allocation(uint node_index,
+ size_t min_word_size,
size_t desired_word_size,
size_t* actual_word_size) {
- uint node_index = current_node_index();
-
HeapWord* result = mutator_alloc_region(node_index)->attempt_retained_allocation(min_word_size, desired_word_size, actual_word_size);
if (result != nullptr) {
return result;
@@ -62,8 +61,7 @@ inline HeapWord* G1Allocator::attempt_allocation(size_t min_word_size,
return mutator_alloc_region(node_index)->attempt_allocation(min_word_size, desired_word_size, actual_word_size);
}
-inline HeapWord* G1Allocator::attempt_allocation_locked(size_t word_size) {
- uint node_index = current_node_index();
+inline HeapWord* G1Allocator::attempt_allocation_locked(uint node_index, size_t word_size) {
HeapWord* result = mutator_alloc_region(node_index)->attempt_allocation_locked(word_size);
assert(result != nullptr || mutator_alloc_region(node_index)->get() == nullptr,
@@ -71,8 +69,7 @@ inline HeapWord* G1Allocator::attempt_allocation_locked(size_t word_size) {
return result;
}
-inline HeapWord* G1Allocator::attempt_allocation_force(size_t word_size) {
- uint node_index = current_node_index();
+inline HeapWord* G1Allocator::attempt_allocation_force(uint node_index, size_t word_size) {
return mutator_alloc_region(node_index)->attempt_allocation_force(word_size);
}
diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
index 9b6b22a29e7..a43e45c4afa 100644
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
@@ -401,7 +401,7 @@ G1CollectedHeap::mem_allocate(size_t word_size,
return attempt_allocation(word_size, word_size, &dummy);
}
-HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
+HeapWord* G1CollectedHeap::attempt_allocation_slow(uint node_index, size_t word_size) {
ResourceMark rm; // For retrieving the thread names in log messages.
// Make sure you read the note in attempt_allocation_humongous().
@@ -427,7 +427,7 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
// Now that we have the lock, we first retry the allocation in case another
// thread changed the region while we were waiting to acquire the lock.
- result = _allocator->attempt_allocation_locked(word_size);
+ result = _allocator->attempt_allocation_locked(node_index, word_size);
if (result != nullptr) {
return result;
}
@@ -438,7 +438,7 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
if (GCLocker::is_active_and_needs_gc() && policy()->can_expand_young_list()) {
// No need for an ergo message here, can_expand_young_list() does this when
// it returns true.
- result = _allocator->attempt_allocation_force(word_size);
+ result = _allocator->attempt_allocation_force(node_index, word_size);
if (result != nullptr) {
return result;
}
@@ -495,7 +495,7 @@ HeapWord* G1CollectedHeap::attempt_allocation_slow(size_t word_size) {
// follow-on attempt will be at the start of the next loop
// iteration (after taking the Heap_lock).
size_t dummy = 0;
- result = _allocator->attempt_allocation(word_size, word_size, &dummy);
+ result = _allocator->attempt_allocation(node_index, word_size, word_size, &dummy);
if (result != nullptr) {
return result;
}
@@ -636,11 +636,14 @@ inline HeapWord* G1CollectedHeap::attempt_allocation(size_t min_word_size,
assert(!is_humongous(desired_word_size), "attempt_allocation() should not "
"be called for humongous allocation requests");
- HeapWord* result = _allocator->attempt_allocation(min_word_size, desired_word_size, actual_word_size);
+ // Fix NUMA node association for the duration of this allocation
+ const uint node_index = _allocator->current_node_index();
+
+ HeapWord* result = _allocator->attempt_allocation(node_index, min_word_size, desired_word_size, actual_word_size);
if (result == nullptr) {
*actual_word_size = desired_word_size;
- result = attempt_allocation_slow(desired_word_size);
+ result = attempt_allocation_slow(node_index, desired_word_size);
}
assert_heap_not_locked();
@@ -778,8 +781,11 @@ HeapWord* G1CollectedHeap::attempt_allocation_at_safepoint(size_t word_size,
assert(!_allocator->has_mutator_alloc_region() || !expect_null_mutator_alloc_region,
"the current alloc region was unexpectedly found to be non-null");
+ // Fix NUMA node association for the duration of this allocation
+ const uint node_index = _allocator->current_node_index();
+
if (!is_humongous(word_size)) {
- return _allocator->attempt_allocation_locked(word_size);
+ return _allocator->attempt_allocation_locked(node_index, word_size);
} else {
HeapWord* result = humongous_obj_allocate(word_size);
if (result != nullptr && policy()->need_to_start_conc_mark("STW humongous allocation")) {
diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.hpp b/src/hotspot/share/gc/g1/g1CollectedHeap.hpp
index 88f4f680800..6afaeb6e6d4 100644
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.hpp
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.hpp
@@ -453,7 +453,7 @@ class G1CollectedHeap : public CollectedHeap {
// Second-level mutator allocation attempt: take the Heap_lock and
// retry the allocation attempt, potentially scheduling a GC
// pause. This should only be used for non-humongous allocations.
- HeapWord* attempt_allocation_slow(size_t word_size);
+ HeapWord* attempt_allocation_slow(uint node_index, size_t word_size);
// Takes the Heap_lock and attempts a humongous allocation. It can
// potentially schedule a GC pause.

3
rpminspect.yaml Normal file
View File

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

29
scripts/builds/build_centos.sh Executable file
View File

@ -0,0 +1,29 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the RPM on CentOS 9 or 10
centpkg -v build
# Local Variables:
# compile-command: "shellcheck build_centos.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

View File

@ -0,0 +1,29 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the portable on CentOS
centpkg -v build --target java-openjdk-portable-build --rhel-target none
# Local Variables:
# compile-command: "shellcheck build_centos_portable_build.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

43
scripts/builds/build_rhel_10.sh Executable file
View File

@ -0,0 +1,43 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the RPM on RHEL 10
NVR=${1}
USER=${2}
if test "${NVR}" = ""; then
echo "${0} <NVR> <USER>";
exit 1;
fi
if test "${USER}" = ""; then
echo "${0} <NVR> <USER>";
exit 2;
fi
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
rhpkg -v build --target=java-openjdk-rhel-10-build --custom-user-metadata "${METADATA}"
# Local Variables:
# compile-command: "shellcheck build_rhel_10.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

View File

@ -0,0 +1,29 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the portable on RHEL 7
rhpkg -v build --target=java-openjdk-rhel-7-build --skip-nvr-check
# Local Variables:
# compile-command: "shellcheck build_rhel_7_portable_build.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

43
scripts/builds/build_rhel_8.sh Executable file
View File

@ -0,0 +1,43 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the RPM on RHEL 8
NVR=${1}
USER=${2}
if test "${NVR}" = ""; then
echo "${0} <NVR> <USER>";
exit 1;
fi
if test "${USER}" = ""; then
echo "${0} <NVR> <USER>";
exit 2;
fi
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
rhpkg -v build --target=java-openjdk-rhel-8-build --custom-user-metadata "${METADATA}"
# Local Variables:
# compile-command: "shellcheck build_rhel_8.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

43
scripts/builds/build_rhel_9.sh Executable file
View File

@ -0,0 +1,43 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the RPM on RHEL 9
NVR=${1}
USER=${2}
if test "${NVR}" = ""; then
echo "${0} <NVR> <USER>";
exit 1;
fi
if test "${USER}" = ""; then
echo "${0} <NVR> <USER>";
exit 2;
fi
METADATA="{\"osci\": {\"upstream_nvr\": \"${NVR}\", \"upstream_owner_name\": \"${USER}\"}, \"rhel-target\": \"latest\"}"
rhpkg -v build --target=java-openjdk-rhel-9-build --custom-user-metadata "${METADATA}"
# Local Variables:
# compile-command: "shellcheck build_rhel_9.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

View File

@ -0,0 +1,29 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds the portable on RHEL 8
rhpkg -v build --target=java-openjdk-rhel-8-build --skip-nvr-check
# Local Variables:
# compile-command: "shellcheck build_rhel_portable_build.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

43
scripts/builds/build_vanilla.sh Executable file
View File

@ -0,0 +1,43 @@
#!/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 <http://www.gnu.org/licenses/>.
# Builds a scratch build of vanilla OpenJDK with no local patches
SEPARATE_ARCHES=${1}
CMD="--target java-openjdk-rhel-8-build --skip-nvr-check --nowait";
SUPPORTED_ARCHES="aarch64 ppc64le s390x x86_64";
if [ "x${SEPARATE_ARCHES}" = "x" ] ; then
SEPARATE_ARCHES=0;
fi
if [ ${SEPARATE_ARCHES} -eq 1 ] ; then
for arch in ${SUPPORTED_ARCHES}; do \
rhpkg -v build --arches ${arch} --scratch ${CMD} ; \
done && brew watch-task --mine
else
rhpkg -v build ${CMD} && brew watch-task --mine
fi
# Local Variables:
# compile-command: "shellcheck build_vanilla.sh"
# fill-column: 80
# indent-tabs-mode: nil
# sh-basic-offset: 4
# End:

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.7+6.tar.xz) = 4ccbad22a7284fc8a38f78585dbc9e2b632c634f0a496d0f41bc5a0ec35ef1f2ca75b2aad135c299e9ebb04c8bd73b905f6c57ae041bd39d4474ecbda3656c97

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'