x86-64 client: install the arm64 client's parts first

The x86-64 client uses the arm64 client's files - its web helper draws
the interface, its game overlay and steamclient.so serve the arm64
Protons - but in x86-64 mode the session never installed the arm64
client, so a user who picked x86-64 before ever running the arm64
client had none of them. bannerlator-steam-install runs first in that
mode too, and steamwebhelper.sh is pointed at the arm64 web helper only
when it exists.
This commit is contained in:
The412Banner committed 2026-10-03 01:19:08 -04:00
1 parent 95470a0864
commit 2fa4bf28d6
2 files changed
+6 -1

No files matched your search

@@ -260,6 +260,10 @@ case $mode in
steam_x64=0
[ "${BL_STEAM_CLIENT_ARCH:-}" = x86_64 ] && steam_x64=1
if [ "$steam_x64" = 1 ]; then
# The arm64 client's own files are part of this one: its web helper draws the interface, and
# its game overlay and steamclient.so serve the arm64 Protons the x86-64 client starts.
step "checking the Steam client's arm64 parts (first run downloads them, ~1-2 min)"
bannerlator-steam-install || exit $?
step "checking the x86-64 Steam client (FEX, experimental; the first run downloads ~2 GB)"
bannerlator-steam-x64 --prepare || exit $?
step "x86-64 Steam client ready"
@@ -564,7 +564,8 @@ x64_exec() {
# differs, for as long as this client runs: a full check puts the client's copy back.
case "${1:-}" in
-shutdown|steam://*) ;;
*) if [ "${BL_X64_X86_WEBHELPER:-0}" != 1 ] && [ -x /usr/local/bin/bannerlator-x64-arm-webhelper ]; then
*) if [ "${BL_X64_X86_WEBHELPER:-0}" != 1 ] && [ -x /usr/local/bin/bannerlator-x64-arm-webhelper ] &&
[ -x "$ARM_STEAM/steamrtarm64/steamwebhelper" ]; then
(
client=$$ wh=$STEAM_X64/steamrt64/steamwebhelper.sh
base=$(printf '#!/bin/sh\nexec /usr/local/bin/bannerlator-x64-arm-webhelper "$@"\n#')