New Ticket     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Ticket #12013: upgrade-deactivate.diff

File upgrade-deactivate.diff, 2.6 KB (added by jmr@…, 4 years ago)

proposed fix

  • src/macports1.0/macports.tcl

     
    19261926            exit 1 
    19271927        } 
    19281928    } 
    1929     set anyactive 0 
     1929    set anyactive no 
    19301930    set version_installed {} 
    19311931    set revision_installed {} 
    19321932    set epoch_installed 0 
     
    19531953                        && [rpm-vercomp $revision $revision_installed] > 0)} { 
    19541954                set version_installed $version 
    19551955                set revision_installed $revision 
     1956                set variant_installed $variant 
    19561957                set epoch_installed [registry::property_retrieve [registry::open_entry $portname [lindex $i 1] [lindex $i 2] $variant] epoch] 
    19571958                set num $i 
    19581959            } 
    19591960 
    19601961            set isactive [lindex $i 4] 
    19611962            if {$isactive == 1} { 
    1962                 if { [rpm-vercomp $version_installed $version] < 0 
    1963                         || ([rpm-vercomp $version_installed $version] == 0 
    1964                             && [rpm-vercomp $revision_installed $revision] < 0)} { 
    1965                     # deactivate version 
    1966                     if {[catch {portimage::deactivate $portname $version $optionslist} result]} { 
    1967                         global errorInfo 
    1968                         ui_debug "$errorInfo" 
    1969                         ui_error "Deactivating $portname @${version_installed}_${revision_installed} failed: $result" 
    1970                         return 1 
    1971                     } 
    1972                 } 
     1963                set anyactive yes 
     1964                set version_active $version 
     1965                set revision_active $revision 
     1966                set variant_active $variant 
    19731967            } 
    19741968        } 
     1969        if { $anyactive && ([rpm-vercomp $version_installed $version_active] != 0 
     1970                            || [rpm-vercomp $revision_installed $revision_active] != 0 
     1971                            || [string compare $variant_installed $variant_active] != 0)} { 
     1972            # deactivate version 
     1973            if {[catch {portimage::deactivate $portname ${version_active}_${revision_active}${variant_active} $optionslist} result]} { 
     1974                global errorInfo 
     1975                ui_debug "$errorInfo" 
     1976                ui_error "Deactivating $portname @${version_active}_${revision_active} failed: $result" 
     1977                return 1 
     1978            } 
     1979        } 
    19751980        if { [lindex $num 4] == 0 && 0 == [string compare "image" ${macports::registry.installtype}] } { 
    19761981            # activate the latest installed version 
    19771982            if {[catch {portimage::activate $portname ${version_installed}_${revision_installed}$variant $optionslist} result]} {