diff options
author | Marius Mauch <genone@gentoo.org> | 2008-05-04 14:16:14 +0000 |
---|---|---|
committer | Marius Mauch <genone@gentoo.org> | 2008-05-04 14:16:14 +0000 |
commit | 5c9cb2d8232ef52bda0dd85ddfdab681c2138f5c (patch) | |
tree | d0fd094c6ee25fe9cb8d0027d917a827a7e28864 | |
parent | 89f1d493c1eac03182a7f4f3e25fa11660cdc271 (diff) | |
download | portage-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
-rw-r--r-- | pym/portage/dbapi/vartree.py | 6 |
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 |