todo-app/packaging/aur
Krzysztof kuhy Rudnicki 692938b802
Some checks are pending
release-apk / release (APK) (push) Waiting to run
packaging/aur: track the current release tag
The per-commit patch bump means the clean vX.Y.Z tag now moves with HEAD, so
the template's pkgver has to follow it. sha256sums stays 'SKIP' here: the
tarball for a tag contains this file, so the hash can only be filled in by
updpkgsums in the AUR checkout after the tag exists.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aoa1nKWRrAbowz7Hfd3tgL
2026-08-09 23:24:31 +02:00
..
PKGBUILD packaging/aur: track the current release tag 2026-08-09 23:24:31 +02:00
README.md Add the real AUR PKGBUILD as packaging/aur 2026-08-09 22:54:22 +02:00

AUR packaging

PKGBUILD here is the source of truth for the todo-flutter AUR package. The AUR checkout (~/aur/todo-flutter) is a copy of this file plus a generated .SRCINFO.

Why the checksum can go stale

source= points at the GitHub tarball for tag v$pkgver, and sha256sums is the hash of that tarball. A tarball contains this very file, so the checksum for tag vX cannot be committed before vX is tagged. The copy here is therefore a template: after pushing a new tag, run updpkgsums in the AUR checkout to fill in the real hash, and copy the result back here.

Release flow

# 1. bump `version:` in pubspec.yaml, commit, push
# 2. tag and push the SINGLE tag (never `git push --tags`)
git tag v1.2.3 && git push origin v1.2.3

# 3. sync + checksum + build + verify
cp packaging/aur/PKGBUILD ~/aur/todo-flutter/PKGBUILD
cd ~/aur/todo-flutter
# bump pkgver to match the tag, then:
updpkgsums
makepkg -Cf
namcap ./*.pkg.tar.zst
sudo pacman -U ./todo-flutter-*.pkg.tar.zst
todo   # must print: todo desktop serving on http://localhost:8730

# 4. publish
makepkg --printsrcinfo > .SRCINFO
git add PKGBUILD .SRCINFO && git commit && git push   # branch is `master`

Notes

  • install_arch.sh is deliberately not wired to this PKGBUILD. That script builds the working tree for local development; this one builds a downloaded release tarball. Merging them would destroy the dev loop.
  • options=('!strip') is load-bearing — see the comment in the PKGBUILD.
  • Building requires network access (pub get, plus a git fetch of the shared crdt_sync dependency). The tracked pubspec.lock pins what gets resolved.