Browse Source

fix(steamcmd): add libtinfo.so.5 symlink fix for readline warning

On distros shipping libtinfo.so.6 but not libtinfo.so.5 (Ubuntu 22.04+,
Debian 12+), SteamCMD prints:

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

lib32tinfo5 does not exist on Ubuntu 24.04. Creating a user-space
symlink inside the steamcmd directory resolves the warning without
requiring root or a missing package.
pull/4899/head
Daniel Gibbs 2 months ago
parent
commit
c20b4fa89c
Failed to extract signature
  1. 19
      lgsm/modules/fix_steamcmd.sh

19
lgsm/modules/fix_steamcmd.sh

@ -113,6 +113,25 @@ if [ ! -f "${steamclientsdk32}" ]; then
fn_fix_msg_end
fi
# Helps fix: WARNING: Failed to load 32-bit libtinfo.so.5 or libncurses.so.5.
# On distros that ship libtinfo.so.6 (e.g. Ubuntu 22.04+, Debian 12+) but not
# libtinfo.so.5, SteamCMD prints this warning and loses readline support.
# Creating a symlink from .so.5 -> .so.6 resolves the warning without root.
libtinfo32dir="${HOME}/.steam/steamcmd"
libtinfo32so="${libtinfo32dir}/libtinfo.so.5"
if [ ! -f "${libtinfo32so}" ] && [ ! -L "${libtinfo32so}" ]; then
# Find the .so.6 in the system 32-bit lib paths
for libtinfo32so6 in /lib/i386-linux-gnu/libtinfo.so.6 /usr/lib/i386-linux-gnu/libtinfo.so.6 /lib32/libtinfo.so.6; do
if [ -f "${libtinfo32so6}" ]; then
fixname="libtinfo.so.5 32-bit symlink"
fn_fix_msg_start
ln -sf "${libtinfo32so6}" "${libtinfo32so}"
fn_fix_msg_end
break
fi
done
fi
# steamclient.so fixes
if [ "${shortname}" == "bo" ]; then
fn_fix_steamclient_so "32" "${serverfiles}/BODS_Data/Plugins/x86"

Loading…
Cancel
Save