Hi All,

I had to work on this issue and found that the changes in the commit : 
https://github.com/eclipse-platform/eclipse.platform.swt/commit/d8e3f297ffde54412d935db7dde31d276b58b635#diff-874667bd88035dc47251befdad240fb5cf39f7db50597060fe17c2ecb6082de5
 has caused this issue. But this commit seems to be added intentionally making 
the min version of GTK to 3.22. The crash occurs when we are right clicking 
(when trying to show a pop up menu) - getting gtk_menu_popup_at_pointer 
undefined symbol. Since this may not be present in gtk4. Earlier we used to 
have a separate handling if the gtk version was less than 3.22. I tried to add 
the removed native call and changes in Menu.java, Device.java and Shell.java 
and the right click functionality is working fine now.

I had to build the .so files used for gtk.linux locally for this. When I was 
doing that I created the .so using
`eclipse.platform.swt\bundles\org.eclipse.swt\bin\library\build.sh -gtk3 
install` command. The output .so files will be created using GTK3 binding (eg: 
libswt-pi3-gtk-4960r6.so ) and it will not have the .so corresponding to GTK4 
binding (expected as per the documentation).
* But will these .so files work for any platform (when the final product is 
installed) where the GTK version installed is GTK4. I am afraid that it will 
fail at some native calls for GTK4 (as I see we have GTK4 native calls made 
from  different UI java classes).
* When I checked the latest eclipse platform, it also contains only the 
"libswt-pi3-gtk-4960r6.so" (and no libswt-pi4-gtk-4960r6.so) in 
org.eclipse.swt.gtk.linux.x86_64.jar. So I just wanted to confirm during 
eclipse build also we are using -gtk3 and e haven't moved to gtk4 still. Please 
correct me if I am wrong at some point.


Thanks,
Vishnu

From: Vishnu Sarath
Sent: Thursday, June 1, 2023 11:50 AM
To: platform-dev@eclipse.org; mist...@redhat.com
Subject: RE: [platform-dev] Eclipse Platform Build

Thanks @mist...@redhat.com<mailto:mist...@redhat.com> for the detailed mail. I 
was trying out the things mentioned.

Please see the below steps I tried:


  *   Setup a Fedora38 VM.
  *   We suspect this commit 
https://github.com/eclipse-platform/eclipse.platform.swt/commit/d8e3f297ffde54412d935db7dde31d276b58b635#diff-874667bd88035dc47251befdad240fb5cf39f7db50597060fe17c2ecb6082de5
 (which was done to make 3.22 GTK version as minimum), as the cause of the 
crash issue we are seeing (not sure, need to confirm). The crash occurs when we 
are right clicking (when trying to show a pop up menu) - getting 
gtk_menu_popup_at_pointer undefined symbol. Since this may not be present in 
gtk4. Earlier we used to have a separate handling if the gtk version was less 
than 3.22. I tried to add the removed native call and changes in Menu.java. And 
created the .so files with building in Fedora38 VM (Glibc 2.37).
  *   But when I am using this .so files in the product and trying to launch 
the product in SUSE12 SP5, the launch itself is failing. When I tried find the 
root cause (adding some logs) I got the below error:
/home/testuser/Downloads/testProduct/testProduct 
-linux.gtk.x86_64/configuration/org.eclipse.osgi/277/0/.cp/libswt-pi3-gtk-4960r6.so:
 /lib64/libc.so.6: version `GLIBC_2.34' not found (required by /home/ 
testuser/Downloads/ testProduct / testProduct 
-linux.gtk.x86_64/configuration/org.eclipse.osgi/277/0/.cp/libswt-pi3-gtk-4960r6.so)
               It’s expecting Glibc version above 2.34 while the SUSE12 is 
having 2.22 by default.

I am a bit new to this, so could someone please guide me on how to fix this. Is 
this issue because I am using a wrong platform (with higher version of Glibc 
2.37 for building). What is the ideal platform which we are using to generate 
swt .so files for linux gtk.

Thanks,
Vishnu

From: Mickael Istria <mist...@redhat.com<mailto:mist...@redhat.com>>
Sent: Wednesday, May 24, 2023 1:40 PM
To: Eclipse platform general developers list. 
<platform-dev@eclipse.org<mailto:platform-dev@eclipse.org>>
Cc: Vinod Appu <vinod.a...@ashling.com<mailto:vinod.a...@ashling.com>>
Subject: Re: [platform-dev] Eclipse Platform Build

Hi,

Please see https://wiki.eclipse.org/Platform-releng/Platform_Build for 
explanation of how to build the Eclipse Platform and 
https://github.com/eclipse-platform/eclipse.platform.swt/wiki/Devel-GTK-Dev-guide
 for particular GTK stuff.
The version of SWT was bumped by +0.1.0 during last cycle, which means it has 
new APIs and some bundles are probably consuming those new API; so by auditing 
the version, it seems like the combination you wish to achieve (latest platform 
with old SWT) is then not possible.
With the link above and good knowledge of Maven, Tycho and PDE, you may be able 
to hack something to enforce another locally built version of SWT, but overall 
it will be annoying and difficult for questionable value. If you can make a PR 
that fixes https://github.com/eclipse-platform/eclipse.platform/issues/212 
while still working with supported environments, there are chances that it get 
merged and than part of the official build. This is IMO the most profitable 
path forward, although it's not certain it can work.
Note that if you're stuck in an environment that is not supported anymore, you 
may consider alternative distributions of Eclipse IDE, such as Flatpak one; 
with such container-like installations, most libs -including GTK- are supposed 
to be included in a compatible way. https://flathub.org/apps/org.eclipse.Java .
HTH
Mickael
_______________________________________________
platform-dev mailing list
platform-dev@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/platform-dev

Reply via email to