From f05b8e49860f3cb1d403686b925481eadd7b79ef Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Jul 27 2016 09:15:31 +0000 Subject: import java-1.7.0-openjdk-1.7.0.111-2.6.7.2.el7_2 --- diff --git a/.gitignore b/.gitignore index 3ae7c43..2627f57 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ SOURCES/class-rewriter.tar.gz -SOURCES/openjdk-icedtea-2.6.6.tar.xz +SOURCES/openjdk-icedtea-2.6.7.tar.xz SOURCES/pulseaudio.tar.gz -SOURCES/systemtap-tapset-2014-03-19.tar.xz +SOURCES/systemtap-tapset-2016-07-20.tar.xz diff --git a/.java-1.7.0-openjdk.metadata b/.java-1.7.0-openjdk.metadata index c4cd49a..480141f 100644 --- a/.java-1.7.0-openjdk.metadata +++ b/.java-1.7.0-openjdk.metadata @@ -1,4 +1,4 @@ fcc167de17354efb6e52cb387eb3e7dbb0316b53 SOURCES/class-rewriter.tar.gz -661f1b17eefd2f5cabb74aefb8a0efa0bd9c41a0 SOURCES/openjdk-icedtea-2.6.6.tar.xz +5fd43471399674bd74492fe15f73671ab2ba196a SOURCES/openjdk-icedtea-2.6.7.tar.xz fb72b6b1f4735ad9b5799d0b5058b0b1dec67b17 SOURCES/pulseaudio.tar.gz -becc037bf0eb13b5f0ebcdd94b58ebfe6336b7a0 SOURCES/systemtap-tapset-2014-03-19.tar.xz +99b0cc8fa222bc6339374cfb8f8560d911613502 SOURCES/systemtap-tapset-2016-07-20.tar.xz diff --git a/SOURCES/7081817.patch b/SOURCES/7081817.patch new file mode 100644 index 0000000..a248904 --- /dev/null +++ b/SOURCES/7081817.patch @@ -0,0 +1,27 @@ +# HG changeset patch +# User xuelei +# Date 1314062503 25200 +# Mon Aug 22 18:21:43 2011 -0700 +# Node ID 048f6b9603cfcdd204b540a27fad8b7fc492adc2 +# Parent 802c570861cbe03be84aba444399d81a57e00b4a +7081817: test/sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java failing +Reviewed-by: alanb, weijun + +diff --git a/src/share/classes/sun/security/provider/certpath/X509CertPath.java b/src/share/classes/sun/security/provider/certpath/X509CertPath.java +--- openjdk/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java ++++ openjdk/jdk/src/share/classes/sun/security/provider/certpath/X509CertPath.java +@@ -105,7 +105,13 @@ + super("X.509"); + + // Ensure that the List contains only X509Certificates +- for (Certificate obj : certs) { ++ // ++ // Note; The certs parameter is not necessarily to be of Certificate ++ // for some old code. For compatibility, to make sure the exception ++ // is CertificateException, rather than ClassCastException, please ++ // don't use ++ // for (Certificate obj : certs) ++ for (Object obj : certs) { + if (obj instanceof X509Certificate == false) { + throw new CertificateException + ("List is not all X509Certificates: " diff --git a/SOURCES/8140344.patch b/SOURCES/8140344.patch new file mode 100644 index 0000000..466c66b --- /dev/null +++ b/SOURCES/8140344.patch @@ -0,0 +1,153 @@ +# HG changeset patch +# User robm +# Date 1469137650 -3600 +# Thu Jul 21 22:47:30 2016 +0100 +# Node ID c2ba29a6b98f628737ea1f74dd8745e4f72858a9 +# Parent 048f6b9603cfcdd204b540a27fad8b7fc492adc2 +8140344: add support for 3 digit update release numbers +Reviewed-by: coffeys + +diff --git a/src/share/classes/sun/misc/Version.java.template b/src/share/classes/sun/misc/Version.java.template +--- openjdk/jdk/src/share/classes/sun/misc/Version.java.template ++++ openjdk/jdk/src/share/classes/sun/misc/Version.java.template +@@ -283,15 +283,24 @@ + jvm_minor_version = Character.digit(cs.charAt(2), 10); + jvm_micro_version = Character.digit(cs.charAt(4), 10); + cs = cs.subSequence(5, cs.length()); +- if (cs.charAt(0) == '_' && cs.length() >= 3 && +- Character.isDigit(cs.charAt(1)) && +- Character.isDigit(cs.charAt(2))) { +- int nextChar = 3; ++ if (cs.charAt(0) == '_' && cs.length() >= 3) { ++ int nextChar = 0; ++ if (Character.isDigit(cs.charAt(1)) && ++ Character.isDigit(cs.charAt(2)) && ++ Character.isDigit(cs.charAt(3))) ++ { ++ nextChar = 4; ++ } else if (Character.isDigit(cs.charAt(1)) && ++ Character.isDigit(cs.charAt(2))) ++ { ++ nextChar = 3; ++ } ++ + try { +- String uu = cs.subSequence(1, 3).toString(); ++ String uu = cs.subSequence(1, nextChar).toString(); + jvm_update_version = Integer.valueOf(uu).intValue(); +- if (cs.length() >= 4) { +- char c = cs.charAt(3); ++ if (cs.length() >= nextChar + 1) { ++ char c = cs.charAt(nextChar); + if (c >= 'a' && c <= 'z') { + jvm_special_version = Character.toString(c); + nextChar++; +diff --git a/src/share/native/common/jdk_util.c b/src/share/native/common/jdk_util.c +--- openjdk/jdk/src/share/native/common/jdk_util.c ++++ openjdk/jdk/src/share/native/common/jdk_util.c +@@ -52,6 +52,7 @@ + + const char* jdk_update_string = JDK_UPDATE_VERSION; + unsigned int jdk_update_version = 0; ++ int len_update_ver = 0; + char update_ver[3]; + char jdk_special_version = '\0'; + +@@ -78,16 +79,17 @@ + + assert(jdk_build_number >= 0 && jdk_build_number <= 255); + +- if (strlen(jdk_update_string) == 2 || strlen(jdk_update_string) == 3) { +- if (isdigit(jdk_update_string[0]) && isdigit(jdk_update_string[1])) { +- update_ver[0] = jdk_update_string[0]; +- update_ver[1] = jdk_update_string[1]; +- update_ver[2] = '\0'; +- jdk_update_version = (unsigned int) atoi(update_ver); +- if (strlen(jdk_update_string) == 3) { +- jdk_special_version = jdk_update_string[2]; +- } ++ len_update_ver = strlen(jdk_update_string); ++ if (len_update_ver >= 2 && len_update_ver <= 4) { ++ int update_digits = len_update_ver; ++ ++ if (!isdigit(jdk_update_string[len_update_ver - 1])) { ++ jdk_special_version = jdk_update_string[len_update_ver -1]; ++ update_digits = len_update_ver - 1; + } ++ strncpy(update_ver, jdk_update_string, update_digits); ++ update_ver[update_digits] = '\0'; ++ jdk_update_version = (unsigned int) atoi(update_ver); + } + + memset(info, 0, info_size); +diff --git a/test/sun/misc/Version/Version.java b/test/sun/misc/Version/Version.java +--- openjdk/jdk/test/sun/misc/Version/Version.java ++++ openjdk/jdk/test/sun/misc/Version/Version.java +@@ -114,7 +114,7 @@ + regex += "([0-9]{1,2})"; // micro + regex += ")?"; // micro is optional + regex += "(_"; +- regex += "([0-9]{2})"; // update ++ regex += "([0-9]{2,3})"; // update + regex += "([a-z])?"; // special char (optional) + regex += ")?"; // _uu[c] is optional + regex += ".*"; // - +@@ -132,33 +132,38 @@ + build = Integer.parseInt(m.group(9)); + + VersionInfo vi = new VersionInfo(major, minor, micro, update, special, build); +- System.out.printf("newVersionInfo: input=%s output=%s\n", version, vi); ++ System.out.printf("jdkVersionInfo: input=%s output=%s\n", version, vi); + return vi; + } + + private static VersionInfo jvmVersionInfo(String version) throws Exception { +- // valid format of the version string is: +- // .-bxx[-][-] +- int major = 0; +- int minor = 0; +- int build = 0; ++ try { ++ // valid format of the version string is: ++ // .-bxx[-][-] ++ int major = 0; ++ int minor = 0; ++ int build = 0; + +- String regex = "^([0-9]{1,2})"; // major +- regex += "\\."; // separator +- regex += "([0-9]{1,2})"; // minor +- regex += "(\\-b([0-9]{1,3}))"; // JVM -bxx +- regex += ".*"; ++ String regex = "^([0-9]{1,2})"; // major ++ regex += "\\."; // separator ++ regex += "([0-9]{1,2})"; // minor ++ regex += "(\\-b([0-9]{1,3}))"; // JVM -bxx ++ regex += ".*"; + +- Pattern p = Pattern.compile(regex); +- Matcher m = p.matcher(version); +- m.matches(); ++ Pattern p = Pattern.compile(regex); ++ Matcher m = p.matcher(version); ++ m.matches(); + +- major = Integer.parseInt(m.group(1)); +- minor = Integer.parseInt(m.group(2)); +- build = Integer.parseInt(m.group(4)); ++ major = Integer.parseInt(m.group(1)); ++ minor = Integer.parseInt(m.group(2)); ++ build = Integer.parseInt(m.group(4)); + +- VersionInfo vi = new VersionInfo(major, minor, 0, 0, "", build); +- System.out.printf("newVersionInfo: input=%s output=%s\n", version, vi); +- return vi; ++ VersionInfo vi = new VersionInfo(major, minor, 0, 0, "", build); ++ System.out.printf("jvmVersionInfo: input=%s output=%s\n", version, vi); ++ return vi; ++ } catch (IllegalStateException e) { ++ // local builds may also follow the jdkVersionInfo format ++ return jdkVersionInfo(version); ++ } + } + } diff --git a/SOURCES/8145017.patch b/SOURCES/8145017.patch new file mode 100644 index 0000000..469e513 --- /dev/null +++ b/SOURCES/8145017.patch @@ -0,0 +1,33 @@ +# HG changeset patch +# User robm +# Date 1449750086 0 +# Thu Dec 10 12:21:26 2015 +0000 +# Node ID b015efd2ab82fea24e06b539036c2e4978e26266 +# Parent c2ba29a6b98f628737ea1f74dd8745e4f72858a9 +8145017: Add support for 3 digit hotspot minor version numbers +Reviewed-by: coffeys + +diff --git a/src/share/native/common/jdk_util.c b/src/share/native/common/jdk_util.c +--- openjdk/jdk/src/share/native/common/jdk_util.c ++++ openjdk/jdk/src/share/native/common/jdk_util.c +@@ -53,7 +53,7 @@ + const char* jdk_update_string = JDK_UPDATE_VERSION; + unsigned int jdk_update_version = 0; + int len_update_ver = 0; +- char update_ver[3]; ++ char update_ver[5]; + char jdk_special_version = '\0'; + + /* If the JDK_BUILD_NUMBER is of format bXX and XX is an integer +diff --git a/test/sun/misc/Version/Version.java b/test/sun/misc/Version/Version.java +--- openjdk/jdk/test/sun/misc/Version/Version.java ++++ openjdk/jdk/test/sun/misc/Version/Version.java +@@ -146,7 +146,7 @@ + + String regex = "^([0-9]{1,2})"; // major + regex += "\\."; // separator +- regex += "([0-9]{1,2})"; // minor ++ regex += "([0-9]{1,3})"; // minor + regex += "(\\-b([0-9]{1,3}))"; // JVM -bxx + regex += ".*"; + diff --git a/SOURCES/8162344.patch b/SOURCES/8162344.patch new file mode 100644 index 0000000..bf0d8c6 --- /dev/null +++ b/SOURCES/8162344.patch @@ -0,0 +1,94 @@ +# HG changeset patch +# User andrew +# Date 1469192287 -3600 +# Fri Jul 22 13:58:07 2016 +0100 +# Node ID cc1ed9a351886645eb729144696e41d187564ec2 +# Parent b015efd2ab82fea24e06b539036c2e4978e26266 +8162344: The API changes made by CR 7064075 need to be reverted +Summary: Remove type parameters added to SecretKeyFactory.getKeySpec and SecretKeyFactorySpi.engineGetKeySpec +Reviewed-by: omajid + +diff --git a/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java b/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java +--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java ++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DESKeyFactory.java +@@ -92,7 +92,7 @@ + * inappropriate for the given key, or the given key cannot be processed + * (e.g., the given key has an unrecognized algorithm or format). + */ +- protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) ++ protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + throws InvalidKeySpecException { + + try { +diff --git a/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java b/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java +--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java ++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/DESedeKeyFactory.java +@@ -92,7 +92,7 @@ + * inappropriate for the given key, or the given key cannot be processed + * (e.g., the given key has an unrecognized algorithm or format). + */ +- protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) ++ protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + throws InvalidKeySpecException { + + try { +diff --git a/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java b/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java +--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java ++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/PBEKeyFactory.java +@@ -131,7 +131,7 @@ + * inappropriate for the given key, or the given key cannot be processed + * (e.g., the given key has an unrecognized algorithm or format). + */ +- protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) ++ protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) + throws InvalidKeySpecException { + if ((key instanceof SecretKey) + && (validTypes.contains(key.getAlgorithm().toUpperCase())) +diff --git a/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java b/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java +--- openjdk/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java ++++ openjdk/jdk/src/share/classes/com/sun/crypto/provider/PBKDF2HmacSHA1Factory.java +@@ -86,7 +86,7 @@ + * given key cannot be processed (e.g., the given key has an + * unrecognized algorithm or format). + */ +- protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) ++ protected KeySpec engineGetKeySpec(SecretKey key, Class keySpecCl) + throws InvalidKeySpecException { + if (key instanceof javax.crypto.interfaces.PBEKey) { + // Check if requested key spec is amongst the valid ones +diff --git a/src/share/classes/javax/crypto/SecretKeyFactory.java b/src/share/classes/javax/crypto/SecretKeyFactory.java +--- openjdk/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java ++++ openjdk/jdk/src/share/classes/javax/crypto/SecretKeyFactory.java +@@ -368,7 +368,7 @@ + * (e.g., the given key has an algorithm or format not supported by this + * secret-key factory). + */ +- public final KeySpec getKeySpec(SecretKey key, Class keySpec) ++ public final KeySpec getKeySpec(SecretKey key, Class keySpec) + throws InvalidKeySpecException { + if (serviceIterator == null) { + return spi.engineGetKeySpec(key, keySpec); +diff --git a/src/share/classes/javax/crypto/SecretKeyFactorySpi.java b/src/share/classes/javax/crypto/SecretKeyFactorySpi.java +--- openjdk/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java ++++ openjdk/jdk/src/share/classes/javax/crypto/SecretKeyFactorySpi.java +@@ -88,7 +88,7 @@ + * (e.g., the given key has an algorithm or format not supported by this + * secret-key factory). + */ +- protected abstract KeySpec engineGetKeySpec(SecretKey key, Class keySpec) ++ protected abstract KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + throws InvalidKeySpecException; + + /** +diff --git a/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java b/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java +--- openjdk/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java ++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11SecretKeyFactory.java +@@ -319,7 +319,7 @@ + } + + // see JCE spec +- protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) ++ protected KeySpec engineGetKeySpec(SecretKey key, Class keySpec) + throws InvalidKeySpecException { + token.ensureValid(); + if ((key == null) || (keySpec == null)) { diff --git a/SOURCES/fontpath.patch b/SOURCES/fontpath.patch deleted file mode 100644 index 2ee711b..0000000 --- a/SOURCES/fontpath.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/src/solaris/native/sun/awt/fontpath.c b/src/solaris/native/sun/awt/fontpath.c ---- openjdk/jdk/src/solaris/native/sun/awt/fontpath.c -+++ openjdk/jdk/src/solaris/native/sun/awt/fontpath.c -@@ -1075,7 +1075,6 @@ - } - } - } -- (*env)->ReleaseStringUTFChars (env, fcNameStr, (const char*)fcName); - FcFontSetDestroy (fontset); - FcPatternDestroy (pattern); - free(family); diff --git a/SOURCES/ttable_match_7.patch b/SOURCES/ttable_match_7.patch deleted file mode 100644 index 0e14a67..0000000 --- a/SOURCES/ttable_match_7.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -r bca222181d07 src/cpu/ppc/vm/templateTable_ppc_64.cpp ---- openjdk/hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp Mon Apr 18 07:12:53 2016 +0100 -+++ openjdk/hotspot/src/cpu/ppc/vm/templateTable_ppc_64.cpp Mon Apr 18 08:26:52 2016 +0100 -@@ -2898,9 +2898,10 @@ - __ stbx(R17_tos, Rclass_or_obj, Roffset); - if (!is_static) { patch_bytecode(Bytecodes::_fast_zputfield, Rbc, Rscratch, true, byte_no); } - if (!support_IRIW_for_not_multiple_copy_atomic_cpu) { -- __ beq(CR_is_vol, Lvolatile); // Volatile? -+ __ bne(CR_is_vol, Lexit); // Non-volatile? -+ __ fence(); - } -- __ dispatch_epilog(vtos, Bytecodes::length_for(bytecode())); -+ __ b(Lexit); - - __ align(32, 28, 28); // Align pop. - // __ bind(Lctos); diff --git a/SPECS/java-1.7.0-openjdk.spec b/SPECS/java-1.7.0-openjdk.spec index ee05325..1d9a506 100644 --- a/SPECS/java-1.7.0-openjdk.spec +++ b/SPECS/java-1.7.0-openjdk.spec @@ -5,7 +5,7 @@ # conflicting) files in the -debuginfo package %undefine _missing_build_ids_terminate_build -%global icedtea_version 2.6.6 +%global icedtea_version 2.6.7 %global hg_tag icedtea-{icedtea_version} %global aarch64 aarch64 arm64 armv8 @@ -130,8 +130,8 @@ # Standard JPackage naming and versioning defines. %global origin openjdk -%global updatever 101 -%global buildver 00 +%global updatever 111 +%global buildver 01 # Keep priority on 7digits in case updatever>9 %global priority 1700%{updatever} %global javaver 1.7.0 @@ -172,7 +172,7 @@ Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: %{icedtea_version}.1%{?dist} +Release: %{icedtea_version}.2%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -205,8 +205,8 @@ Source2: README.src Source5: class-rewriter.tar.gz # Systemtap tapsets. Zipped up to keep it small. -# last update from http://icedtea.classpath.org/hg/icedtea7/file/8599fdfc398d/tapset -Source6: systemtap-tapset-2014-03-19.tar.xz +# last update from http://icedtea.classpath.org/hg/icedtea7/file/fe313abbf5af/tapset +Source6: systemtap-tapset-2016-07-20.tar.xz # .desktop files. Source7: policytool.desktop @@ -275,10 +275,16 @@ Patch300: pulse-soundproperties.patch Patch400: rh1022017.patch # Temporary patches -# Match ztos handling in templateTable_ppc_64.cpp to others in 7 -Patch501: ttable_match_7.patch -Patch666: fontpath.patch +# Patches for b00->b01 +# S7081817: test/sun/security/provider/certpath/X509CertPath/IllegalCertiticates.java failing +Patch501: 7081817.patch +# S8140344: add support for 3 digit update release numbers +Patch502: 8140344.patch +# S8145017: Add support for 3 digit hotspot minor version numbers +Patch503: 8145017.patch +# S8162344: The API changes made by CR 7064075 need to be reverted +Patch504: 8162344.patch # End of tmp patches @@ -511,8 +517,11 @@ cp %{SOURCE2} . # ECC fix %patch400 -# Temporary patches +# Temporary fixes %patch501 +%patch502 +%patch503 +%patch504 # End of temporary fixes # Add systemtap patches if enabled @@ -564,8 +573,6 @@ tar xzf %{SOURCE9} %patch106 %patch200 -%patch666 - %build # How many cpu's do we have? export NUM_PROC=`/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :` @@ -764,9 +771,13 @@ make \ popd >& /dev/null +# JARs that are updated (jar uf) during the build end up with +# the wrong permissions due to PR1437 / RH1207129 +# Once 2.6.7 is in place, we can require this and remove these lines if [ -e $(pwd)/%{buildoutputdir}/j2sdk-image/lib/sa-jdi.jar ]; then chmod 644 $(pwd)/%{buildoutputdir}/j2sdk-image/lib/sa-jdi.jar; fi +chmod 644 $(pwd)/%{buildoutputdir}/j2sdk-image/jre/lib/resources.jar export JAVA_HOME=$(pwd)/%{buildoutputdir}/j2sdk-image @@ -1554,6 +1565,20 @@ exit 0 %{_jvmdir}/%{jredir}/lib/accessibility.properties %changelog +* Fri Jul 22 2016 Andrew Hughes - 1:1.7.0.111-2.6.7.2 +- Bump to jdk7u111 b01 to fix TCK regressions (7081817 & 8162344) +- Resolves: rhbz#1350041 + +* Thu Jul 21 2016 Andrew Hughes - 1:1.7.0.111-2.6.7.1 +- Reset permissions of resources.jar to avoid it only being readable by root (PR1437). +- Resolves: rhbz#1350041 + +* Wed Jul 20 2016 Andrew Hughes - 1:1.7.0.111-2.6.7.0 +- Bump to 2.6.7 and u111b00. +- Update SystemTap bundle with fix for PR3091/RH1204159 +- Drop patches (PR2938 (ttable_match_7) and PR2939 (fontpath)) applied upstream. +- Resolves: rhbz#1350041 + * Tue Apr 19 2016 Jiri Vanek - 1:1.7.0.101-2.6.6.1 - added Patch666 fontpath.patch to fix tck regressions - Resolves: rhbz#1325427