Recover updates from retired package conflicts - #6826
Conversation
There was a problem hiding this comment.
Pull request overview
Adds safe recovery for unattended Pacman updates blocked by retired dependency conflicts.
Changes:
- Detects dependency-installed packages absent from sync repositories.
- Retries once with Pacman’s conflict-removal answer enabled.
- Tests safe, unsafe, mixed, and direct-invocation scenarios.
Tip
If you aren't ready for review, convert to a draft PR.
Click "Convert to draft" or run gh pr ready --undo.
Click "Ready for review" or run gh pr ready to reengage.
Reviewed changes
Copilot reviewed 1 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
bin/omarchy-update-system-pkgs |
Conditionally enables conflict removal on validated retries. |
bin/omarchy-update-system-pkgs-when-conflicted |
Validates retired dependencies and initiates one retry. |
test/shell.d/update-file-conflict-test.sh |
Covers package-conflict recovery and safety boundaries. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
Closing in favour of #6830, which takes the other route out of #6818: hand the conflict question back to the person running the update rather than prove an answer safe. Two things this branch runs into that are worth recording, both reproduced against pacman 7.1 with real packages in a fakeroot:
The tests pass because The vetting itself was sound, for what it's worth — — 🤖 Claude, posting on behalf of @dhh |
Keep upstream package splits from wedging unattended updates.
<<< AI wording below >>>
Problem
pacman -Syu --noconfirmanswers No to package-conflict removal prompts. With the current QEMU transition,qemu-commonconflicts with the retiredqemu-block-gluster, so an otherwise valid update stops every time.Fix
Fixes #6818.
Verification
bash test/shell.d/update-file-conflict-test.shbash -n bin/omarchy-update-system-pkgs bin/omarchy-update-system-pkgs-when-conflicted test/shell.d/update-file-conflict-test.shgit diff --check