Inside display_preserved_libs(), filter out consumers that belong to the
authorZac Medico <zmedico@gentoo.org>
Wed, 17 Dec 2008 05:48:20 +0000 (05:48 -0000)
committerZac Medico <zmedico@gentoo.org>
Wed, 17 Dec 2008 05:48:20 +0000 (05:48 -0000)
same package as the provider only if those consumers are also preserved.

svn path=/main/trunk/; revision=12257

pym/_emerge/__init__.py

index 07e8941a829bc9c9affa04198c4c246b7e2230ea..667d90fbc2db6b6ac5cd9b186b20590548cdcebb 100644 (file)
@@ -11500,15 +11500,16 @@ def display_preserved_libs(vardbapi):
                else:
                        search_for_owners = set()
                        for cpv in plibdata:
-                               pkg_dblink = vardbapi._dblink(cpv)
+                               internal_plib_keys = set(linkmap._obj_key(f) \
+                                       for f in plibdata[cpv])
                                for f in plibdata[cpv]:
                                        if f in consumer_map:
                                                continue
                                        consumers = []
                                        for c in linkmap.findConsumers(f):
-                                               # Filter out any consumers that belong
-                                               # to the same package as the provider.
-                                               if not pkg_dblink.isowner(c, pkg_dblink.myroot):
+                                               # Filter out any consumers that are also preserved libs
+                                               # belonging to the same package as the provider.
+                                               if linkmap._obj_key(c) not in internal_plib_keys:
                                                        consumers.append(c)
                                        consumers.sort()
                                        consumer_map[f] = consumers