<pre style='margin:0'>
Rainer Müller (raimue) pushed a commit to branch vcs-fetch
in repository macports-base.

</pre>
<p><a href="https://github.com/macports/macports-base/commit/42e7ce792faaebb5e3aec958d2936c5fb8f02216">https://github.com/macports/macports-base/commit/42e7ce792faaebb5e3aec958d2936c5fb8f02216</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 42e7ce792faaebb5e3aec958d2936c5fb8f02216
</span>Author: Rainer Müller <raimue@macports.org>
AuthorDate: Sun Apr 15 20:50:40 2018 +0200

<span style='display:block; white-space:pre;color:#404040;'>    mirror: Run without elevated privileges
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    As mirror calls fetch, it might need a statefile and work directory to
</span><span style='display:block; white-space:pre;color:#404040;'>    generate a tarball for a port with a VCS fetch.type. Drop privileges by
</span><span style='display:block; white-space:pre;color:#404040;'>    default and only elevate to update the filemap.
</span>---
 src/port1.0/portmirror.tcl | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/src/port1.0/portmirror.tcl b/src/port1.0/portmirror.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index e4b4a44..7a73564 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/src/port1.0/portmirror.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/src/port1.0/portmirror.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -39,7 +39,7 @@ package require portchecksum 1.0
</span> 
 set org.macports.mirror [target_new org.macports.mirror portmirror::mirror_main]
 target_runtype ${org.macports.mirror} always
<span style='display:block; white-space:pre;background:#ffe0e0;'>-target_state ${org.macports.mirror} no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+target_state ${org.macports.mirror} yes
</span> target_provides ${org.macports.mirror} mirror
 target_requires ${org.macports.mirror} main
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -64,9 +64,6 @@ proc portmirror::mirror_main {args} {
</span>     }
     set ports_fetch_no-mirrors yes
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set mirror_filemap_path [file join $portdbpath distfiles_mirror.db]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    filemap open mirror_filemap $mirror_filemap_path
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     # Check the distfiles if it's a regular fetch phase.
     if {[portfetch::mirrorable]} {
         # fetch the files.
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -79,14 +76,19 @@ proc portmirror::mirror_main {args} {
</span>             # delete the files.
             portfetch::fetch_deletefiles $args
         } else {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+            elevateToRoot "mirror"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set mirror_filemap_path [file join $portdbpath distfiles_mirror.db]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            filemap open mirror_filemap $mirror_filemap_path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>             # add the list of files.
             portfetch::fetch_addfilestomap mirror_filemap
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # close the filemap.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            filemap close mirror_filemap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            dropPrivileges
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # close the filemap.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    filemap close mirror_filemap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     # restore original value
     if {[info exists ports_fetch_no-mirrors.orig]} {
         set ports_fetch_no-mirrors ${ports_fetch_no-mirrors.orig}
</pre><pre style='margin:0'>

</pre>