Package: libgtk-3-0 Version: 3.22.4-1 Severity: normal Trying to run a gtk-based application that does not depend directly or indirectly on libgl1-mesa-glx leads to a process termination with message: Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory
I was able to reproduce it with the following apps: gtk3-demo, firefox, mousetweaks. Steps to reproduce: 1. Use a headless Debian installation (it is important libgl1-mesa-glx is not pulled in by the desktop environment etc.). I used a cloud image from [1]. 2. Install the gtk app you want to try: apt install gtk-3-examples (notice that libgl1-mesa-glx is not pulled in as a dependency). 3. Login with ssh -X to this Debian machine from a Windows with X server (e.g. with cywgin with X) or Mac OS X. 4. Run the app: gtk3-demo Expected result: App starts. Actual result: Process terminates, message "Couldn't open libGL.so.1: libGL.so.1: cannot open shared object file: No such file or directory". I noticed that this is caused by the fact that glXQueryExtension function gets called without any linking to a GL library. Looks like gtk should either: 1) Depend on a GL implementation, so apt pulls in the dependency on install. 2) Use a runtime check before calling this function to see if GL is available. Note: for some reason it is NOT REPRODUCIBLE using a Linux desktop as a remote client. In such configuration the control skips the problematic piece of code as get_cached_gl_visuals (gdk/x11/gdkglcontext-x11.c:1194) returns non-zero value, so gdk_x11_screen_init_gl call never happens. I suspect this is somehow related to the fact that I had GL already initialized on my remote desktop. [1] http://cdimage.debian.org/cdimage/openstack/testing/ Full backtrace below: #0 gdk_x11_screen_init_gl (screen=screen@entry=0x55555594c0d0) at ././gdk/x11/gdkglcontext-x11.c:859 #1 0x00007ffff7240c1a in _gdk_x11_screen_update_visuals_for_gl (screen=screen@entry=0x55555594c0d0) at ././gdk/x11/gdkglcontext-x11.c:1210 #2 0x00007ffff72497e6 in _gdk_x11_screen_init_visuals (screen=screen@entry=0x55555594c0d0) at ././gdk/x11/gdkvisual-x11.c:309 #3 0x00007ffff7246856 in _gdk_x11_screen_new (display=display@entry=0x555555946050, screen_number=0) at ././gdk/x11/gdkscreen-x11.c:908 #4 0x00007ffff7236768 in _gdk_x11_display_open (display_name=<optimized out>) at ././gdk/x11/gdkdisplay-x11.c:1416 #5 0x00007ffff720b1b5 in gdk_display_manager_open_display (manager=<optimized out>, name=0x0) at ././gdk/gdkdisplaymanager.c:472 #6 0x00007ffff76fa78a in gtk_init_check (argc=<optimized out>, argv=<optimized out>) at ././gtk/gtkmain.c:1082 #7 0x00007ffff76fa7b9 in gtk_init (argc=argc@entry=0x0, argv=argv@entry=0x0) at ././gtk/gtkmain.c:1139 #8 0x00007ffff75dc68a in gtk_application_startup (g_application=0x5555559251a0) at ././gtk/gtkapplication.c:293 #9 0x00007ffff359ef75 in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #10 0x00007ffff35b095c in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #11 0x00007ffff35b9bcc in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #12 0x00007ffff35b9faf in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #13 0x00007ffff6451ae2 in g_application_register () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #14 0x00007ffff645230f in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #15 0x00007ffff6452672 in g_application_run () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0 #16 0x000055555557285e in main () -- System Information: Debian Release: stretch/sid APT prefers testing-debug APT policy: (500, 'testing-debug'), (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 4.8.0-1-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_US.UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages libgtk-3-0 depends on: ii adwaita-icon-theme 3.22.0-1 ii hicolor-icon-theme 0.15-1 ii libatk-bridge2.0-0 2.22.0-1 ii libatk1.0-0 2.22.0-1 ii libc6 2.24-7 ii libcairo-gobject2 1.14.6-1.1 ii libcairo2 1.14.6-1.1 ii libcolord2 1.3.3-2 ii libcups2 2.2.1-2 ii libepoxy0 1.3.1-1 ii libfontconfig1 2.11.0-6.7 ii libfreetype6 2.6.3-3+b1 ii libgdk-pixbuf2.0-0 2.36.0-1 ii libglib2.0-0 2.50.2-2 ii libgtk-3-common 3.22.4-1 ii libjson-glib-1.0-0 1.2.2-1 ii libpango-1.0-0 1.40.3-3 ii libpangocairo-1.0-0 1.40.3-3 ii libpangoft2-1.0-0 1.40.3-3 ii librest-0.7-0 0.8.0-2 ii libsoup2.4-1 2.56.0-1 ii libwayland-client0 1.11.0-2 ii libwayland-cursor0 1.11.0-2 ii libwayland-egl1-mesa [libwayland-egl1] 13.0.2-1 ii libx11-6 2:1.6.3-1 ii libxcomposite1 1:0.4.4-1 ii libxcursor1 1:1.1.14-1+b1 ii libxdamage1 1:1.1.4-2+b1 ii libxext6 2:1.3.3-1 ii libxfixes3 1:5.0.2-1 ii libxi6 2:1.7.6-1.1 ii libxinerama1 2:1.1.3-1+b1 ii libxkbcommon0 0.6.1-1 ii libxml2 2.9.4+dfsg1-2.1 ii libxrandr2 2:1.5.0-1 ii shared-mime-info 1.7-1 Versions of packages libgtk-3-0 recommends: ii libgtk-3-bin 3.22.4-1 Versions of packages libgtk-3-0 suggests: pn gvfs <none> ii librsvg2-common 2.40.16-1 -- no debconf information