Bug #220341 - USE=multislot can make an installed package appear as if
authorZac Medico <zmedico@gentoo.org>
Thu, 8 May 2008 17:40:20 +0000 (17:40 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 8 May 2008 17:40:20 +0000 (17:40 -0000)
it doesn't satisfy a slot dependency. Rebuilding the ebuild won't do
any good as long as USE=multislot is enabled since the newly built
package still won't have the expected slot. Therefore, assume that
such SLOT dependencies are already satisfied rather than forcing a
rebuild. (trunk r10237)

svn path=/main/branches/2.1.2/; revision=10238

bin/emerge

index c926f8c36c012f7af4a113979d0577e0efcdc7d7..c3ed70ed5a9954f746b75aa6d805728803f1aea0 100755 (executable)
@@ -3085,6 +3085,18 @@ class depgraph(object):
                                        cpv_list = db.xmatch("match-all", atom)
                                else:
                                        cpv_list = db.match(atom)
+
+                               # USE=multislot can make an installed package appear as if
+                               # it doesn't satisfy a slot dependency. Rebuilding the ebuild
+                               # won't do any good as long as USE=multislot is enabled since
+                               # the newly built package still won't have the expected slot.
+                               # Therefore, assume that such SLOT dependencies are already
+                               # satisfied rather than forcing a rebuild.
+                               if installed and not cpv_list and matched_packages \
+                                       and vardb.cpv_exists(matched_packages[-1].cpv) and \
+                                       portage_dep.dep_getslot(atom):
+                                       cpv_list = [matched_packages[-1].cpv]
+
                                if not cpv_list:
                                        continue
                                pkg_status = "merge"