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
I don't know if anyone is going to see this but using the myrun does nothing for me, no output in terminal, nothing, and I suspect its because I'm missing libidn.so.11 BUT I cant find this anywhere and the archive only has the version libidn-1.35 when apparently that so is only in the version -1.34 and below...
does anyone have any way to get this so?
Last edited by wondr (2026-03-21 17:39:10)
Offline
It sounds like you're trying to run the script directly from the terminal; you're supposed to put its invocation into the game's Launch Options in the Steam GUI (so that the `exec "$@"` line is replaced by Steam's command to launch the game, but with additional libraries preloaded by the script):
I just tested it, and I can still successfully launch the game this way.
Offline
sorry i forgot to specify, it doesnt work in steam either so i tried to run via terminal and nothing, would u like the terminal error log for run.sh and maybe that can provide some insight?
Offline
would u like the terminal error log for run.sh and maybe that can provide some insight?
Not really, Run.sh is irrelevant to this approach.
i tried to run via terminal and nothing
That's expected, it needs to be launched through Steam.
it doesnt work in steam either
There should be a "worms-stderr.log" file in your home directory. Post it, it should contain useful information.
If the file is not there, then you didn't set the script up correctly; post the outputs of the following commands:
$ /bin/ls -l ~/.steam/root/steamapps/common/WormsWMD
$ /bin/cat ~/.steam/root/steamapps/common/WormsWMD/myrun.shOffline
here is the output of th log file u said:
ERROR: ld.so: object 'lib/libQt5Core.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'lib/libQt5DBus.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'lib/libQt5Gui.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'lib/libQt5OpenGL.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'lib/libQt5Widgets.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'lib/libQt5X11Extras.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object 'lib/libQt5XcbQpa.so.5' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/usr/lib/libwavpack.so.1' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libcurl-gnutls.so.4' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/libidn.so.11' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/lib/x86_64-linux-gnu/libgcrypt.so.11' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
ERROR: ld.so: object '/home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/usr/lib/x86_64-linux-gnu/librtmp.so.0' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS64): ignored.
/home/wondr/.local/share/Steam/steamapps/common/WormsWMD/Worms W.M.Dx64: /home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /lib/x86_64-linux-gnu/libpulse.so.0)
/home/wondr/.local/share/Steam/steamapps/common/WormsWMD/Worms W.M.Dx64: /home/wondr/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libdbus-1.so.3: no version information available (required by /usr/lib/x86_64-linux-gnu/pulseaudio/libpulsecommon-12.2.so)
This application failed to start because it could not find or load the Qt platform plugin "wayland;xcb"
in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb.
Reinstalling the application may fix this problem.
to be safe heres the terminal outputs of the command u said too:
/bin/ls
total 256700
drwxr-xr-x 4 wondr wondr 4096 Mar 21 03:26 Audio
-rwxr-xr-x 1 wondr wondr 20 Mar 21 03:26 BuildVersionData.txt
-rwxr-xr-x 1 wondr wondr 3984 Mar 21 03:26 ChromaAppInfo.xml
drwxr-xr-x 8 wondr wondr 4096 Mar 21 03:26 CommonData
drwxr-xr-x 5 wondr wondr 4096 Mar 21 03:26 DataLinux
-rwxr-xr-x 1 wondr wondr 36 Mar 20 07:24 Default.cfg
drwxr-xr-x 3 wondr wondr 4096 Mar 20 07:24 DLC
drwxr-xr-x 2 wondr wondr 4096 Mar 21 03:26 lib
-rwxr-xr-x 1 wondr wondr 459 Mar 21 17:30 myrun.sh
drwxr-xr-x 2 wondr wondr 4096 Mar 21 03:26 platforms
-rwxr-xr-x 1 wondr wondr 1461 Mar 21 17:26 Run.sh
-rwxr-xr-x 1 wondr wondr 6 Mar 21 03:26 steam_appid.txt
drwxr-xr-x 3 wondr wondr 4096 Mar 20 07:24 uidata
drwxr-xr-x 2 wondr wondr 4096 Mar 21 03:26 wads
-rwxr-xr-x 1 wondr wondr 569 Mar 21 03:26 WorldSystemPathsP4.txt
-rwxr-xr-x 1 wondr wondr 543 Mar 21 03:26 WorldSystemPaths.txt
-rwxr-xr-x 1 wondr wondr 262783624 Mar 21 03:26 'Worms W.M.Dx64'
drwxr-xr-x 2 wondr wondr 4096 Mar 21 03:26 xcbglintegrations
/bin/cat
#!/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.log
ps sorry if im overly nooby this is my first time dealing with this stuff
Last edited by wondr (2026-03-22 16:56:23)
Offline
ps sorry if im overly nooby this is my first time dealing with this stuff
No worries, everything is fine.
Maybe just one thing: when you post terminal output, wrap id in[code]tag for readability.
The actual error is here:
This application failed to start because it could not find or load the Qt platform plugin "wayland;xcb"
in "".
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb.
Reinstalling the application may fix this problem.I guess you have a "QT_QPA_PLATFORM=wayland;xcb" set for Qt 6 used by some other program, and since Qt 5 bundled by the game doesn't support it, it errors out.
Try adding "unset QT_QPA_PLATFORM" before the "exec" call.
Offline
thank you it worked
however my mouse is a lil buggy in the game, is that a known thing? its like switching for a frame to my regular mouse everyother frame
Offline
I have the same mouse cursor issue. I suspect it might be Xwayland related, but I don't have a pure X setup to check it.
Offline
good to know thank you ![]()
Offline
Pages: 1