moonarch-pkgbuilds/README.md
nevaforget 675c8bee45 docs: trim README to registry-only flow, log CI zombie-fix decisions
README now describes the Gitea Arch registry path as the canonical
install/update mechanism — the paru --pkgbuilds fallback is no longer
advertised to users. Adds troubleshooting for missing updates (check
the repo DB directly) and file conflicts.

DECISIONS.md records why the build-and-publish workflow now wipes all
existing versions before upload, and why three packages had to be
re-registered manually.
2026-04-20 14:15:44 +02:00

2.2 KiB

Moonarch PKGBUILDs

PKGBUILDs for the Moonarch ecosystem. Published as prebuilt Arch packages via the Gitea Package Registry at gitea.moonarch.de.

Packages

Package Description
moonarch-git Desktop environment defaults (Niri, Waybar, Catppuccin Mocha)
moonset-git Wayland session power menu
moonlock-git Wayland lockscreen with PAM and fingerprint support
moongreet-git greetd greeter for Wayland
sweet-cursors-git Sweet cursor theme

Setup

The Moonarch installer configures /etc/pacman.conf with:

[moonarch]
SigLevel = Required DatabaseOptional
Server = https://gitea.moonarch.de/api/packages/nevaforget/arch/$repo/$arch

No extra paru setup required — pacman and paru both resolve moonarch packages from the registry.

Install

paru -S moonarch-git   # pulls in all ecosystem packages as dependencies

Update

paru -Syu

Version bumps land in the registry automatically:

  1. Push on main of moonarch, moongreet, moonlock, or moonset triggers the per-project update-pkgver.yaml — pkgver-bot commits a fresh pkgver to the matching PKGBUILD here.
  2. That commit triggers build-and-publish.yaml (this repo): the runner builds every changed PKGBUILD and uploads the artifacts to the Arch registry. Before each upload all existing versions of the package are deleted so the repo DB stays clean — see build-and-publish.yaml for the rationale (zombie DB entries after pkgver changes).

sweet-cursors-git has no upstream CI; bump its pkgrel manually when a rebuild is needed.

Troubleshooting

paru -Syu shows no update even though a new version was published: check the repo DB has the new version.

curl -s https://gitea.moonarch.de/api/packages/nevaforget/arch/moonarch/x86_64/moonarch.db \
  | tar -tz | grep <pkgname>

If only an old version appears there, the build-and-publish workflow did not run cleanly — inspect the latest run under gitea.moonarch.de/nevaforget/moonarch-pkgbuilds/actions.

File conflict on install (foo/bar exists in filesystem): the file was placed manually before the package claimed ownership. Once:

paru -Syu --overwrite=/path/to/conflicting/file