From 32c372909ae7d85b04d14e0a3b35faa06108e2f8 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 18 Mar 2017 21:30:58 +0100 Subject: [PATCH] limit code to 80ch width --- config | 7 +++++-- zlibs/bootstrap | 24 +++++++++++------------- zlibs/helpers | 20 ++++++++++++-------- zlibs/imaging | 24 +++++++++++++++++------- zlibs/iso | 9 ++++----- zlibs/rsync | 15 ++++++--------- zlibs/sysconf | 2 +- zlibs/vm | 47 +++++++++++++++++++++++++++++------------------ 8 files changed, 85 insertions(+), 63 deletions(-) diff --git a/config b/config index d48a1ac..16ea90e 100644 --- a/config +++ b/config @@ -21,8 +21,10 @@ vars+=(release version mirror section blend_name image_name vm_name) vars+=(arch earch) + arrs+=(core_packages base_packages purge_packages blend_packages) + os="devuan" release="jessie" version="1.0.0-beta2" @@ -30,13 +32,14 @@ mirror="http://auto.mirror.devuan.org/merged" section="main" image_name="${os}_${release}_${version}_${arch}" -[[ -n $blend_name ]] && image_name="${image_name}_${blend_name}" -[[ -n $device_name ]] && image_name="${image_name}_${device_name}" +[[ -n "$blend_name" ]] && image_name="${image_name}_${blend_name}" +[[ -n "$device_name" ]] && image_name="${image_name}_${device_name}" vm_name="${os}_${release}_${version}_${arch}_vagrant" [[ -n $blend_name ]] && vm_name="${image_name}_${blend_name}" rootcredentials="root:toor" +usercredentials="devuan:devuan" core_packages=( devuan-keyring diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 7eb0d5b..ff294eb 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -55,13 +55,13 @@ bootstrap_complete_base() { ## write all system configuration notice "writing system configuration" - conf_print_debconf | sudo tee $strapdir/debconf.set >/dev/null - conf_print_fstab | sudo tee $strapdir/etc/fstab >/dev/null - conf_print_hostname | sudo tee $strapdir/etc/hostname >/dev/null - conf_print_hosts | sudo tee $strapdir/etc/hosts >/dev/null - conf_print_netifaces | sudo tee $strapdir/etc/network/interfaces >/dev/null - conf_print_resolvconf | sudo tee $strapdir/etc/resolv.conf >/dev/null - conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/dev/null + conf_print_debconf | sudo tee $strapdir/debconf.set >/dev/null + conf_print_fstab | sudo tee $strapdir/etc/fstab >/dev/null + conf_print_hostname | sudo tee $strapdir/etc/hostname >/dev/null + conf_print_hosts | sudo tee $strapdir/etc/hosts >/dev/null + conf_print_netifaces | sudo tee $strapdir/etc/network/interfaces >/dev/null + conf_print_resolvconf | sudo tee $strapdir/etc/resolv.conf >/dev/null + conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/dev/null conf_print_locales | sudo tee $strapdir/etc/profile.d/locales.sh >/dev/null ## write third-stage for chroot @@ -71,12 +71,9 @@ bootstrap_complete_base() { ## debootstrap stage 3 notice "running debootstrap stage 3" - devprocsys mount $strapdir || zerr chroot-script -d thirdstage || zerr - sleep 1 - devprocsys umount $strapdir || zerr bootstrap_tar_pack || zerr bootstrap_tar_unpack $strapdir || zerr @@ -160,12 +157,13 @@ apt-get --yes --force-yes autoremove apt-get clean EOF - devprocsys mount $strapdir chroot-script -d postunpack || zerr - devprocsys umount $strapdir ## below typically used in arm-sdk - [[ -n "$inittab" ]] && { print $inittab | sudo tee -a $strapdir/etc/inittab >/dev/null } + [[ -n "$inittab" ]] && { + print $inittab | sudo tee -a $strapdir/etc/inittab >/dev/null + } + for i in $custmodules; do print $i | sudo tee -a $strapdir/etc/modules >/dev/null done || return 0 diff --git a/zlibs/helpers b/zlibs/helpers index 602d425..4815a1b 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -33,8 +33,6 @@ build_image_dist() { notice "building complete dist image" act "$image_name" - ## TODO: add blend_prebuild; blend_midbuild; blend_postbuild - bootstrap_complete_base || zerr blend_preinst || zerr image_prepare_raw || zerr @@ -51,7 +49,6 @@ build_iso_dist() { ckreq || return 1 notice "building complete iso image" - ## XXX: TODO: upstream existing heads code bootstrap_complete_base || zerr blend_preinst || zerr @@ -86,7 +83,10 @@ build_vagrant_dist() { getfield() { fn getfield $* - print "$1" | grep "^$2=" | sed -e 's:.*=\(.*\)$:\1:g' | sed -e 's:^"\(.*\)"$:\1:g' + print "$1" | \ + grep "^$2=" | \ + sed -e 's:.*=\(.*\)$:\1:g' | \ + sed -e 's:^"\(.*\)"$:\1:g' } add-user() { @@ -137,7 +137,9 @@ findloopmapp() { notice "finding a free loopdevice" loopdevice=$(sudo losetup -f --show $workdir/${image_name}.img) - mappdevice=$(sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | sed 1q) + mappdevice=$(sudo kpartx -va $loopdevice | \ + sed -E 's/.*(loop[0-9])p.*/\1/g' | sed 1q) + func "loopdevice: $loopdevice" func "mappdevice: $mappdevice" @@ -252,11 +254,13 @@ chroot-script() { case "x$1" in x-d) local script="$2" - dpkgdivert on "$strapdir" + devprocsys mount "$strapdir" || zerr + dpkgdivert on "$strapdir" || zerr notice "chrooting to execute $script..." - sudo chmod +x "$strapdir/$script" || zerr + sudo chmod +x "$strapdir/$script" || zerr sudo -E chroot "$strapdir" "/$script" || zerr - dpkgdivert off "$strapdir" + dpkgdivert off "$strapdir" || zerr + devprocsys umount "$strapdir" || zerr ;; *) local script="$1" diff --git a/zlibs/imaging b/zlibs/imaging index b5e9047..03e7af9 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -73,7 +73,8 @@ image_partition_raw_gpt() { -l kernel -S 1 -T 5 -P 10 $workdir/${image_name}.img cgpt add -i 2 -t data -b ${gpt_root[1]} \ - -s $(expr $(cgpt show $workdir/${image_name}.img | awk '/Sec GPT table/ {print $1}') - ${gpt_root[1]}) \ + -s $(expr $(cgpt show $workdir/${image_name}.img | \ + awk '/Sec GPT table/ {print $1}') - ${gpt_root[1]}) \ -l Root $workdir/${image_name}.img findloopmapp @@ -104,8 +105,14 @@ image_pack_dist() { sleep 1 } - sudo kpartx -dv $loopdevice || { die "kpartx failed to remove $loopdevice"; zerr } - sudo losetup -d $loopdevice || { die "losetup failed to remove $loopdevice"; zerr } + sudo kpartx -dv $loopdevice || { + die "kpartx failed to remove $loopdevice" + zerr + } + sudo losetup -d $loopdevice || { + die "losetup failed to remove $loopdevice" + zerr + } notice "compressing image with xz" silly @@ -133,9 +140,12 @@ image_raw_mount() { ckreq || return 1 mkdir -p $workdir/mnt - sudo mount $rootpart $workdir/mnt && act "mounted root partition" || zerr + sudo mount $rootpart $workdir/mnt && \ + act "mounted root partition" || zerr + sudo mkdir $workdir/mnt/boot - sudo mount $bootpart $workdir/mnt/boot && act "mounted boot partition" || zerr + sudo mount $bootpart $workdir/mnt/boot && \ + act "mounted boot partition" || zerr } image_raw_umount() { @@ -167,7 +177,7 @@ image_raw_as_strapdir() { notice "mounting raw image to strapdir" sudo mount ${loopdevice}p1 $strapdir - echo 1 | sudo tee ${strapdir}/.keep >/dev/null ## hack? XXX: bootstrap_tar_unpack couldn't see it + echo 1 | sudo tee ${strapdir}/.keep >/dev/null popd } @@ -193,6 +203,6 @@ image_qcow2_as_strapdir() { notice "mounting qcow2 image to strapdir" sudo mount ${loopdevice}p1 $strapdir || zerr - echo 1 | sudo tee ${strapdir}/.keep >/dev/null ## hack? XXX: bootstrap_tar_unpack couldn't see it + echo 1 | sudo tee ${strapdir}/.keep >/dev/null popd } diff --git a/zlibs/iso b/zlibs/iso index 7e7a2ef..92f4601 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -36,9 +36,7 @@ apt-get --yes --force-yes autoremove apt-get clean EOF - devprocsys mount $strapdir || zerr chroot-script -d isoprep || zerr - devprocsys umount $strapdir || zerr } iso_setup_isolinux() { @@ -55,9 +53,9 @@ iso_setup_isolinux() { sudo cp $strapdir/boot/initrd* binary/live/initrd sudo cp /usr/share/live/build/bootloaders/isolinux/isolinux.bin \ - binary/isolinux + binary/isolinux || zerr sudo cp /usr/share/live/build/bootloaders/isolinux/*.c32 \ - binary/isolinux + binary/isolinux || zerr popd } @@ -91,7 +89,8 @@ iso_squash_strap() { notice "creating squashfs out of strapdir" pushd $workdir - sudo mksquashfs $strapdir binary/live/filesystem.squashfs -comp xz -e boot || zerr + sudo mksquashfs $strapdir binary/live/filesystem.squashfs \ + -comp xz -e boot || zerr popd } diff --git a/zlibs/rsync b/zlibs/rsync index 12f4c5e..23d1660 100644 --- a/zlibs/rsync +++ b/zlibs/rsync @@ -26,17 +26,14 @@ rsync_to_raw_image() { notice "rsyncing strapdir to raw image..." image_raw_mount - sleep 1 + silly sleep 1 - silly pushd $strapdir - #sudo rm -f .done - - sudo rsync -HPavz -q ./* $workdir/mnt || { - image_raw_umount - die "not enough space, please report a bug" - zerr - } + sudo rsync -HPavz -q ./* $workdir/mnt || { + image_raw_umount + die "not enough space, please report a bug" + zerr + } popd image_raw_umount diff --git a/zlibs/sysconf b/zlibs/sysconf index f88b116..df8d551 100644 --- a/zlibs/sysconf +++ b/zlibs/sysconf @@ -76,7 +76,7 @@ conf_print_netifaces() { # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: -source-directory /etc/network/interfaces.d +# source-directory /etc/network/interfaces.d auto lo iface lo inet loopback diff --git a/zlibs/vm b/zlibs/vm index 39c00e4..606c195 100644 --- a/zlibs/vm +++ b/zlibs/vm @@ -27,7 +27,7 @@ vm_inject_overrides() { ckreq || return 1 notice "injecting rootfs overrides" - cat </dev/null + cat </dev/null #!/bin/sh # rc.local for base images @@ -39,7 +39,8 @@ EOF print "rootfs / rootfs rw 0 0" | sudo tee ${strapdir}/etc/fstab >/dev/null - sudo sed -i -e 's/without-password/yes/' ${strapdir}/etc/ssh/sshd_config || zerr + sudo sed -i ${strapdir}/etc/ssh/sshd_config \ + -e 's/without-password/yes/' || zerr } vm_setup_grub() { @@ -54,13 +55,12 @@ export DEBIAN_FRONTEND=noninteractive apt-get --yes --force-yes install linux-image-amd64 grub-pc sed -e 's:GRUB_TIMEOUT=5:GRUB_TIMEOUT=1:' -i /etc/default/grub update-grub -grub-install --no-floppy --recheck --modules="biosdisk part_msdos" ${loopdevice} +grub-install --no-floppy --recheck --modules="biosdisk part_msdos" \ + ${loopdevice} sed -e 's:${loopdevice}p1:/dev/sda1:g' -i /boot/grub/grub.cfg sync; sync; sync EOF - devprocsys mount $strapdir || zerr chroot-script -d setupgrub || zerr - devprocsys umount $strapdir || zerr } vm_umount_${imageformat}() { @@ -70,10 +70,11 @@ vm_umount_${imageformat}() { notice "remounting ${imageformat} image" sudo mount -o remount,ro $strapdir || zerr - sync + notice "flushing bytes and buffers" sudo blockdev --flushbufs $loopdevice || zerr - sudo python -c 'import os; os.fsync(open("'${loopdevice}'", "r+b"))' || zerr + sudo python -c 'import os;os.fsync(open("'${loopdevice}'", "r+b"))' || zerr + notice "unmounting ${imageformat} image from strapdir" sudo umount $strapdir || zerr silly sleep 1 @@ -101,22 +102,27 @@ vm_vbox_setup() { notice "converting ${imageformat} image to vdi" pushd $workdir - qemu-img convert -f ${imageformat} -O vdi base.${imageformat} base.vdi || zerr - #sudo chown $USER base.vdi || zerr + qemu-img convert \ + -f ${imageformat} \ + -O vdi \ + base.${imageformat} \ + base.vdi || zerr VBoxManage modifyhd base.vdi --type immutable --compact || zerr - #act "removing old raw image" - #rm -f base.raw vmname="${os}-${release}-prevagrant" notice "importing base.vdi to a VBox" act "creating vm" VBoxManage createvm --name "$vmname" --ostype Debian_64 --register || zerr + act "setting up ram and group" VBoxManage modifyvm "$vmname" --memory 256 --groups /vmsdk || zerr + act "setting up storage" VBoxManage storagectl "$vmname" --name "IDE Controller" --add ide || zerr + act "attaching storage" - VBoxManage storageattach "$vmname" --storagectl "IDE Controller" --port 0 --device 0 --type hdd --medium base.vdi || zerr + VBoxManage storageattach "$vmname" --storagectl "IDE Controller" --port 0 \ + --device 0 --type hdd --medium base.vdi || zerr vminfo="$(VBoxManage showvminfo "$vmname" --machinereadable)" diskuuid="$(getfield "$vminfo" '"IDE Controller-ImageUUID-0-0"')" @@ -155,7 +161,8 @@ EOF } EOF notice "actually packaging..." - vagrant package --base "$vmname" --output ${vm_name}.box --include metadata.json --vagrantfile Vagrantfile || zerr + vagrant package --base "$vmname" --output ${vm_name}.box \ + --include metadata.json --vagrantfile Vagrantfile || zerr popd } @@ -168,15 +175,19 @@ vm_pack_dist() { mkdir -p $R/dist mv $workdir/${vm_name}.box $R/dist mv $workdir/base.${imageformat} $R/dist/${vm_name}.${imageformat} + act "calculating sha256 sums..." silly - sha256sum $R/dist/${vm_name}.box > $R/dist/${vm_name}.box.sha - sha256sum $R/dist/${vm_name}.${imageformat} > $R/dist/${vm_name}.${imageformat}.sha + sha256sum $R/dist/${vm_name}.box > \ + $R/dist/${vm_name}.box.sha + sha256sum $R/dist/${vm_name}.${imageformat} > \ + $R/dist/${vm_name}.${imageformat}.sha + notice "cleaning up virtualbox leftovers" pushd "$workdir" - VBoxManage unregistervm "$vmname" --delete - rm -f metadata.json Vagrantfile - rm -rf .vagrant + VBoxManage unregistervm "$vmname" --delete + rm -f metadata.json Vagrantfile + rm -rf .vagrant popd rm -rf "$workdir" rm -rf "$HOME/VirtualBox VMs/vmsdk"