Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] Bumping minimum version of GTK3 to 3.14in4.11

Hi Jonah,

On 12/4/18 5:01 AM, Jonah Graham wrote:
Hi folks,

It seems that this discussion may be partly moot anyway as 2018-12 and 2018-09 already require at least GTK 3.7.6, perhaps later?

In July it was announced[1] that 3.0 was going to be the minimum version of GTK. But changes[2] in the code base before 2018-09 was released means that SWT does not work in (for example) GTK 3.6. The reason is that the change uses a method in GTK that had its internal name changed between GTK 3.7.4 and 3.7.6. The GTK_TYPE_TEXT_VIEW_ACCESSIBLE macro changed[3] the symbol used. So if you try and run Eclipse on an older GTK you get the following and a JVM failed to start error popup.

    /home/tools/local/java/Linux64/jdk8u172-b11/bin/java: symbol lookup
    error:
    /home/hall/eclipse.2018.12/eclipse/configuration/org.eclipse.osgi/456/0/.cp/libswt-pi3-gtk-4922r31.so:
    undefined symbol: gtk_text_view_accessible_get_type


as older GTK versions the symbol was _gtk_text_view_accessible_get_type. (The GTK version for the above error is 3.6.2, I coincidentally came across it yesterday when doing a customer site visit and came across an old Fedora 18 machine.)

Just to be clear, I am not asking for support for such old GTKs, but rather for the documentation/N&N[4] to specify what the minimum GTK really is.

I don't think the N&N is the right place to do this, as this only announces noteworthy changes/features. The GTK3 version support can be found in the 4.10 plan, under target environments [1]. While there is no hard version listed there (it only says "GTK+ 3"), none of the supported target environments have any GTK3 older than 3.20. IMO there is also no reasonable expectation that a distribution as old as Fedora 18 would run 4.8/9/10 Eclipse.

I do think having a short paragraph discussing GTK3 versions in the target environments section would be a good idea, as there is often a lot confusion around this subject.


As a related issue, the above type of failure means that the checks in Display.java (createDisplay) are also not working as intended because instead of a warning to System.out ("***WARNING: SWT requires GTK[...]") eclipse fails to load in OS.java's static initialization where it does the loadLibrary.

This is a fair point, we should really do some sort of System.err message in the static initialization block too, please open a bug for this and add me as CC.


1: https://www.eclipse.org/projects/project-plan.php?planurl=http://www.eclipse.org/eclipse/development/plans/eclipse_project_plan_4_10.xml#target_environments


--
Eric Williams
Software Engineer - Eclipse/SWT Team
Red Hat


Back to the top