Skip to content

[Feature] Detect an unsupported RT3 / 64-bit Steam client at install time and warn #840

Description

@tempusthales

Before Requesting

  • I found no existing issue matching my feature request
  • This request is related to Millennium, and not a request for a specific theme/addon

Describe the feature you'd like!

[Feature]: Detect an unsupported RT3 / 64-bit Steam client at install time and warn

Problem

When Steam is running the SteamRT3 64-bit client, Millennium installs cleanly, reports success, and then does nothing. There is no error, no log, and no indication to the user that they are in an unsupported configuration.

The reason there is no signal is structural. The hook works by symlinking ubuntu12_32/libXtst.so.6 to the bootstrap library so it gets preloaded into the 32-bit client process. Under RT3, that process is never launched, so the bootstrap never runs. Millennium is therefore incapable of reporting its own failure. Whatever warning exists has to come from the installer, because nothing downstream of it will ever execute.

Confirmed with the team on Discord that RT3 is not supported and that stable is the focus, which is reasonable. This request is only about making the unsupported state visible instead of silent.

What the user experiences today

  1. paru -S millennium (or the install script) completes successfully.
  2. Steam launches normally. No Millennium entry anywhere in the UI.
  3. No Millennium logs are produced, because nothing ran.
  4. The user has no way to distinguish "broken install" from "unsupported client" without reading install.sh and comparing the ELF class of the two client binaries.

Step 4 is what I ended up doing:

$ file ~/.local/share/Steam/steamrt64/steam
  ELF 64-bit LSB pie executable, x86-64
$ file ~/.local/share/Steam/ubuntu12_32/steam
  ELF 32-bit LSB pie executable, Intel i386
$ pgrep -a steam
  3440 /home/gjp/.local/share/Steam/steamrt64/steam -srt-logger-opened
$ cat ~/.local/share/Steam/package/beta
  publicbeta

Both client binaries exist on disk. Only the 64-bit one is executed. That is the whole story, but it takes a while to find.

Proposed behavior

In post_install() (and ideally in the AUR package's install hook), detect an RT3 client and print a warning rather than exiting silently on success. Something like:

warn "Detected a SteamRT3 (64-bit) client. Millennium does not support RT3 yet."
warn "The preload hook targets the 32-bit client, which RT3 does not launch."
warn "To use Millennium, disable 'RT3 experimental' in Steam's beta settings."

Install can still proceed. The goal is a signal, not a hard block.

Open question on detection

I do not know where Steam persists the RT3 experimental opt-in, so I cannot propose a reliable check without guessing. package/beta containing publicbeta is necessary but not sufficient, since RT3 is a separate toggle underneath the beta channel. A few things that might work, and I would rather you pick than have me invent one:

  • Whatever config key backs the RT3 experimental toggle, if it is written somewhere readable.
  • Presence of a client binary at steamrt64/steam. I can confirm this exists on my RT3 install, but I have not verified whether it is absent on a stable install, so this may produce false positives. Someone with a stable client would need to check.

Note also that the Steam root varies (~/.local/share/Steam, ~/.steam/steam, ~/.steam/debian-installation), so detection should resolve the path the same way the rest of the installer does.

Environment

  • CachyOS (Arch-based)
  • Steam 1.0.0.86-2, publicbeta channel with RT3 experimental enabled
  • Installed via AUR (paru -S millennium)

Happy to test a detection patch on this machine, and happy to check behavior against a stable client if that helps pin the check down.

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions