changeset 3167:34ab3ceed7cb

Update to b33. 2014-10-08 Andrew John Hughes <gnu.andrew@redhat.com> * patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch, * patches/openjdk/7183251-netbeans_renders_text_wrong.patch, * patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch: Remove upstreamed patches. * Makefile.am: (OPENJDK_DATE): Bump to security update release date, 14th of October. (OPENJDK_SHA256SUM): Update for b33 tarball. (ICEDTEA_PATCHES): Drop above patches. * NEWS: Add fixes from b33. * patches/openjdk/6816311-compiler_name.patch: Remove windows.h fragments added in OPENJDK6-41. * patches/openjdk/p11cipher-6812738-native_cleanup.patch: Remove fragment added by security update.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Wed, 08 Oct 2014 19:38:54 +0100
parents 04c718dce7b6
children 42669b895e22
files ChangeLog Makefile.am NEWS patches/openjdk/6816311-compiler_name.patch patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch patches/openjdk/7183251-netbeans_renders_text_wrong.patch patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch patches/openjdk/p11cipher-6812738-native_cleanup.patch
diffstat 8 files changed, 97 insertions(+), 485 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Jul 30 16:17:30 2014 +0100
+++ b/ChangeLog	Wed Oct 08 19:38:54 2014 +0100
@@ -1,3 +1,19 @@
+2014-10-08  Andrew John Hughes  <gnu.andrew@redhat.com>
+
+	* patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch,
+	* patches/openjdk/7183251-netbeans_renders_text_wrong.patch,
+	* patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch:
+	Remove upstreamed patches.
+	* Makefile.am:
+	(OPENJDK_DATE): Bump to security update release date, 14th of October.
+	(OPENJDK_SHA256SUM): Update for b33 tarball.
+	(ICEDTEA_PATCHES): Drop above patches.
+	* NEWS: Add fixes from b33.
+	* patches/openjdk/6816311-compiler_name.patch:
+	Remove windows.h fragments added in OPENJDK6-41.
+	* patches/openjdk/p11cipher-6812738-native_cleanup.patch:
+	Remove fragment added by security update.
+
 2014-07-30  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* patches/openjdk/8010213-set_socketoptions_windows.patch:
--- a/Makefile.am	Wed Jul 30 16:17:30 2014 +0100
+++ b/Makefile.am	Wed Oct 08 19:38:54 2014 +0100
@@ -1,7 +1,7 @@
 # Dependencies
 
-OPENJDK_DATE = 15_jul_2014
-OPENJDK_SHA256SUM = 9a5ad1b599953baac1b6b34189b9487ac5dcdb367aac5cc0aa5aa49700e73871
+OPENJDK_DATE = 14_oct_2014
+OPENJDK_SHA256SUM = cabc35587a90fa81edd8ba8537c0454348c37456de27e407bbb66d52031a1293
 OPENJDK_VERSION = b33
 OPENJDK_URL = https://java.net/downloads/openjdk6/
 
@@ -606,10 +606,7 @@
 	patches/windows-jdk-sizecalc.patch \
 	patches/shark_fixes_from_8003868.patch \
 	patches/8003992_support_6.patch \
-	patches/shark-drop_compile_method_arg_following_7083786.patch \
-	patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch \
-	patches/openjdk/7183251-netbeans_renders_text_wrong.patch \
-	patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch
+	patches/shark-drop_compile_method_arg_following_7083786.patch
 
 if WITH_RHINO
 ICEDTEA_PATCHES += \
--- a/NEWS	Wed Jul 30 16:17:30 2014 +0100
+++ b/NEWS	Wed Oct 08 19:38:54 2014 +0100
@@ -12,10 +12,48 @@
 
 CVE-XXXX-YYYY: http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=XXXX-YYYY
 
-New in release 1.13.5 (2014-10-YY):
+New in release 1.13.5 (2014-10-14):
 
-* Backports
+* Security fixes
+  - S8015256: Better class accessibility
+  - S8022783, CVE-2014-6504: Optimize C2 optimizations
+  - S8035162: Service printing service
+  - S8035781: Improve equality for annotations
+  - S8036805: Correct linker method lookup.
+  - S8036810: Correct linker field lookup
+  - S8037066, CVE-2014-6457: Secure transport layer
+  - S8037846, CVE-2014-6558: Ensure streaming of input cipher streams
+  - S8038899: Safer safepoints
+  - S8038903: More native monitor monitoring
+  - S8038908: Make Signature more robust
+  - S8038913: Bolster XML support
+  - S8039509, CVE-2014-6512: Wrap sockets more thoroughly
+  - S8039533, CVE-2014-6517: Higher resolution resolvers
+  - S8041540, CVE-2014-6511: Better use of pages in font processing
+  - S8041545: Better validation of generated rasters
+  - S8041564, CVE-2014-6506: Improved management of logger resources
+  - S8041717, CVE-2014-6519: Issue with class file parser
+  - S8042609, CVE-2014-6513: Limit splashiness of splash images
+  - S8042797, CVE-2014-6502: Avoid strawberries in LogRecord
+  - S8044274, CVE-2014-6531: Proper property processing
+* Import of OpenJDK6 b33
+  - OJ37: OpenJDK6-b32 cannot be built on Windows
   - OJ39: Handle fonts with the non-canonical processing flag set
+  - OJ41: OpenJDK6 should be compatible with Windows SDK 7.1
+  - OJ42: Remove @Override annotation on interfaces added by 2014/10/14 security fixes.
+  - S6967684: httpserver using a non thread-safe SimpleDateFormat
+  - S7033534: Two tests fail just against jdk7 b136
+  - S7160837: DigestOutputStream does not turn off digest calculation when "close()" is called
+  - S7172149: ArrayIndexOutOfBoundsException from Signature.verify
+  - S8010213: Some api/javax_net/SocketFactory tests fail in 7u25 nightly build
+  - S8012637: Adjust CipherInputStream class to work in AEAD/GCM mode
+  - S8028192: Use of PKCS11-NSS provider in FIPS mode broken
+  - S8038000: java.awt.image.RasterFormatException: Incorrect scanline stride
+  - S8039396: NPE when writing a class descriptor object to a custom ObjectOutputStream
+  - S8042603: 'SafepointPollOffset' was not declared in static member function 'static bool Arguments::check_vm_args_consistency()'
+  - S8042850: Extra unused entries in ICU ScriptCodes enum
+  - S8052162: REGRESSION: sun/java2d/cmm/ColorConvertOp tests fail since 7u71 b01
+  - S8053963: (dc) Use DatagramChannel.receive() instead of read() in connect()
 
 New in release 1.13.4 (2014-07-15):
 
--- a/patches/openjdk/6816311-compiler_name.patch	Wed Jul 30 16:17:30 2014 +0100
+++ b/patches/openjdk/6816311-compiler_name.patch	Wed Oct 08 19:38:54 2014 +0100
@@ -1,9 +1,6 @@
-diff -Nru openjdk.orig/jdk/make/common/Defs-windows.gmk openjdk/jdk/make/common/Defs-windows.gmk
---- openjdk.orig/jdk/make/common/Defs-windows.gmk	2013-09-02 16:35:07.688884584 +0100
-+++ openjdk/jdk/make/common/Defs-windows.gmk	2013-09-02 16:40:22.565779052 +0100
 diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk openjdk/jdk/make/common/shared/Compiler-gcc.gmk
---- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk	2013-09-02 16:35:07.712884957 +0100
-+++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk	2013-09-02 16:40:22.565779052 +0100
+--- openjdk.orig/jdk/make/common/shared/Compiler-gcc.gmk	2014-10-08 17:33:09.148697120 +0100
++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk	2014-10-08 17:33:51.573291086 +0100
 @@ -27,8 +27,6 @@
  # GCC Compiler settings
  #
@@ -22,8 +19,8 @@
 +COMPILER_VERSION = $(COMPILER_NAME)
 +
 diff -Nru openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk openjdk/jdk/make/common/shared/Compiler-sun.gmk
---- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk	2013-09-02 16:35:07.712884957 +0100
-+++ openjdk/jdk/make/common/shared/Compiler-sun.gmk	2013-09-02 16:41:13.914577209 +0100
+--- openjdk.orig/jdk/make/common/shared/Compiler-sun.gmk	2014-10-08 17:33:09.148697120 +0100
++++ openjdk/jdk/make/common/shared/Compiler-sun.gmk	2014-10-08 17:33:51.573291086 +0100
 @@ -27,13 +27,8 @@
  # Sun Studio Compiler settings
  #
@@ -66,8 +63,8 @@
  #  Starting in SS12 (5.9), the arch options changed.
  #  The assembler /usr/ccs/bin/as wants older SS11 (5.8) style options.
 diff -Nru openjdk.orig/jdk/make/common/shared/Defs-versions.gmk openjdk/jdk/make/common/shared/Defs-versions.gmk
---- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk	2013-09-02 16:35:07.720885081 +0100
-+++ openjdk/jdk/make/common/shared/Defs-versions.gmk	2013-09-02 16:40:22.565779052 +0100
+--- openjdk.orig/jdk/make/common/shared/Defs-versions.gmk	2014-10-08 17:33:09.172697457 +0100
++++ openjdk/jdk/make/common/shared/Defs-versions.gmk	2014-10-08 17:33:51.573291086 +0100
 @@ -45,6 +45,12 @@
  # REQUIRED_CC_VER
  #   The primary C compiler version expected.
@@ -123,9 +120,9 @@
          REQUIRED_LINK_VER     = 8.00.40310.39
        endif
 diff -Nru openjdk.orig/jdk/make/common/shared/Sanity.gmk openjdk/jdk/make/common/shared/Sanity.gmk
---- openjdk.orig/jdk/make/common/shared/Sanity.gmk	2013-09-02 16:35:07.712884957 +0100
-+++ openjdk/jdk/make/common/shared/Sanity.gmk	2013-09-02 16:40:22.565779052 +0100
-@@ -123,7 +123,7 @@
+--- openjdk.orig/jdk/make/common/shared/Sanity.gmk	2014-10-08 17:33:09.148697120 +0100
++++ openjdk/jdk/make/common/shared/Sanity.gmk	2014-10-08 17:33:51.573291086 +0100
+@@ -129,7 +129,7 @@
    ifeq ($(_OS_VERSION),)
      OS_VERSION = 5.0
    else
@@ -134,7 +131,7 @@
    endif
    OS_VARIANT_NAME := $(WINDOWS_MAPPING-$(OS_VERSION))
    OS_VARIANT_VERSION := $(OS_VERSION)
-@@ -1320,8 +1320,8 @@
+@@ -1289,8 +1289,8 @@
  	fi
  	@if [ "$(LINK_CHECK)" != "same" ]; then \
  	  $(ECHO) "WARNING: To build Java 2 SDK $(JDK_VERSION) you need : \n" \
@@ -145,7 +142,7 @@
  	    "      $(YOU_ARE_USING) Linker version \"$(LINK_VER)\" \n" \
  	    "" >> $(WARNING_FILE) ; \
  	fi
-@@ -1338,21 +1338,13 @@
+@@ -1307,21 +1307,13 @@
  	fi
  ifndef OPENJDK
  	@if [ "$(CC_CHECK)" != "same" ]; then \
@@ -170,27 +167,3 @@
  endif
  
  ######################################################
-diff -Nru openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc openjdk/jdk/src/windows/native/sun/windows/awt.rc
---- openjdk.orig/jdk/src/windows/native/sun/windows/awt.rc	2013-09-02 16:35:02.892810032 +0100
-+++ openjdk/jdk/src/windows/native/sun/windows/awt.rc	2013-09-02 16:40:22.565779052 +0100
-@@ -23,7 +23,7 @@
- // questions.
- //
- 
--#include "afxres.h"
-+#include "windows.h"
- 
- // Need 2 defines so macro argument to XSTR will get expanded before quoting.
- #define XSTR(x) STR(x)
-diff -Nru openjdk.orig/jdk/src/windows/resource/version.rc openjdk/jdk/src/windows/resource/version.rc
---- openjdk.orig/jdk/src/windows/resource/version.rc	2012-10-26 19:26:19.000000000 +0100
-+++ openjdk/jdk/src/windows/resource/version.rc	2013-09-02 16:40:22.565779052 +0100
-@@ -23,7 +23,7 @@
- // questions.
- //
- 
--#include "afxres.h"
-+#include "windows.h"
- 
- // Need 2 defines so macro argument to XSTR will get expanded before quoting.
- #define XSTR(x) STR(x)
--- a/patches/openjdk/7027300-unsync_hashmap_causes_endless_loop.patch	Wed Jul 30 16:17:30 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-# HG changeset patch
-# User vkarnauk
-# Date 1340286118 -14400
-#      Thu Jun 21 17:41:58 2012 +0400
-# Node ID f71b6117fd7bbb13ed4c1f68ace873695edd49cb
-# Parent  762ae4a20c8b115e5cb486c5204d8bdee747ee59
-7027300: Unsynchronized HashMap access causes endless loop
-Reviewed-by: bae, prr
-
-diff -r 762ae4a20c8b -r f71b6117fd7b src/share/classes/sun/font/SunLayoutEngine.java
---- openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Thu Jun 21 14:19:12 2012 +0400
-+++ openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Thu Jun 21 17:41:58 2012 +0400
-@@ -33,7 +33,7 @@
- import sun.font.GlyphLayout.*;
- import java.awt.geom.Point2D;
- import java.lang.ref.SoftReference;
--import java.util.HashMap;
-+import java.util.concurrent.ConcurrentHashMap;
- import java.util.Locale;
- 
- /*
-@@ -129,9 +129,9 @@
- 
-   // !!! don't need this unless we have more than one sun layout engine...
-     public LayoutEngine getEngine(LayoutEngineKey key) {
--        HashMap cache = (HashMap)cacheref.get();
-+        ConcurrentHashMap cache = (ConcurrentHashMap)cacheref.get();
-         if (cache == null) {
--            cache = new HashMap();
-+            cache = new ConcurrentHashMap();
-             cacheref = new SoftReference(cache);
-         }
- 
--- a/patches/openjdk/7183251-netbeans_renders_text_wrong.patch	Wed Jul 30 16:17:30 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-# HG changeset patch
-# User prr
-# Date 1342804653 25200
-#      Fri Jul 20 10:17:33 2012 -0700
-# Node ID 84d5cdbe7bce2caf907ec842ac7b4fa2097fb295
-# Parent  bf5bf37108c14d1d01b8a1043f9e3ff0e3727869
-7183251: Netbeans editor renders text wrong on JDK 7u6 build
-Reviewed-by: igor, jgodinez
-
-diff -r bf5bf37108c1 -r 84d5cdbe7bce src/share/classes/sun/font/SunLayoutEngine.java
---- openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Fri Jul 20 13:58:52 2012 +0400
-+++ openjdk/jdk/src/share/classes/sun/font/SunLayoutEngine.java	Fri Jul 20 10:17:33 2012 -0700
-@@ -137,8 +137,9 @@
- 
-         LayoutEngine e = (LayoutEngine)cache.get(key);
-         if (e == null) {
--            e = new SunLayoutEngine(key.copy());
--            cache.put(key, e);
-+            LayoutEngineKey copy = key.copy();
-+            e = new SunLayoutEngine(copy);
-+            cache.put(copy, e);
-         }
-         return e;
-     }
--- a/patches/openjdk/oj639-handle_fonts_with_no_canon_flag_set.patch	Wed Jul 30 16:17:30 2014 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,347 +0,0 @@
-diff -r 1492971e2155 src/share/native/sun/font/layout/LETypes.h
---- openjdk/jdk/src/share/native/sun/font/layout/LETypes.h	Wed Mar 20 13:39:56 2013 -0700
-+++ openjdk/jdk/src/share/native/sun/font/layout/LETypes.h	Tue Jul 29 00:40:14 2014 +0100
-@@ -25,7 +25,7 @@
- 
- /*
-  *
-- * (C) Copyright IBM Corp. 1998-2010 - All Rights Reserved
-+ * (C) Copyright IBM Corp. 1998-2013 - All Rights Reserved
-  *
-  */
- 
-@@ -107,7 +107,7 @@
-  */
- typedef int8_t le_int8;
- #endif
-- 
-+
- #ifndef HAVE_LE_UINT8
- /**
-  * A type used for unsigned, 8-bit integers.
-@@ -231,38 +231,6 @@
- #define LE_CLIENT_SHIFT   24
- 
- 
--#ifndef LE_ASSERT_BAD_FONT
--#define LE_ASSERT_BAD_FONT 0
--#endif
--
--#if LE_ASSERT_BAD_FONT
--#include <stdio.h>
--#define LE_DEBUG_BAD_FONT(x) fprintf(stderr,"%s:%d: BAD FONT: %s\n", __FILE__, __LINE__, (x));
--#else
--#define LE_DEBUG_BAD_FONT(x)
--#endif
--
--/**
-- * Max value representable by a uintptr
-- */
--
--#ifndef UINT32_MAX
--#define LE_UINT32_MAX 0xFFFFFFFFU
--#else
--#define LE_UINT32_MAX UINT32_MAX
--#endif
--
--#ifndef UINTPTR_MAX
--#define LE_UINTPTR_MAX LE_UINT32_MAX
--#else
--#define LE_UINTPTR_MAX UINTPTR_MAX
--#endif
--
--/**
-- * Range check for overflow
-- */
--#define LE_RANGE_CHECK(type, count, ptrfn) (( (LE_UINTPTR_MAX / sizeof(type)) < count ) ? NULL : (ptrfn))
--
- /**
-  * A convenience macro to get the Glyph ID part of an LEGlyphID.
-  *
-@@ -312,20 +280,6 @@
-  */
- #define LE_SET_CLIENT(gid, client) ((gid & ~LE_CLIENT_MASK) | ((client << LE_CLIENT_SHIFT) & LE_CLIENT_MASK))
- 
--/**
-- * \def LE_TRACE
-- * @internal
-- */
--#ifndef LE_TRACE
--# define LE_TRACE 0
--#endif
--
--#if LE_TRACE
--# include <stdio.h>
--# define _LETRACE printf("\n%s:%d: LE: ", __FILE__, __LINE__),printf
--#else
--# define _LETRACE 0&&
--#endif
- 
- /**
-  * Used to represent 16-bit Unicode code points.
-@@ -379,7 +333,54 @@
- typedef struct LEPoint LEPoint;
- #endif
- 
-+/**
-+ * \def LE_TRACE
-+ * @internal
-+ */
-+#ifndef LE_TRACE
-+# define LE_TRACE 0
-+#endif
- 
-+#if LE_TRACE
-+# include <stdio.h>
-+# define _LETRACE printf("\n%s:%d: LE: ", __FILE__, __LINE__),printf
-+#else
-+# define _LETRACE 0&&
-+#endif
-+
-+#ifndef U_HIDE_INTERNAL_API
-+
-+#ifndef LE_ASSERT_BAD_FONT
-+#define LE_ASSERT_BAD_FONT 0
-+#endif
-+
-+#if LE_ASSERT_BAD_FONT
-+#include <stdio.h>
-+#define LE_DEBUG_BAD_FONT(x) fprintf(stderr,"%s:%d: BAD FONT: %s\n", __FILE__, __LINE__, (x));
-+#else
-+#define LE_DEBUG_BAD_FONT(x)
-+#endif
-+
-+/**
-+ * Max value representable by a uintptr
-+ */
-+
-+#ifndef UINT32_MAX
-+#define LE_UINT32_MAX 0xFFFFFFFFU
-+#else
-+#define LE_UINT32_MAX UINT32_MAX
-+#endif
-+
-+#ifndef UINTPTR_MAX
-+#define LE_UINTPTR_MAX LE_UINT32_MAX
-+#else
-+#define LE_UINTPTR_MAX UINTPTR_MAX
-+#endif
-+
-+/**
-+ * Range check for overflow
-+ */
-+#define LE_RANGE_CHECK(type, count, ptrfn) (( (LE_UINTPTR_MAX / sizeof(type)) < count ) ? NULL : (ptrfn))
- /**
-  * A convenience macro to get the length of an array.
-  *
-@@ -401,7 +402,7 @@
-  *
-  * @internal
-  */
--#define LE_NEW_ARRAY(type, count) (type *) uprv_malloc((count) * sizeof(type))
-+#define LE_NEW_ARRAY(type, count) (type *)  LE_RANGE_CHECK(type,count,uprv_malloc((count) * sizeof(type)))
- 
- /**
-  * Re-allocate an array of basic types. This is used to isolate the rest of
-@@ -418,7 +419,52 @@
-  * @internal
-  */
- #define LE_DELETE_ARRAY(array) uprv_free((void *) (array))
--#endif
-+#else
-+/* !LE_USE_CMEMORY - Not using ICU memory - use C std lib versions */
-+
-+#include <stdlib.h>
-+#include <string.h>
-+
-+/**
-+ * A convenience macro to get the length of an array.
-+ *
-+ * @internal
-+ */
-+#define LE_ARRAY_SIZE(array) (sizeof array / sizeof array[0])
-+
-+/**
-+ * A convenience macro for copying an array.
-+ *
-+ * @internal
-+ */
-+#define LE_ARRAY_COPY(dst, src, count) memcpy((void *) (dst), (void *) (src), (count) * sizeof (src)[0])
-+
-+/**
-+ * Allocate an array of basic types. This is used to isolate the rest of
-+ * the LayoutEngine code from cmemory.h.
-+ *
-+ * @internal
-+ */
-+#define LE_NEW_ARRAY(type, count) LE_RANGE_CHECK(type,count,(type *) malloc((count) * sizeof(type)))
-+
-+/**
-+ * Re-allocate an array of basic types. This is used to isolate the rest of
-+ * the LayoutEngine code from cmemory.h.
-+ *
-+ * @internal
-+ */
-+#define LE_GROW_ARRAY(array, newSize) realloc((void *) (array), (newSize) * sizeof (array)[0])
-+
-+ /**
-+ * Free an array of basic types. This is used to isolate the rest of
-+ * the LayoutEngine code from cmemory.h.
-+ *
-+ * @internal
-+ */
-+#define LE_DELETE_ARRAY(array) free((void *) (array))
-+
-+#endif  /* LE_USE_CMEMORY */
-+#endif  /* U_HIDE_INTERNAL_API */
- 
- /**
-  * A macro to construct the four-letter tags used to
-@@ -581,7 +627,7 @@
-     LE_RAND_FEATURE_TAG = 0x72616E64UL, /**< 'rand' */
-     LE_RLIG_FEATURE_TAG = 0x726C6967UL, /**< 'rlig' */
-     LE_RPHF_FEATURE_TAG = 0x72706866UL, /**< 'rphf' */
--        LE_RKRF_FEATURE_TAG = 0x726B7266UL, /**< 'rkrf' */
-+    LE_RKRF_FEATURE_TAG = 0x726B7266UL, /**< 'rkrf' */
-     LE_RTBD_FEATURE_TAG = 0x72746264UL, /**< 'rtbd' */
-     LE_RTLA_FEATURE_TAG = 0x72746C61UL, /**< 'rtla' */
-     LE_RUBY_FEATURE_TAG = 0x72756279UL, /**< 'ruby' */
-@@ -633,6 +679,77 @@
- };
- 
- /**
-+ * @internal
-+ */
-+enum LEFeatureENUMs {
-+  LE_Kerning_FEATURE_ENUM = 0,   /**< Requests Kerning. Formerly LayoutEngine::kTypoFlagKern */
-+  LE_Ligatures_FEATURE_ENUM = 1, /**< Requests Ligatures. Formerly LayoutEngine::kTypoFlagLiga */
-+  LE_NoCanon_FEATURE_ENUM = 2, /**< Requests No Canonical Processing */
-+  LE_CLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_DLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_HLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_LIGA_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_RLIG_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SMCP_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_FRAC_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_AFRC_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_ZERO_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SWSH_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_CSWH_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SALT_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_NALT_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_RUBY_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS01_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS02_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS03_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS04_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS05_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS06_FEATURE_ENUM,  /**< Feature specific enum */
-+  LE_SS07_FEATURE_ENUM,   /**< Feature specific enum */
-+
-+  LE_CHAR_FILTER_FEATURE_ENUM = 31, /**< Apply CharSubstitutionFilter */
-+  LE_FEATURE_ENUM_MAX = LE_CHAR_FILTER_FEATURE_ENUM
-+};
-+
-+
-+/**
-+ * Flags for typographic features.
-+ * @internal
-+ * @{
-+ */
-+#define LE_Kerning_FEATURE_FLAG   (1 << LE_Kerning_FEATURE_ENUM)
-+#define LE_Ligatures_FEATURE_FLAG (1 << LE_Ligatures_FEATURE_ENUM)
-+#define LE_NoCanon_FEATURE_FLAG (1 << LE_NoCanon_FEATURE_ENUM)
-+#define LE_CLIG_FEATURE_FLAG (1 << LE_CLIG_FEATURE_ENUM)
-+#define LE_DLIG_FEATURE_FLAG (1 << LE_DLIG_FEATURE_ENUM)
-+#define LE_HLIG_FEATURE_FLAG (1 << LE_HLIG_FEATURE_ENUM)
-+#define LE_LIGA_FEATURE_FLAG (1 << LE_LIGA_FEATURE_ENUM)
-+#define LE_RLIG_FEATURE_FLAG (1 << LE_RLIG_FEATURE_ENUM)
-+#define LE_SMCP_FEATURE_FLAG (1 << LE_SMCP_FEATURE_ENUM)
-+#define LE_FRAC_FEATURE_FLAG (1 << LE_FRAC_FEATURE_ENUM)
-+#define LE_AFRC_FEATURE_FLAG (1 << LE_AFRC_FEATURE_ENUM)
-+#define LE_ZERO_FEATURE_FLAG (1 << LE_ZERO_FEATURE_ENUM)
-+#define LE_SWSH_FEATURE_FLAG (1 << LE_SWSH_FEATURE_ENUM)
-+#define LE_CSWH_FEATURE_FLAG (1 << LE_CSWH_FEATURE_ENUM)
-+#define LE_SALT_FEATURE_FLAG (1 << LE_SALT_FEATURE_ENUM)
-+#define LE_NALT_FEATURE_FLAG (1 << LE_NALT_FEATURE_ENUM)
-+#define LE_RUBY_FEATURE_FLAG (1 << LE_RUBY_FEATURE_ENUM)
-+#define LE_SS01_FEATURE_FLAG (1 << LE_SS01_FEATURE_ENUM)
-+#define LE_SS02_FEATURE_FLAG (1 << LE_SS02_FEATURE_ENUM)
-+#define LE_SS03_FEATURE_FLAG (1 << LE_SS03_FEATURE_ENUM)
-+#define LE_SS04_FEATURE_FLAG (1 << LE_SS04_FEATURE_ENUM)
-+#define LE_SS05_FEATURE_FLAG (1 << LE_SS05_FEATURE_ENUM)
-+#define LE_SS06_FEATURE_FLAG (1 << LE_SS06_FEATURE_ENUM)
-+#define LE_SS07_FEATURE_FLAG (1 << LE_SS07_FEATURE_ENUM)
-+
-+#define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM)
-+/**
-+ * @}
-+ */
-+
-+#define LE_DEFAULT_FEATURE_FLAG (LE_Kerning_FEATURE_FLAG | LE_Ligatures_FEATURE_FLAG) /**< default features */
-+
-+/**
-  * Error codes returned by the LayoutEngine.
-  *
-  * @stable ICU 2.4
-@@ -674,30 +791,6 @@
- #define LE_SUCCESS(code) (U_SUCCESS((UErrorCode)code))
- #endif
- 
--enum LEFeatureENUMs {
-- LE_Kerning_FEATURE_ENUM = 0,
-- LE_Ligatures_FEATURE_ENUM = 1,
-- LE_CHAR_FILTER_FEATURE_ENUM = 31,
--};
--
--
--/**
-- * Flags for typographic features.
-- * @internal
-- * @{
-- */
--#define LE_Kerning_FEATURE_FLAG (1 << LE_Kerning_FEATURE_ENUM)
--#define LE_Ligatures_FEATURE_FLAG (1 << LE_Ligatures_FEATURE_ENUM)
--
--#define LE_CHAR_FILTER_FEATURE_ENUM 31
--
--#define LE_CHAR_FILTER_FEATURE_FLAG (1 << LE_CHAR_FILTER_FEATURE_ENUM)
--/**
-- * @}
-- */
--
--#define LE_DEFAULT_FEATURE_FLAG (LE_Kerning_FEATURE_FLAG | LE_Ligatures_FEATURE_FLAG) /**< default features */
--
- /**
-  * A convenience macro to test for the failure of a LayoutEngine call.
-  *
-@@ -709,5 +802,3 @@
- 
- U_NAMESPACE_END
- #endif
--
--
-diff -r 1492971e2155 src/share/native/sun/font/layout/LayoutEngine.cpp
---- openjdk/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp	Wed Mar 20 13:39:56 2013 -0700
-+++ openjdk/jdk/src/share/native/sun/font/layout/LayoutEngine.cpp	Tue Jul 29 00:40:14 2014 +0100
-@@ -32,8 +32,8 @@
- 
- #include "LETypes.h"
- #include "LEScripts.h"
-+#include "LELanguages.h"
- #include "LESwaps.h"
--#include "LELanguages.h"
- 
- #include "LayoutEngine.h"
- #include "ArabicLayoutEngine.h"
-@@ -252,6 +252,10 @@
-         return 0;
-     }
- 
-+    if ((fTypoFlags & LE_NoCanon_FEATURE_FLAG) == 0) { // no canonical processing
-+      return count;
-+    }
-+
-     LEReferenceTo<GlyphSubstitutionTableHeader> canonGSUBTable(LETableReference::kStaticData,
-                                                                (GlyphSubstitutionTableHeader *) CanonShaping::glyphSubstitutionTable,
-                                                                CanonShaping::glyphSubstitutionTableLen);
--- a/patches/openjdk/p11cipher-6812738-native_cleanup.patch	Wed Jul 30 16:17:30 2014 +0100
+++ b/patches/openjdk/p11cipher-6812738-native_cleanup.patch	Wed Oct 08 19:38:54 2014 +0100
@@ -1,7 +1,7 @@
 diff -Nru openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java openjdk/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java
---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-01-17 20:29:33.778742684 +0000
-+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-01-17 20:42:39.286333640 +0000
-@@ -190,7 +190,9 @@
+--- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11RSACipher.java	2014-10-08 17:30:03.986103813 +0100
+@@ -202,7 +202,9 @@
                  throw new InvalidKeyException
                                  ("Unwrap has to be used with private keys");
              }
@@ -12,17 +12,9 @@
          } else {
              throw new InvalidKeyException("Unsupported mode: " + opmode);
          }
-@@ -418,6 +420,7 @@
-     protected Key engineUnwrap(byte[] wrappedKey, String algorithm,
-             int type) throws InvalidKeyException, NoSuchAlgorithmException {
-         // XXX implement unwrap using C_Unwrap() for all keys
-+        implInit(Cipher.DECRYPT_MODE, p11Key);
-         if (wrappedKey.length > maxInputSize) {
-             throw new InvalidKeyException("Key is too long for unwrapping");
-         }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2014-01-17 20:41:19.141150649 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_convert.c	2014-10-08 17:30:03.986103813 +0100
 @@ -89,21 +89,24 @@
  
      /* load CK_DATE class */
@@ -1549,8 +1541,8 @@
      return ckParam ;
  }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2014-01-17 20:41:19.141150649 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_crypt.c	2014-10-08 17:30:03.986103813 +0100
 @@ -81,6 +81,7 @@
      ckSessionHandle = jLongToCKULong(jSessionHandle);
      ckKeyHandle = jLongToCKULong(jKeyHandle);
@@ -1694,8 +1686,8 @@
          outBufP = OBUF;
        }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2014-01-17 20:41:19.141150649 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_digest.c	2014-10-08 17:30:03.986103813 +0100
 @@ -75,6 +75,7 @@
  
      ckSessionHandle = jLongToCKULong(jSessionHandle);
@@ -1849,8 +1841,8 @@
  }
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_dual.c	2014-10-08 17:30:03.986103813 +0100
 @@ -73,7 +73,7 @@
      CK_SESSION_HANDLE ckSessionHandle;
      CK_BYTE_PTR ckpPart = NULL_PTR, ckpEncryptedPart;
@@ -2041,8 +2033,8 @@
  }
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_general.c	2014-10-08 17:30:03.986103813 +0100
 @@ -102,6 +102,7 @@
  
  jclass fetchClass(JNIEnv *env, const char *name) {
@@ -2398,8 +2390,8 @@
      rv = (*ckpFunctions->C_SetPIN)(ckSessionHandle, ckpOldPin, ckOldPinLength,
                                     ckpNewPin, ckNewPinLength);
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_keymgmt.c	2014-10-08 17:30:03.990103869 +0100
 @@ -74,7 +74,7 @@
      CK_ATTRIBUTE_PTR ckpAttributes = NULL_PTR;
      CK_ULONG ckAttributesLength;
@@ -2951,8 +2943,8 @@
      }
    }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_mutex.c	2014-10-08 17:30:03.990103869 +0100
 @@ -76,7 +76,7 @@
  CK_C_INITIALIZE_ARGS_PTR makeCKInitArgsAdapter(JNIEnv *env, jobject jInitArgs)
  {
@@ -3202,8 +3194,8 @@
          rv = jLongToCKULong(errorCode);
      }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_objmgmt.c	2014-10-08 17:30:03.990103869 +0100
 @@ -81,16 +81,14 @@
  
      ckSessionHandle = jLongToCKULong(jSessionHandle);
@@ -3400,8 +3392,8 @@
  }
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sessmgmt.c	2014-10-08 17:30:03.990103869 +0100
 @@ -97,6 +97,10 @@
  #ifndef NO_CALLBACKS
      if (jNotify != NULL) {
@@ -3588,8 +3580,8 @@
          rv = jLongToCKULong(errorCode);
      }
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2013-08-21 20:32:58.600240346 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_sign.c	2014-10-08 17:30:03.990103869 +0100
 @@ -77,15 +77,16 @@
  
      ckSessionHandle = jLongToCKULong(jSessionHandle);
@@ -3953,8 +3945,8 @@
  }
  #endif
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2013-08-21 20:32:58.604240411 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/p11_util.c	2014-10-08 17:30:03.990103869 +0100
 @@ -73,11 +73,11 @@
      jmethodID jConstructor;
  
@@ -4794,8 +4786,8 @@
 +#endif
 +
 diff -Nru openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h
---- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2013-08-21 20:32:58.604240411 +0100
-+++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2014-01-17 20:41:19.145150708 +0000
+--- openjdk.orig/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2014-10-08 16:35:09.000000000 +0100
++++ openjdk/jdk/src/share/native/sun/security/pkcs11/wrapper/pkcs11wrapper.h	2014-10-08 17:30:03.990103869 +0100
 @@ -154,6 +154,7 @@
  
  #include "pkcs11.h"