feat: build and release RiftLift as an AppImage - #10
Merged
Merged
Conversation
Package the CLI/GUI as a portable x86_64 AppImage using python-appimage, buildable manually via scripts/build-appimage.sh and wired into the release workflow as a new appimage job included in the release bundle. Also fixes securecdn-atl3-3.oculus.com, a retired Meta CDN edge host that no longer resolves, which broke both the CI compatibility payload build and the app's own Oculus runtime download on install/launch. Replaced with the working generic securecdn.oculus.com host (same pinned checksum).
The documented install path (install.sh) already runs `riftlift setup` once during installation, so its users never see an unconfigured compatibility stack. The AppImage has no equivalent install step - it's just a binary you download and double-click - so a first-time user got no prompt at all beyond a passive banner nobody had reason to look for yet. Window now checks needs_setup() right after building its UI and, if the compatibility runtime doesn't match what this build expects, starts the same setup() the CLI's `riftlift setup` runs, through the existing run_task/status machinery other background operations already use. Every other install method (pip, install.sh) is unaffected in practice, since their setup already matches by the time the window opens; this only changes behavior for a user who has never run setup at all.
…a integrations The entrypoint always ran riftlift-gui, which ignores its arguments and only opens the main window - a Steam shortcut's `launch SLUG`, the Meta login callback's `callback %u`, or a terminal `setup`/`doctor` all silently did nothing. It now dispatches through the full `riftlift` CLI, defaulting to `gui` on a plain double-click. installed_command() also required a separately installed `riftlift` on PATH to build Steam shortcuts or register the Meta login handler - a standalone AppImage user has no such thing. It now resolves to the running AppImage itself first, so a user who only ever downloaded the AppImage can add games to Steam and sign in to Meta without anything else installed.
moi952
force-pushed
the
feat/appimage-build
branch
from
September 16, 2026 17:51
16245d7 to
ac0e7b0
Compare
Villagers654
self-requested a review
September 16, 2026 20:09
Villagers654
requested changes
Sep 16, 2026
Villagers654
left a comment
Owner
There was a problem hiding this comment.
Please update this branch with main to pick up the compatibility and setup-validation fixes.
The remaining issue is the unquoted interpreter path in the AppImage entrypoint, which breaks startup when the path contains spaces. Please quote it in both branches as noted inline.
With those changes, this looks ready to merge.
| @@ -0,0 +1,6 @@ | |||
| bin="${APPDIR}/opt/python{{ python-version }}/bin" | |||
| if [ "$#" -eq 0 ]; then | |||
| {{ python-executable }} "$bin/riftlift" gui | |||
Owner
There was a problem hiding this comment.
{{ python-executable }} expands to a path under $APPDIR. When that path contains spaces, the shell splits it into separate words and startup fails with exit code 127. I reproduced this using an extraction directory containing spaces.
An unquoted {{ python-executable }} word-splits when the AppImage's
extraction directory contains spaces, failing startup with exit code 127.
Villagers654
approved these changes
Sep 16, 2026
Owner
|
LGTM |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Wanted a ready-to-use AppImage instead of making users build one themselves,
so I added a script + a job in the release workflow that produces it directly.
While testing the build I hit a download failure in the compatibility job
(securecdn-atl3-3.oculus.com doesn't resolve anymore), so I swapped it for
the generic securecdn.oculus.com host, same file/checksum, just a different
endpoint.