On Wed, Oct 23, 2013 at 01:02:59AM +0000, Serge Hallyn wrote:
> From: Serge Hallyn <serge.hal...@ubuntu.com>
> 
> Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com>

We really should be working on a shared set of functions all templates
can source instead of re-inventing the wheel over and over again
(thinking about config, fstab, architecture handling, locking, ...)

Acked-by: Stéphane Graber <stgra...@ubuntu.com>

> ---
>  templates/lxc-busybox.in | 44 +++++++++++++++++++++++++++++++-------------
>  1 file changed, 31 insertions(+), 13 deletions(-)
> 
> diff --git a/templates/lxc-busybox.in b/templates/lxc-busybox.in
> index cbdaaf3..7aa4130 100644
> --- a/templates/lxc-busybox.in
> +++ b/templates/lxc-busybox.in
> @@ -20,6 +20,17 @@
>  # License along with this library; if not, write to the Free Software
>  # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 
> USA
>  
> +am_in_userns() {
> +    [ -e /proc/self/uid_map ] || { echo no; return; }
> +    [ "$(wc -l /proc/self/uid_map | awk '{ print $1 }')" -eq 1 ] || { echo 
> yes; return; }
> +    line=$(awk '{ print $1 " " $2 " " $3 }' /proc/self/uid_map)
> +    [ "$line" = "0 0 4294967295" ] && { echo no; return; }
> +    echo yes
> +}
> +
> +in_userns=0
> +[ $(am_in_userns) = "yes" ] && in_userns=1
> +
>  install_busybox()
>  {
>      rootfs=$1
> @@ -55,19 +66,26 @@ $rootfs/usr/lib64"
>      pushd $rootfs/dev > /dev/null || return 1
>  
>      # minimal devices needed for busybox
> -    mknod tty c 5 0       || res=1
> -    mknod console c 5 1   || res=1
> -    chmod 666 tty console || res=1
> -    mknod tty0 c 4 0      || res=1
> -    mknod tty1 c 4 0      || res=1
> -    mknod tty5 c 4 0      || res=1
> -    chmod 666 tty0        || res=1
> -    mknod ram0 b 1 0      || res=1
> -    chmod 600 ram0        || res=1
> -    mknod null c 1 3      || res=1
> -    chmod 666 null        || res=1
> -    mknod urandom c 1 9   || res=1
> -    chmod 666 urandom     || res=1
> +    if [ $in_userns -eq 1 ]; then
> +        for dev in tty console tty0 tty1 tty5 ram0 null urandom; do
> +            touch $rootfs/dev/$dev
> +            echo "/dev/$dev dev/$dev    none bind 0 0" >> $path/fstab
> +        done
> +    else
> +        mknod tty c 5 0       || res=1
> +        mknod console c 5 1   || res=1
> +        chmod 666 tty console || res=1
> +        mknod tty0 c 4 0      || res=1
> +        mknod tty1 c 4 0      || res=1
> +        mknod tty5 c 4 0      || res=1
> +        chmod 666 tty0        || res=1
> +        mknod ram0 b 1 0      || res=1
> +        chmod 600 ram0        || res=1
> +        mknod null c 1 3      || res=1
> +        chmod 666 null        || res=1
> +        mknod urandom c 1 9   || res=1
> +        chmod 666 urandom     || res=1
> +    fi
>  
>      popd > /dev/null
>  
> -- 
> 1.8.1.2
> 
> 
> ------------------------------------------------------------------------------
> October Webinars: Code for Performance
> Free Intel webinars can help you accelerate application performance.
> Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
> the latest Intel processors and coprocessors. See abstracts and register >
> http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel

-- 
Stéphane Graber
Ubuntu developer
http://www.ubuntu.com

Attachment: signature.asc
Description: Digital signature

------------------------------------------------------------------------------
October Webinars: Code for Performance
Free Intel webinars can help you accelerate application performance.
Explore tips for MPI, OpenMP, advanced profiling, and more. Get the most from 
the latest Intel processors and coprocessors. See abstracts and register >
http://pubads.g.doubleclick.net/gampad/clk?id=60135991&iu=/4140/ostg.clktrk
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to