simplified loading of library

config moved to each sdk implementation, library checks if config
variables are set. other minor fixes (missing zlibs/grub source)
This commit is contained in:
Jaromil 2016-06-13 18:12:32 +02:00
parent e3c0e5595b
commit fb9cb40d33
6 changed files with 74 additions and 64 deletions

24
config Normal file → Executable file
View File

@ -37,27 +37,3 @@ mirror="http://packages.devuan.org/merged"
# mirror repo section # mirror repo section
section="main" section="main"
# core packages for the system
core_packages=(devuan-keyring debian-keyring)
core_packages+=(initramfs-tools binutils ca-certificates curl)
core_packages+=(console-common less nano vim)
# base packages for the system
base_packages=(bzip2 dialog apt-utils fakeroot e2fsprogs parted)
# other system packages
system_packages=(sysvinit ssh)
# size of raw image file in MB
imgsize=1337
## libdevuansdk-specific settings
workdir="$H/workdir"
strapdir="${workdir}/${os}-${release}-${version}"
outdir="$H/builds"
# declare zuper globals
vars+=(os release version mirror section)
vars+=(workdir strapdir)
vars+=(imgsize)

View File

@ -26,25 +26,44 @@ devuan_sdk_version=0.1
setopt pushdsilent setopt pushdsilent
# export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin" # export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
SDK_PREFIX=`pwd` SDK_LIB=${SDK_LIB:-`pwd`}
SDK_HOME=`pwd`
SDK_CONF=`pwd`
R=${SDK_PREFIX:-/usr/local/devuan-sdk} [[ "$core_packages" = "" ]] && {
H=${SDK_HOME:-$HOME/.devuan-sdk} # core packages for the system
E=${SDK_CONF:-/etc/devuan-sdk} 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
base_packages=(bzip2 dialog apt-utils fakeroot e2fsprogs parted)
}
[[ "$system_packages" = "" ]] && {
# other system packages
system_packages=(sysvinit ssh)
}
# default size for an img
imgsize=${imgsize:-1337}
[[ -r $R ]] || {
print "Devuan SDK is not installed in: $R" ## libdevuansdk-specific settings
print "export SDK_PREFIX if installed on a different path" workdir="$H/workdir"
strapdir="${workdir}/${os}-${release}-${version}"
outdir="$H/builds"
[[ -r $SDK_LIB/libdevuansdk ]] || {
print "Devuan SDK is not installed in: $SDK_LIB"
print "export SDK_LIB if installed on a different path"
} }
######################## ########################
## Load Zuper extensions ## Load Zuper extensions
# conclude initialization # conclude initialization
if [[ -r $R/zuper/zuper ]]; then if [[ -r $SDK_LIB/zuper/zuper ]]; then
source $R/zuper/zuper source $SDK_LIB/zuper/zuper
else source ./zuper/zuper; fi else source ./zuper/zuper; fi
DEBUG=${DEBUG:-0} DEBUG=${DEBUG:-0}
@ -53,29 +72,35 @@ LOG=${LOG:-""}
# path and debugging # path and debugging
vars+=(R H E) vars+=(R H E)
vars+=(name_default) vars+=(SDK_LIB SDK_PREFIX SDK_CONF SDK_HOME)
# source $R/zlibs/library
source $E/config
source $R/zlibs/bootstrap
source $R/zlibs/helpers
# source $R/zlibs/imaging
source $R/zlibs/isolinux
source $R/zlibs/kernel
source $R/zlibs/qemu
source $R/zlibs/sysconf
# config globals
vars+=(os release version mirror section)
vars+=(workdir strapdir)
vars+=(imgsize)
# 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
# name of target by default, omits arch
vars+=(name_default)
name_default=${os}_${release}_${version}
# conclude initialization # conclude initialization
if [[ -r $R/zuper/zuper.init ]]; then if [[ -r $SDK_LIB/zuper/zuper.init ]]; then
source $R/zuper/zuper.init source $SDK_LIB/zuper/zuper.init
else source ./zuper/zuper.init; fi else source ./zuper/zuper.init; fi
# name of target by default, omits arch
name_default=${os}_${release}_${version}
# add all other binaries to the path # add all other binaries to the path
path+=($R/bin) path+=($SDK_LIB/bin)
rehash rehash
@ -89,4 +114,13 @@ notice "Loading Devuan SDK library v$devuan_sdk_version"
# ... # ...
req=(os release version mirror section)
ckreq || { error "configuration is missing"; zshexit; return 1 }
act "library succesfully loaded" act "library succesfully loaded"
# default operational paths
R=${R:-$SDK_PREFIX}
H=${H:-$SDK_HOME}
E=${E:-$SDK_CONF}

View File

@ -27,7 +27,7 @@ grub_install_target_dev(){
root=$1 root=$1
install_dev=$2 install_dev=$2
req=(root install_dev) req=(root install_dev)
freq=($root/.done $root/dev/pts/0) freq=($root/.done)
ckreq || return 1 ckreq || return 1
# TODO: should we use qemu-chroot here for $arch = arm (parazyd?) # TODO: should we use qemu-chroot here for $arch = arm (parazyd?)

16
zlibs/helpers Normal file → Executable file
View File

@ -73,10 +73,10 @@ mountdevprocsys() {
req=(mntdir) req=(mntdir)
ckreq || return 1 ckreq || return 1
sudo mount -o bind /sys ${mntdir}/sys && act "mounted /sys" sudo mount -o bind /sys ${mntdir}/sys && act "mounted /sys in $mntdir"
sudo mount -t proc proc ${mntdir}/proc && act "mounted /proc" sudo mount -t proc proc ${mntdir}/proc && act "mounted /proc in $mntdir"
sudo mount -o bind /dev ${mntdir}/dev && act "mounted /dev" 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" sudo mount -o bind /dev/pts ${mntdir}/dev/pts && act "mounted /dev/pts $mntdir"
} }
umountdevprocsys() { umountdevprocsys() {
@ -85,10 +85,10 @@ umountdevprocsys() {
req=(mntdir) req=(mntdir)
ckreq || return 1 ckreq || return 1
sudo umount ${mntdir}/dev/pts && act "unmounted /dev/pts" && sleep 2 sudo umount ${mntdir}/dev/pts && act "unmounted /dev/pts in $mntdir" && sleep 2
sudo umount ${mntdir}/dev && act "unmounted /dev" && sleep 2 sudo umount ${mntdir}/dev && act "unmounted /dev in $mntdir" && sleep 2
sudo umount ${mntdir}/proc && act "unmounted /proc" && sleep 2 sudo umount ${mntdir}/proc && act "unmounted /proc in $mntdir" && sleep 2
sudo umount ${mntdir}/sys && act "unmounted /sys" && sleep 2 sudo umount ${mntdir}/sys && act "unmounted /sys in $mntdir" && sleep 2
} }
aptautostart() { aptautostart() {

View File

@ -136,7 +136,7 @@ isolinux_mkusr() {
mkdir -p $usrdir mkdir -p $usrdir
rsync -av $strapdir/ $usrdir --exclude-from=$ztmpfile rsync -raX $strapdir/ $usrdir --exclude-from=$ztmpfile
mkdir -p $isodir/live mkdir -p $isodir/live
mksquashfs $usrdir/ $isodir/live/filesystem.squashfs -noappend mksquashfs $usrdir/ $isodir/live/filesystem.squashfs -noappend

View File

@ -26,7 +26,7 @@ qemu_make_img(){
fn qemu_make_img $@ fn qemu_make_img $@
local imgfile=${1:-"$H/builds/${name_default}_${arch}.img"} local imgfile=${1:-"$H/builds/${name_default}_${arch}.img"}
local imgsize=${2:-4G} local imgsize=${2:-2G}
local imgformat=${3:-raw} local imgformat=${3:-raw}
req=(strapdir os release version arch imgfile imgsize) req=(strapdir os release version arch imgfile imgsize)
root=$strapdir root=$strapdir