todo-app/packaging/aur
Krzysztof kuhy Rudnicki a3a4601832
Some checks are pending
release-apk / release (APK) (push) Waiting to run
packaging/aur: sharpen metadata against the AUR submission rules
The AUR does not review uploads, but packages that violate the rules "may be
deleted without warning", so these were audited against the submission
guidelines rather than assumed compliant.

- pkgdesc now says what the app actually does, in terms a stranger can judge.
  "Usefulness" is the one rule these packages are genuinely exposed to, and
  the old wording led with the implementation detail.
- optdepends lists every browser the wrapper actually probes for. It searched
  Thorium and Brave but only advertised Chrome and Chromium; all four names
  were checked to resolve in the official repos or the AUR.

Verified compliant on the rules that can be checked mechanically: not in an
official repo, name free in the AUR, x86_64 declared, no replaces= (the AUR
reserves it for renames), Maintainer line present, license installed. The
conflicts=('todo') on todo-flutter is justified, not defensive: AUR 'todo'
2.4-1 installs its own /usr/bin/todo, confirmed by reading its PKGBUILD.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Aoa1nKWRrAbowz7Hfd3tgL
2026-08-09 23:51:18 +02:00
..
PKGBUILD packaging/aur: sharpen metadata against the AUR submission rules 2026-08-09 23:51:18 +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.