Skip to content

feat(packaging): add deb and rpm desktop targets#4069

Open
bigpod98 wants to merge 9 commits into
pingdotgg:mainfrom
bigpod98:main
Open

feat(packaging): add deb and rpm desktop targets#4069
bigpod98 wants to merge 9 commits into
pingdotgg:mainfrom
bigpod98:main

Conversation

@bigpod98

@bigpod98 bigpod98 commented Jul 17, 2026

Copy link
Copy Markdown

What Changed

Added additional outputs to packaging script.

Why

Allows output of 2 linux packaging systems Deb and RPM
issue #4030

Checklist

  • This PR is small and focused
  • I explained what changed and why
  • I included before/after screenshots for any UI changes
  • I included a video for animation/interaction changes

Note

Low Risk
Changes are confined to the desktop packaging script and npm scripts; no runtime app or auth logic is modified.

Overview
Adds Linux .deb and .rpm desktop packaging alongside the existing AppImage flow, with new dist:desktop:deb / dist:desktop:rpm scripts writing artifacts to packaging-output/.

electron-builder Linux config now sets distro metadata (maintainer, vendor, synopsis, syncDesktopName) and target-specific depends lists for Debian and RPM. DEB/RPM packages also ship a generated /usr/bin/t3 headless launcher (ELECTRON_RUN_AS_NODE + server bin.mjs), with install paths keyed off production vs nightly product names under /opt/.

Staged package.json for builds gains homepage, license, desktopName, and clearer description/author for package managers.

Reviewed by Cursor Bugbot for commit f5629f8. Bugbot is set up for automated code reviews on this repo. Configure here.

Note

Add DEB and RPM desktop build targets for Linux packaging

  • Adds dist:desktop:deb and dist:desktop:rpm npm scripts in package.json that invoke scripts/build-desktop-artifact.ts with the appropriate Linux target and output to packaging-output/.
  • Linux builds now include distro-specific runtime dependency lists (DEB_DEPENDENCIES, RPM_DEPENDENCIES) and enriched package metadata (maintainer, vendor, synopsis, homepage, license).
  • Adds a renderLinuxHeadlessLauncher function that generates a POSIX shell script setting ELECTRON_RUN_AS_NODE=1 and executing the desktop binary; this script is installed to /usr/bin/t3 in DEB/RPM packages.
  • Adds quotePosixShellArgument utility to safely quote shell arguments used in the launcher script.

Macroscope summarized f5629f8.

@coderabbitai

coderabbitai Bot commented Jul 17, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 4a2717a9-d1f2-42ae-a8e2-d9664a51726c

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added vouch:unvouched PR author is not yet trusted in the VOUCHED list. size:M 30-99 changed lines (additions + deletions). labels Jul 17, 2026
macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jul 17, 2026
@macroscopeapp

macroscopeapp Bot commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Needs human review

This PR adds new Linux packaging targets (deb/rpm), introducing new build capability. While the changes are well-tested packaging configuration rather than runtime code, new features adding capability warrant human review, especially from an author unfamiliar with this build infrastructure.

You can customize Macroscope's approvability policy. Learn more.

@macroscopeapp
macroscopeapp Bot dismissed their stale review July 17, 2026 01:36

Dismissing prior approval to re-evaluate 03b684c

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Jul 17, 2026
juliusmarminge and others added 4 commits July 17, 2026 22:36
Install a t3 launcher in DEB and RPM artifacts that runs the bundled server through Electron's Node mode, while preserving t3code as the desktop command. Cover both package mappings and production/nightly install paths with tests.
@macroscopeapp
macroscopeapp Bot dismissed their stale review July 20, 2026 05:32

Dismissing prior approval to re-evaluate bfd0201

Comment thread scripts/build-desktop-artifact.ts Outdated
Pin electron-builder's standard RPM requirements and add alsa-lib, libsecret, and mesa-libgbm so desktop and headless commands work on minimal installations without relying on weak dependencies.
@bigpod98

Copy link
Copy Markdown
Author

any movement on accepting this?

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f5629f8. Configure here.

"libuuid1",
"libsecret-1-0",
"libasound2t64 | libasound2",
] as const;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Debian deps omit GBM library

Medium Severity

New Debian packages set deb.depends from DEB_DEPENDENCIES, which replaces electron-builder’s generated dependency set rather than merging with it. RPM_DEPENDENCIES includes mesa-libgbm, but the Debian list has no matching GBM package (for example libgbm1), so installs on minimal Debian/Ubuntu systems can pass dependency checks yet fail at runtime when Electron/Chromium loads libgbm.so.1.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f5629f8. Configure here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M 30-99 changed lines (additions + deletions). vouch:unvouched PR author is not yet trusted in the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants