Skip to content

fix(installer): restart Steam only for an edit it undid, and answer Cancel - #3

Merged
dangreen merged 1 commit into
mainfrom
fix/installer-steam-wait
Oct 20, 2026
Merged

dangreen merged 1 commit into
mainfrom
fix/installer-steam-wait

Conversation

@dangreen

Copy link
Copy Markdown
Member

Why

Feedback from a player: Steam restarted five or six times in a row, the bar stood at 96% for minutes until they pressed Cancel, and the game was in the library anyway and started later.

At 96% the installer waits up to 210 s for Steam to rewrite shortcuts.vdf itself (SPEC 5.1.0). On our Deck that took 6 to 90 s. When the rewrite did not come, the result counted as unproven, and the next attempt stopped Steam, put the shortcut list back, added the game again, started Steam and waited the full 210 s once more. Three attempts and the restore after them make four restarts of Steam and over ten minutes with the bar standing still. Cancel stopped none of it: the button kdialog --progressbar shows by default only hides the window, and nothing asked about it.

The player's install.log would confirm this, and it is not in hand yet.

What

  • A rewrite that does not come is no longer a failure. After the wait the check runs on the file as it stands, and only a failed check, a list Steam put back without the game, leads to another attempt: another attempt would only wait the same way.
  • The wait counts on the bar: "Waiting for Steam to save the library... 0:42 so far, it can take up to 3:30". steamctl.wait_rewrite takes a tick for it. A retry says why Steam goes down again: "Steam did not keep the game, trying again: attempt 2 of 3...".
  • Cancel is answered. install.py asks the window's wasCancelled, and a reference that stops answering counts as closed too.
    • While Steam is untouched, a closed window stops the install where it is, the unpacking included. Exit code 6 makes the last window say that nothing was installed and name the folder with what was unpacked.
    • Once Steam is down, the attempt in progress runs to its end, since Steam has to come back up anyway, but no other one starts. If that attempt failed, the shortcut list goes back as it was, and a notification says why Steam goes down once more.
  • SPEC (5.1 step 11, 5.1.0, the progress bar) and the installer README describe it.

Notes

  • The self-test has 7 new checks, 63 in all. Every behavior the change adds was taken out by hand once, and its check failed. editorconfig-checker v4.0.2 finds no errors, and sh -n and dash -n accept setup.sh.
  • Not run on a live SteamOS yet. How the Cancel button behaves comes from the source of kdialog and the documented behavior of QProgressDialog: it sets wasCanceled and hides the window.
  • The site packs these files into every .run it builds, so the fix reaches a player once the site is deployed and the .run is built again. A .run built before keeps the old installer.

…ancel

A player saw Steam restart five or six times and the bar stand at 96% for minutes until they pressed Cancel, and the game was in the library anyway:

- A rewrite of shortcuts.vdf that does not come within 210 s no longer counts as a failure. Every attempt waited the full time and then restarted Steam for the next one, four restarts in all; now the file is checked as it stands, and only a failed check leads to another attempt.
- The wait at 96% counts on the bar: "0:42 so far, it can take up to 3:30". A retry says why Steam goes down again.
- Cancel is answered. The button kdialog shows by default only hid the window, and the install went on unseen. While Steam is untouched, a closed window now stops the install, the unpacking included, with exit code 6 and a last window naming the folder with what was unpacked. Once Steam is down, the attempt in progress runs to its end but no other one starts, and a restart to put the shortcut list back is announced with a notification.
@dangreen
dangreen merged commit 5594c17 into main Oct 20, 2026
6 checks passed
@dangreen
dangreen deleted the fix/installer-steam-wait branch October 20, 2026 16:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant