I was surprised to learn this morning that openjdk-8 upstream has ported to GTK3 (some time ago actually):

https://bugs.openjdk.org/browse/JDK-8207322
https://github.com/openjdk/jdk8u-dev/commit/4ea4c29a4ca3d984fb28b054340d618ac5f2009a

On my system (which has libgtk2 installed), testing an openjdk GUI application shows that gtk3 is loaded at runtime when it is available:

$ export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
$ $JAVA_HOME/bin/java -jar /usr/share/wadc/wadc.jar &
$ grep gtk "/proc/$(pidof java)/maps"
7f3aca389000-7f3aca38c000 r--p 00000000 fd:01 784667                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
7f3aca38c000-7f3aca390000 r-xp 00003000 fd:01 784667                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
7f3aca390000-7f3aca392000 r--p 00007000 fd:01 784667                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
7f3aca392000-7f3aca393000 r--p 00008000 fd:01 784667                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
7f3aca393000-7f3aca394000 rw-p 00009000 fd:01 784667                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so
7f3ad1b49000-7f3ad1b79000 r--p 00000000 fd:01 927345                     
/usr/share/locale/en_GB/LC_MESSAGES/gtk30-properties.mo
7f3ad2200000-7f3ad228d000 r--p 00000000 fd:01 794682                     
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2417.32
7f3ad228d000-7f3ad261f000 r-xp 0008d000 fd:01 794682                     
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2417.32
7f3ad261f000-7f3ad29e3000 r--p 0041f000 fd:01 794682                     
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2417.32
7f3ad29e3000-7f3ad29f6000 r--p 007e3000 fd:01 794682                     
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2417.32
7f3ad29f6000-7f3ad29f9000 rw-p 007f6000 fd:01 794682                     
/usr/lib/x86_64-linux-gnu/libgtk-3.so.0.2417.32
7f3ad2bdd000-7f3ad2bdf000 r--p 00000000 fd:01 786625                     
/usr/lib/x86_64-linux-gnu/libcanberra-gtk3.so.0.1.9
7f3ad2bdf000-7f3ad2be1000 r-xp 00002000 fd:01 786625                     
/usr/lib/x86_64-linux-gnu/libcanberra-gtk3.so.0.1.9
7f3ad2be1000-7f3ad2be2000 r--p 00004000 fd:01 786625                     
/usr/lib/x86_64-linux-gnu/libcanberra-gtk3.so.0.1.9
7f3ad2be2000-7f3ad2be3000 r--p 00004000 fd:01 786625                     
/usr/lib/x86_64-linux-gnu/libcanberra-gtk3.so.0.1.9
7f3ad2be3000-7f3ad2be4000 rw-p 00005000 fd:01 786625                     
/usr/lib/x86_64-linux-gnu/libcanberra-gtk3.so.0.1.9
7f3ad2be4000-7f3ad2be6000 r--p 00000000 fd:01 790908                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk3-module.so
7f3ad2be6000-7f3ad2be9000 r-xp 00002000 fd:01 790908                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk3-module.so
7f3ad2be9000-7f3ad2bea000 r--p 00005000 fd:01 790908                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk3-module.so
7f3ad2bea000-7f3ad2beb000 r--p 00006000 fd:01 790908                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk3-module.so
7f3ad2beb000-7f3ad2bec000 rw-p 00007000 fd:01 790908                     
/usr/lib/x86_64-linux-gnu/gtk-3.0/modules/libcanberra-gtk3-module.so
7f3ad2bec000-7f3ad2c06000 r--p 00000000 fd:01 927346                     
/usr/share/locale/en_GB/LC_MESSAGES/gtk30.mo

For that test, I used trixie's wadc and sid's openjdk-8-jre.

Possibly it would load gtk2 if 3 was not available. I haven't read through the patch, although the JBS bug references "failing forward" to GTK3. In any case, I think the Depends: on libgtk2 is no longer correct.

--
👱🏻      Jonathan Dowland
✎           [email protected]
🔗               jmtd.net

Reply via email to