summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-03-16 03:30:26 +0000
committerZac Medico <zmedico@gentoo.org>2006-03-16 03:30:26 +0000
commit5c0c5217f1fd033a9749a10a3dfa71b3943e6d4d (patch)
tree87e946ea8010ad0d14ebcbf3446b7f48025cfa06 /pym/portage.py
parent845340c267d28f613ef6675b43b4688fc419cf50 (diff)
downloadportage-5c0c5217f1fd033a9749a10a3dfa71b3943e6d4d.tar.gz
portage-5c0c5217f1fd033a9749a10a3dfa71b3943e6d4d.tar.bz2
portage-5c0c5217f1fd033a9749a10a3dfa71b3943e6d4d.zip
Add a new PORTAGE_WORKDIR_MODE config variable so that the mode of WORKDIR is no longer hard coded. See bug #8688.
svn path=/main/trunk/; revision=2901
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/pym/portage.py b/pym/portage.py
index a5350bcde..47308629f 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -2624,6 +2624,23 @@ def prepare_build_dirs(myroot, mysettings, cleanup):
mysettings["WORKDIR"]=mysettings["PORTAGE_BUILDDIR"]+"/work"
mysettings["D"]=mysettings["PORTAGE_BUILDDIR"]+"/image/"
+ workdir_mode = 0700
+ try:
+ workdir_mode = int(eval(mysettings["PORTAGE_WORKDIR_MODE"]))
+ if workdir_mode & 07777 != workdir_mode:
+ raise ValueError("Invalid file mode: %s" % mysettings["PORTAGE_WORKDIR_MODE"])
+ except KeyError, e:
+ writemsg("!!! PORTAGE_WORKDIR_MODE is unset, using %s." % oct(workdir_mode))
+ except ValueError, e:
+ writemsg("%s\n" % e)
+ writemsg("!!! Unable to parse PORTAGE_WORKDIR_MODE='%s', using %s.\n" % \
+ (mysettings["PORTAGE_WORKDIR_MODE"], oct(workdir_mode)))
+ try:
+ apply_secpass_permissions(mysettings["WORKDIR"],
+ uid=portage_uid, gid=portage_gid, mode=workdir_mode)
+ except portage_exception.FileNotFound:
+ pass # ebuild.sh will create it
+
if mysettings.has_key("PORT_LOGDIR"):
if not os.access(mysettings["PORT_LOGDIR"],os.F_OK):
try: