summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-27 07:56:26 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-27 07:56:26 +0000
commit377970b5bdc773c628d2cfbe410f0ff62d178674 (patch)
treedcd5804c95a345e55e0eb9a05b4dae1109306de1 /pym/portage.py
parent9718cfe2171d77cf308b270918c9a6cea1c1baf5 (diff)
downloadportage-377970b5bdc773c628d2cfbe410f0ff62d178674.tar.gz
portage-377970b5bdc773c628d2cfbe410f0ff62d178674.tar.bz2
portage-377970b5bdc773c628d2cfbe410f0ff62d178674.zip
Make config._init_dirs() preserver /tmp and /var/tmp permissions if
those directories already exist. This gives freedom to the user to adjust permissions to suit their taste. (trunk r10451:10453) svn path=/main/branches/2.1.2/; revision=10454
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py19
1 files changed, 13 insertions, 6 deletions
diff --git a/pym/portage.py b/pym/portage.py
index b126fac3e..1bbd32353 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -1776,16 +1776,23 @@ class config:
if not os.access(self["ROOT"], os.W_OK):
return
+ # gid, mode, mask, preserve_perms
dir_mode_map = {
- "tmp" :(-1, 01777, 0),
- "var/tmp" :(-1, 01777, 0),
- "var/lib/portage" :(portage_gid, 02750, 02),
- "var/cache/edb" :(portage_gid, 0755, 02)
+ "tmp" : ( -1, 01777, 0, True),
+ "var/tmp" : ( -1, 01777, 0, True),
+ PRIVATE_PATH : ( portage_gid, 02750, 02, False),
+ CACHE_PATH.lstrip(os.path.sep) : (portage_gid, 0755, 02, False)
}
- for mypath, (gid, mode, modemask) in dir_mode_map.iteritems():
+ for mypath, (gid, mode, modemask, preserve_perms) \
+ in dir_mode_map.iteritems():
+ mydir = os.path.join(self["ROOT"], mypath)
+ if preserve_perms and os.path.isdir(mydir):
+ # Only adjust permissions on some directories if
+ # they don't exist yet. This gives freedom to the
+ # user to adjust permissions to suit their taste.
+ continue
try:
- mydir = os.path.join(self["ROOT"], mypath)
portage_util.ensure_dirs(mydir, gid=gid, mode=mode, mask=modemask)
except portage_exception.PortageException, e:
writemsg("!!! Directory initialization failed: '%s'\n" % mydir,