You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Linux (x64) desktop packaging — working build and a minimal patch series
#11101
Linux (x64) desktop packaging — working build and a minimal patch series
Proposed for GitHub Discussions. Base: master @ 22ddee37 (the dsh-v0.2.1-rc.3 line).
Branch: linux-desktop-packaging (4 commits, linked fork to be attached).
Context
The desktop packaging scripts in apps/desktop currently cover mac-arm64, mac-x64 and win-x64 only, and the GitHub releases carry
no desktop artifacts for Linux. This series opens the linux-x64 target
with the smallest set of changes we could find, and ends with a working,
self-contained desktop build on Fedora 44 (Wayland).
What the series does
Add linux-x64 as a supported desktop packaging target — extends the
target unions (DesktopAutoUpdateTarget, build-path declarations),
maps linux-x64 to the linux platform in desktopTargetPlatform(), and selects the correct Electron
executable layout when preparing the runtime and CLI.
Skip the sharp payload smoke check on Linux — prebuilt sharp
binaries SIGSEGV under Electron on Linux (documented upstream at
sharp.pixelplumbing.com/install#electron-and-linux). The remaining
payload checks (koffi, pty, pnpm, grep, glob, html) and the office
round-trips all pass on Linux.
Linux adjustments for the desktop shell — skip the
mandatory-update policy where it is unsupported (system package
manager owns updates there), point the HTTP cache at XDG_CACHE_HOME (leaf directory name kept identical to macOS and
Windows), and suppress the application menu (no global menu bar host
on typical Linux compositors, so it would render inside the window).
Dev-launch flags for Linux — the unpackaged Electron distribution
has no setuid chrome-sandbox, and NVIDIA+Wayland currently
crash-loops the GPU process, so scripts/dev.ts needs --no-sandbox --disable-gpu.
Verification
pnpm run build --profile local gates: 10 passed, 0 failed.
electron-builder --linux dir produces a working linux-unpacked
app (app.asar 187 MB, unpacked dsh payload 215 MB, bundled runtime
401 MB).
Boot-tested on Fedora 44 / Hyprland (Wayland): window, login,
sessions, embedded dsh web server all work.
Open questions for maintainers
Is Linux desktop support interesting for this repo at all, or should
it stay community-maintained?
sharp: what is the preferred strategy — build from source for
Electron, vendor a compatible prebuild, or gate image features off on
Linux for now?
Updates/policy: is "system package manager owns updates" an
acceptable posture for officially packaged Linux builds?
Menu: suppress entirely (current behavior), or keep a minimal menu?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Linux (x64) desktop packaging — working build and a minimal patch series
Context
The desktop packaging scripts in
apps/desktopcurrently covermac-arm64,mac-x64andwin-x64only, and the GitHub releases carryno desktop artifacts for Linux. This series opens the
linux-x64targetwith the smallest set of changes we could find, and ends with a working,
self-contained desktop build on Fedora 44 (Wayland).
What the series does
target unions (
DesktopAutoUpdateTarget, build-path declarations),maps
linux-x64to thelinuxplatform indesktopTargetPlatform(), and selects the correct Electronexecutable layout when preparing the runtime and CLI.
binaries SIGSEGV under Electron on Linux (documented upstream at
sharp.pixelplumbing.com/install#electron-and-linux). The remaining
payload checks (koffi, pty, pnpm, grep, glob, html) and the office
round-trips all pass on Linux.
mandatory-update policy where it is unsupported (system package
manager owns updates there), point the HTTP cache at
XDG_CACHE_HOME(leaf directory name kept identical to macOS andWindows), and suppress the application menu (no global menu bar host
on typical Linux compositors, so it would render inside the window).
has no setuid
chrome-sandbox, and NVIDIA+Wayland currentlycrash-loops the GPU process, so
scripts/dev.tsneeds--no-sandbox --disable-gpu.Verification
pnpm run build --profile localgates: 10 passed, 0 failed.electron-builder --linux dirproduces a workinglinux-unpackedapp (app.asar 187 MB, unpacked dsh payload 215 MB, bundled runtime
401 MB).
sessions, embedded
dsh webserver all work.Open questions for maintainers
it stay community-maintained?
Electron, vendor a compatible prebuild, or gate image features off on
Linux for now?
acceptable posture for officially packaged Linux builds?
Reproducing
prepare-runtime/prepare-package-set/prepare-dshrun as usualbefore packaging; the office document round-trips pass on Linux.
All reactions