Compare commits

..
Author SHA1 Message Date
enricobuehler 51f64382ec --uninstall undoes what punktfunk-omarchy setup did, and the detection matrix grows an Omarchy row
ci / web (pull_request) Successful in 57s
ci / docs-site (pull_request) Successful in 1m0s
ci / docs-drift (pull_request) Successful in 55s
ci / bun-nix (pull_request) Successful in 1m23s
apple / swift (pull_request) Successful in 2m11s
apple / distribute (pull_request) Skipped
apple / screenshots (pull_request) Skipped
ci / rust-arm64 (pull_request) Successful in 2m26s
installer-smoke / smoke (arch) (pull_request) Successful in 1m24s
installer-smoke / smoke (fedora-44) (pull_request) Successful in 2m2s
installer-smoke / smoke (debian-13) (pull_request) Successful in 3m19s
ci / rust (pull_request) Successful in 7m48s
android / android (pull_request) Failing after 12m41s
PR #428 taught scripts/install.sh about Omarchy: detection, the `-Sy` then `-S` split that gets past
the libalpm guard, and the hand-off to `punktfunk-omarchy setup`. It wired the INSTALL path only.

`--uninstall` removed the packages but left everything `punktfunk-omarchy setup` had put OUTSIDE
them: tagged ufw rules, the user-unit drop-in, the app-menu entry, hooks.json, and the
`custom_picker_binary` takeover in xdph.conf — the last of which keeps pointing a live compositor at
a picker shim that is no longer installed. `punktfunk-omarchy remove` is the reverse and is
idempotent, but it ships IN the host package, so it has to run before pacman takes it away. Its
guard carries the `|| [ "$DRY" = 1 ]` that step 1b already uses, so the dry-run matrix can see it on
a machine that has never had the package.

Gate 7's matrix had no Omarchy row at all, which is why this went unnoticed; its own comment says a
fix to the installer adds its case there. Three added — the split install, the setup hand-off, and
the uninstall — each proved non-vacuous by reverting the code it covers and watching the gate go red.

The first of those three now covers a fix that reached main separately: `run()`'s non-interactive
rewrite matched only `^sudo pacman -Syu `, so `--yes` and every terminal-less `curl | sh` asked
"Proceed with installation?" with stdin on /dev/null and died. The `-S ` rule that fixes it landed in
the --channel switch work while this branch was open. The row keeps it from regressing.
2026-08-28 23:02:57 +02:00
enricobuehler 14ec3d1b5d Merge pull request 'The one-command install stops hiding on the hub page' (#433) from worktree-docs-universal-installer into main
ci / bun-nix (push) Successful in 36s
ci / docs-drift (push) Successful in 41s
docker / builders (ci/android-ci.Dockerfile, punktfunk-android-ci) (push) Successful in 24s
docker / builders (ci/arch-ci.Dockerfile, punktfunk-arch-ci) (push) Successful in 21s
ci / docs-site (push) Successful in 1m7s
ci / web (push) Successful in 1m19s
docker / builders (ci/gamescope-trixie.Dockerfile, punktfunk-gamescope-trixie) (push) Successful in 12s
docker / builders (ci/rust-ci-noble.Dockerfile, punktfunk-rust-ci-noble) (push) Successful in 12s
ci / rust-arm64 (push) Successful in 1m37s
docker / builders (ci/fedora-rpm.Dockerfile, punktfunk-fedora-rpm) (push) Successful in 1m16s
docker / builders (ci/flatpak-ci.Dockerfile, punktfunk-flatpak-ci) (push) Successful in 1m8s
docker / builders (--build-arg FEDORA_VERSION=44, ci/fedora-rpm.Dockerfile, punktfunk-fedora44-rpm, -f44) (push) Successful in 16s
docker / builders (ci/rust-ci.Dockerfile, punktfunk-rust-ci) (push) Successful in 1m3s
docker / apps (., web/Dockerfile, punktfunk-web) (push) Successful in 1m14s
docker / apps (docs-site, docs-site/Dockerfile, punktfunk-docs) (push) Successful in 1m25s
docker / builders-arm64cross (push) Successful in 29s
docker / deploy-docs (push) Successful in 43s
ci / rust (push) Successful in 7m30s
Reviewed-on: #433
2026-08-28 21:00:25 +00:00
2 changed files with 13 additions and 0 deletions
+6
View File
@@ -147,6 +147,11 @@ installer_case fedora 'ID=fedora\nVERSION_ID=44\n' 'sudo dn
installer_case fedora43 'ID=fedora\nVERSION_ID=43\n' '/rpm/bazzite'
installer_case arch 'ID=arch\n' 'sudo pacman -Syu --noconfirm punktfunk-host punktfunk-web punktfunk-scripting'
installer_case cachyos 'ID=cachyos\nID_LIKE="arch"\n' 'sudo pacman -Syu --noconfirm punktfunk-host punktfunk-web punktfunk-scripting'
# Omarchy: arch family, but its libalpm guard kills any -S+-u transaction, so the install must
# split into -Sy then -S (and --yes still has to reach that -S), and the run must hand off to
# `punktfunk-omarchy setup` rather than do a second, weaker version of the same wiring.
installer_case omarchy 'ID=omarchy\nID_LIKE=arch\nVERSION_ID=4.0.1\n' 'sudo pacman -S --noconfirm punktfunk-host punktfunk-web punktfunk-scripting'
installer_case omarchy2 'ID=omarchy\nID_LIKE=arch\nVERSION_ID=4.0.1\n' 'punktfunk-omarchy setup'
installer_case bazzite 'ID=bazzite\nID_LIKE="fedora"\nVERSION_ID=43\n' 'punktfunk-sysext.sh install'
installer_case nixos 'ID=nixos\n' 'docs/nixos'
installer_case steamos 'ID=steamos\nID_LIKE=arch\n' 'docs/steamos-host'
@@ -154,6 +159,7 @@ installer_case gentoo 'ID=gentoo\n' 'build-fr
installer_case debian-rm 'ID=debian\nVERSION_ID=13\n' 'sources.list.d/punktfunk.list' --uninstall
installer_case fedora-rm 'ID=fedora\nVERSION_ID=44\n' 'yum.repos.d/punktfunk.repo' --uninstall
installer_case arch-rm 'ID=arch\n' '/etc/pacman.conf' --uninstall
installer_case omarchy-rm 'ID=omarchy\nID_LIKE=arch\n' 'punktfunk-omarchy remove' --uninstall
installer_case bazzite-rm 'ID=bazzite\nID_LIKE="fedora"\nVERSION_ID=43\n' 'punktfunk-sysext remove' --uninstall
# ---------------------------------------------------------------- gate 8: channel switching
+7
View File
@@ -254,6 +254,13 @@ if [ "$UNINSTALL" = 1 ]; then
run 'sudo rm -f /etc/yum.repos.d/punktfunk.repo'
;;
pacman)
# `punktfunk-omarchy setup` put wiring OUTSIDE the packages — ufw rules, a user-unit
# drop-in, an app-menu entry, hooks.json, a picker takeover in xdph.conf. Its own
# `remove` is the reverse, and it ships IN the host package, so it has to run before
# pacman takes it away. It is idempotent: safe when setup never ran.
if [ "$ID" = omarchy ] && { command -v punktfunk-omarchy >/dev/null 2>&1 || [ "$DRY" = 1 ]; }; then
run 'punktfunk-omarchy remove'
fi
pkgs=$(installed_pf)
[ -n "$pkgs" ] && run "sudo pacman -Rns $pkgs"
run "$PACMAN_RM_REPO"