summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-05-08 17:40:20 +0000
committerZac Medico <zmedico@gentoo.org>2008-05-08 17:40:20 +0000
commit95cb48a6aba8e96dde7487325670e2fe8032ea7b (patch)
tree0a061f6433fc3933e9b18016e83433bfebd22e9b
parentae08980a1ac516729c2a7243ebe8edec2d3865d5 (diff)
downloadportage-95cb48a6aba8e96dde7487325670e2fe8032ea7b.tar.gz
portage-95cb48a6aba8e96dde7487325670e2fe8032ea7b.tar.bz2
portage-95cb48a6aba8e96dde7487325670e2fe8032ea7b.zip
Bug #220341 - 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. (trunk r10237) svn path=/main/branches/2.1.2/; revision=10238
-rwxr-xr-xbin/emerge12
1 files changed, 12 insertions, 0 deletions
diff --git a/bin/emerge b/bin/emerge
index c926f8c36..c3ed70ed5 100755
--- a/bin/emerge
+++ b/bin/emerge
@@ -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"