diff --git a/DECISIONS.md b/DECISIONS.md index 237a7ec..f258833 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -1,5 +1,11 @@ # Decisions +## 2026-04-20 – Registry is the only install path; drop paru --pkgbuilds +- **Who**: Dominik, ClaudeCode +- **Why**: Two parallel mechanisms for finding moonarch packages (the Arch registry via `[moonarch]` in `pacman.conf`, and paru's PKGBUILD-repo via `[moonarch-pkgbuilds]` in `paru.conf`) created ambiguous state: `paru -S` resolves from whichever has a matching version first, and diagnostics have to account for both. With the registry DB now stable (see zombie fix below), the PKGBUILD-repo path is redundant. +- **Tradeoffs**: No more local-build fallback when the registry is broken — but when the registry is broken, the real fix is to repair it, not to mask the problem with a second mechanism. Existing systems need their `/etc/paru.conf` cleaned once (hook handles that on next moonarch-git upgrade). +- **How**: `moonarch.install` post_install now deletes `Mode = arp` and the `[moonarch-pkgbuilds]` section from `/etc/paru.conf` instead of writing them. `moonarch/scripts/post-install.sh` and `transform.sh` no longer configure paru.conf or call `paru -Syu --pkgbuilds`; they run `pacman -Sy` + `paru -S moonarch-git` (registry only). + ## 2026-04-20 – CI wipes all package versions before upload to kill DB zombies - **Who**: Dominik, ClaudeCode - **Why**: `paru -Syu` stopped offering `moonarch-git` updates after the r99 → r105 pkgver bump. Root cause: Gitea's Arch registry updates `moonarch.db` incrementally on upload, but does not evict old entries when a pkgver changes. `r99` lingered in the DB as a zombie — file already 404, but desc/sig still present — so clients saw `r99` as "latest" and never got `r105`. Not a one-off: every future pkgver bump would repeat the issue. diff --git a/moonarch-git/PKGBUILD b/moonarch-git/PKGBUILD index 8e121b8..3920529 100644 --- a/moonarch-git/PKGBUILD +++ b/moonarch-git/PKGBUILD @@ -5,7 +5,7 @@ pkgname=moonarch-git pkgver=r105.f4f6ede -pkgrel=8 +pkgrel=9 pkgdesc="Moonarch desktop environment defaults — Niri, Waybar, Catppuccin Mocha" arch=('any') url="https://gitea.moonarch.de/nevaforget/moonarch" diff --git a/moonarch-git/moonarch.install b/moonarch-git/moonarch.install index 0c3f1f3..6bddee1 100644 --- a/moonarch-git/moonarch.install +++ b/moonarch-git/moonarch.install @@ -42,16 +42,13 @@ post_install() { fi done < /etc/passwd - # Ensure paru PKGBUILD repo is configured (breaks bootstrap loop otherwise) + # Clean up legacy paru PKGBUILD-repo config. Moonarch now ships binaries + # exclusively through the Arch registry (pacman repo in /etc/pacman.conf); + # the [moonarch-pkgbuilds] section and Mode = arp are obsolete. PARU_CONF="/etc/paru.conf" if [ -f "$PARU_CONF" ]; then - if ! grep -q 'Mode.*p' "$PARU_CONF" 2>/dev/null; then - sed -i '/^\[options\]/a Mode = arp' "$PARU_CONF" - fi - if ! grep -q '\[moonarch-pkgbuilds\]' "$PARU_CONF" 2>/dev/null; then - printf '\n[moonarch-pkgbuilds]\nUrl = https://gitea.moonarch.de/nevaforget/moonarch-pkgbuilds.git\n' \ - >> "$PARU_CONF" - fi + sed -i '/^Mode[[:space:]]*=[[:space:]]*arp\s*$/d' "$PARU_CONF" + sed -i '/^\[moonarch-pkgbuilds\]$/,/^$/d' "$PARU_CONF" fi # Cleanup legacy user-level configs (moved to system-level)