From c9b130edb115b048c5cd4b774ee7223db413c562 Mon Sep 17 00:00:00 2001 From: parazyd Date: Wed, 22 Feb 2017 14:55:26 +0100 Subject: [PATCH 01/20] no haveged by default --- config | 1 - zlibs/iso | 5 +++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config b/config index c57d377..60f2421 100644 --- a/config +++ b/config @@ -71,7 +71,6 @@ base_packages=( zsh rsync git-core - haveged ) purge_packages+=( diff --git a/zlibs/iso b/zlibs/iso index 156e604..2740331 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -89,7 +89,7 @@ iso_squash_strap() { notice "creating squashfs out of strapdir" pushd $workdir - sudo mksquashfs $strapdir binary/live/filesystem.squashfs -comp xz -e boot + sudo mksquashfs $strapdir binary/live/filesystem.squashfs -comp xz -e boot || zerr popd } @@ -101,6 +101,7 @@ iso_xorriso_build() { notice "building iso..." isoname="${image_name}-live.iso" + mkdir -p $R/dist pushd $workdir sudo xorriso -as mkisofs -r -J -joliet-long -l \ -isohybrid-mbr /usr/lib/ISOLINUX/isohdpfx.bin \ @@ -112,7 +113,7 @@ iso_xorriso_build() { -boot-load-size 4 \ -boot-info-table \ -o $R/dist/$isoname \ - binary + binary || zerr popd } From 9102ee317b22a8c6d2ce289851109a6fdb35ca72 Mon Sep 17 00:00:00 2001 From: parazyd Date: Thu, 23 Feb 2017 15:06:28 +0100 Subject: [PATCH 02/20] add add-user() helper function --- zlibs/helpers | 17 +++++++++++++++++ zlibs/iso | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/zlibs/helpers b/zlibs/helpers index f5f3bf8..3447478 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -89,6 +89,23 @@ getfield() { print "$1" | grep "^$2=" | sed -e 's:.*=\(.*\)$:\1:g' | sed -e 's:^"\(.*\)"$:\1:g' } +add-user() { + fn add-user $* + local user="$1" + local pass="$2" + req=(strapdir user pass) + ckreq || return 1 + + notice "adding user $user:$pass" + + cat < Date: Fri, 24 Feb 2017 01:38:32 +0100 Subject: [PATCH 03/20] arch and earch as globals --- config | 1 + 1 file changed, 1 insertion(+) diff --git a/config b/config index 60f2421..d48a1ac 100644 --- a/config +++ b/config @@ -20,6 +20,7 @@ ## libdevuansdk configuration 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" From fcf2439ffed2709176202a8c9c4d4a165a9f2a9a Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 24 Feb 2017 12:54:12 +0100 Subject: [PATCH 04/20] add live-boot-initramfs-tools as a iso dep --- zlibs/iso | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/iso b/zlibs/iso index 8bba11b..fa74b2a 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -31,7 +31,7 @@ iso_prepare_strap() { cat </dev/null #!/bin/sh apt-get update -apt-get --yes --force-yes install dialog live-boot +apt-get --yes --force-yes install dialog live-boot live-boot-initramfs-tools apt-get --yes --force-yes autoremove apt-get clean EOF From 49560178fde7901f4857f916da639ae14cce9355 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 25 Feb 2017 14:01:03 +0100 Subject: [PATCH 05/20] sleep less --- zlibs/helpers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/helpers b/zlibs/helpers index 3447478..602d425 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -141,7 +141,7 @@ findloopmapp() { func "loopdevice: $loopdevice" func "mappdevice: $mappdevice" - silly sleep 4 + silly sleep 2 } findfreenbd() { From 6e29a8a299236f468ebb73602fa98b0f66177e92 Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 10 Mar 2017 03:04:50 +0100 Subject: [PATCH 06/20] create strapdir/tmp with good permissions --- zlibs/bootstrap | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index eccf236..7eb0d5b 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -45,6 +45,9 @@ bootstrap_complete_base() { [[ $arch =~ "^arm.." ]] && { qemu_install_user || zerr } + sudo mkdir -p $strapdir/tmp + sudo chmod 1777 $strapdir/tmp + ## debootstrap stage 2 notice "running debootstrap stage 2" sudo -E chroot $strapdir \ From 1aaa06c09f676f267f42a92e209d11166ecc78c6 Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 10 Mar 2017 04:15:54 +0100 Subject: [PATCH 07/20] mount devprocsys on iso_prep_strap --- zlibs/iso | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zlibs/iso b/zlibs/iso index fa74b2a..7e7a2ef 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -36,7 +36,9 @@ apt-get --yes --force-yes autoremove apt-get clean EOF - chroot-script -d isoprep || zerr + devprocsys mount $strapdir || zerr + chroot-script -d isoprep || zerr + devprocsys umount $strapdir || zerr } iso_setup_isolinux() { From d21f365060737ea042d98668600a72baf7c73372 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 18 Mar 2017 21:25:01 +0100 Subject: [PATCH 08/20] refactor kernel installation --- zlibs/kernel | 44 +++++++++++--------------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/zlibs/kernel b/zlibs/kernel index a053aab..fc68942 100644 --- a/zlibs/kernel +++ b/zlibs/kernel @@ -19,44 +19,22 @@ ## all windows users are suckers -build_kernel_amd64() { - fn build_kernel_amd64 +build_kernel_${arch} { + fn build_kernel_${arch} req=(strapdir arch) - #freq=($strapdir/.keep) ckreq || return 1 local kernel_base="linux-image" - local kernel="${kernel_base}-amd64" + case "$arch" in + amd64) local kernel="${kernel_base}-amd64";; + i386) local kernel="${kernel_base}-586";; + esac notice "installing stock kernel for $arch" - dpkgdivert on $strapdir - devprocsys mount $strapdir - - sudo -E chroot $strapdir \ - apt-get --yes --force-yes install $kernel - - devprocsys umount $strapdir - dpkgdivert off $strapdir -} - -build_kernel_i386() { - fn build_kernel_i386 - req=(strapdir arch) - #freq=($strapdir/.keep) - ckreq || return 1 - - local kernel_base="linux-image" - local kernel="${kernel_base}-586" - - notice "installing stock kernel for $arch" - - dpkgdivert on $strapdir - devprocsys mount $strapdir - - sudo -E chroot $strapdir \ - apt-get --yes --force-yes install $kernel - - devprocsys umount $strapdir - dpkgdivert off $strapdir + cat < Date: Sat, 18 Mar 2017 21:30:58 +0100 Subject: [PATCH 09/20] 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" From 4ac417a4a9137e851c8e8790e2fa7cf2aecf2807 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 19 Mar 2017 15:22:29 +0100 Subject: [PATCH 10/20] fixup! refactor kernel installation --- zlibs/kernel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/kernel b/zlibs/kernel index fc68942..380f243 100644 --- a/zlibs/kernel +++ b/zlibs/kernel @@ -19,7 +19,7 @@ ## all windows users are suckers -build_kernel_${arch} { +build_kernel_${arch}() { fn build_kernel_${arch} req=(strapdir arch) ckreq || return 1 From b7da12b9b4bdffd9d78dfe8281302d3f8d9dbfe1 Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 24 Mar 2017 09:44:48 +0100 Subject: [PATCH 11/20] bump beta2 to RC --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 16ea90e..27be55b 100644 --- a/config +++ b/config @@ -27,7 +27,7 @@ arrs+=(core_packages base_packages purge_packages blend_packages) os="devuan" release="jessie" -version="1.0.0-beta2" +version="1.0.0-RC" mirror="http://auto.mirror.devuan.org/merged" section="main" From 5d8332af77acdb5acb2db7a9f8da0c402f6f8457 Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 24 Mar 2017 14:05:12 +0100 Subject: [PATCH 12/20] use an array for custdebs --- config | 1 + zlibs/helpers | 6 ++++-- zlibs/iso | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/config b/config index 27be55b..a6c722c 100644 --- a/config +++ b/config @@ -21,6 +21,7 @@ vars+=(release version mirror section blend_name image_name vm_name) vars+=(arch earch) +vars+=(usercredentials rootcredentials) arrs+=(core_packages base_packages purge_packages blend_packages) diff --git a/zlibs/helpers b/zlibs/helpers index 4815a1b..aa614b6 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -229,7 +229,7 @@ EOF install-custdebs() { fn install-custdebs - req=(R strapdir) + req=(R strapdir custom_deb_packages) ckreq || return 1 sudo mkdir -p $strapdir/debs @@ -237,10 +237,12 @@ install-custdebs() { cat </dev/null #!/bin/sh -for deb in /debs/*.deb; do +cd /debs +for deb in ${custom_deb_packages}; do dpkg -i \$deb apt-get --yes --force-yes -f install done +cd / apt-get autoremove apt-get clean rm -rf /debs diff --git a/zlibs/iso b/zlibs/iso index 92f4601..2cd3bdb 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -90,7 +90,7 @@ iso_squash_strap() { pushd $workdir sudo mksquashfs $strapdir binary/live/filesystem.squashfs \ - -comp xz -e boot || zerr + -noappend -comp xz || zerr popd } From fea3aa058a12c3f07928ee1ef62769c0c0e15cb0 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 27 Mar 2017 13:57:59 +0200 Subject: [PATCH 13/20] implement installation of fake packages --- zlibs/helpers | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/zlibs/helpers b/zlibs/helpers index aa614b6..5a40745 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -252,6 +252,8 @@ EOF chroot-script() { fn chroot-script "$@" + req=(strapdir) + ckreq || return 1 case "x$1" in x-d) @@ -275,6 +277,43 @@ chroot-script() { sudo rm -f $strapdir/$script } +install_fake_package() { + fn install_fake_package "$@" + req=(strapdir pkgname pkgver section) + local pkgname="$1" + local pkgver="$2" + local section="$3" + ckreq || return 1 + + local _tmp="$strapdir/tmp" + sudo mkdir -p "$_tmp/$pkgname" + + cat </dev/null +Section: ${section} +Priority: optional +Homepage: https://devuan.org/ +Standards-Version: 3.9.6 + +Package: ${pkgname} +Version: ${pkgver} +Maintainer: Devuan developers +Architecture: all +Description: (Fake) ${pkgname} + Dummy package used to meet some dependencies without installing the + real ${pkgname} package. +EOF + + cat </dev/null +#!/bin/sh +cd /tmp/${pkgname} +equivs-build ${pkgname}_${pkgver}.control \ + && dpkg -i ${pkgname}_${pkgver}_all.deb || exit 1 +cd /tmp +rm -rf ${pkgname} +EOF + chroot-script install-fake-package || zerr +} + blend_preinst() { fn blend_preinst func "not overriden" From 1756fde7ded1f5fda373f28c9e3937961246ec45 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 1 Apr 2017 22:26:52 +0200 Subject: [PATCH 14/20] facilitate logging on chroot-script calls --- zlibs/helpers | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/zlibs/helpers b/zlibs/helpers index 5a40745..fe81321 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -255,22 +255,35 @@ chroot-script() { req=(strapdir) ckreq || return 1 + mkdir -p "$R/log" case "x$1" in x-d) local script="$2" devprocsys mount "$strapdir" || zerr dpkgdivert on "$strapdir" || zerr + + ## logging + sudo sed -i "$strapdir/$script" \ + -e 's@#!/bin/sh@#!/bin/sh\'$'\nset -x ; exec 2>/'$script'.log@' notice "chrooting to execute $script..." sudo chmod +x "$strapdir/$script" || zerr sudo -E chroot "$strapdir" "/$script" || zerr + sudo mv -f "$strapdir/${script}.log" "$R/log/" + dpkgdivert off "$strapdir" || zerr devprocsys umount "$strapdir" || zerr ;; *) local script="$1" + + ## logging + sudo sed -i "$strapdir/$script" \ + -e 's@#!/bin/sh@#!/bin/sh\'$'\nset -x ; exec 2>/'$script'.log@' + notice "chrooting to execute $script..." sudo chmod +x "$strapdir/$script" || zerr sudo -E chroot "$strapdir" "/$script" || zerr + sudo mv -f "$strapdir/${script}.log" "$R/log/" ;; esac From 44bd8e5b1b31a86c630124533c07540b1a5d3b95 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 10 Apr 2017 12:19:40 +0200 Subject: [PATCH 15/20] add mlocate as a default --- config | 1 + 1 file changed, 1 insertion(+) diff --git a/config b/config index a6c722c..3f2ede6 100644 --- a/config +++ b/config @@ -76,6 +76,7 @@ base_packages=( zsh rsync git-core + mlocate ) purge_packages+=( From 3c25285d5c4b6c0f41cdce52aff9f65fdb9739dc Mon Sep 17 00:00:00 2001 From: parazyd Date: Wed, 12 Apr 2017 16:59:13 +0200 Subject: [PATCH 16/20] support pixz for compressing images faster --- zlibs/imaging | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/zlibs/imaging b/zlibs/imaging index 03e7af9..2b8e6a3 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -114,10 +114,12 @@ image_pack_dist() { zerr } - notice "compressing image with xz" + _xz=xz + [[ $(command -v pixz) ]] && _xz=pixz + notice "compressing image with $_xz" silly pushd $workdir - xz -zv ${image_name}.img + $_xz -zv ${image_name}.img notice "generating sha256 for ${image_name}.img.xz" sha256sum ${image_name}.img.xz > ${image_name}.img.xz.sha From 5b791c9ef02f23fe168febe8ce794e0d70038a59 Mon Sep 17 00:00:00 2001 From: parazyd Date: Wed, 12 Apr 2017 17:14:17 +0200 Subject: [PATCH 17/20] fixup! support pixz for compressing images faster --- zlibs/imaging | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zlibs/imaging b/zlibs/imaging index 2b8e6a3..04dc3e0 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -114,12 +114,12 @@ image_pack_dist() { zerr } - _xz=xz + _xz="xz -zv" [[ $(command -v pixz) ]] && _xz=pixz notice "compressing image with $_xz" silly pushd $workdir - $_xz -zv ${image_name}.img + ${=_xz} ${image_name}.img notice "generating sha256 for ${image_name}.img.xz" sha256sum ${image_name}.img.xz > ${image_name}.img.xz.sha From 063f90079171669f8e59ebf4013d70a75db49962 Mon Sep 17 00:00:00 2001 From: parazyd Date: Wed, 12 Apr 2017 18:25:34 +0200 Subject: [PATCH 18/20] fix gpt imaging --- zlibs/imaging | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/zlibs/imaging b/zlibs/imaging index 04dc3e0..b508915 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -145,9 +145,11 @@ image_raw_mount() { 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 + [[ "$parted_type" == gpt ]] || { + sudo mkdir $workdir/mnt/boot + sudo mount $bootpart $workdir/mnt/boot && \ + act "mounted boot partition" || zerr + } } image_raw_umount() { @@ -155,8 +157,10 @@ image_raw_umount() { req=(workdir bootpart rootpart) ckreq || return 1 - sudo umount $workdir/mnt/boot && act "unmounted boot partition" || zerr - sleep 1 + [[ "$parted_type" == gpt ]] || { + sudo umount $workdir/mnt/boot && act "unmounted boot partition" || zerr + sleep 1 + } sudo umount $workdir/mnt && act "unmounted root partition" || zerr } From ed9ac4338b9c4e7327954e71a9da4855224e4f1a Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 15 Apr 2017 17:29:36 +0200 Subject: [PATCH 19/20] safety check for unavailable packages when installing $extra_packages --- zlibs/bootstrap | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index ff294eb..a2ef358 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -151,6 +151,19 @@ bootstrap_tar_unpack() { cat </dev/null #!/bin/sh apt-get update + +## check if all our extra_packages exist +allpkgs="\$(apt-cache search '.' | cut -d' ' -f1)" +for i in ${extra_packages} ; do + printf "%s" "\$allpkgs" | grep -q "^\$i$" || missing="\$missing \$i" +done + +[ -n "\$missing" ] && { + printf "\033[1;31m[!!] some extra packages don't exist\033[0m\n" + printf "%s\n" "\$missing" + exit 1 +} + apt-get --yes --force-yes upgrade apt-get --yes --force-yes install ${extra_packages} apt-get --yes --force-yes autoremove From 93f015a4a00ed1c42f939f44ded6f84bab7a6246 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 15 Apr 2017 17:36:12 +0200 Subject: [PATCH 20/20] bump version number --- libdevuansdk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libdevuansdk b/libdevuansdk index 1851096..40eb799 100644 --- a/libdevuansdk +++ b/libdevuansdk @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this source code. If not, see . -libdevuansdk_version="0.4" +libdevuansdk_version="0.5" LIBPATH=${LIBPATH:-$(dirname $0)} source $LIBPATH/config