diff options
Diffstat (limited to 'pym/portage/dbapi/vartree.py')
-rw-r--r-- | pym/portage/dbapi/vartree.py | 24 |
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 |