<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/a9aef02445333b920b669974403f382999413f2b">https://github.com/macports/macports-ports/commit/a9aef02445333b920b669974403f382999413f2b</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 a9aef02  minivmac-devel: Use Expect to mount disk image
</span>a9aef02 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit a9aef02445333b920b669974403f382999413f2b
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Thu Apr 26 18:45:15 2018 -0500

<span style='display:block; white-space:pre;color:#404040;'>    minivmac-devel: Use Expect to mount disk image
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    ...to answer "Yes" when some versions of hdiutil ask if we're sure we
</span><span style='display:block; white-space:pre;color:#404040;'>    want to mount a possibly corrupted disk.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Require MacPorts master, because only it allows sandbox access to the
</span><span style='display:block; white-space:pre;color:#404040;'>    ptys Expect needs to work.
</span>---
 emulators/minivmac-devel/Portfile         | 29 ++++++++++++++++++++++++-----
 emulators/minivmac-devel/files/attach.exp | 13 +++++++++++++
 2 files changed, 37 insertions(+), 5 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/emulators/minivmac-devel/Portfile b/emulators/minivmac-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c9473bd..58c1f5a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/emulators/minivmac-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/emulators/minivmac-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,7 +81,8 @@ checksums               ${my_src_distfile} \
</span> 
 depends_extract         port:bsdiff
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build           port:timeout
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build           bin:expect:expect \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        port:timeout
</span> 
 depends_skip_archcheck  bsdiff timeout
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -249,23 +250,25 @@ configure {
</span> }
 
 post-configure {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Sandbox didn't used to allow access to the ptys Expect needs.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://github.com/macports/macports-base/commit/8765c14223c2826c958cddd4e33c17801d63ddb4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp [macports_version] 2.4.99] >= 0} {
</span>     # Check if a configuration error occurred. This can happen if invalid
     # configuration flags were specified.
     delete ${my_mnvm_dat}/disk3.dmg
     ln ${my_mnvm_dat}/disk3.dsk ${my_mnvm_dat}/disk3.dmg
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set mountpoint [exec mktemp -d /tmp/mnvm.XXXXXXXX]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    system -W ${worksrcpath} "hdiutil attach '${my_mnvm_dat}/disk3.dmg' -readonly -mountpoint '${mountpoint}' -nobrowse"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set mountpoint [my_attach_disk_image ${my_mnvm_dat}/disk3.dmg]
</span>     if {[file exists ${mountpoint}/output/minivmac.err.txt]} {
         copy ${mountpoint}/output/minivmac.err.txt ${worksrcpath}
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    system -W ${worksrcpath} "hdiutil detach '${mountpoint}'"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    delete ${mountpoint}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    my_detach_disk_image ${mountpoint}
</span>     if {[file exists ${worksrcpath}/minivmac.err.txt]} {
         set fp [open ${worksrcpath}/minivmac.err.txt r]
         set error_text [read ${fp}]
         close ${fp}
         return -code error ${error_text}
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
     file mkdir ${build.dir}
     set my_variation_dirs {}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -402,6 +405,22 @@ proc my_arch_to_target {arch} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Mounts a disk image, using an Expect script that answers "yes" when some
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# versions of hdiutil ask if we want to mount the image even though it may be
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# damaged.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc my_attach_disk_image {disk_image} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global my_name filespath
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set mountpoint [mkdtemp "/tmp/${my_name}.XXXXXXXX"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "expect ${filespath}/attach.exp '${disk_image}' '${mountpoint}'"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return ${mountpoint}
</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;'>+# Unmounts a disk image.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc my_detach_disk_image {mountpoint} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system "hdiutil detach ${mountpoint} -force"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    delete ${mountpoint}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> livecheck.type          regex
 livecheck.url           ${homepage}
 #livecheck.version       ${my_version}-${branch}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/emulators/minivmac-devel/files/attach.exp b/emulators/minivmac-devel/files/attach.exp
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..32eb52b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/emulators/minivmac-devel/files/attach.exp
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#!/usr/bin/env expect --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+spawn hdiutil attach "[lindex $argv 0]" -mountpoint "[lindex $argv 1]" -private -nobrowse -noautoopen -noautofsck -noverify -readonly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+expect {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "Are you sure you want to open" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        exp_send "Y\r"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        exp_continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    "/dev/" {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        interact
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span></pre><pre style='margin:0'>

</pre>