tbegin refactoring - libdevuansdk - common library for devuan's simple distro kits
git clone https://git.parazyd.org/libdevuansdk
Log
Files
Refs
Submodules
README
LICENSE
---
commit a52e018a44d669fd65a9ee5f3d5cc740a5b4ee27
parent c61cbfca84c83cc9e6c8133f1e07d8daabba2a1c
Author: parazyd 
Date:   Thu, 29 Sep 2016 21:19:10 +0200

begin refactoring

Diffstat:
  D .gitmodules                         |       3 ---
  D README.md                           |      61 -------------------------------
  D config                              |      39 -------------------------------
  D doc/HACKING.md                      |      72 -------------------------------
  D doc/README-configuration.md         |       7 -------
  D doc/README-functions.md             |     122 -------------------------------
  D doc/WORKFLOW.md                     |       7 -------
  D doc/libdevuansdk.stub               |      24 ------------------------
  D sdk.init                            |     112 -------------------------------
  D src/qemu-wrapper.c                  |      20 --------------------
  D zlibs/blends                        |      97 ------------------------------
  D zlibs/bootstrap                     |     178 -------------------------------
  D zlibs/expectlib                     |     100 -------------------------------
  D zlibs/grub                          |      55 -------------------------------
  D zlibs/helpers                       |     178 -------------------------------
  D zlibs/imaging                       |     168 -------------------------------
  D zlibs/isolinux                      |     162 ------------------------------
  D zlibs/kernel                        |      56 -------------------------------
  D zlibs/packages                      |     115 -------------------------------
  D zlibs/qemu                          |     259 -------------------------------
  D zlibs/sysconf                       |     318 -------------------------------
  D zuper                               |       1 -

22 files changed, 0 insertions(+), 2154 deletions(-)
---
diff --git a/.gitmodules b/.gitmodules
t@@ -1,3 +0,0 @@
-[submodule "zuper"]
-        path = zuper
-        url = https://github.com/dyne/zuper
diff --git a/README.md b/README.md
t@@ -1,61 +0,0 @@
-libdevuansdk
-------------
-
-libdevuansdk is a shell script library intended to unify the use and creation of
-various functions spread throughout Devuan's various SDKs.
-
-For documentation, refer to the files in the `doc` directory.
-=======
-# Devuan's Simple Distro Kit - shared library
-
-This is a set of ZSh based scripts shared across other Devuan's SDK components to accomplish common tasks.
-
-All Devuan's SDK components are found here https://git.devuan.org/groups/sdk
-
-## Requirements
-
-Devuan's SDK is designed to be used interactively from a terminal as well
-from shell scripts. It requires the following packages to be installed:
-
-```
-zsh debootstrap expect sudo
-```
-
-# Caveat
-
-This is an early release with limited functionality to facilitate the
-import and maintainance of some packages that are core to Devuan.
-
-Some things may change in the immediate future.
-
-To support the development you are welcome to open issues on problems
-and bugs you encounter, open merge requests of patches or simply
-getting involved in other tasks evident on https://git.devuan.org
-
-
-# Acknowledgments
-
-Devuan's SDK was originally conceived during a period of residency at
-the Schumacher college in Dartington UK, greatly inspired by the
-laborious and mindful atmosphere of its wonderful premises.
-
-The Devuan SDK is Copyright (C) 2015 by the Dyne.org Foundation
-
-Devuan SDK components are designed, written and maintained by:
-- Ivan J. 
-- Denis Roio 
-- Enzo Nicosia 
-
-This source code is free software: you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation, either version 3 of the License, or
-(at your option) any later version.
-
-This software is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this source code. If not, see .
-
diff --git a/config b/config
t@@ -1,39 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-## Distro-specific settings
-
-# os name
-os="devuan"
-
-# release name
-release="jessie"
-
-# release version
-version="1.0.0-beta2"
-
-# mirror url
-mirror="http://packages.devuan.org/merged"
-
-# mirror repo section
-section="main"
diff --git a/doc/HACKING.md b/doc/HACKING.md
t@@ -1,72 +0,0 @@
-libdevuansdk
-------------
-
-## Strings for translation
-
-To support gettext translation use Zuper's functions for noticing messages to console:
-
- - `notice` (green visible header)
- - `act` (bullet point information)
- - `warning` (orange warning, non fatal)
- - `error` (fatal error) followed by `zerr` and `zshexit`
-
-Each string should not contain any variable, but pointers to
-variables, then be followed by actual variables as arguments. So for
-instance:
-
-```
-notice "Starting to bake files in ::1 directory:: for target ::2 arch::" $dir $arch
-```
-
-This will print the string with variables in it, but string will
-contain references to them. This is so that gettext translations will
-point to the same string even in case of name of variables changing.
-
-
-## Code style
-
-### Leading whitespace
-* Use tabs for indentation
-* Use spaces for alignment
-        * This means no tabs except beginning of line
-        * Everything will line up independent of tab size
-
-### Variable naming
-* Do not name your variables UPPERCASE unless they are environment related.
-* All variables local to the project should stay lowercase
-
-### Function naming
-* Use underscores, not dashes in naming.
-* Declare every function with `fn function_name` for zuper.
-* Sort all functions alphabetically in their respective files.
-        * Write its needed documentation in `doc/README-functions.md`
-
-### Other
-* No files chmodded to +x. This is a library.
-
-## Workflow
-
-libdevuansdk is split into three stages. See `doc/WORKFLOW.md` for more info on it.
-
-### Stage 1
-* debootstrap (stage 1+2+3)
-        * gives you a working system
-        * tarball it for later use
-        * raw image (dd-ed zeroes)
-
-### Stage 2
-* declare entities
-* customize system
-
-### Stage 3
-* packing
-
-## Submodule administration
-
-To update all submodules use:
-
-```
-git submodule foreach git pull --rebase origin master
-```
-
-This will cycle through all submodules and update them to the respective latest HEAD. After this the repository needs to be updated with the reference to this new HEAD with a commit.
diff --git a/doc/README-configuration.md b/doc/README-configuration.md
t@@ -1,7 +0,0 @@
-libdevuansdk configuration
---------------------------
-
-## Variables
-
-### `strapdir`
-Path to your bootstrap directory (rootfs)
diff --git a/doc/README-functions.md b/doc/README-functions.md
t@@ -1,122 +0,0 @@
-libdevuansdk functions
-----------------------
-
-# zlibs/debootstrap
-
-## bootstrap()
-
-Main function, goes through stages 1, 2, and 3 of debootstrap.
-
-### bootstrap_config_cleanup() ###
-
-Final cleanup of the rootfs.
-
-### bootstrap_config_thirdstage() ###
-
-Shell script for the system's third debootstrap stage.
-
-### bootstrap_tar_pack() ###
-
-Make a tarball of a base working system, ready to be worked on later.
-
-### bootstrap_tar_unpack() ###
-
-Unpack the tarball of a base working system to the strapdir.
-
-# zlibs/imaging
-
-## img_mkimage()
-Uses dd to dump zeroes into a raw .img of the preconfigured size.
-Goes further and rsyncs strapdir into the image, installs bootloader and a
-kernel.
-
-## img_partition_dos() ##
-Partitions the raw image into dos format and formats (boot=ext2; root=ext4)
-
-## img_partition_gpt() ##
-Partitions the raw image into gpt format and formats (boot=ext2; root=ext4)
-
-## img_rsync_strapdir() ##
-rsyncs the strapdir to te mounted rootfs of our raw image.
-
-## img_install_bootloader() ##
-calls functions from sysconf: `conf_install_kernel` and `conf_install_grub` to
-install the on the image
-
-## img_mount() ##
-Mounts the root and boot partitions in `$workdir/rootp` in order to work on it.
-
-## img_umount() ##
-Undoes the above function.
-
-# zlibs/helpers
-
-## escalate()
-Acts as a wrapper for escalating user privilege when needed. Takes two
-arguments, user and command in the style of:
-
-```
-escalate root "chroot /somewhere/where/i/want/to"
-```
-
-## findloopmapp()
-For the raw image. Finds a free loopdevice and makes a /dev/mapper device which
-is then kpartx-ed to give us partitions we can mount.
-
-## mountdevprocsys()
-Mounts `/sys`, `/dev`, `/dev/pts`, and `/proc` where needed. Takes one argument, which
-is the path containing those. ex:
-
-```
-mountdevproc /path/to/bootstrapped/chroot
-```
-
-## umountdevprocsys()
-Does the opposite of `mountdevprocsys`.
-
-## aptautostart()
-enables/disables apt to autostart services after their packages are installed.
-takes args `on` or `off` as 1st argument, and `/path/to/chroot` as second
-argument
-
-## silly()
-Because NSA
-
-# zlibs/sysconf
-NOTE: everything is printed to stdout. Pipe or redirect if you want to write on
-storage.
-
-## conf_install_grub()
-Installs `grub-pc` to the target. Arg taken is a path to a chroot
-
-## conf_install_kernel()
-Installs `linux-image-$arch` to the target. Arg taken is a path to the chroot.
-
-## conf_print_debconf()
-Prints out the config for console-common setup
-
-## conf_print_fstab()
-Prints the fstab
-
-## conf_print_hostname()
-Prints the hostname. Requires `$os` to be declared.
-
-## conf_print_hosts
-Prints default `/etc/hosts`
-
-## conf_print_networkifaces()
-Prints the `/etc/network/interfaces` file
-
-## conf_print_resolvconf()
-Prints the `/etc/resolv.conf` file.
-
-## conf_print_sourceslist()
-Prints default `/etc/apt/sources.list`
-
-# zlibs/customise
-
-## kernel_x86_install_default()
-Install the default kernel in the bootstrapped system
-
-## qemu_make_img()
-Make a raw/qcow2 qemu image of workdir
diff --git a/doc/WORKFLOW.md b/doc/WORKFLOW.md
t@@ -1,7 +0,0 @@
-# STAGE ONE
-Build a basic system ready to be customized/shipped and pack it into a tarball
-for later use.
-
-# STAGE TWO
-
-# STAGE THREE
diff --git a/doc/libdevuansdk.stub b/doc/libdevuansdk.stub
t@@ -1,24 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-
diff --git a/sdk.init b/sdk.init
t@@ -1,112 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-fn libdevuansdk.init
-libdevuansdk_version=0.1
-notice "Initializing Devuan SDK library v$libdevuansdk_version"
-
-vars+=(SDK_PREFIX SDK_HOME SDK_CONF SDK_LIB SDK_ARM SDK_VM SDK_LIVE)
-vars+=(libdevuansdk_version os release version mirror section arch)
-
-# defaults if less sofisticated dir
-SDK_HOME=${SDK_HOME:-$SDK_PREFIX}
-SDK_CONF=${SDK_CONF:-$SDK_PREFIX}
-
-# default operational paths
-vars+=(R H E)
-R=${R:-$SDK_PREFIX}
-H=${H:-$SDK_HOME}
-E=${E:-$SDK_CONF}
-
-req=(os release version mirror section R H E)
-freq=($SDK_LIB/zuper/zuper.init)
-ckreq || { error "configuration is missing"; zshexit; return 1 }
-
-# name of target by default, omits arch
-vars+=(name_default)
-name_default=${os}_${release}_${version}
-# For gettext
-TEXTDOMAIN=devuan
-
-# setting core, base, and other packages
-
-[[ "$core_packages" = "" ]] && {
-# core packages for the system
-arrs+=(core_packages)
-core_packages=(devuan-keyring debian-keyring)
-core_packages+=(initramfs-tools binutils ca-certificates curl)
-core_packages+=(console-common less nano vim)
-}
-[[ "$base_packages" = "" ]] && {
-# base packages for the system
-arrs+=(base_packages)
-base_packages=(bzip2 dialog apt-utils fakeroot e2fsprogs parted)
-}
-[[ "$system_packages" = "" ]] && {
-# other system packages
-arrs+=(system_packages)
-system_packages=(sysvinit ssh)
-}
-
-# default size for an img
-vars+=(imgsize)
-imgsize=${imgsize:-1337M}
-
-
-## libdevuansdk-specific settings
-vars+=(workdir strapdir outdir)
-outdir=${outdir:-$H/builds}
-workdir=${workdir:-$H/workdir}
-strapdir="${workdir}/${name_default}_${arch}"
-
-# conclude initialization
-
-DEBUG=${DEBUG:-0}
-QUIET=${QUIET:-0}
-LOG=${LOG:-""}
-
-# config globals
-
-# source $R/zlibs/library
-source $SDK_LIB/zlibs/bootstrap
-source $SDK_LIB/zlibs/helpers
-# source $R/zlibs/imaging
-source $SDK_LIB/zlibs/isolinux
-source $SDK_LIB/zlibs/kernel
-source $SDK_LIB/zlibs/qemu
-source $SDK_LIB/zlibs/grub
-source $SDK_LIB/zlibs/sysconf
-
-source $SDK_LIB/zlibs/blends
-source $SDK_LIB/zlibs/packages
-
-# create mandatory workdirs
-# $strapdir
-mkdir -p ${strapdir}
-# $outdir
-mkdir -p ${outdir}
-
-# conclude initialization
-source $SDK_LIB/zuper/zuper.init
-
-act "library succesfully loaded"
diff --git a/src/qemu-wrapper.c b/src/qemu-wrapper.c
t@@ -1,20 +0,0 @@
-/* qemu wrapper
- * wrapper for executing qemu in build chroots
- * pass arguments to qemu binary
- *
- * ~ parazyd */
-
-#include 
-#include 
-
-int main(int argc, char **argv, char **envp) {
-        char *newargv[argc + 3];
-
-        newargv[0] = argv[0];
-        newargv[1] = "-cpu";
-        newargv[2] = "cortex-a8"; /* here you can set the cpu you are building for */
-
-        memcpy(&newargv[3], &argv[1], sizeof(*argv) * (argc -1));
-        newargv[argc + 2] = NULL;
-        return execve("/usr/bin/qemu-arm", newargv, envp);
-}
diff --git a/zlibs/blends b/zlibs/blends
t@@ -1,97 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-## blend-related functions
-
-
-## Apply a blend, i.e. read the "blend" file and source the
-## corresponding *_init and *_run files
-##
-## FIXME!!!! We need a way to check that the source of init and run
-## files were successful, so that we can popd as necessary upon failure
-##
-blend_apply(){
-        fn blend_apply $@
-    
-        blenddir=$1
-        req=(blenddir strapdir arch)
-        reqck || return 1
-        
-        if [[ ! -d $blenddir  || ! -f ${blenddir}/blend ]]; then
-                error "::1 dir:: is not a valid blend"  $blenddir
-                return 1
-        fi
-        
-        pushd $blenddir
-        source blend
-
-        ## Check if release is among the supported blend_releases
-        [[ -z ${blend_releases[(r)$release]} ]] && {
-                error "::1 rel:: is not among the releases supported by blend ::2 dir:: " $rel $blenddir;
-                popd;
-                return 1
-        }
-
-        [[ -z ${blend_archs[(r)$arch]} ]] && {
-                error "::1 arch:: is not among the architectures supported by blend ::2 dir:: " $arch $blenddir;
-                popd;
-                return 1
-        }
-
-        notice "Selecting blend architecture ::1 arch:: " $arch
-        pushd ${arch}
-
-        [[ -n ${blend_init} ]] && {
-                notice "Initialising blend ::1 blend:: " $blenddir
-                ##
-                [[ ! -f ${blend_init} ]] && {
-                        error "Blend initialisation file \"::1 file::\" not found" ${blend_init}
-                        popd 
-                        popd
-                        return 1
-                }
-                
-                source ${blend_init}
-                act "Initialisation successful"
-        }
-
-        [[ -n ${blend_run} ]] && {
-        
-                notice "Applying blend ::1 blend:: " $blenddir
-                ##
-                [[ ! -f ${blend_run} ]] && {
-                        error "Blend run file \"::1 file::\" not found" ${blend_run}
-                        popd 
-                        popd
-                        return 1
-                }
-                source ${blend_run}
-                act "Application successful"
-        }
-        # come back to blend main dir
-        popd
-        # come back to working directory before the call to blend_apply
-        popd
-    
-}
-
diff --git a/zlibs/bootstrap b/zlibs/bootstrap
t@@ -1,178 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-## Debootstrap things
-
-vars+=(bootstrap_tgz)
-
-bootstrap() {
-        fn bootstrap $@
-        arch="$1"
-        req=(os strapdir workdir arch release mirror)
-        ckreq || return 1
-
-        notice "Bootstrapping ::1 OS:: base" ${os}
-
-        bootstrap_tgz=$H/builds/${name_default}_${arch}.tgz
-        strapdir=${workdir}/${name_default}_${arch}
-
-        if [[ -f $bootstrap_tgz ]]; then
-                notice "Using the existing bootstrap tarball found in ::1 tmpdir::" $H/tmp
-                ls -lh $bootstrap_tgz
-                bootstrap_tar_unpack ${strapdir}
-        else
-                # Debootstrap stage 1
-                sudo debootstrap --foreign --arch ${arch} ${release} ${strapdir} ${mirror}
-
-                qemu_install_user
-
-                # Debootstrap stage 2
-                sudo chroot ${strapdir} /debootstrap/debootstrap --second-stage
-
-                # write all system configuration
-                conf_print_debconf       | sudo tee ${strapdir}/debconf.set
-                conf_print_fstab         | sudo tee ${strapdir}/etc/fstab
-                conf_print_hostname      | sudo tee ${strapdir}/etc/hostname
-                conf_print_hosts         | sudo tee ${strapdir}/etc/hosts
-                conf_print_networkifaces | sudo tee ${strapdir}/etc/network/interfaces
-                conf_print_resolvconf    | sudo tee ${strapdir}/etc/resolv.conf
-                conf_print_sourceslist   | sudo tee ${strapdir}/etc/apt/sources.list
-
-                # write third-stage for chroot
-                bootstrap_config_thirdstage | sudo tee ${strapdir}/thirdstage.sh
-                bootstrap_config_cleanup    | sudo tee ${strapdir}/cleanup.sh
-                sudo chmod +x ${strapdir}/thirdstage.sh
-                sudo chmod +x ${strapdir}/cleanup.sh
-
-                # chroot into it and configure further
-                # Debootstrap stage 3
-                export LC_ALL=C
-                export DEBIAN_FRONTEND=noninteractive
-
-                mountdevprocsys ${strapdir}
-
-                sudo chroot ${strapdir} /thirdstage.sh
-                sudo chroot ${strapdir} /cleanup.sh
-
-                umountdevprocsys ${strapdir}
-
-                bootstrap_tar_pack
-        fi
-}
-
-bootstrap_config_cleanup() {
-        fn config_cleanup
-
-        cat << EOF
-#!/bin/sh
-
-rm -f /debconf.set
-rm -f /thirdstage.sh
-rm -f /etc/ssh/*key
-rm -f /etc/ssh/*.pub
-rm -f /root/.bash_history
-# our file for which we check the bootstrap is complete
-echo "1" > .done
-EOF
-}
-
-bootstrap_config_thirdstage() {
-        fn bootstrap_config_thirdstage
-        req=(core_packages base_packages system_packages)
-        ckreq || return 1
-
-        cat << EOF
-#!/bin/sh
-dpkg-divert --add --local --divert /usr/sbin/invoke-rc.d.chroot --rename /usr/sbin/invoke-rc.d
-cp /bin/true /usr/sbin/invoke-rc.d
-echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
-chmod +x /usr/sbin/policy-rc.d
-
-apt-get update
-apt-get --yes --force-yes install locales-all
-
-debconf-set-selections /debconf.set
-
-apt-get update
-apt-get -y install ${core_packages}
-
-echo "root:devuan" | chpasswd
-sed -i -e 's/KERNEL\!=\"eth\*|/KERNEL\!=\"/' /lib/udev/rules.d/75-persistent-net-generator.rules
-rm -f /etc/udev/rules.d/70-persistent-net.rules
-export DEBIAN_FRONTEND=noninteractive
-
-apt-get --yes --force-yes install ${base_packages} ${system_packages} ${extra_packages}
-
-apt-get --yes --force-yes dist-upgrade
-
-apt-get --yes --force-yes autoremove
-
-apt-get clean
-
-rm -f /usr/sbin/policy-rc.d
-rm -f /usr/sbin/invoke-rc.d
-dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
-EOF
-}
-
-bootstrap_tar_pack() {
-        fn bootstrap_tar_pack
-        req=(bootstrap_tgz)
-        ckreq || return 1
-
-        local _dest=`dirname $bootstrap_tgz`
-
-        if [[ -f $bootstrap_tgz ]]; then
-                act "tarball found already in ::1 dir::" $_dest
-        else
-                notice "Creating boostrap tarball in ::1 tgz::" $bootstrap_tgz
-                silly
-
-                pushd ${strapdir}
-
-                mkdir -p ${_dest}
-                sudo tar czf $bootstrap_tgz \
-                        --exclude={./boot,./dev,./sys,./proc} \
-                        ./
-
-                popd
-        fi
-        ls -lh $bootstrap_tgz
-}
-
-bootstrap_tar_unpack() {
-        fn bootstrap_tar_unpack $@
-        local unpath="$1"
-        req=(unpath bootstrap_tgz)
-        ckreq || return 1
-
-        [[ -f ${unpath}/.done ]] && {
-                warning "bootstrap already unpacked in ::1 dir::" $unpath
-                return 1
-        }
-
-        mkdir -p ${unpath}
-        silly
-        tar xf $bootstrap_tgz -C ${unpath}
-        sudo mkdir -p ${unpath}/{boot,dev,sys,proc}
-}
diff --git a/zlibs/expectlib b/zlibs/expectlib
t@@ -1,100 +0,0 @@
-#!/usr/bin/env tclsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-#
-
-package require Expect
-
-
-proc ssh_run_cmd_ssh {sshuser sshpass sshhost sshport cmdname args} {
-
-        set timeout 30
-        
-        spawn ssh -p $sshport $sshuser@$sshhost
-
-        expect "yes/no" { 
-                send "yes\r"
-                expect "*?assword" { send "$sshpass\r" }
-    } "*?assword" { send "$sshpass\r" }
-        
-        expect "$ " { send "${cmdname} ${args}\r" }
-        expect "$ " { send "exit \r"}
-        interact
-}
-
-
-proc ssh_scpget {sshuser sshpass sshhost sshport srcfile dstfile} {
-        
-        set timeout 120
-
-        spawn scp -P $sshport  $sshuser@$sshhost:${scporig} $scpdest
-        
-        expect "yes/no" { 
-                send "yes\r"
-                expect "*?assword" { send "$sshpass\r" }
-        } "*?assword" { send "$sshpass\r" }
-        
-        expect "100%"
-        sleep 1 
-}
-
-proc ssh_scpput {sshuser sshpass sshhost sshport srcfile dstfile} {
-
-        set timeout 120
-        
-        spawn scp -P $sshport $scporig $sshuser@$sshhost:$scpdest
-        
-        
-        expect "yes/no" { 
-                send "yes\r"
-                expect "*?assword" { send "$sshpass\r" }
-        } "*?assword" { send "$sshpass\r" }
-        
-        expect "100%"
-        sleep 1 
-}
-
-
-proc expectlib_call { name args } {
-
-        puts "name: $name"
-        puts "args: $args"
-        
-        switch -- $name {
-                scpput {
-                        ssh_scpput {*}$args
-                }
-                scpget {
-                        ssh_scpget {*}$args
-                }
-                sshrun {
-                        ssh_run_cmd_ssh {*}$args
-                }
-        }
-}
-
-
-set params [split $argv " "]
-
-expectlib_call {*}$params
-
-
diff --git a/zlibs/grub b/zlibs/grub
t@@ -1,55 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-
-grub_install_target_dev() {
-        fn grub_install_target_dev $@
-        root=$1
-        install_dev=$2
-        req=(root install_dev)
-        freq=($root/.done)
-        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
-        fi
-
-        ztmp
-        devicemap=$ztmpfile
-
-        cat > ${devicemap} <
diff --git a/zlibs/helpers b/zlibs/helpers
t@@ -1,178 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-## Helper functions that make your life easier
-
-escalate() {
-        fn escalate $@
-        local user="$1"
-        local cmnd="$2"
-        req=(user cmnd)
-        ckreq || return 1
-
-        if isfound sudo; then
-                sudo -E -u ${user} ${=cmnd}
-        else
-                su -c "${=cmnd}" ${user}
-        fi
-}
-
-findloopmapp() {
-        fn findloopmapp
-        req=(imgpath imgname workdir)
-        ckreq || return 1
-
-        pushd ${workdir}
-        loopdevice=`sudo losetup -f --show ${imgname}`
-        mappdevice=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
-        func "Loop device:   ::1 loopdev::" $loopdevice
-        func "Mapper device: ::1 mappdev::" $mappdevice
-
-        silly sleep
-
-        mappdevice="/dev/mapper/${mappdevice}"
-        bootpart=${mappdevice}p1
-        rootpart=${mappdevice}p2
-
-        popd
-}
-
-mountdevprocsys() {
-        fn mountdevprocsys $@
-        local mntdir="$1"
-        req=(mntdir)
-        ckreq || return 1
-
-        sudo mount -o bind /sys ${mntdir}/sys         && act "mounted /sys in $mntdir"
-        sudo mount -t proc proc ${mntdir}/proc        && act "mounted /proc in $mntdir"
-        sudo mount -o bind /dev ${mntdir}/dev         && act "mounted /dev in $mntdir"
-        sudo mount -o bind /dev/pts ${mntdir}/dev/pts && act "mounted /dev/pts $mntdir"
-}
-
-umountdevprocsys() {
-        fn umountdevprocsys $@
-        local mntdir="$1"
-        req=(mntdir)
-        ckreq || return 1
-
-        sudo umount ${mntdir}/dev/pts && act "unmounted /dev/pts in $mntdir" && sleep 2
-        sudo umount ${mntdir}/dev     && act "unmounted /dev in $mntdir"     && sleep 2
-        sudo umount ${mntdir}/proc    && act "unmounted /proc in $mntdir"    && sleep 2
-        sudo umount ${mntdir}/sys     && act "unmounted /sys in $mntdir"     && sleep 2
-}
-
-aptautostart() {
-        fn aptautostart $@
-        local watdo="$1"
-        local wheredo="$2"
-        req=(watdo wheredo)
-
-        case $watdo in
-                on)
-                        aptautostart printon | sudo tee ${wheredo}/aptautostart.sh
-                        sudo chmod +x ${wheredo}/aptautostart.sh
-                        sudo chroot ${wheredo}  /aptautostart.sh
-                        ;;
-                off)
-                        aptautostart printoff | sudo tee ${wheredo}/aptautostart.sh
-                        sudo chmod +x ${wheredo}/aptautostart.sh
-                        sudo chroot ${wheredo}  /aptautostart.sh
-                        ;;
-                printon)
-                        cat << EOF
-#!/bin/sh
-rm -f /usr/sbin/policy-rc.d
-rm -f /usr/sbin/invoke-rc.d
-dpkg-divert --remove --rename /usr/sbin/invoke-rc.d
-rm -f /aptautostart.sh
-EOF
-                        ;;
-                printoff)
-                        cat << EOF
-#!/bin/sh
-dpkg-divert --add --local --divert /usr/sbin/invoke-rc.d.chroot --rename /usr/sbin/invoke-rc.d
-cp /bin/true /usr/sbin/invoke-rc.d
-echo -e "#!/bin/sh\nexit 101" > /usr/sbin/policy-rc.d
-chmod +x /usr/sbin/policy-rc.d
-EOF
-                        ;;
-                *)
-                        error "Please pass a correct argument (on/off)"
-                        ;;
-        esac
-}
-
-silly() {
-        fn silly $@
-        local arg1="$1"
-        local arg2="$2"
-
-        # cheers mailpile!
-        funneh=("do not think of purple hippos"
-                "increasing entropy & scrambling bits"
-                "indexing kittens..."
-                "patching bugs..."
-                "spinning violently around the y-axis"
-                "warming up particle accelerator"
-                "this server is powered by a lemon and two electrodes"
-                "becoming self-aware"
-                "BCC-ing ALL THE SPIES!"
-                "all of your config settings & passwords are encrypted with AES-256"
-                "the most common e-mail password is 123456, hopefully yours is different"
-                "good things come to those who wait"
-                "Make Free Software and be happy"
-                "We like volcanos, do you like volcanos?"
-                "Crossing out swear words..."
-                "Informing David Cameron of suspicious ac^H^H^H ... naaah :)"
-                "Abandon all hope, ye who enter here"
-                "Compiling bullshit bingo grid..."
-                "Estimating chance of asteroid hitting Earth"
-                "Applying coupons..."
-                "Backing up the entire Internet..."
-                "Making you wait for no reason"
-                "Doing nothing"
-                "Pay no attention to the man behind the curtain"
-                "You are great just the way you are"
-                "Supplying monkeys with typewriters"
-                "Swapping time and space"
-                "Self potato"
-                "Hey, there is some Nigerian prince here who wants to give you twenty million dollars..."
-                "A million hamsters are spinning their wheels right now")
-
-        local rnd=`shuf -i1-30 -n 1`
-        act "${funneh[$rnd]}"
-
-        [[ arg1 == "sleep" ]] && sleep $arg2
-}
-
-check_executable() {
-        fn check_executable $@
-        progname=$1
-
-        if [[ `which ${progname} | grep "not found" | wc -l` -ge 1 ]]; then 
-                return 0;
-        else
-                return 1;
-        fi
-        
-}
diff --git a/zlibs/imaging b/zlibs/imaging
t@@ -1,168 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-## Imaging
-
-vars+=(imgname imgpath)
-
-img_mkimage() {
-        fn img_mkimage $@
-        imgpath=${strapdir}.img
-        local mbrtype="$1"
-        local bootfstype="$2"
-        local rootfstype="$3"
-        local imgsize="$4"
-        req=(imgpath imgsize mbrtype bootfstype rootfstype)
-        ckreq || return 1
-
-        imgname=`basename ${imgpath}`
-
-        notice "Creating raw image..."
-        silly
-        dd if=/dev/zero \
-                of="${imgpath}" \
-                bs=1M count=${imgsize}
-
-        if [[ $mbrtype == "dos" ]]; then
-                img_partition_dos $bootfstype $rootfstype
-        elif [[ $mbrtype == "gpt" ]]; then
-                img_partition_gpt $bootfstype $rootfstype
-        else
-                error "No valid MBR type specified..."
-                zerr; zshexit
-        fi
-
-        img_mount
-        img_rsync_strapdir
-        # [[ -z $override_bootloader ]] && img_install_bootloader
-        img_umount
-}
-
-img_partition_dos() {
-        fn img_partition_dos $@
-        local bootfstype="$1"
-        local rootfstype="$2"
-        req=(imgname imgpath bootfstype rootfstype)
-        ckreq || return 1
-
-        notice "Partitioning with dos"
-        silly
-
-        parted_boot=${parted_boot:-ext2 0 64}
-        parted_root=${parted_root:-ext4 64 -1}
-
-        pushd ${workdir}
-
-        parted ${imgname} --script -- mklabel msdos
-        parted ${imgname} --script -- mkpart primary ${parted_boot}
-        parted ${imgname} --script -- mkpart primary ${parted_root}
-
-        # setup loopdevice and mappdevice (zlibs/helpers)
-        findloopmapp
-
-        img_format_partitions ${bootfstype} ${rootfstype}
-
-        popd
-}
-
-img_format_partitions() {
-        fn img_format_partitions $@
-        local bootfstype="$1"
-        local rootfstype="$2"
-        req=(bootfstype rootfstype bootpart rootpart)
-        ckreq || return 1
-
-        notice "Formatting partitions..."
-        sudo mkfs.${bootfstype} ${bootpart}
-        sudo mkfs.${rootfstype} ${rootpart}
-
-}
-
-img_partition_gpt() {
-        fn img_partition_gpt $@
-        local bootfstype="$1"
-        local rootfstype="$2"
-        req=(imgname imgpath bootfstype rootfstype)
-        ckreq || return 1
-
-        notice "Partitioning with gpt"
-        silly
-
-        pushd ${workdir}
-
-        parted ${imgname} --script -- mklabel gpt
-        cgpt create -z ${imgname}
-        cgpt create ${imgname}
-        cgpt add -i 1 -t kernel -b 8192 -s 32768 -l kernel -S 1 -T 5 -P 10 ${imgname}
-        cgpt add -i 2 -t data -b 40960 -s `expr $(cgpt show ${imgname} \
-                | awk '/Sec GPT table/ {print \$1}') - 40960` -l Root ${imgname}
-
-        # setup loopdevice and mappdevice (zlibs/helpers)
-        findloopmapp
-
-        img_format_partitions ${bootfstype} ${rootfstype}
-
-        popd
-}
-
-img_rsync_strapdir() {
-        fn img_rsync_strapdir
-        req=(workdir strapdir)
-        ckreq || return 1
-
-        notice "Rsyncing strapdir to raw image..."
-        silly
-        sudo rsync -HPavz -q ${strapdir}/* ${workdir}/rootp
-}
-
-img_install_bootloader() {
-        fn img_install_bootloader
-
-        conf_install_kernel ${workdir}/rootp
-        conf_install_grub ${workdir}/rootp
-}
-
-img_mount() {
-        fn img_mount
-        req=(bootpart rootpart workdir)
-        ckreq || return 1
-
-        mkdir -p ${workdir}/rootp
-
-        sudo mount ${rootpart} ${workdir}/rootp      && act "mounted root partition"
-        sudo mkdir -p ${workdir}/rootp/{boot,dev,proc,sys}
-        sudo mount ${bootpart} ${workdir}/rootp/boot && act "mounted boot partition"
-
-        mountdevprocsys ${workdir}/rootp
-}
-
-img_umount() {
-        fn img_umount
-        req=(bootpart rootpart workdir)
-        ckreq || return 1
-
-        umountdevprocsys ${workdir}/rootp
-
-        sudo umount ${workdir}/rootp/boot && act "umounted boot partition"
-        sudo umount ${workdir}/rootp      && act "umounted root partition"
-}
diff --git a/zlibs/isolinux b/zlibs/isolinux
t@@ -1,162 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-vars+=(iso isodir)
-
-isolinux_prepare() {
-    fn isolinux_prepare $@
-    req=(strapdir os release version arch)
-    root=$strapdir
-        freq=($strapdir/.done)
-    # freq=($R/chroot/$chroot_arch/$iso/initrd.gz)
-    reqck || return 1
-
-    iso=${os}_${release}_${version}_${arch}.iso
-        isodir=$workdir/iso_${os}_${release}_${version}_${arch}
-    notice "Preparing ISO in $isodir"
-        mkdir -p $isodir
-        
-        [[ -r /usr/lib/ISOLINUX/isolinux.bin ]] || {
-                error "Isolinux binary not found"
-                zerr; zshexit }
-        [[ -r /usr/lib/ISOLINUX/isohdpfx.bin ]] || {
-                error "Isolinux binary not found"
-                zerr; zshexit }
-
-        mkdir -p $isodir/isolinux
-        cp /usr/lib/ISOLINUX/isolinux.bin              $isodir/isolinux
-        cp /usr/lib/syslinux/modules/bios/*.c32        $isodir/isolinux
-        cat <  $isodir/isolinux/isolinux.cfg
-path
-include menu.cfg
-default vesamenu.c32
-prompt 0
-timeout 0
-label Shell
-com32 rosh.c32
-EOF
-        cat <  $isodir/isolinux/menu.cfg
-menu hshift 7
-menu width 61
-
-menu title Devuan GNU+Linux
-
-include stdmenu.cfg
-include txt.cfg
-EOF
-        cat <  $isodir/isolinux/stdmenu.cfg
-menu color title        * #FFFFFFFF *
-menu color border        * #00000000 #00000000 none
-menu color sel                * #ffffffff #76a1d0ff *
-menu color hotsel        1;7;37;40 #ffffffff #76a1d0ff *
-menu color tabmsg        * #ffffffff #00000000 *
-menu color help                37;40 #ffdddd00 #00000000 none
-# XXX When adjusting vshift, take care that rows is set to a small
-# enough value so any possible menu will fit on the screen,
-# rather than falling off the bottom.
-menu vshift 12
-menu rows 10
-menu helpmsgrow 15
-# The command line must be at least one line from the bottom.
-menu cmdlinerow 16
-menu timeoutrow 16
-menu tabmsgrow 18
-menu tabmsg Press ENTER to boot or TAB to edit a menu entry
-EOF
-
-        cat <  $isodir/isolinux/txt.cfg
-label default
-        menu label ^Boot Devuan $release $version $arch
-        kernel linux
-        append vga=788 initrd=initrd.img boot=live
-EOF
-#
-#        append vga=788 initrd=initrd.img boot=live toram=filesystem.squashfs
-
-}
-
-isolinux_mkinitrd() {
-        fn isolinux_mkinitrd $@
-        req=(iso isodir arch)
-        freq=($isodir/isolinux/isolinux.bin)
-        ckreq || return 1
-
-        sudo chroot $strapdir apt-get install -y live-boot live-boot-initramfs-tools extlinux
-        # sudo chroot $strapdir update-initramfs -u
-        # sudo chroot $strapdir update-initramfs -c -k all
-        sudo chroot $strapdir live-update-initramfs -u
-
-        # latest kernel
-        local kernel=""
-        for i in ${(f)"$(ls -t $strapdir/boot)"}; do
-                [[ "$i" =~ "vmlinuz" ]] || continue
-                kernel=$strapdir/boot/$i
-        done
-        # latest ramdisk
-        local initrd=""
-        for i in ${(f)"$(ls -t $strapdir/boot)"}; do
-                [[ "$i" =~ "initrd" ]] || continue
-                initrd=$strapdir/boot/$i
-        done
-        
-        cp -v $kernel  $isodir/isolinux/linux
-        cp -v $initrd  $isodir/isolinux/initrd.img
-
-}
-
-isolinux_mkusr() {
-        fn isolinux_mkusr $@
-        req=(iso isodir)
-        ckreq || return 1
-
-        ztmp
-        conf_print_usrexcludes > $ztmpfile
-
-        usrdir=$workdir/usr_${os}_${release}_${version}_${arch}
-
-        mkdir -p $usrdir
-
-        rsync -raX $strapdir/ $usrdir --exclude-from=$ztmpfile
-
-        mkdir -p $isodir/live
-        mksquashfs $usrdir/ $isodir/live/filesystem.squashfs -noappend
-}
-        
-isolinux_make() {
-        fn isolinux_make $@
-        req=(iso isodir outdir)
-        freq=($isodir/isolinux/isolinux.bin)
-        ckreq || return 1
-
-        mkdir -p $outdir
-
-    sudo xorriso \
-                 -as mkisofs -r -J -joliet-long -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \
-                 -partition_offset 16 -V DEVUAN \
-                 -b isolinux/isolinux.bin -c isolinux/boot.cat  -no-emul-boot -boot-load-size 4 \
-         -boot-info-table -o $outdir/$iso $isodir
-
-    notice "$iso ready"
-    ls -lh $outdir/$iso
-}
-
diff --git a/zlibs/kernel b/zlibs/kernel
t@@ -1,56 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-
-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
-        local kernel=""
-
-        case $arch in
-                amd64)
-                        kernel=${kernel_base}-amd64
-                        ;;
-                i386)
-                        kernel=${kernel_base}-586
-                        ;;
-                *)
-                        error "Architecture ::1 arch:: is not supported!!!" ${arch}
-                        zerr; zshexit
-                        ;;
-        esac
-
-        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
-
-        umountdevprocsys ${root}
-        notice "default kernel installed"
-}
diff --git a/zlibs/packages b/zlibs/packages
t@@ -1,115 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-
-pkg_install(){
-        fn pkg_install $@
-
-        pkg_name=$1
-    root=${2:-$strapdir}
-        req=(pkg_name root)
-        reqck || return 1
-
-        mountdevprocsys ${root}
-
-        sudo chroot ${root} apt-get --yes --force-yes install ${pkg_name}
-
-        umountdevprocsys ${root}
-
-        
-}
-
-
-pkg_install_ssh(){
-        
-
-}
-
-
-pkg_remove(){
-
-
-}
-
-
-pkg_remove_ssh(){
-
-        
-}
-
-
-pkg_set_list(){
-
-        fn pkg_set_list $@
-
-        pkglist=$1
-    root=${2:-$strapdir}
-        req=(pkglist root)
-        reqck || return 1
-
-
-        scriptfilebase=set_package_list.sh
-        scriptfile=${root}/${scriptfilebase}
-
-        pkg_config_set_list ${pkglist} | sudo tee ${scriptfile}
-        sudo chmod u+x  ${scriptfile}
-        sudo cp ${pkglist} ${root}/`basename ${pkglist}`
-
-        [[ $? = 0 ]] || {
-                error "failed: _pkg_config_set_list ${pkglist} ${scriptfile}"
-                zsherr; zshexit 
-        }
-        
-        mountdevprocsys ${root}
-
-        sudo chroot ${root} ./${scriptfilebase}
-
-        umountdevprocsys ${root}
-
-        sudo rm ${scriptfile} ${root}/`basename ${pkglist}`
-
-}
-
-pkg_config_set_list() {
-
-        fn _pkg_config_set_list $@
-
-        pkglist=`basename $1`
-        req=(pkglist)
-        reqck || return 1
-        
-        cat < selections.bak
-dpkg --clear-selections
-dselect update
-dpkg --set-selections < ${pkglist}
-dselect install
-dselect config
-dselect remove
-
-## Now we purge all the packages marked as "deinstall"
-apt-get purge `dpkg --get-selections | grep "deinstall$" | cut -f 1`
-
-EOF
-}
diff --git a/zlibs/qemu b/zlibs/qemu
t@@ -1,259 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-qemu_install_user() {
-        fn qemu_install_user
-        local cputype="$1"
-
-        [[ -n $enable_qemu ]] && {
-                act "installing qemu-arm-static"
-                sudo cp -vf /usr/bin/qemu-arm-static $strapdir/usr/bin/
-        }
-
-        [[ -n $cputype ]] && {
-                act "compiling qemu wrapper"
-                cp $R/src/qemu-wrapper.c /tmp/qemu-wrapper.c
-                sed -i -e 's/cortex-a8/'$cputype'/' /tmp/qemu-wrapper.c
-                gcc -static /tmp/qemu-wrapper.c -O3 -s /tmp/qemu-wrapper
-                sudo mv -vf /tmp/qemu-wrapper $strapdir/usr/bin/
-
-                print ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/qemu-wrapper:' | sudo tee /proc/sys/fs/binfmt_misc/register
-        }
-}
-
-qemu_make_img() {
-
-        fn qemu_make_img $@
-        local imgfile=${1:-"$H/builds/${name_default}_${arch}.img"}
-        local imgsize=${2:-2G}
-        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
-        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
-        [[ $? = 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 }
-
-        func "mntdir: $mntdir"
-        func "strapdir: $strapdir"
-
-        # now we rsync everything
-        notice "Copying filesystem into image"
-        # ztmp
-        # excludefile=${ztmp}
-        # qemu_config_exclude | sudo tee ${excludefile}
-        # sudo rsync -raX --exclude-from=${excludefile} ${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}
-        grub_install_target_dev ${mntdir} ${loop1}
-        umountdevprocsys ${mntdir}
-
-        sync
-        sudo umount ${mntdir}
-
-        sudo losetup -d ${loop2}
-        sudo losetup -d ${loop1}
-
-        if [[ ! -z ${imgfile} ]]; then
-                notice "QEMU image created in ::1 imgfile::" ${imgfile}
-        else
-                warning "Unable to create QEMU image file in ::1 imgfile::" ${imgfile}
-        fi
-}
-
-qemu_config_esclude(){
-        fn qemu_config_exclude
-
-        cat <
diff --git a/zlibs/sysconf b/zlibs/sysconf
t@@ -1,318 +0,0 @@
-#!/usr/bin/env zsh
-#
-# Copyright (c) 2016 Dyne.org Foundation
-# libdevuansdk is written and maintained by
-#     Jaromil 
-#     KatolaZ 
-#     parazyd 
-#
-# This file is part of libdevuansdk
-#
-# This source code is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# This software is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this source code. If not, see .
-
-## base system configurations
-
-conf_print_debconf() {
-        fn conf_print_debconf
-
-        cat << EOF
-console-common console-data/keymap/policy select Select keymap from full list
-console-common console-data/keymap/full select en-latin1-nodeadkeys
-EOF
-}
-
-conf_print_fstab() {
-        fn conf_print_fstab
-
-        cat << EOF
-#                                  
-proc                  /proc                proc      nodev,noexec,nosuid     0       0
-
-# rootfs
-/dev/sda2             /                    ext4      errors=remount-ro       0       1
-
-# boot
-/dev/sda1             /boot                ext2      noauto                  0       0
-EOF
-}
-
-conf_print_hostname() {
-        fn conf_print_hostname
-        req=(os)
-        ckreq || return 1
-
-        print ${os}
-}
-
-conf_print_hosts() {
-        fn conf_print_hosts
-        req=(os)
-        ckreq || return 1
-
-        cat << EOF
-127.0.0.1        ${os}                localhost
-::1              localhost            ip6-localhost ip6-loopback
-fe00::0          ip6-localnet
-fe00::0          ip6-mcastprefix
-fe02::1          ip6-allnodes
-fe02::1          ip6-allrouters
-EOF
-}
-
-conf_print_networkifaces() {
-        fn conf_print_networkifaces
-
-        cat << EOF
-# interfaces(5) file used by ifup(8) and ifdown(8)
-
-# Please note that this file is written to be used with dhcpcd
-# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'
-
-# Include files from /etc/network/interfaces.d:
-source-directory /etc/network/interfaces.d
-
-auto lo
-iface lo inet loopback
-
-auto eth0
-iface eth0 inet dhcp
-
-# auto eth0
-# iface eth0 inet static
-#        address 10.0.1.10
-#        netmask 255.255.255.0
-
-# allow-hotplug wlan0
-# iface wlan0 inet manual
-#        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
-
-# allow-hotplug wlan1
-# iface wlan1 inet manual
-#        wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
-EOF
-}
-
-conf_print_resolvconf() {
-        fn conf_print_resolvconf
-
-        cat << EOF
-nameserver 8.8.8.8
-nameserver 8.8.4.4
-EOF
-}
-
-conf_print_sourceslist() {
-        fn conf_print_sourceslist
-        req=(mirror release section)
-        ckreq || return 1
-
-        cat << EOF
-deb ${mirror} ${release} ${section}
-deb ${mirror} ${release}-updates ${section}
-deb ${mirror} ${release}-security ${section}
-
-deb-src ${mirror} ${release} ${section}
-deb-src ${mirror} ${release}-updates ${section}
-deb-src ${mirror} ${release}-security ${section}
-EOF
-}
-
-conf_print_usrexcludes() {
-        fn conf_print_usrexcludes
-cat < /boot/initrd.img-`uname -r`
-### -- KatolaZ -- 2016-05-21
-###
-
-##- /initrd.img
-
-# Exclude ssh_host_keys. New ones will be generated upon live boot.
-# This fixes a security hole in all versions before 9.0.9-3.
-# If you really want to clone your existing ssh host keys
-# in your snapshot, comment out these two lines.
-#- /etc/ssh/ssh_host_*_key*
-#- /etc/ssh/ssh_host_key*
-
-# Examples of things to exclude in order to keep the image small:
-#- /home/fred/Downloads/*
-#- /home/*/Music/*
-#- /home/user/Pictures/*
-#- /home/*/Videos/*
-
-
-# To exclude all hidden files and directories in your home, uncomment
-# the next line. You will lose custom desktop configs if you do.
-##- /home/*/.[a-z,A-Z,0-9]*
-
-
-#### Exclude the large initramfs -- KatolaZ -- 2016-05-16
-
-##- /boot/initrd.img*
-
-#### Exclude inittab backup files -- KatolaZ -- 2016-06-04
-
-##- /etc/inittab.*
-EOF
-}
diff --git a/zuper b/zuper
t@@ -1 +0,0 @@
-Subproject commit a9b9d76b0d7efdf9ad6f5180ae447b3eabbc09d1