summaryrefslogtreecommitdiffstats
path: root/pym/portage
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2008-05-04 14:16:14 +0000
committerMarius Mauch <genone@gentoo.org>2008-05-04 14:16:14 +0000
commit5c9cb2d8232ef52bda0dd85ddfdab681c2138f5c (patch)
treed0fd094c6ee25fe9cb8d0027d917a827a7e28864 /pym/portage
parent89f1d493c1eac03182a7f4f3e25fa11660cdc271 (diff)
downloadportage-5c9cb2d8232ef52bda0dd85ddfdab681c2138f5c.tar.gz
portage-5c9cb2d8232ef52bda0dd85ddfdab681c2138f5c.tar.bz2
portage-5c9cb2d8232ef52bda0dd85ddfdab681c2138f5c.zip
actually remove libraries that aren't strictly needed from the preservation candidate list
svn path=/main/trunk/; revision=10182
Diffstat (limited to 'pym/portage')
-rw-r--r--pym/portage/dbapi/vartree.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 554f997bf..a72d0edca 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -1687,6 +1687,7 @@ class dblink(object):
for lib in list(candidates):
if not has_external_consumers(lib, old_contents, candidates):
candidates.remove(lib)
+ continue
# only preserve the lib if there is no other copy to use for each consumer
keep = False
for c in linkmap.findConsumers(lib):
@@ -1695,12 +1696,15 @@ class dblink(object):
for soname in providers:
if lib in providers[soname]:
for p in providers[soname]:
- if p not in candidates:
+ if p not in candidates or os.path.exists(os.path.join(srcroot, p.lstrip(os.sep))):
localkeep = False
break
break
if localkeep:
keep = True
+ if not keep:
+ candidates.remove(lib)
+ continue
del mylibs, mycontents, old_contents, liblist