<pre style='margin:0'>
Jackson Isaac (JacksonIsaac) pushed a commit to branch gsoc15-dependency
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/cd2cc7490ffa0ebc7ae01f0c18295d0fe6d1c367">https://github.com/macports/macports-base/commit/cd2cc7490ffa0ebc7ae01f0c18295d0fe6d1c367</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit cd2cc7490ffa0ebc7ae01f0c18295d0fe6d1c367
</span>Merge: d8ef7c5 701e7b2
Author: Jackson Isaac <jacksonisaac2008@gmail.com>
AuthorDate: Mon Dec 5 08:11:24 2016 +0530

<span style='display:block; white-space:pre;color:#404040;'>    Merge branch 'master' into gsoc15-dependency
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Merge commit 701e7b2 from master into gsoc15-dependency
</span><span style='display:block; white-space:pre;color:#404040;'>    branch.
</span>
 .gitattributes                                     |    3 +
 .gitignore                                         |   43 +
 .mailmap                                           |    4 +
 ChangeLog                                          |   72 +-
 LICENSE                                            |    4 +-
 Makefile.in                                        |   46 +-
 NEWS                                               |  267 -----
 regen.sh => autogen.sh                             |    0
 config/README.TXT                                  |    2 +-
 config/RELEASE_URL                                 |    2 +-
 configure                                          |   30 +-
 configure.ac                                       |   23 +-
 doc/Makefile.in                                    |    2 +-
 doc/archive_sites.conf                             |    2 -
 doc/asciidoc.conf                                  |    2 +-
 doc/base.mtree.in                                  |    2 +
 doc/macports.conf.5                                |    7 +-
 doc/macports.conf.5.txt                            |   12 +-
 doc/macports.conf.in                               |    4 +-
 doc/port-activate.1                                |    4 +-
 doc/port-activate.1.txt                            |    1 -
 doc/port-archive.1                                 |    4 +-
 doc/port-archive.1.txt                             |    1 -
 doc/port-archivefetch.1                            |    4 +-
 doc/port-archivefetch.1.txt                        |    1 -
 doc/port-cat.1                                     |    2 +-
 doc/port-cat.1.txt                                 |    1 -
 doc/port-cd.1                                      |    2 +-
 doc/port-cd.1.txt                                  |    1 -
 doc/port-clean.1                                   |    2 +-
 doc/port-clean.1.txt                               |    1 -
 doc/port-contents.1                                |    2 +-
 doc/port-contents.1.txt                            |    1 -
 doc/port-dependents.1                              |    2 +-
 doc/port-dependents.1.txt                          |    1 -
 doc/port-deps.1                                    |    2 +-
 doc/port-deps.1.txt                                |    1 -
 doc/port-diagnose.1                                |    2 +-
 doc/port-diagnose.1.txt                            |    1 -
 doc/port-dir.1                                     |    2 +-
 doc/port-dir.1.txt                                 |    1 -
 doc/port-distcheck.1                               |    2 +-
 doc/port-distcheck.1.txt                           |    1 -
 doc/port-distfiles.1                               |    2 +-
 doc/port-distfiles.1.txt                           |    1 -
 doc/port-dmg.1                                     |    4 +-
 doc/port-dmg.1.txt                                 |    1 -
 doc/port-echo.1                                    |    2 +-
 doc/port-echo.1.txt                                |    1 -
 doc/port-edit.1                                    |    4 +-
 doc/port-edit.1.txt                                |    1 -
 doc/port-exit.1                                    |    2 +-
 doc/port-exit.1.txt                                |    1 -
 doc/port-fetch.1                                   |    2 +-
 doc/port-fetch.1.txt                               |    1 -
 doc/port-gohome.1                                  |    2 +-
 doc/port-gohome.1.txt                              |    1 -
 doc/port-help.1                                    |    4 +-
 doc/port-help.1.txt                                |    1 -
 doc/port-info.1                                    |    2 +-
 doc/port-info.1.txt                                |    1 -
 doc/port-install.1                                 |    2 +-
 doc/port-install.1.txt                             |    1 -
 doc/port-installed.1                               |    4 +-
 doc/port-installed.1.txt                           |    1 -
 doc/port-lint.1                                    |    2 +-
 doc/port-lint.1.txt                                |    1 -
 doc/port-list.1                                    |    2 +-
 doc/port-list.1.txt                                |    1 -
 doc/port-livecheck.1                               |    6 +-
 doc/port-livecheck.1.txt                           |    3 +-
 doc/port-load.1                                    |    2 +-
 doc/port-load.1.txt                                |    1 -
 doc/port-log.1                                     |    2 +-
 doc/port-log.1.txt                                 |    1 -
 doc/port-mirror.1                                  |    2 +-
 doc/port-mirror.1.txt                              |    1 -
 doc/port-notes.1                                   |    2 +-
 doc/port-notes.1.txt                               |    1 -
 doc/port-outdated.1                                |    2 +-
 doc/port-outdated.1.txt                            |    1 -
 doc/port-platform.1                                |    2 +-
 doc/port-platform.1.txt                            |    1 -
 doc/port-provides.1                                |    2 +-
 doc/port-provides.1.txt                            |    1 -
 doc/port-reclaim.1                                 |    2 +-
 doc/port-reclaim.1.txt                             |    1 -
 doc/port-rev-upgrade.1                             |    2 +-
 doc/port-rev-upgrade.1.txt                         |    1 -
 doc/port-search.1                                  |    2 +-
 doc/port-search.1.txt                              |    1 -
 doc/port-select.1                                  |    2 +-
 doc/port-select.1.txt                              |    1 -
 doc/port-selfupdate.1                              |    2 +-
 doc/port-selfupdate.1.txt                          |    1 -
 doc/port-setrequested.1                            |    2 +-
 doc/port-setrequested.1.txt                        |    1 -
 doc/port-space.1                                   |    4 +-
 doc/port-space.1.txt                               |    1 -
 doc/port-sync.1                                    |    2 +-
 doc/port-sync.1.txt                                |    1 -
 doc/port-unarchive.1                               |    2 +-
 doc/port-unarchive.1.txt                           |    1 -
 doc/port-uninstall.1                               |    2 +-
 doc/port-uninstall.1.txt                           |    1 -
 doc/port-upgrade.1                                 |    4 +-
 doc/port-upgrade.1.txt                             |    7 +-
 doc/port-usage.1                                   |    2 +-
 doc/port-usage.1.txt                               |    1 -
 doc/port-variants.1                                |    2 +-
 doc/port-variants.1.txt                            |    1 -
 doc/port-version.1                                 |    2 +-
 doc/port-version.1.txt                             |    1 -
 doc/port.1                                         |   76 +-
 doc/port.1.txt                                     |   31 +-
 doc/portfile.7                                     |    4 +-
 doc/portgroup.7                                    |    5 +-
 doc/portgroup.7.txt                                |    1 -
 doc/portstyle.7                                    |    6 +-
 doc/portstyle.7.txt                                |    1 -
 doc/portundocumented.7                             |    4 +-
 doc/portundocumented.7.txt                         |    1 -
 doc/pubkeys.conf.5                                 |    2 +-
 doc/pubkeys.conf.5.txt                             |    1 -
 doc/pubkeys.conf.in                                |    2 -
 doc/sources.conf                                   |    4 +-
 doc/sources.conf.5                                 |    6 +-
 doc/sources.conf.5.txt                             |    5 +-
 doc/variants.conf                                  |    2 -
 doc/variants.conf.5                                |    2 +-
 doc/variants.conf.5.txt                            |    1 -
 install-sh                                         |  501 +++++++++
 install.sh                                         |  119 --
 portmgr/ReleaseProcess                             |  247 -----
 portmgr/ReleaseProcess.md                          |  296 +++++
 portmgr/dmg/License.html                           |    2 +-
 portmgr/dmg/ReadMe.rtf                             |    2 +-
 portmgr/dmg/postflight.in                          |   97 +-
 src/Makefile.in                                    |    3 +-
 src/config.h.in                                    |    7 +
 src/cregistry/sql.c                                |    9 +
 src/darwintracelib1.0/Makefile.in                  |   59 +-
 src/darwintracelib1.0/access.c                     |    2 +-
 src/darwintracelib1.0/close.c                      |    2 +-
 src/darwintracelib1.0/darwintrace.c                |    1 +
 src/darwintracelib1.0/dup2.c                       |    2 +-
 src/darwintracelib1.0/mkdir.c                      |    2 +-
 src/darwintracelib1.0/open.c                       |    2 +-
 src/darwintracelib1.0/proc.c                       |    7 +-
 src/darwintracelib1.0/readdir.c                    |    4 +-
 src/darwintracelib1.0/readlink.c                   |    2 +-
 src/darwintracelib1.0/rename.c                     |    2 +-
 src/darwintracelib1.0/rmdir.c                      |    2 +-
 src/darwintracelib1.0/stat.c                       |    2 +-
 src/darwintracelib1.0/unlink.c                     |    2 +-
 src/macports1.0/Makefile.in                        |    3 +-
 src/macports1.0/diagnose.tcl                       |    2 +-
 src/macports1.0/macports.tcl                       |  860 +++++++--------
 src/macports1.0/macports_dlist.tcl                 |   46 +-
 src/macports1.0/macports_test_autoconf.tcl.in      |    2 +-
 src/macports1.0/macports_util.tcl                  |  211 ++--
 src/macports1.0/reclaim.tcl                        |  227 ++--
 src/macports1.0/selfupdate.tcl                     |  233 ++++
 src/macports1.0/tests/library.tcl                  |   23 +
 src/macports1.0/tests/macports.test                |  104 +-
 src/macports1.0/tests/macports_util.test           |   81 +-
 src/macports1.0/tests/reclaim.test                 |   58 +-
 src/macports1.0/tests/sources.conf                 |    2 +-
 src/macports1.0/tests/test.tcl                     |  147 ---
 src/{package1.0 => mpcommon1.0}/Makefile.in        |   17 +-
 src/mpcommon1.0/mpcommon.tcl                       |    2 +
 src/mpcommon1.0/signalcatch.tcl                    |   27 +
 src/package1.0/Makefile.in                         |    2 +-
 src/package1.0/package_test_autoconf.tcl.in        |    2 +-
 src/package1.0/portarchivefetch.tcl                |    6 +-
 src/package1.0/portpkg.tcl                         |    2 +
 src/package1.0/tests/Portfile                      |    2 +-
 src/package1.0/tests/portarchivefetch.test         |    6 +-
 src/package1.0/tests/test.tcl                      |  147 ---
 src/pextlib1.0/Makefile.in                         |   31 +-
 src/pextlib1.0/Pextlib.c                           |   15 +-
 src/pextlib1.0/sip_copy_proc.c                     |  513 +++++++++
 src/pextlib1.0/{uid.h => sip_copy_proc.h}          |   49 +-
 src/pextlib1.0/system.c                            |   80 +-
 src/pextlib1.0/tracelib.c                          |  599 ++++++----
 src/pextlib1.0/uid.c                               |  101 ++
 src/pextlib1.0/uid.h                               |    1 +
 src/pextlib1.0/xinstall.c                          |   12 +-
 src/pkg_mkindex.sh.in                              |    3 +-
 src/port/port.tcl                                  | 1154 +++++++++++---------
 src/port/portindex.tcl                             |   22 +-
 src/port1.0/Makefile.in                            |    2 +-
 src/port1.0/fetch_common.tcl                       |   31 +-
 src/port1.0/port.tcl                               |    4 +
 src/port1.0/port_autoconf.tcl.in                   |    1 +
 src/port1.0/port_test_autoconf.tcl.in              |    2 +-
 src/port1.0/portactivate.tcl                       |   10 +-
 src/port1.0/portbuild.tcl                          |   16 +-
 src/port1.0/portchecksum.tcl                       |   63 +-
 src/port1.0/portclean.tcl                          |   12 +-
 src/port1.0/portconfigure.tcl                      |   62 +-
 src/port1.0/portdepends.tcl                        |    5 +-
 src/port1.0/portdestroot.tcl                       |    6 +-
 src/port1.0/portdistcheck.tcl                      |   16 +-
 src/port1.0/portfetch.tcl                          |   25 +-
 src/port1.0/portinstall.tcl                        |    2 +
 src/port1.0/portlint.tcl                           |   52 +-
 src/port1.0/portlivecheck.tcl                      |   13 +-
 src/port1.0/portsandbox.tcl                        |    3 +-
 src/port1.0/portstartupitem.tcl                    |    1 -
 src/port1.0/porttrace.tcl                          |  840 +++++++-------
 src/port1.0/portutil.tcl                           |   89 +-
 src/port1.0/tests/portactivate.test                |   82 +-
 src/port1.0/tests/portbuild.test                   |  139 +++
 src/port1.0/tests/portdistcheck.test               |    4 +
 src/port1.0/tests/porttrace.test                   |   42 +
 src/port1.0/tests/portutil.test                    |   55 +-
 src/registry2.0/portimage.tcl                      |    3 +-
 src/registry2.0/portuninstall.tcl                  |    4 +-
 src/{port1.0 => }/tests/test.tcl                   |    8 +-
 tests/test-macports.conf                           |    5 +-
 tests/test/case-insensitive-deactivate/Portfile.in |    2 +-
 tests/test/checksums-1/Portfile                    |    2 +-
 tests/test/dependencies-a/Portfile                 |    2 +-
 tests/test/dependencies-b/Portfile                 |    2 +-
 tests/test/dependencies-c/Portfile                 |    2 +-
 tests/test/dependencies-d/Portfile                 |    2 +-
 tests/test/dependencies-e/Portfile                 |    2 +-
 tests/test/envvariables/Portfile                   |    2 +-
 tests/test/library.tcl.in                          |    2 +-
 tests/test/site-tags/Portfile                      |   29 +-
 tests/test/statefile-unknown-version/Portfile      |    2 +-
 tests/test/statefile-version1-outdated/Portfile    |    2 +-
 tests/test/statefile-version1/Portfile             |    2 +-
 tests/test/statefile-version2-invalid/Portfile     |    2 +-
 tests/test/statefile-version2-outdated/Portfile    |    2 +-
 tests/test/statefile-version2/Portfile             |    2 +-
 tests/test/svn-and-patchsites/Portfile             |    2 +-
 tests/test/trace/Makefile                          |    7 +-
 tests/test/trace/Portfile                          |    4 +-
 tests/test/trace/master                            |   34 +-
 tests/test/universal/Portfile.in                   |    2 +-
 tests/test/variants/Portfile                       |    2 +-
 tests/test/xcodeversion/Portfile                   |    2 +-
 vendor/Makefile.in                                 |    7 +-
 vendor/tcl8.5.15-src.tar.gz                        |  Bin 4536117 -> 0 bytes
 vendor/tcl8.5.18-src.tar.gz                        |  Bin 0 -> 4534628 bytes
 vendor/tcllib-1.15.tar.gz                          |  Bin 6175150 -> 0 bytes
 vendor/tcllib-1.17.tar.gz                          |  Bin 0 -> 8183228 bytes
 vendor/tclsh.in                                    |   19 +
 vendor/thread2.7.0.tar.gz                          |  Bin 293785 -> 0 bytes
 vendor/thread2.7.3.tar.gz                          |  Bin 0 -> 291332 bytes
 252 files changed, 5234 insertions(+), 3519 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --cc src/macports1.0/Makefile.in
</span><span style='display:block; white-space:pre;color:#808080;'>index bc3a471,efff040..2309d3b
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@@ -4,7 -4,7 +4,8 @@@ VPATH  = @srcdir
</span>  include ../../Mk/macports.autoconf.mk
  
  SRCS=         macports.tcl macports_dlist.tcl macports_util.tcl \
 -              macports_autoconf.tcl diagnose.tcl reclaim.tcl selfupdate.tcl
 +              macports_autoconf.tcl diagnose.tcl reclaim.tcl macports_libsolv.tcl
<span style='display:block; white-space:pre;background:#e0ffe0;'>++               selfupdate.tcl
</span>  OBJS=            macports.o get_systemconfiguration_proxies.o sysctl.o
  SHLIB_NAME=   MacPorts${SHLIB_SUFFIX}
  
<span style='display:block; white-space:pre;color:#808080;'>diff --cc src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index a02c37b,a46ea70..52a234b
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@@ -38,9 -38,12 +38,13 @@@ package require macports_dlist 1.
</span>  package require macports_util 1.0
  package require diagnose 1.0
  package require reclaim 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ package require selfupdate 1.0
</span>  package require Tclx
 +package require macports_libsolv 1.0
  
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ # catch wrapper shared with port1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ package require mpcommon 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>  namespace eval macports {
      namespace export bootstrap_options user_options portinterp_options open_mports ui_priorities
      variable bootstrap_options "\
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@@ -2741,115 -2815,104 +2841,118 @@@ proc mportsearch {pattern {case_sensiti
</span>      set matches [list]
      set easy [expr {$field eq "name"}]
  
 -    set found 0
 -    foreach source $sources {
 -        set source [lindex $source 0]
 -        set protocol [macports::getprotocol $source]
 -        try -pass_signal {
 -            set fd [open [macports::getindex $source] r]
 -
 +    ## Use libsolv search if -l is passed
 +    if {[info exists macports::global_options(ports_depengine)]} {
 +        if {$macports::global_options(ports_depengine) eq "libsolv"} {
 +            # macports::libsolv::print
 +            set search_res [macports::libsolv::search $pattern \
 +            $case_sensitive $matchstyle $field]
 +            # macports::libsolv::create_installed_pool
 +            return $search_res
 +        }
 +    } else {
 +        ## Use builtin search algorithm.
 +        set found 0
 +        foreach source $sources {
 +            set source [lindex $source 0]
 +            set protocol [macports::getprotocol $source]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-             if {[catch {set fd [open [macports::getindex $source] r]} result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 ui_warn "Can't open index file for source: $source"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-             } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 try {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++            
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             try -pass_signal {
</span> -                incr found 1
 -                while {[gets $fd line] >= 0} {
 -                    array unset portinfo
 -                    set name [lindex $line 0]
 -                    set len  [lindex $line 1]
 -                    set line [read $fd $len]
 -
 -                    if {$easy} {
 -                        set target $name
 -                    } else {
 -                        array set portinfo $line
 -                        if {![info exists portinfo($field)]} {
 -                            continue
 -                        }
 -                        set target $portinfo($field)
 -                    }
<span style='display:block; white-space:pre;background:#e0ffe0;'>++               set fd [open [macports::getindex $source] r]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                  try -pass_signal {
</span> +                    incr found 1
 +                    while {[gets $fd line] >= 0} {
 +                        array unset portinfo
 +                        set name [lindex $line 0]
 +                        set len  [lindex $line 1]
 +                        set line [read $fd $len]
  
 -                    switch -- $matchstyle {
 -                        exact {
 -                            if {$case_sensitive} {
 -                                set compres [string compare $pattern $target]
 -                            } else {
 -                                set compres [string compare -nocase $pattern $target]
 +                        if {$easy} {
 +                            set target $name
 +                        } else {
 +                            array set portinfo $line
 +                            if {![info exists portinfo($field)]} {
 +                                continue
                              }
 -                            set matchres [expr {0 == $compres}]
 +                            set target $portinfo($field)
                          }
 -                        glob {
 -                            if {$case_sensitive} {
 -                                set matchres [string match $pattern $target]
 -                            } else {
 -                                set matchres [string match -nocase $pattern $target]
 +
 +                        switch -- $matchstyle {
 +                            exact {
 +                                if {$case_sensitive} {
 +                                    set compres [string compare $pattern $target]
 +                                } else {
 +                                    set compres [string compare -nocase $pattern $target]
 +                                }
 +                                set matchres [expr {0 == $compres}]
                              }
 -                        }
 -                        regexp {
 -                            if {$case_sensitive} {
 -                                set matchres [regexp -- $pattern $target]
 -                            } else {
 -                                set matchres [regexp -nocase -- $pattern $target]
 +                            glob {
 +                                if {$case_sensitive} {
 +                                    set matchres [string match $pattern $target]
 +                                } else {
 +                                    set matchres [string match -nocase $pattern $target]
 +                                }
 +                            }
 +                            regexp {
 +                                if {$case_sensitive} {
 +                                    set matchres [regexp -- $pattern $target]
 +                                } else {
 +                                    set matchres [regexp -nocase -- $pattern $target]
 +                                }
 +                            }
 +                            default {
 +                                return -code error "mportsearch: Unsupported matching style: ${matchstyle}."
                              }
                          }
 -                        default {
 -                            return -code error "mportsearch: Unsupported matching style: ${matchstyle}."
 -                        }
 -                    }
  
 -                    if {$matchres == 1} {
 -                        if {$easy} {
 -                            array set portinfo $line
 -                        }
 -                        switch -- $protocol {
 -                            rsync {
 -                                # Rsync files are local
 -                                set source_url file://[macports::getsourcepath $source]
 +                        if {$matchres == 1} {
 +                            if {$easy} {
 +                                array set portinfo $line
                              }
 -                            https -
 -                            http -
 -                            ftp {
 -                                # daily snapshot tarball
 -                                set source_url file://[macports::getsourcepath $source]
 +                            switch -- $protocol {
 +                                rsync {
 +                                    # Rsync files are local
 +                                    set source_url file://[macports::getsourcepath $source]
 +                                }
 +                                https -
 +                                http -
 +                                ftp {
 +                                    # daily snapshot tarball
 +                                    set source_url file://[macports::getsourcepath $source]
 +                                }
 +                                default {
 +                                    set source_url $source
 +                                }
                              }
 -                            default {
 -                                set source_url $source
 +                            if {[info exists portinfo(portdir)]} {
 +                                set porturl ${source_url}/$portinfo(portdir)
 +                                lappend line porturl $porturl
 +                                ui_debug "Found port in $porturl"
 +                            } else {
 +                                ui_debug "Found port info: $line"
                              }
 +                            lappend matches $name
 +                            lappend matches $line
                          }
 -                        if {[info exists portinfo(portdir)]} {
 -                            set porturl ${source_url}/$portinfo(portdir)
 -                            lappend line porturl $porturl
 -                            ui_debug "Found port in $porturl"
 -                        } else {
 -                            ui_debug "Found port info: $line"
 -                        }
 -                        lappend matches $name
 -                        lappend matches $line
                      }
 +                } catch * {
 +                    ui_warn "It looks like your PortIndex file for $source may be corrupt."
 +                    throw
 +                } finally {
 +                    close $fd
                  }
 -            } catch * {
 -                ui_warn "It looks like your PortIndex file for $source may be corrupt."
 -                throw
 -            } finally {
 -                close $fd
              }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+         } catch {*} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ui_warn "Can't open index file for source: $source"
</span>          }
 -    }
 -    if {!$found} {
 -        return -code error "No index(es) found! Have you synced your port definitions? Try running 'port selfupdate'."
 -    }
 +    
 +        if {!$found} {
 +            return -code error "No index(es) found! Have you synced your port definitions? Try running 'port selfupdate'."
 +        }
  
 -    return $matches
 +        return $matches
 +    }
  }
  
  ##
<span style='display:block; white-space:pre;color:#808080;'>diff --cc src/port/port.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 2d2e148,5312e5a..511f5b9
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/port.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@@ -4052,103 -4029,89 +4029,104 @@@ proc action_target { action portlist op
</span>      if {($action eq "install" || $action eq "archive") && ![macports::global_option_isset ports_dryrun] && [prefix_unwritable]} {
          return 1
      }
 -    foreachport $portlist {
 -        array unset portinfo
 -        # If we have a url, use that, since it's most specific
 -        # otherwise try to map the portname to a url
 -        if {$porturl eq ""} {
 -            # Verify the portname, getting portinfo to map to a porturl
 -            if {[catch {set res [mportlookup $portname]} result]} {
 -                global errorInfo
 -                ui_debug "$errorInfo"
 -                break_softcontinue "lookup of portname $portname failed: $result" 1 status
 -            }
 -            if {[llength $res] < 2} {
 -                # don't error for ports that are installed but not in the tree
 -                if {[registry::entry_exists_for_name $portname]} {
 -                    ui_warn "Skipping $portname (not in the ports tree)"
 -                    continue
 -                } else {
 -                    break_softcontinue "Port $portname not found" 1 status
 +    
 +    ## Use libsolv Dependency Calculation if -l is passed
 +    if {[info exists macports::global_options(ports_depengine)]} {
 +        if {$macports::global_options(ports_depengine) eq "libsolv"} {
 +            if {$action eq "install"} {
 +                if {![info exists options(ports_install_unrequested)]} {
 +                    set options(ports_requested) 1
                  }
 +                # we actually activate as well
 +                set target activate
 +                set dep_res [mportinstall $portlist $target]
              }
 -            array set portinfo [lindex $res 1]
 -            set porturl $portinfo(porturl)
          }
 +    } else {
 +        foreachport $portlist {
 +            array unset portinfo
 +            # If we have a url, use that, since it's most specific
 +            # otherwise try to map the portname to a url
 +            if {$porturl eq ""} {
 +                # Verify the portname, getting portinfo to map to a porturl
 +                if {[catch {set res [mportlookup $portname]} result]} {
 +                    global errorInfo
 +                    ui_debug "$errorInfo"
 +                    break_softcontinue "lookup of portname $portname failed: $result" 1 status
 +                }
 +                if {[llength $res] < 2} {
 +                    # don't error for ports that are installed but not in the tree
 +                    if {[registry::entry_exists_for_name $portname]} {
 +                        ui_warn "Skipping $portname (not in the ports tree)"
 +                        continue
 +                    } else {
 +                        break_softcontinue "Port $portname not found" 1 status
 +                    }
 +                }
 +                array set portinfo [lindex $res 1]
 +                set porturl $portinfo(porturl)
 +            }
  
 -        # use existing variants iff none were explicitly requested
 -        if {[array get requested_variations] eq "" && [array get variations] ne ""} {
 -            array unset requested_variations
 -            array set requested_variations [array get variations]
 -        }
 +            # use existing variants iff none were explicitly requested
 +            if {[array get requested_variations] eq "" && [array get variations] ne ""} {
 +                array unset requested_variations
 +                array set requested_variations [array get variations]
 +            }
  
 -        # Add any global_variations to the variations
 -        # specified for the port
 -        foreach { variation value } [array get global_variations] {
 -            if { ![info exists requested_variations($variation)] } {
 -                set requested_variations($variation) $value
 +            # Add any global_variations to the variations
 +            # specified for the port
 +            foreach { variation value } [array get global_variations] {
 +                if { ![info exists requested_variations($variation)] } {
 +                    set requested_variations($variation) $value
 +                }
              }
 -        }
  
 -        # If version was specified, save it as a version glob for use
 -        # in port actions (e.g. clean).
 -        if {[string length $portversion]} {
 -            set options(ports_version_glob) $portversion
 -        }
 -        # if installing, mark the port as explicitly requested
 -        if {$action eq "install"} {
 -            if {![info exists options(ports_install_unrequested)]} {
 -                set options(ports_requested) 1
 +            # If version was specified, save it as a version glob for use
 +            # in port actions (e.g. clean).
 +            if {[string length $portversion]} {
 +                set options(ports_version_glob) $portversion
              }
 -            # we actually activate as well
 -            set target activate
 -        } elseif {$action eq "archive"} {
 -            set target install
 -        } else {
 -            set target $action
 -        }
 -        if {![info exists options(subport)]} {
 -            if {[info exists portinfo(name)]} {
 -                set options(subport) $portinfo(name)
 +            # if installing, mark the port as explicitly requested
 +            if {$action eq "install"} {
 +                if {![info exists options(ports_install_unrequested)]} {
 +                    set options(ports_requested) 1
 +                }
 +                # we actually activate as well
 +                set target activate
 +            } elseif {$action eq "archive"} {
 +                set target install
              } else {
 -                set options(subport) $portname
 +                set target $action
 +            }
 +            if {![info exists options(subport)]} {
 +                if {[info exists portinfo(name)]} {
 +                    set options(subport) $portinfo(name)
 +                } else {
 +                    set options(subport) $portname
 +                }
 +            }
 +            if {[catch {set workername [mportopen $porturl [array get options] [array get requested_variations]]} result]} {
 +                global errorInfo
 +                ui_debug "$errorInfo"
 +                break_softcontinue "Unable to open port: $result" 1 status
 +            }
 +            if {[catch {set result [mportexec $workername $target]} result]} {
 +                global errorInfo
 +                mportclose $workername
 +                ui_debug "$errorInfo"
 +                break_softcontinue "Unable to execute port: $result" 1 status
              }
 -        }
 -        if {[catch {set workername [mportopen $porturl [array get options] [array get requested_variations]]} result]} {
 -            global errorInfo
 -            ui_debug "$errorInfo"
 -            break_softcontinue "Unable to open port: $result" 1 status
 -        }
 -        if {[catch {set result [mportexec $workername $target]} result]} {
 -            global errorInfo
 -            mportclose $workername
 -            ui_debug "$errorInfo"
 -            break_softcontinue "Unable to execute port: $result" 1 status
 -        }
 -
 -        mportclose $workername
  
 -        # Process any error that wasn't thrown and handled already
 -        if {$result} {
 -            print_tickets_url
 -            break_softcontinue "Processing of port $portname failed" 1 status
 +            mportclose $workername
 +            
 +            # Process any error that wasn't thrown and handled already
 +            if {$result} {
 +                print_tickets_url
 +                break_softcontinue "Processing of port $portname failed" 1 status
 +            }
          }
 -    }
 +    } 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span>      if {$status == 0 && $action eq "install" && ![macports::global_option_isset ports_dryrun]} {
          array set options $opts
          if {![info exists options(ports_nodeps)] && ![info exists options(ports_install_no-rev-upgrade)] && ${macports::revupgrade_autorun}} {
<span style='display:block; white-space:pre;color:#808080;'>diff --cc vendor/Makefile.in
</span><span style='display:block; white-space:pre;color:#808080;'>index bc82eb2,122b87c..d9f8bb7
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/vendor/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/vendor/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@@ -44,13 -41,12 +44,16 @@@ all-tclx: all-tc
</span>  
  %-tcllib:
        @echo ===\> making $(@:%-tcllib=%) in ${DIRPRFX}@VENDOR_TCLLIB_SUBDIR@
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        @umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ $(@:%-tcllib=%)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ TCLSH_PROG=@INTREE_TCLSH@ $(@:%-tcllib=%)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # tcllib requires a working tclsh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ all-tcllib: all-tcl
</span>  
 -destroot: destroot-tcl destroot-tclthread destroot-tclx destroot-tcllib
 +%-libsolv:
 +      @echo ===\> making $(@:%-libsolv=%) in ${DIRPRFX}@VENDOR_LIBSOLV_SUBDIR@
 +      @umask 0022; $(MAKE) -C @VENDOR_LIBSOLV_SUBDIR@ $(@:%-libsolv=%)
 +
 +destroot: destroot-tcl destroot-tclthread destroot-tclx destroot-tcllib destroot-libsolv
  destroot-tcl: all-tcl
        @echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCL_SUBDIR@
        @umask 0022; $(MAKE) -C @VENDOR_TCL_SUBDIR@ DESTDIR=${DESTROOT} @VENDOR_TCL_INSTALL@
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@@ -65,13 -61,9 +68,13 @@@ destroot-tclx: all-tcl
</span>  
  destroot-tcllib: all-tcllib
        @echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_TCLLIB_SUBDIR@
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        @umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ DESTDIR=${DESTROOT} @VENDOR_TCLLIB_INSTALL@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   @umask 0022; $(MAKE) -C @VENDOR_TCLLIB_SUBDIR@ DESTDIR=${DESTROOT} TCLSH_PROG=@INTREE_TCLSH@ @VENDOR_TCLLIB_INSTALL@
</span>  
 -install: install-tcl install-tclthread install-tclx install-tcllib
 +destroot-libsolv: all-libsolv
 +      @echo ===\> staging to destroot in ${DIRPRFX}@VENDOR_LIBSOLV_SUBDIR@
 +      @umask 0022; $(MAKE) -C @VENDOR_LIBSOLV_SUBDIR@ DESTDIR=${DESTROOT} @VENDOR_LIBSOLV_INSTALL@
 +
 +install: install-tcl install-tclthread install-tclx install-tcllib install-libsolv
  install-tcl:
        @echo ===\> making $(@:%-tcl=%) in ${DIRPRFX}@VENDOR_TCL_SUBDIR@
        @umask 0022; $(MAKE) -C @VENDOR_TCL_SUBDIR@ @VENDOR_TCL_INSTALL@
</pre><pre style='margin:0'>

</pre>