summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Luther <SebastianLuther@gmx.de>2010-09-21 12:42:16 +0200
committerZac Medico <zmedico@gentoo.org>2010-09-26 23:50:14 -0700
commit1e6cc216a6c31f0e32e0e12146afbb577e17bfef (patch)
tree8055f812aede1575ed49c01472b3116d8d11e897
parentc83e9fc6e3d45124514b53ed41d0df32dc937c4d (diff)
downloadportage-1e6cc216a6c31f0e32e0e12146afbb577e17bfef.tar.gz
portage-1e6cc216a6c31f0e32e0e12146afbb577e17bfef.tar.bz2
portage-1e6cc216a6c31f0e32e0e12146afbb577e17bfef.zip
Fix breakage with old style virtuals from the last commit
-rw-r--r--pym/_emerge/depgraph.py20
1 files changed, 10 insertions, 10 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 7b9a8fb6c..0a2421648 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -2478,16 +2478,16 @@ class depgraph(object):
except portage.exception.PackageNotFound:
pass
else:
- if pkg.cp != atom.cp:
- # A cpv can be returned from dbapi.match() as an
- # old-style virtual match even in cases when the
- # package does not actually PROVIDE the virtual.
- # Filter out any such false matches here.
- if not InternalPackageSet(initial_atoms=(atom,)
- ).findAtomForPackage(pkg, modified_use=self._pkg_use_enabled(pkg)):
- continue
- if not portage.match_from_list(atom, [pkg]):
- #There is a matching cpv in the repo, but it violates parts of the atom.
+ # A cpv can be returned from dbapi.match() as an
+ # old-style virtual match even in cases when the
+ # package does not actually PROVIDE the virtual.
+ # Filter out any such false matches here.
+
+ # Make sure that cpv from the current repo satisfies the atom.
+ # This might not be the case if there are several repos with
+ # the same cpv, but different metadata keys, like SLOT.
+ if not InternalPackageSet(initial_atoms=(atom,)
+ ).findAtomForPackage(pkg, modified_use=self._pkg_use_enabled(pkg)):
continue
yield pkg