diff options
author | Zac Medico <zmedico@gentoo.org> | 2008-05-20 03:08:36 +0000 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2008-05-20 03:08:36 +0000 |
commit | 6df92dcf244713a32fbe0c569cef398901651084 (patch) | |
tree | f84328d9c7c34fa318844157ff364c4b1468c705 | |
parent | In vardbapi.aux_get(), don't mark cacheed metadata invalid just because (diff) | |
download | portage-6df92dcf244713a32fbe0c569cef398901651084.tar.gz portage-6df92dcf244713a32fbe0c569cef398901651084.tar.bz2 portage-6df92dcf244713a32fbe0c569cef398901651084.zip |
* remove NEEDED from list of metadata variables (trunk r10180)v2.1.5.2
* Simplify cache code in vardbapi.aux_get(). (trunk r10377)
svn path=/main/branches/2.1.2/; revision=10378
-rw-r--r-- | pym/portage.py | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/pym/portage.py b/pym/portage.py index 14d4dbfc9..75301819b 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -6573,7 +6573,7 @@ class vardbapi(dbapi): self._aux_cache_keys = set( ["CHOST", "COUNTER", "DEPEND", "DESCRIPTION", "EAPI", "HOMEPAGE", "IUSE", "KEYWORDS", - "LICENSE", "PDEPEND", "PROVIDE", "RDEPEND", "NEEDED", + "LICENSE", "PDEPEND", "PROVIDE", "RDEPEND", "repository", "RESTRICT" , "SLOT", "USE"]) self._aux_cache = None self._aux_cache_version = "1" @@ -6897,6 +6897,7 @@ class vardbapi(dbapi): raise KeyError(mycpv) mydir_mtime = long(mydir_stat.st_mtime) pkg_data = self._aux_cache["packages"].get(mycpv) + pull_me = cache_these.union(wants) mydata = {} cache_valid = False cache_incomplete = False @@ -6915,23 +6916,15 @@ class vardbapi(dbapi): cache_mtime, metadata = pkg_data cache_valid = cache_mtime == mydir_mtime if cache_valid: - cache_incomplete = cache_these.difference(metadata) - if cache_incomplete: - # Allow self._aux_cache_keys to change without a cache version - # bump and efficiently recycle partial cache whenever possible. - pull_me = cache_incomplete.union(wants) - else: - pull_me = set(wants).difference(cache_these) mydata.update(metadata) - else: - pull_me = cache_these.union(wants) + pull_me.difference_update(metadata) if pull_me: # pull any needed data and cache it aux_keys = list(pull_me) for k, v in izip(aux_keys, self._aux_get(mycpv, aux_keys)): mydata[k] = v - if not cache_valid or cache_incomplete: + if not cache_valid or cache_these.difference(metadata): cache_data = {} if cache_valid and metadata: cache_data.update(metadata) |