[112646] trunk/base/src/port1.0/portutil.tcl

cal at macports.org cal at macports.org
Mon Oct 28 14:31:12 PDT 2013


Revision: 112646
          https://trac.macports.org/changeset/112646
Author:   cal at macports.org
Date:     2013-10-28 14:31:12 -0700 (Mon, 28 Oct 2013)
Log Message:
-----------
portutil: do not use trace mode on uninstall because it will fail, redirect reinplace sed(1) stderr to itself to avoid Tcl exec aborting on stderr output (such as from tracemode debug output)

Modified Paths:
--------------
    trunk/base/src/port1.0/portutil.tcl

Modified: trunk/base/src/port1.0/portutil.tcl
===================================================================
--- trunk/base/src/port1.0/portutil.tcl	2013-10-28 21:29:43 UTC (rev 112645)
+++ trunk/base/src/port1.0/portutil.tcl	2013-10-28 21:31:12 UTC (rev 112646)
@@ -997,7 +997,7 @@
         if {$suppress} {
             lappend cmdline -n
         }
-        set cmdline [concat $cmdline [list $pattern < $file >@ $tmpfd]]
+        set cmdline [concat $cmdline [list $pattern < $file >@ $tmpfd 2>@stderr]]
         if {$locale != ""} {
             set env(LC_CTYPE) $locale
         }
@@ -1397,14 +1397,19 @@
                 if {($result ==0
                   && [info exists ports_trace]
                   && $ports_trace == "yes"
-                  && $target != "clean")} {
+                  && $target ne "clean"
+                  && $target ne "uninstall")} {
+                    # uninstall will open a portfile from registry and call
+                    # deactivate and uninstall there; if we enable trace mode
+                    # for the first level the two trace threads will conflict
+                    # and cause a deadlock.
                     porttrace::trace_start $workpath
 
                     # Enable the fence to prevent any creation/modification
                     # outside the sandbox.
-                    if {$target != "activate"
-                      && $target != "archive"
-                      && $target != "install"} {
+                    if {$target ne "activate"
+                      && $target ne "archive"
+                      && $target ne "install"} {
                         porttrace::trace_enable_fence
                     }
 
@@ -1516,7 +1521,8 @@
                 # Check dependencies & file creations outside workpath.
                 if {[info exists ports_trace]
                   && $ports_trace == "yes"
-                  && $target!="clean"} {
+                  && $target ne "clean"
+                  && $target ne "uninstall"} {
 
                     tracelib closesocket
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20131028/a09bd4f8/attachment.html>


More information about the macports-changes mailing list