<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/b3068a133779d99a0ffdd3d95423246bf16eb862">https://github.com/macports/macports-base/commit/b3068a133779d99a0ffdd3d95423246bf16eb862</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 b3068a133 Add Apple Archive support
</span>b3068a133 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit b3068a133779d99a0ffdd3d95423246bf16eb862
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Tue Nov 28 17:27:17 2023 +1100

<span style='display:block; white-space:pre;color:#404040;'>    Add Apple Archive support
</span>---
 configure                                | 46 ++++++++++++++++++++++++++++++++
 configure.ac                             |  1 +
 src/macports1.0/macports_autoconf.tcl.in |  1 +
 src/package1.0/portunarchive.tcl         | 12 +++++++++
 src/port1.0/port_autoconf.tcl.in         |  1 +
 src/port1.0/portinstall.tcl              | 28 +++++++++++++------
 src/port1.0/portutil.tcl                 | 18 ++++++++++---
 src/registry2.0/portimage.tcl            | 12 +++++++++
 8 files changed, 107 insertions(+), 12 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/configure b/configure
</span><span style='display:block; white-space:pre;color:#808080;'>index e0051b90b..270622c8f 100755
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/configure
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/configure
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -763,6 +763,7 @@ CHOWN
</span> BZR
 BZIP2_BIN
 BSDMAKE
<span style='display:block; white-space:pre;background:#e0ffe0;'>+AA
</span> SET_MAKE
 LN_S
 INSTALL_DATA
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4103,6 +4104,51 @@ fi
</span> 
 
 # Search for tool paths. Any set above (via --with-pkg=PATH) will be retained
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Extract the first word of "aa", so it can be a program name with args.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set dummy aa; ac_word=$2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+printf %s "checking for $ac_word... " >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if test ${ac_cv_path_AA+y}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+then :
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  printf %s "(cached) " >&6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else $as_nop
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  case $AA in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  [\\/]* | ?:[\\/]*)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  ac_cv_path_AA="$AA" # Let the user override the test with a path.
</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;'>+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+for as_dir in $PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  IFS=$as_save_IFS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  case $as_dir in #(((
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    '') as_dir=./ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    */) ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    *) as_dir=$as_dir/ ;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    for ac_exec_ext in '' $ac_executable_extensions; do
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    ac_cv_path_AA="$as_dir$ac_word$ac_exec_ext"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    break 2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  done
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+IFS=$as_save_IFS
</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;'>+esac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+AA=$ac_cv_path_AA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if test -n "$AA"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AA" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+printf "%s\n" "$AA" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+printf "%s\n" "no" >&6; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> for ac_prog in bsdmake pmake
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
<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 6d9b37458..a6d837ba3 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;'>@@ -132,6 +132,7 @@ MP_TOOL_PATH(XAR, [xar])
</span> MP_TOOL_PATH(XZ, [xz])
 
 # Search for tool paths. Any set above (via --with-pkg=PATH) will be retained
<span style='display:block; white-space:pre;background:#e0ffe0;'>+AC_PATH_PROG(AA, [aa], [])
</span> AC_PATH_PROGS(BSDMAKE, [bsdmake pmake], [])
 AC_PATH_PROG(BZIP2_BIN, [bzip2], [])
 AC_PATH_PROG(BZR, [bzr], [])
<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 8f85b1107..0b7167381 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;'>@@ -32,6 +32,7 @@
</span> package provide macports 1.0
 
 namespace eval macports::autoconf {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    variable aa_path "@AA@"
</span>     variable bzip2_path "@BZIP2_BIN@"
     variable chown_path "@CHOWN@"
     variable gzip_path "@GZIP_BIN@"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/package1.0/portunarchive.tcl b/src/package1.0/portunarchive.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index a859bbd3e..b4f15dcd2 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/package1.0/portunarchive.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/package1.0/portunarchive.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -135,6 +135,18 @@ proc portunarchive::unarchive_command_setup {args} {
</span>     set unarchive.post_args {}
     set unarchive.pipe_cmd ""
     switch -regex ${unarchive.type} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        aar {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set aa "aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[catch {set aa [findBinary $aa ${portutil::autoconf::aa_path}]} errmsg] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_debug "Using $aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set unarchive.cmd "$aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set unarchive.pre_args {extract -afsc-all -enable-dedup -enable-holes -v}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set unarchive.args "-i [shellescape ${unarchive.path}]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_debug $errmsg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error "No '$aa' was found on this system!"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         cp(io|gz) {
             set pax "pax"
             if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/port_autoconf.tcl.in b/src/port1.0/port_autoconf.tcl.in
</span><span style='display:block; white-space:pre;color:#808080;'>index 713a5a9d7..328c820da 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/port_autoconf.tcl.in
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/port_autoconf.tcl.in
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,6 +31,7 @@
</span> package provide port 1.0
 
 namespace eval portutil::autoconf {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        variable aa_path "@AA@"
</span>   variable bzip2_path "@BZIP2_BIN@"
        variable lzma_path "@LZMA@"
        variable xz_path "@XZ@"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portinstall.tcl b/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index de52f1095..d0e2a3927 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portinstall.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -85,6 +85,18 @@ proc portinstall::create_archive {location archive.type} {
</span>     set archive.dir ${destpath}
 
     switch -regex -- ${archive.type} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        aar {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set aa "aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[catch {set aa [findBinary $aa ${portutil::autoconf::aa_path}]} errmsg] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_debug "Using $aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set archive.cmd "$aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set archive.pre_args "archive -v"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set archive.args "-o [shellescape ${location}] -d ."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ui_debug $errmsg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return -code error "No '$aa' was found on this system!"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         cp(io|gz) {
             set pax "pax"
             if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -96,13 +108,13 @@ proc portinstall::create_archive {location archive.type} {
</span>                     if {[catch {set gzip [findBinary $gzip ${portutil::autoconf::gzip_path}]} errmsg] == 0} {
                         ui_debug "Using $gzip"
                         set archive.args {.}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set archive.post_args "| $gzip -c9 > ${location}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set archive.post_args "| $gzip -c9 > [shellescape ${location}]"
</span>                     } else {
                         ui_debug $errmsg
                         return -code error "No '$gzip' was found on this system!"
                     }
                 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set archive.args "-f ${location} ."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set archive.args "-f [shellescape ${location}] ."
</span>                 }
             } else {
                 ui_debug $errmsg
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -143,13 +155,13 @@ proc portinstall::create_archive {location archive.type} {
</span>                     if {[catch {set gzip [findBinary $gzip $hint]} errmsg] == 0} {
                         ui_debug "Using $gzip"
                         set archive.args {- .}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set archive.post_args "| $gzip -c$level > ${location}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set archive.post_args "| $gzip -c$level > [shellescape ${location}]"
</span>                     } else {
                         ui_debug $errmsg
                         return -code error "No '$gzip' was found on this system!"
                     }
                 } else {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set archive.args "${location} ."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set archive.args "[shellescape ${location}] ."
</span>                 }
             } else {
                 ui_debug $errmsg
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -162,7 +174,7 @@ proc portinstall::create_archive {location archive.type} {
</span>                 ui_debug "Using $xar"
                 set archive.cmd "$xar"
                 set archive.pre_args {-cvf}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                set archive.args "${location} ."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set archive.args "[shellescape ${location}] ."
</span>             } else {
                 ui_debug $errmsg
                 return -code error "No '$xar' was found on this system!"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -174,7 +186,7 @@ proc portinstall::create_archive {location archive.type} {
</span>                 ui_debug "Using $zip"
                 set archive.cmd "$zip"
                 set archive.pre_args {-ry9}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                set archive.args "${location} ."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set archive.args "[shellescape ${location}] ."
</span>             } else {
                 ui_debug $errmsg
                 return -code error "No '$zip' was found on this system!"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -244,7 +256,7 @@ proc portinstall::create_archive {location archive.type} {
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach key "depends_lib depends_run" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach key [list depends_lib depends_run] {
</span>          if {[info exists $key]} {
              foreach depspec [set $key] {
                  set depname [lindex [split $depspec :] end]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -362,7 +374,7 @@ proc portinstall::install_main {args} {
</span> 
     # can't do this inside the write transaction due to deadlock issues with _get_dep_port
     set dep_portnames [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach deplist {depends_lib depends_run} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach deplist [list depends_lib depends_run] {
</span>         if {[info exists $deplist]} {
             foreach dep [set $deplist] {
                 set dep_portname [_get_dep_port $dep]
<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 0d38e079e..0aa20e5e1 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;'>@@ -356,7 +356,7 @@ proc command_string {command} {
</span>         append cmdstring " ${command}"
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach var "${command}.pre_args ${command}.args ${command}.post_args" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach var [list ${command}.pre_args ${command}.args ${command}.post_args] {
</span>         if {[info exists $var]} {
             foreach string [set ${var}] {
                 append cmdstring " ${string}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2761,7 +2761,7 @@ proc supportedArchiveTypes {} {
</span>     global supported_archive_types
     if {![info exists supported_archive_types]} {
         set supported_archive_types [list]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach type {tbz2 tbz tgz tar txz tlz xar zip cpgz cpio} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach type [list tbz2 tbz tgz tar txz tlz xar zip cpgz cpio aar] {
</span>             if {[catch {archiveTypeIsSupported $type}] == 0} {
                 lappend supported_archive_types $type
             }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2797,6 +2797,12 @@ proc find_portarchive_path {} {
</span> proc archiveTypeIsSupported {type} {
     set errmsg ""
     switch -regex $type {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        aar {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set aa "aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {[catch {set aa [findBinary $aa ${portutil::autoconf::aa_path}]} errmsg] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                return 0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         cp(io|gz) {
             set pax "pax"
             if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2866,7 +2872,8 @@ proc extract_archive_metadata {archive_location archive_type metadata_type} {
</span>     switch -- $archive_type {
         xar -
         cpgz -
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        cpio {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        cpio -
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        aar {
</span>             set twostep 1
             global workpath
             if {[file isdirectory ${workpath}/.tmp]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2906,10 +2913,13 @@ proc extract_archive_metadata {archive_location archive_type metadata_type} {
</span>         cpio {
             system -W ${tempdir} "[findBinary pax ${portutil::autoconf::pax_path}] -rf [shellescape $archive_location] +CONTENTS"
         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        aar {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${tempdir} "[findBinary aa ${portutil::autoconf::aa_path}] extract -i [shellescape $archive_location] -include-path +CONTENTS"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>     }
     if {[info exists twostep]} {
         set fd [open "${tempdir}/+CONTENTS"]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        set raw_contents [read $fd]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set raw_contents [read -nonewline $fd]
</span>         close $fd
         file delete -force $tempdir
     }
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/registry2.0/portimage.tcl b/src/registry2.0/portimage.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 2eb3d8617..472340138 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/registry2.0/portimage.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/registry2.0/portimage.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -392,6 +392,18 @@ proc extract_archive_to_tmpdir {location} {
</span>         set unarchive.pipe_cmd ""
         set unarchive.type [::file extension $location]
         switch -regex ${unarchive.type} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            aar {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set aa "aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[catch {set aa [macports::findBinary $aa ${macports::autoconf::aa_path}]} errmsg] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ui_debug "Using $aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set unarchive.cmd "$aa"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set unarchive.pre_args {extract -afsc-all -enable-dedup -enable-holes -v}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set unarchive.args "-i [macports::shellescape ${location}]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ui_debug $errmsg
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    return -code error "No '$aa' was found on this system!"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span>             cp(io|gz) {
                 set pax "pax"
                 if {[catch {set pax [macports::findBinary $pax ${macports::autoconf::pax_path}]} errmsg] == 0} {
</pre><pre style='margin:0'>

</pre>