<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/e0c122648d02f89afd4c7fac2eef06e0b83f669d">https://github.com/macports/macports-base/commit/e0c122648d02f89afd4c7fac2eef06e0b83f669d</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 e0c122648 Don't treat filenames in depspecs as regexes
</span>e0c122648 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e0c122648d02f89afd4c7fac2eef06e0b83f669d
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Jun 14 22:03:35 2024 +1000

<span style='display:block; white-space:pre;color:#404040;'>    Don't treat filenames in depspecs as regexes
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://github.com/macports/macports-base/pull/337
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/69585
</span>---
 src/macports1.0/macports.tcl | 29 ++++++++++-------------------
 src/port1.0/portutil.tcl     | 32 ++++++++++++--------------------
 2 files changed, 22 insertions(+), 39 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/macports.tcl b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index ebc45f69f..7d378de5a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/macports.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2462,37 +2462,28 @@ proc mporttraverse {func {root .}} {
</span> 
 ### _mportsearchpath is private; subject to change without notice
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# depregex -> regex on the filename to find.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# depfilename -> the filename to find.
</span> # search_path -> directories to search
 # executable -> whether we want to check that the file is executable by current
 #               user or not.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc _mportsearchpath {depregex search_path {executable 0} {return_match 0}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc _mportsearchpath {depfilename search_path {executable 0} {return_match 0}} {
</span>     set found 0
     foreach path $search_path {
         if {![file isdirectory $path]} {
             continue
         }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[catch {set filelist [readdir $path]} result]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            return -code error "$result ($path)"
</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;'>-        foreach filename $filelist {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {[regexp $depregex $filename] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-              (($executable == 0) || [file executable [file join $path $filename]])} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                ui_debug "Found Dependency: path: $path filename: $filename regex: $depregex"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set found 1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                break
</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;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {$found} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set fullpath [file join $path $depfilename]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {file type $fullpath}] &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          (($executable == 0) || [file executable $fullpath])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_debug "Found Dependency: path: $path filename: $depfilename"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set found 1
</span>             break
         }
     }
     if {$return_match} {
         if {$found} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            return [file join $path $filename]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            return $fullpath
</span>         } else {
             return {}
         }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2553,8 +2544,8 @@ proc _mportispresent {mport depspec} {
</span>         ui_debug "Found Dependency: receipt exists for $portname"
         return 1
     } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        # The receipt test failed, use one of the depspec regex mechanisms
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        ui_debug "Didn't find receipt, going to depspec regex for: $portname"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # The receipt test failed, use one of the depspec file mechanisms
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "Didn't find receipt, going to depspec file for: $portname"
</span>         set workername [ditem_key $mport workername]
         set type [lindex [split $depspec :] 0]
         switch -- $type {
<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 1dffb883e..6e3f1a21e 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;'>@@ -3186,48 +3186,40 @@ proc _libtest {depspec {return_match 0}} {
</span>     if {$i < 0} {set i [string length $depline]}
     set depname [string range $depline 0 $i-1]
     set depversion [string range $depline $i end]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    regsub {\.} $depversion {\.} depversion
</span>     if {${os.platform} eq "darwin"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set depregex \^${depname}${depversion}\\.dylib\$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set depfilename ${depname}${depversion}.dylib
</span>     } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set depregex \^${depname}\\.so${depversion}\$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set depfilename ${depname}.so${depversion}
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [_mportsearchpath $depregex $search_path 0 $return_match]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [_mportsearchpath $depfilename $search_path 0 $return_match]
</span> }
 
 ### _bintest is private; subject to change without notice
 
 proc _bintest {depspec {return_match 0}} {
     global env
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set depregex [lindex [split $depspec :] 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set depfilename [lindex [split $depspec :] 1]
</span> 
     set search_path [split $env(PATH) :]
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set depregex \^$depregex\$
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [_mportsearchpath $depregex $search_path 1 $return_match]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [_mportsearchpath $depfilename $search_path 1 $return_match]
</span> }
 
 ### _pathtest is private; subject to change without notice
 
 proc _pathtest {depspec {return_match 0}} {
     global prefix
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set depregex [lindex [split $depspec :] 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # separate directory from regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set fullname $depregex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set dep_path [lindex [split $depspec :] 1]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    regexp {^(.*)/(.*?)$} "$fullname" match search_path depregex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[string index $search_path 0] ne "/"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Prepend prefix if not an absolute path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set search_path "${prefix}/${search_path}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Prepend prefix if not an absolute path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set dep_path [file join $prefix $dep_path]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set depregex \^$depregex\$
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # separate directory from filename
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set search_path [file dirname $dep_path]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set depfilename [file tail $dep_path]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    return [_mportsearchpath $depregex $search_path 0 $return_match]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [_mportsearchpath $depfilename $search_path 0 $return_match]
</span> }
 
 # returns the name of the port that will actually be satisfying $depspec
</pre><pre style='margin:0'>

</pre>