Make the desktop app buildable on Linux - #302
Open
NishanthNixx wants to merge 1 commit into
Open
Conversation
Everything needed for a Linux build; no CI changes (builds are taken manually). - keyring: split the backend per target. macOS keeps apple-native; Linux uses sync-secret-service (GNOME Keyring / KWallet). db/device_key.rs already uses only the portable Entry API, so no code change was needed. Deliberately NOT linux-native: that stores in kernel keyutils, which is session-scoped, and a lost SQLCipher key means a lost local database. - bundle: add deb + appimage targets and the PNG icons Linux needs (the icons were already in the repo, just unreferenced). - top-bar: reserve the 92px traffic-light inset on macOS only. titleBarStyle and trafficLightPosition are macOS-only options, so on Linux the same inset was just an empty gap next to a native GTK title bar. - RELEASING.md: Linux build/verify steps, incl. the libdbus-1-dev build dep and the latest.json clobbering hazard. Verified from macOS: cargo check passes; cargo metadata --filter-platform shows keyring+dbus-secret-service resolving for linux with security-framework absent, and no dbus crates leaking into the darwin graph. tsc clean. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
ThreatCrush Security Scan0 finding(s) No findings. |
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.
Everything needed to produce a Linux build. No CI/CD changes — builds are taken manually.
The one real blocker
keyringwas pinned toapple-native, so the crate simply doesn't compile on Linux. Split it per target:db/device_key.rsneeded no changes — it already uses only the portableEntryAPI, so the same code hits the macOS Keychain or the Linux Secret Service (GNOME Keyring / KWallet).Also in here
deb+appimagetargets and the PNG icons Linux needs — the icons were already in the repo, just never referenced.titleBarStyle/trafficLightPositionare macOS-only, so on Linux that was an empty gap beside a native GTK title bar. Now gated to macOS.libdbus-1-devbuild dep the new backend pulls in.Verification (all from macOS — no Linux machine needed)
cargo checkpasses on macOS → the mac build is not brokencargo metadata --filter-platform x86_64-unknown-linux-gnu→keyring+dbus-secret-serviceresolve,security-frameworkcorrectly absentcargo metadata --filter-platform aarch64-apple-darwin→ no dbus crates leaking into the mac graphtsccleanCargo.lockgainsdbus-secret-service 4.1.0andzeroize_derive 1.5.0.Not done / known follow-ups
latest.jsonclobbering: the manifest is shared across platforms, so publishing Linux with--clobberwould erase thedarwin-*entries and silently break macOS auto-update. Needs merging, not overwriting, before Linux ships. Documented in RELEASING.md..debis manual-install only.🤖 Generated with Claude Code