Package: guix-patches;
Reported by: Alexey Abramov <levenson <at> mmer.org>
Date: Sat, 22 Feb 2020 20:20:04 UTC
Severity: normal
Tags: patch
Merged with 39741, 39742, 39743, 39744, 39746, 39747
Done: Leo Famulari <leo <at> famulari.name>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 39745 in the body.
You can then email your comments to 39745 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Sat, 22 Feb 2020 20:20:05 GMT) Full text and rfc822 format available.Alexey Abramov <levenson <at> mmer.org>
:guix-patches <at> gnu.org
.
(Sat, 22 Feb 2020 20:20:05 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Alexey Abramov <levenson <at> mmer.org> To: guix-patches <at> gnu.org Subject: [PATCH 4/7] gnu: java-openjfx-swing: Add new variable. Date: Sat, 22 Feb 2020 21:17:52 +0100
* gnu/packages/java.scm (java-openjfx-build): Add patch to the base package. * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: Fix swing compilation for jdk8. --- gnu/packages/java.scm | 16 ++++- ...ld-swing-compile-JFXPanel-with-JDK-8.patch | 58 +++++++++++++++++++ 2 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4e975a0490..f2a3861501 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2357,7 +2357,8 @@ new Date();")) (sha256 (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) - (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch")))) + (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch" + "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" @@ -3045,6 +3046,19 @@ distribution."))) `(("java-openjfx-base" ,java-openjfx-base) ("java-swt" ,java-swt))))) +(define-public java-openjfx-swing + (package (inherit java-openjfx-build) + (name "java-openjfx-swing") + (arguments + `(#:jar-name "java-openjfx-swing.jar" + #:source-dir "modules/swing/src/main/java" + #:tests? #f)) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") diff --git a/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch new file mode 100644 index 0000000000..948c0355e9 --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch @@ -0,0 +1,58 @@ +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 +From: Alexey Abramov <levenson <at> mmer.org> +Date: Fri, 3 Jan 2020 01:17:45 +0100 +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 + +For more info please see https://bugs.openjdk.java.net/browse/JDK-8149967 +--- + .../java/javafx/embed/swing/JFXPanel.java | 20 ++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +index 97515e2290..614ed656b9 100644 +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -81,6 +81,7 @@ import sun.awt.AppContext; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -681,6 +682,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent { + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + resizePixelBuffer(newScaleFactor); +-- +2.24.1 + -- 2.24.1
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Wed, 04 Mar 2020 03:05:01 GMT) Full text and rfc822 format available.Message #8 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: Leo Famulari <leo <at> famulari.name> To: Alexey Abramov <levenson <at> mmer.org> Cc: 39745 <at> debbugs.gnu.org Subject: Re: [bug#39745] [PATCH 4/7] gnu: java-openjfx-swing: Add new variable. Date: Tue, 3 Mar 2020 22:04:17 -0500
On Sat, Feb 22, 2020 at 09:17:52PM +0100, Alexey Abramov wrote: > * gnu/packages/java.scm (java-openjfx-build): Add patch to the base package. > * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: Fix swing compilation for jdk8. This commit adds the patch file but also makes a new package java-openjfx-swing. Adding the patch to java-openjfx-build and adding the new package should be done in separate commits. Also remember to add the patch to 'gnu/local.mk'. > +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 > +From: Alexey Abramov <levenson <at> mmer.org> > +Date: Fri, 3 Jan 2020 01:17:45 +0100 > +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 > + > +For more info please see https://bugs.openjdk.java.net/browse/JDK-8149967 This link is great but please add a brief summary of why we need the patch and what it does (one or two sentences is enough).
Leo Famulari <leo <at> famulari.name>
to control <at> debbugs.gnu.org
.
(Wed, 04 Mar 2020 03:15:02 GMT) Full text and rfc822 format available.guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Mon, 09 Mar 2020 16:19:01 GMT) Full text and rfc822 format available.Message #13 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: Alexey Abramov <levenson <at> mmer.org> To: 39745 <at> debbugs.gnu.org Cc: Alexey Abramov <levenson <at> mmer.org> Subject: [v2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Date: Mon, 9 Mar 2020 17:15:27 +0100
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it. * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 3 +- ...ld-swing-compile-JFXPanel-with-JDK-8.patch | 64 +++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0bcbde7301..7e4554198c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1034,6 +1034,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-openjfx-build-get_guix_jdk_version.patch \ + %D%/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ %D%/packages/patches/java-svg-salamander-Fix-non-det.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 349b22419a..21217b0211 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2363,7 +2363,8 @@ new Date();")) (sha256 (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) - (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch")))) + (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch" + "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" diff --git a/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch new file mode 100644 index 0000000000..8f222e1780 --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch @@ -0,0 +1,64 @@ +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 +From: Alexey Abramov <levenson <at> mmer.org> +Date: Fri, 3 Jan 2020 01:17:45 +0100 +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 + +In JDKu9 getDefaultScale method was removed and sun.java2d.SurfaceData class now +has separate getDefaultScaleX() and getDefaultScaleY() methods. See +https://bugs.openjdk.java.net/browse/JDK-8073320 for more info. + +Backport the missing port to build openjfx-swing package using JDKu8. For more +info please see https://bugs.openjdk.java.net/browse/JDK-8149967 + +--- + .../java/javafx/embed/swing/JFXPanel.java | 20 ++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +index 97515e2290..614ed656b9 100644 +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -81,6 +81,7 @@ import sun.awt.AppContext; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -681,6 +682,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent { + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + resizePixelBuffer(newScaleFactor); +-- +2.24.1 + -- 2.24.1
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Mon, 09 Mar 2020 16:37:02 GMT) Full text and rfc822 format available.Message #16 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: Alexey Abramov <levenson <at> mmer.org> To: 39745 <at> debbugs.gnu.org Cc: Alexey Abramov <levenson <at> mmer.org> Subject: [v3 2/2] gnu: java-openjfx-swing: Add new variable. Date: Mon, 9 Mar 2020 17:36:12 +0100
--- gnu/packages/java.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 21217b0211..6d3f0f6771 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3084,6 +3084,19 @@ distribution."))) `(("java-openjfx-base" ,java-openjfx-base) ("java-swt" ,java-swt))))) +(define-public java-openjfx-swing + (package (inherit java-openjfx-build) + (name "java-openjfx-swing") + (arguments + `(#:jar-name "java-openjfx-swing.jar" + #:source-dir "modules/swing/src/main/java" + #:tests? #f)) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") -- 2.24.1
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Mon, 09 Mar 2020 16:37:02 GMT) Full text and rfc822 format available.Message #19 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: Alexey Abramov <levenson <at> mmer.org> To: 39745 <at> debbugs.gnu.org Cc: Alexey Abramov <levenson <at> mmer.org> Subject: [v3 1/2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Date: Mon, 9 Mar 2020 17:36:11 +0100
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it. * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 3 +- ...ld-swing-compile-JFXPanel-with-JDK-8.patch | 64 +++++++++++++++++++ 3 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0bcbde7301..7e4554198c 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1034,6 +1034,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-openjfx-build-get_guix_jdk_version.patch \ + %D%/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ %D%/packages/patches/java-svg-salamander-Fix-non-det.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 349b22419a..21217b0211 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2363,7 +2363,8 @@ new Date();")) (sha256 (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) - (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch")))) + (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch" + "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" diff --git a/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch new file mode 100644 index 0000000000..8f222e1780 --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch @@ -0,0 +1,64 @@ +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 +From: Alexey Abramov <levenson <at> mmer.org> +Date: Fri, 3 Jan 2020 01:17:45 +0100 +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 + +In JDKu9 getDefaultScale method was removed and sun.java2d.SurfaceData class now +has separate getDefaultScaleX() and getDefaultScaleY() methods. See +https://bugs.openjdk.java.net/browse/JDK-8073320 for more info. + +Backport the missing port to build openjfx-swing package using JDKu8. For more +info please see https://bugs.openjdk.java.net/browse/JDK-8149967 + +--- + .../java/javafx/embed/swing/JFXPanel.java | 20 ++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +index 97515e2290..614ed656b9 100644 +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -81,6 +81,7 @@ import sun.awt.AppContext; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -681,6 +682,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent { + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + resizePixelBuffer(newScaleFactor); +-- +2.24.1 + -- 2.24.1
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Mon, 09 Mar 2020 22:09:02 GMT) Full text and rfc822 format available.Message #22 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: levenson <at> mmer.org To: Leo Famulari <leo <at> famulari.name> Cc: 39745 <at> debbugs.gnu.org, 39741 <at> debbugs.gnu.org, Alexey Abramov <levenson <at> mmer.org> Subject: Re: [bug#39745] [PATCH 4/7] gnu: java-openjfx-swing: Add new variable. Date: Mon, 09 Mar 2020 23:08:14 +0100
Thank you! Leo Famulari <leo <at> famulari.name> writes: > On Sat, Feb 22, 2020 at 09:17:52PM +0100, Alexey Abramov wrote: >> * gnu/packages/java.scm (java-openjfx-build): Add patch to the base package. >> * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: Fix swing compilation for jdk8. > > This commit adds the patch file but also makes a new package > java-openjfx-swing. Adding the patch to java-openjfx-build and adding > the new package should be done in separate commits. I split the change into two separated commits. v3 > Also remember to add the patch to 'gnu/local.mk'. > >> +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 >> +From: Alexey Abramov <levenson <at> mmer.org> >> +Date: Fri, 3 Jan 2020 01:17:45 +0100 >> +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 >> + >> +For more info please see https://bugs.openjdk.java.net/browse/JDK-8149967 > > This link is great but please add a brief summary of why we need the > patch and what it does (one or two sentences is enough). -- Alexey
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Wed, 11 Mar 2020 10:37:01 GMT) Full text and rfc822 format available.Message #25 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: Alexey Abramov <levenson <at> mmer.org> To: 39745 <at> debbugs.gnu.org Cc: Alexey Abramov <levenson <at> mmer.org> Subject: [v4 2/2] gnu: java-openjfx-swing: Add new variable. Date: Wed, 11 Mar 2020 11:36:17 +0100
--- gnu/packages/java.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 768fbf09a1..494f5e360d 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3084,6 +3084,19 @@ distribution."))) `(("java-openjfx-base" ,java-openjfx-base) ("java-swt" ,java-swt))))) +(define-public java-openjfx-swing + (package (inherit java-openjfx-build) + (name "java-openjfx-swing") + (arguments + `(#:jar-name "java-openjfx-swing.jar" + #:source-dir "modules/swing/src/main/java" + #:tests? #f)) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") -- 2.24.1
guix-patches <at> gnu.org
:bug#39745
; Package guix-patches
.
(Wed, 11 Mar 2020 10:37:02 GMT) Full text and rfc822 format available.Message #28 received at 39745 <at> debbugs.gnu.org (full text, mbox):
From: Alexey Abramov <levenson <at> mmer.org> To: 39745 <at> debbugs.gnu.org Cc: Alexey Abramov <levenson <at> mmer.org> Subject: [v4 1/2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Date: Wed, 11 Mar 2020 11:36:16 +0100
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it. * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 3 +- ...ld-swing-compile-JFXPanel-with-JDK-8.patch | 63 +++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch diff --git a/gnu/local.mk b/gnu/local.mk index 476aa00511..010247be3b 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1033,6 +1033,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-openjfx-build-get_guix_jdk_version.patch \ + %D%/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ %D%/packages/patches/java-svg-salamander-Fix-non-det.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 6c1c2dba6c..768fbf09a1 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2363,7 +2363,8 @@ new Date();")) (sha256 (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) - (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch")))) + (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch" + "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" diff --git a/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch new file mode 100644 index 0000000000..363ce9509b --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch @@ -0,0 +1,63 @@ +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 +From: Alexey Abramov <levenson <at> mmer.org> +Date: Fri, 3 Jan 2020 01:17:45 +0100 +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 + +In JDKu9 getDefaultScale method was removed and sun.java2d.SurfaceData class now +has separate getDefaultScaleX() and getDefaultScaleY() methods. See +https://bugs.openjdk.java.net/browse/JDK-8073320 for more info. + +Backport the missing port to build openjfx-swing package using JDKu8. For more +info please see https://bugs.openjdk.java.net/browse/JDK-8149967 + +--- + .../java/javafx/embed/swing/JFXPanel.java | 20 ++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +index 97515e2290..614ed656b9 100644 +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -81,6 +81,7 @@ import sun.awt.AppContext; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -681,6 +682,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent { + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + resizePixelBuffer(newScaleFactor); +-- +2.24.1 -- 2.24.1
Debbugs Internal Request <help-debbugs <at> gnu.org>
to internal_control <at> debbugs.gnu.org
.
(Wed, 15 Apr 2020 11:24:05 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.