aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-11-18 07:05:12 +0000
committerZac Medico <zmedico@gentoo.org>2008-11-18 07:05:12 +0000
commitdf8ef8acce04b1d378ed590ff7556852a46944ae (patch)
treeb483ddd986ee1891fd9e8ee6a4d3f8e59c48a6c9 /pym/portage/eclass_cache.py
parentinclude quotes when showing make output (diff)
downloadportage-df8ef8acce04b1d378ed590ff7556852a46944ae.tar.gz
portage-df8ef8acce04b1d378ed590ff7556852a46944ae.tar.bz2
portage-df8ef8acce04b1d378ed590ff7556852a46944ae.zip
For emerge --metadata runs, update _eclasses_ metadata to insert local eclass
paths. svn path=/main/trunk/; revision=11990
Diffstat (limited to 'pym/portage/eclass_cache.py')
-rw-r--r--pym/portage/eclass_cache.py20
1 files changed, 15 insertions, 5 deletions
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):