Package the desktop app for Arch, Debian and Windows

electron-builder produces j621-desktop_*_amd64.deb,
j621-desktop-*.pkg.tar.zst (zstd, lean Arch dependencies instead of the
Electron 2 era default set) and a per-user NSIS installer cross-built with
wine. The launcher entry and Electron's desktopName now agree on
io.j621.desktop so window association works, and package metadata points
at the repository homepage and the non-commercial licence.
This commit is contained in:
2026-09-20 17:18:53 -05:00
parent cf129714be
commit 84ec431441
3 changed files with 41 additions and 5 deletions
+13 -3
View File
@@ -9,6 +9,9 @@ SPA keeps its normal first-run flow: on launch it asks where the backend is
The renderer code is not forked: the shell loads `frontend/dist` as built by
`npm run build` in `frontend/`.
Licensed under the Jake Labs Non-Commercial Software Licence — see
`../LICENSE`.
## Layout
```
@@ -34,17 +37,24 @@ cd desktop && npm run dev
## Builds
```bash
npm run dist:linux # release/*.deb + release/*.pkg.tar.zst
npm run dist:win # release/J621-Setup-*.exe (cross-built with wine; untested)
npm run dist:linux # release/j621-desktop_0.1.0_amd64.deb + j621-desktop-0.1.0.pkg.tar.zst
npm run dist:win # release/J621 Setup 0.1.0.exe (cross-built with wine; untested)
npm run dist:all
```
The Arch package can be installed and removed with pacman:
```bash
sudo pacman -U release/j621-*.pkg.tar.zst
sudo pacman -U release/j621-desktop-*.pkg.tar.zst
sudo pacman -R j621-desktop
```
It installs to `/opt/J621` with a `/usr/bin/j621-desktop` symlink and a
`io.j621.desktop` launcher entry (`StartupWMClass` matches the shell's
`desktopName`). The Windows installer is a per-user NSIS build, so no admin
rights are needed to install or update it — but it is unsigned, so SmartScreen
will warn, and it has not been smoke-tested on real Windows.
## Smoke test
`npm run smoke` builds everything, runs Electron headless through `xvfb-run`