tnamespace adjustements and checks - libdevuansdk - common library for devuan's simple distro kits
 (HTM) git clone https://git.parazyd.org/libdevuansdk
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) Submodules
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit db8d68391a18c1122a06878a3a43d119e0339455
 (DIR) parent 7ce2d187b9f74fa395a3cc511da572c3bfb9b351
 (HTM) Author: Jaromil <jaromil@dyne.org>
       Date:   Mon, 13 Jun 2016 16:43:31 +0200
       
       namespace adjustements and checks
       
       Diffstat:
         M doc/README-functions.md             |       7 +++----
         M libdevuansdk                        |       5 ++++-
         M zlibs/customise                     |      73 ++++++++++++++++++++++---------
       
       3 files changed, 60 insertions(+), 25 deletions(-)
       ---
 (DIR) diff --git a/doc/README-functions.md b/doc/README-functions.md
       t@@ -115,8 +115,8 @@ Prints default `/etc/apt/sources.list`
        
        # zlibs/customise
        
       -## install_default_kernel()
       +## kernel_x86_install_default()
        Install the default kernel in the bootstrapped system
        
       -## make_qemu_img()
       -Make a raw/qcow2 qemu image of workdir
       -\ No newline at end of file
       +## qemu_make_img()
       +Make a raw/qcow2 qemu image of workdir
 (DIR) diff --git a/libdevuansdk b/libdevuansdk
       t@@ -53,7 +53,7 @@ LOG=${LOG:-""}
        
        # path and debugging
        vars+=(R H E)
       -
       +vars+=(name_default)
        # source $R/zlibs/library
        source $E/config
        source $R/zlibs/debootstrap
       t@@ -69,6 +69,9 @@ if [[ -r   $R/zuper/zuper.init ]]; then
                source $R/zuper/zuper.init
        else source ./zuper/zuper.init; fi
        
       +# name of target by default, omits arch
       +name_default=${os}_${release}_${version}
       +
        # add all other binaries to the path
        path+=($R/bin)
        rehash
 (DIR) diff --git a/zlibs/customise b/zlibs/customise
       t@@ -23,10 +23,11 @@
        
        ### customise 
        
       -install_default_kernel(){
       -        fn install_default_kernel $@
       +kernel_x86_install_default(){
       +        fn kernel_x86_install_default $@
                req=(strapdir os release version arch)
            root=$strapdir
       +        freq=($root/.done)
                reqck || return 1
        
                local kernel_base=linux-image
       t@@ -47,7 +48,6 @@ install_default_kernel(){
                
                notice "Installing stock kernel for ::1 arch:: (::2 kernel::)" $arch $kernel
        
       -
                mountdevprocsys ${root}
        
                sudo chroot ${root} apt-get --yes --force-yes --no-install-recommends install $kernel
       t@@ -56,11 +56,15 @@ install_default_kernel(){
                notice "default kernel installed"
        }
        
       -_install_bootloader(){
       -        fn _install_bootloader $@
       +grub_install_target_dev(){
       +        fn grub_install_target_dev $@
                root=$1
                install_dev=$2
       -        
       +        req=(root install_dev)
       +        freq=($root/.done $root/dev/pts/0)
       +        ckreq || return 1
       +
       +        # TODO: should we use qemu-chroot here for $arch = arm (parazyd?)
                sudo chroot ${root} apt-get install --assume-yes --no-install-recommends grub-common
                if [[ ! -d ${root}/boot/grub ]]; then 
                        sudo mkdir ${root}/boot/grub
       t@@ -85,53 +89,83 @@ EOF
        }
        
        
       -make_qemu_img(){
       +qemu_make_img(){
        
       -        fn make_qemu_img $@
       -        local imgfile=$1
       +        fn qemu_make_img $@
       +        local imgfile=${1:-"$H/builds/${name_default}_${arch}.img"}
                local imgsize=${2:-4G}
                local imgformat=${3:-raw}
                req=(strapdir os release version arch imgfile imgsize)
            root=$strapdir
       +        freq=($root/.done)
                reqck || return 1
                
                local blockskip=2050
        
                ## create the qemu image 
       -        act "creating qemu image"
       +        notice "Creating qemu image: $imgfile"
                
                qemu-img create -f ${imgformat} ${imgfile} ${imgsize}
       +        [[ $? = 0 ]] || {
       +                error "failed: qemu-img create -f ${imgformat} ${imgfile} ${imgsize}"
       +                zsherr; zshexit }
        
       -        sudo parted ${imgfile} --script -- mklabel msdos
       -        sudo parted ${imgfile} --script -- mkpart primary ${blockskip}s -1s
       -        sudo parted ${imgfile} --script -- set 1 boot on
       +        sudo parted ${imgfile} --script -- mklabel msdos &&
       +                sudo parted ${imgfile} --script -- mkpart primary ${blockskip}s -1s &&
       +                sudo parted ${imgfile} --script -- set 1 boot on
       +        [[ $? = 0 ]] || {
       +                error "failed: parted $imgfile scripts (mklabel, mkpart and setboot)"
       +                zsherr; zshexit }
        
                ## setup the loop device
                loop1=`sudo losetup -f`
                sudo losetup ${loop1} ${imgfile}
       +        [[ $? = 0 ]] || {
       +                error "failed: losetup $loop2 $imgfile"
       +                zsherr; zshexit }
       +
                loop2=`sudo losetup -f`
                sudo losetup -o $((${blockskip} * 512)) ${loop2} ${loop1}
       +        [[ $? = 0 ]] || {
       +                sudo losetup -d ${loop1}
       +                error "failed: losetup -o $((${blockskip} * 512)) ${loop2} ${loop1}"
       +                zsherr; zshexit }
                
       -
                ## now we create the fs
                act "creating filesystem"
                sudo mkfs.ext4 ${loop2}
       +        [[ $? = 0 ]] || {
       +                sudo losetup -d ${loop2}
       +                sudo losetup -d ${loop1}
       +                error "failed: mkfs.ext4 $loop2"
       +                zsherr; zshexit }
        
                ## and we loop-mount it 
                
                ztmpd
                mntdir=$ztmpdir
                sudo mount -o loop ${loop2} ${mntdir}
       +        [[ $? = 0 ]] || {
       +                sudo losetup -d ${loop2}
       +                sudo losetup -d ${loop1}
       +                error "failed: mount -o loop ${loop2} ${mntdir}"
       +                zsherr; zshexit }
                
       -        echo "mntdir: $mntdir strapdir: $strapdir"
       -        
       +        func "mntdir: $mntdir"
       +        func "strapdir: $strapdir"
        
                # now we rsync everything 
       -        sudo rsync -av ${strapdir}/ $mntdir
       +        sudo rsync -raX ${strapdir}/ ${mntdir}
       +        [[ $? = 0 ]] || {
       +                umount $mntdir
       +                sudo losetup -d ${loop2}
       +                sudo losetup -d ${loop1}
       +                error "failed: rsync -raX ${strapdir}/ ${mntdir}"
       +                zsherr; zshexit }
                
                # we now install the grub bootloader
                mountdevprocsys ${mntdir}
       -        _install_bootloader $mntdir ${loop1}
       +        grub_install_target_dev ${mntdir} ${loop1}
                umountdevprocsys ${mntdir}
                
                sync
       t@@ -145,4 +179,4 @@ make_qemu_img(){
                else
                        warning "Unable to create QEMU image file in ::1 imgfile::" ${imgfile}
                fi
       -}
       -\ No newline at end of file
       +}