summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/main.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2011-07-22 15:59:13 -0700
committerZac Medico <zmedico@gentoo.org>2011-07-22 15:59:13 -0700
commitf393413c3f823ef4a60acfcc41c3920933510fc1 (patch)
treeb47f0aa36d13b7e6a9a284f25c4ef6f38c594c40 /pym/_emerge/main.py
parent53bce8a6d96f04acc97871712c107387d14f45e6 (diff)
downloadportage-f393413c3f823ef4a60acfcc41c3920933510fc1.tar.gz
portage-f393413c3f823ef4a60acfcc41c3920933510fc1.tar.bz2
portage-f393413c3f823ef4a60acfcc41c3920933510fc1.zip
LinkageMapELF: add getOwners() method and use it
This preserves the owner information inside LinkageMap.rebuild() and uses it to implement a getOwners() method, which makes it possible to efficiently lookup owners of library providers and consumers.
Diffstat (limited to 'pym/_emerge/main.py')
-rw-r--r--pym/_emerge/main.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 11a33149d..28431c58f 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -260,7 +260,15 @@ def display_preserved_libs(vardbapi, myopts):
consumer_map[f] = consumers
search_for_owners.update(consumers[:MAX_DISPLAY+1])
- owners = vardbapi._owners.getFileOwnerMap(search_for_owners)
+ owners = {}
+ for f in search_for_owners:
+ owner_set = set()
+ for owner in linkmap.getOwners(f):
+ owner_dblink = vardbapi._dblink(owner)
+ if owner_dblink.exists():
+ owner_set.add(owner_dblink)
+ if owner_set:
+ owners[f] = owner_set
for cpv in plibdata:
print(colorize("WARN", ">>>") + " package: %s" % cpv)