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

Pankaj Bansal pankaj.b.bansal at oracle.com
Thu Oct 11 10:47:36 UTC 2018


Hi Johan,

 

Thanks for the review.

 

I used same gcc 7.3 and I was getting the compilation error in fxpackager. I used to build by making these changes locally on 18.04.

 

I discussed this with Kevin about backporting https://bugs.openjdk.java.net/browse/JDK-8189689. This fixes the issue you are facing. But I have been told that we have some Hudson machines where we get the successful build on gcc 7.3 without these changes. So this issue may not be specific to gcc version and we decided not to backport this. Let me talk to Kevin and I will get back to you.

 

Regards,

Pankaj

 

From: Johan Vos [mailto:johan.vos at gluonhq.com] 
Sent: Thursday, October 11, 2018 4:05 PM
To: Pankaj Bansal
Cc: Kevin Rushforth; openjfx-dev at openjdk.java.net
Subject: Re: [8u-backport] JDK-8087516 : [JavaFX] Conditional support for GTK 3 on Linux

 

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 <HYPERLINK "mailto:pankaj.b.bansal at oracle.com"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/

Regards,
Pankaj


-----Original Message-----
From: Kevin Rushforth 
Sent: Thursday, October 4, 2018 7:41 AM
To: Pankaj Bansal; HYPERLINK "mailto:openjfx-dev at openjdk.java.net"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/
>>
>> 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