[8u-backport] JDK-8087516 : [JavaFX] Conditional support for GTK 3 on Linux

Kevin Rushforth kevin.rushforth at oracle.com
Thu Oct 11 15:28:32 UTC 2018


We use gcc 7.3 (and Oracle Linux 6 / 7) for our Hudson builds of FX 8 
and don't see this problem. Pankaj asked about backporting the fix for 
that JDK-8203884, but I suggested it wasn't needed, since it is 
unrelated to this change.

It sounds like we should backport JDK-8203884, though I prefer it as a 
separate fix not tied to the GTK 3 work.

-- Kevin


On 10/11/2018 3:35 AM, Johan Vos wrote:
> Hi Pankaj,
>
> What gcc version did you use to build on Ubuntu 18.04? Default, I 
> think gcc 7.3 is used in 18.04 and that has the issue with wait() in
> modules/fxpackager/src/main/native/library/common/PosixPlatform.cpp
> (which was later replaced with
> wait(&status);
> )
>
> This is blocking me to build 8u-dev on Ubuntu 18.04.
> On Ubuntu 16.04, there are no issues and it works fine there.
>
> - Johan
>
> On Wed, Oct 10, 2018 at 5:10 PM Pankaj Bansal 
> <pankaj.b.bansal at oracle.com <mailto:pankaj.b.bansal at oracle.com>> wrote:
>
>     Hi Kevin,
>
>     Thanks for review and the information provided.
>
>     I have updated the webrev for the proposed change from RTLD_GLOBAL
>     to RTLD_LOCAL in launcher.c. Along with the this change, the new
>     patch also includes the backport of two more fixes mentioned
>     below. So now we have backported total of 20 bugs.
>
>     19. JDK-8171985: Fx applet fails to get loaded on Ubuntu with
>     jre9-b150
>     20. JDK-8171928: Build fails on Oracle Linux 7 with unused
>     parameter warning
>
>     I have tested it on all three platforms (Windows 10, Linux (Ubuntu
>     18.4 LTS, Ubuntu 16.04 LTS) and and Mac) and no new test failures
>     are found. I have tested the "HelloWebView" and "Ensemble" and I
>     don't see any issue. I did some sanity testing on OL 7.5 as well
>     and things look good to me.
>
>     Webrev:
>     http://cr.openjdk.java.net/~pbansal/gtk3_JFX_backport/webrev.01/
>     <http://cr.openjdk.java.net/%7Epbansal/gtk3_JFX_backport/webrev.01/>
>
>     Regards,
>     Pankaj
>
>
>     -----Original Message-----
>     From: Kevin Rushforth
>     Sent: Thursday, October 4, 2018 7:41 AM
>     To: Pankaj Bansal; openjfx-dev at openjdk.java.net
>     <mailto:openjfx-dev at openjdk.java.net>
>     Subject: Re: [8u-backport] JDK-8087516 : [JavaFX] Conditional
>     support for GTK 3 on Linux
>
>     I debugged this offline earlier today, and it looks related to a
>     collision in the glib library. As I mentioned offline, a possible
>     solution is to remove RTLD_GLOBAL from the dlopen of the
>     libglassgtk{2,3}.so library. I was able to do a full build / test
>     on both GTK 2 and GTK 3 including media and webkit with that
>     modification.
>
>     Overall, this is looking quite good.
>
>     One more thing: the patch adds several new tests, so you will need
>     to run at least the new tests on all three platforms (a quick
>     check on Mac shows a couple failures).
>
>     I also see a couple differences between jfx-dev and 8u-dev in the
>     native code that should be looked into to make sure there wasn't a
>     missed fix on the backport (the Hi-DPI diffs are expected, but I
>     see a couple others).
>
>     -- Kevin
>
>
>     On 10/3/2018 10:16 AM, Kevin Rushforth wrote:
>     > My initial testing shows a couple problems which will need to be
>     > resolved:
>     >
>     > 1) I get many GTK warnings relating to Pango when running
>     HelloWebView
>     > 2) Running any program that uses media crashes
>     >
>     > This is on Ubuntu 16.04 LTS using the default GTK 2 mode.
>     >
>     > -- Kevin
>     >
>     >
>     > On 10/3/2018 3:26 AM, Pankaj Bansal wrote:
>     >>
>     >> Hi All,
>     >>
>     >> Please review the patch for 8u-dev backport for JDK-8087516
>     >> <https://bugs.openjdk.java.net/browse/JDK-8087516>. It adds
>     >> conditional support for gtk3.
>     >>
>     >> Along with the enhancement, following bug fixes have also been
>     >> included in the backport webrev
>     >>
>     >> 1.https://bugs.openjdk.java.net/browse/JDK-8159892: [GTK3] invalid
>     >> rendering of FX app stage in case of scaling
>     >>
>     >> 2.https://bugs.openjdk.java.net/browse/JDK-8163496: Rework
>     Glass GTK
>     >> to correct gtk3 structure sizes
>     >>
>     >> 3.https://bugs.openjdk.java.net/browse/JDK-8145837: Remove
>     deprecated
>     >> GTK2 calls in JavaFX
>     >>
>     >> 4.https://bugs.openjdk.java.net/browse/JDK-8165562: Upgrade to
>     newer
>     >> version of SWT for build/test
>     >>
>     >> 5.https://bugs.openjdk.java.net/browse/JDK-8171330: Issues with
>     >> transparent stage and GTK
>     >>
>     >> 6.https://bugs.openjdk.java.net/browse/JDK-8171976: Linux: JavaFX
>     >> window not painted with background when using GTK 3
>     >>
>     >> 7.https://bugs.openjdk.java.net/browse/JDK-8166414: Scene returns
>     >> incorrect coordinates
>     >>
>     >> 8.https://bugs.openjdk.java.net/browse/JDK-8166147: Ubuntu 16.04:
>     >> expandable content goes outside of the alert dialog
>     >>
>     >> 9.https://bugs.openjdk.java.net/browse/JDK-8152421: After
>     initing the
>     >> modality of a non-primary stage to MODAL, closing that stage
>     causes
>     >> the primary stage to become non-resizable
>     >>
>     >> 10.https://bugs.openjdk.java.net/browse/JDK-8090249: [Linux]
>     >> Restoring owner stage after minimize does not restore position of
>     >> child stage
>     >>
>     >> 11.https://bugs.openjdk.java.net/browse/JDK-8173901: Linux:
>     Position
>     >> of Stage is not restored after exiting full screen
>     >>
>     >> 12.https://bugs.openjdk.java.net/browse/JDK-8175204: Linux: Dialog
>     >> windows come up 1-pixel wide
>     >>
>     >> 13.https://bugs.openjdk.java.net/browse/JDK-8175205: Linux: Stage
>     >> initially in full-screen mode not shown when exiting full-screen
>     >>
>     >> 14.https://bugs.openjdk.java.net/browse/JDK-8175822: Pulldown
>     >> position regression and not painting correctly tooltips regression
>     >>
>     >> 15.https://bugs.openjdk.java.net/browse/JDK-8176844: Menus not
>     always
>     >> selected properly with GTK 3
>     >>
>     >> 16.https://bugs.openjdk.java.net/browse/JDK-8172219: Allow
>     compiling
>     >> without GTK 3.0 being installed
>     >>
>     >> 17.https://bugs.openjdk.java.net/browse/JDK-8157002 Toggle gtk
>     >> version if SWT used via FXCanvas
>     >>
>     >> 18.https://bugs.openjdk.java.net/browse/JDK-8156491: Autodetect
>     GTK
>     >> version for JFX
>     >>
>     >> The original gtk3 backport patch applied cleanly, but the bugs did
>     >> not apply cleanly. So a review is required.
>     >>
>     >> I have run the full gradle tests on Ubuntu 14.04 LTS, Ubuntu 16.04
>     >> LTS, Ubuntu 18.04 and have done sanity testing on Oracle Linux 7.5.
>     >>
>     >> webrev:
>     >>
>     http://cr.openjdk.java.net/~pbansal/gtk3_JFX_backport/webrev.00/
>     <http://cr.openjdk.java.net/%7Epbansal/gtk3_JFX_backport/webrev.00/>
>     >>
>     >> JBS: https://bugs.openjdk.java.net/browse/JDK-8087516
>     >>
>     >> JDK 9 Changeset:
>     >> http://hg.openjdk.java.net/openjfx/9-dev/rt/rev/8c6d0386d3f5
>     >>
>     >> Regards,
>     >>
>     >> Pankaj
>     >>
>     >
>



More information about the openjfx-dev mailing list