owners_cache: add parent dirs deeper than EPREFIX
authorZac Medico <zmedico@gentoo.org>
Tue, 1 Mar 2011 20:42:56 +0000 (12:42 -0800)
committerZac Medico <zmedico@gentoo.org>
Tue, 1 Mar 2011 20:54:29 +0000 (12:54 -0800)
pym/portage/dbapi/vartree.py

index a7a7d406305c4586b49d4fdc2b0cd4e01f763c09..dc1925d14335dd9ab2934242b538f43dd34f62dc 100644 (file)
@@ -814,6 +814,8 @@ class vardbapi(dbapi):
 
                def __init__(self, vardb):
                        self._vardb = vardb
+                       self._eprefix_split_len = len(x for x in \
+                               vardb.settings["EPREFIX"].split(os.sep) if x)
 
                def add(self, cpv):
                        root_len = len(self._vardb._eroot)
@@ -833,7 +835,7 @@ class vardbapi(dbapi):
                                self._add_path(x, pkg_hash)
                                x_split = x.split(os.sep)
                                x_split.pop()
-                               while x_split:
+                               while len(x_split) > self._eprefix_split_len:
                                        parent = os.sep.join(x_split)
                                        if parent in added_paths:
                                                break