Complete update to OpenJDK 20

* Update NEWS
- Update system crypto policy & FIPS patch from new fips-20u tree
 * RH2104724: Avoid import/export of DH private keys
 * RH2092507: P11Key.getEncoded does not work for DH keys in FIPS mode
 * Build the systemconf library on all platforms
- Update generate_tarball.sh ICEDTEA_VERSION and add support for passing a boot JDK to the configure run
- Revert changes to generate_tarball.sh which break error handling
- Add POSIX-friendly error codes to generate_tarball.sh and fix whitespace
- Remove .jcheck and GitHub support when generating tarballs, as done in upstream release tarballs
- Revert changes to patch macro which break on older versions of rpm (4.16)
- Revert changes to configure run
- Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
- Re-enable disabled translation test
- Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built
This commit is contained in:
Andrew John Hughes 2023-04-05 00:07:18 +01:00
parent 42e3f73cba
commit d240da593d
7 changed files with 513 additions and 829 deletions

236
NEWS
View File

@ -3,187 +3,13 @@ Key:
JDK-X - https://bugs.openjdk.java.net/browse/JDK-X
CVE-XXXX-YYYY: https://cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
New in release OpenJDK 19.0.2 (2023-01-17):
===========================================
Live versions of these release notes can be found at:
* https://builds.shipilev.net/backports-monitor/release-notes-19.0.2.html
* CVEs
- CVE-2023-21835
- CVE-2023-21843
* Security fixes
- JDK-8286070: Improve UTF8 representation
- JDK-8286496: Improve Thread labels
- JDK-8287411: Enhance DTLS performance
- JDK-8288516: Enhance font creation
- JDK-8293554: Enhanced DH Key Exchanges
- JDK-8293598: Enhance InetAddress address handling
- JDK-8293717: Objective view of ObjectView
- JDK-8293734: Improve BMP image handling
- JDK-8293742: Better Banking of Sounds
- JDK-8295687: Better BMP bounds
* Other changes
- JDK-8022403: sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java fails
- JDK-8029633: Raw inner class constructor ref should not perform diamond inference
- JDK-8178698: javax/sound/midi/Sequencer/MetaCallback.java failed with timeout
- JDK-8277970: Test jdk/sun/security/ssl/SSLSessionImpl/NoInvalidateSocketException.java fails with "tag mismatch"
- JDK-8279941: sun/security/pkcs11/Signature/TestDSAKeyLength.java fails when NSS version detection fails
- JDK-8285604: closed sun/java2d/GdiRendering/ClipShapeRendering.java failed with "Incorrect color ffeeeeee instead of ff0000ff in pixel (100, 100)"
- JDK-8285835: SIGSEGV in PhaseIdealLoop::build_loop_late_post_work
- JDK-8286314: Trampoline not created for far runtime targets outside small CodeCache
- JDK-8286624: Regression Test CoordinateTruncationBug.java fails on OL8.3
- JDK-8287217: C2: PhaseCCP: remove not visited nodes, prevent type inconsistency
- JDK-8288132: Update test artifacts in QuoVadis CA interop tests
- JDK-8288377: [REDO] DST not applying properly with zone id offset set with TZ env variable
- JDK-8288992: AArch64: CMN should be handled the same way as CMP
- JDK-8290164: compiler/runtime/TestConstantsInError.java fails on riscv
- JDK-8290246: test fails "assert(init != __null) failed: initialization not found"
- JDK-8290451: Incorrect result when switching to C2 OSR compilation from C1
- JDK-8290496: riscv: Fix build warnings-as-errors with GCC 11
- JDK-8290529: C2: assert(BoolTest(btest).is_canonical()) failure
- JDK-8290694: Update the release date after forking Oct CPU22_10
- JDK-8290705: StringConcat::validate_mem_flow asserts with "unexpected user: StoreI"
- JDK-8290711: assert(false) failed: infinite loop in PhaseIterGVN::optimize
- JDK-8290781: Segfault at PhaseIdealLoop::clone_loop_handle_data_uses
- JDK-8290900: Build failure with Clang 14+ due to function warning attribute
- JDK-8290964: C2 compilation fails with assert "non-reduction loop contains reduction nodes"
- JDK-8290974: Bump version numbers for January 2023 CPU
- JDK-8291508: Fix some tests with "requires vm.jvmti & vm.continuations"
- JDK-8291599: Assertion in PhaseIdealLoop::skeleton_predicate_has_opaque after JDK-8289127
- JDK-8291633: Build failures with GCC 11, Alpine 3 due to incompatible casts from nullptr
- JDK-8291775: C2: assert(r != __null && r->is_Region()) failed: this phi must have a region
- JDK-8292158: AES-CTR cipher state corruption with AVX-512
- JDK-8292159: TYPE_USE annotations on generic type arguments of record components discarded
- JDK-8292385: assert(ctrl == kit.control()) failed: Control flow was added although the intrinsic bailed out
- JDK-8292695: SIGQUIT and jcmd attaching mechanism does not work with signal chaining library
- JDK-8292756: java.lang.AssertionError at at jdk.compiler/com.sun.tools.javac.code.Scope$ScopeImpl.leave(Scope.java:386)
- JDK-8292780: misc tests failed "assert(false) failed: graph should be schedulable"
- JDK-8292899: CustomTzIDCheckDST.java testcase failed on AIX platform
- JDK-8292969: Bad Thread Utilization in ForkJoinPool
- JDK-8293044: C1: Missing access check on non-accessible class
- JDK-8293100: RISC-V: Need to save and restore callee-saved FloatRegisters in StubGenerator::generate_call_stub
- JDK-8293348: A false cyclic inheritance error reported
- JDK-8293578: Duplicate ldc generated by javac
- JDK-8293701: jdeps InverseDepsAnalyzer runs into NoSuchElementException: No value present
- JDK-8293816: CI: ciBytecodeStream::get_klass() is not consistent
- JDK-8293834: Update CLDR data following tzdata 2022c update
- JDK-8293996: C2: fix and simplify IdealLoopTree::do_remove_empty_loop
- JDK-8294307: ISO 4217 Amendment 173 Update
- JDK-8294357: (tz) Update Timezone Data to 2022d
- JDK-8294517: Update jdk19u fix version to 19.0.2
- JDK-8294538: missing is_unloading() check in SharedRuntime::fixup_callers_callsite()
- JDK-8294602: Change milestone to fcs for releases: jdk-11.0.18, jdk-17.0.6, jdk-19.0.2
- JDK-8294755: Update milestone to ea for 19.0.2
- JDK-8294840: langtools OptionalDependencyTest.java use File.pathSeparator
- JDK-8295173: (tz) Update Timezone Data to 2022e
- JDK-8295264: Fix PaX check on RISC-V
- JDK-8295268: Optimized builds are broken due to incorrect assert_is_rfp shortcuts
- JDK-8295414: [Aarch64] C2: assert(false) failed: bad AD file
- JDK-8295469: S390X: Optimized builds are broken
- JDK-8295554: Move the "sizecalc.h" to the correct location
- JDK-8295723: security/infra/wycheproof/RunWycheproof.java fails with Assertion Error
- JDK-8295926: RISC-V: C1: Fix LIRGenerator::do_LibmIntrinsic
- JDK-8296083: javax/swing/JTree/6263446/bug6263446.java fails intermittently on a VM
- JDK-8296108: (tz) Update Timezone Data to 2022f
- JDK-8296448: RISC-V: Fix temp usages of heapbase register killed by MacroAssembler::en/decode_klass_not_null
- JDK-8296463: Memory leak in JVM_StartThread with the integration of Virtual threads
- JDK-8296480: java/security/cert/pkix/policyChanges/TestPolicy.java is failing
- JDK-8296485: BuildEEBasicConstraints.java test fails with SunCertPathBuilderException
- JDK-8296496: Overzealous check in sizecalc.h prevents large memory allocation
- JDK-8296602: RISC-V: improve performance of copy_memory stub
- JDK-8296632: Write a test to verify the content change of TextArea sends TextEvent
- JDK-8296715: CLDR v42 update for tzdata 2022f
- JDK-8296733: JFR: File Read event for RandomAccessFile::write(byte[]) is incorrect
- JDK-8296771: RISC-V: C2: assert(false) failed: bad AD file
- JDK-8296945: PublicMethodsTest is slow due to dependency verification with debug builds
- JDK-8296957: One more cast in SAFE_SIZE_NEW_ARRAY2
- JDK-8296970: Remove sysThreadAvailableStackWithSlack from hotspot-symbols
- JDK-8297147: UnexpectedSourceImageSize test times out on slow machines when fastdebug is used
- JDK-8297153: sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java fails again
- JDK-8297241: Update sun/java2d/DirectX/OnScreenRenderingResizeTest/OnScreenRenderingResizeTest.java
- JDK-8297309: Memory leak in ShenandoahFullGC
- JDK-8297451: ProcessHandleImpl should assert privilege when modifying reaper thread
- JDK-8297476: Increase InlineSmallCode default from 1000 to 2500 for RISC-V
Notes on individual issues:
===========================
client-libs/javax.imageio:
JDK-8295687: Better BMP bounds
==============================
Loading a linked ICC profile within a BMP image is now disabled by
default. To re-enable it, set the new system property
`sun.imageio.bmp.enabledLinkedProfiles` to `true`. This new property
replaces the old property,
`sun.imageio.plugins.bmp.disableLinkedProfiles`.
client-libs/javax.sound:
JDK-8293742: Better Banking of Sounds
=====================================
Previously, the SoundbankReader implementation,
`com.sun.media.sound.JARSoundbankReader`, would download a JAR
soundbank from a URL. This behaviour is now disabled by default. To
re-enable it, set the new system property `jdk.sound.jarsoundbank` to
`true`.
security-libs/javax.net.ssl:
JDK-8287411: Enhance DTLS performance
=====================================
The JDK now exchanges DTLS cookies for all handshakes, new and
resumed. The previous behaviour can be re-enabled by setting the new
system property `jdk.tls.enableDtlsResumeCookie` to `false`.
New in release OpenJDK 19.0.1 (2022-10-18):
===========================================
Live versions of these release notes can be found at:
* https://builds.shipilev.net/backports-monitor/release-notes-19.0.1.html
* Security fixes
- JDK-8282252: Improve BigInteger/Decimal validation
- JDK-8285662: Better permission resolution
- JDK-8286077, CVE-2022-21618: Wider MultiByte conversions
- JDK-8286511: Improve macro allocation
- JDK-8286519: Better memory handling
- JDK-8286526, CVE-2022-21619: Improve NTLM support
- JDK-8286910, CVE-2022-21624: Improve JNDI lookups
- JDK-8286918, CVE-2022-21628: Better HttpServer service
- JDK-8287446: Enhance icon presentations
- JDK-8288508: Enhance ECDSA usage
- JDK-8289366, CVE-2022-39399: Improve HTTP/2 client usage
- JDK-8289853: Update HarfBuzz to 4.4.1
- JDK-8290334: Update FreeType to 2.12.1
* Other changes
- JDK-8028265: Add legacy tz tests to OpenJDK
- JDK-8212096: javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java failed intermittently due to SSLException: Tag mismatch
- JDK-8227651: Tests fail with SSLProtocolException: Input record too big
- JDK-8284977: MetricsTesterCgroupV2.getLongValueEntryFromFile fails when named value doesn't exist
- JDK-8287672: jtreg test com/sun/jndi/ldap/LdapPoolTimeoutTest.java fails intermittently in nightly run
- JDK-8287906: Rewrite of GitHub Actions (GHA) sanity tests
- JDK-8287917: System.loadLibrary does not work on Big Sur if JDK is built with macOS SDK 10.15 and earlier
- JDK-8288499: Restore cancel-in-progress in GHA
- JDK-8288599: com/sun/management/OperatingSystemMXBean/TestTotalSwap.java: Expected total swap size ... but getTotalSwapSpaceSize returned ...
- JDK-8288653: Bump version numbers for 19.0.1
- JDK-8290000: Bump macOS GitHub actions to macOS 11
- JDK-8290695: Change milestone to fcs for releases: jdk-11.0.17, jdk-17.0.5, jdk-19.0.1
- JDK-8291640: java/beans/XMLDecoder/8028054/Task.java should use the 3-arg Class.forName
- JDK-8291897: TerminatingThreadLocal(s) not registered from virtual thread(s)
- JDK-8292051: jdk/internal/misc/TerminatingThreadLocal/TestTerminatingThreadLocal.java failed "AssertionError: Expected terminated values: [666] but got: []"
- JDK-8292240: CarrierThread.blocking not reset when spare not activated
- JDK-8292487: Back out the fix for JDK-8281962 from jdk19u
- JDK-8292579: (tz) Update Timezone Data to 2022c
- JDK-8292654: G1 remembered set memory footprint regression after JDK-8286115
- JDK-8293180: JQuery UI license file not updated
New in release OpenJDK 19.0.0 (2022-09-20):
New in release OpenJDK 20.0.0 (2023-03-21):
===========================================
Major changes are listed below. Some changes may have been backported
to earlier releases following their first appearance in OpenJDK 19.
to earlier releases following their first appearance in OpenJDK 20.
The full list of changes in 19u can be found at:
- * https://builds.shipilev.net/backports-monitor/release-notes-19.txt
The full list of changes in 20u can be found at:
- * https://builds.shipilev.net/backports-monitor/release-notes-20.txt
NEW FEATURES
============
@ -196,6 +22,7 @@ Pattern Matching for switch
https://openjdk.org/jeps/406
https://openjdk.org/jeps/420
https://openjdk.org/jeps/427
https://openjdk.org/jeps/433
Enhance the Java programming language with pattern matching for
`switch` expressions and statements, along with extensions to the
@ -204,13 +31,15 @@ expression to be tested against a number of patterns, each with a
specific action, so that complex data-oriented queries can be
expressed concisely and safely.
This was a preview feature (http://openjdk.java.net/jeps/12) in
OpenJDK 17 (JEP 406) and saw a second preview in OpenJDK 18 (JEP 420).
It reaches its third preview (JEP 427) in OpenJDK 19.
This is a preview feature (http://openjdk.java.net/jeps/12) introduced
in OpenJDK 17 (JEP 406), which saw a second preview in OpenJDK 18 (JEP
420) and a third in OpenJDK 19 (JEP 427). It reaches its fourth
preview (JEP 427) in OpenJDK 20.
Record Patterns
===============
https://openjdk.org/jeps/405
https://openjdk.org/jeps/432
Enhance the Java programming language with record patterns to
deconstruct record values. Record patterns and type patterns can be
@ -218,17 +47,30 @@ nested to enable a powerful, declarative, and composable form of data
navigation and processing.
This is a preview feature (http://openjdk.java.net/jeps/12) introduced
in OpenJDK 19 (JEP 405)
in OpenJDK 19 (JEP 405). It reaches its second preview (JEP 432) in
OpenJDK 20.
Library Features
================
Scoped Values
=============
https://openjdk.org/jeps/429
Introduce scoped values, which enable the sharing of immutable data
within and across threads. They are preferred to thread-local
variables, especially when using large numbers of virtual threads.
This is an incubation feature (https://openjdk.java.net/jeps/11)
introduced in OpenJDK 20 (JEP 429).
Vector API
==========
https://openjdk.org/jeps/338
https://openjdk.org/jeps/414
https://openjdk.org/jeps/417
https://openjdk.org/jeps/426
https://openjdk.org/jeps/438
Introduce an API to express vector computations that reliably compile
at runtime to optimal vector hardware instructions on supported CPU
@ -237,14 +79,15 @@ scalar computations.
This is an incubation feature (https://openjdk.java.net/jeps/11)
introduced in OpenJDK 16 (JEP 338). A second round of incubation took
place in OpenJDK 17 (JEP 414), OpenJDK 18 (JEP 417) saw a third and
OpenJDK 19 sees its fourth (JEP 426).
place in OpenJDK 17 (JEP 414), OpenJDK 18 (JEP 417) saw a third,
OpenJDK 19 a fourth (JEP 426) and OpenJDK 20 (JEP 438) sees its fifth.
Foreign Function & Memory API
=============================
https://openjdk.org/jeps/412
https://openjdk.org/jeps/419
https://openjdk.org/jeps/424
https://openjdk.org/jeps/434
Introduce an API by which Java programs can interoperate with code and
data outside of the Java runtime. By efficiently invoking foreign
@ -259,22 +102,26 @@ It was first introduced in incubation
evolution of the Foreign Memory Access API (OpenJDK 14 through 16) and
Foreign Linker API (OpenJDK 16) (see release notes for
java-17-openjdk). OpenJDK 18 saw a second round of incubation (JEP
419) before its inclusion as a preview in OpenJDK 19 (JEP 424).
419) before its inclusion as a preview in OpenJDK 19 (JEP 424). It
reaches a second preview in OpenJDK 20 (JEP 434).
Virtual Threads
===============
https://openjdk.org/jeps/425
https://openjdk.org/jeps/436
Introduce virtual threads to the Java Platform. Virtual threads are
lightweight threads that dramatically reduce the effort of writing,
maintaining, and observing high-throughput concurrent applications.
This is a preview feature (http://openjdk.java.net/jeps/12) introduced
in OpenJDK 19 (JEP 425)
in OpenJDK 19 (JEP 425) and reaching its second preview in OpenJDK 20
(JEP 436).
Structured Concurrency
======================
https://openjdk.org/jeps/428
https://openjdk.org/jeps/437
Simplify multithreaded programming by introducing an API for
structured concurrency. Structured concurrency treats multiple tasks
@ -283,18 +130,5 @@ streamlining error handling and cancellation, improving reliability,
and enhancing observability.
This is an incubation feature (https://openjdk.java.net/jeps/11)
introduced in OpenJDK 19 (JEP 428).
Ports
=====
Linux/RISC-V Port
=================
https://openjdk.org/jeps/422
RISC-V is a free and open-source RISC instruction set architecture
(ISA) designed originally at the University of California, Berkeley,
and now developed collaboratively under the sponsorship of RISC-V
International. It is already supported by a wide range of language
toolchains. With the increasing availability of RISC-V hardware, a
port of the JDK would be valuable.
introduced in OpenJDK 19 (JEP 428). A second round of incubation takes
place in OpenJDK 20 (JEP 437).

View File

@ -52,7 +52,7 @@ public class TestTranslations {
map.put(Locale.FRANCE, new String[] { "heure normale des Rocheuses", "UTC\u221207:00", "MST",
"heure d\u2019\u00e9t\u00e9 des Rocheuses", "UTC\u221206:00", "MDT",
"heure des Rocheuses", "UTC\u221207:00", "MT"});
map.put(Locale.GERMANY, new String[] { "Rocky Mountain-Normalzeit", "GMT-07:00", "MST",
map.put(Locale.GERMANY, new String[] { "Rocky-Mountain-Normalzeit", "GMT-07:00", "MST",
"Rocky-Mountain-Sommerzeit", "GMT-06:00", "MDT",
"Rocky-Mountain-Zeit", "GMT-07:00", "MT"});
CIUDAD_JUAREZ = Collections.unmodifiableMap(map);

File diff suppressed because it is too large Load Diff

View File

@ -17,7 +17,7 @@
# PROJECT_NAME=release
# OPENJDK_URL=http://icedtea.classpath.org/hg/
# TO_COMPRESS="*/tapset"
#
#
# They are used to create correct name and are used in construction of sources url (unless REPO_ROOT is set)
# This script creates a single source tarball out of the repository
@ -36,12 +36,9 @@ fi
set -e
OPENJDK_URL_DEFAULT=https://github.com
PROJECT_NAME_DEFAULT=openjdk
REPO_NAME_DEFAULT=jdk20u
VERSION_DEFAULT=jdk-20+36
COMPRESSION_DEFAULT=xz
# Corresponding IcedTea version
ICEDTEA_VERSION=13.0
ICEDTEA_VERSION=15.0
if [ "x$1" = "xhelp" ] ; then
echo -e "Behaviour may be specified by setting the following variables:\n"
@ -53,35 +50,54 @@ if [ "x$1" = "xhelp" ] ; then
echo "FILE_NAME_ROOT - name of the archive, minus extensions (optional; defaults to PROJECT_NAME-REPO_NAME-VERSION)"
echo "TO_COMPRESS - what part of clone to pack (default is openjdk)"
echo "PR3823 - the path to the PR3823 patch to apply (optional; downloaded if unavailable)"
echo "BOOT_JDK - the bootstrap JDK to satisfy the configure run"
exit 1;
fi
if [ "x$VERSION" = "x" ] ; then
VERSION="$VERSION_DEFAULT"
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 [ "x$REPO_NAME" = "x" ] ; then
REPO_NAME="$REPO_NAME_DEFAULT"
if [ "x$BOOT_JDK" = "x" ] ; 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} -a -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} -a -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
echo "Repo name: ${VERSION}"
if [ "x$PROJECT_NAME" = "x" ] ; then
PROJECT_NAME="$PROJECT_NAME_DEFAULT"
fi
echo "Version: ${PROJECT_NAME}"
# REPO_NAME is only needed when we default on REPO_ROOT and FILE_NAME_ROOT
if [ "x$FILE_NAME_ROOT" = "x" -o "x$REPO_ROOT" = "x" ] ; then
if [ "x$PROJECT_NAME" = "x" ] ; then
echo "No PROJECT_NAME specified"
exit -1
exit 1
fi
echo "Project name: ${PROJECT_NAME}"
if [ "x$REPO_NAME" = "x" ] ; then
echo "No REPO_NAME specified"
exit -3
exit 3
fi
echo "Repository name: ${REPO_NAME}"
fi
@ -110,7 +126,7 @@ fi;
if [ "x$TO_COMPRESS" = "x" ] ; then
TO_COMPRESS="openjdk"
echo "No to be compressed targets specified, ; default to ${TO_COMPRESS}"
echo "No targets to be compressed specified, ; default to ${TO_COMPRESS}"
fi;
if [ -d ${FILE_NAME_ROOT} ] ; then
@ -125,31 +141,31 @@ else
popd
fi
pushd "${FILE_NAME_ROOT}"
if [ -d openjdk/src ]; then
if [ -d openjdk/src ]; then
pushd openjdk
echo "Removing EC source code we don't build"
CRYPTO_PATH=src/jdk.crypto.ec/share/native/libsunec/impl
rm -vf ${CRYPTO_PATH}/ec2.h
rm -vf ${CRYPTO_PATH}/ec2_163.c
rm -vf ${CRYPTO_PATH}/ec2_193.c
rm -vf ${CRYPTO_PATH}/ec2_233.c
rm -vf ${CRYPTO_PATH}/ec2_aff.c
rm -vf ${CRYPTO_PATH}/ec2_mont.c
rm -vf ${CRYPTO_PATH}/ecp_192.c
rm -vf ${CRYPTO_PATH}/ecp_224.c
rm -vf ${CRYPTO_PATH}/ec2.h
rm -vf ${CRYPTO_PATH}/ec2_163.c
rm -vf ${CRYPTO_PATH}/ec2_193.c
rm -vf ${CRYPTO_PATH}/ec2_233.c
rm -vf ${CRYPTO_PATH}/ec2_aff.c
rm -vf ${CRYPTO_PATH}/ec2_mont.c
rm -vf ${CRYPTO_PATH}/ecp_192.c
rm -vf ${CRYPTO_PATH}/ecp_224.c
echo "Syncing EC list with NSS"
if [ "x$PR3823" = "x" ] ; then
# get PR3823.patch (from https://github.com/icedtea-git/icedtea) in the ${ICEDTEA_VERSION} branch
# Do not push it or publish it
echo "PR3823 not found. Downloading..."
wget -v https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/pr3823.patch
echo "Applying ${PWD}/pr3823.patch"
patch -Np1 < pr3823.patch
rm pr3823.patch
else
echo "Applying ${PR3823}"
patch -Np1 < $PR3823
echo "PR3823 not found. Downloading..."
wget -v https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/pr3823.patch
echo "Applying ${PWD}/pr3823.patch"
patch -Np1 < pr3823.patch
rm pr3823.patch
else
echo "Applying ${PR3823}"
patch -Np1 < $PR3823
fi;
find . -name '*.orig' -exec rm -vf '{}' ';'
popd
@ -158,11 +174,29 @@ 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}/../openjdk/configure
sh ${PWD}/../openjdk/configure --with-boot-jdk=${BOOT_JDK}
make store-source-revision
popd
rm -rf build
# Remove commit checks
echo "Removing $(find openjdk -name '.jcheck' -print)"
find openjdk -name '.jcheck' -print0 | xargs -0 rm -r
# Remove history and GHA
echo "find openjdk -name '.hgtags'"
find openjdk -name '.hgtags' -exec rm -v '{}' '+'
echo "find openjdk -name '.hgignore'"
find openjdk -name '.hgignore' -exec rm -v '{}' '+'
echo "find openjdk -name '.gitattributes'"
find openjdk -name '.gitattributes' -exec rm -v '{}' '+'
echo "find openjdk -name '.gitignore'"
find openjdk -name '.gitignore' -exec rm -v '{}' '+'
echo "find openjdk -name '.git'"
find openjdk -name '.git' -exec rm -rv '{}' '+'
echo "find openjdk -name '.github'"
find openjdk -name '.github' -exec rm -rv '{}' '+'
echo "Compressing remaining forest"
if [ "X$COMPRESSION" = "Xxz" ] ; then
SWITCH=cJf

View File

@ -30,7 +30,7 @@
# Enable static library builds by default.
%bcond_without staticlibs
# Build a fresh libjvm.so for use in a copy of the bootstrap JDK
%bcond_with fresh_libjvm
%bcond_without fresh_libjvm
# Build with system libraries
%bcond_with system_libs
@ -51,13 +51,6 @@
%global include_staticlibs 0
%endif
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
%if %{with fresh_libjvm}
%global build_hotspot_first 1
%else
%global build_hotspot_first 0
%endif
%if %{with system_libs}
%global system_libs 1
%global link_type system
@ -255,10 +248,6 @@
# Target to use to just build HotSpot
%global hotspot_target hotspot
# JDK to use for bootstrapping
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands of warnings (100+mb logs)
@ -349,7 +338,7 @@
# buildjdkver is usually same as %%{featurever},
# but in time of bootstrap of next jdk, it is featurever-1,
# and this it is better to change it here, on single place
%global buildjdkver 19
%global buildjdkver %{featurever}
# We don't add any LTS designator for STS packages (Fedora and EPEL).
# We need to explicitly exclude EPEL as it would have the %%{rhel} macro defined.
%if 0%{?rhel} && !0%{?epel}
@ -359,6 +348,16 @@
%global lts_designator ""
%global lts_designator_zip ""
%endif
# JDK to use for bootstrapping
%global bootjdk /usr/lib/jvm/java-%{buildjdkver}-openjdk
# Define whether to use the bootstrap JDK directly or with a fresh libjvm.so
# This will only work where the bootstrap JDK is the same major version
# as the JDK being built
%if %{with fresh_libjvm} && %{buildjdkver} == %{featurever}
%global build_hotspot_first 1
%else
%global build_hotspot_first 0
%endif
# Define vendor information used by OpenJDK
%global oj_vendor Red Hat, Inc.
@ -384,7 +383,7 @@
# Define IcedTea version used for SystemTap tapsets and desktop file
%global icedteaver 6.0.0pre00-c848b93a8598
# Define current Git revision for the FIPS support patches
%global fipsver d95bb40c7c8
%global fipsver fd3de3d95b5
# Standard JPackage naming and versioning defines
%global origin openjdk
@ -392,7 +391,7 @@
%global top_level_dir_name %{origin}
%global top_level_dir_name_backup %{top_level_dir_name}-backup
%global buildver 36
%global rpmrelease 1
%global rpmrelease 2
# 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
# Using 10 digits may overflow the int used for priority, so we combine the patch and build versions
@ -663,8 +662,8 @@ Patch3: rh649512-remove_uses_of_far_in_jpeg_libjpeg_turbo_1_4_compat_for_jdk1
Patch6: rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-devel.patch
# Crypto policy and FIPS support patches
# Patch is generated from the fips-19u tree at https://github.com/rh-openjdk/jdk/tree/fips-19u
# as follows: git diff %%{vcstag} src make > fips-19u-$(git show -s --format=%h HEAD).patch
# Patch is generated from the fips-20u tree at https://github.com/rh-openjdk/jdk/tree/fips-20u
# as follows: git diff %%{vcstag} src make > fips-20u-$(git show -s --format=%h HEAD).patch
# Diff is limited to src and make subdirectories to exclude .github changes
# Fixes currently included:
# PR3183, RH1340845: Follow system wide crypto policy
@ -685,7 +684,10 @@ Patch6: rh1684077-openjdk_should_depend_on_pcsc-lite-libs_instead_of_pcsc-lite-d
# RH2094027: SunEC runtime permission for FIPS
# RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage
# RH2090378: Revert to disabling system security properties and FIPS mode support together
Patch1001: fips-19u-%{fipsver}.patch
# RH2104724: Avoid import/export of DH private keys
# RH2092507: P11Key.getEncoded does not work for DH keys in FIPS mode
# Build the systemconf library on all platforms
Patch1001: fips-20u-%{fipsver}.patch
#############################################
#
@ -935,6 +937,12 @@ if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 -a %{includ
echo "You have disabled all builds (normal,fastdebug,slowdebug). That is a no go."
exit 14
fi
%if %{with fresh_libjvm} && ! %{build_hotspot_first}
echo "WARNING: The build of a fresh libjvm has been disabled due to a JDK version mismatch"
echo "Build JDK version is %{buildjdkver}, feature JDK version is %{featurever}"
%endif
%setup -q -c -n %{uniquesuffix ""} -T -a 0
# https://bugzilla.redhat.com/show_bug.cgi?id=1189084
prioritylength=`expr length %{priority}`
@ -952,17 +960,17 @@ sh %{SOURCE12} %{top_level_dir_name}
# Patch the JDK
pushd %{top_level_dir_name}
%patch 1 -p1
%patch 2 -p1
%patch 3 -p1
%patch 6 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch6 -p1
# Add crypto policy and FIPS support
#%%patch 1001 -p1 - todo, adapt fips patch for jdk20
%patch1001 -p1
# nss.cfg PKCS11 support; must come last as it also alters java.security
%patch 1000 -p1
%patch1000 -p1
popd # openjdk
%patch 600
%patch600
# The OpenJDK version file includes the current
# upstream version information. For some reason,
@ -1132,6 +1140,7 @@ function buildjdk() {
--with-boot-jdk=${buildjdk} \
--with-debug-level=${debuglevel} \
--with-native-debug-symbols="%{debug_symbols}" \
--disable-sysconf-nss \
--enable-unlimited-crypto \
--with-zlib=%{link_type} \
--with-freetype=%{link_type} \
@ -1505,8 +1514,8 @@ $JAVA_HOME/bin/java $(echo $(basename %{SOURCE16})|sed "s|\.java||") "%{oj_vendo
# tzdb.dat used by this test is not where the test expects it, so this is
# disabled for flatpak builds)
$JAVA_HOME/bin/javac -d . %{SOURCE18}
#$JAVA_HOME/bin/java $(echo $(basename %{SOURCE18})|sed "s|\.java||") JRE
#$JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|sed "s|\.java||") CLDR
$JAVA_HOME/bin/java $(echo $(basename %{SOURCE18})|sed "s|\.java||") JRE
$JAVA_HOME/bin/java -Djava.locale.providers=CLDR $(echo $(basename %{SOURCE18})|sed "s|\.java||") CLDR
%endif
%if %{include_staticlibs}
@ -1596,19 +1605,36 @@ done
%endif
%changelog
* Tue Mar 28 2023 Jiri Vanel <jvanek@redhat.com> - 1:20.0.0.0.36-1.rolling
- moved to jdk20
* Mon Apr 10 2023 Andrew Hughes <gnu.andrew@redhat.com> - 1:20.0.0.0.36-2.rolling
- Complete update to OpenJDK 20
- Update NEWS
- Update system crypto policy & FIPS patch from new fips-20u tree
- * RH2104724: Avoid import/export of DH private keys
- * RH2092507: P11Key.getEncoded does not work for DH keys in FIPS mode
- * Build the systemconf library on all platforms
- Update generate_tarball.sh ICEDTEA_VERSION and add support for passing a boot JDK to the configure run
- Revert changes to generate_tarball.sh which break error handling
- Add POSIX-friendly error codes to generate_tarball.sh and fix whitespace
- Remove .jcheck and GitHub support when generating tarballs, as done in upstream release tarballs
- Revert changes to patch macro which break on older versions of rpm (4.16)
- Revert changes to configure run
- Revert RH1648429 patch changes
- Update CLDR reference data following update to 42 (Rocky Mountain-Normalzeit => Rocky-Mountain-Normalzeit)
- Re-enable disabled translation test
- Automatically turn off building a fresh HotSpot first, if the bootstrap JDK is not the same major version as that being built
* Tue Mar 28 2023 Jiri Vanek <jvanek@redhat.com> - 1:20.0.0.0.36-1.rolling
- moved to jdk20
- remvoed already upstreamed patches patch2006,2007,2008,2009
- commented out not yet adapted patch1001 - fips support
- removed --disable-sysconf-nss due to missing patch 1001 from configure
-- todo return both patch1001 and disable-sysconf-nss!
- adapted rh1750419-redhat_alt_java.patch and rh1750419-redhat_alt_java.patch patches
- adapted rh1648249-add_commented_out_nss_cfg_provider_to_java_security.patch and rh1750419-redhat_alt_java.patch patches
- inverted fresh_libjvm behavior to be disabled by default. fails:
-- See: https://koji.fedoraproject.org/koji/taskinfo?taskID=99242677
- commented out tzdata tests
- moved from deprecated patchN to patch N
* Tue Feb 07 2023 Jiri Vanel <jvanek@redhat.com> - 1:19.0.2.0.7-2.rolling
- added png icons from x11 source package, so they can be reused by rpms

View File

@ -9,4 +9,4 @@ index 68a9c1a2d08..7aa25eb2cb7 100644
+#security.provider.tbd=SunPKCS11 ${java.home}/lib/security/nss.cfg
#
# A list of preferred providers for specific algorithms. These providers will
# Security providers used when FIPS mode support is active

View File

@ -1 +1 @@
SHA512 (openjdk-jdk20u-jdk-20+36.tar.xz) = 08f7918c4d0c1fb3b0036c48dfb7c61e4ed4d3344dfc44ae8ed5eaebe8e85ee1b7d234560654c457148738fc93dc417dafcecd80c97e749d2d8253cfb5ecfe1e
SHA512 (openjdk-jdk20u-jdk-20+36.tar.xz) = 4d7560d9e452879632d7c2dc8d4df3faeafe875e95abd47fafcb8dbe469a567359fd13e6cabd59dc72323125ab9672090f0d04d17d859943c7967ed35f3d7f68