<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[118559] trunk/base</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="https://trac.macports.org/changeset/118559">118559</a></dd>
<dt>Author</dt> <dd>cal@macports.org</dd>
<dt>Date</dt> <dd>2014-04-04 15:02:44 -0700 (Fri, 04 Apr 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>base: remove macports_fastload.tcl, use correct Tcl, install port-tclsh for contrib software, specify LD_LIBRARY_PATH for intree Tcl for Linux, see #43208

macports_fastload.tcl contained two blocks of code: The first one was dead
because it was only used with Tcl &lt; 8.5, the second one sourced the pkgIndex.tcl
files of all MacPorts Tcl packages. That was previously necessary to ensure
`package require macports 1.0` would load the code from the correct prefix and
might also have improved performance because $auto_path of /usr/bin/tclsh
contains 10 entries. With our local copy of Tcl, the number of files read is
around 100 at most, so I think that's a non-issue from a performance POV. We
don't need the preloading to select the correct MacPorts prefix, because the
selection of the Tcl interpreter now does that for us correctly.

For this to work correctly, every Tcl file must now be executed with the correct
Tcl interpreter -- that replaces sourcing macports_fastload.tcl from the correct
prefix. Some of our install scripts still used /usr/bin/env tclsh.

This change also solves a potential build problem on Linux in src/pkg_mkindex.sh
because the Tcl library matching the in-tree Tcl interpreter might not be found
without LD_LIBRARY_PATH.

Furthermore, this adds a $prefix/bin/port-tclsh wrapper script that should be
used by contrib tools that need to use the MacPorts API. The shebang line should
be
 #!/usr/bin/env port-tclsh
which will cause the contrib script to automatically work on the port
installation currently first in $PATH.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkbaseconfigureac">trunk/base/configure.ac</a></li>
<li><a href="#trunkbasesrcMakefilein">trunk/base/src/Makefile.in</a></li>
<li><a href="#trunkbasesrcmacports10Makefilein">trunk/base/src/macports1.0/Makefile.in</a></li>
<li><a href="#trunkbasesrcmacports10testsmacportstest">trunk/base/src/macports1.0/tests/macports.test</a></li>
<li><a href="#trunkbasesrcmacports10testsmacports_dlisttest">trunk/base/src/macports1.0/tests/macports_dlist.test</a></li>
<li><a href="#trunkbasesrcmacports10testsmacports_utiltest">trunk/base/src/macports1.0/tests/macports_util.test</a></li>
<li><a href="#trunkbasesrcpackage10testsportarchivefetchtest">trunk/base/src/package1.0/tests/portarchivefetch.test</a></li>
<li><a href="#trunkbasesrcpackage10testsportdmgtest">trunk/base/src/package1.0/tests/portdmg.test</a></li>
<li><a href="#trunkbasesrcpackage10testsportdpkgtest">trunk/base/src/package1.0/tests/portdpkg.test</a></li>
<li><a href="#trunkbasesrcpackage10testsportmdmgtest">trunk/base/src/package1.0/tests/portmdmg.test</a></li>
<li><a href="#trunkbasesrcpackage10testsportmpkgtest">trunk/base/src/package1.0/tests/portmpkg.test</a></li>
<li><a href="#trunkbasesrcpackage10testsportpkgtest">trunk/base/src/package1.0/tests/portpkg.test</a></li>
<li><a href="#trunkbasesrcpkg_mkindexshin">trunk/base/src/pkg_mkindex.sh.in</a></li>
<li><a href="#trunkbasesrcportMakefilein">trunk/base/src/port/Makefile.in</a></li>
<li><a href="#trunkbasesrcportporttcl">trunk/base/src/port/port.tcl</a></li>
<li><a href="#trunkbasesrcportportindextcl">trunk/base/src/port/portindex.tcl</a></li>
<li><a href="#trunkbasesrcportportmirrortcl">trunk/base/src/port/portmirror.tcl</a></li>
<li><a href="#trunkbasesrcport10testsportactivatetest">trunk/base/src/port1.0/tests/portactivate.test</a></li>
<li><a href="#trunkbasesrcport10testsportchecksumtest">trunk/base/src/port1.0/tests/portchecksum.test</a></li>
<li><a href="#trunkbasesrcport10testsportcleantest">trunk/base/src/port1.0/tests/portclean.test</a></li>
<li><a href="#trunkbasesrcport10testsportdeactivatetest">trunk/base/src/port1.0/tests/portdeactivate.test</a></li>
<li><a href="#trunkbasesrcport10testsportdependstest">trunk/base/src/port1.0/tests/portdepends.test</a></li>
<li><a href="#trunkbasesrcport10testsportdistchecktest">trunk/base/src/port1.0/tests/portdistcheck.test</a></li>
<li><a href="#trunkbasesrcport10testsportinstalltest">trunk/base/src/port1.0/tests/portinstall.test</a></li>
<li><a href="#trunkbasesrcport10testsportloadtest">trunk/base/src/port1.0/tests/portload.test</a></li>
<li><a href="#trunkbasesrcport10testsportmaintest">trunk/base/src/port1.0/tests/portmain.test</a></li>
<li><a href="#trunkbasesrcport10testsportpatchtest">trunk/base/src/port1.0/tests/portpatch.test</a></li>
<li><a href="#trunkbasesrcport10testsporttesttest">trunk/base/src/port1.0/tests/porttest.test</a></li>
<li><a href="#trunkbasesrcport10testsportuninstalltest">trunk/base/src/port1.0/tests/portuninstall.test</a></li>
<li><a href="#trunkbasesrcport10testsportutiltest">trunk/base/src/port1.0/tests/portutil.test</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkbasesrcdedup_portfilestclin">trunk/base/src/dedup_portfiles.tcl.in</a></li>
<li><a href="#trunkbasesrcimages_to_archivestclin">trunk/base/src/images_to_archives.tcl.in</a></li>
<li><a href="#trunkbasesrcportporttclshin">trunk/base/src/port/port-tclsh.in</a></li>
<li><a href="#trunkbasesrcupgrade_sources_conf_defaulttclin">trunk/base/src/upgrade_sources_conf_default.tcl.in</a></li>
</ul>

<h3>Removed Paths</h3>
<ul>
<li><a href="#trunkbasesrcdedup_portfilestcl">trunk/base/src/dedup_portfiles.tcl</a></li>
<li><a href="#trunkbasesrcimages_to_archivestcl">trunk/base/src/images_to_archives.tcl</a></li>
<li><a href="#trunkbasesrcmacports10macports_fastloadtclin">trunk/base/src/macports1.0/macports_fastload.tcl.in</a></li>
<li><a href="#trunkbasesrcupgrade_sources_conf_defaulttcl">trunk/base/src/upgrade_sources_conf_default.tcl</a></li>
</ul>

<h3>Property Changed</h3>
<ul>
<li><a href="#trunkbasesrc">trunk/base/src/</a></li>
<li><a href="#trunkbasesrcport">trunk/base/src/port/</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkbaseconfigureac"></a>
<div class="modfile"><h4>Modified: trunk/base/configure.ac (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/configure.ac        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/configure.ac        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -417,7 +417,6 @@
</span><span class="cx">         src/machista1.0/Makefile
</span><span class="cx">         src/macports1.0/Makefile
</span><span class="cx">         src/macports1.0/macports_autoconf.tcl
</span><del>-        src/macports1.0/macports_fastload.tcl
</del><span class="cx">         src/macports1.0/macports_test_autoconf.tcl
</span><span class="cx">         src/package1.0/Makefile
</span><span class="cx">         src/package1.0/package_test_autoconf.tcl
</span><span class="lines">@@ -433,6 +432,9 @@
</span><span class="cx">         vendor/Makefile
</span><span class="cx"> ])
</span><span class="cx"> 
</span><ins>+AC_CONFIG_FILES([src/dedup_portfiles.tcl], [chmod +x src/dedup_portfiles.tcl])
+AC_CONFIG_FILES([src/images_to_archives.tcl], [chmod +x src/images_to_archives.tcl])
</ins><span class="cx"> AC_CONFIG_FILES([src/pkg_mkindex.sh], [chmod +x src/pkg_mkindex.sh])
</span><ins>+AC_CONFIG_FILES([src/upgrade_sources_conf_default.tcl], [chmod +x src/upgrade_sources_conf_default.tcl])
</ins><span class="cx"> 
</span><span class="cx"> AC_OUTPUT
</span></span></pre></div>
<a id="trunkbasesrc"></a>
<div class="propset"><h4>Property changes: trunk/base/src</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnignore"></a>
<div class="modfile"><h4>Modified: svn:ignore</h4></div>
<span class="cx">Makefile
</span><span class="cx">pkg_mkindex.sh
</span><span class="cx">   + config.h
</span><span class="cx">Makefile
</span><span class="cx">pkg_mkindex.sh
</span><span class="cx">dedup_portfiles.tcl
</span><span class="cx">images_to_archives.tcl
</span><span class="cx">upgrade_sources_conf_default.tcl
</span><a id="trunkbasesrcMakefilein"></a>
<div class="modfile"><h4>Modified: trunk/base/src/Makefile.in (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/Makefile.in        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/Makefile.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -20,6 +20,7 @@
</span><span class="cx">         rm -f config.h
</span><span class="cx">         rm -f Makefile
</span><span class="cx">         rm -f pkg_mkindex.sh
</span><ins>+        rm -f dedup_portfiles.tcl images_to_archives.tcl
</ins><span class="cx"> 
</span><span class="cx"> test::
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbasesrcdedup_portfilestcl"></a>
<div class="delfile"><h4>Deleted: trunk/base/src/dedup_portfiles.tcl (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/dedup_portfiles.tcl        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/dedup_portfiles.tcl        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -1,47 +0,0 @@
</span><del>-#!/usr/bin/env tclsh
-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
-# $Id$
-
-# move portfiles from sqlite db to filesystem, while deduplicating
-# Takes one argument, which should be TCL_PACKAGE_DIR.
-
-source [file join [lindex $argv 0] macports1.0 macports_fastload.tcl]
-package require macports 1.0
-package require registry2 2.0
-package require Pextlib 1.0
-
-umask 022
-
-array set ui_options {ports_verbose yes}
-
-mportinit ui_options
-
-if {[registry::metadata get portfiles_update_needed] == 1} {
-    set portfiles_dir [file join ${macports::registry.path} registry portfiles]
-
-    registry::write {
-        set installed_ports [registry::entry imaged]
-        foreach portref $installed_ports {
-            set portfile_contents [$portref portfile]
-            if {$portfile_contents ne &quot;&quot; &amp;&amp; $portfile_contents ne &quot;0&quot;} {
-                set portfile_partial_dir [file join $portfiles_dir [$portref name]-[$portref version]_[$portref revision]]
-                file mkdir $portfile_partial_dir
-                set portfile_temp_path ${portfile_partial_dir}/Portfile
-                set fd [open $portfile_temp_path w]
-                puts $fd $portfile_contents
-                close $fd
-
-                set hash_size [sha256 file $portfile_temp_path]-[file size $portfile_temp_path]
-                set portfile_dir [file join $portfile_partial_dir $hash_size]
-                file mkdir $portfile_dir
-                file rename -force $portfile_temp_path $portfile_dir
-                file mtime ${portfile_dir}/Portfile [$portref date]
-
-                $portref portfile $hash_size
-            }
-        }
-        registry::metadata del portfiles_update_needed
-    }
-}
-
-exit 0
</del></span></pre></div>
<a id="trunkbasesrcdedup_portfilestclinfromrev118558trunkbasesrcdedup_portfilestcl"></a>
<div class="copfile"><h4>Copied: trunk/base/src/dedup_portfiles.tcl.in (from rev 118558, trunk/base/src/dedup_portfiles.tcl) (0 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/dedup_portfiles.tcl.in                                (rev 0)
+++ trunk/base/src/dedup_portfiles.tcl.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -0,0 +1,46 @@
</span><ins>+#!@TCLSH@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+# move portfiles from sqlite db to filesystem, while deduplicating
+# Takes one argument, which should be TCL_PACKAGE_DIR.
+
+package require macports 1.0
+package require registry2 2.0
+package require Pextlib 1.0
+
+umask 022
+
+array set ui_options {ports_verbose yes}
+
+mportinit ui_options
+
+if {[registry::metadata get portfiles_update_needed] == 1} {
+    set portfiles_dir [file join ${macports::registry.path} registry portfiles]
+
+    registry::write {
+        set installed_ports [registry::entry imaged]
+        foreach portref $installed_ports {
+            set portfile_contents [$portref portfile]
+            if {$portfile_contents ne &quot;&quot; &amp;&amp; $portfile_contents ne &quot;0&quot;} {
+                set portfile_partial_dir [file join $portfiles_dir [$portref name]-[$portref version]_[$portref revision]]
+                file mkdir $portfile_partial_dir
+                set portfile_temp_path ${portfile_partial_dir}/Portfile
+                set fd [open $portfile_temp_path w]
+                puts $fd $portfile_contents
+                close $fd
+
+                set hash_size [sha256 file $portfile_temp_path]-[file size $portfile_temp_path]
+                set portfile_dir [file join $portfile_partial_dir $hash_size]
+                file mkdir $portfile_dir
+                file rename -force $portfile_temp_path $portfile_dir
+                file mtime ${portfile_dir}/Portfile [$portref date]
+
+                $portref portfile $hash_size
+            }
+        }
+        registry::metadata del portfiles_update_needed
+    }
+}
+
+exit 0
</ins></span></pre></div>
<a id="trunkbasesrcimages_to_archivestcl"></a>
<div class="delfile"><h4>Deleted: trunk/base/src/images_to_archives.tcl (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/images_to_archives.tcl        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/images_to_archives.tcl        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -1,160 +0,0 @@
</span><del>-#!/usr/bin/env tclsh
-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
-# $Id$
-
-# convert existing port image directories into compressed archive versions
-# Takes one argument, which should be TCL_PACKAGE_DIR.
-
-source [file join [lindex $argv 0] macports1.0 macports_fastload.tcl]
-package require macports 1.0
-package require registry 1.0
-package require registry2 2.0
-package require Pextlib 1.0
-
-umask 022
-
-array set ui_options {ports_verbose yes}
-
-mportinit ui_options
-
-# always converting to tbz2 should be fine as both these programs are
-# needed elsewhere and assumed to be available
-set tarcmd [macports::findBinary tar ${macports::autoconf::tar_path}]
-set bzip2cmd [macports::findBinary bzip2 ${macports::autoconf::bzip2_path}]
-
-if {[catch {set ilist [registry::installed]}]} {
-    # no ports installed
-    puts &quot;No ports installed to convert.&quot;
-    exit 0
-}
-
-puts &quot;This could take a while...&quot;
-
-# list of ports we successfully create an archive of, to be used to update
-# the registry only after we know all creation attempts were successful.
-set archived_list {}
-set installed_len [llength $ilist]
-set counter 0
-
-foreach installed $ilist {
-    incr counter
-    set iname [lindex $installed 0]
-    set iversion [lindex $installed 1]
-    set irevision [lindex $installed 2]
-    set ivariants [lindex $installed 3]
-    set iepoch [lindex $installed 5]
-    set iref [registry::open_entry $iname $iversion $irevision $ivariants $iepoch]
-    set installtype [registry::property_retrieve $iref installtype]
-    if {$installtype eq &quot;image&quot;} {
-        set location [registry::property_retrieve $iref location]
-        if {$location == 0} {
-            set location [registry::property_retrieve $iref imagedir]
-        }
-    } else {
-        set location &quot;&quot;
-    }
-
-    if {$location eq &quot;&quot; || ![file isfile $location]} {
-        # no image archive present, so make one
-        set archs [registry::property_retrieve $iref archs]
-        if {$archs eq &quot;&quot; || $archs == 0} {
-            set archs ${macports::os_arch}
-        }
-        # look for any existing archive in the old location
-        set oldarchiverootname &quot;${iname}-${iversion}_${irevision}${ivariants}.[join $archs -]&quot;
-        set archivetype tbz2
-        set oldarchivedir [file join ${macports::portdbpath} packages ${macports::os_platform}_${macports::os_major}]
-        set olderarchivedir [file join ${macports::portdbpath} packages ${macports::os_platform}]
-        if {[llength $archs] == 1} {
-            set oldarchivedir [file join $oldarchivedir $archs $iname]
-            set olderarchivedir [file join $olderarchivedir $archs]
-        } else {
-            set oldarchivedir [file join $oldarchivedir universal $iname]
-            set olderarchivedir [file join $olderarchivedir universal]
-        }
-        set found 0
-        foreach adir [list $oldarchivedir $olderarchivedir] {
-            foreach type {tbz2 tbz tgz tar txz tlz xar zip cpgz cpio} {
-                set oldarchivefullpath &quot;[file join $adir $oldarchiverootname].${type}&quot;
-                if {[file isfile $oldarchivefullpath]} {
-                    set found 1
-                    set archivetype $type
-                    break
-                }
-            }
-            if {$found} {break}
-        }
-
-        # compute new name and location of archive
-        set archivename &quot;${iname}-${iversion}_${irevision}${ivariants}.${macports::os_platform}_${macports::os_major}.[join $archs -].${archivetype}&quot;
-        ui_msg &quot;Processing ${counter} of ${installed_len}: ${archivename}&quot;
-        if {$installtype eq &quot;image&quot;} {
-            set targetdir [file dirname $location]
-        } else {
-            set targetdir [file join ${macports::registry.path} software ${iname}]
-        }
-        if {$location eq &quot;&quot; || ![file isdirectory $location]} {
-            set contents [$iref imagefiles]
-        }
-        file mkdir $targetdir
-        set newlocation [file join $targetdir $archivename]
-
-        if {$found} {
-            file rename $oldarchivefullpath $newlocation
-        } elseif {$installtype eq &quot;image&quot; &amp;&amp; [file isdirectory $location]} {
-            # create archive from image dir
-            system -W $location &quot;$tarcmd -cjf $newlocation * &gt; ${targetdir}/error.log 2&gt;&amp;1&quot;
-            file delete -force ${targetdir}/error.log
-        } else {
-            # direct mode (or missing image dir), create archive from installed files
-            # we tell tar to read filenames from a file so as not to run afoul of command line length limits
-            set fd [open ${targetdir}/tarlist w]
-            foreach entry $contents {
-                puts $fd $entry
-            }
-            close $fd
-            system &quot;$tarcmd -cjf $newlocation -T ${targetdir}/tarlist &gt; ${targetdir}/error.log 2&gt;&amp;1&quot;
-            file delete -force ${targetdir}/tarlist ${targetdir}/error.log
-        }
-
-        lappend archived_list [list $installtype $iref $location $newlocation]
-    }
-}
-
-set archived_len [llength $archived_list]
-set counter 0
-
-registry::write {
-    foreach archived $archived_list {
-        incr counter
-        ui_msg &quot;Updating registry: ${counter} of ${archived_len}&quot;
-        set installtype [lindex $archived 0]
-        set iref [lindex $archived 1]
-        set newlocation [lindex $archived 3]
-    
-        if {$installtype eq &quot;direct&quot;} {
-            # change receipt to image
-            $iref installtype image
-            $iref state imaged
-            $iref activate [$iref imagefiles]
-            $iref state installed
-        }
-    
-        # set the new location in the registry and delete the old dir
-        $iref location $newlocation
-    }
-}
-
-set counter 0
-foreach archived $archived_list {
-    incr counter
-    set location [lindex $archived 2]
-    ui_msg &quot;Deleting ${counter} of ${archived_len}: ${location}&quot;
-    if {$location ne &quot;&quot; &amp;&amp; [file isdirectory $location]} {
-        if {[catch {file delete -force $location} result]} {
-            ui_warn &quot;Failed to delete ${location}: $result&quot;
-        }
-    }
-}
-
-exit 0
</del></span></pre></div>
<a id="trunkbasesrcimages_to_archivestclinfromrev118296trunkbasesrcimages_to_archivestcl"></a>
<div class="copfile"><h4>Copied: trunk/base/src/images_to_archives.tcl.in (from rev 118296, trunk/base/src/images_to_archives.tcl) (0 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/images_to_archives.tcl.in                                (rev 0)
+++ trunk/base/src/images_to_archives.tcl.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -0,0 +1,159 @@
</span><ins>+#!@TCLSH@
+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4
+# $Id$
+
+# convert existing port image directories into compressed archive versions
+# Takes one argument, which should be TCL_PACKAGE_DIR.
+
+package require macports 1.0
+package require registry 1.0
+package require registry2 2.0
+package require Pextlib 1.0
+
+umask 022
+
+array set ui_options {ports_verbose yes}
+
+mportinit ui_options
+
+# always converting to tbz2 should be fine as both these programs are
+# needed elsewhere and assumed to be available
+set tarcmd [macports::findBinary tar ${macports::autoconf::tar_path}]
+set bzip2cmd [macports::findBinary bzip2 ${macports::autoconf::bzip2_path}]
+
+if {[catch {set ilist [registry::installed]}]} {
+    # no ports installed
+    puts &quot;No ports installed to convert.&quot;
+    exit 0
+}
+
+puts &quot;This could take a while...&quot;
+
+# list of ports we successfully create an archive of, to be used to update
+# the registry only after we know all creation attempts were successful.
+set archived_list {}
+set installed_len [llength $ilist]
+set counter 0
+
+foreach installed $ilist {
+    incr counter
+    set iname [lindex $installed 0]
+    set iversion [lindex $installed 1]
+    set irevision [lindex $installed 2]
+    set ivariants [lindex $installed 3]
+    set iepoch [lindex $installed 5]
+    set iref [registry::open_entry $iname $iversion $irevision $ivariants $iepoch]
+    set installtype [registry::property_retrieve $iref installtype]
+    if {$installtype eq &quot;image&quot;} {
+        set location [registry::property_retrieve $iref location]
+        if {$location == 0} {
+            set location [registry::property_retrieve $iref imagedir]
+        }
+    } else {
+        set location &quot;&quot;
+    }
+
+    if {$location eq &quot;&quot; || ![file isfile $location]} {
+        # no image archive present, so make one
+        set archs [registry::property_retrieve $iref archs]
+        if {$archs eq &quot;&quot; || $archs == 0} {
+            set archs ${macports::os_arch}
+        }
+        # look for any existing archive in the old location
+        set oldarchiverootname &quot;${iname}-${iversion}_${irevision}${ivariants}.[join $archs -]&quot;
+        set archivetype tbz2
+        set oldarchivedir [file join ${macports::portdbpath} packages ${macports::os_platform}_${macports::os_major}]
+        set olderarchivedir [file join ${macports::portdbpath} packages ${macports::os_platform}]
+        if {[llength $archs] == 1} {
+            set oldarchivedir [file join $oldarchivedir $archs $iname]
+            set olderarchivedir [file join $olderarchivedir $archs]
+        } else {
+            set oldarchivedir [file join $oldarchivedir universal $iname]
+            set olderarchivedir [file join $olderarchivedir universal]
+        }
+        set found 0
+        foreach adir [list $oldarchivedir $olderarchivedir] {
+            foreach type {tbz2 tbz tgz tar txz tlz xar zip cpgz cpio} {
+                set oldarchivefullpath &quot;[file join $adir $oldarchiverootname].${type}&quot;
+                if {[file isfile $oldarchivefullpath]} {
+                    set found 1
+                    set archivetype $type
+                    break
+                }
+            }
+            if {$found} {break}
+        }
+
+        # compute new name and location of archive
+        set archivename &quot;${iname}-${iversion}_${irevision}${ivariants}.${macports::os_platform}_${macports::os_major}.[join $archs -].${archivetype}&quot;
+        ui_msg &quot;Processing ${counter} of ${installed_len}: ${archivename}&quot;
+        if {$installtype eq &quot;image&quot;} {
+            set targetdir [file dirname $location]
+        } else {
+            set targetdir [file join ${macports::registry.path} software ${iname}]
+        }
+        if {$location eq &quot;&quot; || ![file isdirectory $location]} {
+            set contents [$iref imagefiles]
+        }
+        file mkdir $targetdir
+        set newlocation [file join $targetdir $archivename]
+
+        if {$found} {
+            file rename $oldarchivefullpath $newlocation
+        } elseif {$installtype eq &quot;image&quot; &amp;&amp; [file isdirectory $location]} {
+            # create archive from image dir
+            system -W $location &quot;$tarcmd -cjf $newlocation * &gt; ${targetdir}/error.log 2&gt;&amp;1&quot;
+            file delete -force ${targetdir}/error.log
+        } else {
+            # direct mode (or missing image dir), create archive from installed files
+            # we tell tar to read filenames from a file so as not to run afoul of command line length limits
+            set fd [open ${targetdir}/tarlist w]
+            foreach entry $contents {
+                puts $fd $entry
+            }
+            close $fd
+            system &quot;$tarcmd -cjf $newlocation -T ${targetdir}/tarlist &gt; ${targetdir}/error.log 2&gt;&amp;1&quot;
+            file delete -force ${targetdir}/tarlist ${targetdir}/error.log
+        }
+
+        lappend archived_list [list $installtype $iref $location $newlocation]
+    }
+}
+
+set archived_len [llength $archived_list]
+set counter 0
+
+registry::write {
+    foreach archived $archived_list {
+        incr counter
+        ui_msg &quot;Updating registry: ${counter} of ${archived_len}&quot;
+        set installtype [lindex $archived 0]
+        set iref [lindex $archived 1]
+        set newlocation [lindex $archived 3]
+    
+        if {$installtype eq &quot;direct&quot;} {
+            # change receipt to image
+            $iref installtype image
+            $iref state imaged
+            $iref activate [$iref imagefiles]
+            $iref state installed
+        }
+    
+        # set the new location in the registry and delete the old dir
+        $iref location $newlocation
+    }
+}
+
+set counter 0
+foreach archived $archived_list {
+    incr counter
+    set location [lindex $archived 2]
+    ui_msg &quot;Deleting ${counter} of ${archived_len}: ${location}&quot;
+    if {$location ne &quot;&quot; &amp;&amp; [file isdirectory $location]} {
+        if {[catch {file delete -force $location} result]} {
+            ui_warn &quot;Failed to delete ${location}: $result&quot;
+        }
+    }
+}
+
+exit 0
</ins></span></pre></div>
<a id="trunkbasesrcmacports10Makefilein"></a>
<div class="modfile"><h4>Modified: trunk/base/src/macports1.0/Makefile.in (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/macports1.0/Makefile.in        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/macports1.0/Makefile.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -2,7 +2,7 @@
</span><span class="cx"> VPATH  = @srcdir@
</span><span class="cx"> 
</span><span class="cx"> SRCS=                macports.tcl macports_dlist.tcl macports_util.tcl \
</span><del>-                macports_autoconf.tcl macports_fastload.tcl
</del><ins>+                macports_autoconf.tcl
</ins><span class="cx"> OBJS=                macports.o get_systemconfiguration_proxies.o sysctl.o
</span><span class="cx"> SHLIB_NAME=        MacPorts${SHLIB_SUFFIX}
</span><span class="cx"> 
</span><span class="lines">@@ -22,7 +22,7 @@
</span><span class="cx">         $(TCLSH) $(srcdir)/tests/test.tcl -nocolor
</span><span class="cx"> 
</span><span class="cx"> distclean:: clean
</span><del>-        rm -f macports_autoconf.tcl macports_fastload.tcl macports_test_autoconf.tcl ${SHLIB_NAME}
</del><ins>+        rm -f macports_autoconf.tcl macports_test_autoconf.tcl ${SHLIB_NAME}
</ins><span class="cx">         rm -f Makefile
</span><span class="cx"> 
</span><span class="cx"> install:: all
</span></span></pre></div>
<a id="trunkbasesrcmacports10macports_fastloadtclin"></a>
<div class="delfile"><h4>Deleted: trunk/base/src/macports1.0/macports_fastload.tcl.in (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/macports1.0/macports_fastload.tcl.in        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/macports1.0/macports_fastload.tcl.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -1,83 +0,0 @@
</span><del>-# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
-# macports_fastload.tcl.in
-# $Id$
-#
-# Copyright (c) 2005-2007, 2009-2010 The MacPorts Project
-# Copyright (c) 2004-2005 Paul Guyot, The MacPorts Project.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-# 3. Neither the name of The MacPorts Project nor the names of its contributors
-#    may be used to endorse or promote products derived from this software
-#    without specific prior written permission.
-# 
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-# This script is here to fast load all the MacPorts related packages.
-# This avoids the very expensive globbing of Tcl' package mechanism.
-# Please note that this is not required and base/ should work even if some
-# packages are moved as long as their new location is in Tcl's package paths.
-# However, this file also defines a workaround to avoid conflicts between a /
-# installation of MacPorts and a user installation of MacPorts (on the same box).
-# (this workaround isn't required on 10.4.2).
-#
-# The package command that's replaced in this code works somewhat differently
-# than the original version. In particular, users with multiple copies of a
-# package such as portuninstall (due to obsolete files being left from previous
-# installations) may experience problems due to different package loading
-# behavior.
-#
-if { [regexp {\d+\.\d+\.\d+} [info patchlevel]] &amp;&amp;
-        ([package vcompare [info patchlevel] 8.4.7] &lt; 0) } {
-    global allpackages
-    if {![info exists allpackages]} {
-        # Only patch once.
-        array set allpackages {}
-        rename package package_native
-        proc package {args} {
-            global allpackages
-            if {([lindex $args 0] == &quot;ifneeded&quot;) &amp;&amp; ([llength $args] == 4)} {
-                set package_name [lindex $args 1]
-                set package_version [lindex $args 2]
-                set package_key ${package_name}::${package_version}
-                if {![info exists allpackages($package_key)]} {
-                    set allpackages($package_key) 1
-                    set result [eval package_native $args]
-                    } else {
-                        set result &quot;&quot;
-                    }
-            } else {
-                set result [eval package_native $args]
-            }
-            return $result
-        }
-    }
-}
-
-set sharetcldir [file normalize [file join [file dirname [info script]] ..]]
-if {[file exists $sharetcldir]} {
-    foreach dir [glob -directory $sharetcldir *] {
-        set pkgindex [file join $dir pkgIndex.tcl]
-        if [file exists $pkgindex] {
-            source $pkgindex
-        }
-    }
-}
</del></span></pre></div>
<a id="trunkbasesrcmacports10testsmacportstest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/macports1.0/tests/macports.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/macports1.0/tests/macports.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/macports1.0/tests/macports.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -7,7 +7,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../macports_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> # clean leftovers from interrupted tests
</span></span></pre></div>
<a id="trunkbasesrcmacports10testsmacports_dlisttest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/macports1.0/tests/macports_dlist.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/macports1.0/tests/macports_dlist.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/macports1.0/tests/macports_dlist.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -4,7 +4,6 @@
</span><span class="cx"> namespace import tcltest::*
</span><span class="cx"> 
</span><span class="cx"> source ../macports_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> # Debug options
</span></span></pre></div>
<a id="trunkbasesrcmacports10testsmacports_utiltest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/macports1.0/tests/macports_util.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/macports1.0/tests/macports_util.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/macports1.0/tests/macports_util.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -4,7 +4,6 @@
</span><span class="cx"> namespace import tcltest::*
</span><span class="cx"> 
</span><span class="cx"> source ../macports_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbasesrcpackage10testsportarchivefetchtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/package1.0/tests/portarchivefetch.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/package1.0/tests/portarchivefetch.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/package1.0/tests/portarchivefetch.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../package_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcpackage10testsportdmgtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/package1.0/tests/portdmg.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/package1.0/tests/portdmg.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/package1.0/tests/portdmg.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../package_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcpackage10testsportdpkgtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/package1.0/tests/portdpkg.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/package1.0/tests/portdpkg.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/package1.0/tests/portdpkg.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../package_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcpackage10testsportmdmgtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/package1.0/tests/portmdmg.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/package1.0/tests/portmdmg.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/package1.0/tests/portmdmg.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../package_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcpackage10testsportmpkgtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/package1.0/tests/portmpkg.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/package1.0/tests/portmpkg.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/package1.0/tests/portmpkg.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../package_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcpackage10testsportpkgtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/package1.0/tests/portpkg.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/package1.0/tests/portpkg.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/package1.0/tests/portpkg.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../package_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcpkg_mkindexshin"></a>
<div class="modfile"><h4>Modified: trunk/base/src/pkg_mkindex.sh.in (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/pkg_mkindex.sh.in        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/pkg_mkindex.sh.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -30,6 +30,7 @@
</span><span class="cx"> 
</span><span class="cx"> TCLSH=@INTREE_TCLSH@
</span><span class="cx"> GREP=@GREP@
</span><ins>+LIB_PATH=`dirname $TCLSH`
</ins><span class="cx"> 
</span><span class="cx"> if [ $# = 0 ]; then
</span><span class="cx">     echo &quot;Usage: $0 &lt;directory list&gt;&quot;
</span><span class="lines">@@ -37,7 +38,8 @@
</span><span class="cx"> fi
</span><span class="cx"> 
</span><span class="cx"> for dir in $@; do
</span><del>-    echo &quot;pkg_mkIndex -verbose -- $dir *.tcl *.dylib *.so&quot; | env DYLD_LIBRARY_PATH=`dirname $TCLSH` $TCLSH 2&gt;&amp;1 \
</del><ins>+    echo &quot;pkg_mkIndex -verbose -- $dir *.tcl *.dylib *.so&quot; \
+                | env DYLD_LIBRARY_PATH=$LIB_PATH LD_LIBRARY_PATH=$LIB_PATH $TCLSH 2&gt;&amp;1 \
</ins><span class="cx">         | $GREP &quot;^warning: &quot; &amp;&amp; exit 1
</span><span class="cx"> done
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbasesrcport"></a>
<div class="propset"><h4>Property changes: trunk/base/src/port</h4>
<pre class="diff"><span>
</span></pre></div>
<a id="svnignore"></a>
<div class="modfile"><h4>Modified: svn:ignore</h4></div>
<span class="cx">port
</span><span class="cx">portall
</span><span class="cx">portindex
</span><span class="cx">portmirror
</span><span class="cx">   + Makefile
</span><span class="cx">port
</span><span class="cx">portall
</span><span class="cx">portindex
</span><span class="cx">portmirror
</span><span class="cx">port-tclsh
</span><a id="trunkbasesrcportMakefilein"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port/Makefile.in (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port/Makefile.in        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port/Makefile.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -3,7 +3,7 @@
</span><span class="cx"> 
</span><span class="cx"> INSTALLDIR=        ${DESTDIR}${prefix}
</span><span class="cx"> TOPSRCDIR=        ../..
</span><del>-SCRIPTS=        portmirror portindex port
</del><ins>+SCRIPTS=        portmirror portindex port port-tclsh
</ins><span class="cx"> 
</span><span class="cx"> edit = sed \
</span><span class="cx">         -e 's,@TCLSH\@,$(TCLSH),g' \
</span><span class="lines">@@ -24,6 +24,9 @@
</span><span class="cx"> port: port.tcl ../../Mk/macports.autoconf.mk
</span><span class="cx">         ${edit} $(srcdir)/port.tcl &gt; $@
</span><span class="cx"> 
</span><ins>+port-tclsh: port-tclsh.in ../../Mk/macports.autoconf.mk
+        ${edit} $(srcdir)/port-tclsh.in &gt; $@
+
</ins><span class="cx"> mkdirs:
</span><span class="cx">         &lt; ../../doc/prefix.mtree $(MTREE) -U -d -e -p ${INSTALLDIR} &gt; /dev/null
</span><span class="cx">         &lt; ../../doc/base.mtree $(MTREE) -U -d -e -p ${INSTALLDIR} &gt; /dev/null
</span><span class="lines">@@ -39,6 +42,6 @@
</span><span class="cx"> install: all mkdirs
</span><span class="cx">         $(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${INSTALLDIR}/bin
</span><span class="cx">         $(INSTALL) -d -o ${DSTUSR} -g ${DSTGRP} -m ${DSTMODE} ${INSTALLDIR}/var/macports
</span><del>-        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 555 port portindex portmirror ${INSTALLDIR}/bin/
</del><ins>+        $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 555 port portindex portmirror port-tclsh ${INSTALLDIR}/bin/
</ins><span class="cx">         $(INSTALL) -o ${DSTUSR} -g ${DSTGRP} -m 444 $(srcdir)/port-help.tcl  ${INSTALLDIR}/var/macports/
</span><span class="cx">         cd ${INSTALLDIR}/bin &amp;&amp; $(LN_S) -f port portf
</span></span></pre></div>
<a id="trunkbasesrcportporttclshin"></a>
<div class="addfile"><h4>Added: trunk/base/src/port/port-tclsh.in (0 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port/port-tclsh.in                                (rev 0)
+++ trunk/base/src/port/port-tclsh.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -0,0 +1,2 @@
</span><ins>+#!/bin/sh
+exec @TCLSH@ &quot;$@&quot;
</ins></span></pre></div>
<a id="trunkbasesrcportporttcl"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port/port.tcl (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port/port.tcl        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port/port.tcl        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -43,7 +43,6 @@
</span><span class="cx">     set portclient::progress::hasTermAnsiSend yes
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-source [file join &quot;@macports_tcl_dir@&quot; macports1.0 macports_fastload.tcl]
</del><span class="cx"> package require macports
</span><span class="cx"> package require Pextlib 1.0
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbasesrcportportindextcl"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port/portindex.tcl (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port/portindex.tcl        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port/portindex.tcl        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -4,7 +4,6 @@
</span><span class="cx"> # if requested
</span><span class="cx"> # $Id$
</span><span class="cx"> 
</span><del>-source [file join &quot;@macports_tcl_dir@&quot; macports1.0 macports_fastload.tcl]
</del><span class="cx"> package require macports
</span><span class="cx"> package require Pextlib
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbasesrcportportmirrortcl"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port/portmirror.tcl (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port/portmirror.tcl        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port/portmirror.tcl        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -8,7 +8,6 @@
</span><span class="cx"> # Updates the distfiles to current distfiles by deleting old stuff.
</span><span class="cx"> # Uses the database.
</span><span class="cx"> 
</span><del>-source [file join &quot;@macports_tcl_dir@&quot; macports1.0 macports_fastload.tcl]
</del><span class="cx"> package require macports
</span><span class="cx"> package require Pextlib
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkbasesrcport10testsportactivatetest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portactivate.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portactivate.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portactivate.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportchecksumtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portchecksum.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portchecksum.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portchecksum.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportcleantest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portclean.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portclean.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portclean.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportdeactivatetest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portdeactivate.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portdeactivate.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portdeactivate.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportdependstest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portdepends.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portdepends.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portdepends.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportdistchecktest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portdistcheck.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portdistcheck.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portdistcheck.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportinstalltest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portinstall.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portinstall.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portinstall.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportloadtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portload.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portload.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portload.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportmaintest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portmain.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portmain.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portmain.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportpatchtest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portpatch.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portpatch.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portpatch.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsporttesttest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/porttest.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/porttest.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/porttest.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportuninstalltest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portuninstall.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portuninstall.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portuninstall.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -6,7 +6,6 @@
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcport10testsportutiltest"></a>
<div class="modfile"><h4>Modified: trunk/base/src/port1.0/tests/portutil.test (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/port1.0/tests/portutil.test        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/port1.0/tests/portutil.test        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -3,12 +3,10 @@
</span><span class="cx"> package require tcltest 2
</span><span class="cx"> namespace import tcltest::*
</span><span class="cx"> 
</span><del>-source ../../macports1.0/macports_fastload.tcl
</del><span class="cx"> 
</span><span class="cx"> set pwd [file dirname [file normalize $argv0]]
</span><span class="cx"> 
</span><span class="cx"> source ../port_test_autoconf.tcl
</span><del>-source $macports::autoconf::macports_tcl_dir/macports1.0/macports_fastload.tcl
</del><span class="cx"> package require macports 1.0
</span><span class="cx"> 
</span><span class="cx"> array set ui_options {}
</span></span></pre></div>
<a id="trunkbasesrcupgrade_sources_conf_defaulttcl"></a>
<div class="delfile"><h4>Deleted: trunk/base/src/upgrade_sources_conf_default.tcl (118558 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/upgrade_sources_conf_default.tcl        2014-04-04 21:54:33 UTC (rev 118558)
+++ trunk/base/src/upgrade_sources_conf_default.tcl        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -1,121 +0,0 @@
</span><del>-#!/usr/bin/env tclsh
-#
-# $Id$
-#
-# Upgrade sources.conf for a given prefix (passed as the first and only
-# argument).
-#
-# For an rsync: repository, if it is the standard MacPorts one and not
-# already tagged, then make it default, if another wasn't already default.
-# For a file:// respository, if it is an svn checkout from the MacPorts
-# server, then make it default if another hasn't already been tagged.
-#
-
-if {[llength $::argv] == 0} {
-   puts &quot;Usage: ${::argv0} &lt;prefix&gt;&quot;
-   exit 1
-}
-
-set prefix [lindex $::argv 0]
-set sourcesConf ${prefix}/etc/macports/sources.conf
-if {[catch {set sourcesConfChannel [open $sourcesConf r]}]} {
-   exit 0
-}
-
-if {[file executable /usr/bin/mktemp]} {
-    set mktemp /usr/bin/mktemp
-} elseif {[file executable /bin/mktemp]} {
-    set mktemp /bin/mktemp
-} else {
-    set mktemp mktemp
-}
-
-set mktempChannel [open &quot;|$mktemp -t macports_sources_upgrade.XXXXXXXXXX&quot; r]
-set tempfile [read -nonewline $mktempChannel]
-close $mktempChannel
-
-set tempfileChannel [open $tempfile w]
-set defaultSeen false
-set defaultWritten false
-
-while {[gets $sourcesConfChannel line] &gt;= 0} {
-   set addDefault false
-   if {!$defaultSeen &amp;&amp; ![regexp {^\s*#|^$} $line]} {
-      if {[regexp {^([\w-]+://\S+)(?:\s+\[(\w+(?:,\w+)*)\])?$} $line -&gt; url flags]} {
-         set flags [split $flags ,]
-         if {[lsearch $flags default] &gt;= 0} {
-            set defaultSeen true
-         } elseif {[regexp {rsync://rsync\.(macports|darwinports)\.org/(release|dpupdate)/d?ports} $url]} {
-            set addDefault true
-         } elseif {[regexp {file://(/.+)} $url -&gt; filepath]} {
-            if {[file exists [file join ${filepath} .svn]]} {
-               if {![info exists svnCmd]} {
-                  set svnCmd &quot;&quot;
-                  foreach path [concat [list ${prefix}/bin] [split $env(PATH) :]] {
-                     if {[file executable ${path}/svn]} {
-                        set svnCmd ${path}/svn
-                        break
-                     }
-                  }
-               }
-               if {$svnCmd eq &quot;&quot;} {
-                  puts &quot;WARNING: Unable to check svn URL for '$filepath' because no svn command could be found; please manually verify $sourcesConf!&quot;
-                  continue
-               }
-               if {![catch {set svnChannel [open &quot;|$svnCmd info ${filepath}&quot; r]} err]} {
-                  set svnURL {}
-                  while {[gets $svnChannel svnLine] &gt;= 0} {
-                     regexp {^URL: (.*)} $svnLine -&gt; svnURL
-                  }
-                  if {[catch {close $svnChannel} err]} {
-                     puts $err
-                     puts &quot;WARNING: Unable to check svn URL for '$filepath'; please manually verify $sourcesConf!&quot;
-                  }
-                  if {[regexp {^https?://svn\.(macports|macosforge)\.org/repository/macports/trunk/dports} $svnURL]} {
-                     set addDefault true
-                  }
-               } else {
-                  puts $err
-                  puts &quot;WARNING: Unable to check svn URL for '$filepath'; please manually verify $sourcesConf!&quot;
-               }
-            }
-         }
-         if {$addDefault} {
-            lappend flags default
-            set line &quot;$url \[[join $flags ,]\]&quot;
-            set defaultSeen true
-            set defaultWritten true
-         }
-      }
-   }
-   puts $tempfileChannel $line
-}
-close $tempfileChannel
-close $sourcesConfChannel
-
-if {$defaultWritten} {
-   set attributes [file attributes ${sourcesConf}]
-   if {[catch {file rename ${sourcesConf} &quot;${sourcesConf}.mpsaved&quot;}]} {
-      file rename -force ${sourcesConf} &quot;${sourcesConf}.mpsaved_[clock seconds]&quot;
-   }
-   file rename ${tempfile} ${sourcesConf}
-   eval file attributes ${sourcesConf} $attributes
-} else {
-   file delete ${tempfile}
-   if {!$defaultSeen} {
-      puts &quot;[string repeat - 72]
-Warning, your source config file at:
-
-   $sourcesConf
-
-needs to have a \[default\] tag added to the primary MacPorts repository,
-however the proper entry could not be determined.  Please add the tag
-manually by either appending \[default\] to the end of the correct line,
-or if there are already tags, adding it to the list, e.g.
-\[nosync,default\].
-[string repeat - 72]&quot;
-   }
-}
-
-exit 0
-
</del></span></pre></div>
<a id="trunkbasesrcupgrade_sources_conf_defaulttclinfromrev118296trunkbasesrcupgrade_sources_conf_defaulttcl"></a>
<div class="copfile"><h4>Copied: trunk/base/src/upgrade_sources_conf_default.tcl.in (from rev 118296, trunk/base/src/upgrade_sources_conf_default.tcl) (0 => 118559)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/base/src/upgrade_sources_conf_default.tcl.in                                (rev 0)
+++ trunk/base/src/upgrade_sources_conf_default.tcl.in        2014-04-04 22:02:44 UTC (rev 118559)
</span><span class="lines">@@ -0,0 +1,121 @@
</span><ins>+#!@TCLSH@
+#
+# $Id$
+#
+# Upgrade sources.conf for a given prefix (passed as the first and only
+# argument).
+#
+# For an rsync: repository, if it is the standard MacPorts one and not
+# already tagged, then make it default, if another wasn't already default.
+# For a file:// respository, if it is an svn checkout from the MacPorts
+# server, then make it default if another hasn't already been tagged.
+#
+
+if {[llength $::argv] == 0} {
+   puts &quot;Usage: ${::argv0} &lt;prefix&gt;&quot;
+   exit 1
+}
+
+set prefix [lindex $::argv 0]
+set sourcesConf ${prefix}/etc/macports/sources.conf
+if {[catch {set sourcesConfChannel [open $sourcesConf r]}]} {
+   exit 0
+}
+
+if {[file executable /usr/bin/mktemp]} {
+    set mktemp /usr/bin/mktemp
+} elseif {[file executable /bin/mktemp]} {
+    set mktemp /bin/mktemp
+} else {
+    set mktemp mktemp
+}
+
+set mktempChannel [open &quot;|$mktemp -t macports_sources_upgrade.XXXXXXXXXX&quot; r]
+set tempfile [read -nonewline $mktempChannel]
+close $mktempChannel
+
+set tempfileChannel [open $tempfile w]
+set defaultSeen false
+set defaultWritten false
+
+while {[gets $sourcesConfChannel line] &gt;= 0} {
+   set addDefault false
+   if {!$defaultSeen &amp;&amp; ![regexp {^\s*#|^$} $line]} {
+      if {[regexp {^([\w-]+://\S+)(?:\s+\[(\w+(?:,\w+)*)\])?$} $line -&gt; url flags]} {
+         set flags [split $flags ,]
+         if {[lsearch $flags default] &gt;= 0} {
+            set defaultSeen true
+         } elseif {[regexp {rsync://rsync\.(macports|darwinports)\.org/(release|dpupdate)/d?ports} $url]} {
+            set addDefault true
+         } elseif {[regexp {file://(/.+)} $url -&gt; filepath]} {
+            if {[file exists [file join ${filepath} .svn]]} {
+               if {![info exists svnCmd]} {
+                  set svnCmd &quot;&quot;
+                  foreach path [concat [list ${prefix}/bin] [split $env(PATH) :]] {
+                     if {[file executable ${path}/svn]} {
+                        set svnCmd ${path}/svn
+                        break
+                     }
+                  }
+               }
+               if {$svnCmd eq &quot;&quot;} {
+                  puts &quot;WARNING: Unable to check svn URL for '$filepath' because no svn command could be found; please manually verify $sourcesConf!&quot;
+                  continue
+               }
+               if {![catch {set svnChannel [open &quot;|$svnCmd info ${filepath}&quot; r]} err]} {
+                  set svnURL {}
+                  while {[gets $svnChannel svnLine] &gt;= 0} {
+                     regexp {^URL: (.*)} $svnLine -&gt; svnURL
+                  }
+                  if {[catch {close $svnChannel} err]} {
+                     puts $err
+                     puts &quot;WARNING: Unable to check svn URL for '$filepath'; please manually verify $sourcesConf!&quot;
+                  }
+                  if {[regexp {^https?://svn\.(macports|macosforge)\.org/repository/macports/trunk/dports} $svnURL]} {
+                     set addDefault true
+                  }
+               } else {
+                  puts $err
+                  puts &quot;WARNING: Unable to check svn URL for '$filepath'; please manually verify $sourcesConf!&quot;
+               }
+            }
+         }
+         if {$addDefault} {
+            lappend flags default
+            set line &quot;$url \[[join $flags ,]\]&quot;
+            set defaultSeen true
+            set defaultWritten true
+         }
+      }
+   }
+   puts $tempfileChannel $line
+}
+close $tempfileChannel
+close $sourcesConfChannel
+
+if {$defaultWritten} {
+   set attributes [file attributes ${sourcesConf}]
+   if {[catch {file rename ${sourcesConf} &quot;${sourcesConf}.mpsaved&quot;}]} {
+      file rename -force ${sourcesConf} &quot;${sourcesConf}.mpsaved_[clock seconds]&quot;
+   }
+   file rename ${tempfile} ${sourcesConf}
+   eval file attributes ${sourcesConf} $attributes
+} else {
+   file delete ${tempfile}
+   if {!$defaultSeen} {
+      puts &quot;[string repeat - 72]
+Warning, your source config file at:
+
+   $sourcesConf
+
+needs to have a \[default\] tag added to the primary MacPorts repository,
+however the proper entry could not be determined.  Please add the tag
+manually by either appending \[default\] to the end of the correct line,
+or if there are already tags, adding it to the list, e.g.
+\[nosync,default\].
+[string repeat - 72]&quot;
+   }
+}
+
+exit 0
+
</ins></span></pre>
</div>
</div>

</body>
</html>