Ticket #15520: depscache.diff

File depscache.diff, 3.8 KB (added by jmroot (Joshua Root), 16 years ago)

suggested fix

  • src/macports1.0/macports.tcl

     
    19351935                    ui_error "Unable to exec port: $result"
    19361936                    return 1
    19371937                }
     1938                # we just installed it, so mark it done in the cache
     1939                set depscache(port:${portname}) 1
    19381940            } else {
    19391941                # port installed outside MacPorts
    19401942                ui_debug "$portname installed outside the MacPorts system"
    19411943                set depflag 1
     1944                # mark this depspec as satisfied in the cache
     1945                set depscache($dspec) 1
    19421946            }
    19431947
    19441948        } else {
    19451949            ui_error "Checking installed version failed: $result"
    19461950            exit 1
    19471951        }
     1952    } else {
     1953        # we'll now take care of upgrading it, so we can add it to the cache
     1954        set depscache(port:${portname}) 1
    19481955    }
    19491956    set anyactive no
    19501957    set version_installed {}
     
    20392046        set saved_do_dependents [info exists options(ports_do_dependents)]
    20402047        unset -nocomplain options(ports_do_dependents)
    20412048       
    2042         # build depends is upgraded
    2043         if {[info exists portinfo(depends_build)]} {
    2044             foreach i $portinfo(depends_build) {
    2045                 if {![llength [array get depscache $i]]} {
    2046                 set d [lindex [split $i :] end]
    2047                     set depscache($i) 1
    2048                     upgrade $d $i $variationslist [array get options] depscache
    2049                 }
     2049        # each dep type is upgraded
     2050        foreach dtype {depends_build depends_lib depends_run} {
     2051            if {[info exists portinfo($dtype)]} {
     2052                foreach i $portinfo($dtype) {
     2053                    set d [lindex [split $i :] end]
     2054                    if {![llength [array get depscache port:${d}]] && ![llength [array get depscache $i]]} {
     2055                        upgrade $d $i $variationslist [array get options] depscache
     2056                    }
     2057                }
    20502058            }
    20512059        }
    2052         # library depends is upgraded
    2053         if {[info exists portinfo(depends_lib)]} {
    2054             foreach i $portinfo(depends_lib) {
    2055                 if {![llength [array get depscache $i]]} {
    2056                 set d [lindex [split $i :] end]
    2057                     set depscache($i) 1
    2058                     upgrade $d $i $variationslist [array get options] depscache
    2059                 }
    2060             }
    2061         }
    2062         # runtime depends is upgraded
    2063         if {[info exists portinfo(depends_run)]} {
    2064             foreach i $portinfo(depends_run) {
    2065                 if {![llength [array get depscache $i]]} {
    2066                 set d [lindex [split $i :] end]
    2067                     set depscache($i) 1
    2068                     upgrade $d $i $variationslist [array get options] depscache
    2069                 }
    2070             }
    2071         }
    20722060       
    20732061        # restore dependent-following to its former value
    20742062        if {$saved_do_dependents} {
     
    20952083                    foreach dep $deplist {
    20962084                        set mpname [lindex $dep 2]
    20972085                        if {![llength [array get depscache port:${mpname}]]} {
    2098                             set depscache(port:${mpname}) 1
    20992086                            macports::upgrade $mpname port:${mpname} [array get variations] [array get options] depscache
    21002087                        }
    21012088                    }
     
    21942181            foreach dep $deplist {
    21952182                set mpname [lindex $dep 2]
    21962183                if {![llength [array get depscache port:${mpname}]]} {
    2197                     set depscache(port:${mpname}) 1
    21982184                    macports::upgrade $mpname port:${mpname} [array get variations] [array get options] depscache
    21992185                }
    22002186            }