From 5c9cb2d8232ef52bda0dd85ddfdab681c2138f5c Mon Sep 17 00:00:00 2001 From: Marius Mauch Date: Sun, 4 May 2008 14:16:14 +0000 Subject: actually remove libraries that aren't strictly needed from the preservation candidate list svn path=/main/trunk/; revision=10182 --- pym/portage/dbapi/vartree.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-1-g7c22