steam-runtime icon indicating copy to clipboard operation
steam-runtime copied to clipboard

Mount & Blade: Warband (48700) configuration menu doesn't work with runtime: libQt5Widgets.so.5 not found

Open Leopard1907 opened this issue 3 years ago • 16 comments

Your system information

  • Steam Runtime Version: steam-runtime_0.20210630.0

  • Distribution : Linux Mint 20.2 ( Ubuntu 20.04 based)

  • Link to your full system information (Help -> System Information) in a Gist: https://gist.github.com/Leopard1907/02d1d8ac4a83b4743033cac28dec883f

  • Have you checked for system updates?: Yes

  • What compatibility tool are you using?: Steam Linux Runtime

  • If you are using Steam Linux Runtime for native Linux games: VERSIONS.txt

  • If you are using Steam Linux Runtime, or Proton 5.13 or newer: VERSIONS.txt

Description:

When running this game with SLR , configuration menu option doesn't work. It works without SLR.

Screenshots of what is a config menu:

Ekran Görüntüsü - 2021-07-23 13-41-20 Ekran Görüntüsü - 2021-07-23 13-41-57

Log:

slr-app48700-t20210722T182510.log

Steps for reproducing this issue:

  1. Force game to run with SLR
  2. Click play on library, get prompt of config menu and play options
  3. Click Configure Mount&Blade:Warband option and notice how it doesn't work with SLR and notice how it works without SLR

Leopard1907 avatar Jul 23 '21 10:07 Leopard1907

grep: symbol lookup error: grep: undefined symbol: pcre_jit_stack_alloc

This looks bad, but I don't know whether it's the root cause.

notice how it doesn't work

Do you mean "no window appears" or "an error message is logged" or what?

smcv avatar Jul 23 '21 12:07 smcv

Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127

That also looks undesirable.

smcv avatar Jul 23 '21 12:07 smcv

It doesn't work: Config menu doesn't appear

Those screenshots above were taken without SLR.

Leopard1907 avatar Jul 23 '21 12:07 Leopard1907

I can reproduce this on a Debian 11 test system, but my log doesn't match yours.

To reproduce

  • Install M&BW
  • Configure to use SLR (I used today's client_beta, version 0.20210723.18).
  • Launch
  • Select "Play Mount & Blade: Warband"
    • it seems to work fine
  • Exit
  • Launch again
  • Select "Configure Mount&Blade: Warband (choose mod...)"

Expected result

Configuration window appears

Actual result

No configuration window. I get these messages (I'm using STEAM_LINUX_RUNTIME_LOG_VERBOSE=1, you will probably only get the last one):

pid 198129 != 198123, skipping destruction (fork without exec?)
/home/desktop/SteamLibrary/steamapps/common/SteamLinuxRuntime/scout-on-soldier-entry-point-v2[198123]: Command to run: /home/desktop/SteamLibrary/steamapps/common/MountBlade\ Warband/mbw_config.sh 
/home/desktop/SteamLibrary/steamapps/common/SteamLinuxRuntime/scout-on-soldier-entry-point-v2[198123]: Using default scout runtime /home/desktop/.steam/debian-installation/ubuntu12_32/steam-runtime
pid 198131 != 198123, skipping destruction (fork without exec?)
/home/desktop/SteamLibrary/steamapps/common/SteamLinuxRuntime/scout-on-soldier-entry-point-v2[198123]: scout runtime version 'steam-runtime_0.20210630.0'
pid 198147 != 198123, skipping destruction (fork without exec?)
/home/desktop/SteamLibrary/steamapps/common/SteamLinuxRuntime/scout-on-soldier-entry-point-v2[198123]: Running: /home/desktop/SteamLibrary/steamapps/common/SteamLinuxRuntime/var/steam-runtime/run.sh env LD_PRELOAD=/tmp/pressure-vessel-libs-M5PL60/\$\{PLATFORM\}/gameoverlayrenderer.so /home/desktop/SteamLibrary/steamapps/common/MountBlade\ Warband/mbw_config.sh 
/home/desktop/SteamLibrary/steamapps/common/MountBlade Warband/mbw_config_linux: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

smcv avatar Jul 23 '21 13:07 smcv

/home/desktop/SteamLibrary/steamapps/common/MountBlade Warband/mbw_config_linux: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

This is a game bug. Qt 5 is not part of the Steam Runtime, so Steam games cannot assume that it will always be installed.

smcv avatar Jul 23 '21 13:07 smcv

I also notice that the mbw_config.sh script overwrites LD_LIBRARY_PATH:

PROGRAM_DIRECTORY="`dirname "$0"`"
export LD_LIBRARY_PATH="$PROGRAM_DIRECTORY"

This is a game bug: when run in the container runtime, clearing LD_LIBRARY_PATH breaks the way the runtime works, and when run outside the container runtime, it "escapes" from the Steam Runtime provided by Steam. Games should prepend (or maybe append) their library directory, more like this:

PROGRAM_DIRECTORY="`dirname "$0"`"
export LD_LIBRARY_PATH="$PROGRAM_DIRECTORY${LD_LIBRARY_PATH:+":$LD_LIBRARY_PATH"}"

We might be able to work around this in a future version of Steam Linux Runtime, but it's not entirely straightforward. #224 and #268 involve a similar problem.

smcv avatar Jul 23 '21 13:07 smcv

18:25:11.005839: _v2-entry-point[10201]: argv: /home/asus/.local/share/Steam/steamapps/common/SteamLinuxRuntime/scout-on-soldier-entry-point-v2 -- /home/asus/.local/share/Steam/steamapps/common/MountBlade\ Warband/mb_warband_linux

This log seems to be from running the actual game, not the configuration tool, so it's not surprising that it doesn't contain the error message from the configuration tool.

smcv avatar Jul 23 '21 13:07 smcv

Hmm, you might be right. But i don't think my logs has any use anymore since you were able to repro and diagnose it.

Leopard1907 avatar Jul 23 '21 13:07 Leopard1907

Not urgent, but it would be useful if you could try launching the configuration tool under SLR again, and confirm whether you see this:

.../steamapps/common/MountBlade Warband/mbw_config_linux: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

If you have logging enabled, it would be in your log. If not, it would be wherever Steam's stderr normally goes (most likely the terminal you ran it from, or the systemd Journal).

If you see that error message, then I think we can be confident that you are seeing the same failure mode that I am.

If not, then you might be experiencing a different failure mode that needs further investigation.

smcv avatar Jul 23 '21 13:07 smcv

I also notice that the mbw_config.sh script overwrites LD_LIBRARY_PATH

I was wondering why I didn't get a different error message as a result of this; but the answer is that it doesn't get far enough to fail to find libc.so.6, because it fails to find libQt5Widgets.so.5 first, and crashes out. So, yes, there are two orthogonal reasons why this config tool doesn't work in the container runtime, and either of them on its own would be enough to prevent it from working.

smcv avatar Jul 23 '21 13:07 smcv

Fresh log, from Configuration Tool.

slr-app48700-t20210725T124303.log

/home/asus/.local/share/Steam/steamapps/common/MountBlade Warband/mbw_config_linux: error while loading shared libraries: libQt5Widgets.so.5: cannot open shared object file: No such file or directory

Leopard1907 avatar Jul 25 '21 09:07 Leopard1907

Thanks, that's consistent with my findings.

There isn't much point in seriously looking at this until the container runtime can cope with games that overwrite LD_LIBRARY_PATH (similar to #224 and #268).

Even after that, this is not going to work unless we add Qt 5 to the soldier runtime, which would make it noticeably larger (an order-of-magnitude guess from looking at the Debian packages is 28M); that's probably not something that we want to do unless there are several games making the same assumption.

smcv avatar Jul 26 '21 11:07 smcv

@Leopard1907 or @kisak-valve, please could you retitle this to "Mount & Blade: Warband (48700) configuration menu doesn't work with runtime: libQt5Widgets.so.5 not found" to reflect the main thing that's wrong here?

smcv avatar Aug 09 '21 18:08 smcv

Done.

Leopard1907 avatar Aug 09 '21 18:08 Leopard1907