<pre style='margin:0'>
Joshua Root (jmroot) pushed a commit to branch release-2.10
in repository macports-base.
</pre>
<p><a href="https://github.com/macports/macports-base/commit/9da5e4f9d48910fd2698ca2a829ec7ef47a7a5ca">https://github.com/macports/macports-base/commit/9da5e4f9d48910fd2698ca2a829ec7ef47a7a5ca</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 9da5e4f9d48910fd2698ca2a829ec7ef47a7a5ca
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Sat Aug 10 06:23:33 2024 +1000
<span style='display:block; white-space:pre;color:#404040;'> Better check for whether to migrate due to Rosetta 2
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Only consider migration to be needed if there is also no arm64 slice in
</span><span style='display:block; white-space:pre;color:#404040;'> our binary. This prevents migrating when base is correctly universal
</span><span style='display:block; white-space:pre;color:#404040;'> but the x86_64 slice is being run for whatever reason.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> See: https://trac.macports.org/ticket/70512
</span><span style='display:block; white-space:pre;color:#404040;'> (cherry picked from commit 9eb441f714c58a4bbc0c3abbc1f563ac591eadb6)
</span>---
src/macports1.0/macports_autoconf.tcl.in | 1 +
src/macports1.0/migrate.tcl | 23 +++++++++++++++++++++--
2 files changed, 22 insertions(+), 2 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/macports_autoconf.tcl.in b/src/macports1.0/macports_autoconf.tcl.in
</span><span style='display:block; white-space:pre;color:#808080;'>index 21985c509..c2444bfdb 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/macports_autoconf.tcl.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/macports_autoconf.tcl.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -54,6 +54,7 @@ namespace eval macports::autoconf {
</span> variable tar_command "@TAR_CMD@"
variable tar_path "@TAR@"
variable tar_q "@TAR_Q@"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ variable tclsh_path "@TCLSH@"
</span> variable unzip_path "@UNZIP@"
variable xar_path "@XAR@"
variable xcode_select_path "@XCODE_SELECT@"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/macports1.0/migrate.tcl b/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 8bf49b9fa..9b380c2b0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/macports1.0/migrate.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -248,8 +248,27 @@ namespace eval migrate {
</span> if {$os_platform eq "darwin" && $os_major >= 20
&& ![catch {sysctl sysctl.proc_translated} translated] && $translated
} then {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- set reason "MacPorts is running through Rosetta 2, and should be rebuilt for Apple Silicon"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Check if our tclsh has an arm64 slice - rebuilding not needed if it's universal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set h [machista::create_handle]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set rlist [machista::parse_file $h $macports::autoconf::tclsh_path]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[lindex $rlist 0] == $machista::SUCCESS} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set r [lindex $rlist 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set a [$r cget -mt_archs]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set has_arm64 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ while {$a ne "NULL"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set arch [machista::get_arch_name [$a cget -mat_arch]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {$arch eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set has_arm64 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set a [$a cget -next]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ machista::destroy_handle $h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[info exists has_arm64] && !$has_arm64} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set reason "MacPorts is running through Rosetta 2, and should be rebuilt for Apple Silicon"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
return 0
}
</pre><pre style='margin:0'>
</pre>