diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-11-08 00:55:40 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-11-08 00:55:40 +0000 |
commit | b2f120b00424d222530f4a9ba0bd39fb87353527 (patch) | |
tree | b1651e0848df8b236154a8837e4be753c367e7fb /pym/_emerge | |
parent | 0f644654426cc0f8c989796a3e0ee649c315f7c9 (diff) | |
download | portage-b2f120b00424d222530f4a9ba0bd39fb87353527.tar.gz portage-b2f120b00424d222530f4a9ba0bd39fb87353527.tar.bz2 portage-b2f120b00424d222530f4a9ba0bd39fb87353527.zip |
Handle CommandNotFound exceptions if the scanelf binary happens to be missing,
and disable preserve-libs code in that case.
svn path=/main/trunk/; revision=11827
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/__init__.py | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index ec8413595..b02902032 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -11084,19 +11084,29 @@ def display_preserved_libs(vardbapi): print colorize("WARN", "!!!") + " existing preserved libs:" plibdata = vardbapi.plib_registry.getPreservedLibs() linkmap = vardbapi.linkmap - consumer_map = {} - search_for_owners = set() - for cpv in plibdata: - for f in plibdata[cpv]: - if f in consumer_map: - continue - consumers = list(linkmap.findConsumers(f)) - consumers.sort() - consumer_map[f] = consumers - search_for_owners.update(consumers[:MAX_DISPLAY+1]) + owners = {} + linkmap_broken = False + + try: + linkmap.rebuild() + except portage.exception.CommandNotFound, e: + writemsg_level("!!! Command Not Found: %s\n" % (e,), + level=logging.ERROR, noiselevel=-1) + del e + linkmap_broken = True + else: + search_for_owners = set() + for cpv in plibdata: + for f in plibdata[cpv]: + if f in consumer_map: + continue + consumers = list(linkmap.findConsumers(f)) + consumers.sort() + consumer_map[f] = consumers + search_for_owners.update(consumers[:MAX_DISPLAY+1]) - owners = vardbapi._owners.getFileOwnerMap(search_for_owners) + owners = vardbapi._owners.getFileOwnerMap(search_for_owners) for cpv in plibdata: print colorize("WARN", ">>>") + " package: %s" % cpv @@ -11114,7 +11124,7 @@ def display_preserved_libs(vardbapi): for p in alt_paths: print colorize("WARN", " * ") + " - %s" % (p,) f = alt_paths[0] - consumers = consumer_map[f] + consumers = consumer_map.get(f, []) for c in consumers[:MAX_DISPLAY]: print colorize("WARN", " * ") + " used by %s (%s)" % \ (c, ", ".join(x.mycpv for x in owners.get(c, []))) |