summaryrefslogtreecommitdiff
path: root/morphlib/builder.py
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-03-13 15:08:33 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-03-13 15:08:33 +0000
commit981c3c5c40bc5a566b56034b35713b9090867105 (patch)
treee9a7a60e7f572aad8d336a3b0b18dc1ac537e513 /morphlib/builder.py
parentd17290559f7d97a3801a7666ca87358478bcb986 (diff)
downloadmorph-981c3c5c40bc5a566b56034b35713b9090867105.tar.gz
morphlib.builder.Builder: key depends on some env
env is created in Builder's constructor from app.clean_env cache keys now contain parts of the environment that may cause chunks to be built differently
Diffstat (limited to 'morphlib/builder.py')
-rw-r--r--morphlib/builder.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/morphlib/builder.py b/morphlib/builder.py
index 5b3c2978..a0805e06 100644
--- a/morphlib/builder.py
+++ b/morphlib/builder.py
@@ -542,6 +542,7 @@ class Builder(object): # pragma: no cover
self.source_manager = source_manager
self.factory = factory
self.indent = 0
+ self.env = app.clean_env()
def msg(self, text):
spaces = ' ' * self.indent
@@ -659,8 +660,7 @@ class Builder(object): # pragma: no cover
(str(blob), type(blob)))
builder = klass(blob, self.factory, self.app.settings, self.cachedir,
- self.get_cache_id(blob), self.tempdir,
- self.app.clean_env())
+ self.get_cache_id(blob), self.tempdir, self.env)
builder.real_msg = self.msg
builder.dump_memory_profile = self.dump_memory_profile
@@ -697,11 +697,14 @@ class Builder(object): # pragma: no cover
raise NotImplementedError('unknown morph kind %s' %
blob.morph.kind)
+ build_env = ("USER", "USERNAME", "LOGNAME",
+ "TOOLCHAIN_TARGET", "BOOTSTRAP")
dict_key = {
'name': blob.morph.name,
'arch': morphlib.util.arch(),
'ref': blob.morph.treeish.sha1,
'kids': ''.join(self.cachedir.key(k) for k in kids),
+ 'env': ''.join(k + self.env[k] for k in build_env),
}
return dict_key