View | Details | Raw Unified
Collapse All | Expand All

(-) pym/portage.py (-1 / +12 lines)
 Lines 4038-4043    Link Here 
	dirmode  = 02070
	dirmode  = 02070
	filemode =   060
	filemode =   060
	modemask =    02
	modemask =    02
	restrict = mysettings.get("PORTAGE_RESTRICT","").split()
	from portage_data import secpass
	droppriv = secpass >= 2 and \
		"userpriv" in mysettings.features and \
		"userpriv" not in restrict
	for myfeature, kwargs in features_dirs.iteritems():
	for myfeature, kwargs in features_dirs.iteritems():
		if myfeature in mysettings.features:
		if myfeature in mysettings.features:
			basedir = mysettings[kwargs["basedir_var"]]
			basedir = mysettings[kwargs["basedir_var"]]
 Lines 4054-4060    Link Here 
					# Generally, we only want to apply permissions for
					# Generally, we only want to apply permissions for
					# initial creation.  Otherwise, we don't know exactly what
					# initial creation.  Otherwise, we don't know exactly what
					# permissions the user wants, so should leave them as-is.
					# permissions the user wants, so should leave them as-is.
					if modified or kwargs["always_recurse"]:
					droppriv_fix = False
					if droppriv:
						st = os.stat(mydir)
						if st.st_gid != portage_gid or \
							not stat.S_IMODE(st.st_mode) & dirmode:
							droppriv_fix = True
					if modified or kwargs["always_recurse"] or droppriv_fix:
						if modified:
						if modified:
							writemsg("Adjusting permissions recursively: '%s'\n" % mydir,
							writemsg("Adjusting permissions recursively: '%s'\n" % mydir,
								noiselevel=-1)
								noiselevel=-1)