<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch master
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/2742db6af032e73b294d91ae38cb6a3a94727c8e">https://github.com/macports/macports-base/commit/2742db6af032e73b294d91ae38cb6a3a94727c8e</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 2742db6af Replace `mkstemp` with Tcl 8.6 `file tempfile`
</span>2742db6af is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 2742db6af032e73b294d91ae38cb6a3a94727c8e
</span>Author: Christopher Chavez <chrischavez@gmx.us>
AuthorDate: Wed Nov 15 05:33:19 2023 -0600

<span style='display:block; white-space:pre;color:#404040;'>    Replace `mkstemp` with Tcl 8.6 `file tempfile`
</span>---
 doc/INTERNALS            |  2 +-
 doc/portfile.7           |  5 -----
 src/pextlib1.0/Pextlib.c |  1 -
 src/pextlib1.0/mktemp.c  | 29 -----------------------------
 src/pextlib1.0/mktemp.h  |  1 -
 src/port1.0/portbump.tcl | 12 +++---------
 src/port1.0/portutil.tcl |  7 +------
 7 files changed, 5 insertions(+), 52 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/INTERNALS b/doc/INTERNALS
</span><span style='display:block; white-space:pre;color:#808080;'>index b6afabb3e..ce0898aa2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/INTERNALS
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/INTERNALS
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -53,4 +53,4 @@ supplies all these procedures, all of which are generated at run-time using
</span> the "options" procedure in portutil.tcl.
 
     The "pextlib" TCL library provides a variety of otherwise unavailable TCL
<span style='display:block; white-space:pre;background:#ffe0e0;'>-procedures, such as an interface to flock(2) and mkstemp(3).
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+procedures, such as an interface to flock(2).
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/doc/portfile.7 b/doc/portfile.7
</span><span style='display:block; white-space:pre;color:#808080;'>index e48f2908f..4935606d7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/doc/portfile.7
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/doc/portfile.7
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2686,11 +2686,6 @@ Create a temporary file using a
</span> .Ar template .
 See
 .Xr mktemp 3 .
<span style='display:block; white-space:pre;background:#ffe0e0;'>-.It Ic mkstemp Ar template
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-Create a temporary file securely using a
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-.Ar template .
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-See
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-.Xr mkstemp 3 .
</span> .It Ic mkdtemp Ar template
 Create a temporary directory using a
 .Ar template .
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/Pextlib.c b/src/pextlib1.0/Pextlib.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 77b31168d..f9c88e8a5 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/Pextlib.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/Pextlib.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1076,7 +1076,6 @@ int Pextlib_Init(Tcl_Interp *interp)
</span>   Tcl_CreateObjCommand(interp, "adv-flock", AdvFlockCmd, NULL, NULL);
        Tcl_CreateObjCommand(interp, "readdir", ReaddirCmd, NULL, NULL);
        Tcl_CreateObjCommand(interp, "strsed", StrsedCmd, NULL, NULL);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        Tcl_CreateObjCommand(interp, "mkstemp", MkstempCmd, NULL, NULL);
</span>   Tcl_CreateObjCommand(interp, "mktemp", MktempCmd, NULL, NULL);
        Tcl_CreateObjCommand(interp, "mkdtemp", MkdtempCmd, NULL, NULL);
        Tcl_CreateObjCommand(interp, "existsuser", ExistsuserCmd, NULL, NULL);
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/mktemp.c b/src/pextlib1.0/mktemp.c
</span><span style='display:block; white-space:pre;color:#808080;'>index 83b5257fa..a671fb6ae 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/mktemp.c
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/mktemp.c
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -101,32 +101,3 @@ int MktempCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Ob
</span>   free(template);
        return TCL_OK;
 }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-int MkstempCmd(ClientData clientData UNUSED, Tcl_Interp *interp, int objc, Tcl_Obj *const objv[])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-{
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Tcl_Channel channel;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   char *template, *channelname;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   int fd;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (objc != 2) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           Tcl_WrongNumArgs(interp, 1, objv, "template");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           return TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   template = strdup(Tcl_GetString(objv[1]));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if (template == NULL)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           return TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   if ((fd = mkstemp(template)) < 0) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           Tcl_AppendResult(interp, "mkstemp failed: ", strerror(errno), NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           free(template);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-           return TCL_ERROR;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   channel = Tcl_MakeFileChannel((ClientData)(intptr_t)fd, TCL_READABLE|TCL_WRITABLE);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Tcl_RegisterChannel(interp, channel);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   channelname = (char *)Tcl_GetChannelName(channel);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   Tcl_AppendResult(interp, channelname, " ", template, NULL);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   free(template);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   return TCL_OK;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/pextlib1.0/mktemp.h b/src/pextlib1.0/mktemp.h
</span><span style='display:block; white-space:pre;color:#808080;'>index 431421176..85ffda088 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/pextlib1.0/mktemp.h
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/pextlib1.0/mktemp.h
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,4 +31,3 @@
</span> 
 int MkdtempCmd(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
 int MktempCmd(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-int MkstempCmd(ClientData, Tcl_Interp *, int, Tcl_Obj *const objv[]);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portbump.tcl b/src/port1.0/portbump.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 69c1d4a58..5486a1b69 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portbump.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portbump.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -189,18 +189,12 @@ proc portbump::bump_main {args} {
</span>         # root -> owner id
         exec_as_uid $owneruid {
             # Create temporary Portfile.bump.XXXXXX
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[catch {set tmpfile [mkstemp "${portpath}/Portfile.bump.XXXXXX"]} error]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[catch {set tmpfd [file tempfile tmpfile "${portpath}/Portfile.bump.XXXXXX"]} error]} {
</span>                 ui_debug $::errorInfo
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                ui_error "mkstemp: $error"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                return -code error "mkstemp failed"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_error "file tempfile: $error"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error "file tempfile failed"
</span>             }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Extract the Tcl Channel number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set tmpfd [lindex $tmpfile 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Set tmpfile to only the file name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set tmpfile [join [lrange $tmpfile 1 end]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>             # Get Portfile attributes
             set attributes [file attributes $portfile]
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portutil.tcl b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 0aa20e5e1..2eabf6d31 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portutil.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1087,15 +1087,10 @@ proc reinplace {args}  {
</span>         # absolute path, otherwise it is $dir/$file
         set file [file join $dir $file]
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[catch {set tmpfile [mkstemp "${tempdir}/[file tail $file].sed.XXXXXXXX"]} error]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[catch {set tmpfd [file tempfile tmpfile "${tempdir}/[file tail $file].sed.XXXXXXXX"]} error]} {
</span>             ui_debug $::errorInfo
             ui_error "reinplace: $error"
             return -code error "reinplace failed"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Extract the Tcl Channel number
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set tmpfd [lindex $tmpfile 0]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            # Set tmpfile to only the file name
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set tmpfile [join [lrange $tmpfile 1 end]]
</span>         }
 
         set cmdline [list]
</pre><pre style='margin:0'>

</pre>