Laptop-run findings: Terra bootstrap collided with an already-configured repo (guard only checked the release RPM); PeaZip gtk3 file-conflicted with an existing qt5 install.
repo_enabled() via dnf repolist — the real source of truth; Terra + RPM Fusion skip when configured OR rpm present
PeaZip tailoring skips when ANY flavor (qt5/qt6/gtk3/gtk2) is installed, naming it
All paths harness-verified including your exact laptop scenario.
Laptop-run findings: Terra bootstrap collided with an already-configured repo (guard only checked the release RPM); PeaZip gtk3 file-conflicted with an existing qt5 install.
- repo_enabled() via dnf repolist — the real source of truth; Terra + RPM Fusion skip when configured OR rpm present
- PeaZip tailoring skips when ANY flavor (qt5/qt6/gtk3/gtk2) is installed, naming it
All paths harness-verified including your exact laptop scenario.
Laptop run (YuKu, existing machine) exposed two fresh-install blind
spots:
1. Terra add failed on a machine that already HAD the repo but not a
queryable terra-release RPM — bootstrapping --repofrompath over an
existing repo id collides. New repo_enabled() checks dnf repolist
(the source of truth); add_terra_repo and add_rpmfusion_repo now
skip when the repo is configured OR the release RPM present.
2. PeaZip tailoring tried gtk3 over an existing peazip-qt5: all UI
flavors ship /usr/bin/peazip and file-conflict, transaction died.
Any installed flavor (qt5/qt6/gtk3/gtk2) now wins and the section
skips with the flavor named.
Harness: laptop sim (repo configured, peazip-qt5 present) -> zero
bootstrap calls, PeaZip skipped; fresh machine -> terra bootstraps +
gtk3 installs; re-run -> skip via repolist; peazip-qt6 + hyprland ->
skip; unattended/piped green.
Per YuKu: instead of skipping when an older flavor is present, SWAP it
to the environment-appropriate one (dnf swap -y old new). Atomic —
if the swap fails, the existing flavor stays and the run continues
with a warning (the safe outcome). Right flavor already present ->
no-op; fresh machine -> plain install.
Verified: qt5+niri -> swap to gtk3 (your laptop scenario); qt6+hyprland
-> no-op; forced swap failure -> warn + keep qt5; fresh -> gtk3.
The theme's own install.sh runs dnf for its dependencies and its
output flooded the screen raw (laptop-proven: the last wall of text
left in the run). Now wrapped in ui_quiet_run: live block line with
the current dependency, summary count after, full output in the
setup log, red + tail on failure. Unattended/piped runs keep plain
output. pipefail still suspended around the yes| pipe (inherited at
subshell fork).
Two nits from YuKu's laptop paste: the 100-space line wipe left a
visible gap before short summaries (now ANSI EL: \r\033[K, no
residue), and '(0 packages)' printed when nothing new was installed
(idempotent re-run / theme deps all present) — the count parenthetical
is now omitted when zero.
yuri
merged commit d1031277bf into main2026-11-11 15:48:11 +01:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Laptop-run findings: Terra bootstrap collided with an already-configured repo (guard only checked the release RPM); PeaZip gtk3 file-conflicted with an existing qt5 install.
All paths harness-verified including your exact laptop scenario.