gamescope: take the payload from the APK when it ships one, and version it by date

Closed
JO
17d ago
+76-27

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.3 from the CDN; no asset is committed, but dropping one into app/src/main/assets locally 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/libjpeg symlinks; gamescope LD_LIBRARY_PATH now starts at gamescope/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.