From da1e81aa8d33cdeebe1ab2c433274260fd5f0059 Mon Sep 17 00:00:00 2001 From: nevaforget Date: Tue, 21 Apr 2026 09:04:13 +0200 Subject: [PATCH] refactor(moonarch-git): hard-dep ecosystem + Arch essentials, pkgrel 10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- DECISIONS.md | 6 +++ moonarch-git/PKGBUILD | 111 ++++++++++++++++++++++++------------------ 2 files changed, 70 insertions(+), 47 deletions(-) diff --git a/DECISIONS.md b/DECISIONS.md index f258833..308a359 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -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. diff --git a/moonarch-git/PKGBUILD b/moonarch-git/PKGBUILD index 3f99940..c3d3d3b 100644 --- a/moonarch-git/PKGBUILD +++ b/moonarch-git/PKGBUILD @@ -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')