Files
Triple-C/BUILDING.md
T
shadowdaoandClaude Opus 5 afe9d5cdb2 docs: correct Linux packaging in BUILDING.md
BUILDING.md listed AppImage, .deb and .rpm as build artifacts, but Linux
ships as AppImage only -- CI passes `--bundles appimage`, and the .deb and
.rpm were dropped because neither could self-update. A bare `npx tauri
build` still emits all three, since tauri.conf.json keeps "targets": "all"
to leave macOS and Windows untouched, so the table now marks which are
actually released rather than pretending the others do not exist.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 10:01:29 -07:00

4.3 KiB

Building Triple-C

Triple-C is a Tauri v2 desktop application with a React/TypeScript frontend and a Rust backend. This guide covers building the app from source on Linux, macOS, and Windows.

Prerequisites (All Platforms)

Linux

1. Install system dependencies

Ubuntu / Debian:

sudo apt-get update
sudo apt-get install -y \
  libgtk-3-dev \
  libwebkit2gtk-4.1-dev \
  libayatana-appindicator3-dev \
  librsvg2-dev \
  libsoup-3.0-dev \
  patchelf \
  libssl-dev \
  pkg-config \
  build-essential

Fedora:

sudo dnf install -y \
  gtk3-devel \
  webkit2gtk4.1-devel \
  libayatana-appindicator-gtk3-devel \
  librsvg2-devel \
  libsoup3-devel \
  patchelf \
  openssl-devel \
  pkg-config \
  gcc

Arch:

sudo pacman -S --needed \
  gtk3 \
  webkit2gtk-4.1 \
  libayatana-appindicator \
  librsvg \
  libsoup3 \
  patchelf \
  openssl \
  pkg-config \
  base-devel

2. Install frontend dependencies

cd app
npm ci

3. Build

npx tauri build

Linux ships as AppImage only. To match what CI produces, pass the bundle explicitly:

npx tauri build --bundles appimage

The .deb and .rpm bundles were dropped — two more artifacts to build and publish for an audience the AppImage already serves, and neither could self-update. A bare npx tauri build still emits them, because tauri.conf.json keeps "targets": "all" so that macOS and Windows are untouched; they are not released and not tested.

Build artifacts are located in app/src-tauri/target/release/bundle/:

Format Path Released
AppImage appimage/*.AppImage yes
Debian pkg deb/*.deb no
RPM pkg rpm/*.rpm no

scripts/finalize-appimage.sh post-processes the AppImage; see the Packaging section of CLAUDE.md for why both of its steps are load-bearing.

macOS

1. Install prerequisites

  • Xcode Command Line Tools — required for the C/C++ toolchain and system headers:
xcode-select --install

No additional system libraries are needed — macOS includes WebKit natively.

2. Install Rust targets (universal binary)

To build a universal binary that runs on both Apple Silicon and Intel Macs:

rustup target add aarch64-apple-darwin x86_64-apple-darwin

3. Install frontend dependencies

cd app
npm ci

4. Build

For a universal binary (recommended for distribution):

npx tauri build --target universal-apple-darwin

For the current architecture only (faster, for local development):

npx tauri build

Build artifacts are located in app/src-tauri/target/universal-apple-darwin/release/bundle/ (or target/release/bundle/ for single-arch builds):

Format Path
DMG dmg/*.dmg
macOS App macos/*.app
macOS App (compressed) macos/*.app.tar.gz

Note: The app is not signed or notarized. On first launch, macOS Gatekeeper may block it. Right-click the app and select "Open" to bypass, or remove the quarantine attribute: xattr -cr /Applications/Triple-C.app

Windows

1. Install prerequisites

2. Install frontend dependencies

cd app
npm ci

3. Build

npx tauri build

Build artifacts are located in app\src-tauri\target\release\bundle\:

Format Path
MSI msi\*.msi
NSIS nsis\*.exe

Development Mode

To run the app in development mode with hot-reload:

cd app
npm ci          # if not already done
npx tauri dev

Container Image

The sandbox container image (used at runtime by the app) is built automatically by CI when files under container/ change. To build it locally:

docker build -t triple-c-sandbox ./container