[64419] trunk/base/src/registry2.0/portimage.tcl

jmr at macports.org jmr at macports.org
Thu Mar 4 20:48:22 PST 2010


Revision: 64419
          http://trac.macports.org/changeset/64419
Author:   jmr at macports.org
Date:     2010-03-04 20:48:21 -0800 (Thu, 04 Mar 2010)
Log Message:
-----------
with reg2, fix activate's deactivation of any active version of the same port

Modified Paths:
--------------
    trunk/base/src/registry2.0/portimage.tcl

Modified: trunk/base/src/registry2.0/portimage.tcl
===================================================================
--- trunk/base/src/registry2.0/portimage.tcl	2010-03-05 02:54:07 UTC (rev 64418)
+++ trunk/base/src/registry2.0/portimage.tcl	2010-03-05 04:48:21 UTC (rev 64419)
@@ -99,16 +99,13 @@
 
             # if another version of this port is active, deactivate it first
             set current [registry::entry installed $name]
-            if { [llength $current] > 1 } {
-                foreach i $current {
-                    set iversion [$i version]
-                    set irevision [$i revision]
-                    set ivariants [$i variants]
-                    set ispecifier "${iversion}_${irevision}${ivariants}"
-                    if { ![string equal $specifier $ispecifier]
-                            && [string equal [$i state] "installed"] } {
-                        lappend todeactivate $ispecifier
-                    }
+            foreach i $current {
+                set iversion [$i version]
+                set irevision [$i revision]
+                set ivariants [$i variants]
+                set ispecifier "${iversion}_${irevision}${ivariants}"
+                if { ![string equal $specifier $ispecifier] } {
+                    lappend todeactivate $ispecifier
                 }
             }
 
@@ -155,7 +152,7 @@
     }
 
     foreach a $todeactivate {
-        deactivate $name $a [list ports_force 1]
+        deactivate $name $a [list ports_nodepcheck 1]
     }
 
     if {$v != ""} {
@@ -260,7 +257,9 @@
             return -code error "Image error: ${name} @${specifier} is not active."
         }
 
-        registry::check_dependents $requested $force
+        if {![info exists options(ports_nodepcheck)] || ![string is true -strict $options(ports_nodepcheck)]} {
+            registry::check_dependents $requested $force
+        }
 
         _deactivate_contents $requested {} $force
         $requested state imaged
@@ -452,7 +451,7 @@
                         if {[info exists portinfo(replaced_by)] && [lsearch -exact -nocase $portinfo(replaced_by) [$port name]] != -1} {
                             lappend deactivated $owner
                             # XXX this is bad, deactivate does another write transaction (probably deadlocks)
-                            deactivate [$owner name] "" ""
+                            deactivate [$owner name] "" [list ports_nodepcheck 1]
                             set owner {}
                         }
                     }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20100304/b7e34b83/attachment.html>


More information about the macports-changes mailing list