Make dep_zapdeps() pull SLOT from the correct dbapi instance when it falls back to...
authorZac Medico <zmedico@gentoo.org>
Thu, 31 May 2007 21:30:08 +0000 (21:30 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 31 May 2007 21:30:08 +0000 (21:30 -0000)
svn path=/main/branches/2.1.2/; revision=6700

pym/portage.py

index 199dac8fc62b0003fc26a700eff7a0ed1f07f937..16f105394c8dc40848485509624a8ff433821287 100644 (file)
@@ -4215,16 +4215,21 @@ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
                versions = {}
                for atom in atoms:
                        avail_pkg = best(mydbapi.match(atom))
-                       if not avail_pkg and use_binaries:
+                       if avail_pkg:
+                               avail_slot = "%s:%s" % (dep_getkey(atom),
+                                       mydbapi.aux_get(avail_pkg, ["SLOT"])[0])
+                       elif not avail_pkg and use_binaries:
                                # With --usepkgonly, count installed packages as "available".
                                # Note that --usepkgonly currently has no package.mask support.
                                # See bug #149816.
                                avail_pkg = best(vardb.match(atom))
+                               if avail_pkg:
+                                       avail_slot = "%s:%s" % (dep_getkey(atom),
+                                               vardb.aux_get(avail_pkg, ["SLOT"])[0])
                        if not avail_pkg:
                                all_available = False
                                break
-                       avail_slot = "%s:%s" % (dep_getkey(atom),
-                               mydbapi.aux_get(avail_pkg, ["SLOT"])[0])
+
                        versions[avail_slot] = avail_pkg
 
                this_choice = (atoms, versions, all_available)