tbegin refactoring - libdevuansdk - common library for devuan's simple distro kits
HTML git clone https://git.parazyd.org/libdevuansdk
DIR Log
DIR Files
DIR Refs
DIR Submodules
DIR README
DIR LICENSE
---
DIR commit a52e018a44d669fd65a9ee5f3d5cc740a5b4ee27
DIR parent c61cbfca84c83cc9e6c8133f1e07d8daabba2a1c
HTML Author: parazyd <parazyd@dyne.org>
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(-)
---
DIR diff --git a/.gitmodules b/.gitmodules
t@@ -1,3 +0,0 @@
-[submodule "zuper"]
- path = zuper
- url = https://github.com/dyne/zuper
DIR 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. <parazyd@dyne.org>
-- Denis Roio <jaromil@dyne.org>
-- Enzo Nicosia <katolaz@freaknet.org>
-
-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 <http://www.gnu.org/licenses/>.
-
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-## 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"
DIR 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.
DIR 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)
DIR 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
DIR 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
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-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"
DIR 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 <string.h>
-#include <unistd.h>
-
-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);
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-## 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
-
-}
-
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-## 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}
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-#
-
-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
-
-
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-
-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} <<EOF
-(hd0) /dev/loop0
-EOF
- sudo cp ${devicemap} ${root}/boot/grub/device.map
- sudo chroot ${root} grub-mkconfig -o /boot/grub/grub.cfg
- ## we now tamper with grub.cfg, to remove all references to
- ## loopback devices...
- ## FIXME!!! This is a hack...
- sudo -- sed -r -i -e 's/.*loop.*//g' ${root}/boot/grub/grub.cfg
-
- sudo grub-install --root-directory=${root} --no-floppy \
- --modules="ext2 part_msdos" --target=i386-pc --boot-directory=${root}/boot \
- ${install_dev}
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-## 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
-
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-## 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"
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-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 <<EOF > $isodir/isolinux/isolinux.cfg
-path
-include menu.cfg
-default vesamenu.c32
-prompt 0
-timeout 0
-label Shell
-com32 rosh.c32
-EOF
- cat <<EOF > $isodir/isolinux/menu.cfg
-menu hshift 7
-menu width 61
-
-menu title Devuan GNU+Linux
-
-include stdmenu.cfg
-include txt.cfg
-EOF
- cat <<EOF > $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 <<EOF > $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
-}
-
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-
-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"
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-
-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 <<EOF
-apt-get install dselect
-dpkg --get-selections > 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
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-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 <<EOF
-- /proc/*
-- /sys/*
-- /dev/*
-- /tmp/*
-- /mnt/*
-- /live
-- /persistence.conf
-- /boot/grub/grub.cfg
-- /boot/grub/menu.lst
-- /boot/grub/device.map
-- /boot/*.bak
-- /boot/*.old-dkms
-- /etc/udev/rules.d/70-persistent-cd.rules
-- /etc/udev/rules.d/70-persistent-net.rules
-- /etc/fstab
-- /etc/fstab.d/*
-- /etc/mtab
-- /etc/blkid.tab
-- /etc/blkid.tab.old
-- /etc/apt/sources.list~
-- /etc/crypttab
-- /etc/initramfs-tools/conf.d/resume # see remove-cryptroot and nocrypt.sh
-- /etc/initramfs-tools/conf.d/cryptroot # see remove-cryptroot and nocrypt.sh
-- /home/snapshot
-- /var/log/*
-- /var/log/[a-b,A-Z]*
-- /var/log/[d-f]*
-- /var/log/[h-z]*
-- /var/log/*gz
-
-- /var/cache/apt/archives/*.deb
-- /var/cache/apt/pkgcache.bin
-- /var/cache/apt/srcpkgcache.bin
-- /var/cache/apt/apt-file/*
-- /var/cache/debconf/*~old
-- /var/lib/apt/lists/*
-- /var/lib/apt/*~
-- /var/lib/apt/cdroms.list
-- /var/lib/aptitude/*.old
-- /var/lib/dhcp/*
-- /var/lib/dpkg/*~old
-- /var/spool/mail/*
-- /var/mail/*
-- /var/backups/*.gz
-#- /var/backups/*.bak
-- /var/lib/dbus/machine-id
-- /var/lib/live/config/*
-
-- /usr/share/icons/*/icon-theme.cache
-
-- /root/.aptitude
-- /root/.bash_history
-- /root/.disk-manager.conf
-- /root/.fstab.log
-- /root/.lesshst
-- /root/*/.log
-- /root/.local/share/*
-- /root/.nano_history
-- /root/.synaptic
-- /root/.VirtualBox
-- /root/.ICEauthority
-- /root/.Xauthority
-- /root/.links2
-
-- /root/.ssh
-- /root/[a-zA-Z0-9]*
-
-- /home/*/.Trash*
-- /home/*/.local/share/Trash/*
-- /home/*/.mozilla/*/Cache/*
-- /home/*/.mozilla/*/urlclassifier3.sqlite
-- /home/*/.mozilla/*/places.sqlite
-- /home/*/.mozilla/*/cookies.sqlite
-- /home/*/.mozilla/*/signons.sqlite
-- /home/*/.mozilla/*/formhistory.sqlite
-- /home/*/.mozilla/*/downloads.sqlite
-- /home/*/.adobe
-- /home/*/.aptitude
-- /home/*/.bash_history
-- /home/*/.cache
-- /home/*/.dbus
-- /home/*/.gksu*
-- /home/*/.gvfs
-- /home/*/.lesshst
-- /home/*/.log
-- /home/*/.macromedia
-- /home/*/.nano_history
-- /home/*/.pulse*
-- /home/*/.recently-used
-- /home/*/.recently-used.xbel
-- /home/*/.local/share/recently-used.xbel
-- /home/*/.thumbnails/large/*
-- /home/*/.thumbnails/normal/*
-- /home/*/.thumbnails/fail/*
-- /home/*/.vbox*
-- /home/*/.VirtualBox
-- /home/*/VirtualBox\ VMs
-#- /home/*/.wine
-- /home/*/.xsession-errors*
-- /home/*/.ICEauthority
-- /home/*/.Xauthority
-
-# You might want to comment these out if you're making a snapshot for
-# your own personal use, not to be shared with others.
-- /home/*/.gnupg
-- /home/*/.ssh
-- /home/*/.xchat2
-
-### ignore all non-hidden files in /home/devuan -- KatolaZ -- 2016-05-21
-
-- /home/devuan/[a-zA-Z0-9]*
-
-
-EOF
-}
DIR 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 <jaromil@dyne.org>
-# KatolaZ <katolaz@freaknet.org>
-# parazyd <parazyd@dyne.org>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-## 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
-#<file system> <mount point> <type> <options> <dump> <pass>
-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 <<EOF
-# rsync excludes file for refractasnapshot and refractasnapshot-gui
-# version 9.2.0
-
-
-# Exclude some system files. These are required, and you probably
-# shouldn't change them.
-
-- /dev/*
-- /cdrom/*
-- /media/*
-- /swapfile
-- /mnt/*
-- /sys/*
-- /proc/*
-- /tmp/*
-- /live
-- /persistence.conf
-- /boot/grub/grub.cfg
-- /boot/grub/menu.lst
-- /boot/grub/device.map
-- /boot/*.bak
-- /boot/*.old-dkms
-- /etc/udev/rules.d/70-persistent-cd.rules
-- /etc/udev/rules.d/70-persistent-net.rules
-- /etc/fstab
-- /etc/fstab.d/*
-- /etc/mtab
-- /etc/blkid.tab
-- /etc/blkid.tab.old
-- /etc/apt/sources.list~
-- /etc/crypttab
-- /etc/initramfs-tools/conf.d/resume # see remove-cryptroot and nocrypt.sh
-- /etc/initramfs-tools/conf.d/cryptroot # see remove-cryptroot and nocrypt.sh
-- /home/snapshot
-
-# Added for newer version of live-config/live-boot in wheezy
-# These are only relevant here if you create a snapshot while
-# you're running a live-CD or live-usb.
-- /lib/live/overlay
-- /lib/live/image
-- /lib/live/rootfs
-- /lib/live/mount
-- /run/*
-
-
-## Entries below are optional. They are included either for privacy
-## or to reduce the size of the snapshot. If you have any large
-## files or directories, you should exclude them from being copied
-## by adding them to this list.
-##
-## Entries beginning with /home/*/ will affect all users.
-
-
-# Uncomment this to exclude everything in /var/log/
-#- /var/log/*
-
-# As of version 9.2.0, current log files are truncated,
-# and archived log files are excluded.
-#
-# The next three lines exclude everything in /var/log
-# except /var/log/clamav/ (or anything else beginning with "c") and
-# /var/log/gdm (or anything beginning with "g").
-# If clamav log files are excluded, freshclam will give errors at boot.
-- /var/log/[a-b,A-Z]*
-- /var/log/[d-f]*
-- /var/log/[h-z]*
-- /var/log/*gz
-
-- /var/cache/apt/archives/*.deb
-- /var/cache/apt/pkgcache.bin
-- /var/cache/apt/srcpkgcache.bin
-- /var/cache/apt/apt-file/*
-- /var/cache/debconf/*~old
-- /var/lib/apt/lists/*
-- /var/lib/apt/*~
-- /var/lib/apt/cdroms.list
-- /var/lib/aptitude/*.old
-- /var/lib/dhcp/*
-- /var/lib/dpkg/*~old
-- /var/spool/mail/*
-- /var/mail/*
-- /var/backups/*.gz
-#- /var/backups/*.bak
-- /var/lib/dbus/machine-id
-- /var/lib/live/config/*
-
-- /usr/share/icons/*/icon-theme.cache
-
-- /root/.aptitude
-- /root/.bash_history
-- /root/.disk-manager.conf
-- /root/.fstab.log
-- /root/.lesshst
-- /root/*/.log
-- /root/.local/share/*
-- /root/.nano_history
-- /root/.synaptic
-- /root/.VirtualBox
-- /root/.ICEauthority
-- /root/.Xauthority
-- /root/.links2
-
-- /root/.ssh
-- /root/[a-zA-Z0-9]*
-
-- /home/*/.Trash*
-- /home/*/.local/share/Trash/*
-- /home/*/.mozilla/*/Cache/*
-- /home/*/.mozilla/*/urlclassifier3.sqlite
-- /home/*/.mozilla/*/places.sqlite
-- /home/*/.mozilla/*/cookies.sqlite
-- /home/*/.mozilla/*/signons.sqlite
-- /home/*/.mozilla/*/formhistory.sqlite
-- /home/*/.mozilla/*/downloads.sqlite
-- /home/*/.adobe
-- /home/*/.aptitude
-- /home/*/.bash_history
-- /home/*/.cache
-- /home/*/.dbus
-- /home/*/.gksu*
-- /home/*/.gvfs
-- /home/*/.lesshst
-- /home/*/.log
-- /home/*/.macromedia
-- /home/*/.nano_history
-- /home/*/.pulse*
-- /home/*/.recently-used
-- /home/*/.recently-used.xbel
-- /home/*/.local/share/recently-used.xbel
-- /home/*/.thumbnails/large/*
-- /home/*/.thumbnails/normal/*
-- /home/*/.thumbnails/fail/*
-- /home/*/.vbox*
-- /home/*/.VirtualBox
-- /home/*/VirtualBox\ VMs
-#- /home/*/.wine
-- /home/*/.xsession-errors*
-- /home/*/.ICEauthority
-- /home/*/.Xauthority
-
-# You might want to comment these out if you're making a snapshot for
-# your own personal use, not to be shared with others.
-- /home/*/.gnupg
-- /home/*/.ssh
-- /home/*/.xchat2
-
-### ignore all non-hidden files in /home/devuan -- KatolaZ -- 2016-05-21
-
-- /home/devuan/[a-zA-Z0-9]*
-
-###
-### ignore the symlink /initrd.img -> /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
-}
DIR diff --git a/zuper b/zuper
t@@ -1 +0,0 @@
-Subproject commit a9b9d76b0d7efdf9ad6f5180ae447b3eabbc09d1