summaryrefslogtreecommitdiffstats
path: root/pym/portage.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-04-20 20:53:33 +0000
committerZac Medico <zmedico@gentoo.org>2008-04-20 20:53:33 +0000
commitfd21c4439d5922802ba8d4e8362fabd0c73ecba3 (patch)
treed01d8711d7ba801ed77b597ab1b377944b1300b8 /pym/portage.py
parent5c2b1f74c9c6ed932e5a430a1d1d9562b488d89c (diff)
downloadportage-fd21c4439d5922802ba8d4e8362fabd0c73ecba3.tar.gz
portage-fd21c4439d5922802ba8d4e8362fabd0c73ecba3.tar.bz2
portage-fd21c4439d5922802ba8d4e8362fabd0c73ecba3.zip
Bug #218559 - Make portdbapi automatically add sandbox write access to
self.depcachedir when appropriate. This makes the portageq blanket sandbox exemption unnecessary. (trunk r9928) svn path=/main/branches/2.1.2/; revision=9929
Diffstat (limited to 'pym/portage.py')
-rw-r--r--pym/portage.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/pym/portage.py b/pym/portage.py
index 44f7e212a..db1ba59fb 100644
--- a/pym/portage.py
+++ b/pym/portage.py
@@ -7118,7 +7118,16 @@ class portdbapi(dbapi):
#self.root=settings["PORTDIR"]
self.porttree_root = os.path.realpath(porttree_root)
- self.depcachedir = self.mysettings.depcachedir[:]
+ self.depcachedir = os.path.realpath(self.mysettings.depcachedir)
+
+ if os.environ.get("SANDBOX_ON") == "1":
+ # Make api consumers exempt from sandbox violations
+ # when doing metadata cache updates.
+ sandbox_write = os.environ.get("SANDBOX_WRITE", "").split(":")
+ if self.depcachedir not in sandbox_write:
+ sandbox_write.append(self.depcachedir)
+ os.environ["SANDBOX_WRITE"] = \
+ ":".join(filter(None, sandbox_write))
self.tmpfs = self.mysettings["PORTAGE_TMPFS"]
if self.tmpfs and not os.path.exists(self.tmpfs):