summaryrefslogtreecommitdiffstats
path: root/bin/emerge
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-12-11 01:24:34 +0000
committerZac Medico <zmedico@gentoo.org>2006-12-11 01:24:34 +0000
commitdff59172ed7a5f86302e873d1611961966aa35c3 (patch)
tree413f1668d8c335480d7db524366a17b1a9ead008 /bin/emerge
parent112404f0f14c65e807d078d35675a54e75464c63 (diff)
downloadportage-dff59172ed7a5f86302e873d1611961966aa35c3.tar.gz
portage-dff59172ed7a5f86302e873d1611961966aa35c3.tar.bz2
portage-dff59172ed7a5f86302e873d1611961966aa35c3.zip
Ensure that the root of the vdb exists before attempting to lock it. Thanks to Flameeyes for reporting.
svn path=/main/trunk/; revision=5267
Diffstat (limited to 'bin/emerge')
-rwxr-xr-xbin/emerge10
1 files changed, 10 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index 93ec0706b..326c6c57c 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -715,6 +715,11 @@ class FakeVartree(portage.vartree):
self.settings = real_vartree.settings
self.dbapi = portage.fakedbapi(settings=real_vartree.settings)
vdb_path = os.path.join(self.root, portage.VDB_PATH)
+ try:
+ # At least the parent needs to exist for the lock file.
+ portage_util.ensure_dirs(vdb_path)
+ except portage_exception.PortageException:
+ pass
vdb_lock = None
try:
if os.access(vdb_path, os.W_OK):
@@ -2759,6 +2764,11 @@ def unmerge(settings, myopts, vartree, unmerge_action, unmerge_files,
xterm_titles = "notitles" not in settings.features
vdb_path = os.path.join(settings["ROOT"], portage.VDB_PATH)
+ try:
+ # At least the parent needs to exist for the lock file.
+ portage_util.ensure_dirs(vdb_path)
+ except portage_exception.PortageException:
+ pass
vdb_lock = None
try:
if os.access(vdb_path, os.W_OK):