Skip to content

feat(desktop): build a Linux .deb package on release#3634

Merged
esengine merged 2 commits into
main-v2from
feat/desktop-deb
Jun 9, 2026
Merged

feat(desktop): build a Linux .deb package on release#3634
esengine merged 2 commits into
main-v2from
feat/desktop-deb

Conversation

@esengine

@esengine esengine commented Jun 9, 2026

Copy link
Copy Markdown
Owner

What

The desktop release dropped Debian/Ubuntu packaging in the v2 rewrite — Linux only ships a bare-binary tar.gz (discussion #3627). This adds a .deb built with goreleaser/nfpm in desktop-build.sh's linux branch.

How

  • desktop/build/linux/nfpm.yaml + reasonix.desktop describe the package: binary → /usr/bin/reasonix-desktop, a .desktop launcher entry, icon → /usr/share/pixmaps, and libgtk-3-0 + libwebkit2gtk-4.1-0 runtime deps that apt resolves on install (the real value-add over the bare tarball).
  • Human-download only. The .deb is treated like the macOS .dmg: the Linux updater channel stays the tar.gz, so cmd/sign's manifest explicitly skips .deb files (it would otherwise shadow the linux-amd64 key). A test locks linux-amd64 to the tarball.
  • release-desktop.yml installs nfpm (pinned v2.46.3) on the Linux runner.
  • The existing sign / upload / GitHub-release / R2-mirror steps already glob dist/*, so the .deb is minisign-signed, attached to the release, and mirrored to R2 with no further workflow changes.

Only linux/amd64 is in the build matrix today, so just an amd64 .deb is produced; nfpm.yaml is parameterized with ${DEB_ARCH} so a future arm64 runner needs no config change.

Verification

  • go test ./cmd/sign/ ✅ (incl. the new deb-skip assertion)
  • gofmt -l / bash -n scripts/desktop-build.sh
  • Ran nfpm package locally against a stub binary and unpacked the .deb: files land at /usr/bin, /usr/share/applications, /usr/share/pixmaps; control metadata (arch amd64, Depends, Homepage, version) all correct ✅

Closes the request in #3627.

The desktop release dropped Debian/Ubuntu packaging in the v2 rewrite —
Linux only shipped a bare-binary tar.gz (discussion #3627). Add a .deb
built with goreleaser/nfpm in desktop-build.sh's linux branch.

- desktop/build/linux/nfpm.yaml + reasonix.desktop describe the package:
  binary to /usr/bin, .desktop entry, icon to /usr/share/pixmaps, and
  libgtk-3-0 + libwebkit2gtk-4.1-0 runtime deps apt resolves on install.
- The .deb is a human-download artifact only (like the macOS .dmg); the
  Linux updater channel stays the tar.gz, so cmd/sign's manifest skips
  .deb files. A test locks the linux-amd64 key to the tarball.
- release-desktop.yml installs nfpm (pinned v2.46.3) on the Linux runner.

The existing sign / upload / release / R2-mirror steps already glob dist/*,
so the .deb is signed, attached to the GitHub release, and mirrored with no
further workflow changes.
@esengine esengine requested a review from SivanCola as a code owner June 9, 2026 06:12
@github-actions github-actions Bot added desktop Wails desktop app (desktop/**) updater Auto-update / installer / release packaging v2 Go rewrite (1.x) — main-v2 branch, active development labels Jun 9, 2026
# Conflicts:
#	desktop/.gitignore
@esengine esengine merged commit 90c2465 into main-v2 Jun 9, 2026
9 checks passed
@esengine esengine deleted the feat/desktop-deb branch June 9, 2026 10:28
SuMuxi66 pushed a commit to SuMuxi66/DeepSeek-Reasonix that referenced this pull request Jun 10, 2026
The desktop release dropped Debian/Ubuntu packaging in the v2 rewrite —
Linux only shipped a bare-binary tar.gz (discussion esengine#3627). Add a .deb
built with goreleaser/nfpm in desktop-build.sh's linux branch.

- desktop/build/linux/nfpm.yaml + reasonix.desktop describe the package:
  binary to /usr/bin, .desktop entry, icon to /usr/share/pixmaps, and
  libgtk-3-0 + libwebkit2gtk-4.1-0 runtime deps apt resolves on install.
- The .deb is a human-download artifact only (like the macOS .dmg); the
  Linux updater channel stays the tar.gz, so cmd/sign's manifest skips
  .deb files. A test locks the linux-amd64 key to the tarball.
- release-desktop.yml installs nfpm (pinned v2.46.3) on the Linux runner.

The existing sign / upload / release / R2-mirror steps already glob dist/*,
so the .deb is signed, attached to the GitHub release, and mirrored with no
further workflow changes.

Co-authored-by: reasonix <reasonix@deepseek.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

desktop Wails desktop app (desktop/**) updater Auto-update / installer / release packaging v2 Go rewrite (1.x) — main-v2 branch, active development

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant