fix(modules): resolve rust/rustup conflict and greetd config-dir abort

Two more module aborts surfaced by the live VM test (both pre-existing, only
unmasked once the wprs bug was fixed and the transaction got further):

1. core-packages.sh listed BOTH `rust` and `rustup`. They conflict (both provide
   cargo/rustc); pacman --noconfirm cannot auto-resolve it and aborts the whole
   core-packages transaction ("unresolvable package conflicts"), so wget and the
   other core tools never installed. Drop `rust` — the setup uses rustup
   exclusively (`rustup default stable`).

2. core.sh copied the greetd config into /etc/greetd before that directory
   existed (greetd is pulled in later by the DE module), so the cp failed and
   `set -e` aborted Core Services before fail2ban/udisks2 were enabled. mkdir -p
   /etc/greetd first.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R5kHioUMK3mtf2eiLEozCM
main
Amir Alexander Abdelbaki 2026-06-27 04:15:36 +02:00
parent a9796bb036
commit 8bf778e487
2 changed files with 11 additions and 2 deletions

View File

@ -127,8 +127,11 @@ CORE_PACKAGES=(
ripgrep # Fast recursive grep replacement (rg command) ripgrep # Fast recursive grep replacement (rg command)
rsync # Efficient file sync over SSH or locally rsync # Efficient file sync over SSH or locally
ruby-pkg-config # Ruby gem build helper — needed by some AUR packages ruby-pkg-config # Ruby gem build helper — needed by some AUR packages
rust # Rust compiler (also installed via rustup for toolchain mgmt) # NOTE: do NOT add the `rust` package here — it conflicts with `rustup` (both
rustup # Rust toolchain manager — switches stable/nightly/beta # provide cargo/rustc), and pacman --noconfirm cannot resolve the conflict, so
# it aborts the ENTIRE core-packages transaction. We use rustup exclusively
# (`rustup default stable` in package-managers/shell-setup/DE modules).
rustup # Rust toolchain manager — provides rustc/cargo via toolchains
# ── System monitoring & debugging ──────────────────────────────────────── # ── System monitoring & debugging ────────────────────────────────────────
smartmontools # S.M.A.R.T. disk health monitoring (smartctl) smartmontools # S.M.A.R.T. disk health monitoring (smartctl)

View File

@ -49,6 +49,12 @@ enable_service cronie.service
# and optionally auto-login settings. # and optionally auto-login settings.
# -f flag forces overwrite of any existing config. # -f flag forces overwrite of any existing config.
log "Deploying greetd config..." log "Deploying greetd config..."
# greetd may not be installed yet at this point (the DE module pulls in
# greetd-tuigreet later), so /etc/greetd does not exist and the cp would fail —
# aborting the module under `set -e` before fail2ban/udisks2 get enabled. Create
# the directory first so the config is staged regardless; greetd reads it once
# installed. enable_service is already non-fatal if the unit is absent.
sudo mkdir -p /etc/greetd
sudo cp -f ~/Dotfiles/desktopenvs/hyprland/greetd-tuigreet/config.toml /etc/greetd/config.toml sudo cp -f ~/Dotfiles/desktopenvs/hyprland/greetd-tuigreet/config.toml /etc/greetd/config.toml
enable_service greetd.service enable_service greetd.service