protonscr

Bootstrapper should respect the STEAM_CLIENT_LOG_FOLDER environment variable

steamopen
ValveSoftware/steam-for-linux#9347 · opened 2023-04-16 by davidebeatrici · updated 2023-04-23 · 5 comments · github
Ddavidebeatrici 2023-04-16 github

Right now the log file is created at ~/.steam/logs/bootstrap_log.txt.

With the symlink(s) created by the official Valve package the path should resolve to ~/.local/share/Steam/logs/bootstrap_log.txt, which is not bad.

However, it would be nice to be able to customize it. For example: /tmp/steam_logs/bootstrap_log.txt.

The Steam binary already looks for an environment variable called STEAM_CLIENT_LOG_FOLDER, but it does not appear to have any effect right now.


Related: #1890 #9345

Kkisak-valve maintainer 2023-04-16 github

Hello @davidebeatrici, this issue report is based on a false assumption. Valve's Steam packaging does not create ~/Steam. The Valve Steam system packaging bootstraps the Steam client to ~/.local/share/Steam and the logs folder is one level deeper (~/.local/share/Steam/logs). There's also a Debian variant of the Steam package which bootstraps the Steam client into ~/.steam/debian-installation. It's possible that your Distribution has added a convenience symlink from ~/Steam to the Steam install folder, but that's outside of Valve's control and would need to be discussed with your distro's package maintainer for Steam.

Ddavidebeatrici 2023-04-16 github

About the Debian variant: https://salsa.debian.org/games-team/steam-installer/-/blob/6da8a02b2ceca5e3fdcd8aca579d7d6fa8f5818d/debian/scripts/steam.in

# This is a new installation, so use a distinct directory to avoid
# file collisions. Valve would use $XDG_DATA_HOME/Steam here.
# Debian uses a subdirectory of ~/.steam, to avoid having a mixture
# of XDG basedirs and traditional dotfiles in the same application.
STEAMDIR="$HOME/.steam/debian-installation"

There are indeed inconsistencies between the various distributions.

However, your launch script (steam.sh) creates .steam and the symlinks inside it:

# common variables for later

# We use ${HOME%/}/.steam for bootstrap symlinks so that we can easily
# tell partners where to go to find the Steam libraries and data.
# This is constant so that legacy applications can always find us in the future.
STEAMCONFIG="${HOME%/}/.steam" # Drop tailing slash in home folder if it exists.
PIDFILE="$STEAMCONFIG/steam.pid" # pid of running steam for this user
STEAMBIN32LINK="$STEAMCONFIG/bin32"
STEAMBIN64LINK="$STEAMCONFIG/bin64"
STEAMSDK32LINK="$STEAMCONFIG/sdk32" # 32-bit steam api library
STEAMSDK64LINK="$STEAMCONFIG/sdk64" # 64-bit steam api library
STEAMROOTLINK="$STEAMCONFIG/root" # points at the Steam install path for the currently running Steam
STEAMDATALINK="`detect_steamdatalink`" # points at the Steam content path
STEAMSTARTING="$STEAMCONFIG/starting"

And the binary itself relies on ~/.steam for pretty much everything.

As for ~/Steam: is it perhaps used as fallback path?

Kkisak-valve maintainer 2023-04-16 github

As for ~/Steam: is it perhaps used as fallback path?

No, and historically it never has.

Ddavidebeatrici 2023-04-16 github

Alright, I guess it was a leftover then. Sorry.

I updated the issue's message to clarify.

Ddavidebeatrici 2023-04-23 github

Looks like the environment variable is actually taken into account, but only for specific files.
For now I have only spotted controller.txt.

Please note, though, that the path is relative (i.e. appended to ~/.steam). Not very useful.

Nothing extracted yet.