summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2007-02-03 12:03:23 +0000
committerZac Medico <zmedico@gentoo.org>2007-02-03 12:03:23 +0000
commit9dbe1728015ea5b23c4c77158cc45f220dfae0a1 (patch)
treee434b05f9607945ed42dff4db6e8f111423f4057
parent9ba9195677e412a15ed59854842b689ad98227bc (diff)
downloadportage-9dbe1728015ea5b23c4c77158cc45f220dfae0a1.tar.gz
portage-9dbe1728015ea5b23c4c77158cc45f220dfae0a1.tar.bz2
portage-9dbe1728015ea5b23c4c77158cc45f220dfae0a1.zip
In order to correctly handl the case of target caches that don't have complete eclass entries, validate the set of interited eclasses to make sure it is correct (since timestamp validation is not applicable).
svn path=/main/trunk/; revision=5880
-rw-r--r--pym/portage/cache/util.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/pym/portage/cache/util.py b/pym/portage/cache/util.py
index 025887715..0732de4e4 100644
--- a/pym/portage/cache/util.py
+++ b/pym/portage/cache/util.py
@@ -39,7 +39,9 @@ def mirror_cache(valid_nodes_iterable, src_cache, trg_cache, eclass_cache=None,
trg = None
try:
trg = trg_cache[x]
- if long(trg["_mtime_"]) == long(entry["_mtime_"]) and portage.eclass_cache.is_eclass_data_valid(trg["_eclasses_"]):
+ if long(trg["_mtime_"]) == long(entry["_mtime_"]) and \
+ eclass_cache.is_eclass_data_valid(trg["_eclasses_"]) and \
+ set(trg["_eclasses_"]) == set(entry["_eclasses_"]):
write_it = False
except (cache_errors.CacheError, KeyError):
pass