Policy: Blockers
Concern: What do soft ! and hard !! blockers mean in the plan?
PMS / Portage:
- Soft
!cat/pkg— prefer not to have the blocker installed; may uninstall or avoid selecting it - Hard
!!cat/pkg— forbid co-installation
Versioned forms (!<pkg-ver) restrict which versions are blocked.
Literals:
- Blocker-strength in
grouped_package_dependency(weak|strong, …) - Domain assumption:
blocker_assumption(often positive / actionable: unmerge or pick another||arm) - Ranking interaction: blocked arms demoted or excluded
Owns: resolving.pl grouped dependency clauses, ranking / candidate
filters, printer blocker reporting.
Invariants:
- Strong blockers remove or forbid the conflicting selection; soft blockers prefer alternatives and may record an assumption.
- Inside
||, a versioned soft blocker should push ranking toward a non-blocked arm when one exists (see test60 / newest-admitted preference). - Blocker assumptions are positive when a config / unmerge action restores satisfiability.
Examples: test26, test27,
test60.
See also: Choice, Assumptions.