Add some write access checks in post_merge() in order to avoid triggering
authorZac Medico <zmedico@gentoo.org>
Mon, 16 Jun 2008 08:10:49 +0000 (08:10 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 16 Jun 2008 08:10:49 +0000 (08:10 -0000)
permission related exceptions.

svn path=/main/trunk/; revision=10658

pym/_emerge/__init__.py

index fef25c3f044397179e1c12c1698f583c781ce4f6..208635a0285eae12cd80a05cdfeadd4ddb75b9a7 100644 (file)
@@ -6766,7 +6766,8 @@ def chk_updated_info_files(root, infodirs, prev_mtimes, retval):
                                if inforoot=='':
                                        continue
 
-                               if not os.path.isdir(inforoot):
+                               if not os.path.isdir(inforoot) or \
+                                       not os.access(inforoot, os.W_OK):
                                        continue
                                errmsg = ""
                                file_list = os.listdir(inforoot)
@@ -6929,13 +6930,16 @@ def post_emerge(trees, mtimedb, retval):
 
        vdb_path = os.path.join(target_root, portage.VDB_PATH)
        portage.util.ensure_dirs(vdb_path)
-       vdb_lock = portage.locks.lockdir(vdb_path)
+       vdb_lock = None
+       if os.access(vdb_path, os.W_OK):
+               vdb_lock = portage.locks.lockdir(vdb_path)
        try:
                if "noinfo" not in settings.features:
                        chk_updated_info_files(target_root, infodirs, info_mtimes, retval)
                mtimedb.commit()
        finally:
-               portage.locks.unlockdir(vdb_lock)
+               if vdb_lock:
+                       portage.locks.unlockdir(vdb_lock)
 
        chk_updated_cfg_files(target_root, config_protect)