summaryrefslogtreecommitdiffstats
path: root/pym
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-11-09 07:42:25 +0000
committerZac Medico <zmedico@gentoo.org>2008-11-09 07:42:25 +0000
commit4a78dd5f81449aebf764834d75693d2f157eb879 (patch)
tree369eeb009857051104065715fda37e6d573143a6 /pym
parenta97986713e6a0138551970592fad3a63a6a7d7ae (diff)
downloadportage-4a78dd5f81449aebf764834d75693d2f157eb879.tar.gz
portage-4a78dd5f81449aebf764834d75693d2f157eb879.tar.bz2
portage-4a78dd5f81449aebf764834d75693d2f157eb879.zip
Bug #243030 - In PreservedLibraryConsumerSet.load(), avoid rebuilding packages
just because they contain preserved libs that happen to be consumers of other preserved libs. svn path=/main/trunk/; revision=11832
Diffstat (limited to 'pym')
-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: