summaryrefslogtreecommitdiffstats
path: root/pym/portage/emaint
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-10-17 21:18:56 -0700
committerZac Medico <zmedico@gentoo.org>2012-10-17 21:18:56 -0700
commit3c8d69c6942fd8e39417d5e16c4c0cdf2465596e (patch)
tree56066dd6d2ce43c85bae160b6c7a7ef72e60e72c /pym/portage/emaint
parent8ee446c9b6eda0940a93b4ce2f2ec92a652f591d (diff)
downloadportage-3c8d69c6942fd8e39417d5e16c4c0cdf2465596e.tar.gz
portage-3c8d69c6942fd8e39417d5e16c4c0cdf2465596e.tar.bz2
portage-3c8d69c6942fd8e39417d5e16c4c0cdf2465596e.zip
emaint: sync MoveHandler check code with dbapi's
Diffstat (limited to 'pym/portage/emaint')
-rw-r--r--pym/portage/emaint/modules/move/move.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/pym/portage/emaint/modules/move/move.py b/pym/portage/emaint/modules/move/move.py
index e05076bc3..9f9ba90cd 100644
--- a/pym/portage/emaint/modules/move/move.py
+++ b/pym/portage/emaint/modules/move/move.py
@@ -3,6 +3,7 @@
import portage
from portage import os
+from portage.exception import InvalidData
from _emerge.Package import Package
class MoveHandler(object):
@@ -66,14 +67,21 @@ class MoveHandler(object):
if update_cmd[0] == "move":
origcp, newcp = update_cmd[1:]
for cpv in match(origcp):
- cpv = pkg_str(cpv, None)
+ try:
+ cpv = pkg_str(cpv, origcp.repo)
+ except (KeyError, InvalidData):
+ continue
if repo_match(cpv.repo):
errors.append("'%s' moved to '%s'" % (cpv, newcp))
elif update_cmd[0] == "slotmove":
pkg, origslot, newslot = update_cmd[1:]
- for cpv in match(pkg):
- cpv = pkg_str(cpv, None)
- if cpv.slot == origslot and repo_match(cpv.repo):
+ atom = pkg.with_slot(origslot)
+ for cpv in match(atom):
+ try:
+ cpv = pkg_str(cpv, atom.repo)
+ except (KeyError, InvalidData):
+ continue
+ if repo_match(cpv.repo):
errors.append("'%s' slot moved from '%s' to '%s'" % \
(cpv, origslot, newslot))
if onProgress: