[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

GTK can't load images



Hello,
since recently, several applications (firefox, pavucontrol, pidgin...) fail to load images with gtk. This happens when logging in as different user too, so its unlikely this is a setting in the ~ directory.
The error message is as following:

$ pavucontrol

(process:13818): Gtk-WARNING **: 11:47:10.492: Locale not supported by C library.
        Using the fallback 'C' locale.

(pavucontrol:13818): Gtk-WARNING **: 11:47:10.592: Could not load a pixbuf from icon theme. This may indicate that pixbuf loaders or the mime database could not be found.
**
Gtk:ERROR:../../../../gtk/gtkiconhelper.c:494:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /usr/share/icons/Adwaita/16x16/status/image-missing.png: Unrecognized image file format (gdk-pixbuf-error-quark, 3)
Abgebrochen

But the file is there:
$ file /usr/share/icons/Adwaita/16x16/status/image-missing.png
/usr/share/icons/Adwaita/16x16/status/image-missing.png: PNG image data, 16 x 16, 8-bit/color RGBA, non-interlaced

And debsums -s does not find any wrong .png files, so its not a problem with the filesystem.

After googling the error for two hours but don't finding any working solution. I started to dig the problem down. Lucily, I had already build gtk+3.0-3.24.5 myself before (reason: https://superuser.com/questions/1033414/how-to-disable-gtkfilechooserdialog-search), so I have debug symbols there
gdb pavucontrol

I ended up at:
#0 0x00007ffff6b3a280 in gdk_pixbuf_new_from_stream () at /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 #1 0x00007ffff7007fdf in icon_info_ensure_scale_and_pixbuf (icon_info=0x555555c0b0d0) at ../../../../gtk/gtkicontheme.c:3951 #2 0x00007ffff7007fdf in icon_info_ensure_scale_and_pixbuf (icon_info=0x555555c0b0d0) at ../../../../gtk/gtkicontheme.c:3835 #3 0x00007ffff700b1f8 in gtk_icon_info_load_icon (icon_info=0x555555c0b0d0, error=0x0) at ../../../../gtk/gtkicontheme.c:4070
#4  0x00007ffff700b454 in gtk_icon_theme_load_icon_for_scale
(icon_theme=icon_theme@entry=0x555555922480, icon_name=icon_name@entry=0x555555b4c3d0 "multimedia-volume-control", size=size@entry=48, scale=scale@entry=1, flags=flags@entry=(unknown: 0), error=error@entry=0x0) at ../../../../gtk/gtkicontheme.c:2347
#5  0x00007ffff700b619 in gtk_icon_theme_load_icon
(icon_theme=icon_theme@entry=0x555555922480, icon_name=icon_name@entry=0x555555b4c3d0 "multimedia-volume-control", size=size@entry=48, flags=flags@entry=(unknown: 0), error=error@entry=0x0) at ../../../../gtk/gtkicontheme.c:2284 #6 0x00007ffff719182b in icon_list_from_theme (window=window@entry=0x55555582e280, name=0x555555b4c3d0 "multimedia-volume-control")
    at ../../../../gtk/gtkwindow.c:4483
#7 0x00007ffff7192cd1 in gtk_window_realize_icon (window=0x55555582e280) at ../../../../gtk/gtkwindow.c:4531 #8 0x00007ffff719a2df in gtk_window_realize (widget=0x55555582e280) at ../../../../gtk/gtkwindow.c:7591
#9  0x000055555559962e in  ()
#10 0x00007ffff7d9043b in Gtk::Widget_Class::realize_callback(_GtkWidget*) () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 #11 0x00007ffff692ac8d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #12 0x00007ffff693e4b4 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #13 0x00007ffff69472be in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #14 0x00007ffff694797f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #15 0x00007ffff718acd6 in gtk_widget_realize (widget=widget@entry=0x55555582e280) at ../../../../gtk/gtkwidget.c:5471 #16 0x00007ffff71987fd in gtk_window_show (widget=0x55555582e280) at ../../../../gtk/gtkwindow.c:6180 #17 0x00007ffff7d9028b in Gtk::Widget_Class::show_callback(_GtkWidget*) () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1 #18 0x00007ffff692ac8d in g_closure_invoke () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #19 0x00007ffff693e4b4 in () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #20 0x00007ffff69472be in g_signal_emit_valist () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #21 0x00007ffff694797f in g_signal_emit () at /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0 #22 0x00007ffff7184e36 in gtk_widget_show (widget=0x55555582e280) at ../../../../gtk/gtkwidget.c:4800 #23 0x00007ffff7184e36 in gtk_widget_show (widget=0x55555582e280) at ../../../../gtk/gtkwidget.c:4773 #24 0x00007ffff7d30849 in Gtk::Main::run(Gtk::Window&) () at /usr/lib/x86_64-linux-gnu/libgtkmm-3.0.so.1
#25 0x0000555555586a5e in main ()

gdk_pixbuf_new_from_stream is returning NULL. Unfortunately there are no debug symbols in Debian for libgdk_pixbuf.
So I tried to build this lib with debug symbols too.
apt-get source libgdk-pixbuf2.0-dev
cd gdk-pixbuf-2.38.1+dfsg/
debuild -b  -us -uc  --no-pre-clean -j1

But this fails with tests/resources.c not found.
Why is this file missing? Because a image file could not be loaded:
[1/97] Generating resources.c with a custom command.
failed to load "/home/malte/programming/c-addadd/libgdk-pixbuf20/gdk-pixbuf-2.38.1+dfsg/tests/icc-profile.png": Couldn?t recognize the image file format for file ?/home/malte/programming/c-addadd/libgdk-pixbuf20/gdk-pixbuf-2.38.1+dfsg/tests/icc-profile.png? ../tests/resources.gresource.xml: Der Kindprozess wurde mit Status 1 beendet.

But once more the file is there:
file /home/malte/programming/c-addadd/libgdk-pixbuf20/gdk-pixbuf-2.38.1+dfsg/tests/icc-profile.png /home/malte/programming/c-addadd/libgdk-pixbuf20/gdk-pixbuf-2.38.1+dfsg/tests/icc-profile.png: PNG image data, 48 x 48, 8-bit/color RGBA, non-interlaced

I think at this point I am struck. Because GTK can't load images, I can't build the lib to figure out why images can't be loaded.
Any help?


Reply to: