From: Alexey Abramov <levenson@mmer.org>
To: 41360@debbugs.gnu.org
Subject: [bug#41360] [PATCH 04/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
Date: Sun, 17 May 2020 15:51:33 +0200 [thread overview]
Message-ID: <20200517135138.1651512-4-levenson@mmer.org> (raw)
In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org>
[-- Attachment #1: Type: text/plain, Size: 536 bytes --]
* 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
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0004-gnu-java-openjfx-build-Fix-openjfx-swing-component-b.patch --]
[-- Type: text/x-patch; name="0004-gnu-java-openjfx-build-Fix-openjfx-swing-component-b.patch", Size: 4286 bytes --]
diff --git a/gnu/local.mk b/gnu/local.mk
index ad0ad930ad..eaaa54e6f8 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1107,6 +1107,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 4b83e963ea..e38e691ee5 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2501,7 +2501,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@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
next prev parent reply other threads:[~2020-05-17 13:53 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-17 13:28 [bug#41360] [PATCH 00/12] Package java-openjfx Alexey Abramov
2020-05-17 13:51 ` [bug#41360] [PATCH 01/12] gnu: java-openjfx-build: Add helpful patch Alexey Abramov
2020-05-17 13:51 ` [bug#41360] [PATCH 02/12] gnu: java-openjfx-build: Fix indentation Alexey Abramov
2020-05-23 13:58 ` Ludovic Courtès
2020-05-17 13:51 ` [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-05-23 14:04 ` Ludovic Courtès
2020-05-17 13:51 ` Alexey Abramov [this message]
2020-05-23 14:05 ` [bug#41360] [PATCH 04/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Ludovic Courtès
2020-05-17 13:51 ` [bug#41360] [PATCH 05/12] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-05-23 14:05 ` Ludovic Courtès
2020-05-17 13:51 ` [bug#41360] [PATCH 06/12] gnu: java-openjfx-swt: " Alexey Abramov
2020-05-17 13:51 ` [bug#41360] [PATCH 07/12] gnu: java-openjfx-controls: " Alexey Abramov
2020-05-17 13:51 ` [bug#41360] [PATCH 08/12] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-05-17 13:51 ` [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-05-23 14:09 ` Ludovic Courtès
2020-05-23 13:58 ` [bug#41360] [PATCH 01/12] gnu: java-openjfx-build: Add helpful patch Ludovic Courtès
2020-05-30 16:44 ` Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 1/9] " Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 2/9] gnu: java-openjfx-build: Fix indentation Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 3/9] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 4/9] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 5/9] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 6/9] gnu: java-openjfx-swt: " Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 7/9] gnu: java-openjfx-controls: " Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 8/9] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-05-30 16:41 ` [bug#41360] [PATCH v2 9/9] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-05-30 16:45 ` [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-05-30 16:45 ` [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-06-03 15:47 ` Ludovic Courtès
2020-06-07 16:25 ` Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 2/9] gnu: java-openjfx-build: Fix indentation Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 3/9] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 4/9] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 5/9] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 6/9] gnu: java-openjfx-swt: " Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 7/9] gnu: java-openjfx-controls: " Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 8/9] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-05-30 17:09 ` [bug#41360] [PATCH v3 9/9] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-06-03 15:50 ` [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch Ludovic Courtès
2020-06-03 16:24 ` Julien Lepiller
2020-06-03 16:36 ` Alexey Abramov
2020-06-04 9:55 ` Ludovic Courtès
2020-06-07 15:55 ` [bug#41360] [PATCH v4 00/12] Improve OpenJFX and friends packages Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 01/12] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-06-12 16:12 ` Ludovic Courtès
2020-06-18 17:31 ` Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 02/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 03/12] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 04/12] gnu: java-openjfx-swt: " Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 05/12] gnu: java-openjfx-controls: " Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 06/12] gnu: java-openjfx-build: Patch DumpRenderTree for the web component Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 07/12] gnu: java-openjfx-build: Do not use an embedded 3rd party libraries Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 08/12] gnu: java-openjfx-build: Fix web component compilation with ICU 59+ Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 09/12] gnu: java-openjfx-build: Fix web component linkage Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 10/12] gnu: java-openjfx-build: Fix web component compilation with ICU 65+ Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 11/12] gnu: java-openjfx-build: Ensure use of system provided libraries Alexey Abramov
2020-06-07 15:55 ` [bug#41360] [PATCH v4 12/12] gnu: java-openjfx-web: Add new variable Alexey Abramov
2022-06-19 19:26 ` [bug#41360] [PATCH v5] finalize java-openjfx packages Ioannis Kappas
2022-06-21 8:22 ` Julien Lepiller
2022-06-21 8:30 ` [bug#41360] [PATCH 00/12] Package java-openjfx Alexey Abramov via Guix-patches via
2022-06-21 17:32 ` Julien Lepiller
2022-06-21 17:27 ` [bug#41360] [PATCH v5] finalize java-openjfx packages Julien Lepiller
2022-06-21 18:14 ` Ioannis Kappas
2022-06-26 7:22 ` Ioannis Kappas
2022-09-09 6:15 ` Ioannis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200517135138.1651512-4-levenson@mmer.org \
--to=levenson@mmer.org \
--cc=41360@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.