ValveSoftware / Source-1-Games

Source 1 based games such as TF2 and Counter-Strike: Source
634 stars 74 forks source link

[TF2] [x64_test] tf_linux64: Required GLibc version (2.38) may be too recent (Steam Runtime Sniper 2.31). #5491

Closed ChampionCynthia closed 5 months ago

ChampionCynthia commented 7 months ago

Hello,

When starting x64 TF2 on Kubuntu 22.04 LTS, the following error happens:

/home/[REDACTED]/.steam/debian-installation/steamapps/common/Team Fortress 2/tf_linux64: /usr/lib/pressure-vessel/overrides/lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /home/[REDACTED]/.steam/debian-installation/steamapps/common/Team Fortress 2/tf_linux64)

The new TF2 executable requires GLibC 2.38, which doesn't match the Steam Runtime 3.0 "Sniper" configuration of Debian 11 (according to the docs that is). Debian 11 has libc6 2.31, so the Sniper Runtime most likely does as well.

The Sniper README states:

If the library might become part of the dependency stack for graphics drivers (for example glibc, zlib, libelf, libgcc, libstdc++), then we can still can backport invididual bug-fixes and features without backporting an entire new upstream version, but Steam and games cannot rely on having those bug-fixes and features at runtime, because our library might have been overridden by a newer upstream version from the host system.

So, from my understanding, the Steam Runtime Sniper guarantees a minimum version of 2.31 for GLibc (with possible backport fixes by Valve), but if the user has a more recent stack (eg. Ubuntu 22.04's GLibc 2.35 or Arch Linux's 2.39), it will use these more recent versions from the system instead.

Thus, when starting the game on a machine running very recent packages (Arch Linux, Ubuntu 23.10), the game will run fine because the Steam Runtime will use the system's 2.38+ GLibc. However, on older distributions (e.g. Debian (even sid!), Ubuntu 23.04 and earlier, etc.), GLibC may be pre-2.38 and this will cause the game to not start.

The GLibC requirement should be lowered to 2.31 for maximum compatibility with the Steam Runtime 3.0 "Sniper".

EDIT: This does not seem to affect the dedicated server, which appears to reference the very ancient glibc 2.2.5.

Cheers.

SetOfAllSets commented 7 months ago

+1, I'm on debian stable and can't launch the 64-bit beta. I might try on sid and report back. EDIT: nevermind, it appears sid is on 2.38, just barely off EDIT 2: I am finishing setting up a gentoo install to see if I can reproduce the bug there, probably not because of the newer glibc version.

Freakmenn commented 7 months ago

+1, on Ubuntu 23.04 and facing the same issue. I was capable of running the 64-bit branch previously but I am now incapable.

hxdeci commented 7 months ago

+1 on Debian 12. #5497

SetOfAllSets commented 7 months ago

it appears to be linked against a very new GLIBC version since I get the same message when I run ldd on the executable

Splarkszter commented 7 months ago

+1 Linux Mint 21.3

senkra commented 7 months ago

Same thing on Debian SID.

jasonhensler commented 6 months ago

pop-os 22.04 here, same issue.

kinkinkijkin commented 6 months ago

Reproduced on both debian bookworm (stable) and debian trixie (testing/nextstable).

edited addition: bookworm relies on libc6 (glibc) 2.36 and trixie relies on libc6 (glibc) 2.37 at the moment, though this may change before trixie's release.

supervitu64 commented 5 months ago

Linux Mint 21.3, same issue here really wanted to try out the new beta :(

Joshua-Ashton commented 5 months ago

Hopefully should be fixed in the next update

Splarkszter commented 5 months ago

thank you kisak :)

supervitu64 commented 5 months ago

Still not fixed for me :(

ChampionCynthia commented 5 months ago

I can confirm the latest x64 update released some minutes ago fixes this issue. I can now boot the game on Ubuntu 22.04 LTS and the game's executable has the same glibc references as the dedicated server.

If the game still doesn't start for you after updating, make sure your system's configuration has Vulkan 1.3-compatible drivers, as TF2's x64 edition uses the DXVK 2.x layer. Check this page for details on driver support for DXVK.

If your configuration doesn't support Vulkan 1.3, add -gl as a command-line option to get the game up and running. See #5506 for that issue.

Closing!