Files
thoughtsync/desktop/packaging/arch
bvandeusenandClaude Opus 5 3ca3eba6d5
Desktop (Tauri) / Windows installer (cross-compiled) (push) Successful in 2m32s
Desktop (Tauri) / Tauri desktop (Linux) (push) Successful in 4m26s
Desktop (Tauri) / Update manifest (push) Successful in 4s
packaging: stamp the pacman package with the version actually built
It read the version straight out of tauri.conf.json, which was correct until
dev builds started overriding the version on the command line — the file still
says 0.1.0, so release `dev` came out carrying a pacman package labelled 0.1.0
around a binary that reports 0.1.132.

Nothing breaks from it (a pacman install can't self-update anyway), but a
package that lies about its version is exactly what makes a later "which build
is this?" impossible to answer. Now uses the same build-version.sh the bundles
and the manifest do.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01SreJkbxB4gx8pPsu8QbLPi
2026-07-27 15:07:40 -04:00
..

ThoughtSync desktop — Arch package

A prebuilt native pacman package, published as an asset on every ThoughtSync release. Nothing to compile, no toolchain to install.

Installing natively on Arch matters for more than tidiness: pacman pulls webkit2gtk-4.1 itself and the app runs against your system's graphics stack, which is what keeps the bundled-library EGL_BAD_PARAMETER black window (issue 2021) from coming back. It also means the app is package-manager tracked and uninstalls cleanly.

Install

Easiest — the one-command installer picks this package automatically on any pacman system:

curl -fsSL https://git.fabledsword.com/bvandeusen/thoughtsync/raw/branch/main/desktop/packaging/install.sh | sh

Or grab the .pkg.tar.* from the latest release and install it directly:

sudo pacman -U thoughtsync-desktop-*-x86_64.pkg.tar.*

The compression suffix depends on what the build image provides — .zst when zstd is installed, otherwise .xz (today's builds are .xz). pacman reads all of them; only the filename differs.

Either way you get:

  • /usr/bin/thoughtsync — the app
  • /usr/share/applications/thoughtsync.desktop — the menu entry
  • /usr/share/icons/hicolor/*/apps/thoughtsync.png — themed icons

Launch ThoughtSync from your app menu, or run thoughtsync.

Uninstall: sudo pacman -R thoughtsync-desktop.

How the package is built

package-prebuilt.sh runs in CI (.forgejo/workflows/desktop.yml) and wraps the binary the Linux build already produced into a pacman package — it does not compile anything a second time.

Packaging a Debian-compiled binary for Arch is safe here because the binary bundles nothing: it resolves libwebkit2gtk-4.1.so.0, libgtk-3.so.0 and libsoup-3.0.so.0 by SONAME at runtime and those are identical on both distros, SQLite is compiled in (rusqlite "bundled"), and glibc's forward compatibility means building on Debian's older glibc and running on Arch's newer one is the safe direction.

CI is Debian and has no pacman, so it cannot install-test the result. The build step instead logs the package's .PKGINFO and complete file listing, so the package is auditable from the run log; a real pacman -U is the final proof.

Previously

This directory used to hold a source-build PKGBUILD requiring makepkg -si with rust + nodejs + npm installed. It was removed once prebuilt packages shipped — asking every user to install a compiler toolchain isn't distribution.