From 105076fd745b6f93907d403aa768432395b71230 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 8 Jun 2008 20:23:14 +0000 Subject: 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. svn path=/main/trunk/; revision=10608 --- pym/portage/__init__.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'pym') diff --git a/pym/portage/__init__.py b/pym/portage/__init__.py index 7f8d96f22..d4ad4b3ff 100644 --- a/pym/portage/__init__.py +++ b/pym/portage/__init__.py @@ -3370,6 +3370,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") @@ -3377,13 +3384,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.") -- cgit v1.2.3-1-g7c22