From 8bf778e487c24093653c2b22c4712af41a811810 Mon Sep 17 00:00:00 2001 From: The_miro Date: Sat, 27 Jun 2026 04:15:36 +0200 Subject: [PATCH] fix(modules): resolve rust/rustup conflict and greetd config-dir abort MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Claude-Session: https://claude.ai/code/session_01R5kHioUMK3mtf2eiLEozCM --- setup/modules/core-packages.sh | 7 +++++-- setup/modules/core.sh | 6 ++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/setup/modules/core-packages.sh b/setup/modules/core-packages.sh index 9879c86..243ee50 100644 --- a/setup/modules/core-packages.sh +++ b/setup/modules/core-packages.sh @@ -127,8 +127,11 @@ CORE_PACKAGES=( ripgrep # Fast recursive grep replacement (rg command) rsync # Efficient file sync over SSH or locally ruby-pkg-config # Ruby gem build helper — needed by some AUR packages - rust # Rust compiler (also installed via rustup for toolchain mgmt) - rustup # Rust toolchain manager — switches stable/nightly/beta + # NOTE: do NOT add the `rust` package here — it conflicts with `rustup` (both + # 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 ──────────────────────────────────────── smartmontools # S.M.A.R.T. disk health monitoring (smartctl) diff --git a/setup/modules/core.sh b/setup/modules/core.sh index 690a240..1a18d06 100644 --- a/setup/modules/core.sh +++ b/setup/modules/core.sh @@ -49,6 +49,12 @@ enable_service cronie.service # and optionally auto-login settings. # -f flag forces overwrite of any existing 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 enable_service greetd.service