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

svn path=/main/branches/2.1.2/; revision=10665

bin/emerge

index 2fb07ef7f28bc1d78914e9b11aa900cf87e4f2e3..78f792428606cac336a54a7e76adbe729d46806f 100755 (executable)
@@ -6802,7 +6802,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)
@@ -6913,13 +6914,16 @@ def post_emerge(settings, 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)