summaryrefslogtreecommitdiff
path: root/morphlib/builder.py
diff options
context:
space:
mode:
authorLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-02-17 12:48:49 +0000
committerLars Wirzenius <lars.wirzenius@codethink.co.uk>2012-02-17 12:48:49 +0000
commitb4e4f3e47ce008ffd59fd50ff20a848369e9db3f (patch)
tree793a517e37879e9e705cb886462697295b7629c7 /morphlib/builder.py
parent89a281b29af5c51d9c8fc39563cbb5e7e3112a69 (diff)
downloadmorph-b4e4f3e47ce008ffd59fd50ff20a848369e9db3f.tar.gz
Remove staging path prefix from $DESTDIR when we run things in chroot
Diffstat (limited to 'morphlib/builder.py')
-rw-r--r--morphlib/builder.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/morphlib/builder.py b/morphlib/builder.py
index fc6ac2af..95b6c85a 100644
--- a/morphlib/builder.py
+++ b/morphlib/builder.py
@@ -383,6 +383,7 @@ class ChunkBuilder(BlobBuilder):
ex.env[key] = self.ex.env[key]
assert self.builddir.startswith(self.staging + '/')
builddir = self.builddir[len(self.staging):]
+ destdir = self.destdir[len(self.staging):]
for cmd in commands:
self.msg('about to execute in chroot: %s' % cmd)
script = os.path.join(self.staging, 'temp.sh')
@@ -393,7 +394,13 @@ class ChunkBuilder(BlobBuilder):
f.write('%s\n' % cmd)
os.chmod(script, 0555)
chroot_cmd = '/usr/sbin/chroot %s ./temp.sh' % self.staging
+ old_destdir = ex.env.get('DESTDIR', None)
+ ex.env['DESTDIR'] = destdir
ex.run([chroot_cmd])
+ if old_destdir is None:
+ del ex.env['DESTDIR']
+ else:
+ ex.env['DESTDIR'] = old_destdir
os.remove(script)
else:
self.ex.run(commands)