On Sun, Mar 10, 2013 at 10:09:48AM +0100, Pierre Schmitz wrote:
> Am 28.02.2013 23:09, schrieb Dave Reisner:
> > systemd-nspawn is capable of doing this as of systemd-198.
> > 
> > Signed-off-by: Dave Reisner <[email protected]>
> > ---
> >  mkarchroot.in | 21 ++++++++++++++-------
> >  1 file changed, 14 insertions(+), 7 deletions(-)
> > 
> > diff --git a/mkarchroot.in b/mkarchroot.in
> > index 20de5e6..c7c7bcb 100644
> > --- a/mkarchroot.in
> > +++ b/mkarchroot.in
> > @@ -95,14 +95,21 @@ bind_mount() {
> >     mount --make-slave "$target"
> >  }
> >  
> > -chroot_mount() {
> > -   trap 'trap_chroot_umount' EXIT INT QUIT TERM HUP
> > +build_mount_args() {
> > +   local p
> > +   declare -g mount_args=()
> >  
> > -   [[ -n $host_mirror_path ]] && bind_mount "$host_mirror_path" ro
> > +   if [[ -n $host_mirror_path ]]; then
> > +           printf -v p '%q' "$host_mirror_path"
> > +           mount_args+=(--bind-ro="$p")
> > +   fi
> > +
> > +   printf -v p '%q' "${cache_dirs[0]}"
> > +   mount_args+=(--bind="$p")
> >  
> > -   bind_mount "${cache_dirs[0]}"
> >     for cache_dir in ${cache_dirs[@]:1}; do
> > -           bind_mount "$cache_dir" ro
> > +           printf -v p '%q' "$cache_dir"
> > +           mount_args+=(--bind-ro="$p")
> >     done
> >  }
> >  
> > @@ -148,7 +155,7 @@ chroot_lock () {
> >  chroot_run() {
> >     local dir=$1
> >     shift
> > -   eval systemd-nspawn -D "${dir}" -- ${@} 2>/dev/null
> > +   eval systemd-nspawn -D "${dir}" "${mount_args[@]}" -- ${@} 2>/dev/null
> >  }
> >  
> >  # }}}
> > @@ -164,7 +171,7 @@ if [[ -n $RUN ]]; then
> >     fi
> >  
> >     chroot_lock
> > -   chroot_mount
> > +   build_mount_args
> >     copy_hostconf
> >  
> >     chroot_run "${working_dir}" ${RUN}
> 
> We would still need to use chroot_mount when installing the build env
> as we don't use nspawn here.

Could you clarify this? I'm not following this...

> Also: doesn't nspawn umount the mounts it mounted on exit?

Yes, it does. Isn't that what we want?

I've been using this patch since I wrote it, and haven't seen any
strange behavior as of yet.

Reply via email to