<pre style='margin:0'>
Clemens Lang (neverpanic) pushed a commit to branch release-2.10
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/231a6d7412bc548df56701127ca4670f8e30ddb8">https://github.com/macports/macports-base/commit/231a6d7412bc548df56701127ca4670f8e30ddb8</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 231a6d7412bc548df56701127ca4670f8e30ddb8
</span>Author: Clemens Lang <cal@macports.org>
AuthorDate: Sun May 25 21:12:44 2025 +0200

<span style='display:block; white-space:pre;color:#404040;'>    src/port: Replace port-tclsh with binary
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    It seems like using scripts as interpreters in shebangs leads to
</span><span style='display:block; white-space:pre;color:#404040;'>    unexpected effects on macOS, so let's just use a binary instead, which
</span><span style='display:block; white-space:pre;color:#404040;'>    seems to work fine. Fortunately, this particular binary is very simple,
</span><span style='display:block; white-space:pre;color:#404040;'>    too.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/72530
</span><span style='display:block; white-space:pre;color:#404040;'>    (cherry picked from commit 92bae5a245d0d978b5f3112cd0a158704119e71f)
</span>---
 configure.ac             |  6 +++---
 src/port/Makefile.in     |  2 +-
 src/port/port-tclsh.c.in | 20 ++++++++++++++++++++
 src/port/port-tclsh.in   |  2 --
 4 files changed, 24 insertions(+), 6 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/configure.ac b/configure.ac
</span><span style='display:block; white-space:pre;color:#808080;'>index 6334e3244..7b6ce6dc9 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/configure.ac
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/configure.ac
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -431,8 +431,8 @@ AC_CONFIG_FILES([
</span>   portmgr/dmg/postflight
        setupenv.bash
        src/Makefile
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        src/cregistry/Makefile
</span>   src/compat/Makefile
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        src/cregistry/Makefile
</span>   src/darwintracelib1.0/Makefile
        src/darwintracelib1.0/tests/Makefile
        src/machista1.0/Makefile
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -443,11 +443,12 @@ AC_CONFIG_FILES([
</span>   src/package1.0/Makefile
        src/package1.0/package_test_autoconf.tcl
        src/pextlib1.0/Makefile
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        src/portlist1.0/Makefile
</span>   src/port/Makefile
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        src/port/port-tclsh.c
</span>   src/port1.0/Makefile
        src/port1.0/port_autoconf.tcl
        src/port1.0/port_test_autoconf.tcl
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        src/portlist1.0/Makefile
</span>   src/programs/Makefile
        src/registry2.0/Makefile
        src/registry2.0/registry_autoconf.tcl
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -465,6 +466,5 @@ AC_CONFIG_FILES([src/dedup_portfiles.tcl], [chmod +x src/dedup_portfiles.tcl])
</span> AC_CONFIG_FILES([src/images_to_archives.tcl], [chmod +x src/images_to_archives.tcl])
 AC_CONFIG_FILES([src/pkg_mkindex.sh], [chmod +x src/pkg_mkindex.sh])
 AC_CONFIG_FILES([src/upgrade_sources_conf_default.tcl], [chmod +x src/upgrade_sources_conf_default.tcl])
<span style='display:block; white-space:pre;background:#ffe0e0;'>-AC_CONFIG_FILES([src/port/port-tclsh], [chmod +x src/port/port-tclsh])
</span> 
 AC_OUTPUT
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/Makefile.in b/src/port/Makefile.in
</span><span style='display:block; white-space:pre;color:#808080;'>index 8f6b89a9b..a47198281 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ include ../../Mk/macports.autoconf.mk
</span> 
 INSTALLDIR=    ${prefix}
 TOPSRCDIR=     ../..
<span style='display:block; white-space:pre;background:#ffe0e0;'>-SCRIPTS=        portmirror portindex port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+SCRIPTS=   portmirror portindex port port-tclsh
</span> 
 edit = sed -e 's,@TCLSH\@,$(TCLSH),g'
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/port-tclsh.c.in b/src/port/port-tclsh.c.in
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 000000000..00c5686f2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port/port-tclsh.c.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,20 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#define _XOPEN_SOURCE 600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdio.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <string.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+int main(int argc, char *argv[]) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (argc > 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           char *newname = strdup("@TCLSH@");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (newname != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   argv[0] = newname;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           /* Ignore errors and just leave argv[0] the same, hoping that the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            * executed program will still work fine. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   execvp("@TCLSH@", argv);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   perror("execvp('@TCLSH@', argv)");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return EXIT_FAILURE;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port/port-tclsh.in b/src/port/port-tclsh.in
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index c8a86468c..000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port/port-tclsh.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,2 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-#!/bin/sh
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-exec "@TCLSH@" "$@"
</span></pre><pre style='margin:0'>

</pre>