build(desktop): Linux portable zip - #62
Merged
Merged
Conversation
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.
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.
Summary
Ship a portable Linux build, mirroring the Windows portable zip:
desktop/linux/paths.rsnow honours aportable.datmarker next to thebinary — 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 thepkexecseam (the Linux elevation model is a single-process re-exec, same as Windows UAC).
release.ymlassembleskasumi-proxy-<ver>-linux-portable.zip(binary +cores +
portable.dat) next to the deb/AppImage. The Windows portable zip isrenamed to
-windows-portable.zipfor symmetry (no public release shipped theold name yet).
Independent of the updater work — a portable zip is not auto-updatable (the
updater's Linux target is the AppImage).
Affected layer
.github/src-tauri/src/desktop/linux/paths.rs)Verification
cargo clippy -p kasumi-desktop --all-targets -- -D warningscargo test -p kasumi-desktop --lib— green (13 tests, incl. Linux paths)cargo fmt --all --checkactionlint .github/workflows/release.ymlNotes 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.