From: Zac Medico Date: Sun, 8 Jun 2008 20:23:14 +0000 (-0000) Subject: When inside fakeroot, directories with portage's gid appear X-Git-Tag: v2.2_pre8~6 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=105076fd745b6f93907d403aa768432395b71230;p=portage.git 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 --- 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.")