[54894] branches/images-and-archives/base
blb at macports.org
blb at macports.org
Mon Aug 3 18:51:53 PDT 2009
Revision: 54894
http://trac.macports.org/changeset/54894
Author: blb at macports.org
Date: 2009-08-03 18:51:53 -0700 (Mon, 03 Aug 2009)
Log Message:
-----------
Merge from trunk
Modified Paths:
--------------
branches/images-and-archives/base/src/macports1.0/macports.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/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:50249-54852
/users/perry/base-bugs_and_notes:45682-46060
/users/perry/base-select:44044-44692
+ /branches/gsoc08-privileges/base:37343-46937
/branches/universal-sanity/base:51872-52323
/branches/variant-descs-14482/base:34469-34855,34900-37508,37511-37512,41040-41463,42575-42626,42640-42659
/trunk/base:50249-54893
/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-08-04 01:38:20 UTC (rev 54893)
+++ branches/images-and-archives/base/src/macports1.0/macports.tcl 2009-08-04 01:51:53 UTC (rev 54894)
@@ -1397,6 +1397,11 @@
|| $target == "rpm" || $target == "dpkg"
|| $target == "srpm"|| $target == "portpkg" } {
+ # upgrade dependencies that are already installed
+ if {![macports::global_option_isset ports_nodeps]} {
+ macports::_upgrade_mport_deps $mport $target
+ }
+
ui_msg -nonewline "---> Computing dependencies for [_mportkey $mport name]"
if {[macports::ui_isset ports_debug]} {
# play nice with debug messages
@@ -1451,6 +1456,37 @@
return $result
}
+# upgrade any dependencies of mport that are installed and needed for target
+proc macports::_upgrade_mport_deps {mport target} {
+ set options [ditem_key $mport options]
+ set variations [mport_filtervariants [ditem_key $mport variations] no]
+ set deptypes [macports::_deptypes_for_target $target]
+ array set portinfo [mportinfo $mport]
+ set depends {}
+ array set depscache {}
+
+ # keep recursion under control
+ set macports::global_options(ports_nodeps) yes
+
+ foreach deptype $deptypes {
+ # Add to the list of dependencies if the option exists and isn't empty.
+ if {[info exists portinfo($deptype)] && $portinfo($deptype) != ""} {
+ set depends [concat $depends $portinfo($deptype)]
+ }
+ }
+
+ foreach depspec $depends {
+ set dep_portname [lindex [split $depspec :] end]
+ if {![info exists depscache(port:$dep_portname)] && [registry::entry_exists_for_name $dep_portname]} {
+ set status [macports::upgrade $dep_portname "port:$dep_portname" {} $variations $options depscache]
+ if {$status != 0 && ![macports::ui_isset ports_processall]} {
+ return -code error "upgrade $portname failed"
+ }
+ }
+ }
+ unset macports::global_options(ports_nodeps)
+}
+
proc macports::getsourcepath {url} {
global macports::portdbpath
@@ -1983,30 +2019,8 @@
}
}
- # Determine deptypes to look for based on target
- switch $target {
- fetch -
- checksum { set deptypes "depends_fetch" }
- extract -
- patch { set deptypes "depends_fetch depends_extract" }
- configure -
- build { set deptypes "depends_fetch depends_extract depends_lib depends_build" }
+ set deptypes [macports::_deptypes_for_target $target]
- test -
- destroot -
- imagefile -
- install -
- dmg -
- pkg -
- portpkg -
- mdmg -
- mpkg -
- rpm -
- srpm -
- dpkg -
- "" { set deptypes "depends_fetch depends_extract depends_lib depends_build depends_run" }
- }
-
# Gather the dependencies for deptypes
foreach deptype $deptypes {
# Add to the list of dependencies if the option exists and isn't empty.
@@ -2073,6 +2087,33 @@
return 0
}
+# Determine dependency types required for target
+proc macports::_deptypes_for_target {target} {
+ switch $target {
+ fetch -
+ checksum { set deptypes "depends_fetch" }
+ extract -
+ patch { set deptypes "depends_fetch depends_extract" }
+ configure -
+ build { set deptypes "depends_fetch depends_extract depends_lib depends_build" }
+
+ test -
+ destroot -
+ imagefile -
+ install -
+ dmg -
+ pkg -
+ portpkg -
+ mdmg -
+ mpkg -
+ rpm -
+ srpm -
+ dpkg -
+ "" { set deptypes "depends_fetch depends_extract depends_lib depends_build depends_run" }
+ }
+ return $deptypes
+}
+
# selfupdate procedure
proc macports::selfupdate {{optionslist {}}} {
global macports::prefix macports::portdbpath macports::libpath macports::rsync_server macports::rsync_dir macports::rsync_options
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20090803/c5efbd8e/attachment.html>
More information about the macports-changes
mailing list