When dblink.treewalk() queries for other packages in the same slot, filter
authorZac Medico <zmedico@gentoo.org>
Sun, 30 Mar 2008 21:54:51 +0000 (21:54 -0000)
committerZac Medico <zmedico@gentoo.org>
Sun, 30 Mar 2008 21:54:51 +0000 (21:54 -0000)
out old-style virtual matches since they are not desired.

svn path=/main/trunk/; revision=9637

pym/portage/dbapi/vartree.py

index 7970c0a4b7d0cf2931f526ffeac0902f1450eef4..a47bbb6d9ae6b4e2870614fe8e3905036175d110 100644 (file)
@@ -21,7 +21,7 @@ from portage.versions import pkgsplit, catpkgsplit, catsplit, best, pkgcmp
 
 from portage import listdir, dep_expand, flatten, key_expand, \
        doebuild_environment, doebuild, env_update, prepare_build_dirs, \
-       abssymlink, movefile, _movefile, bsd_chflags
+       abssymlink, movefile, _movefile, bsd_chflags, cpv_getkey
 
 from portage.elog import elog_process
 from portage.elog.messages import ewarn
@@ -1834,8 +1834,11 @@ class dblink(object):
                for v in self.vartree.dbapi.cp_list(self.mysplit[0]):
                        otherversions.append(v.split("/")[1])
 
-               slot_matches = self.vartree.dbapi.match(
-                       "%s:%s" % (self.mysplit[0], slot))
+               # filter any old-style virtual matches
+               slot_matches = [cpv for cpv in self.vartree.dbapi.match(
+                       "%s:%s" % (cpv_getkey(self.mycpv), slot)) \
+                       if cpv_getkey(cpv) == cpv_getkey(self.mycpv)]
+
                if self.mycpv not in slot_matches and \
                        self.vartree.dbapi.cpv_exists(self.mycpv):
                        # handle multislot or unapplied slotmove