From a73c32979f07ba27560a84a41532705f49535824 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 31 Dec 2006 15:35:02 +0000 Subject: [PATCH] For bug #159224, use separate xmatch caches for each value of ACCEPT_KEYWORDS. svn path=/main/trunk/; revision=5438 --- bin/repoman | 16 +++++++++++----- 1 file 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 -- 2.26.2