#!/bin/bash # For some reason, building chroots for buster from stretch requires libdebian-installer4 0.119 instead of 0.110, c.f. https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=904699 ... installed it by manually downloading and dpkg -i the .deb readonly DISTRIB=buster readonly INIT_DIR=$PWD #readonly ARCHS="amd64" #readonly ARCHS="i386 armhf armel arm64" readonly ARCHS="arm64" function main() { for ARCH in $ARCHS do build_chroot $ARCH done } function build_chroot() { local ARCH=$1 local CHROOT=chroot-${DISTRIB}-${ARCH} echo "" echo "Starting build for $ARCH" echo "" cd /tmp/ cdebootstrap --arch=${ARCH} --foreign ${DISTRIB} ./$CHROOT http://deb.debian.org/debian/ cp /usr/bin/qemu-arm-static $CHROOT/usr/bin/ cp /usr/bin/qemu-aarch64-static $CHROOT/usr/bin/ cp /etc/resolv.conf $CHROOT/etc/resolv.conf chroot $CHROOT apt update chroot $CHROOT apt dist-upgrade chroot $CHROOT apt install -y build-essential debhelper cmake wget devscripts if [ "$ARCH" == "amd64" ]; then chroot $CHROOT wget https://github.com/tj/n/archive/v4.1.0.tar.gz chroot $CHROOT tar -xvzf v4.1.0.tar.gz chroot $CHROOT /bin/bash -c "cd n-4.1.0; make install" chroot $CHROOT n 10 # We take nodjes version 10 because idk fi chroot $CHROOT apt clean cd $CHROOT echo "Now creating tarball with the filesystem ..." tar -czf $INIT_DIR/${DISTRIB}-${ARCH}.tgz ./* echo "" echo "Output chroot archive should be available as $INIT_DIR/${DISTRIB}-${ARCH}.tgz" echo "" } main