LacledesLAN / gamesvr-tf2

Team Fortress 2 Server in Docker
https://hub.docker.com/r/lacledeslan/gamesvr-tf2/
The Unlicense
4 stars 1 forks source link

Update to 64 BIt #6

Open JustinBenedick opened 2 months ago

JustinBenedick commented 2 months ago

Recently TF2 was updated to 64 Bit in both client and server. Just need to make sure the new version works and make adjustments as necessary. Best case it just needs to update and minor adjustments can be made to dependencies.

The big unknown is sourcemod.

JustinBenedick commented 2 months ago

TF2 64 bit test 7-20.txt Looks like the new executable is srcds_run_64

And a very early test looks promising with successful launch with a couple of warnings.

WARNING: Failed to load 32-bit libtinfo.so.5 or libncurses.so.5. Please install (lib32tinfo5 / ncurses-libs.i686 / equivalent) to enable readline.

/home/sysoper/.steam/sdk64/steamclient.so with error: /home/sysoper/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory dlopen failed trying to load: steamclient.so with error: steamclient.so: wrong ELF class: ELFCLASS32 dlopen failed trying to load: /home/sysoper/.steam/sdk64/steamclient.so with error: /home/sysoper/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory dlopen failed trying to load: steamclient.so with error: steamclient.so: wrong ELF class: ELFCLASS32 dlopen failed trying to load: /home/sysoper/.steam/sdk64/steamclient.so with error: /home/sysoper/.steam/sdk64/steamclient.so: cannot open shared object file: No such file or directory dlopen failed trying to load: steamclient.so with error: steamclient.so: wrong ELF class: ELFCLASS32

dudleycodes commented 2 months ago

Changing up the deps acquisition in the Dockerfile (notice no more i386 support, fewer libraries):

RUN apt-get update && apt-get install -y `
        ca-certificates libtinfo5 lib32gcc-s1 libstdc++6 locales locales-all tmux &&`
    apt-get clean &&`
    echo "LC_ALL=en_US.UTF-8" >> /etc/environment &&`
    rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*;

Results in the following errors:

failed to dlopen /app/bin/replay_srv.so error=/app/bin/replay_srv.so: wrong ELF class: ELFCLASS32
Could not load: replay_srv.so
FATAL ERROR: Could not load: replay_srv.so
#...
steamclient.so: wrong ELF class: ELFCLASS32

In theory, if we can just ensure we get those 64 bit shared object files, we could move forward...

@JustinBenedick - any idea if x64 bit will break sm/mm and our downstream freeplay images?

JustinBenedick commented 2 months ago

Just tested with lasted dev builds of SM and MM. works fine

mmsource-2.0.0-git1297-linux.tar.gz sourcemod-1.12.0-git7155-linux.tar.gz

Currently experiencing some authentication issue with steam, could be from test machine. "player with no steam id counting as ad-hoc"