From 85ca7c2a2d2034dc47b2ae85872c01bb7fffaf7c Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sat, 25 Jul 2026 18:26:24 -0400 Subject: [PATCH] desktop: drop the redundant deb depends, correct the pacman docs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to 8a8b2b1, driven by what run 2872's new checks actually printed. The .deb verification did its job on its first run: tauri already infers exactly libwebkit2gtk-4.1-0 + libgtk-3-0, so declaring the same two in tauri.conf.json produced a control file listing each of them twice. Removed the declaration — verify.sh is the real guard, and it fails the build if inference ever stops covering what the binary links. The pacman step revealed ci-tauri carries neither zstd nor bsdtar, so packages currently ship as .pkg.tar.xz with no .MTREE. Both are working outcomes (pacman reads xz; only `pacman -Qkk` needs .MTREE), but the docs promised .zst, so the README, the release notes and ci-requirements.md now describe what the build actually produces. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01SreJkbxB4gx8pPsu8QbLPi --- .forgejo/workflows/desktop.yml | 10 +++++++--- ci-requirements.md | 9 +++++++-- desktop/packaging/arch/README.md | 12 ++++++++---- desktop/packaging/publish-release.sh | 2 +- desktop/src-tauri/tauri.conf.json | 7 +------ 5 files changed, 24 insertions(+), 16 deletions(-) diff --git a/.forgejo/workflows/desktop.yml b/.forgejo/workflows/desktop.yml index 3bb1877..e5ff048 100644 --- a/.forgejo/workflows/desktop.yml +++ b/.forgejo/workflows/desktop.yml @@ -81,9 +81,13 @@ jobs: # install.sh hands the .deb to every Debian/Ubuntu user, so the package's # Depends must be right BEFORE a release exists. Prints the generated # control file and cross-checks it against what the ELF actually needs - # (dpkg-shlibdeps). tauri.conf.json declares libwebkit2gtk-4.1-0 + libgtk-3-0 - # explicitly rather than trusting inference alone; there's deliberately no - # appindicator or sqlite dep (tauri features = [], rusqlite is "bundled"). + # (dpkg-shlibdeps). + # + # We deliberately do NOT set bundle.linux.deb.depends: run 2872 showed + # tauri already infers exactly libwebkit2gtk-4.1-0 + libgtk-3-0, so + # declaring them again only produced a control file listing each twice. + # This step is the guard instead — if tauri's inference ever stops + # covering what the binary links, the build fails here. - name: Verify the .deb run: bash desktop/packaging/deb/verify.sh diff --git a/ci-requirements.md b/ci-requirements.md index cc768a0..081daa1 100644 --- a/ci-requirements.md +++ b/ci-requirements.md @@ -71,8 +71,13 @@ backend/frontend push. `bsdtar` (`libarchive-tools`) is used for the pacman package's `.MTREE` when present and skipped when not, compression falls back zstd → xz → gzip, and the `.deb` clean-container install test runs only if a docker CLI is available. - Adding `libarchive-tools` + `zstd` + a docker CLI to `ci-tauri` would upgrade - those degraded paths, but none of them block a green build. + Run 2872 confirmed all three optional tools are ABSENT today, so the current + build takes every fallback: the pacman package ships as `.pkg.tar.xz` with no + `.MTREE`, and the `.deb` clean-container install test is skipped. All three are + functional outcomes — pacman installs an `.xz` package fine, and only + `pacman -Qkk` file verification needs `.MTREE`. Adding `libarchive-tools` + + `zstd` + a docker CLI to `ci-tauri` would upgrade these paths; none of them + block a green build. - **Not verifiable in CI:** the runner is Debian, so the pacman package cannot be `pacman -U`-tested here. That step logs `.PKGINFO` + the full file listing so the package is auditable from the run log; a real Arch install is the operator's diff --git a/desktop/packaging/arch/README.md b/desktop/packaging/arch/README.md index 4ce6033..633986e 100644 --- a/desktop/packaging/arch/README.md +++ b/desktop/packaging/arch/README.md @@ -1,7 +1,7 @@ # ThoughtSync desktop — Arch package -A **prebuilt** native pacman package (`.pkg.tar.zst`), published as an asset on -every ThoughtSync release. Nothing to compile, no toolchain to install. +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, @@ -18,14 +18,18 @@ pacman system: curl -fsSL https://git.fabledsword.com/bvandeusen/thoughtsync/raw/branch/main/desktop/packaging/install.sh | sh ``` -Or grab the `.pkg.tar.zst` from the +Or grab the `.pkg.tar.*` from the [latest release](https://git.fabledsword.com/bvandeusen/thoughtsync/releases/latest) and install it directly: ```sh -sudo pacman -U thoughtsync-desktop-*-x86_64.pkg.tar.zst +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 diff --git a/desktop/packaging/publish-release.sh b/desktop/packaging/publish-release.sh index ccdad23..20c38f4 100755 --- a/desktop/packaging/publish-release.sh +++ b/desktop/packaging/publish-release.sh @@ -76,7 +76,7 @@ first_id() { grep -oE '"id"[[:space:]]*:[[:space:]]*[0-9]+' | head -1 | grep -oE echo "==> Creating release for $TAG" BODY=$(cat <