summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/portage/sets/libs.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/pym/portage/sets/libs.py b/pym/portage/sets/libs.py
index b41653575..3722c8462 100644
--- a/pym/portage/sets/libs.py
+++ b/pym/portage/sets/libs.py
@@ -27,7 +27,8 @@ class PreservedLibraryConsumerSet(LibraryConsumerSet):
reg = self.dbapi.plib_registry
consumers = set()
if reg:
- for libs in reg.getPreservedLibs().values():
+ plib_dict = reg.getPreservedLibs()
+ for libs in plib_dict.itervalues():
for lib in libs:
if self.debug:
print lib
@@ -35,6 +36,10 @@ class PreservedLibraryConsumerSet(LibraryConsumerSet):
print " ", x
print "-"*40
consumers.update(self.dbapi.linkmap.findConsumers(lib))
+ # Don't rebuild packages just because they contain preserved
+ # libs that happen to be consumers of other preserved libs.
+ for libs in plib_dict.itervalues():
+ consumers.difference_update(libs)
else:
return
if not consumers: