summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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