diff --git a/.gitignore b/.gitignore index faa17a0..5c6e85f 100644 --- a/.gitignore +++ b/.gitignore @@ -138,3 +138,4 @@ /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b03.tar.xz /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04.tar.xz /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz +/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 2003461..7a14de8 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -217,7 +217,7 @@ # note, following three variables are sedded from update_sources if used correctly. Hardcode them rather there. %global shenandoah_project aarch64-port %global shenandoah_repo jdk8u-shenandoah -%global shenandoah_revision aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 +%global shenandoah_revision aarch64-shenandoah-jdk8u222-b01 # Define old aarch64/jdk8u tree variables for compatibility %global project %{shenandoah_project} %global repo %{shenandoah_repo} @@ -226,19 +226,19 @@ %global icedteaver 3.11.0 # e.g. aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30 -> aarch64-shenandoah-jdk8u212-b04 -%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah*}) +%global version_tag %(VERSION=%{revision}; echo ${VERSION%%-shenandoah-merge*}) # eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont forget spec escape % by %%) %global whole_update %(VERSION=%{version_tag}; echo ${VERSION%%-*}) # eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60 %global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u}) # eg jdk8u60-b27 -> b27 %global buildver %(VERSION=%{version_tag}; echo ${VERSION##*-}) -%global rpmrelease 6 +%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} @@ -1125,9 +1125,8 @@ Patch517: pr2899-dont_use_withseed_versions_of_nss_functions_as_they_dont_fully_ Patch518: pr2934-sunec_provider_throwing_keyexception_withine.separator_current_nss_thus_initialise_the_random_number_generator_and_feed_the_seed_to_it.patch Patch519: pr3479-rh1486025-sunec_provider_can_have_multiple_instances_leading_to_premature_nss_shutdown.patch # PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts) -Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch # PR3575, RH1567204: System cacerts database handling should not affect jssecacerts -Patch540: pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch +Patch539: pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch # PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy Patch300: pr3183-rh1340845-support_fedora_rhel_system_crypto_policy.patch # PR3655: Allow use of system crypto policy to be disabled by the user @@ -1169,10 +1168,6 @@ Patch107: s390-8214206_fix.patch Patch502: pr2462-resolve_disabled_warnings_for_libunpack_and_the_unpack200_binary.patch # S8154313: Generated javadoc scattered all over the place Patch400: jdk8154313-generated_javadoc_scattered_all_over_the_place.patch -# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode -Patch563: jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch -# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds -Patch564: jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch # PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code Patch571: jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch # 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers @@ -1605,8 +1600,6 @@ sh %{SOURCE12} %patch529 %patch531 %patch530 -%patch563 -%patch564 %patch571 %patch573 %patch574 @@ -1625,7 +1618,7 @@ sh %{SOURCE12} # RPM-only fixes %patch525 %patch539 -%patch540 +%patch1000 # RHEL-only patches %if ! 0%{?fedora} && 0%{?rhel} <= 7 @@ -1634,8 +1627,6 @@ sh %{SOURCE12} # Shenandoah patches -%patch1000 - # Extract systemtap tapsets %if %{with_systemtap} tar --strip-components=1 -x -I xz -f %{SOURCE8} @@ -2281,6 +2272,11 @@ require "copy_jdk_configs.lua" %endif %changelog +* Sun Jul 07 2019 Andrew Hughes - 1:1.8.0.222.b01-0.1.ea +- Update to aarch64-shenandoah-jdk8u222-b01. +- Refactor PR2888 after inclusion of 8129988 upstream. Now includes PR3575. +- Drop 8171000 & 8197546 as applied upstream. + * Wed Jul 03 2019 Severin Gehwolf - 1:1.8.0.212.b04-6 - Include 'ea' designator in Release when appropriate. diff --git a/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch b/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch deleted file mode 100644 index d831aa9..0000000 --- a/jdk8171000-pr3542-rh1402819-robot_createScreenCapture_crashes_in_wayland_mode.patch +++ /dev/null @@ -1,121 +0,0 @@ -# HG changeset patch -# User kaddepalli -# Date 1517818481 -19800 -# Mon Feb 05 13:44:41 2018 +0530 -# Node ID b77308735540644d4710244e3c88865067f2905a -# Parent 39bfc94b1f4265b645c2970a58389acc779dafe9 -8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode -Reviewed-by: serb, mhalder - -diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c openjdk/jdk/src/solaris/native/sun/awt/multiVis.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c -+++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c -@@ -394,77 +394,48 @@ - XRectangle bbox; /* bounding box of grabbed area */ - list_ptr regions;/* list of regions to read from */ - { -- image_region_type *reg; -- int32_t dst_x, dst_y; /* where in pixmap to write (UL) */ -- int32_t diff; -- -- XImage *reg_image,*ximage ; -- int32_t srcRect_x,srcRect_y,srcRect_width,srcRect_height ; -- int32_t rem ; -- int32_t bytes_per_line; -- int32_t bitmap_unit; -- -- bitmap_unit = sizeof (long); -- if (format == ZPixmap) -- bytes_per_line = width*depth/8; -- else -- bytes_per_line = width/8; -- -- -- /* Find out how many more bytes are required for padding so that -- ** bytes per scan line will be multiples of bitmap_unit bits */ -- if (format == ZPixmap) { -- rem = (bytes_per_line*8)%bitmap_unit; -- if (rem) -- bytes_per_line += (rem/8 + 1); -- } -+ XImage *ximage ; - - ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL, - (uint32_t)width,(uint32_t)height,8,0); - -- bytes_per_line = ximage->bytes_per_line; -- -- if (format == ZPixmap) -- ximage->data = malloc(height*bytes_per_line); -- else -- ximage->data = malloc(height*bytes_per_line*depth); -- -+ ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 : depth), sizeof(char)); - ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/ - -- for (reg = (image_region_type *) first_in_list( regions); reg; -+ for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg; - reg = (image_region_type *) next_in_list( regions)) - { -- int32_t rect; -- struct my_XRegion *vis_reg; -- vis_reg = (struct my_XRegion *)(reg->visible_region); -- for (rect = 0; -- rect < vis_reg->numRects; -- rect++) -+ struct my_XRegion *vis_reg = (struct my_XRegion *)(reg->visible_region); -+ for (int32_t rect = 0; rect < vis_reg->numRects; rect++) - { -- /** ------------------------------------------------------------------------ -- Intersect bbox with visible part of region giving src rect & output -- location. Width is the min right side minus the max left side. -- Similar for height. Offset src rect so x,y are relative to -- origin of win, not the root-relative visible rect of win. -- ------------------------------------------------------------------------ **/ -- srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x) -- - MAX( vis_reg->rects[rect].x1, bbox.x); -+ /** ------------------------------------------------------------------------ -+ Intersect bbox with visible part of region giving src rect & output -+ location. Width is the min right side minus the max left side. -+ Similar for height. Offset src rect so x,y are relative to -+ origin of win, not the root-relative visible rect of win. -+ ------------------------------------------------------------------------ **/ -+ int32_t srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x) -+ - MAX( vis_reg->rects[rect].x1, bbox.x); -+ -+ int32_t srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y) -+ - MAX( vis_reg->rects[rect].y1, bbox.y); - -- srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y) -- - MAX( vis_reg->rects[rect].y1, bbox.y); -+ int32_t diff = bbox.x - vis_reg->rects[rect].x1; -+ int32_t srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border); -+ int32_t dst_x = MAX( 0, -diff) ; - -- diff = bbox.x - vis_reg->rects[rect].x1; -- srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border); -- dst_x = MAX( 0, -diff) ; -- diff = bbox.y - vis_reg->rects[rect].y1; -- srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border); -- dst_y = MAX( 0, -diff) ; -- reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y, -- (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ; -- TransferImage(disp,reg_image,srcRect_width, -- srcRect_height,reg,ximage,dst_x,dst_y) ; -- XDestroyImage(reg_image); -- } -+ diff = bbox.y - vis_reg->rects[rect].y1; -+ int32_t srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border); -+ int32_t dst_y = MAX( 0, -diff) ; -+ XImage* reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y, -+ (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ; -+ -+ if (reg_image) { -+ TransferImage(disp,reg_image,srcRect_width, -+ srcRect_height,reg,ximage,dst_x,dst_y) ; -+ XDestroyImage(reg_image); -+ } -+ } - } - return ximage ; - } diff --git a/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch b/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch deleted file mode 100644 index ba712ad..0000000 --- a/jdk8197546-pr3542-rh1402819-fix_for_8171000_breaks_solaris_linux_builds.patch +++ /dev/null @@ -1,35 +0,0 @@ -# HG changeset patch -# User prr -# Date 1518454604 28800 -# Mon Feb 12 08:56:44 2018 -0800 -# Node ID 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c -# Parent b77308735540644d4710244e3c88865067f2905a -8197546: Fix for 8171000 breaks Solaris + Linux builds -Reviewed-by: serb, jdv - -diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c openjdk/jdk/src/solaris/native/sun/awt/multiVis.c ---- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c -+++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c -@@ -395,6 +395,8 @@ - list_ptr regions;/* list of regions to read from */ - { - XImage *ximage ; -+ image_region_type* reg; -+ int32_t rect; - - ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL, - (uint32_t)width,(uint32_t)height,8,0); -@@ -402,11 +404,11 @@ - ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 : depth), sizeof(char)); - ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/ - -- for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg; -+ for (reg = (image_region_type *) first_in_list( regions); reg; - reg = (image_region_type *) next_in_list( regions)) - { - struct my_XRegion *vis_reg = (struct my_XRegion *)(reg->visible_region); -- for (int32_t rect = 0; rect < vis_reg->numRects; rect++) -+ for (rect = 0; rect < vis_reg->numRects; rect++) - { - /** ------------------------------------------------------------------------ - Intersect bbox with visible part of region giving src rect & output diff --git a/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch b/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch index fc8f981..a42688d 100644 --- a/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch +++ b/pr2888-openjdk_should_check_for_system_cacerts_database_eg_etc_pki_java_cacerts.patch @@ -5,42 +5,45 @@ # Node ID 3334efeacd8327a14b7d2f392f4546e3c29c594b # Parent 6b81fd2227d14226f2121f2d51b464536925686e PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts) +PR3575: System cacerts database handling should not affect jssecacerts -diff --git a/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java b/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java ---- openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java -+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java -@@ -174,15 +174,20 @@ - storeFile = new File(storeFileName); - fis = getFileInputStream(storeFile); - } else { -- String javaHome = props.get("javaHome"); -- storeFile = new File(javaHome + sep + "lib" + sep -- + "security" + sep + -- "jssecacerts"); -+ /* Check system cacerts DB first; /etc/pki/java/cacerts */ -+ storeFile = new File(sep + "etc" + sep + "pki" + sep -+ + "java" + sep + "cacerts"); - if ((fis = getFileInputStream(storeFile)) == null) { -+ String javaHome = props.get("javaHome"); - storeFile = new File(javaHome + sep + "lib" + sep -- + "security" + sep + -- "cacerts"); -- fis = getFileInputStream(storeFile); -+ + "security" + sep + -+ "jssecacerts"); -+ if ((fis = getFileInputStream(storeFile)) == null) { -+ storeFile = new File(javaHome + sep + "lib" + sep -+ + "security" + sep + -+ "cacerts"); -+ fis = getFileInputStream(storeFile); -+ } - } - } +diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java +--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java ++++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustStoreManager.java +@@ -72,7 +72,7 @@ + * The preference of the default trusted KeyStore is: + * javax.net.ssl.trustStore + * jssecacerts +- * cacerts ++ * cacerts (system and local) + */ + private static final class TrustStoreDescriptor { + private static final String fileSep = File.separator; +@@ -83,6 +83,10 @@ + defaultStorePath + fileSep + "cacerts"; + private static final String jsseDefaultStore = + defaultStorePath + fileSep + "jssecacerts"; ++ /* Check system cacerts DB: /etc/pki/java/cacerts */ ++ private static final String systemStore = ++ fileSep + "etc" + fileSep + "pki" + ++ fileSep + "java" + fileSep + "cacerts"; -diff --git a/src/share/classes/sun/security/tools/KeyStoreUtil.java b/src/share/classes/sun/security/tools/KeyStoreUtil.java ---- openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java + // the trust store name + private final String storeName; +@@ -146,7 +150,8 @@ + long temporaryTime = 0L; + if (!"NONE".equals(storePropName)) { + String[] fileNames = +- new String[] {storePropName, defaultStore}; ++ new String[] {storePropName, ++ systemStore, defaultStore}; + for (String fileName : fileNames) { + File f = new File(fileName); + if (f.isFile() && f.canRead()) { +diff --git openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java +--- openjdk.orig/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java +++ openjdk/jdk/src/share/classes/sun/security/tools/KeyStoreUtil.java -@@ -87,9 +87,14 @@ +@@ -108,9 +108,14 @@ throws Exception { String sep = File.separator; diff --git a/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch b/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch deleted file mode 100644 index ce24c59..0000000 --- a/pr3575-rh1567204-system_cacerts_database_handling_no_longer_affect_jssecacerts.patch +++ /dev/null @@ -1,42 +0,0 @@ -# HG changeset patch -# User andrew -# Date 1525111445 -3600 -# Mon Apr 30 19:04:05 2018 +0100 -# Node ID 388fc8da23044317c160678ffa8ff541c216a255 -# Parent 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c -PR3575: System cacerts database handling should not affect jssecacerts - -diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java ---- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java -+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java -@@ -162,7 +162,7 @@ - * Try: - * javax.net.ssl.trustStore (if this variable exists, stop) - * jssecacerts -- * cacerts -+ * cacerts (system and local) - * - * If none exists, we use an empty keystore. - */ -@@ -174,14 +174,14 @@ - storeFile = new File(storeFileName); - fis = getFileInputStream(storeFile); - } else { -- /* Check system cacerts DB first; /etc/pki/java/cacerts */ -- storeFile = new File(sep + "etc" + sep + "pki" + sep -- + "java" + sep + "cacerts"); -+ String javaHome = props.get("javaHome"); -+ storeFile = new File(javaHome + sep + "lib" + sep -+ + "security" + sep + -+ "jssecacerts"); - if ((fis = getFileInputStream(storeFile)) == null) { -- String javaHome = props.get("javaHome"); -- storeFile = new File(javaHome + sep + "lib" + sep -- + "security" + sep + -- "jssecacerts"); -+ /* Check system cacerts DB first; /etc/pki/java/cacerts */ -+ storeFile = new File(sep + "etc" + sep + "pki" + sep -+ + "java" + sep + "cacerts"); - if ((fis = getFileInputStream(storeFile)) == null) { - storeFile = new File(javaHome + sep + "lib" + sep - + "security" + sep + diff --git a/sources b/sources index 2064a52..8c0edda 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ SHA512 (tapsets-icedtea-3.11.0.tar.xz) = f98420b2f9d7a0fc0af3a7e6a817c4330169db9378d9c38db56b0dd8281a3f1ff7747b4da0c66194695ca85a470b7963902d863d301e5e290dbfe11f6b6f2b5e -SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u212-b04-shenandoah-merge-2019-04-30.tar.xz) = 8ef6029cfa053fce7e0f73aab72b287a4505b06d6e2f1153e5c903a48ba89147fc187987f58d6eb737ede9d5c76a8925f22c34a4f5c3d757674c06fccf77c21b +SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u222-b01.tar.xz) = 1d120a52dc4a6ac77189fb8f8b27244aad2de7e1fa71c41e89280339fb5f0255761171159fb5b0ab0b4ba185d8462205574679219f9bd218843618f3dc575dd2