summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-06-09 15:17:18 +0000
committerZac Medico <zmedico@gentoo.org>2008-06-09 15:17:18 +0000
commit48452a4675c33b7b344df217ee3cb4753e2ecd04 (patch)
tree08db05dfb34f9c9aa62e2508be9a7cdfec210ab9 /pym
parentd305817723fb8e08734c66e53aa28bff6e22e528 (diff)
downloadportage-48452a4675c33b7b344df217ee3cb4753e2ecd04.tar.gz
portage-48452a4675c33b7b344df217ee3cb4753e2ecd04.tar.bz2
portage-48452a4675c33b7b344df217ee3cb4753e2ecd04.zip
When inside fakeroot, directories with portage's gid appear
to have root's gid. Therefore, use root's gid instead of portage's gid to avoid spurrious permissions adjustments when inside fakeroot. (trunk r10608) svn path=/main/branches/2.1.2/; revision=10620
Diffstat (limited to 'pym')
-rw-r--r--pym/portage.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 2a5f29257..68354a358 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -3380,6 +3380,13 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",
dirmode = 02070
filemode = 060
modemask = 02
+ dir_gid = portage_gid
+ if "FAKED_MODE" in mysettings:
+ # When inside fakeroot, directories with portage's gid appear
+ # to have root's gid. Therefore, use root's gid instead of
+ # portage's gid to avoid spurrious permissions adjustments
+ # when inside fakeroot.
+ dir_gid = 0
distdir_dirs = [""]
if "distlocks" in features:
distdir_dirs.append(".locks")
@@ -3387,13 +3394,13 @@ def fetch(myuris, mysettings, listonly=0, fetchonly=0, locks_in_subdir=".locks",
for x in distdir_dirs:
mydir = os.path.join(mysettings["DISTDIR"], x)
- if portage_util.ensure_dirs(mydir, gid=portage_gid, mode=dirmode, mask=modemask):
+ if portage_util.ensure_dirs(mydir, gid=dir_gid, mode=dirmode, mask=modemask):
writemsg("Adjusting permissions recursively: '%s'\n" % mydir,
noiselevel=-1)
def onerror(e):
raise # bail out on the first error that occurs during recursion
if not apply_recursive_permissions(mydir,
- gid=portage_gid, dirmode=dirmode, dirmask=modemask,
+ gid=dir_gid, dirmode=dirmode, dirmask=modemask,
filemode=filemode, filemask=modemask, onerror=onerror):
raise portage_exception.OperationNotPermitted(
"Failed to apply recursive permissions for the portage group.")