From f60d93b28b048f7c0ca77174beeed83f22d725ef Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 1 Apr 2017 22:26:52 +0200 Subject: [PATCH 01/52] 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 fb10e52b6bf1a4978348226a35bef8c4c9a539f6 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 23 Apr 2017 14:59:01 +0200 Subject: [PATCH 02/52] apply uefi_opt if we're building a uefi-enabled iso --- zlibs/iso | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/zlibs/iso b/zlibs/iso index 2cd3bdb..1871c09 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -102,6 +102,10 @@ iso_xorriso_build() { notice "building iso..." isoname="${image_name}-live.iso" + [[ -n "$mkefi" ]] && { + uefi_opt="-eltorito-alt-boot -e boot/grub/efiboot.img -isohybrid-gpt-basdat -no-emul-boot" + } + mkdir -p $R/dist pushd $workdir sudo xorriso -as mkisofs -r -J -joliet-long -l \ @@ -113,6 +117,7 @@ iso_xorriso_build() { -no-emul-boot \ -boot-load-size 4 \ -boot-info-table \ + ${=uefi_opt} \ -o $R/dist/$isoname \ binary || zerr popd From db35673fa3bf58ac329dd91d9b8aa772e788f952 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 23 Apr 2017 15:03:22 +0200 Subject: [PATCH 03/52] same for iso_squash_strap --- zlibs/iso | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/zlibs/iso b/zlibs/iso index 1871c09..b5440e0 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -88,10 +88,13 @@ iso_squash_strap() { notice "creating squashfs out of strapdir" + [[ -n "$mkefi" ]] && uefi_opt="-Xbcj x86" pushd $workdir sudo mksquashfs $strapdir binary/live/filesystem.squashfs \ + ${=uefi_opt} \ -noappend -comp xz || zerr popd + unset uefi_opt } iso_xorriso_build() { @@ -121,6 +124,7 @@ iso_xorriso_build() { -o $R/dist/$isoname \ binary || zerr popd + unset uefi_opt } iso_setup_installer() { From 8ad0d444e30374684f64168bf669ba5d235455d3 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 23 Apr 2017 16:58:54 +0200 Subject: [PATCH 04/52] update the sources list if needed when unpacking the tarball --- zlibs/bootstrap | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index a2ef358..f0d1e3e 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -148,6 +148,8 @@ bootstrap_tar_unpack() { exit 1 fi + conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/dev/null + cat </dev/null #!/bin/sh apt-get update From 9461b3b87bceb2cb476becd7823058556ca88eb0 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 15 Apr 2017 18:17:02 +0200 Subject: [PATCH 05/52] unpack the tarball now and then --- zlibs/bootstrap | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index f0d1e3e..ecd083d 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -116,7 +116,7 @@ bootstrap_tar_pack() { local _dest=$(dirname $bootstrap_tgz) if [[ -f $bootstrap_tgz ]]; then - act "tarball found already in $_dest" + notice "tarball found already in $_dest" else notice "Creating boostrap tarball in $bootstrap_tgz" silly @@ -138,14 +138,13 @@ bootstrap_tar_unpack() { ckreq || return 1 if [[ -f "${unpath}/.keep" ]]; then + act "skipping tarball unpack" + else + sudo rm -rf ${unpath} mkdir -p ${unpath} silly sudo tar xfp $bootstrap_tgz -C ${unpath} sudo mkdir -p ${unpath}/{boot,dev,sys,proc} - else - error "no .keep file found. exiting..." - zerr - exit 1 fi conf_print_sourceslist | sudo tee $strapdir/etc/apt/sources.list >/dev/null From 523994035e0c0dc38aadc52bef957b3e6c1bcf69 Mon Sep 17 00:00:00 2001 From: parazyd Date: Wed, 3 May 2017 14:04:59 +0200 Subject: [PATCH 06/52] safer fails --- zlibs/helpers | 76 ++++++++++++++++++++++++++++++--------------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/zlibs/helpers b/zlibs/helpers index fe81321..20fd835 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -33,14 +33,14 @@ build_image_dist() { notice "building complete dist image" act "$image_name" - bootstrap_complete_base || zerr - blend_preinst || zerr - image_prepare_raw || zerr - image_partition_raw_${parted_type} || zerr - build_kernel_${arch} || zerr - blend_postinst || zerr - rsync_to_raw_image || zerr - image_pack_dist || zerr + bootstrap_complete_base || { zerr; wrapup } + blend_preinst || { zerr; wrapup } + image_prepare_raw || { zerr; wrapup } + image_partition_raw_${parted_type} || { zerr; wrapup } + build_kernel_${arch} || { zerr; wrapup } + blend_postinst || { zerr; wrapup } + rsync_to_raw_image || { zerr; wrapup } + image_pack_dist || { zerr; wrapup } } build_iso_dist() { @@ -50,16 +50,16 @@ build_iso_dist() { notice "building complete iso image" - bootstrap_complete_base || zerr - blend_preinst || zerr - iso_prepare_strap || zerr - build_kernel_${arch} || zerr - iso_setup_isolinux || zerr - iso_write_isolinux_cfg || zerr + bootstrap_complete_base || { zerr; wrapup } + blend_preinst || { zerr; wrapup } + iso_prepare_strap || { zerr; wrapup } + build_kernel_${arch} || { zerr; wrapup } + iso_setup_isolinux || { zerr; wrapup } + iso_write_isolinux_cfg || { zerr; wrapup } #[[ $INSTALLER = 1 ]] && iso_setup_installer || zerr - blend_postinst || zerr - iso_squash_strap || zerr - iso_xorriso_build || zerr + blend_postinst || { zerr; wrapup } + iso_squash_strap || { zerr; wrapup } + iso_xorriso_build || { zerr; wrapup } } build_vagrant_dist() { @@ -69,16 +69,16 @@ build_vagrant_dist() { notice "building complete vagrant image" - image_${imageformat}_as_strapdir || zerr - bootstrap_complete_base || zerr - vm_inject_overrides || zerr - blend_preinst || zerr - vm_setup_grub || zerr - blend_postinst || zerr - vm_umount_${imageformat} || zerr - vm_vbox_setup || zerr - vm_vagrant_package || zerr - vm_pack_dist || zerr + image_${imageformat}_as_strapdir || { zerr; wrapup } + bootstrap_complete_base || { zerr; wrapup } + vm_inject_overrides || { zerr; wrapup } + blend_preinst || { zerr; wrapup } + vm_setup_grub || { zerr; wrapup } + blend_postinst || { zerr; wrapup } + vm_umount_${imageformat} || { zerr; wrapup } + vm_vbox_setup || { zerr; wrapup } + vm_vagrant_package || { zerr; wrapup } + vm_pack_dist || { zerr; wrapup } } getfield() { @@ -120,15 +120,29 @@ devprocsys() { sudo mount -o bind /dev/pts $werdo/dev/pts && act "mounted devpts" && \ return 0 elif [[ $watdo = umount ]]; then - sudo umount $werdo/dev/pts && act "umounted devpts" && sleep 1 && \ - sudo umount $werdo/dev && act "umounted dev" && sleep 1 && \ - sudo umount $werdo/proc && act "umounted proc" && sleep 1 && \ - sudo umount $werdo/sys && act "umounted sys" && sleep 1 && \ + sudo umount $werdo/dev/pts && act "umounted devpts" && sleep 1 \ + sudo umount $werdo/dev && act "umounted dev" && sleep 1 \ + sudo umount $werdo/proc && act "umounted proc" && sleep 1 \ + sudo umount $werdo/sys && act "umounted sys" && sleep 1 \ return 0 fi return 1 } +wrapup() { + # a hopefully clean exit + fn wrapup + req=(strapdir) + ckreq || { + die "something is very wrong" + die "cleanup yourself, sorry" + exit 1 + } + + devprocsys umount $strapdir + exit 1 +} + findloopmapp() { fn findloopmapp req=(workdir image_name) From 6a0fb10b6db8c62cff5d8d4979d09aafd0dbd976 Mon Sep 17 00:00:00 2001 From: parazyd Date: Wed, 3 May 2017 15:32:40 +0200 Subject: [PATCH 07/52] fixup! safer fails --- zlibs/helpers | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zlibs/helpers b/zlibs/helpers index 20fd835..421c4bc 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -120,10 +120,10 @@ devprocsys() { sudo mount -o bind /dev/pts $werdo/dev/pts && act "mounted devpts" && \ return 0 elif [[ $watdo = umount ]]; then - sudo umount $werdo/dev/pts && act "umounted devpts" && sleep 1 \ - sudo umount $werdo/dev && act "umounted dev" && sleep 1 \ - sudo umount $werdo/proc && act "umounted proc" && sleep 1 \ - sudo umount $werdo/sys && act "umounted sys" && sleep 1 \ + sudo umount $werdo/dev/pts && act "umounted devpts" && sleep 1 + sudo umount $werdo/dev && act "umounted dev" && sleep 1 + sudo umount $werdo/proc && act "umounted proc" && sleep 1 + sudo umount $werdo/sys && act "umounted sys" && sleep 1 return 0 fi return 1 From 96bbb06ae423ad87fc614251e8e21e3c98f687f1 Mon Sep 17 00:00:00 2001 From: parazyd Date: Thu, 4 May 2017 17:28:19 +0200 Subject: [PATCH 08/52] bump to RC2 --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 3f2ede6..5d69023 100644 --- a/config +++ b/config @@ -28,7 +28,7 @@ arrs+=(core_packages base_packages purge_packages blend_packages) os="devuan" release="jessie" -version="1.0.0-RC" +version="1.0.0-RC2" mirror="http://auto.mirror.devuan.org/merged" section="main" From dac77409c2183138ac6e446461ff9541bb9b591c Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 5 May 2017 18:48:21 +0200 Subject: [PATCH 09/52] try a different xz call with an array --- zlibs/imaging | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zlibs/imaging b/zlibs/imaging index b508915..1328f90 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -114,12 +114,12 @@ image_pack_dist() { zerr } - _xz="xz -zv" + _xz=(xz -zv) [[ $(command -v pixz) ]] && _xz=pixz notice "compressing image with $_xz" silly pushd $workdir - ${=_xz} ${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 23cc6fc711360faae31bd27fce5dc79b13d037b1 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 13:57:01 +0200 Subject: [PATCH 10/52] deprecate kpartx in favor of partx --- zlibs/helpers | 2 +- zlibs/imaging | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/zlibs/helpers b/zlibs/helpers index 421c4bc..c9c0253 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -151,7 +151,7 @@ findloopmapp() { notice "finding a free loopdevice" loopdevice=$(sudo losetup -f --show $workdir/${image_name}.img) - mappdevice=$(sudo kpartx -va $loopdevice | \ + mappdevice=$(sudo partx -va $loopdevice | \ sed -E 's/.*(loop[0-9])p.*/\1/g' | sed 1q) func "loopdevice: $loopdevice" diff --git a/zlibs/imaging b/zlibs/imaging index 1328f90..50f4d0a 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -105,8 +105,8 @@ image_pack_dist() { sleep 1 } - sudo kpartx -dv $loopdevice || { - die "kpartx failed to remove $loopdevice" + sudo partx -dv $loopdevice || { + die "partx failed to remove $loopdevice" zerr } sudo losetup -d $loopdevice || { From eed8948991efb08973f0e20e0e5b31dd3c1ddfc0 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 15:12:43 +0200 Subject: [PATCH 11/52] import devuan keyring as git submodule and utilize it in debootstrap --- .gitmodules | 3 +++ extra/devuan-keyring | 1 + zlibs/bootstrap | 1 + 3 files changed, 5 insertions(+) create mode 100644 .gitmodules create mode 160000 extra/devuan-keyring diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..e0fab89 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "extra/devuan-keyring"] + path = extra/devuan-keyring + url = https://git.devuan.org/devuan-packages/devuan-keyring diff --git a/extra/devuan-keyring b/extra/devuan-keyring new file mode 160000 index 0000000..e82213e --- /dev/null +++ b/extra/devuan-keyring @@ -0,0 +1 @@ +Subproject commit e82213e52259a497db285c59758b9f6a95308060 diff --git a/zlibs/bootstrap b/zlibs/bootstrap index ecd083d..bbafa53 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -40,6 +40,7 @@ bootstrap_complete_base() { export DEBIAN_FRONTEND=noninteractive sudo -E debootstrap \ + --keyring="$LIBPATH/extra/devuan-keyring/keyrings/devuan-keyring.gpg" \ --foreign \ --arch $arch $release $strapdir $mirror || zerr From 22c24a992ce3f5fc0004f1d87c63a8d3e97126f0 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 15:34:19 +0200 Subject: [PATCH 12/52] use the correct -archive- keyring --- zlibs/bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index bbafa53..ab6493d 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -40,7 +40,7 @@ bootstrap_complete_base() { export DEBIAN_FRONTEND=noninteractive sudo -E debootstrap \ - --keyring="$LIBPATH/extra/devuan-keyring/keyrings/devuan-keyring.gpg" \ + --keyring="$LIBPATH/extra/devuan-keyring/keyrings/devuan-archive-keyring.gpg" \ --foreign \ --arch $arch $release $strapdir $mirror || zerr From bcfc231bdd21f9bde26a8409d6a8542e3602bc0b Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 16:05:03 +0200 Subject: [PATCH 13/52] proper partx support --- zlibs/helpers | 9 +++------ zlibs/imaging | 11 +++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/zlibs/helpers b/zlibs/helpers index c9c0253..0b30d09 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -143,20 +143,17 @@ wrapup() { exit 1 } -findloopmapp() { - fn findloopmapp +findloopdev() { + fn findloopdev req=(workdir image_name) ckreq || return 1 notice "finding a free loopdevice" loopdevice=$(sudo losetup -f --show $workdir/${image_name}.img) - mappdevice=$(sudo partx -va $loopdevice | \ - sed -E 's/.*(loop[0-9])p.*/\1/g' | sed 1q) + sudo partx -av $loopdevice || zerr func "loopdevice: $loopdevice" - func "mappdevice: $mappdevice" - silly sleep 2 } diff --git a/zlibs/imaging b/zlibs/imaging index 50f4d0a..dce77d6 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -45,8 +45,8 @@ image_partition_raw_dos() { parted $workdir/${image_name}.img --script -- mkpart primary ${parted_boot} parted $workdir/${image_name}.img --script -- mkpart primary ${parted_root} - ## get loopdevice and mapper device (see ./helpers) - findloopmapp + ## get loopdevice (see ./helpers) + findloopdev mappdevice="/dev/mapper/${mappdevice}" bootpart=${mappdevice}p1 @@ -77,11 +77,10 @@ image_partition_raw_gpt() { awk '/Sec GPT table/ {print $1}') - ${gpt_root[1]}) \ -l Root $workdir/${image_name}.img - findloopmapp + findloopdev - mappdevice="/dev/mapper/${mappdevice}" - bootpart=${mappdevice}p1 - rootpart=${mappdevice}p2 + bootpart=${loopdevice}p1 + rootpart=${loopdevice}p2 notice "formatting partitions..." sudo mkfs.ext4 -L rootfs ${rootpart} From d693431e2574209296e112d28f67f586deb8bcbd Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 16:33:44 +0200 Subject: [PATCH 14/52] fixup! proper partx support --- zlibs/helpers | 2 ++ zlibs/imaging | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/zlibs/helpers b/zlibs/helpers index 0b30d09..6c0d61f 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -19,6 +19,8 @@ ## helper functions that make my life easier +vars+=(loopdevice) + build_image_dist() { fn build_image_dist req=(arch size parted_type) diff --git a/zlibs/imaging b/zlibs/imaging index dce77d6..c5719f6 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -48,9 +48,8 @@ image_partition_raw_dos() { ## get loopdevice (see ./helpers) findloopdev - mappdevice="/dev/mapper/${mappdevice}" - bootpart=${mappdevice}p1 - rootpart=${mappdevice}p2 + bootpart=${loopdevice}p1 + rootpart=${loopdevice}p2 notice "formatting partitions..." sudo mkfs.vfat ${bootpart} @@ -79,8 +78,8 @@ image_partition_raw_gpt() { findloopdev - bootpart=${loopdevice}p1 - rootpart=${loopdevice}p2 + bootpart="${loopdevice}p1" + rootpart="${loopdevice}p2" notice "formatting partitions..." sudo mkfs.ext4 -L rootfs ${rootpart} From 4c80ff10ef378c687f0a46680678c2ce63cc0482 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 17:08:41 +0200 Subject: [PATCH 15/52] no need for mappdevice in image_pack_dist --- zlibs/imaging | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zlibs/imaging b/zlibs/imaging index c5719f6..a5f8caf 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -87,14 +87,14 @@ image_partition_raw_gpt() { image_pack_dist() { fn image_pack_dist - req=(mappdevice loopdevice image_name strapdir workdir) + req=(loopdevice image_name strapdir workdir) ckreq || return 1 notice "packaging image for dist" act "rechecking filesystem" - sudo e2fsck -f ${mappdevice}p2 - sudo resize2fs ${mappdevice}p2 + sudo e2fsck -f ${loopdevice}p2 + sudo resize2fs ${loopdevice}p2 sleep 2 From fafcb999a2218d2bbc9827f296723d98baebafd3 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 18:16:44 +0200 Subject: [PATCH 16/52] support gentoo isolinux location --- zlibs/iso | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/zlibs/iso b/zlibs/iso index b5440e0..aa23845 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -52,10 +52,24 @@ iso_setup_isolinux() { sudo cp $strapdir/boot/vmlinuz* binary/live/vmlinuz sudo cp $strapdir/boot/initrd* binary/live/initrd - sudo cp /usr/share/live/build/bootloaders/isolinux/isolinux.bin \ - binary/isolinux || zerr - sudo cp /usr/share/live/build/bootloaders/isolinux/*.c32 \ - binary/isolinux || zerr + eval $(cat /etc/os-release) + case "$ID" in + devuan) + sudo cp \ + /usr/share/live/build/bootloaders/isolinux/isolinux.bin \ + binary/isolinux || zerr + sudo cp /usr/share/live/build/bootloaders/isolinux/*.c32 \ + binary/isolinux || zerr + ;; + gentoo) + sudo cp \ + /usr/share/syslinux/isolinux.bin binary/isolinux || zerr + sudo cp \ + /usr/ahre/syslinux/*.c32 binary/isolinux || zerr + ;; + *) + warn "no isolinux has been copied. take care of it yourself" + ;; popd } From 6019687bc8724781020b13cbae3d4fd7b408209b Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 18:24:35 +0200 Subject: [PATCH 17/52] fixup! support gentoo isolinux location --- zlibs/iso | 1 + 1 file changed, 1 insertion(+) diff --git a/zlibs/iso b/zlibs/iso index aa23845..033a645 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -70,6 +70,7 @@ iso_setup_isolinux() { *) warn "no isolinux has been copied. take care of it yourself" ;; + esac popd } From 070f35481d8601e667276b26be15622c19757e02 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 18:45:30 +0200 Subject: [PATCH 18/52] fixup! fixup! support gentoo isolinux location --- zlibs/iso | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/iso b/zlibs/iso index 033a645..1fbcd1a 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -65,7 +65,7 @@ iso_setup_isolinux() { sudo cp \ /usr/share/syslinux/isolinux.bin binary/isolinux || zerr sudo cp \ - /usr/ahre/syslinux/*.c32 binary/isolinux || zerr + /usr/share/syslinux/*.c32 binary/isolinux || zerr ;; *) warn "no isolinux has been copied. take care of it yourself" From 67ede3bd8c75222f3399f86841f587f96225c8a1 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 15 May 2017 18:50:57 +0200 Subject: [PATCH 19/52] support for gentoo isohybrid path --- zlibs/.helpers.swp | Bin 0 -> 16384 bytes zlibs/iso | 12 +++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) create mode 100644 zlibs/.helpers.swp diff --git a/zlibs/.helpers.swp b/zlibs/.helpers.swp new file mode 100644 index 0000000000000000000000000000000000000000..663166011ba611d66bc0875d70bda691487dba05 GIT binary patch literal 16384 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 Date: Tue, 16 May 2017 15:12:23 +0200 Subject: [PATCH 20/52] remove leftover vim swapfile --- zlibs/.helpers.swp | Bin 16384 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 zlibs/.helpers.swp diff --git a/zlibs/.helpers.swp b/zlibs/.helpers.swp deleted file mode 100644 index 663166011ba611d66bc0875d70bda691487dba05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16384 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 Date: Tue, 16 May 2017 15:56:01 +0200 Subject: [PATCH 21/52] allow long apt arguments in extra_packages --- zlibs/bootstrap | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index ab6493d..d0fdc16 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -157,7 +157,9 @@ 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" + printf "%s" "\$allpkgs" | grep -q "^\$i$" || { + printf "%s" "\$i" | greq -q "^--.*" || missing="\$missing \$i" + } done [ -n "\$missing" ] && { From 48be0c4e916f609269634a9b98a266fb0e57593f Mon Sep 17 00:00:00 2001 From: parazyd Date: Tue, 16 May 2017 17:25:23 +0200 Subject: [PATCH 22/52] fix args --- zlibs/bootstrap | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index d0fdc16..3e0b544 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -158,7 +158,10 @@ apt-get update allpkgs="\$(apt-cache search '.' | cut -d' ' -f1)" for i in ${extra_packages} ; do printf "%s" "\$allpkgs" | grep -q "^\$i$" || { - printf "%s" "\$i" | greq -q "^--.*" || missing="\$missing \$i" + case "\$i" in + --*) continue ;; + *) missing="\$missing \$i" ;; + esac } done From 0517fd867da8657fc1a6afe4e831b7321e546b9e Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 21 May 2017 19:11:10 +0200 Subject: [PATCH 23/52] apt caching proof of concept --- apt-cache/Packages.gz | Bin 0 -> 29 bytes config | 7 +++-- zlibs/bootstrap | 2 -- zlibs/helpers | 60 ++++++++++++++++++++++++++++++++++++++++-- zlibs/iso | 1 - zlibs/sysconf | 2 ++ 6 files changed, 65 insertions(+), 7 deletions(-) create mode 100644 apt-cache/Packages.gz diff --git a/apt-cache/Packages.gz b/apt-cache/Packages.gz new file mode 100644 index 0000000000000000000000000000000000000000..743bcb193a99e17aeb746502e0185c07f8ebf534 GIT binary patch literal 29 dcmb2|=HR$}OfiyyIUq4PJ25@An1PuA1^{/'$script'.log@' + notice "chrooting to execute $script..." sudo chmod +x "$strapdir/$script" || zerr sudo -E chroot "$strapdir" "/$script" || zerr @@ -288,15 +290,18 @@ chroot-script() { ;; *) local script="$1" + [[ "$APT_CACHE" = 1 ]] && { aptcache on "$strapdir/mnt" || 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 chmod +x "$strapdir/$script" || zerr sudo -E chroot "$strapdir" "/$script" || zerr sudo mv -f "$strapdir/${script}.log" "$R/log/" + + [[ "$APT_CACHE" = 1 ]] && { aptcache off "$strapdir/mnt" || zerr } ;; esac @@ -352,6 +357,57 @@ blend_postinst() { return 0 } +aptcache() { + fn aptcache "$*" + req=(aptcachedir watdo werdo APT_CACHE) + local watdo="$1" + local werdo="$2" + ckreq || return 1 + + [[ $APT_CACHE = 1 ]] || return 0 + + case "$watdo" in + on) + act "mounting local apt cache" + sudo mount -o bind "$aptcachedir" "$werdo" || zerr + ;; + off) + act "umounting local apt cache" + sudo umount "$werdo" || zerr + ;; + esac +} + +fill_apt_cache() { + fn fill_apt_cache + req=(strapdir APT_CACHE) + ckreq || return 1 + + [[ $APT_CACHE = 1 ]] || return 0 + + notice "filling local apt cache" + + cat </dev/null +#!/bin/sh + +# NOTE: do we need apt update or does it read the remote(s)? +apt-get update +apt-get install dpkg-dev + +cp -afv /var/cache/apt/archives/*.deb /mnt +cd /mnt +dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz +cd - + +apt-get purge dpkg-dev + +sed -i -e "@deb file:/mnt@d" /etc/apt/sources.list +apt-get update + +EOF + chroot-script fill-apt-cache || zerr +} + silly() { fn silly "$@" local arg1="$1" diff --git a/zlibs/iso b/zlibs/iso index 15a24e2..3d68322 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -33,7 +33,6 @@ iso_prepare_strap() { apt-get update apt-get --yes --force-yes install dialog live-boot live-boot-initramfs-tools apt-get --yes --force-yes autoremove -apt-get clean EOF chroot-script -d isoprep || zerr diff --git a/zlibs/sysconf b/zlibs/sysconf index df8d551..aa2e32e 100644 --- a/zlibs/sysconf +++ b/zlibs/sysconf @@ -118,6 +118,8 @@ conf_print_sourceslist() { ckreq || return 1 cat < Date: Sun, 21 May 2017 20:43:20 +0200 Subject: [PATCH 24/52] no-recommends for dpkg-dev (fill_apt_cache) --- zlibs/helpers | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zlibs/helpers b/zlibs/helpers index 5be1093..1eaf392 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -392,14 +392,14 @@ fill_apt_cache() { # NOTE: do we need apt update or does it read the remote(s)? apt-get update -apt-get install dpkg-dev +apt-get --yes --force-yes --no-install-recommends install dpkg-dev cp -afv /var/cache/apt/archives/*.deb /mnt cd /mnt dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz cd - -apt-get purge dpkg-dev +apt-get --yes --force-yes purge dpkg-dev sed -i -e "@deb file:/mnt@d" /etc/apt/sources.list apt-get update From f74f2b38ea5dbff47c2a47b7a2d586b75a8d13c4 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 21 May 2017 21:09:31 +0200 Subject: [PATCH 25/52] disable leftover locales.sh --- zlibs/bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 2cb0774..7143409 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -63,7 +63,7 @@ bootstrap_complete_base() { 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 + #conf_print_locales | sudo tee $strapdir/etc/profile.d/locales.sh >/dev/null ## write third-stage for chroot bootstrap_config_thirdstage | sudo tee $strapdir/thirdstage >/dev/null From ac325f77d281db88c9f9fa2815ad3a2e9ef7cd8b Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 22 May 2017 00:02:25 +0200 Subject: [PATCH 26/52] create cache repo outside of the chroot --- libdevuansdk | 1 + zlibs/cache | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++ zlibs/helpers | 51 ---------------------------------- 3 files changed, 77 insertions(+), 51 deletions(-) create mode 100644 zlibs/cache diff --git a/libdevuansdk b/libdevuansdk index 40eb799..51afdce 100644 --- a/libdevuansdk +++ b/libdevuansdk @@ -22,6 +22,7 @@ LIBPATH=${LIBPATH:-$(dirname $0)} source $LIBPATH/config source $LIBPATH/zlibs/bootstrap +source $LIBPATH/zlibs/cache source $LIBPATH/zlibs/helpers source $LIBPATH/zlibs/imaging source $LIBPATH/zlibs/iso diff --git a/zlibs/cache b/zlibs/cache new file mode 100644 index 0000000..2a589c3 --- /dev/null +++ b/zlibs/cache @@ -0,0 +1,76 @@ +#!/usr/bin/env zsh +# Copyright (c) 2017 Dyne.org Foundation +# libdevuansdk is maintained by Ivan J. +# +# 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 . + +aptcache() { + fn aptcache "$*" + req=(aptcachedir watdo werdo APT_CACHE) + local watdo="$1" + local werdo="$2" + ckreq || return 1 + + [[ $APT_CACHE = 1 ]] || return 0 + + case "$watdo" in + on) + act "mounting local apt cache" + sudo mount -o bind "$aptcachedir" "$werdo" || zerr + ;; + off) + act "umounting local apt cache" + sudo umount "$werdo" || zerr + ;; + esac +} + +fill_apt_cache() { + fn fill_apt_cache + req=(strapdir APT_CACHE aptcachedir) + ckreq || return 1 + + [[ $APT_CACHE = 1 ]] || return 0 + + notice "filling local apt cache" + + cp -fv "$strapdir/var/cache/archives/*.deb" "$aptcachedir" + + pushd "$aptcachedir" + dpkg-scanpackages . /dev/null > Packages + gzip -c Packages > Packages.gz + cat < Release +Origin: ${os} +Suite: ${release} +Version: ${version} +Architectures: alpha amd64 arm64 armel armhf hppa i386 ia64 mips mipsel powerpc ppc64el s390x sparc +MD5sum: + $(md5sum Packages | cut -d' ' -f1) $(du -b Packages) + $(md5sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) +SHA1: + $(sha1sum Packages | cut -d' ' -f1) $(du -b Packages) + $(sha1sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) +SHA256: + $(sha256sum Packages | cut -d' ' -f1) $(du -b Packages) + $(sha256sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) +EOF + rm -f Packages + ## TODO: XXX: gpg sign Release + popd + + + sudo sed -i -e '@deb file:/mnt@d' "$strapdir/etc/apt/sources.list" +} diff --git a/zlibs/helpers b/zlibs/helpers index 1eaf392..0ba2198 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -357,57 +357,6 @@ blend_postinst() { return 0 } -aptcache() { - fn aptcache "$*" - req=(aptcachedir watdo werdo APT_CACHE) - local watdo="$1" - local werdo="$2" - ckreq || return 1 - - [[ $APT_CACHE = 1 ]] || return 0 - - case "$watdo" in - on) - act "mounting local apt cache" - sudo mount -o bind "$aptcachedir" "$werdo" || zerr - ;; - off) - act "umounting local apt cache" - sudo umount "$werdo" || zerr - ;; - esac -} - -fill_apt_cache() { - fn fill_apt_cache - req=(strapdir APT_CACHE) - ckreq || return 1 - - [[ $APT_CACHE = 1 ]] || return 0 - - notice "filling local apt cache" - - cat </dev/null -#!/bin/sh - -# NOTE: do we need apt update or does it read the remote(s)? -apt-get update -apt-get --yes --force-yes --no-install-recommends install dpkg-dev - -cp -afv /var/cache/apt/archives/*.deb /mnt -cd /mnt -dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz -cd - - -apt-get --yes --force-yes purge dpkg-dev - -sed -i -e "@deb file:/mnt@d" /etc/apt/sources.list -apt-get update - -EOF - chroot-script fill-apt-cache || zerr -} - silly() { fn silly "$@" local arg1="$1" From ed4dedfcd04d12c4ad3d5116ccfedaaf0a10caa8 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 22 May 2017 00:31:41 +0200 Subject: [PATCH 27/52] add gpg signing for apt cache --- config | 5 ++++- zlibs/bootstrap | 11 +++++++++++ zlibs/cache | 8 +++++++- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/config b/config index ca7c948..229bd10 100644 --- a/config +++ b/config @@ -20,7 +20,8 @@ ## libdevuansdk configuration vars+=(release version mirror section blend_name image_name vm_name) -vars+=(arch earch aptcachedir APT_CACHE) +vars+=(arch earch) +vars+=(aptcachedir APT_CACHE aptcachegpg) vars+=(usercredentials rootcredentials) arrs+=(core_packages base_packages purge_packages blend_packages) @@ -28,6 +29,8 @@ arrs+=(core_packages base_packages purge_packages blend_packages) ## enable local apt cache APT_CACHE=1 aptcachedir="$LIBPATH/apt-cache" +## key used to sign the cache's Release +aptcachegpg="0xdeadbeefdeadbeef" os="devuan" release="jessie" diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 7143409..5d7635b 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -74,6 +74,17 @@ bootstrap_complete_base() { chroot-script -d thirdstage || zerr + + [[ $APT_CACHE = 1 ]] && { + notice "adding apt cache gpg pubkey" + cat </dev/null +#!/bin/sh +gpgkey="$(gpg --export -a $aptcachegpg)" +printf "%s" "\$gpgkey" | apt-key add - +EOF + chroot-script addcachepubkey || zerr + } + sleep 1 bootstrap_tar_pack || zerr diff --git a/zlibs/cache b/zlibs/cache index 2a589c3..a42c340 100644 --- a/zlibs/cache +++ b/zlibs/cache @@ -68,9 +68,15 @@ SHA256: $(sha256sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) EOF rm -f Packages - ## TODO: XXX: gpg sign Release + gpg --sign --detach-sign --sign-with $aptcachegpg Release || zerr popd sudo sed -i -e '@deb file:/mnt@d' "$strapdir/etc/apt/sources.list" + notice "removing apt cache gpg pubkey" + cat </dev/null +#!/bin/sh +apt-key del ${aptcachegpg} +EOF + chroot-script delcachepubkey || zerr } From 0df3f14cddd77a34ee8a11cdb3003ab0f8f38069 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 22 May 2017 00:55:39 +0200 Subject: [PATCH 28/52] apt path fix --- zlibs/cache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zlibs/cache b/zlibs/cache index a42c340..70c456f 100644 --- a/zlibs/cache +++ b/zlibs/cache @@ -47,7 +47,7 @@ fill_apt_cache() { notice "filling local apt cache" - cp -fv "$strapdir/var/cache/archives/*.deb" "$aptcachedir" + cp -fv $strapdir/var/cache/apt/archives/*.deb $aptcachedir pushd "$aptcachedir" dpkg-scanpackages . /dev/null > Packages @@ -72,7 +72,7 @@ EOF popd - sudo sed -i -e '@deb file:/mnt@d' "$strapdir/etc/apt/sources.list" + sudo sed -i '/deb file:\/mnt/d' "$strapdir/etc/apt/sources.list" notice "removing apt cache gpg pubkey" cat </dev/null #!/bin/sh From 22fafa115c17266737c9af82b038ceeee752a949 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 22 May 2017 00:58:28 +0200 Subject: [PATCH 29/52] correct path for Release signature --- zlibs/cache | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zlibs/cache b/zlibs/cache index 70c456f..e32c73e 100644 --- a/zlibs/cache +++ b/zlibs/cache @@ -68,7 +68,8 @@ SHA256: $(sha256sum Packages.gz | cut -d' ' -f1) $(du -b Packages.gz) EOF rm -f Packages - gpg --sign --detach-sign --sign-with $aptcachegpg Release || zerr + gpg --sign --detach-sign -a --sign-with $aptcachegpg Release || zerr + mv Release.asc Release.gpg popd From f543fb6b36568608b7f401ac6b4a23fd814aba09 Mon Sep 17 00:00:00 2001 From: parazyd Date: Tue, 23 May 2017 13:54:53 +0200 Subject: [PATCH 30/52] make apt-cache opt-in; add contrib and non-free by default --- config | 4 ++-- zlibs/helpers | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config b/config index 229bd10..69392e1 100644 --- a/config +++ b/config @@ -27,7 +27,7 @@ vars+=(usercredentials rootcredentials) arrs+=(core_packages base_packages purge_packages blend_packages) ## enable local apt cache -APT_CACHE=1 +APT_CACHE=0 aptcachedir="$LIBPATH/apt-cache" ## key used to sign the cache's Release aptcachegpg="0xdeadbeefdeadbeef" @@ -36,7 +36,7 @@ os="devuan" release="jessie" version="1.0.0" mirror="http://auto.mirror.devuan.org/merged" -section="main" +section="main contrib non-free" image_name="${os}_${release}_${version}_${arch}" [[ -n "$blend_name" ]] && image_name="${image_name}_${blend_name}" diff --git a/zlibs/helpers b/zlibs/helpers index 0ba2198..56cf680 100644 --- a/zlibs/helpers +++ b/zlibs/helpers @@ -275,6 +275,7 @@ chroot-script() { local script="$2" devprocsys mount "$strapdir" || zerr dpkgdivert on "$strapdir" || zerr + [[ "$APT_CACHE" = 1 ]] && { aptcache on "$strapdir/mnt" || zerr } ## logging sudo sed -i "$strapdir/$script" \ @@ -285,6 +286,7 @@ chroot-script() { sudo -E chroot "$strapdir" "/$script" || zerr sudo mv -f "$strapdir/${script}.log" "$R/log/" + [[ "$APT_CACHE" = 1 ]] && { aptcache off "$strapdir/mnt" || zerr } dpkgdivert off "$strapdir" || zerr devprocsys umount "$strapdir" || zerr ;; From 657138ba4263d869072146abede524a201324a97 Mon Sep 17 00:00:00 2001 From: parazyd Date: Tue, 23 May 2017 13:56:34 +0200 Subject: [PATCH 31/52] make it overridable from an sdk --- config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config b/config index 69392e1..f30e2e6 100644 --- a/config +++ b/config @@ -27,7 +27,7 @@ vars+=(usercredentials rootcredentials) arrs+=(core_packages base_packages purge_packages blend_packages) ## enable local apt cache -APT_CACHE=0 +APT_CACHE=${APT_CACHE:-0} aptcachedir="$LIBPATH/apt-cache" ## key used to sign the cache's Release aptcachegpg="0xdeadbeefdeadbeef" From 558a16eb9c1f866ce41f31c356d4204d3743d13a Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 5 Jun 2017 12:50:43 +0200 Subject: [PATCH 32/52] optional memtest --- zlibs/iso | 1 + 1 file changed, 1 insertion(+) diff --git a/zlibs/iso b/zlibs/iso index 3d68322..b43a521 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -50,6 +50,7 @@ iso_setup_isolinux() { act "copying kernel and initrd" sudo cp $strapdir/boot/vmlinuz* binary/live/vmlinuz sudo cp $strapdir/boot/initrd* binary/live/initrd + #sudo cp $strapdir/boot/memtest86+.bin binary/live/memtest eval $(cat /etc/os-release) case "$ID" in From 07e11b132b4956244ab6e5d9c9679d7a0bd0a5d5 Mon Sep 17 00:00:00 2001 From: parazyd Date: Fri, 16 Jun 2017 14:24:59 +0200 Subject: [PATCH 33/52] apply gio's patch to set bootable flag on the vfat partition --- zlibs/imaging | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zlibs/imaging b/zlibs/imaging index a5f8caf..4d7faee 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -44,6 +44,8 @@ image_partition_raw_dos() { parted $workdir/${image_name}.img --script -- mklabel msdos parted $workdir/${image_name}.img --script -- mkpart primary ${parted_boot} parted $workdir/${image_name}.img --script -- mkpart primary ${parted_root} + [ -n "$bootable_part" ] && \ + parted "$workdir/${image_name}.img" --script -- set "$bootable_part" boot on ## get loopdevice (see ./helpers) findloopdev From dfefbfe3d3bae9ffa4e2554bcd4deeb63c0a63b4 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 19 Jun 2017 12:13:46 +0200 Subject: [PATCH 34/52] add devuan's debootstrap (suites/jessie) as submodule --- .gitmodules | 4 ++++ extra/debootstrap | 1 + 2 files changed, 5 insertions(+) create mode 160000 extra/debootstrap diff --git a/.gitmodules b/.gitmodules index e0fab89..13a5e8e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,7 @@ [submodule "extra/devuan-keyring"] path = extra/devuan-keyring url = https://git.devuan.org/devuan-packages/devuan-keyring +[submodule "extra/debootstrap"] + path = extra/debootstrap + url = https://git.devuan.org/devuan-packages/debootstrap + branch = suites/jessie diff --git a/extra/debootstrap b/extra/debootstrap new file mode 160000 index 0000000..d2fd705 --- /dev/null +++ b/extra/debootstrap @@ -0,0 +1 @@ +Subproject commit d2fd705976704b218898a8639e2d22d8bd46769a From 58fe65a7193d78ec64d223c865d4479ece41275d Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 19 Jun 2017 12:16:50 +0200 Subject: [PATCH 35/52] override $PATH to use the bundled debootstrap --- config | 3 +++ 1 file changed, 3 insertions(+) diff --git a/config b/config index f30e2e6..949d1c0 100644 --- a/config +++ b/config @@ -26,6 +26,9 @@ vars+=(usercredentials rootcredentials) arrs+=(core_packages base_packages purge_packages blend_packages) +## overrides the system's debootstrap if there is one +export PATH="$LIBPATH/extra/debootstrap:$PATH" + ## enable local apt cache APT_CACHE=${APT_CACHE:-0} aptcachedir="$LIBPATH/apt-cache" From a5490889c0901f44e5741410925cc3af949cdc3f Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 19 Jun 2017 12:27:28 +0200 Subject: [PATCH 36/52] Revert "override $PATH to use the bundled debootstrap" This reverts commit 58fe65a7193d78ec64d223c865d4479ece41275d. --- config | 3 --- 1 file changed, 3 deletions(-) diff --git a/config b/config index 949d1c0..f30e2e6 100644 --- a/config +++ b/config @@ -26,9 +26,6 @@ vars+=(usercredentials rootcredentials) arrs+=(core_packages base_packages purge_packages blend_packages) -## overrides the system's debootstrap if there is one -export PATH="$LIBPATH/extra/debootstrap:$PATH" - ## enable local apt cache APT_CACHE=${APT_CACHE:-0} aptcachedir="$LIBPATH/apt-cache" From e2738e9aefcf1fe9f7604f79eb2231a2a6273d12 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 19 Jun 2017 12:28:14 +0200 Subject: [PATCH 37/52] explicit debootstrap path --- zlibs/bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 5d7635b..04e9773 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -39,7 +39,7 @@ bootstrap_complete_base() { export LC_ALL=C export DEBIAN_FRONTEND=noninteractive - sudo -E debootstrap \ + sudo -E "$LIBPATH/extra/debootstrap/debootstrap" \ --keyring="$LIBPATH/extra/devuan-keyring/keyrings/devuan-archive-keyring.gpg" \ --foreign \ --arch $arch $release $strapdir $mirror || zerr From 6cdae5fd4de9cf39a6280b95f2678386bdece8a7 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 26 Jun 2017 18:46:05 +0200 Subject: [PATCH 38/52] fix $_xz bug --- zlibs/imaging | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/imaging b/zlibs/imaging index 4d7faee..d3c5e05 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -119,7 +119,7 @@ image_pack_dist() { notice "compressing image with $_xz" silly pushd $workdir - ${xz} "${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 855fed21f5cde6c1adacd9c7396df79f39db9ada Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 10 Jul 2017 14:06:12 +0200 Subject: [PATCH 39/52] defautl to x86 compression for mksquashfs --- zlibs/iso | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/zlibs/iso b/zlibs/iso index b43a521..69ae0f1 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -103,11 +103,9 @@ iso_squash_strap() { notice "creating squashfs out of strapdir" - [[ -n "$mkefi" ]] && uefi_opt="-Xbcj x86" pushd $workdir sudo mksquashfs $strapdir binary/live/filesystem.squashfs \ - ${=uefi_opt} \ - -noappend -comp xz || zerr + -Xbcj x86 -noappend -comp xz || zerr popd unset uefi_opt } @@ -149,7 +147,6 @@ iso_xorriso_build() { -o $R/dist/$isoname \ binary || zerr popd - unset uefi_opt } iso_setup_installer() { From 0e3297bb7e9778195f3241c495628d8db723738b Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 16 Jul 2017 21:01:24 +0200 Subject: [PATCH 40/52] default to ntp rather than openntpd --- config | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config b/config index f30e2e6..4083e88 100644 --- a/config +++ b/config @@ -73,7 +73,8 @@ base_packages=( mawk tmux screen - openntpd + #openntpd + ntp wpasupplicant wireless-tools elinks From 18f4c0b0724192f8677d5e6a441042007141f970 Mon Sep 17 00:00:00 2001 From: Jaromil Date: Wed, 19 Jul 2017 16:58:32 +0200 Subject: [PATCH 41/52] added support for different filesystems in qcow2 imaging strapdir --- zlibs/imaging | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) mode change 100644 => 100755 zlibs/imaging diff --git a/zlibs/imaging b/zlibs/imaging old mode 100644 new mode 100755 index d3c5e05..4958769 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -19,7 +19,8 @@ ## imagine images -vars+=(image_name bootpart rootpart loopdevice) +vars+=(image_name bootpart rootpart loopdevice filesystem) +arrs+=(fsargs) image_prepare_raw() { fn image_prepare_raw @@ -194,7 +195,10 @@ image_qcow2_as_strapdir() { pushd "$workdir" - notice "creating qcow2 image of $size MB" + # default filesystem fallback to ext4 + filesystem=${filesystem:-ext4} + + notice "creating qcow2 image of $size MB formatted with $filesystem" rm -f base.qcow2 qemu-img create -f qcow2 base.qcow2 ${size}M || zerr sudo modprobe nbd max_part=8 || zerr @@ -202,10 +206,16 @@ image_qcow2_as_strapdir() { [ -n "$loopdevice" ] || zerr act "$loopdevice" sudo qemu-nbd --connect=${loopdevice} base.qcow2 || zerr + notice "partitioning" sudo parted ${loopdevice} mktable msdos || zerr sudo parted ${loopdevice} mkpart primary '0%' '100%' || zerr - sudo mkfs.ext4 ${loopdevice}p1 || zerr + + notice "formatting with $filesystem" + command -v mkfs.${filesystem} >/dev/null || { + error "filesystem tools not found in path: mkfs.${filesystem}" + zerr } + sudo mkfs.${filesystem} ${=fsargs} ${loopdevice}p1 || zerr notice "mounting qcow2 image to strapdir" sudo mount ${loopdevice}p1 $strapdir || zerr From 258bcc8083d928cf6907203073db5ae7409d89f9 Mon Sep 17 00:00:00 2001 From: parazyd Date: Thu, 20 Jul 2017 13:45:54 +0200 Subject: [PATCH 42/52] enable root login in vm's sshd (new openssh changed the keyword) --- zlibs/vm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/zlibs/vm b/zlibs/vm index 606c195..b0d8286 100644 --- a/zlibs/vm +++ b/zlibs/vm @@ -40,7 +40,8 @@ EOF print "rootfs / rootfs rw 0 0" | sudo tee ${strapdir}/etc/fstab >/dev/null sudo sed -i ${strapdir}/etc/ssh/sshd_config \ - -e 's/without-password/yes/' || zerr + -e 's/PermitRootLogin prohibit-password/PermitRootLogin yes/' \ + -e 's/PermitRootLogin without-password/PermitRootLogin yes/'|| zerr } vm_setup_grub() { From 192a58f259f4930884e53cf265674b712a701dae Mon Sep 17 00:00:00 2001 From: parazyd Date: Thu, 20 Jul 2017 13:55:22 +0200 Subject: [PATCH 43/52] zlibs are not executable --- zlibs/imaging | 0 1 file changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 zlibs/imaging diff --git a/zlibs/imaging b/zlibs/imaging old mode 100755 new mode 100644 From 378887ba79f376fd561bfd768018d150b77d0620 Mon Sep 17 00:00:00 2001 From: parazyd Date: Thu, 20 Jul 2017 15:54:30 +0200 Subject: [PATCH 44/52] net.ifnames=0 in vm's grub --- zlibs/vm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zlibs/vm b/zlibs/vm index b0d8286..fc161d0 100644 --- a/zlibs/vm +++ b/zlibs/vm @@ -55,6 +55,8 @@ vm_setup_grub() { 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 +sed -e 's:GRUB_CMDLINE_LINUX_DEFAULT=".*":GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0"' \ + -i /etc/default/grub update-grub grub-install --no-floppy --recheck --modules="biosdisk part_msdos" \ ${loopdevice} From 2e871f39e7f6e3f35f3ac41b5c8cbf2b5a5ea42d Mon Sep 17 00:00:00 2001 From: parazyd Date: Thu, 20 Jul 2017 17:09:34 +0200 Subject: [PATCH 45/52] fixup! net.ifnames=0 in vm's grub --- zlibs/vm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/vm b/zlibs/vm index fc161d0..a19cd86 100644 --- a/zlibs/vm +++ b/zlibs/vm @@ -55,7 +55,7 @@ vm_setup_grub() { 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 -sed -e 's:GRUB_CMDLINE_LINUX_DEFAULT=".*":GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0"' \ +sed -e 's:GRUB_CMDLINE_LINUX_DEFAULT=".*":GRUB_CMDLINE_LINUX_DEFAULT="quiet net.ifnames=0":' \ -i /etc/default/grub update-grub grub-install --no-floppy --recheck --modules="biosdisk part_msdos" \ From 07d1f39ce6a9c5f624bcdc6f1a40766eb37ba5e9 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 24 Jul 2017 20:22:21 +0200 Subject: [PATCH 46/52] fix xz discovery --- zlibs/imaging | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/zlibs/imaging b/zlibs/imaging index 4958769..5a7310e 100644 --- a/zlibs/imaging +++ b/zlibs/imaging @@ -116,11 +116,11 @@ image_pack_dist() { } _xz=(xz -zv) - [[ $(command -v pixz) ]] && _xz=pixz + [[ $(command -v pixz) ]] && _xz=(pixz) notice "compressing image with $_xz" silly pushd $workdir - ${_xz} "${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 f6ecc0e41bdd4bc1aa300ac98a673e7a735cde8f Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 11 Sep 2017 13:41:45 +0200 Subject: [PATCH 47/52] implement optional stage4 tar archival this commit adds support for declaring $TAR_STAGE4 in the environment. it will archive and unarchive the stage4 tarball, which is the state at the very end of bootstrapping --- zlibs/bootstrap | 44 ++++++++++++++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 04e9773..59a24ba 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -17,7 +17,7 @@ # You should have received a copy of the GNU General Public License # along with this source code. If not, see . -vars+=(bootstrap_tgz) +vars+=(bootstrap_tgz_stage3 bootstrap_tgz_stage4 TAR_STAGE4) bootstrap_complete_base() { fn bootstrap_complete_base "$@" @@ -26,13 +26,25 @@ bootstrap_complete_base() { notice "bootstrapping $os $arch base" - bootstrap_tgz="$R/tmp/bootstrap-${os}-${arch}.tgz" + bootstrap_tgz_stage3="$R/tmp/bootstrap-${os}-${arch}-stage3.tgz" + bootstrap_tgz_stage4="$R/tmp/bootstrap-${os}-${arch}-stage4.tgz" + + if [[ -n "$TAR_STAGE4" && -f "$bootstrap_tgz_stage4" ]]; then + notice "using the existing stage4 bootstrap tarball found in $R/tmp" + bootstrap_tar_unpack "$bootstrap_tgz_stage4" "$strapdir" || { + die "failed to extract tarball" + zerr + } + return + elif [[ -f "$bootstrap_tgz_stage3" ]]; then + notice "using the existing stage3 bootstrap tarball found in $R/tmp" + bootstrap_tar_unpack "$bootstrap_tgz_stage3" "$strapdir" || { + die "failed to extract tarball" + zerr + } + return + fi - [[ -f $bootstrap_tgz ]] && { - notice "using the existing bootstrap tarball found in $R/tmp" - bootstrap_tar_unpack $strapdir || { die "failed to extract"; zerr } - return 0 - } notice "running debootstrap stage 1" ## deboostrap stage 1 export LANG=C @@ -85,10 +97,12 @@ EOF chroot-script addcachepubkey || zerr } - sleep 1 - - bootstrap_tar_pack || zerr - bootstrap_tar_unpack $strapdir || zerr + if [ -n "$TAR_STAGE4" ]]; then + bootstrap_tar_unpack "$bootstrap_tgz_stage4" "$strapdir" || zerr + else + bootstrap_tar_pack "$bootstrap_tgz_stage3" || zerr + bootstrap_tar_unpack "$bootstrap_tgz_stage3" "$strapdir" || zerr + fi } bootstrap_config_thirdstage() { @@ -122,6 +136,7 @@ EOF bootstrap_tar_pack() { fn bootstrap_tar_pack req=(bootstrap_tgz) + bootstrap_tgz="$1" ckreq || return 1 local _dest=$(dirname $bootstrap_tgz) @@ -144,7 +159,8 @@ bootstrap_tar_pack() { bootstrap_tar_unpack() { fn bootstrap_tar_unpack $@ - local unpath="$1" + local bootstrap_tgz="$1" + local unpath="$2" req=(unpath bootstrap_tgz) ckreq || return 1 @@ -196,4 +212,8 @@ EOF for i in $custmodules; do print $i | sudo tee -a $strapdir/etc/modules >/dev/null done || return 0 + + [[ -n "$TAR_STAGE4" ]] && { + bootstrap_tar_pack "$bootstrap_tgz_stage4" + } } From 0b1a5598cb3dd67b3f08307ecced5866e027e327 Mon Sep 17 00:00:00 2001 From: parazyd Date: Mon, 11 Sep 2017 14:03:24 +0200 Subject: [PATCH 48/52] fixup! implement optional stage4 tar archival --- zlibs/bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 59a24ba..603690a 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -97,7 +97,7 @@ EOF chroot-script addcachepubkey || zerr } - if [ -n "$TAR_STAGE4" ]]; then + if [[ -n "$TAR_STAGE4" ]]; then bootstrap_tar_unpack "$bootstrap_tgz_stage4" "$strapdir" || zerr else bootstrap_tar_pack "$bootstrap_tgz_stage3" || zerr From 703d75224723abbc0bd5da1eeb42afa88aa11a49 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sat, 23 Sep 2017 20:38:55 +0200 Subject: [PATCH 49/52] make aptcache sources.list explicit --- zlibs/sysconf | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/zlibs/sysconf b/zlibs/sysconf index aa2e32e..47f1b3c 100644 --- a/zlibs/sysconf +++ b/zlibs/sysconf @@ -117,9 +117,14 @@ conf_print_sourceslist() { req=(mirror release section) ckreq || return 1 - cat < Date: Sun, 24 Sep 2017 16:17:40 +0200 Subject: [PATCH 50/52] make $inittab append as a for loop --- zlibs/bootstrap | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index 603690a..d4b6787 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -204,16 +204,14 @@ EOF chroot-script -d postunpack || zerr - ## below typically used in arm-sdk - [[ -n "$inittab" ]] && { - print $inittab | sudo tee -a $strapdir/etc/inittab >/dev/null - } + for i in $inittab; do + grep -q "^$i" $strapdir/etc/inittab && continue + print "$i" | sudo tee -a $strapdir/etc/inittab >/dev/null for i in $custmodules; do - print $i | sudo tee -a $strapdir/etc/modules >/dev/null + grep -q "^$i" $strapdir/etc/modules && continue + print "$i" | sudo tee -a $strapdir/etc/modules >/dev/null done || return 0 - [[ -n "$TAR_STAGE4" ]] && { - bootstrap_tar_pack "$bootstrap_tgz_stage4" - } + [[ -n "$TAR_STAGE4" ]] bootstrap_tar_pack "$bootstrap_tgz_stage4" } From 038173aa1f47733c60fced90146fb1f8151b86ea Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 24 Sep 2017 16:19:24 +0200 Subject: [PATCH 51/52] use $_extraopts on mksquashfs this is a new prefered behaviour since we don't always want to imply x86 optimization to the squashfs --- zlibs/bootstrap | 5 +++-- zlibs/iso | 7 ++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index d4b6787..a14ae88 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -207,11 +207,12 @@ EOF for i in $inittab; do grep -q "^$i" $strapdir/etc/inittab && continue print "$i" | sudo tee -a $strapdir/etc/inittab >/dev/null + done for i in $custmodules; do grep -q "^$i" $strapdir/etc/modules && continue print "$i" | sudo tee -a $strapdir/etc/modules >/dev/null - done || return 0 + done - [[ -n "$TAR_STAGE4" ]] bootstrap_tar_pack "$bootstrap_tgz_stage4" + [[ -n "$TAR_STAGE4" ]] && bootstrap_tar_pack "$bootstrap_tgz_stage4" } diff --git a/zlibs/iso b/zlibs/iso index 69ae0f1..defd5aa 100644 --- a/zlibs/iso +++ b/zlibs/iso @@ -103,9 +103,14 @@ iso_squash_strap() { notice "creating squashfs out of strapdir" + _extraopts=() + if [[ "$arch" = amd64 ]]; then + _extraopts+=(-Xbcj x86) + fi + pushd $workdir sudo mksquashfs $strapdir binary/live/filesystem.squashfs \ - -Xbcj x86 -noappend -comp xz || zerr + ${_extraopts} -noappend -comp xz || zerr popd unset uefi_opt } From a2ec7b89611bbc2a07f645b616c44cf8c37ced40 Mon Sep 17 00:00:00 2001 From: parazyd Date: Sun, 24 Sep 2017 17:15:47 +0200 Subject: [PATCH 52/52] export noninteractive earlier in the bootstrap process --- zlibs/bootstrap | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/zlibs/bootstrap b/zlibs/bootstrap index a14ae88..8b41a03 100644 --- a/zlibs/bootstrap +++ b/zlibs/bootstrap @@ -26,6 +26,10 @@ bootstrap_complete_base() { notice "bootstrapping $os $arch base" + export LANG=C + export LC_ALL=C + export DEBIAN_FRONTEND=noninteractive + bootstrap_tgz_stage3="$R/tmp/bootstrap-${os}-${arch}-stage3.tgz" bootstrap_tgz_stage4="$R/tmp/bootstrap-${os}-${arch}-stage4.tgz" @@ -46,10 +50,6 @@ bootstrap_complete_base() { fi notice "running debootstrap stage 1" - ## deboostrap stage 1 - export LANG=C - export LC_ALL=C - export DEBIAN_FRONTEND=noninteractive sudo -E "$LIBPATH/extra/debootstrap/debootstrap" \ --keyring="$LIBPATH/extra/devuan-keyring/keyrings/devuan-archive-keyring.gpg" \