summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-07-22 00:33:15 +0000
committerZac Medico <zmedico@gentoo.org>2006-07-22 00:33:15 +0000
commit61dbcb8ebf741610ca8f7d77f6deefe576372b18 (patch)
tree962f5ad4acecdc836b908d8b798768d86a5bef28
parent8e8eaf08fb928f90de502c9ee4eb65bbd7ae93d8 (diff)
downloadportage-61dbcb8ebf741610ca8f7d77f6deefe576372b18.tar.gz
portage-61dbcb8ebf741610ca8f7d77f6deefe576372b18.tar.bz2
portage-61dbcb8ebf741610ca8f7d77f6deefe576372b18.zip
Make depclean account for old-style virtuals so that it doesn't remove the providers.
svn path=/main/trunk/; revision=3986
-rwxr-xr-xbin/emerge9
1 files changed, 8 insertions, 1 deletions
diff --git a/bin/emerge b/bin/emerge
index 90ec7e435..740660881 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -3257,7 +3257,14 @@ def action_depclean(settings, trees, ldpath_mtimes,
sys_world_unversioned = set()
from itertools import chain
for x in chain(syslist, worldlist):
- sys_world_unversioned.add(portage.dep_getkey(x))
+ mycp = portage.dep_getkey(x)
+ if mycp in settings.getvirtuals():
+ providers = []
+ for provider in settings.getvirtuals()[mycp]:
+ if vartree.dbapi.match(provider):
+ providers.append(provider)
+ sys_world_unversioned.update(providers)
+ sys_world_unversioned.add(mycp)
cleanlist=[]
for x in myvarlist: