aurupdater

linux-lts515

2026-08-21: 5.15.215 -> 5.15.216, plus a staging-recovery precedent

Routine point release, tarball confirmed on cdn.kernel.org before running. update.sh 5.15.216 reconciled all 4 archs’ configs (x86_64/i686/i486/pentium4) cleanly – every diff was cosmetic-only (just the # Linux/x86 5.15.215/216 Kernel Configuration header comment), same pattern as every prior point-release update here.

Built the wrong way first: ran build_all_archs.sh directly inside this arch/maintained/linux-lts515 package dir (in-place) instead of starting with repo_release.sh/repo_build_staged.sh, which stage the build under /data/INSTALL/linux-lts515 instead. By the time this was caught the x86_64 compile was already well underway, so rather than kill it and restart staged, let it finish (all 4 archs, all 12 files – 3 pkgnames x 4 archs – built successfully), then recovered by migrating the result into the layout repo_build_staged.sh would have produced:

  1. The existing /data/INSTALL/linux-lts515 was stale anyway (last touched 2026-07-05, still at 5.15.211 – three point releases behind). Moved it aside to /data/INSTALL/linux-lts515-old rather than overwriting it, following the same rotation convention already used for linux-lts510 (-old/-older/-oldest).
  2. rsync -a --exclude=.git from arch/maintained/linux-lts515/ into a fresh /data/INSTALL/linux-lts515/ – carries tracked PKGBUILD/patches/configs/keys and the untracked build byproducts (downloaded tarball, the 12 produced *.pkg.tar.zst, per-arch build/package/namcap logs) together.
  3. git clean -fd inside arch/maintained/linux-lts515 to drop every untracked byproduct, restoring the tracked tree to exactly its pre-build state (verified via git status --short – clean).
  4. Signed (repo_sign.sh) + published (repo_publish.sh) all 12 files straight from the /data/INSTALL/linux-lts515 copy. All uploaded cleanly; old 5.15.215 entries archived per-arch as usual.
  5. Left the downloaded tarball/logs sitting in /data/INSTALL/linux-lts515 afterward rather than trying to clean them out by hand – confirmed that staged dir has no working .git (rsync excludes it), so repo_build.sh’s own post-build cleanup (which is driven by git status --porcelain) would silently no-op there too even in the normal staged flow. Matches the untouched state the old -old dir was already in from 2026-07-05.

Generalized this 5-step recovery into memory/TOOLING_NOTES.md (search “Recovering an in-place build”) for any future package caught mid-build in place instead of staged.