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