steam-runtime
steam-runtime copied to clipboard
Mount & Blade: Warband (48700) configuration menu doesn't work with runtime: libQt5Widgets.so.5 not found
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:
Log:
slr-app48700-t20210722T182510.log
Steps for reproducing this issue:
- Force game to run with SLR
- Click play on library, get prompt of config menu and play options
- Click Configure Mount&Blade:Warband option and notice how it doesn't work with SLR and notice how it works without SLR
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?
Warning: An unexpected error occurred while executing "/sbin/ldconfig -XNv", the exit status was 127
That also looks undesirable.
It doesn't work: Config menu doesn't appear
Those screenshots above were taken without SLR.
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
/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.
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.
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.
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.
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.
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.
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
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.
@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?
Done.