protonscr

Leaf's Odyssey in Ubuntu Snap: error while loading shared libraries: libgtk-3.so.0

steamclosed 3rd party gameDistro Family: UbuntuDistro-provided steam package
ValveSoftware/steam-for-linux#10908 · opened 2024-05-19 by EvidentlyCube · updated 2024-05-19 · 6 comments · github
EEvidentlyCube 2024-05-19 github

Your system information

  • Steam client version (build number or date): 1715891371 & 1716072097
  • Distribution (e.g. Ubuntu): Ubuntu 22.04
  • Opted into Steam client beta?: Tried both
  • Have you checked for system updates?: [Yes/No]
  • Steam Logs: steam-logs.tar.gz
  • GPU: AMD Integrated

Please describe your issue in as much detail as possible:

  • I am unable to run recently released Leaf's Odyssey via Steam client.
    • When I click "Play" the button changes to "Cancel", then it does cloud sync and then with no message or warning changes back to "Play".
  • The game runs if I browse to game files and start it from Files.
  • The game runs fine for the developer (but he's using a different distro and not installed via Snap)
  • When I ran steam via terminal, I noticed this in the logs that appear when trying to run the game:
/bin/sh\0-c\0/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=2880750 -- /home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf'\''s Odyssey/leafsodyssey'\0
chdir "/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf's Odyssey"

(steam:524996): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion `source != NULL' failed
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.

(steam:524996): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion `source != NULL' failed
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf's Odyssey/leafsodyssey: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory

(steam:524996): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion `source != NULL' failed
Uploaded AppInterfaceStats to Steam


////////// PROBLEMATIC ESCAPE APPARS IN THE FIRST LINE

'/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf'\''s Odyssey/leafsodyssey'\0
                                                                       ^
                                                                       |
                                                                      HERE

Steps for reproducing this issue:

  1. Install steam via Snap on Ubuntu 22.04
  2. Start steam (via terminal if you want to see the above logs)
  3. Attempt to run Leaf's Odyssey
Kkisak-valve maintainer 2024-05-19 github

Hello @EvidentlyCube, /home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf's Odyssey/leafsodyssey: error while loading shared libraries: libgtk-3.so.0: cannot open shared object file: No such file or directory is the fatal log message, not the path handling.

This issue should be reported to the game's dev(s).

Kkisak-valve maintainer 2024-05-19 github

As a quick test, can you go to the per-game properties, and select the Steam Linux Runtime 1.0 (scout) compatibility tool and check how the game behaves in that configuration?

EEvidentlyCube 2024-05-19 github

@kisak-valve Thanks!

As a quick test, can you go to the per-game properties, and select the Steam Linux Runtime 1.0 (scout) compatibility tool and check how the game behaves in that configuration?

This made it work! I ran steam from terminal to capture logs in case they're useful

/bin/sh\0-c\0/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=2880750 -- /home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/steam-launch-wrapper -- '/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/SteamLinuxRuntime_soldier'/_v2-entry-point --verb=waitforexitandrun -- '/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/SteamLinuxRuntime'/scout-on-soldier-entry-point-v2 --  '/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf'\''s Odyssey/leafsodyssey'\0
chdir "/home/skell/snap/steam/common/.local/share/Steam/steamapps/common/Leaf's Odyssey"

(steam:780300): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion `source != NULL' failed

(steam:780300): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion `source != NULL' failed
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

(steam:780300): GLib-GIO-CRITICAL **: g_settings_schema_source_lookup: assertion `source != NULL' failed
pressure-vessel-wrap[782683]: W: Failed to load Vulkan ICD #0 from /var/lib/snapd/lib/vulkan/icd.d/nvidia_icd.json: openat(/var/lib/snapd/lib/vulkan/icd.d/nvidia_icd.json): No such file or directory
pressure-vessel-wrap[782683]: W: "snap/steam/191/graphics/usr/share/libdrm" is unlikely to appear in "/run/host"
pressure-vessel-wrap[782683]: W: "snap/steam/191/graphics/usr/share/libdrm" is unlikely to appear in "/run/host"
pressure-vessel-wrap[782683]: W: "snap/steam/191/graphics/usr/share/drirc.d" is unlikely to appear in "/run/host"
pressure-vessel-wrap[782683]: W: Not sharing /snap with container to work around https://github.com/canonical/steam-snap/issues/359
pressure-vessel-wrap[782683]: W: Not sharing /var/lib/snapd/hostfs with container to work around https://github.com/canonical/steam-snap/issues/359
pressure-vessel-wrap[782683]: W: Filtering out --tmpfs /snap/steam/191/usr/share/vulkan/implicit_layer.d to work around https://github.com/canonical/steam-snap/issues/370
pid 783253 != 783249, skipping destruction (fork without exec?)
pid 783258 != 783249, skipping destruction (fork without exec?)

(leafsodyssey:783249): dbind-WARNING **: 16:56:23.362: Couldn't connect to accessibility bus: Failed to connect to socket /run/user/1000/at-spi/bus: No such file or directory
Gtk-Message: 16:56:23.406: Failed to load module "canberra-gtk-module"
Gtk-Message: 16:56:23.412: Failed to load module "canberra-gtk-module"
/usr/share/libdrm/amdgpu.ids: No such file or directory
GameOverlay: started '/home/skell/snap/steam/common/.local/share/Steam/ubuntu12_32/gameoverlayui' (pid 783293) for game process 783249

I also then disabled it again to ensure it's still broken without the compatibility layer and it is.

This issue should be reported to the game's dev(s).

Thanks, I'll pass it on to them now.

EEvidentlyCube 2024-05-19 github

For good measure I've googled the issue and it was suggested to install libgtk-3-0, but it seems I already have it installed:

sudo apt install libgtk-3-0
[sudo] password for skell: 
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Note, selecting 'libgtk-3-0t64' instead of 'libgtk-3-0'
libgtk-3-0t64 is already the newest version (3.24.41-4ubuntu1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
EEvidentlyCube 2024-05-19 github

And also found this post on ask Ubuntu. I've tried to force install x86 version of libgtk - the game window opens but is black screen, so it was able to find the 32 bit version of the library but somehow is not able to find the 64 bit one.

Anyhow, passed it on to the dev as well, just putting it there for public knowledge.

Kkisak-valve maintainer 2024-05-19 github

Thanks for checking, that makes this specifically a game issue with the Steam in Snap packaging. The game is making a library availability assumption and the Snap packaging is putting it (and Steam in general) in an environment that doesn't provide the library or let you use it from the host system.

This is something that needs to be resolved between the game dev(s) and the Steam in Snap distro package maintainer(s).

Nothing extracted yet.