Skip to content

build(desktop): Linux portable zip - #62

Merged
loss-and-quick merged 3 commits into
mainfrom
build/linux-portable-zip
Jun 21, 2026
Merged

build(desktop): Linux portable zip#62
loss-and-quick merged 3 commits into
mainfrom
build/linux-portable-zip

Conversation

@loss-and-quick

Copy link
Copy Markdown
Owner

Summary

Ship a portable Linux build, mirroring the Windows portable zip:

  • desktop/linux/paths.rs now honours a portable.dat marker next to the
    binary — when present, all state (data + runtime dirs) lives beside the binary
    instead of the XDG/home dirs, so the app runs from a USB stick with nothing in
    the user profile. Both the unprivileged and the re-exec'd root process resolve
    the marker via current_exe(), so no env hand-off is needed across the pkexec
    seam (the Linux elevation model is a single-process re-exec, same as Windows UAC).
  • release.yml assembles kasumi-proxy-<ver>-linux-portable.zip (binary +
    cores + portable.dat) next to the deb/AppImage. The Windows portable zip is
    renamed to -windows-portable.zip for symmetry (no public release shipped the
    old name yet).

Independent of the updater work — a portable zip is not auto-updatable (the
updater's Linux target is the AppImage).

Affected layer

  • CI / .github/
  • Other: Rust desktop (src-tauri/src/desktop/linux/paths.rs)
  • Docs only

Verification

  • cargo clippy -p kasumi-desktop --all-targets -- -D warnings
  • cargo test -p kasumi-desktop --lib — green (13 tests, incl. Linux paths)
  • cargo fmt --all --check
  • actionlint .github/workflows/release.yml

Notes for reviewers

End-to-end portable run (state lands next to the binary) can only be confirmed on
a cut release; the path-resolution change is unit-tested and the zip step mirrors
the already-working Windows one.

Mirror the Windows portable layout: when a portable.dat marker sits next to the
binary, pin the data and runtime dirs beside it instead of the XDG/home dirs, so
the app runs from a USB stick with nothing in the user profile. Both the
unprivileged and the re-exec'd root process resolve the marker via current_exe(),
so no env hand-off is needed across the pkexec seam.
Assemble kasumi-proxy-<ver>-linux-portable.zip (binary + cores + portable.dat)
alongside the deb/AppImage. Rename the Windows portable zip to
-windows-portable.zip so the two are symmetric (no public release has shipped the
old name yet).
Note the Linux portable build and align the Windows portable filename.
@loss-and-quick
loss-and-quick merged commit 5703726 into main Jun 21, 2026
5 checks passed
@loss-and-quick
loss-and-quick deleted the build/linux-portable-zip branch June 21, 2026 14:20
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