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