From df8ef8acce04b1d378ed590ff7556852a46944ae Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Tue, 18 Nov 2008 07:05:12 +0000 Subject: For emerge --metadata runs, update _eclasses_ metadata to insert local eclass paths. svn path=/main/trunk/; revision=11990 --- pym/portage/eclass_cache.py | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'pym/portage/eclass_cache.py') diff --git a/pym/portage/eclass_cache.py b/pym/portage/eclass_cache.py index de20d307c..93c956f8a 100644 --- a/pym/portage/eclass_cache.py +++ b/pym/portage/eclass_cache.py @@ -3,6 +3,8 @@ # License: GPL2 # $Id$ +__all__ = ["cache"] + from portage.util import normalize_path, writemsg import errno, os, sys from portage.data import portage_gid @@ -63,14 +65,22 @@ class cache(object): except OSError: continue ys=y[:-eclass_len] - self.eclasses[ys] = (x, long(mtime)) - self._eclass_locations[ys] = x if x == self._master_eclass_root: master_eclasses[ys] = mtime - else: - master_mtime = master_eclasses.get(ys) - if master_mtime and master_mtime != mtime: + self.eclasses[ys] = (x, mtime) + self._eclass_locations[ys] = x + continue + + master_mtime = master_eclasses.get(ys) + if master_mtime is not None: + if master_mtime == mtime: + # It appears to be identical to the master, + # so prefer the master entry. + continue + else: self._master_eclasses_overridden[ys] = x + self.eclasses[ys] = (x, mtime) + self._eclass_locations[ys] = x def is_eclass_data_valid(self, ec_dict): if not isinstance(ec_dict, dict): -- cgit v1.2.3-1-g7c22