gamescope: take the payload from the APK when it ships one, and version it by date
Description
The payload was always downloaded, so a build had no way to carry the exact gamescope and daemon it was tested with: the first launch fetched whatever the published archive held. ensure now prefers the archive inside the APK, copying it out and extracting exactly as the downloaded one does, and falls back to the published download only when no asset is present. Local builds have been tested with the payload in the APK and without network at all; release builds can keep shipping nothing and download as before.
The version is now the build date plus the day's version, 20261023-14, and the archive name follows from it.
Payloads are build artefacts of the branch that made them, so the assets path is ignored โ a local payload never lands in a commit.
Recording
Type of Change
- Bug fix
- Performance / stability improvement
- Compatibility improvements
- Other (requires prior approval)
Checklist
- If I have access to
#code-changes, I have discussed this change there and it has been green-lighted. If I do not have access, I have still provided clear context in this PR. If I skip both, I accept that this change may face delays in review, may not be reviewed at all, or may be closed. - This change aligns with the current project scope (core functionality, stability, or performance). If not, it has been explicitly approved beforehand.
- I have attached a recording of the change.
- I have read and agree to the contribution guidelines in
CONTRIBUTING.md.
Summary by cubic
ensure now prefers a gamescope payload shipped inside the APK, falling back to the CDN download when no asset is present, and versions the payload by date. Game sessions also become a black, shell-less Wine desktop.
- Payload version is
20261023.3from the CDN; no asset is committed, but dropping one intoapp/src/main/assetslocally takes precedence. - Game sessions get a black Wine desktop with the shell and systray disabled; Open container keeps the normal theme and taskbar.
- Dropped the system
libcrypto/libjpegsymlinks; gamescopeLD_LIBRARY_PATHnow starts atgamescope/lib. - New containers default to gamescope only on Adreno GPUs; non-Adreno GPUs default to X11, resolved at startup.
Summary by CodeRabbit
- Improvements
- Gamescope payloads can be installed from the app when available, with a download fallback if the bundled payload is missing or cannot be copied.
- Progress is marked complete after a successful installation from the app.
- Game sessions preserve the configured light or dark theme, use a black background, and hide desktop shell elements.
- Gamescope uses its own libraries alongside existing runtime library paths.
- New containers use Gamescope by default on Adreno devices and X11 on other devices.