diff options
author | Zac Medico <zmedico@gentoo.org> | 2012-11-13 23:08:05 -0800 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2012-11-13 23:08:05 -0800 |
commit | 0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9 (patch) | |
tree | 3d33af8a44400e2a9225844cf25a985249bfb038 /pym/_emerge | |
parent | 118db4184de67450ec7118f1607b3f8c8ed1ec9e (diff) | |
download | portage-0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.tar.gz portage-0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.tar.bz2 portage-0b4e6c27e87e57fac09fa28d3ed1320cb6a83ad9.zip |
update_dbentry: add parent arg for bug #367215
Diffstat (limited to 'pym/_emerge')
-rw-r--r-- | pym/_emerge/FakeVartree.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/pym/_emerge/FakeVartree.py b/pym/_emerge/FakeVartree.py index 5fde8e16b..9babb4c7b 100644 --- a/pym/_emerge/FakeVartree.py +++ b/pym/_emerge/FakeVartree.py @@ -1,4 +1,4 @@ -# Copyright 1999-2011 Gentoo Foundation +# Copyright 1999-2012 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 import sys @@ -15,6 +15,7 @@ from portage.eapi import _get_eapi_attrs from portage.exception import InvalidDependString from portage.repository.config import _gen_valid_repo from portage.update import grab_updates, parse_updates, update_dbentries +from portage.versions import _pkg_str if sys.hexversion >= 0x3000000: long = int @@ -286,12 +287,15 @@ def grab_global_updates(portdb): return retupdates def perform_global_updates(mycpv, mydb, myupdates): - aux_keys = Package._dep_keys + ("EAPI", 'repository') + aux_keys = Package._dep_keys + mydb._pkg_str_aux_keys aux_dict = dict(zip(aux_keys, mydb.aux_get(mycpv, aux_keys))) - eapi = aux_dict.pop('EAPI') - repository = aux_dict.pop('repository') try: - mycommands = myupdates[repository] + pkg = _pkg_str(mycpv, metadata=aux_dict) + except InvalidData: + return + aux_dict = dict((k, aux_dict[k]) for k in Package._dep_keys) + try: + mycommands = myupdates[pkg.repo] except KeyError: try: mycommands = myupdates['DEFAULT'] @@ -301,6 +305,6 @@ def perform_global_updates(mycpv, mydb, myupdates): if not mycommands: return - updates = update_dbentries(mycommands, aux_dict, eapi=eapi) + updates = update_dbentries(mycommands, aux_dict, parent=pkg) if updates: mydb.aux_update(mycpv, updates) |