mirror of
https://github.com/macports/mpbb.git
synced 2026-07-12 18:18:44 -07:00
cleanup: correct check for inactive deps
The dependencies registry key will return all installed versions of ports that a port depends on, and of course at most one can be active. Only deactivate if there is no active version of the dep.
This commit is contained in:
@@ -160,9 +160,16 @@ foreach port [registry::entry imaged] {
|
||||
# Deactivate anything with inactive dependencies
|
||||
# (can happen with non-port: deps)
|
||||
# https://trac.macports.org/ticket/68662
|
||||
|
||||
# Track if each port has any version active
|
||||
# (ports may have multiple installed variants, e.g. universal)
|
||||
set has_active [dict create]
|
||||
foreach port [registry::entry installed] {
|
||||
foreach dep [$port dependencies] {
|
||||
if {[$dep state] ne "installed"} {
|
||||
if {![dict exists $has_active [$dep name]]} {
|
||||
dict set has_active [$dep name] [expr {[registry::entry installed [$dep name]] ne ""}]
|
||||
}
|
||||
if {![dict get $has_active [$dep name]]} {
|
||||
ui_msg "Deactivating [$port name] because its dependency [$dep name] is not active"
|
||||
deactivate_with_dependents $port
|
||||
break
|
||||
|
||||
Reference in New Issue
Block a user