anyc / steam-overlay

Gentoo overlay for Valve's Steam client and Steam-based games
GNU General Public License v2.0
202 stars 44 forks source link

esteam breaks Tomb Raider #308

Open bell07 opened 2 years ago

bell07 commented 2 years ago
# esteam -v
 * Scanning /home/user/.local/share/Steam ...
 * Deleted: Tomb Raider/lib/i686/libssl.so.1.0.0
 * Deleted: Tomb Raider/lib/i686/libcrypto.so.1.0.0
 * Deleted: Tomb Raider/lib/i686/libcurl.so.4

After this run the game does not start anymore.

Console output ``` GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to ProcessingInstallScript with "" GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to SynchronizingCloud with "" GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to SynchronizingControllerConfig with "" GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to SiteLicenseSeatCheckout with "" GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to CreatingProcess with "" GameAction [AppID 203160, ActionID 2] : LaunchApp waiting for user response to CreatingProcess "" GameAction [AppID 203160, ActionID 2] : LaunchApp continues with user response "CreatingProcess" /bin/sh\0-c\0/home/user/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=203160 -- '/home/user/.local/share/Steam/steamapps/common/Tomb Raider/TombRaider.sh'\0 Game process added : AppID 203160 "/home/user/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=203160 -- '/home/user/.local/share/Steam/steamapps/common/Tomb Raider/TombRaider.sh'", ProcID 20813, IP 0.0.0.0:0 chdir /home/user/.local/share/Steam/steamapps/common/Tomb Raider ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to WaitingGameWindow with "" GameAction [AppID 203160, ActionID 2] : LaunchApp changed task to Completed with "" ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20815 != 20814, skipping destruction (fork without exec?) pid 20816 != 20814, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20820 != 20814, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20821 != 20814, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20825 != 20814, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20831 != 20827, skipping destruction (fork without exec?) pid 20834 != 20827, skipping destruction (fork without exec?) pid 20837 != 20827, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20836 != 20827, skipping destruction (fork without exec?) pid 20840 != 20827, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20839 != 20827, skipping destruction (fork without exec?) pid 20843 != 20827, skipping destruction (fork without exec?) ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored. pid 20842 != 20827, skipping destruction (fork without exec?) ThreadGetProcessExitCode: no such process 20844 ThreadGetProcessExitCode: no such process 20841 ThreadGetProcessExitCode: no such process 20838 ThreadGetProcessExitCode: no such process 20835 ThreadGetProcessExitCode: no such process 20833 ThreadGetProcessExitCode: no such process 20832 ThreadGetProcessExitCode: no such process 20830 ThreadGetProcessExitCode: no such process 20829 ThreadGetProcessExitCode: no such process 20827 ThreadGetProcessExitCode: no such process 20824 ThreadGetProcessExitCode: no such process 20823 ThreadGetProcessExitCode: no such process 20822 ThreadGetProcessExitCode: no such process 20817 pid 20826 != 20814, skipping destruction (fork without exec?) ERROR: ld.so: object 'libminimum_thread_stack_size_wrapper.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored. ERROR: ld.so: object '/home/user/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored. /home/user/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libcurl.so.4: version `CURL_OPENSSL_4' not found (required by /home/user/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider) /home/user/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libdbus-1.so.3: no version information available (required by /usr/lib/libgconf-2.so.4) /home/user/.local/share/Steam/steamapps/common/Tomb Raider/bin/TombRaider: /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libdbus-1.so.3: no version information available (required by /usr/lib/libdbus-glib-1.so.2) Game process removed: AppID 203160 "/home/user/.local/share/Steam/ubuntu12_32/reaper SteamLaunch AppId=203160 -- '/home/user/.local/share/Steam/steamapps/common/Tomb Raider/TombRaider.sh'", ProcID 20813 ThreadGetProcessExitCode: no such process 20828 ThreadGetProcessExitCode: no such process 20814 Uploaded AppInterfaceStats to Steam ```

Why replace game files by ubuntu files? If I look into ldd /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libcurl.so.4 libidn.so.11 and librtmp.so.0 is required, but /usr/lib/libidn.so.12 and /usr/lib/librtmp.so.1 are available in system.

chewi commented 2 years ago

It's been a few years since I ran Tomb Raider 2013. Unfortunately I don't have it installed any more, but this did work at the time. Either pinned libraries weren't a thing back then or you're still running with the Steam runtime enabled and that's causing weird issues. I've never really tried combining the runtime with esteam so I'm not sure whether it's a good idea. Let's start by trying Steam with STEAM_RUNTIME=0 steam.

bell07 commented 2 years ago

then I get error message at start

  1. "You are missing the following 32-bit libraries, and Steam may not run: libpopewire-0.3.so.0"
  2. "Fatal Error: Failed to load steamui.so"

Seems there is any additional missed dependency...

chewi commented 2 years ago

Oh right, sorry, you'll need to rebuild steam-client-meta with USE=-steamruntime to pull in the various dependencies.

If you didn't have any problems with Steam before installing esteam then you may prefer to just uninstall it and fix Tomb Raider by entering the games Properties, choosing Local Files, and then Verify integrity of game files. I had originally planned to make esteam a mandatory dependency as I thought it might help even when the runtime is enabled, but I've changed my mind. It's not mandatory any more.

bell07 commented 2 years ago

Maybe esteam should be able to override steamruntime libs by system libs, like done for games. Second missed feature is to blacklist games in case of issues. I try to rebuild now without steamruntime... Yes, without the esteam optimizations the game does work as expected with steamruntime.

bell07 commented 2 years ago

I cannot disable steamruntume because then networkmanager is pushed into system. I use net-misc/connman for network management.

Any chance to get esteam working with steamruntime?

chewi commented 2 years ago

esteam has a whitelist and Tomb Raider is in that list. Otherwise it just tries to satisfy any missing dependencies without deleting anything.

I don't use NetworkManager either. You don't actually need to use it, it's only there to satisfy a library dependency. The same thing happens when you're using the runtime.

I wrote esteam because I had some compatibility issues with the runtime and sometimes wanted newer/optimised/customised libraries. If you're using the runtime, then you don't have to use esteam because the runtime should cover all the libraries you need, at least in theory. Why do you think you need esteam?

bell07 commented 2 years ago

Before I opened this issue i did not know what steamruntime is. Have just a player point of view. Was tried esteam because the steam-games-meta was masked with the hint. Now I know I did not needed steam-games-meta too. Of course I try to get some FPS more out from the game if possible. My assumption is to get it with system libraries optimized for my system...

Maybe the esteam package should block the steam-client-meta[steamruntime] or print a hint about the incompatibility to steamruntume?

Or replace some steamruntime libraries if similar files are installed in system. For testing reason I kept steamruntime, applied esteam and deleted the affected /home/user/.local/share/Steam/ubuntu12_32/steam-runtime/pinned_libs_32/libcurl.so.4. Now the game starts.