From ececafd95cd757dc5e2222d1de84e879e771617f Mon Sep 17 00:00:00 2001 From: Andrew Hughes Date: Mon, 18 Jul 2022 01:33:05 +0100 Subject: [PATCH] Update to shenandoah-jdk8u342-b06 (EA) Update release notes for shenandoah-8u342-b06. Switch to EA mode for 8u342 pre-release builds. Print release file during build, which should now include a correct SOURCE value from .src-rev Update tarball script with IcedTea GitHub URL and .src-rev generation Use "git apply" with patches in the tarball script to allow binary diffs Remove redundant "REPOS" variable from tarball script Include script to generate bug list for release notes Update tzdata requirement to 2022a to match JDK-8283350 Resolves: rhbz#2083322 --- .gitignore | 1 + NEWS | 106 +++++++++++++++++++++++++++++++++++++ generate_source_tarball.sh | 74 ++++++++++++++------------ java-1.8.0-openjdk.spec | 30 ++++++++--- openjdk_news.sh | 76 ++++++++++++++++++++++++++ sources | 2 +- 6 files changed, 246 insertions(+), 43 deletions(-) create mode 100755 openjdk_news.sh diff --git a/.gitignore b/.gitignore index a973960..da2aef1 100644 --- a/.gitignore +++ b/.gitignore @@ -255,3 +255,4 @@ /openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b01-4curve.tar.xz /openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b06-4curve.tar.xz /openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz +/openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz diff --git a/NEWS b/NEWS index 7933b93..6a0a496 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,112 @@ 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 8u342 (2022-07-19): +=========================================== +Live versions of these release notes can be found at: + * https://bitly.com/openjdk8u342 + * https://builds.shipilev.net/backports-monitor/release-notes-openjdk8u342.txt + +* Other changes + - JDK-8031567: Better model for storing source revision information + - JDK-8076190: Customizing the generation of a PKCS12 keystore + - JDK-8129572: Cleanup usage of getResourceAsStream in jaxp + - JDK-8132256: jaxp: Investigate removal of com/sun/org/apache/bcel/internal/util/ClassPath.java + - JDK-8168926: C2: Bytecode escape analyzer crashes due to stack overflow + - JDK-8170385: JDK-8031567 broke source bundles + - JDK-8170392: JDK-8031567 broke builds from source bundles + - JDK-8170530: bash configure output contains a typo in a suggested library name + - JDK-8190753: (zipfs): Accessing a large entry (> 2^31 bytes) leads to a negative initial size for ByteArrayOutputStream + - JDK-8194154: System property user.dir should not be changed + - JDK-8202142: jfr/event/io/TestInstrumentation is unstable + - JDK-8221988: add possibility to build with Visual Studio 2019 + - JDK-8223396: [TESTBUG] several jfr tests do not clean up files created in /tmp + - JDK-8230865: [TESTBUG] jdk/jfr/event/io/EvilInstrument.java fails at-run shell MakeJAR.sh target + - JDK-8235211: serviceability/attach/RemovingUnixDomainSocketTest.java fails with AttachNotSupportedException: Unable to open socket file + - JDK-8244973: serviceability/attach/RemovingUnixDomainSocketTest.java fails "stderr was not empty" + - JDK-8248876: LoadObject with bad base address created for exec file on linux + - JDK-8253424: Add support for running pre-submit testing using GitHub Actions + - JDK-8253865: Pre-submit testing using GitHub Actions does not detect failures reliably + - JDK-8254054: Pre-submit testing using GitHub Actions should not use the deprecated set-env command + - JDK-8254173: Add Zero, Minimal hotspot targets to submit workflow + - JDK-8254175: Build no-pch configuration in debug mode for submit checks + - JDK-8254282: Add Linux x86_32 builds to submit workflow + - JDK-8255239: The timezone of the hs_err_pid log file is corrupted in Japanese locale + - JDK-8255305: Add Linux x86_32 tier1 to submit workflow + - JDK-8255352: Archive important test outputs in submit workflow + - JDK-8255373: Submit workflow artifact name is always "test-results_.zip" + - JDK-8255895: Submit workflow artifacts miss hs_errs/replays due to ZIP include mismatch + - JDK-8256127: Add cross-compiled foreign architectures builds to submit workflow + - JDK-8256277: Github Action build on macOS should define OS and Xcode versions + - JDK-8256354: Github Action build on Windows should define OS and MSVC versions + - JDK-8256393: Github Actions build on Linux should define OS and GCC versions + - JDK-8256414: add optimized build to submit workflow + - JDK-8256747: GitHub Actions: decouple the hotspot build-only jobs from Linux x64 testing + - JDK-8257056: Submit workflow should apt-get update to avoid package installation errors + - JDK-8259924: GitHub actions fail on Linux x86_32 with "Could not configure libc6:i386" + - JDK-8260460: GitHub actions still fail on Linux x86_32 with "Could not configure libc6:i386" + - JDK-8261107: ArrayIndexOutOfBoundsException in the ICC_Profile.getInstance(InputStream) + - JDK-8263667: Avoid running GitHub actions on branches named pr/* + - JDK-8266187: Memory leak in appendBootClassPath() + - JDK-8274658: ISO 4217 Amendment 170 Update + - JDK-8274751: Drag And Drop hangs on Windows + - JDK-8278138: OpenJDK8 fails to start on Windows 8.1 after upgrading compiler to VS2017 + - JDK-8279669: test/jdk/com/sun/jdi/TestScaffold.java uses wrong condition + - JDK-8281814: Debuginfo.diz contains redundant build path after backport JDK-8025936 + - JDK-8282225: GHA: Allow one concurrent run per PR only + - JDK-8282458: Update .jcheck/conf file for 8u move to git + - JDK-8282552: Bump update version of OpenJDK: 8u342 + - JDK-8283350: (tz) Update Timezone Data to 2022a + - JDK-8284620: CodeBuffer may leak _overflow_arena + - JDK-8284772: 8u GHA: Use GCC Major Version Dependencies Only + - JDK-8285445: cannot open file "NUL:" + - JDK-8285523: Improve test java/io/FileOutputStream/OpenNUL.java + - JDK-8285591: [11] add signum checks in DSA.java engineVerify + - JDK-8285727: [11u, 17u] Unify fix for JDK-8284920 with version from head + - JDK-8286989: Build failure on macOS after 8281814 + - JDK-8287537: 8u JDK-8284620 backport broke AArch64 build + +Notes on individual issues: +=========================== + +security-libs/java.security: + +JDK-8215293: Customizing PKCS12 keystore Generation +=================================================== +New system and security properties have been added to enable users to +customize the generation of PKCS #12 keystores. This includes +algorithms and parameters for key protection, certificate protection, +and MacData. The detailed explanation and possible values for these +properties can be found in the "PKCS12 KeyStore properties" section of +the `java.security` file. + +Also, support for the following SHA-2 based HmacPBE algorithms has +been added to the SunJCE provider: + +* HmacPBESHA224 +* HmacPBESHA256 +* HmacPBESHA384 +* HmacPBESHA512 +* HmacPBESHA512/224 +* HmacPBESHA512/256 + +core-libs/java.io: + +JDK-8285660: Enable Windows Alternate Data Streams by default +============================================================= +The Windows implementation of `java.io.File` has been changed so that +strict validity checks are **not** performed by default on file +paths. This includes allowing colons (':') in the path other than only +immediately after a single drive letter. It also allows paths that +represent NTFS Alternate Data Streams (ADS), such as +"filename:streamname". This restores the default behavior of +`java.io.File` to what it was prior to the April 2022 CPU in which +strict validity checks were not performed by default on file paths on +Windows. To re-enable strict path checking in `java.io.File`, the +system property `jdk.io.File.enableADS` should be set to `false` (case +ignored). This might be preferable, for example, if Windows special +device paths such as `NUL:` are *not* used. + New in release OpenJDK 8u332 (2022-04-22): =========================================== Live versions of these release notes can be found at: diff --git a/generate_source_tarball.sh b/generate_source_tarball.sh index 61aad1f..3f33d68 100755 --- a/generate_source_tarball.sh +++ b/generate_source_tarball.sh @@ -42,8 +42,8 @@ set -e OPENJDK_URL_DEFAULT=https://github.com COMPRESSION_DEFAULT=xz -# jdk is last for its size -REPOS_DEFAULT="hotspot corba jaxws jaxp langtools nashorn jdk" +# Corresponding IcedTea version +ICEDTEA_VERSION=3.0 if [ "x$1" = "xhelp" ] ; then echo -e "Behaviour may be specified by setting the following variables:\n" @@ -56,7 +56,6 @@ if [ "x$1" = "xhelp" ] ; then echo "REPO_ROOT - the location of the Mercurial repository to archive (optional; defaults to OPENJDK_URL/PROJECT_NAME/REPO_NAME)" echo "PR3822 - the path to the PR3822 patch to apply (optional; downloaded if unavailable)" echo "JCONSOLE_JS_PATCH - the path to a patch to fix non-availiability of jconsole.js (optional; defaults to ${JCONSOLE_JS_PATCH_DEFAULT})" - echo "REPOS - specify the repositories to use (optional; defaults to ${REPOS_DEFAULT})" exit 1; fi @@ -102,10 +101,6 @@ if [ "x$REPO_ROOT" = "x" ] ; then REPO_ROOT="${OPENJDK_URL}/${PROJECT_NAME}/${REPO_NAME}.git" echo "No repository root specified; default to ${REPO_ROOT}" fi; -if [ "x$REPOS" = "x" ] ; then - REPOS=${REPOS_DEFAULT} - echo "No repositories specified; defaulting to ${REPOS}" -fi; echo -e "Settings:" echo -e "\tVERSION: ${VERSION}" @@ -117,13 +112,13 @@ echo -e "\tFILE_NAME_ROOT: ${FILE_NAME_ROOT}" echo -e "\tREPO_ROOT: ${REPO_ROOT}" echo -e "\tPR3822: ${PR3822}" echo -e "\tJCONSOLE_JS_PATCH: ${JCONSOLE_JS_PATCH}" -echo -e "\tREPOS: ${REPOS}" mkdir "${FILE_NAME_ROOT}" pushd "${FILE_NAME_ROOT}" echo "Cloning ${VERSION} root repository from ${REPO_ROOT}" git clone -b ${VERSION} ${REPO_ROOT} openjdk + pushd openjdk # UnderlineTaglet.java has a BSD license with a field-of-use restriction, making it non-Free @@ -132,39 +127,50 @@ if [ -d langtools ] ; then rm -vf langtools/test/tools/javadoc/api/basic/TagletPathTest.java rm -vf langtools/test/tools/javadoc/api/basic/taglets/UnderlineTaglet.java fi -if [ -d jdk ]; then -# jconsole.js has a BSD license with a field-of-use restriction, making it non-Free -echo "Removing jconsole-plugin file with non-Free license" -rm -vf jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js -echo "Removing EC source code we don't build" -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_193.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_233.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_aff.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_mont.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c -rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c -echo "Syncing EC list with NSS" -if [ "x$PR3822" = "x" ] ; then -# get pr3822.patch (from http://icedtea.classpath.org/hg/icedtea8) from most correct tag -# Do not push it or publish it (see http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3822) - wget -O pr3822.patch http://icedtea.classpath.org/hg/icedtea8/raw-file/tip/patches/pr3822-4curve.patch - patch -Np1 < pr3822.patch - rm pr3822.patch -else - echo "Applying ${PR3822}" - patch -Np1 < $PR3822 -fi; +if [ -d jdk ]; then + # jconsole.js has a BSD license with a field-of-use restriction, making it non-Free + echo "Removing jconsole-plugin file with non-Free license" + rm -vf jdk/src/share/demo/scripting/jconsole-plugin/src/resources/jconsole.js + echo "Removing EC source code we don't build" + rm -vf jdk/src/share/native/sun/security/ec/impl/ec2.h + rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_163.c + rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_193.c + rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_233.c + rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_aff.c + rm -vf jdk/src/share/native/sun/security/ec/impl/ec2_mont.c + rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_192.c + rm -vf jdk/src/share/native/sun/security/ec/impl/ecp_224.c + + echo "Syncing EC list with NSS" + if [ "x$PR3822" = "x" ] ; then + # get pr3822.patch (from https://github.com/icedtea-git/icedtea) in the ${ICEDTEA_VERSION} branch + # Do not push it or publish it + wget -O pr3822.patch https://github.com/icedtea-git/icedtea/raw/${ICEDTEA_VERSION}/patches/pr3822-4curve.patch + echo "Applying ${PWD}/pr3822.patch" + git apply --stat --apply -v -p1 pr3822.patch + rm pr3822.patch + else + echo "Applying ${PR3822}" + git apply --stat --apply -v -p1 $PR3822 + fi; fi echo "Patching out use of jconsole.js" -patch -Np1 < ${JCONSOLE_JS_PATCH} +git apply --stat --apply -v -p1 ${JCONSOLE_JS_PATCH} find . -name '*.orig' -exec rm -vf '{}' ';' popd + +# Generate .src-rev so build has knowledge of the revision the tarball was created from +mkdir build +pushd build +sh ${PWD}/../openjdk/configure +make store-source-revision +popd +rm -rf build + echo "Compressing remaining forest" if [ "X$COMPRESSION" = "Xxz" ] ; then SWITCH=cJf @@ -177,5 +183,3 @@ mv ${TARBALL_NAME} .. popd echo "Done. You may want to remove the uncompressed version." - - diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index b880f72..6ba2b7a 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -311,7 +311,7 @@ # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there. %global shenandoah_project openjdk %global shenandoah_repo shenandoah-jdk8u -%global openjdk_revision jdk8u332-b09 +%global openjdk_revision jdk8u342-b06 %global shenandoah_revision shenandoah-%{openjdk_revision} # Define old aarch64/jdk8u tree variables for compatibility %global project %{shenandoah_project} @@ -327,12 +327,12 @@ %global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u}) # eg jdk8u60-b27 -> b27 %global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-}) -%global rpmrelease 3 +%global rpmrelease 1 # Define milestone (EA for pre-releases, GA ("fcs") for releases) # Release will be (where N is usually a number starting at 1): # - 0.N%%{?extraver}%%{?dist} for EA releases, # - N%%{?extraver}{?dist} for GA releases -%global is_ga 1 +%global is_ga 0 %if %{is_ga} %global milestone fcs %global milestone_version %{nil} @@ -1211,8 +1211,8 @@ Requires: ca-certificates # Require javapackages-filesystem for ownership of /usr/lib/jvm/ and macros Requires: javapackages-filesystem # Require zoneinfo data provided by tzdata-java subpackage. -# 2021e required as of JDK-8275766 in January 2022 CPU -Requires: tzdata-java >= 2021e +# 2022a required as of JDK-8283350 in 8u342 +Requires: tzdata-java >= 2022a # for support of kernel stream control # libsctp.so.1 is being `dlopen`ed on demand Requires: lksctp-tools%{?_isa} @@ -1592,8 +1592,8 @@ BuildRequires: java-%{buildjdkver}-openjdk-devel >= 1.7.0.151-2.6.11.3 %ifarch %{zero_arches} BuildRequires: libffi-devel %endif -# 2021e required as of JDK-8275766 in January 2022 CPU -BuildRequires: tzdata-java >= 2021e +# 2022a required as of JDK-8283350 in 8u342 +BuildRequires: tzdata-java >= 2022a # Earlier versions have a bug in tree vectorization on PPC BuildRequires: gcc >= 4.8.3-8 @@ -2113,6 +2113,10 @@ function installjdk() { echo "Hardened java binary recommended for launching untrusted code from the Web e.g. javaws" > man/man1/%{alt_java_name}.1 cat man/man1/java.1 >> man/man1/%{alt_java_name}.1 popd + + # Print release information + cat ${imagepath}/release + fi } @@ -2654,6 +2658,18 @@ cjc.mainProgram(args) %endif %changelog +* Sun Jul 17 2022 Andrew Hughes - 1:1.8.0.342.b06-0.1.ea +- Update to shenandoah-jdk8u342-b06 (EA) +- Update release notes for shenandoah-8u342-b06. +- Switch to EA mode for 8u342 pre-release builds. +- Print release file during build, which should now include a correct SOURCE value from .src-rev +- Update tarball script with IcedTea GitHub URL and .src-rev generation +- Use "git apply" with patches in the tarball script to allow binary diffs +- Remove redundant "REPOS" variable from tarball script +- Include script to generate bug list for release notes +- Update tzdata requirement to 2022a to match JDK-8283350 +- Resolves: rhbz#2083322 + * Sun Jul 17 2022 Andrew Hughes - 1:1.8.0.332.b09-3 - Rebase FIPS patches from fips branch and simplify by using a single patch from that repository - * RH2036462: sun.security.pkcs11.wrapper.PKCS11.getInstance breakage diff --git a/openjdk_news.sh b/openjdk_news.sh new file mode 100755 index 0000000..560b356 --- /dev/null +++ b/openjdk_news.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +# Copyright (C) 2022 Red Hat, Inc. +# Written by Andrew John Hughes , 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 . + +OLD_RELEASE=$1 +NEW_RELEASE=$2 +SUBDIR=$3 +REPO=$4 +SCRIPT_DIR=$(dirname ${0}) + +if test "x${SUBDIR}" = "x"; then + echo "No subdirectory specified; using ."; + SUBDIR="."; +fi + +if test "x$REPO" = "x"; then + echo "No repository specified; using ${PWD}" + REPO=${PWD} +fi + +if test x${TMPDIR} = x; 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 "x$OLD_RELEASE" = "x" || test "x$NEW_RELEASE" = "x"; 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 "x$TYPE" = "xhg"; then + hg log -r "tag('$NEW_RELEASE'):tag('$OLD_RELEASE') - tag('$OLD_RELEASE')" -R $REPO/$repos -G -M ${REPO}/${SUBDIR} | \ + egrep '^[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} | \ + egrep '^[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} |egrep '^[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 diff --git a/sources b/sources index 4662b4c..8c41d22 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (tapsets-icedtea-3.15.0.tar.xz) = c752a197cb3d812d50c35e11e4722772be40096c81d2a57933e0d9b8a3c708b9c157b8108a4e33a06ca7bb81648170994408c75d6f69d5ff12785d0c31009671 -SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u332-b09-4curve.tar.xz) = 23d906ecce6864e0bd3ae4c95ac597eb697c1e28356371aafd7aabab5c3a9a9d861c326125e7a45f15340a5a106c1915808fa93b3ff7cdc8b003647a44caf7fd +SHA512 (openjdk-shenandoah-jdk8u-shenandoah-jdk8u342-b06-4curve.tar.xz) = bc7fb9c21f33b2edab948b2b31e3198441c7901369476cd4d4ba0056dbba394a0a19099a2d57987641575f17383a4fd2b85a791ee56fbe2deaa246ec89fe9d81