diff options
Diffstat (limited to 'pym/portage/dbapi/porttree.py')
-rw-r--r-- | pym/portage/dbapi/porttree.py | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/pym/portage/dbapi/porttree.py b/pym/portage/dbapi/porttree.py index e679f000c..ab3824727 100644 --- a/pym/portage/dbapi/porttree.py +++ b/pym/portage/dbapi/porttree.py @@ -215,10 +215,12 @@ class portdbapi(dbapi): if x in self._pregen_auxdb: continue if os.path.isdir(os.path.join(x, "metadata", "cache")): - self._pregen_auxdb[x] = self.metadbmodule( + conf = self.repositories.get_repo_for_location(x) + cache = self._pregen_auxdb[x] = self.metadbmodule( x, "metadata/cache", filtered_auxdbkeys, readonly=True) + cache.is_authorative = conf.cache_is_authorative try: - self._pregen_auxdb[x].ec = self._repo_info[x].eclass_db + cache.ec = self._repo_info[x].eclass_db except AttributeError: pass # Selectively cache metadata in order to optimize dep matching. @@ -441,10 +443,11 @@ class portdbapi(dbapi): eapi = metadata.get('EAPI', '').strip() if not eapi: eapi = '0' - if not (eapi[:1] == '-' and eapi_is_supported(eapi[1:])) and \ - emtime == metadata['_mtime_'] and \ - eclass_db.is_eclass_data_valid(metadata['_eclasses_']): - doregen = False + if not (eapi[:1] == '-' and eapi_is_supported(eapi[1:])): + if auxdb.is_authorative or ( \ + emtime == metadata['_mtime_'] and \ + eclass_db.is_eclass_data_valid(metadata['_eclasses_'])): + doregen = False if not doregen: break |