Hello @fixgoats, glad to hear you found a working configuration. At first glance, this doesn't really make any sense unless the Valve-provided Steam package pulled in additional dependencies. Would you happen to recall if it did?
Please copy your system information from Steam (Steam -> Help -> System Information) and put it in a gist, then include a link to the gist in this issue report. This is a bit of a blind guess, but I suspect that you're an AMD graphics user, and have used an AMDGPU-Pro driver installer intended for an LTS release of Ubuntu, and that installer has put libraries into /opt that are too old for other dependencies on your system.
Since the distro-modified Steam package is affected, and the Valve provided Steam package is not, then this issue should be reported to your distro's package maintainers for their Steam package.
Looking at this from another perspective, it looks like wl_proxy_marshal_flags is provided by libwayland-client 1.20.0 and newer. Ubuntu 20.04 and newer should provide it in the libwayland-client0 system package. The question here is why are there system dependencies that need this outside of Steam, but it wasn't being provided as part of a normal package dependency tree.
Does libwayland-client.so.0 exist anywhere in an irregular location and what package put it there?
libwayland-client.so.0 was installed here: /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.21.0 Here's a gist with the system information. What's also strange is that I'm not even using Wayland. I also have errors where it can't connect to the X session manager. Both apt and the .deb package pulled in a heap of dependencies and I don't know if the .deb package pulled in any that apt didn't.
Is the gist from the official Steam .deb or is it the one from the apt?
One interesting part there is that vulkan seems to be broken in the host system for both i386 and x86_64:
"graphics-details" : {
"x11/vulkan" : {
"messages" : [
"timeout: the monitored command dumped core"
],
"renderer" : null,
"version" : null,
"issues" : [
"cannot-load",
"cannot-draw"
],
"exit-status" : -1,
"terminating-signal" : 11,
"terminating-signal-name" : "Segmentation fault",
"devices" : [
]
},
Additionally, as @kisak-valve mentioned, the symbol wl_proxy_marshal_flags should indeed be provided by the libwayland-client.so.0.21.0 shipped in Ubuntu 22.10.
You can test it with:
$ objdump -T -x /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.21.0 | grep wl_proxy_marshal_flags
If the above command successfully highlights that the symbol is available, this could probably mean that at runtime a different libwayland-client.so.0 might be loaded.
Both apt and the .deb package pulled in a heap of dependencies and I don't know if the .deb package pulled in any that apt didn't
You should be able to find out in /var/log/apt.
I checked /var/log/apt and I think these are the relevant entries, where package-install would be the Valve provided .deb. Running
objdump -T -x /usr/lib/x86_64-linux-gnu/libwayland-client.so.0.21.0 | grep wl_proxy_marshal_flags gives 0000000000009d30 g DF .text 0000000000000119 Base wl_proxy_marshal_flags
@fixgoats can you please run echo $LD_LIBRARY_PATH and then strings -n5 /etc/ld.so.cache | grep libwayland-client and post their output?
This should give us a hint at what is going wrong with the dynamic linker.
echo $LD_LIBRARY_PATH outputs
/snap/alacritty/65/usr/lib/x86_64-linux-gnu:/snap/alacritty/65/lib/x86_64-linux-gnu:/snap/alacritty/65/usr/lib/x86_64-linux-gnu/dri
strings -n5 /etc/ld.so.cache | grep libwayland-client outputs
/lib/i386-linux-gnu/libwayland-client.so.0
/lib/x86_64-linux-gnu/libwayland-client.so.0
Are you running Steam from an Alacritty terminal that you installed as a Snap app?
Do any of the directories starting with /snap/alacritty/65/ listed in $LD_LIBRARY_PATH contain a libwayland-client.so.0?
Yes, I was running it from Alacritty which was installed as a Snap app. There's a libwayland-client.so.0 in /snap/alacritty/65/usr/lib/x86_64-linux-gnu/
It sounds as though running Steam from that version of Alacritty results in Steam being given an older version of libwayland-client.so.0 than the one from the operating system, but also seeing a newer version of libdecor (among others) which requires a newer version of libwayland-client.so.0 than the one provided by the Alacritty Snap app.
Sorry, that can't work, and sounds like a bug (or design flaw) in how Alacritty was packaged as a Snap app.
How much of this issue (if any) remains reproducible if you run Steam in an ordinary non-Snap context, for example from the operating system's gnome-terminal?
Works fine with gnome-terminal. Also, when I tried to remove the .deb steam package with Ubuntu Software, which I used to install it, it didn't do anything. I had to use apt remove steam-launcher.
Works fine with
gnome-terminal.
Then this is a bug in the Snap packaging of Alacritty rather than a bug in Steam: the Snap-packaged Alacritty is running third-party software like Steam in an environment where it can't necessarily be expected to work. In effect, it's downgrading libwayland-client for all programs that are run inside that terminal.
@kisak-valve, I think this should be closed as "not our bug".
What's also strange is that I'm not even using Wayland
The way Linux shared libraries work means that you need all of the library dependencies to be present and at suitable versions, even if they are not in active use. In this case, Steam picks up an indirect dependency on libwayland-client via higher-level libraries like SDL, which have support for native Wayland (even if you're not using that right now).
Also, when I tried to remove the .deb
steampackage with Ubuntu Software, which I used to install it, it didn't do anything. I had to useapt remove steam-launcher.
It's provided as steam.deb for historical reasons, but the internal name that the packaging system knows it by is steam-launcher. The name needed to change during its migration from 32-bit to 64-bit, otherwise it wouldn't have been upgraded correctly.
Nothing extracted yet.
Your system information
Please describe your issue in as much detail as possible:
I tried installing Steam through apt. When I ran it on a terminal a new window did open but otherwise nothing, and this was the terminal log:
I also tried installing
steam-installerthrough snap store and the same thing happened. Personally I managed to solve this by getting the .deb file from the Steam homepage, but I would expect the package manager's package to work.I also tried using the early access snap, and that managed to launch Steam, but when I tried to launch Europa Universalis IV the game just failed to launch. But then that's a different issue.
Steps for reproducing this issue: