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:26:49 +0000 (21:26 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 31 May 2007 21:26:49 +0000 (21:26 -0000)
svn path=/main/trunk/; revision=6698

pym/portage/__init__.py

index 71bd9188c02acf91299ad3b5fef495a04f3bd8e1..5417a5c8c7c4cb57e53c6fdb0743d0ea0a4d3e33 100644 (file)
@@ -4295,16 +4295,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)