altf4 / libmelee

Open Python 3 API for making your own Smash Bros: Melee AI that works with Slippi Online
GNU Lesser General Public License v3.0
237 stars 47 forks source link

gdk-pixbuf loaders.cache Wrong Directory #74

Closed gudenau closed 3 years ago

gudenau commented 3 years ago

When launching the example script it spams the console with a lot of errors related to gdk-pixbuf not finding the loader cache file. It is looking in usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/ instead of where it is located: /usr/lib/gdk-pixbuf-2.0/2.10.0/

$ ./example.py -e ../SlippiImage/usr/bin/
Connecting to console...
Console connected
Connecting controller to console...
Gtk-Message: 22:04:33.869: Failed to load module "canberra-gtk-module"

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.892: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.921: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.922: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): Gtk-WARNING **: 22:04:33.922: Could not load a pixbuf from /org/gtk/libgtk/theme/Adwaita/assets/bullet-symbolic.svg.
This may indicate that pixbuf loaders or the mime database could not be found.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.923: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.923: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.936: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.936: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.937: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.937: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.944: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.

(dolphin-emu:30920): GdkPixbuf-WARNING **: 22:04:33.944: Cannot open pixbuf loader module file '/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache': No such file or directory

This likely means that your installation is broken.
Try running the command
  gdk-pixbuf-query-loaders > /usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders.cache
to make things work again for the time being.
**
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)
Bail out! 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)
^CShutting down cleanly...
$

Version: 0.30.3 (adf80a360234143eec32cd3124a63b32169151fb) Slippi version: 2.3.1 (cf8a02885aca50b11c5c4d56d493ae565b629184) Kernel version: 5.10.42-lts

gudenau commented 3 years ago

After doing some digging appending /usr/lib to LD_LIBRARY_PATH fixes this issue, but that is not a good fix.

Investigating further.

gudenau commented 3 years ago

So it turns out that the LD_LIBRARY_PATH trick works because the shared objects get loaded from there before they get loaded from the paths that Dolphin specifies. This works because gtk uses a hard coded path to locate the cache file.

Related code: meson.build queryloaders.c

altf4 commented 3 years ago

This doesn't seem to be a libmelee issue. Closing