summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-02-13 16:45:45 -0800
committerZac Medico <zmedico@gentoo.org>2013-02-13 16:45:45 -0800
commit875e3bd72f8bcdc5e4a19ee4ba98f4267195ef0e (patch)
tree6333fc6b640d80514a52d79e32b72252ef9c908d
parentemerge: don't traceback or invalid *.ebuild args (diff)
downloadportage-875e3bd72f8bcdc5e4a19ee4ba98f4267195ef0e.tar.gz
portage-875e3bd72f8bcdc5e4a19ee4ba98f4267195ef0e.tar.bz2
portage-875e3bd72f8bcdc5e4a19ee4ba98f4267195ef0e.zip
--complete-if-new-ver: check for slot change
-rw-r--r--pym/_emerge/depgraph.py17
1 files changed, 12 insertions, 5 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index fd6db38f3..085e6cbe5 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -4963,10 +4963,16 @@ class depgraph(object):
inst_pkg = vardb.match_pkgs(node.slot_atom)
if inst_pkg and inst_pkg[0].cp == node.cp:
inst_pkg = inst_pkg[0]
- if complete_if_new_ver and \
- (inst_pkg < node or node < inst_pkg):
- version_change = True
- break
+ if complete_if_new_ver:
+ if inst_pkg < node or node < inst_pkg:
+ version_change = True
+ break
+ elif not (inst_pkg.slot == node.slot and
+ inst_pkg.sub_slot == node.sub_slot):
+ # slot/sub-slot change without revbump gets
+ # similar treatment to a version change
+ version_change = True
+ break
# Intersect enabled USE with IUSE, in order to
# ignore forced USE from implicit IUSE flags, since
@@ -4982,7 +4988,8 @@ class depgraph(object):
if complete_if_new_slot:
cp_list = vardb.match_pkgs(Atom(node.cp))
if (cp_list and cp_list[0].cp == node.cp and
- not any(node.slot == pkg.slot for pkg in cp_list)):
+ not any(node.slot == pkg.slot and
+ node.sub_slot == pkg.sub_slot for pkg in cp_list)):
version_change = True
break