summaryrefslogtreecommitdiffstats
path: root/pym/portage/dbapi
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/dbapi
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/dbapi')
-rw-r--r--pym/portage/dbapi/__init__.py14
-rw-r--r--pym/portage/dbapi/bintree.py2
-rw-r--r--pym/portage/dbapi/vartree.py2
3 files changed, 11 insertions, 7 deletions
diff --git a/pym/portage/dbapi/__init__.py b/pym/portage/dbapi/__init__.py
index dbba22cd7..c6bdbc77a 100644
--- a/pym/portage/dbapi/__init__.py
+++ b/pym/portage/dbapi/__init__.py
@@ -291,7 +291,8 @@ class dbapi(object):
maxval = len(cpv_all)
aux_get = self.aux_get
aux_update = self.aux_update
- meta_keys = Package._dep_keys + ("EAPI", "PROVIDE", "repository")
+ update_keys = Package._dep_keys + ("PROVIDE",)
+ meta_keys = update_keys + self._pkg_str_aux_keys
repo_dict = None
if isinstance(updates, dict):
repo_dict = updates
@@ -301,13 +302,16 @@ class dbapi(object):
onProgress(maxval, 0)
for i, cpv in enumerate(cpv_all):
metadata = dict(zip(meta_keys, aux_get(cpv, meta_keys)))
- eapi = metadata.pop('EAPI')
- repo = metadata.pop('repository')
+ try:
+ pkg = _pkg_str(cpv, metadata=metadata)
+ except InvalidData:
+ continue
+ metadata = dict((k, metadata[k]) for k in update_keys)
if repo_dict is None:
updates_list = updates
else:
try:
- updates_list = repo_dict[repo]
+ updates_list = repo_dict[pkg.repo]
except KeyError:
try:
updates_list = repo_dict['DEFAULT']
@@ -318,7 +322,7 @@ class dbapi(object):
continue
metadata_updates = \
- portage.update_dbentries(updates_list, metadata, eapi=eapi)
+ portage.update_dbentries(updates_list, metadata, parent=pkg)
if metadata_updates:
aux_update(cpv, metadata_updates)
if onUpdate:
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py
index 0cc46268c..2203aafda 100644
--- a/pym/portage/dbapi/bintree.py
+++ b/pym/portage/dbapi/bintree.py
@@ -425,7 +425,7 @@ class binarytree(object):
moves += 1
mytbz2 = portage.xpak.tbz2(tbz2path)
mydata = mytbz2.get_data()
- updated_items = update_dbentries([mylist], mydata, eapi=mycpv.eapi)
+ updated_items = update_dbentries([mylist], mydata, parent=mycpv)
mydata.update(updated_items)
mydata[b'PF'] = \
_unicode_encode(mynewpkg + "\n",
diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
index 8d908fcf3..27e204e04 100644
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@ -364,7 +364,7 @@ class vardbapi(dbapi):
del e
write_atomic(os.path.join(newpath, "PF"), new_pf+"\n")
write_atomic(os.path.join(newpath, "CATEGORY"), mynewcat+"\n")
- fixdbentries([mylist], newpath, eapi=mycpv.eapi)
+ fixdbentries([mylist], newpath, parent=mycpv)
return moves
def cp_list(self, mycp, use_cache=1):