diff options
author | Zac Medico <zmedico@gentoo.org> | 2006-12-31 15:35:02 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2006-12-31 15:35:02 +0000 |
commit | a73c32979f07ba27560a84a41532705f49535824 (patch) | |
tree | b062537c9ec9fe1da3d8bdbbe900ae8be03f0c8a | |
parent | fd8498e96c048d32e30fa500ec0dc3767dc1027e (diff) | |
download | portage-a73c32979f07ba27560a84a41532705f49535824.tar.gz portage-a73c32979f07ba27560a84a41532705f49535824.tar.bz2 portage-a73c32979f07ba27560a84a41532705f49535824.zip |
For bug #159224, use separate xmatch caches for each value of ACCEPT_KEYWORDS.
svn path=/main/trunk/; revision=5438
-rwxr-xr-x | bin/repoman | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/bin/repoman b/bin/repoman index 0cc74f426..fabde2821 100755 --- a/bin/repoman +++ b/bin/repoman @@ -727,6 +727,7 @@ def x11_deprecation_check(depstr): arch_caches={} +arch_xmatch_caches = {} for x in scanlist: #ebuilds and digests added to cvs respectively. if verbose: @@ -1136,16 +1137,13 @@ for x in scanlist: profdir = portdir+"/profiles/"+prof[0] if prof[0] in arch_caches: - dep_settings, xcache = arch_caches[prof[0]] + dep_settings = arch_caches[prof[0]] else: dep_settings = portage.config( config_profile_path=profdir, config_incrementals=portage_const.INCREMENTALS, local_config=False) - portdb.melt() - portdb.freeze() - xcache = portdb.xcache - arch_caches[prof[0]] = (dep_settings, xcache) + arch_caches[prof[0]] = dep_settings while True: try: # Protect ACCEPT_KEYWORDS from config.regenerate() @@ -1154,6 +1152,14 @@ for x in scanlist: except ValueError: break + xmatch_cache_key = (prof[0], tuple(groups)) + xcache = arch_xmatch_caches.get(xmatch_cache_key) + if xcache is None: + portdb.melt() + portdb.freeze() + xcache = portdb.xcache + arch_xmatch_caches[xmatch_cache_key] = xcache + trees["/"]["porttree"].settings = dep_settings portdb.mysettings = dep_settings portdb.xcache = xcache |