From b2e6c113ab34d3579a9b5dcc27472a1251c66841 Mon Sep 17 00:00:00 2001 From: Amolith Date: Mon, 25 May 2026 15:45:15 -0600 Subject: [PATCH] aur: updoot --- skills/maintaining-aur-packages/SKILL.md | 40 +++++++++++++----------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/skills/maintaining-aur-packages/SKILL.md b/skills/maintaining-aur-packages/SKILL.md index 40df0b875a2979fcd212621ca4496f8ccd52e559..202f5bde8ae27fc68fcef1cfadda275968751f7e 100644 --- a/skills/maintaining-aur-packages/SKILL.md +++ b/skills/maintaining-aur-packages/SKILL.md @@ -35,16 +35,14 @@ If no subdirectories exist, we're maintaining a single package. The current dire ## Constraints -- The agent **cannot run `makepkg`**. Always give the user a copyable code block of `makepkg` commands instead. -- Same applies to `makepkg --printsrcinfo > .SRCINFO`. -- Use `updpkgsums` for checksums (agent can run this). -- Use `namcap` to lint built `.pkg.tar.zst` files (agent can run this). +- You **cannot** interactively authenticate to execute `makepkg` in a way that requires escalation. You do the non-privileged work (build with `makepkg -Cf`, lint with `namcap`, generate `.SRCINFO`), then give the user a single copyable `makepkg -csi` command. +- Use `updpkgsums` for checksums +- Use `namcap` to lint built `.pkg.tar.zst` files - Use `b2sums` for all packages. ## Creating packages -Follow this strict workflow. If a planning or todo tool is available, fill it -out in detail; the session might get interrupted and need to resume. +Follow this strict workflow. If a planning or todo tool is available, fill it out in detail; the session might get interrupted and need to resume. 1. List the contents of the current working directory. - Read any text files present. @@ -64,25 +62,27 @@ out in detail; the session might get interrupted and need to resume. ``` - **`-bin` packages**: Use `bin-name-$pkgver::https://...` in `source`, then `install` `bin-name-$pkgver` as `bin-name`. Obtain the license from the original repo. For GitHub sources, the raw URL is `https://raw.githubusercontent.com/USER/REPO/refs/tags/{TAG}/LICENSE`. For non-GitHub sources, ask for the raw tagged LICENSE URL. -3. Write a `PKGBUILD` for each package. `Maintainer` comment: `Amolith `. If multiple packages, include `conflicts=()` so they can't coexist. Packages with `-git` or `-bin` suffixes use versioned provides: `provides=("pkgname=${pkgver}")`. Use `b2sums` (except `-git` sources, which use `'SKIP'`). +3. Write a `PKGBUILD` for each package. Set the `# Maintainer:` comment at the top to the user's email address. If you don't know it, ask. If multiple packages, include `conflicts=()` as appropriate so they can't coexist. Packages with `-git` or `-bin` suffixes use versioned provides: `provides=("pkgname=${pkgver}")`. Use `b2sums` (except `-git` sources, which use `'SKIP'`). -4. Ask to find and relay the build system/installation methods recommended by the project (e.g. `cargo` for Rust, `go` for Go). +4. Find or ask the user to find and relay the build system/installation methods recommended by the project (e.g. `cargo` for Rust, `go` for Go). 5. Adapt those instructions for each package's `build()`, `check()`, `package()`, etc. See [build-patterns.md](references/build-patterns.md) for language-specific templates. -6. Present **all** diagnostics, whether seemingly relevant or not, with reasoning for each. Resolve genuine issues before proceeding. +6. Present **all** diagnostics, whether seemingly relevant or not, with reasoning for each. Resolve genuine issues before proceeding. Some issues are expected for AUR packages. 7. Update checksums with `updpkgsums` in each package directory. -8. Give the user a copyable code block of `makepkg -Ccsi` commands. Include `cd` if multiple packages. Work through any build issues. +8. Run `makepkg -Cf` yourself. Work through any build issues. -9. After the user builds, run `namcap` on `./package-name-*.pkg.tar.zst`. Report all issues with reasoning. +9. Run `namcap` on `./package-name-*.pkg.tar.zst`. Report all issues with reasoning. -10. Give the user `makepkg --printsrcinfo > .SRCINFO` commands (with `cd` if multiple packages). +10. Give the user a copyable `makepkg -csi` command (with `cd` if multiple packages). This handles deps, rebuild, and installation in one step. -11. If only PKGBUILDs and `.SRCINFO`s were created, enter each package directory and `git add` + `git commit` them. If other tracked files were modified, show the diff and ask which to commit. Create a `.gitignore` in each repo listing everything not committed, using appropriate globs. +11. Run `makepkg --printsrcinfo > .SRCINFO` (with `cd` if multiple packages). -12. Clean all artifacts with `git clean -fdx`. +12. If only PKGBUILDs and `.SRCINFO`s were created, enter each package directory and `git add` + `git commit` them. If other tracked files were modified, show the diff and ask which to commit. Create a `.gitignore` in each repo listing everything not committed, using appropriate globs. + +13. Clean all artifacts with `git clean -fdx`. ## Updating packages @@ -99,14 +99,16 @@ Follow this strict workflow. 4. Present **all** diagnostics with reasoning. Resolve genuine issues before proceeding. -5. Give the user a copyable code block of `makepkg -Ccsi` commands. Include `cd` if multiple packages. Work through any build issues. +5. Run `makepkg -Cf`. Work through any build issues. + +6. Run `namcap` on `./package-name-*.pkg.tar.zst`. Report all issues with reasoning. -6. After the user builds, run `namcap` on `./package-name-*.pkg.tar.zst`. Report all issues with reasoning. +7. Give the user a copyable `makepkg -csi` command (with `cd` if multiple packages). -7. Give the user `makepkg --printsrcinfo > .SRCINFO` commands. +8. Run `makepkg --printsrcinfo > .SRCINFO` (with `cd` if multiple packages). -8. If only `PKGBUILD` and `.SRCINFO` were modified, `git add` and `git commit` them. If other tracked files were modified, show the diff and ask which to commit. +9. If only `PKGBUILD` and `.SRCINFO` were modified, `git add` and `git commit` them. If other tracked files were modified, show the diff and ask which to commit. -9. Clean all artifacts with `git clean -fdx`. +10. Clean all artifacts with `git clean -fdx`. If anything other than `pkgver` is edited during the update, re-run `shellcheck` and `namcap` as appropriate.