Projects
New Ticket     Wiki     Browse Source     Timeline     Roadmap     Bug Reports     Search

Changeset 36762

Show
Ignore:
Timestamp:
05/14/08 01:48:55 (7 months ago)
Author:
jmr@…
Message:

upgrade: if the latest installed version of a port is not active, deactivate
the currently active version, if any, before trying to activate the latest
version. Fix for #12013.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/base/src/macports1.0/macports.tcl

    r36735 r36762  
    19381938        } 
    19391939    } 
    1940     set anyactive 0 
     1940    set anyactive no 
    19411941    set version_installed {} 
    19421942    set revision_installed {} 
     
    19651965                set version_installed $version 
    19661966                set revision_installed $revision 
     1967                set variant_installed $variant 
    19671968                set epoch_installed [registry::property_retrieve [registry::open_entry $portname [lindex $i 1] [lindex $i 2] $variant] epoch] 
    19681969                set num $i 
     
    19711972            set isactive [lindex $i 4] 
    19721973            if {$isactive == 1} { 
    1973                 if { [rpm-vercomp $version_installed $version] < 0 
    1974                         || ([rpm-vercomp $version_installed $version] == 0 
    1975                             && [rpm-vercomp $revision_installed $revision] < 0)} { 
    1976                     # deactivate version 
    1977                     if {[catch {portimage::deactivate $portname $version $optionslist} result]} { 
    1978                         global errorInfo 
    1979                         ui_debug "$errorInfo" 
    1980                         ui_error "Deactivating $portname @${version_installed}_${revision_installed} failed: $result" 
    1981                         return 1 
    1982                     } 
    1983                 } 
     1974                set anyactive yes 
     1975                set version_active $version 
     1976                set revision_active $revision 
     1977                set variant_active $variant 
     1978            } 
     1979        } 
     1980        if { $anyactive && ([rpm-vercomp $version_installed $version_active] != 0 
     1981                            || [rpm-vercomp $revision_installed $revision_active] != 0 
     1982                            || [string compare $variant_installed $variant_active] != 0)} { 
     1983            # deactivate version 
     1984            if {[catch {portimage::deactivate $portname ${version_active}_${revision_active}${variant_active} $optionslist} result]} { 
     1985                global errorInfo 
     1986                ui_debug "$errorInfo" 
     1987                ui_error "Deactivating $portname @${version_active}_${revision_active} failed: $result" 
     1988                return 1 
    19841989            } 
    19851990        }