summaryrefslogtreecommitdiffstats
path: root/pym/portage/emaint
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2012-11-13 23:08:05 -0800
committerZac Medico <zmedico@gentoo.org>2012-11-13 23:08:05 -0800
commit0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9 (patch)
tree3d33af8a44400e2a9225844cf25a985249bfb038 /pym/portage/emaint
parent118db4184de67450ec7118f1607b3f8c8ed1ec9e (diff)
downloadportage-0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.tar.gz
portage-0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.tar.bz2
portage-0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.zip
update_dbentry: add parent arg for bug #367215
Diffstat (limited to 'pym/portage/emaint')
-rw-r--r--pym/portage/emaint/modules/move/move.py16
1 files changed, 10 insertions, 6 deletions
diff --git a/pym/portage/emaint/modules/move/move.py b/pym/portage/emaint/modules/move/move.py
index 9f9ba90cd..607fbc42b 100644
--- a/pym/portage/emaint/modules/move/move.py
+++ b/pym/portage/emaint/modules/move/move.py
@@ -5,13 +5,14 @@ import portage
from portage import os
from portage.exception import InvalidData
from _emerge.Package import Package
+from portage.versions import _pkg_str
class MoveHandler(object):
def __init__(self, tree, porttree):
self._tree = tree
self._portdb = porttree.dbapi
- self._update_keys = ["PROVIDE"] + list(Package._dep_keys)
+ self._update_keys = Package._dep_keys + ("PROVIDE",)
self._master_repo = \
self._portdb.getRepositoryName(self._portdb.porttree_root)
@@ -92,15 +93,18 @@ class MoveHandler(object):
cpv_all = self._tree.dbapi.cpv_all()
cpv_all.sort()
maxval = len(cpv_all)
- meta_keys = self._update_keys + ['repository', 'EAPI']
+ meta_keys = self._update_keys + self._portdb._pkg_str_aux_keys
if onProgress:
onProgress(maxval, 0)
for i, cpv in enumerate(cpv_all):
metadata = dict(zip(meta_keys, aux_get(cpv, meta_keys)))
- eapi = metadata.pop('EAPI')
- repository = metadata.pop('repository')
try:
- updates = allupdates[repository]
+ pkg = _pkg_str(cpv, metadata=metadata)
+ except InvalidData:
+ continue
+ metadata = dict((k, metadata[k]) for k in self._update_keys)
+ try:
+ updates = allupdates[pkg.repo]
except KeyError:
try:
updates = allupdates['DEFAULT']
@@ -109,7 +113,7 @@ class MoveHandler(object):
if not updates:
continue
metadata_updates = \
- portage.update_dbentries(updates, metadata, eapi=eapi)
+ portage.update_dbentries(updates, metadata, parent=pkg)
if metadata_updates:
errors.append("'%s' has outdated metadata" % cpv)
if onProgress: