[52203] branches/images-and-archives/base
blb at macports.org
blb at macports.org
Thu Jun 11 22:52:38 PDT 2009
Revision: 52203
http://trac.macports.org/changeset/52203
Author: blb at macports.org
Date: 2009-06-11 22:52:34 -0700 (Thu, 11 Jun 2009)
Log Message:
-----------
Merge from trunk
Modified Paths:
--------------
branches/images-and-archives/base/src/macports1.0/macports.tcl
branches/images-and-archives/base/src/port/port.tcl
branches/images-and-archives/base/src/port1.0/portdestroot.tcl
branches/images-and-archives/base/src/registry1.0/portuninstall.tcl
Property Changed:
----------------
branches/images-and-archives/base/
Property changes on: branches/images-and-archives/base
___________________________________________________________________
Modified: svn:mergeinfo
- /branches/gsoc08-privileges/base:37343-46937
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:50249-52004
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
+ /branches/gsoc08-privileges/base:37343-46937
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:50249-52202
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
Modified: branches/images-and-archives/base/src/macports1.0/macports.tcl
===================================================================
--- branches/images-and-archives/base/src/macports1.0/macports.tcl 2009-06-12 04:27:43 UTC (rev 52202)
+++ branches/images-and-archives/base/src/macports1.0/macports.tcl 2009-06-12 05:52:34 UTC (rev 52203)
@@ -1920,16 +1920,11 @@
# dependencies ports.
# accDeps -> accumulator for recursive calls
# return 0 if everything was ok, an non zero integer otherwise.
-proc mportdepends {mport {target ""} {recurseDeps 1} {skipSatisfied 1} {accDepsFlag 0}} {
+proc mportdepends {mport {target ""} {recurseDeps 1} {skipSatisfied 1}} {
array set portinfo [mportinfo $mport]
set depends {}
set deptypes {}
- if {$accDepsFlag == 0} {
- array set accDeps {}
- } else {
- upvar accDeps accDeps
- }
# progress indicator
if {![macports::ui_isset ports_debug]} {
@@ -1981,49 +1976,46 @@
}
set subPorts {}
+ set options [ditem_key $mport options]
+ set variations [ditem_key $mport variations]
foreach depspec $depends {
- # grab the portname portion of the depspec
- set dep_portname [lindex [split $depspec :] end]
-
- # Find the porturl
- if {[catch {set res [mportlookup $dep_portname]} error]} {
- global errorInfo
- ui_debug "$errorInfo"
- ui_error "Internal error: port lookup failed: $error"
- return 1
- }
-
- array unset portinfo
- array set portinfo [lindex $res 1]
- if {[info exists portinfo(porturl)]} {
- set porturl $portinfo(porturl)
- } else {
- ui_error "Dependency '$dep_portname' not found."
- return 1
- }
-
# Is that dependency satisfied or this port installed?
# If we don't skip or if it is not, add it to the list.
if {!$skipSatisfied || ![_mportispresent $mport $depspec]} {
- set options [ditem_key $mport options]
- set variations [ditem_key $mport variations]
- # Figure out the subport.
- set subport [mportopen $porturl $options $variations]
-
- # Append the sub-port's provides to the port's requirements list.
- ditem_append_unique $mport requires "[ditem_key $subport provides]"
+ # grab the portname portion of the depspec
+ set dep_portname [lindex [split $depspec :] end]
- if {$recurseDeps} {
- # Skip the port if it's already in the accumulated list.
- if {![info exists accDeps($dep_portname)]} {
- # Add it to the list
- set accDeps($dep_portname) 1
+ # Find the porturl
+ if {[catch {set res [mportlookup $dep_portname]} error]} {
+ global errorInfo
+ ui_debug "$errorInfo"
+ ui_error "Internal error: port lookup failed: $error"
+ return 1
+ }
- # We'll recursively iterate on it.
+ array unset portinfo
+ array set portinfo [lindex $res 1]
+ if {![info exists portinfo(porturl)]} {
+ ui_error "Dependency '$dep_portname' not found."
+ return 1
+ }
+
+ # Figure out the subport. Check the open_mports list first, since
+ # we potentially leak mport references if we mportopen each time,
+ # because mportexec only closes each open mport once.
+ set subport [dlist_search $macports::open_mports porturl $portinfo(porturl)]
+ if {$subport == {}} {
+ # We haven't opened this one yet.
+ set subport [mportopen $portinfo(porturl) $options $variations]
+ if {$recurseDeps} {
+ # Add to the list we need to recurse on.
lappend subPorts $subport
}
}
+
+ # Append the sub-port's provides to the port's requirements list.
+ ditem_append_unique $mport requires "[ditem_key $subport provides]"
}
}
@@ -2031,7 +2023,7 @@
if {$recurseDeps} {
foreach subport $subPorts {
# Sub ports should be installed (all dependencies must be satisfied).
- set res [mportdepends $subport "" $recurseDeps $skipSatisfied 1]
+ set res [mportdepends $subport "" $recurseDeps $skipSatisfied]
if {$res != 0} {
return $res
}
Modified: branches/images-and-archives/base/src/port/port.tcl
===================================================================
--- branches/images-and-archives/base/src/port/port.tcl 2009-06-12 04:27:43 UTC (rev 52202)
+++ branches/images-and-archives/base/src/port/port.tcl 2009-06-12 05:52:34 UTC (rev 52203)
@@ -1796,10 +1796,14 @@
return 1
}
foreachport $portlist {
- if { [catch {registry::activate $portname [composite_version $portversion [array get variations]] [array get options]} result] } {
- global errorInfo
- ui_debug "$errorInfo"
- break_softcontinue "port activate failed: $result" 1 status
+ if {![macports::global_option_isset ports_dryrun]} {
+ if { [catch {registry::activate $portname [composite_version $portversion [array get variations]] [array get options]} result] } {
+ global errorInfo
+ ui_debug "$errorInfo"
+ break_softcontinue "port activate failed: $result" 1 status
+ }
+ } else {
+ ui_msg "Skipping activate $portname (dry run)"
}
}
@@ -1813,10 +1817,14 @@
return 1
}
foreachport $portlist {
- if { [catch {registry::deactivate $portname [composite_version $portversion [array get variations]] [array get options]} result] } {
- global errorInfo
- ui_debug "$errorInfo"
- break_softcontinue "port deactivate failed: $result" 1 status
+ if {![macports::global_option_isset ports_dryrun]} {
+ if { [catch {registry::deactivate $portname [composite_version $portversion [array get variations]] [array get options]} result] } {
+ global errorInfo
+ ui_debug "$errorInfo"
+ break_softcontinue "port deactivate failed: $result" 1 status
+ }
+ } else {
+ ui_msg "Skipping deactivate $portname (dry run)"
}
}
Modified: branches/images-and-archives/base/src/port1.0/portdestroot.tcl
===================================================================
--- branches/images-and-archives/base/src/port1.0/portdestroot.tcl 2009-06-12 04:27:43 UTC (rev 52202)
+++ branches/images-and-archives/base/src/port1.0/portdestroot.tcl 2009-06-12 05:52:34 UTC (rev 52203)
@@ -334,7 +334,7 @@
# error "mtree violation!"
}
} else {
- ui_warn "[format [msgcat::mc "%s requests to install files outside the common directory structure!"] [option name]]"
+ ui_msg "[format [msgcat::mc "Note: %s installs files outside the common directory structure."] [option name]]"
}
# Restore umask
Modified: branches/images-and-archives/base/src/registry1.0/portuninstall.tcl
===================================================================
--- branches/images-and-archives/base/src/registry1.0/portuninstall.tcl 2009-06-12 04:27:43 UTC (rev 52202)
+++ branches/images-and-archives/base/src/registry1.0/portuninstall.tcl 2009-06-12 05:52:34 UTC (rev 52203)
@@ -126,10 +126,18 @@
}
if {[registry::property_retrieve $ref active] == 1} {
- #return -code error [msgcat::mc "Registry Error: ${portname} ${version}_${revision}${variants} is active."]
- registry::deactivate $portname ${version}_${revision}${variants} $optionslist
+ if {[info exists options(ports_dryrun)] && $options(ports_dryrun) == "yes"} {
+ ui_msg "For $portname @${version}_${revision}${variants}: skipping deactivate (dry run)"
+ } else {
+ portimage::deactivate $portname ${version}_${revision}${variants} $optionslist
+ }
}
+ if {[info exists options(ports_dryrun)] && $options(ports_dryrun) == "yes"} {
+ ui_msg "For $portname @${version}_${revision}${variants}: skipping uninstall (dry run)"
+ return 0
+ }
+
ui_msg "$UI_PREFIX [format [msgcat::mc "Uninstalling %s @%s_%s%s"] $portname $version $revision $variants]"
# Look to see if the port has registered an uninstall procedure
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090611/296822b4/attachment.html>
More information about the macports-changes
mailing list