refactor(moonarch-git): hard-dep ecosystem + Arch essentials, pkgrel 10

Promote moongreet-git/moonlock-git/moonset-git and ~30 Arch-repo
essentials (networkmanager, bluez, wlsunset, xwayland-satellite,
file-manager stack, portals, zsh plugins, CLI tools, neovim, git,
ufw, fwupd, etc.) from optdepends (or absent) to hard depends.

Previously a fresh `paru -S moonarch-git` installed the configs but
none of the packages they depend on, producing a non-functional
Moonarch — no greeter, no lockscreen, no launcher, no network stack.

AUR packages cannot be hard depends (pacman cannot resolve AUR),
so they remain in moonarch's packages/aur.txt and post-install.sh
pulls them explicitly. optdepends trimmed to real extras —
docker, rustup (for dev), waterfox.
This commit is contained in:
nevaforget 2026-04-21 09:04:13 +02:00
parent e62cfe6558
commit da1e81aa8d
2 changed files with 70 additions and 47 deletions

View File

@ -1,5 +1,11 @@
# Decisions
## 2026-04-21 moonarch-git becomes a full meta-package (hard deps on all Arch-repo essentials + own registry siblings)
- **Who**: Dominik, ClaudeCode
- **Why**: `moonarch-git` listed `moongreet-git`/`moonlock-git`/`moonset-git` only as `optdepends` and omitted most Arch-repo essentials (wlsunset, networkmanager, bluez, xwayland-satellite, file-manager stack, zsh plugins, CLI tools, …) entirely — they lived only in `packages/official.txt`. `paru -S moonarch-git` on a fresh system therefore produced a desktop with no greeter, no lockscreen, no power menu, no nightlight, no network manager, no portals — a non-functional Moonarch. Split source of truth between PKGBUILD deps and txt files caused continuous drift (e.g. walker-bin was missing from both).
- **Tradeoffs**: `moonarch-git` is now chunky — installing it pulls ~60 packages (vs ~20 before). Acceptable because this is exactly what every Moonarch system needs; a leaner package just shifted the install work to imperative scripts that silently failed. AUR packages cannot be hard `depends=` (pacman can't resolve AUR), so they stay in `packages/aur.txt` and post-install.sh pulls them explicitly. `optdepends=` was slashed to real extras (docker, rustup for dev, waterfox) — no more mirroring of aur.txt there.
- **How**: Added to `depends=`: moongreet-git, moonlock-git, moonset-git, xwayland-satellite, libnotify, foot-terminfo, wlsunset, nwg-look, awww, libpulse, gst-plugin-pipewire, networkmanager + nm-applet + nm-openvpn + openvpn, bluez, gvfs + gvfs-{dnssd,mtp,smb}, udisks2, ntfs-3g, xdg-desktop-portal-{gnome,gtk}, qt6-5compat, zsh-{autosuggestions,syntax-highlighting}, bat, btop, eza, fastfetch, fd, fzf, lazygit, ripgrep, neovim, git, fwupd, ufw. Removed from `optdepends=`: all Moonarch ecosystem packages (now hard deps), all AUR packages (post-install.sh pulls from aur.txt), and already-depended Arch-repo packages. `pkgrel` bumped 9 → 10.
## 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.

View File

@ -5,7 +5,7 @@
pkgname=moonarch-git
pkgver=r106.0a38347
pkgrel=9
pkgrel=10
pkgdesc="Moonarch desktop environment defaults — Niri, Waybar, Catppuccin Mocha"
arch=('any')
url="https://gitea.moonarch.de/nevaforget/moonarch"
@ -13,16 +13,24 @@ license=('MIT')
install=moonarch.install
depends=(
# Moonarch ecosystem (own registry)
'moongreet-git'
'moonlock-git'
'moonset-git'
# Compositor & session
'niri'
'xwayland-satellite'
'greetd'
# Bar & notifications
'waybar'
'swaync'
'libnotify'
# Terminal
'foot'
'foot-terminfo'
# Clipboard
'cliphist'
@ -30,71 +38,80 @@ depends=(
# Display
'kanshi'
'wlsunset'
'nwg-look'
'brightnessctl'
# Wallpaper
'awww'
# Audio
'pipewire'
'wireplumber'
'pipewire-alsa'
'pipewire-jack'
'pipewire-pulse'
'wireplumber'
'libpulse'
'alsa-utils'
'pavucontrol'
'gst-plugin-pipewire'
# Theming
'ttf-ubuntusans-nerd'
# Network
'networkmanager'
'network-manager-applet'
'networkmanager-openvpn'
'openvpn'
# System utilities referenced by helper scripts
'brightnessctl'
'jq'
'libnotify'
'upower'
'polkit-gnome'
# Bluetooth
'bluez'
'bluez-utils'
# File manager & portals
'gvfs'
'gvfs-dnssd'
'gvfs-mtp'
'gvfs-smb'
'udisks2'
'ntfs-3g'
'xdg-desktop-portal-gnome'
'xdg-desktop-portal-gtk'
'qt6-5compat'
# Theming & fonts
'ttf-ubuntusans-nerd'
# Shell
'zsh'
'zsh-autosuggestions'
'zsh-syntax-highlighting'
# PipeWire extras for XDG config
'pipewire-alsa'
'pipewire-jack'
'gst-plugin-pipewire'
# CLI tools (referenced by zshrc + helper scripts)
'bat'
'btop'
'eza'
'fastfetch'
'fd'
'fzf'
'jq'
'lazygit'
'ripgrep'
# Editor & VCS
'neovim'
'git'
# System
'fwupd'
'ufw'
'polkit-gnome'
'upower'
)
optdepends=(
# Moonarch ecosystem (install via paru from AUR/local builds)
'moongreet-git: greetd greeter'
'moonlock-git: Wayland lockscreen'
'moonset-git: session power menu'
# AUR packages (install via paru)
'walker-bin: application launcher'
'elephant-bin: walker search daemon'
'awww: wallpaper daemon (swww alternative)'
'waypaper: wallpaper GUI'
'stasis: idle manager'
'colloid-catppuccin-gtk-theme-git: Catppuccin GTK theme'
'sweet-cursors-git: cursor theme'
# General tools
'docker: container runtime'
'docker-compose: multi-container orchestration'
'neovim: editor (EDITOR in zshrc)'
'rustup: Rust toolchain'
'git: version control'
'lazygit: terminal UI for git'
'btop: system monitor'
'fastfetch: system info display'
'auto-cpufreq: CPU frequency scaling'
'ufw: firewall'
'timeshift: system snapshots'
'fwupd: firmware updates'
'rustup: Rust toolchain manager (development)'
'waterfox-bin: web browser'
'blueberry: bluetooth manager GUI'
'nwg-look: GTK settings editor'
'wdisplays-persistent-gettext: display configuration GUI'
'wl-color-picker: color picker'
'waybar-niri-windows-bin: niri window titles for waybar'
'waybar-niri-workspaces-enhanced-git: niri workspaces for waybar'
'xwayland-satellite: X11 app support'
'colloid-catppuccin-theme-git: full Catppuccin GTK+icon theme'
)
makedepends=('git')