summaryrefslogtreecommitdiffstats
path: root/pym/portage
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2008-05-13 20:05:27 +0000
committerMarius Mauch <genone@gentoo.org>2008-05-13 20:05:27 +0000
commit2541f19612d59e5804186d531ac659dea918ccee (patch)
treeeb5d87cd33d7021cde5d12a799580fbf2c4abf3a /pym/portage
parent284000fb7a11b6b58d4908ba180dc32152598b05 (diff)
downloadportage-2541f19612d59e5804186d531ac659dea918ccee.tar.gz
portage-2541f19612d59e5804186d531ac659dea918ccee.tar.bz2
portage-2541f19612d59e5804186d531ac659dea918ccee.zip
ignore consumers from the current package instance when checking if a preserved library can be removed
svn path=/main/trunk/; revision=10324
Diffstat (limited to 'pym/portage')
-rw-r--r--pym/portage/dbapi/vartree.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index a150f4a00..edd588e6a 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -1261,7 +1261,7 @@ class dblink(object):
# regenerate reverse NEEDED map
self.vartree.dbapi.linkmap.rebuild()
-
+
# remove preserved libraries that don't have any consumers left
# FIXME: this code is quite ugly and can likely be optimized in several ways
plib_dict = plib_registry.getPreservedLibs()
@@ -1288,8 +1288,17 @@ class dblink(object):
if not os.path.exists(f):
continue
unlink_list = []
- if not self.vartree.dbapi.linkmap.findConsumers(f):
+ consumers = self.vartree.dbapi.linkmap.findConsumers(f)
+ if not consumers:
unlink_list.append(f)
+ else:
+ keep=False
+ for c in consumers:
+ if c not in self.getcontents():
+ keep=True
+ break
+ if not keep:
+ unlink_list.append(f)
for obj in unlink_list:
try:
if os.path.islink(obj):