You are not logged in.
Pages: 1
I moved my pc to Arch several days ago. I decided to play Worms and installed it from steam with this fix, but I have error: "./Worms W.M.Dx64: error while loading shared libraries: libtheoraenc.so.1: cannot open shared object file: No such file or directory". So I tried `sudo ln -s /usr/lib/libtheoraenc.so /usr/lib/libtheoraenc.so.1` and `sudo ln -s /usr/lib/libtheoradec.so /usr/lib/libtheoradec.so.1`. But now I'm having another problem:
```
❯ ./Run.sh
./Worms W.M.Dx64: /usr/lib/libcurl-gnutls.so.4: no version information available (required by ./Worms W.M.Dx64)
./Worms W.M.Dx64: /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgnutls.so.30: version `GNUTLS_3_6_13' not found (required by /usr/lib/libcurl-gnutls.so.4)
./Worms W.M.Dx64: /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgnutls.so.30: version `GNUTLS_3_6_5' not found (required by /usr/lib/libcurl-gnutls.so.4)
./Worms W.M.Dx64: /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/lib/libicuuc.so.76)
```
So what can I do?
P.S. Sorry for my English
Don't push the horses!
Offline
So I tried `sudo ln -s /usr/lib/libtheoraenc.so /usr/lib/libtheoraenc.so.1` and `sudo ln -s /usr/lib/libtheoradec.so /usr/lib/libtheoradec.so.1`.
Library so-names change for a reason. symlinking different versions almost never works and can cause serious problems.
The script you link to seems to be an early version, you'll need to change more things.
https://wiki.archlinux.org/title/Steam/ … orms_W.M.D has a script that worked in february 2024.
Use that as starting point .
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
https://wiki.archlinux.org/title/Steam/ … orms_W.M.D has a script that worked in february 2024.
Use that as starting point .
Thanks, it's help run Worms. BUT, I tried deleting my symlinks, but I ran into my first problem, so I return symlinks and got black screen after logo. Terminal output:
❯ ./Run.sh
Setting breakpad minidump AppID = 327030
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198425786745 [API loaded no]
Don't push the horses!
Offline
The script creates a logfile at ~/wormswmd.log , please post its contents in code tags.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
The script creates a logfile at ~/wormswmd.log , please post its contents in code tags.
Hmmm now it's crashed.
Terminal output:
❯ ./Run.sh
Setting breakpad minidump AppID = 327030
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198425786745 [API loaded no]
corrupted size vs. prev_size in fastbins
./Run.sh: line 36: 122533 Aborted (core dumped) ./Worms\ W.M.Dx64 >> $LOGFILELogs:
GetCurrentDirectoryA
buffer /home/david/.local/share/Steam/steamapps/common/WormsWMD
GetCurrentDirectoryA
buffer /home/david/.local/share/Steam/steamapps/common/WormsWMD
GetCurrentDirectoryA
buffer /home/david/.local/share/Steam/steamapps/common/WormsWMDDon't push the horses!
Offline
I looked at the script and it directs the worms executable to use (many) libraries provided by steam instead of system libraries.
Please install lddtree.
Comment the last line of the Run.sh script and add these two lines
lddtree ./Worms\ W.M.Dx64
find -L "$STEAM_RUNTIME" -type f -name "libtheora*.so"Run the script and post the output.
Last edited by Lone_Wolf (2025-07-19 12:57:14)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
I looked at the script and it directs the worms executable to use (many) libraries provided by steam instead of system libraries.
Please install lddtree.
Comment the last line of the Run.sh script and add these two lines
lddtree ./Worms\ W.M.Dx64 find -L "$STEAM_RUNTIME" -type f -name "libtheora*.so"Run the script and post the output.
Do I need to delete symlinks on libtheora?
Don't push the horses!
Offline
Yes, that is a good idea.
The lddtree output should tell us what things are missing, the find output is to verify if steam has the right theora library or we have to provide it in another way (like an AUR package).
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Run the script and post the output.
It's all output:
./Worms W.M.Dx64 (interpreter => /lib64/ld-linux-x86-64.so.2)
libQtSolutions_PropertyBrowser-head.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQtSolutions_PropertyBrowser-head.so.1
libstdc++.so.6 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libstdc++.so.6
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1
libQt5Widgets.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5Widgets.so.5
libQt5Core.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5Core.so.5
libicui18n.so.56 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libicui18n.so.56
libicuuc.so.56 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libicuuc.so.56
libicudata.so.56 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libicudata.so.56
libgthread-2.0.so.0 => /usr/lib/libgthread-2.0.so.0
librt.so.1 => /usr/lib/librt.so.1
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0
libpcre2-8.so.0 => /usr/lib/libpcre2-8.so.0
libQt5Gui.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5Gui.so.5
libQt5OpenGL.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5OpenGL.so.5
libQt5X11Extras.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5X11Extras.so.5
libQt5DBus.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libQt5DBus.so.5
libdbus-1.so.3 => /usr/lib/libdbus-1.so.3
libsystemd.so.0 => /usr/lib/libsystemd.so.0
libcap.so.2 => /usr/lib/libcap.so.2
libX11.so.6 => /usr/lib/libX11.so.6
libxcb.so.1 => /usr/lib/libxcb.so.1
libXau.so.6 => /usr/lib/libXau.so.6
libXdmcp.so.6 => /usr/lib/libXdmcp.so.6
libGL.so.1 => /usr/lib/libGL.so.1
libGLdispatch.so.0 => /usr/lib/libGLdispatch.so.0
libGLX.so.0 => /usr/lib/libGLX.so.0
libz.so.1 => /usr/lib/libz.so.1
libSDL2-2.0.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libSDL2-2.0.so.0
libasound.so.2 => /usr/lib/libasound.so.2
libpulse.so.0 => /usr/lib/libpulse.so.0
libpulsecommon-17.0.so => /usr/lib/pulseaudio/libpulsecommon-17.0.so
libsndfile.so.1 => /usr/lib/libsndfile.so.1
libogg.so.0 => /usr/lib/libogg.so.0
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2
libFLAC.so.14 => /usr/lib/libFLAC.so.14
libopus.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libopus.so.0
libmpg123.so.0 => /usr/lib/libmpg123.so.0
libmp3lame.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libmp3lame.so.0
libvorbis.so.0 => /usr/lib/libvorbis.so.0
libasyncns.so.0 => /usr/lib/libasyncns.so.0
libsndio.so.6.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libsndio.so.6.1
libbsd.so.0 => /usr/lib/libbsd.so.0
libmd.so.0 => /usr/lib/libmd.so.0
libXext.so.6 => /usr/lib/libXext.so.6
libXcursor.so.1 => /usr/lib/libXcursor.so.1
libXrender.so.1 => /usr/lib/libXrender.so.1
libXfixes.so.3 => /usr/lib/libXfixes.so.3
libXinerama.so.1 => /usr/lib/libXinerama.so.1
libXi.so.6 => /usr/lib/libXi.so.6
libXrandr.so.2 => /usr/lib/libXrandr.so.2
libXss.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libXss.so.1
libXxf86vm.so.1 => /usr/lib/libXxf86vm.so.1
libwayland-egl.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libwayland-egl.so.1
libwayland-client.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libwayland-client.so.0
libffi.so.6 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libffi.so.6
libwayland-cursor.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libwayland-cursor.so.0
libxkbcommon.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libxkbcommon.so.0
libpthread.so.0 => /usr/lib/libpthread.so.0
libsteam_api.so => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libsteam_api.so
libcurl-gnutls.so.4 => /usr/lib/libcurl-gnutls.so.4
libnghttp2.so.14 => /usr/lib/libnghttp2.so.14
libidn2.so.0 => /usr/lib/libidn2.so.0
libunistring.so.5 => /usr/lib/libunistring.so.5
libssh2.so.1 => /usr/lib/libssh2.so.1
libssl.so.3 => /usr/lib/libssl.so.3
libcrypto.so.3 => /usr/lib/libcrypto.so.3
libpsl.so.5 => /usr/lib/libpsl.so.5
libnettle.so.8 => /usr/lib/libnettle.so.8
libgnutls.so.30 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgnutls.so.30
libp11-kit.so.0 => /usr/lib/libp11-kit.so.0
libffi.so.8 => /usr/lib/libffi.so.8
libidn.so.11 => /usr/lib/libidn.so.11
libtasn1.so.6 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libtasn1.so.6
libnettle.so.6 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libnettle.so.6
libhogweed.so.4 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libhogweed.so.4
libgmp.so.10 => /usr/lib/libgmp.so.10
libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2
libkrb5.so.3 => /usr/lib/libkrb5.so.3
libk5crypto.so.3 => /usr/lib/libk5crypto.so.3
libcom_err.so.2 => /usr/lib/libcom_err.so.2
libkrb5support.so.0 => /usr/lib/libkrb5support.so.0
libkeyutils.so.1 => /usr/lib/libkeyutils.so.1
libresolv.so.2 => /usr/lib/libresolv.so.2
libzstd.so.1 => /usr/lib/libzstd.so.1
libbrotlidec.so.1 => /usr/lib/libbrotlidec.so.1
libbrotlicommon.so.1 => /usr/lib/libbrotlicommon.so.1
libdl.so.2 => /usr/lib/libdl.so.2
libfmodex64-4.44.61.so => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libfmodex64-4.44.61.so
libfmodevent64-4.44.61.so => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libfmodevent64-4.44.61.so
libavcodec-ffmpeg.so.56 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libavcodec-ffmpeg.so.56
libswresample-ffmpeg.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libswresample-ffmpeg.so.1
libsoxr.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libsoxr.so.0
libgomp.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgomp.so.1
libva.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libva.so.1
libzvbi.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libzvbi.so.0
libpng12.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libpng12.so.0
libxvidcore.so.4 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libxvidcore.so.4
libx265.so.79 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libx265.so.79
libnuma.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libnuma.so.1
libx264.so.148 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libx264.so.148
libwebp.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libwebp.so.5
libwavpack.so.1 => /usr/lib/libwavpack.so.1
libvpx.so.3 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libvpx.so.3
libtwolame.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libtwolame.so.0
libtheoraenc.so.1 => None
libtheoradec.so.1 => None
libspeex.so.1 => /usr/lib/libspeex.so.1
libsnappy.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libsnappy.so.1
libshine.so.3 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libshine.so.3
libschroedinger-1.0.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libschroedinger-1.0.so.0
liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0
libopenjpeg.so.5 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libopenjpeg.so.5
libgsm.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgsm.so.1
libcrystalhd.so.3 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libcrystalhd.so.3
liblzma.so.5 => /usr/lib/liblzma.so.5
libavformat-ffmpeg.so.56 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libavformat-ffmpeg.so.56
libssh-gcrypt.so.4 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libssh-gcrypt.so.4
libgcrypt.so.20 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgcrypt.so.20
libgpg-error.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgpg-error.so.0
librtmp.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/librtmp.so.1
libmodplug.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libmodplug.so.1
libgme.so.0 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libgme.so.0
libbluray.so.1 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libbluray.so.1
libxml2.so.2 => /usr/lib/libxml2.so.2
libicuuc.so.76 => /usr/lib/libicuuc.so.76
libicudata.so.76 => /usr/lib/libicudata.so.76
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1
libexpat.so.1 => /usr/lib/libexpat.so.1
libfreetype.so.6 => /usr/lib/libfreetype.so.6
libpng16.so.16 => /usr/lib/libpng16.so.16
libharfbuzz.so.0 => /usr/lib/libharfbuzz.so.0
libfreetype.so.6 => !!! circular loop !!!
libgraphite2.so.3 => /usr/lib/libgraphite2.so.3
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0
libavutil-ffmpeg.so.54 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libavutil-ffmpeg.so.54
libswscale-ffmpeg.so.3 => /home/david/.local/share/Steam/steamapps/common/WormsWMD/lib/libswscale-ffmpeg.so.3
libm.so.6 => /usr/lib/libm.so.6
libc.so.6 => /usr/lib/libc.so.6
ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2Don't push the horses!
Offline
The good news is that you're only missing 2 librairies :
libtheoraenc.so.1 => None
libtheoradec.so.1 => NoneThe not-so-good-news is that they are older versions and not packaged anymore for archlinux .
Last version that has them was libtheora 1.1.1 .
Navigate to https://archive.archlinux.org/packages/l/libtheora/ , download the 1.1.1-6 tar.zst .
extract it to a folder foo under your $HOME .
Edit Run.sh and look for the line
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"add :$HOME/path-to-foo/usr/lib to it.
Comment the line starting with find, run the script and verify the lddtree output (post output if unsure).
In case the libs are found now, comment the lddtree line and uncomment the line that starts worms.
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
The good news is that you're only missing 2 librairies :
libtheoraenc.so.1 => None libtheoradec.so.1 => NoneThe not-so-good-news is that they are older versions and not packaged anymore for archlinux .
Last version that has them was libtheora 1.1.1 .Navigate to https://archive.archlinux.org/packages/l/libtheora/ , download the 1.1.1-6 tar.zst .
extract it to a folder foo under your $HOME .Edit Run.sh and look for the line
export LD_LIBRARY_PATH="/usr/lib:/usr/local/lib"add :$HOME/path-to-foo/usr/lib to it.
Comment the line starting with find, run the script and verify the lddtree output (post output if unsure).
In case the libs are found now, comment the lddtree line and uncomment the line that starts worms.
Thank u! Now it's starting and playable, but it have sound only in intro, after it doesn't. And cyclic terminal error:
GetCurrentDirectoryA
buffer /home/david/.local/share/Steam/steamapps/common/WormsWMD
Setting breakpad minidump AppID = 327030
Steam_SetMinidumpSteamID: Caching Steam ID: 76561198425786745 [API loaded no]
ALSA lib pcm_dmix.c:1000:(snd_pcm_dmix_open) unable to open slave
process 41801: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.
This is normally a bug in some application using the D-Bus library.
process 41801: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.
This is normally a bug in some application using the D-Bus library.
process 41801: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.
This is normally a bug in some application using the D-Bus library.
process 41801: arguments to dbus_connection_unref() were incorrect, assertion "connection->generation == _dbus_current_generation" failed in file ../../dbus/dbus-connection.c line 2794.Don't push the horses!
Offline
The right libtheora is present in Steam Linux Runtime, you shouldn't need to manually download it:
$ find . | grep 'libtheora(enc|dec)\.so\.1$'
./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1
./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/x86_64-linux-gnu/libtheoradec.so.1
./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/i386-linux-gnu/libtheoraenc.so.1
./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/i386-linux-gnu/libtheoradec.so.1
./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1
./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/x86_64-linux-gnu/libtheoradec.so.1
./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/i386-linux-gnu/libtheoraenc.so.1
./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/i386-linux-gnu/libtheoradec.so.1
./ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1
./ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libtheoradec.so.1
./ubuntu12_32/steam-runtime.old/usr/lib/i386-linux-gnu/libtheoraenc.so.1
./ubuntu12_32/steam-runtime.old/usr/lib/i386-linux-gnu/libtheoradec.so.1
./ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1
./ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libtheoradec.so.1
./ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libtheoraenc.so.1
./ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libtheoradec.so.1It should be enough to add the following to Run.sh (in the LD_PRELOAD section):
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libtheoradec.so.1 \
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 \However, if you want a cleaner setup, I suggest dropping Run.sh and instead running the game through Steam using the "Play Worms W.M.D" option.
Background: when using "Play Worms W.M.D (Run.sh)" (or when launching from the terminal), the game binary is launched directly, without steam-launch-wrapper, so Steam runtime's libraries are not loaded.
The Run.sh version from the wiki attempts to fix this by manually LD_PRELOAD-ing the needed libraries, but imo it's more robust to just let Steam do its job; as we can see, system library updates (like libtheora from 1.1.1 to 1.2.0) can break the script, and it will require regular updates to keep working.
Over the years of battling with running this game on Linux, I have come up with the following solution:
1. Add a script, e.g. "myrun.sh", to the game directory (and remember to make it executable):
#!/bin/bash
_libraries=(
lib/libQt5*.so.5
/usr/lib/libwavpack.so.1
"$STEAM_RUNTIME"/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3
)
export LD_PRELOAD="${_libraries[@]}"
exec "$@"2. Add the following to the game's Launch Options in Steam:
./myrun.sh %command%3. Run the game through Steam using "Play Worms W.M.D" (not "Play Worms W.M.D (Run.sh)").
If there are any issues, you can replace the last line of the script with
exec "$@" >~/worms-stdout.log 2>~/worms-stderr.logand then look at the log files to see what the problem is.
(You can also add the following at the top of the script:
echo "$@" >~/worms-steam-cmd.logto see the Steam Runtime magic in action.)
Edit:
Just realized that some time ago multiplayer broke, and now it requires the following in LD_PRELOAD:
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11
"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0which largely defeats the advantage of being cleaner than manually preloading all libraries…
Last edited by stanczew (2025-07-20 19:53:35)
Offline
The right libtheora is present in Steam Linux Runtime, you shouldn't need to manually download it:
$ find . | grep 'libtheora(enc|dec)\.so\.1$' ./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 ./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/x86_64-linux-gnu/libtheoradec.so.1 ./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/i386-linux-gnu/libtheoraenc.so.1 ./steamapps/common/SteamLinuxRuntime_sniper/var/tmp-Y6UV92/usr/lib/i386-linux-gnu/libtheoradec.so.1 ./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 ./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/x86_64-linux-gnu/libtheoradec.so.1 ./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/i386-linux-gnu/libtheoraenc.so.1 ./steamapps/common/SteamLinuxRuntime_soldier/var/tmp-9J2S92/usr/lib/i386-linux-gnu/libtheoradec.so.1 ./ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 ./ubuntu12_32/steam-runtime.old/usr/lib/x86_64-linux-gnu/libtheoradec.so.1 ./ubuntu12_32/steam-runtime.old/usr/lib/i386-linux-gnu/libtheoraenc.so.1 ./ubuntu12_32/steam-runtime.old/usr/lib/i386-linux-gnu/libtheoradec.so.1 ./ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 ./ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libtheoradec.so.1 ./ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libtheoraenc.so.1 ./ubuntu12_32/steam-runtime/usr/lib/i386-linux-gnu/libtheoradec.so.1It should be enough to add the following to Run.sh (in the LD_PRELOAD section):
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libtheoradec.so.1 \ "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libtheoraenc.so.1 \However, if you want a cleaner setup, I suggest dropping Run.sh and instead running the game through Steam using the "Play Worms W.M.D" option.
Background: when using "Play Worms W.M.D (Run.sh)" (or when launching from the terminal), the game binary is launched directly, without steam-launch-wrapper, so Steam runtime's libraries are not loaded.
The Run.sh version from the wiki attempts to fix this by manually LD_PRELOAD-ing the needed libraries, but imo it's more robust to just let Steam do its job; as we can see, system library updates (like libtheora from 1.1.1 to 1.2.0) can break the script, and it will require regular updates to keep working.Over the years of battling with running this game on Linux, I have come up with the following solution:
1. Add a script, e.g. "myrun.sh", to the game directory (and remember to make it executable):
#!/bin/bash _libraries=( lib/libQt5*.so.5 /usr/lib/libwavpack.so.1 "$STEAM_RUNTIME"/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3 ) export LD_PRELOAD="${_libraries[@]}" exec "$@"2. Add the following to the game's Launch Options in Steam:
./myrun.sh %command%3. Run the game through Steam using "Play Worms W.M.D" (not "Play Worms W.M.D (Run.sh)").
If there are any issues, you can replace the last line of the script with
exec "$@" >~/worms-stdout.log 2>~/worms-stderr.logand then look at the log files to see what the problem is.
(You can also add the following at the top of the script:
echo "$@" >~/worms-steam-cmd.logto see the Steam Runtime magic in action.)
Edit:
Just realized that some time ago multiplayer broke, and now it requires the following in LD_PRELOAD:"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4 "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11 "$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11 "$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0which largely defeats the advantage of being cleaner than manually preloading all libraries…
Thank u! It's working correctly. Final script:
#!/bin/bash
_libraries=(
lib/libQt5*.so.5
/usr/lib/libwavpack.so.1
"$STEAM_RUNTIME"/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/libidn.so.11
"$STEAM_RUNTIME"/lib/x86_64-linux-gnu/libgcrypt.so.11
"$STEAM_RUNTIME"/usr/lib/x86_64-linux-gnu/librtmp.so.0
)
export LD_PRELOAD="${_libraries[@]}"
exec "$@" > ~/worms-stdout.log 2> ~/worms-stderr.logYou can update archwiki
Don't push the horses!
Offline
You can update archwiki
This worked for me thanks. And I updated the wiki.
Allan-Volunteer on the (topic being discussed) mailn lists. You never get the people who matters attention on the forums.
jasonwryan-Installing Arch is a measure of your literacy. Maintaining Arch is a measure of your diligence. Contributing to Arch is a measure of your competence.
Griemak-Bleeding edge, not bleeding flat. Edge denotes falls will occur from time to time. Bring your own parachute.
Offline
Pages: 1