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
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
# export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin"
SDK_PREFIX=`pwd`
SDK_HOME=`pwd`
SDK_CONF=`pwd`
SDK_LIB=${SDK_LIB:-`pwd`}
R=${SDK_PREFIX:-/usr/local/devuan-sdk}
H=${SDK_HOME:-$HOME/.devuan-sdk}
E=${SDK_CONF:-/etc/devuan-sdk}
[[ "$core_packages" = "" ]] && {
# 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" = "" ]] && {
# 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"
print "export SDK_PREFIX if installed on a different path"
## libdevuansdk-specific settings
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
# conclude initialization
if [[ -r $R/zuper/zuper ]]; then
source $R/zuper/zuper
if [[ -r $SDK_LIB/zuper/zuper ]]; then
source $SDK_LIB/zuper/zuper
else source ./zuper/zuper; fi
DEBUG=${DEBUG:-0}
@ -53,29 +72,35 @@ LOG=${LOG:-""}
# path and debugging
vars+=(R H E)
vars+=(name_default)
# 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
vars+=(SDK_LIB SDK_PREFIX SDK_CONF SDK_HOME)
# 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
if [[ -r $R/zuper/zuper.init ]]; then
source $R/zuper/zuper.init
if [[ -r $SDK_LIB/zuper/zuper.init ]]; then
source $SDK_LIB/zuper/zuper.init
else source ./zuper/zuper.init; fi
# name of target by default, omits arch
name_default=${os}_${release}_${version}
# add all other binaries to the path
path+=($R/bin)
path+=($SDK_LIB/bin)
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"
# default operational paths
R=${R:-$SDK_PREFIX}
H=${H:-$SDK_HOME}
E=${E:-$SDK_CONF}

View File

@ -22,12 +22,12 @@
# along with this source code. If not, see <http://www.gnu.org/licenses/>.
grub_install_target_dev(){
grub_install_target_dev() {
fn grub_install_target_dev $@
root=$1
install_dev=$2
req=(root install_dev)
freq=($root/.done $root/dev/pts/0)
freq=($root/.done)
ckreq || return 1
# TODO: should we use qemu-chroot here for $arch = arm (parazyd?)

18
zlibs/helpers Normal file → Executable file
View File

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

View File

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

View File

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