Skip to content
Snippets Groups Projects
Commit 56298307 authored by Simon McVittie's avatar Simon McVittie
Browse files

sysroot: Add a way to mount more directories rw


This will make it easier to install a new pressure-vessel build into a
relocatable directory hierarchy for testing.

Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
parent 862982b7
No related branches found
No related tags found
No related merge requests found
...@@ -46,6 +46,7 @@ def main(): ...@@ -46,6 +46,7 @@ def main():
parser = argparse.ArgumentParser() parser = argparse.ArgumentParser()
parser.add_argument('--srcdir', default='.') parser.add_argument('--srcdir', default='.')
parser.add_argument('--builddir', default='_build') parser.add_argument('--builddir', default='_build')
parser.add_argument('--rw', action='append', default=[])
parser.add_argument('--sysroot', default=None) parser.add_argument('--sysroot', default=None)
parser.add_argument('--tarball', default=None) parser.add_argument('--tarball', default=None)
parser.add_argument('command') parser.add_argument('command')
...@@ -94,27 +95,48 @@ def main(): ...@@ -94,27 +95,48 @@ def main():
os.makedirs( os.makedirs(
os.path.join(abs_sysroot, './' + abs_builddir), exist_ok=True) os.path.join(abs_sysroot, './' + abs_builddir), exist_ok=True)
os.execvp( argv = [
'bwrap', 'bwrap',
[ '--ro-bind', abs_sysroot, '/',
'bwrap', '--bind',
'--ro-bind', abs_sysroot, '/', os.path.join(abs_sysroot, 'var', 'lib', 'apt'),
'--bind', '/var/lib/apt',
os.path.join(abs_sysroot, 'var', 'lib', 'apt'), '--dev-bind', '/dev', '/dev',
'/var/lib/apt', '--ro-bind', '/etc/resolv.conf', '/etc/resolv.conf',
'--dev-bind', '/dev', '/dev', '--proc', '/proc',
'--ro-bind', '/etc/resolv.conf', '/etc/resolv.conf', '--tmpfs', '/tmp',
'--proc', '/proc', '--tmpfs', '/var/tmp',
'--tmpfs', '/tmp', '--tmpfs', '/home',
'--tmpfs', '/var/tmp', '--bind', abs_srcdir, abs_srcdir,
'--tmpfs', '/home', '--bind', abs_builddir, abs_builddir,
'--bind', abs_srcdir, abs_srcdir, ]
'--bind', abs_builddir, abs_builddir,
'--chdir', os.getcwd(), for var in (
'--setenv', 'LC_ALL', 'C.UTF-8', 'AUTOPKGTEST_ARTIFACTS',
args.command, 'DESTDIR',
] + args.args, 'G_TEST_BUILDDIR',
) 'G_TEST_SRCDIR',
'PRESSURE_VESSEL_TEST_CONTAINERS',
):
if var in os.environ:
val = os.environ[var]
argv.extend([
'--bind', val, val,
])
for rw in args.rw:
argv.extend([
'--bind', rw, rw,
])
argv.extend([
'--chdir', os.getcwd(),
'--setenv', 'LC_ALL', 'C.UTF-8',
args.command,
])
argv.extend(args.args)
os.execvp('bwrap', argv)
if __name__ == '__main__': if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment