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?