# Maintainer: Triple-C Contributors # # This file is regenerated by .gitea/workflows/publish-aur-package.yml on every # publish — pkgver, the source URL and sha256sums are rewritten from the real, # already-uploaded release asset, never guessed. Editing pkgver/source/ # sha256sums by hand here only matters until the next automated run overwrites # them; everything else (depends, pkgdesc, package()) is meant to be hand- # maintained normally. # # "-bin" rather than building from source: this repackages the same .deb # build-app.yml already produces and publishes, so a user gets exactly the # binary the project ships and tests, and `makepkg` never needs a Rust # toolchain, Node, or the dozen -dev packages CLAUDE.md lists for building # Triple-C itself. The trade-off is the one every "-bin" package makes: it # assumes the glibc the CI runner (Ubuntu 24.04) linked against is compatible # with the installing system's — true for essentially every currently # supported Arch install, since Arch tracks glibc newer than Ubuntu 24.04 # ships, and forward compatibility is the direction that holds. pkgname=triple-c-bin pkgver=0.4.0 pkgrel=1 pkgdesc="Sandbox Claude Code inside Docker containers" arch=('x86_64') url="https://github.com/shadowdao/triple-c" license=('MIT') # Verified against a real release asset (v0.4.14), not Tauri's generic docs: # downloaded Triple-C_0.4.14_amd64.deb, installed each of these into a real # Arch container, and re-ran `ldd` on the actual binary until nothing came # back "not found". `pango` and `libayatana-appindicator` were both in an # earlier draft — pango isn't directly linked (gtk3 already pulls it in # transitively, and namcap correctly flags declaring it as redundant), and # libayatana-appindicator is in Tauri's own linux dependency list but this # binary never links it at all: there is no tray icon or menu in this app # (see CLAUDE.md's note that `core:menu`/`core:tray` are dropped for the # same reason), so it was never a real dependency to begin with. depends=('cairo' 'desktop-file-utils' 'gdk-pixbuf2' 'glib2' 'gtk3' 'hicolor-icon-theme' 'libsoup3' 'webkit2gtk-4.1') optdepends=('docker: to actually run the sandboxed containers' 'xdg-utils: opening links from the app in your default browser') provides=('triple-c') conflicts=('triple-c') # !strip: the upstream .deb's binary is already the release build Tauri # produced and tested; re-stripping a prebuilt binary is unnecessary risk for # no benefit. !debug: there is no debug info in a release binary for # makepkg's debug-package machinery to extract, so without this it builds an # empty usr/src/debug/ tree for nothing (confirmed with namcap against a real # build — this was its only non-cosmetic complaint, once the license file # below was added). options=('!strip' '!debug') # Tauri names the asset after `productName` verbatim ("Triple-C"), not the # lowercase Cargo binary name — verified against the real release, not # assumed; a lowercase guess here would 404. The LICENSE fetch is separate # because the .deb itself carries no license file — namcap flags an MIT # package with nothing under /usr/share/licenses/ as an error, correctly. source=("Triple-C_${pkgver}_amd64.deb::https://github.com/shadowdao/triple-c/releases/download/v${pkgver}/Triple-C_${pkgver}_amd64.deb" "LICENSE::https://raw.githubusercontent.com/shadowdao/triple-c/v${pkgver}/LICENSE") sha256sums=('SKIP' 'SKIP') package() { cd "$srcdir" # A .deb is an ar archive of debian-binary, control.tar.*, data.tar.* — `ar` # (part of base-devel's binutils) pulls just the payload out. Extracting # that tar directly into $pkgdir works here with no path rewriting at all: # verified against the real archive, whose entire payload is # usr/bin/triple-c, usr/share/applications/Triple-C.desktop and # usr/share/icons/hicolor/*/apps/triple-c.png — Tauri's Linux bundle for # this app carries no separate resource directory under usr/lib/, so there # is nothing that could disagree between Debian's and Arch's package trees # for it to land in the wrong place. ar x "Triple-C_${pkgver}_amd64.deb" tar xf data.tar.* -C "$pkgdir" install -Dm644 "$srcdir/LICENSE" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" }