[72149] trunk/base/src/package1.0/portunarchive.tcl
jmr at macports.org
jmr at macports.org
Mon Oct 4 20:55:27 PDT 2010
Revision: 72149
http://trac.macports.org/changeset/72149
Author: jmr at macports.org
Date: 2010-10-04 20:55:25 -0700 (Mon, 04 Oct 2010)
Log Message:
-----------
reacquire root privileges for unarchive, and check euid directly instead of env(USER)
Modified Paths:
--------------
trunk/base/src/package1.0/portunarchive.tcl
Modified: trunk/base/src/package1.0/portunarchive.tcl
===================================================================
--- trunk/base/src/package1.0/portunarchive.tcl 2010-10-05 03:55:22 UTC (rev 72148)
+++ trunk/base/src/package1.0/portunarchive.tcl 2010-10-05 03:55:25 UTC (rev 72149)
@@ -137,6 +137,11 @@
global UI_PREFIX name version revision portvariants
global unarchive.type
+ if {[getuid] == 0 && [geteuid] != 0} {
+ # run as root if possible so file ownership can be preserved
+ elevateToRoot "unarchive"
+ }
+
ui_msg "$UI_PREFIX [format [msgcat::mc "Unpacking ${unarchive.type} archive for %s %s_%s%s"] $name $version $revision $portvariants]"
return 0
@@ -162,7 +167,7 @@
if {[catch {set pax [findBinary $pax ${portutil::autoconf::pax_path}]} errmsg] == 0} {
ui_debug "Using $pax"
set unarchive.cmd "$pax"
- if {[info exists env(USER)] && $env(USER) == "root"} {
+ if {[geteuid] == 0} {
set unarchive.pre_args {-r -v -p e}
} else {
set unarchive.pre_args {-r -v -p p}
@@ -239,7 +244,7 @@
if {[catch {set unzip [findBinary $unzip ${portutil::autoconf::unzip_path}]} errmsg] == 0} {
ui_debug "Using $unzip"
set unarchive.cmd "$unzip"
- if {[info exists env(USER)] && $env(USER) == "root"} {
+ if {[geteuid] == 0} {
set unarchive.pre_args {-oX}
} else {
set unarchive.pre_args {-o}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20101004/aed2bc93/attachment.html>
More information about the macports-changes
mailing list