#!/bin/bash # Build an Arch Linux package (.pkg.tar.zst) for JellyTau via makepkg. # # Tauri's bundler has no pacman target (as of tauri-cli 2.9.x), so we ship a # hand-written PKGBUILD in packaging/arch/ and build it with makepkg. This must # run on an Arch host / the `arch-build` Docker stage — makepkg is Arch-specific # and refuses to run as root, so run it as a non-root user with sudo for deps. # # Usage (typically inside the arch-build Docker stage as a non-root user): # scripts/build-arch.sh # OUTPUT_DIR=/app/dist scripts/build-arch.sh set -euo pipefail REPO_ROOT="$(cd "$(dirname "$0")/.." && pwd)" cd "$REPO_ROOT/packaging/arch" echo "🏛️ Building JellyTau Arch package" echo "==================================" # Point the PKGBUILD at the working tree and give cargo/bun a writable home. export JELLYTAU_SRC="$REPO_ROOT" export CARGO_HOME="${CARGO_HOME:-$REPO_ROOT/.cargo-arch}" # -s installs missing deps (needs sudo/root privileges for pacman), -f overwrites. makepkg -sf --noconfirm echo "" echo "✅ Built Arch package(s):" ls -1 ./*.pkg.tar.zst if [[ -n "${OUTPUT_DIR:-}" ]]; then mkdir -p "$OUTPUT_DIR" cp -v ./*.pkg.tar.zst "$OUTPUT_DIR/" echo "" echo "📦 Copied Arch package(s) to $OUTPUT_DIR" fi