Before Requesting
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
paru -S millennium (or the install script) completes successfully.
- Steam launches normally. No Millennium entry anywhere in the UI.
- No Millennium logs are produced, because nothing ran.
- 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
Before Requesting
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.6to 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
paru -S millennium(or the install script) completes successfully.install.shand comparing the ELF class of the two client binaries.Step 4 is what I ended up doing:
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: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/betacontainingpublicbetais 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: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
publicbetachannel with RT3 experimental enabledparu -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