<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>