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

</pre>
<p><a href="https://github.com/macports/macports-base/commit/1b1251c6e8ea7da4e8f9d154445bba2ec83518ea">https://github.com/macports/macports-base/commit/1b1251c6e8ea7da4e8f9d154445bba2ec83518ea</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 1b1251c6e8ea7da4e8f9d154445bba2ec83518ea
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Feb 27 13:27:27 2024 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Resolve filesystem paths read from macports.conf
</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/69327
</span><span style='display:block; white-space:pre;color:#404040;'>    (cherry picked from commit b69f0cf9b8f8ce4b87cd565d2e7575ffb0ea414e)
</span>---
 src/macports1.0/macports.tcl | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 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 2e5664f87..4b0385997 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;'>@@ -45,19 +45,28 @@ package require mpcommon 1.0
</span> 
 namespace eval macports {
     namespace export bootstrap_options user_options portinterp_options open_mports ui_priorities
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    variable bootstrap_options "\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        portdbpath binpath auto_path extra_env sources_conf prefix portdbformat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variable bootstrap_options [dict create]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Config file options with no special handling
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach opt [list binpath auto_path extra_env portdbformat \
</span>         portarchivetype hfscompression portautoclean \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        porttrace portverbose keeplogs destroot_umask variants_conf rsync_server rsync_options \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        porttrace portverbose keeplogs destroot_umask rsync_server rsync_options \
</span>         rsync_dir startupitem_autostart startupitem_type startupitem_install \
         place_worksymlink xcodeversion xcodebuildcmd xcodecltversion xcode_license_unaccepted \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configureccache ccache_dir ccache_size configuredistcc configurepipe buildnicevalue buildmakejobs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        applications_dir frameworks_dir developer_dir universal_archs build_arch macosx_sdk_version macosx_deployment_target \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configureccache ccache_size configuredistcc configurepipe buildnicevalue buildmakejobs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        universal_archs build_arch macosx_sdk_version macosx_deployment_target \
</span>         macportsuser proxy_override_env proxy_http proxy_https proxy_ftp proxy_rsync proxy_skip \
         master_site_local patch_site_local archive_site_local buildfromsource \
         revupgrade_autorun revupgrade_mode revupgrade_check_id_loadcmds \
         host_blacklist preferred_hosts sandbox_enable sandbox_network delete_la_files cxx_stdlib \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        packagemaker_path default_compilers pkg_post_unarchive_deletions ui_interactive"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_compilers pkg_post_unarchive_deletions ui_interactive] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            dict set bootstrap_options $opt {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Config file options that are a filesystem path and should be fully resolved
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach opt [list applications_dir ccache_dir developer_dir frameworks_dir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                      packagemaker_path portdbpath prefix sources_conf variants_conf] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        dict set bootstrap_options $opt is_path 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     variable user_options {}
     variable portinterp_options "\
         portdbpath porturl portpath portbuildpath auto_path prefix prefix_frozen portsharepath \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -909,9 +918,13 @@ proc mportinit {{up_ui_options {}} {up_options {}} {up_variations {}}} {
</span>             set fd [open $file r]
             while {[gets $fd line] >= 0} {
                 if {[regexp $conf_option_re $line match option ignore val] == 1} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    if {$option in $bootstrap_options} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set macports::$option [string trim $val]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[dict exists $bootstrap_options $option]} {
</span>                         global macports::$option
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if {[dict exists $bootstrap_options $option is_path]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            set $option [realpath [string trim $val]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            set $option [string trim $val]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        }
</span>                     }
                 }
             }
</pre><pre style='margin:0'>

</pre>