summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi/vartree.py
diff options
context:
space:
mode:
Diffstat (limited to 'pym/portage/dbapi/vartree.py')
-rw-r--r--pym/portage/dbapi/vartree.py24
1 files changed, 23 insertions, 1 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 3400cba7f..4b77ac133 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -205,7 +205,17 @@ class LinkageMap(object):
for arch in self._libs[soname]:
rValue.extend(self._libs[soname][arch]["providers"])
return rValue
-
+
+ def getSoname(self, obj):
+ if not self._libs:
+ self.rebuild()
+ if obj not in self._obj_properties:
+ obj = realpath(obj)
+ if obj not in self._obj_properties:
+ raise KeyError("%s not in object list" % obj)
+ arch, needed, path, soname = self._obj_properties[obj]
+ return soname
+
def findProviders(self, obj):
if not self._libs:
self.rebuild()
@@ -1053,6 +1063,18 @@ class vardbapi(dbapi):
owned_files.add(f)
return owners
+ def getFileOwnerMap(self, path_iter):
+ owners = self.get_owners(path_iter)
+ file_owners = {}
+ for pkg_dblink, files in owners.iteritems():
+ for f in files:
+ owner_set = file_owners.get(f)
+ if owner_set is None:
+ owner_set = set()
+ file_owners[f] = owner_set
+ owner_set.add(pkg_dblink)
+ return file_owners
+
def iter_owners(self, path_iter):
"""
Iterate over tuples of (dblink, path). In order to avoid