Revision: 139046 https://trac.macports.org/changeset/139046 Author: ijackson@macports.org Date: 2015-07-30 10:38:06 -0700 (Thu, 30 Jul 2015) Log Message: ----------- Add solv's returned by libsolv to dlist for installation. List of ports to be installed returned by libsolv is alphabetically sorted, hence make use of dlist and ditem to add requires ports to topologically sort the installation list. Modified Paths: -------------- branches/gsoc15-dependency/base/src/macports1.0/macports.tcl branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl Modified: branches/gsoc15-dependency/base/src/macports1.0/macports.tcl =================================================================== --- branches/gsoc15-dependency/base/src/macports1.0/macports.tcl 2015-07-30 16:33:07 UTC (rev 139045) +++ branches/gsoc15-dependency/base/src/macports1.0/macports.tcl 2015-07-30 17:38:06 UTC (rev 139046) @@ -2024,21 +2024,38 @@ set dep_res [macports::libsolv::dep_calc $portlist] ## Install each port. First use mportopen and then _mportexec. if {[info exists dep_res]} { + set dlist [list] + set portlist [list] foreach port $dep_res { - set portname [lindex $port 0] + set portsolv [lindex $port 0] + lappend portlist [$portsolv cget -name] + } + ui_debug "Printing portlist" + ui_debug $portlist + foreach port $dep_res { + set portsolv [lindex $port 0] + set portname [$portsolv cget -name] set porturl [lindex $port 1] - ui_debug "Installing $portname" set options(subport) $portname - ui_debug "mportopen $porturl [list subport $portname]" + + puts "Current: $portname" set mport [mportopen $porturl [list subport $portname]] - set result [_mportexec activate $mport] + foreach dep [$portsolv lookup_deparray $solv::SOLVABLE_REQUIRES] { + set depname [$dep __str__] + if {$depname ni $portlist} { + continue + } + puts "Adding $depname to requires" + ditem_append_unique $mport requires $depname + } + lappend dlist $mport } + set result [dlist_eval $dlist _mportactive [list _mportexec activate]] if {[info exists result]} { return $result - } else { - return {} } } + return {} } } Modified: branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl =================================================================== --- branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl 2015-07-30 16:33:07 UTC (rev 139045) +++ branches/gsoc15-dependency/base/src/macports1.0/macports_libsolv.tcl 2015-07-30 17:38:06 UTC (rev 139046) @@ -437,7 +437,7 @@ puts [$p __str__] array set portinfo $portindexinfo([$p cget -id]) set porturl "file://[[$p cget -repo] cget -name]/${portinfo(portdir)}" - lappend install_list [list [$p cget -name] $porturl] + lappend install_list [list $p $porturl] array unset -nocomplain portinfo } }
participants (1)
-
ijackson@macports.org