Steps to build an ISO locally The first step is to use livecd-rootfs to build artifacts # create a bionic build environment $ multipass launch bionic -n isobuilder --disk 50G --mem 3G #15G for livecd-rootfs, 35G for a full build $ multipass shell isobuilder $ git clone https://github.com/chrisglass/ubuntu-old-fashioned $ cd ubuntu-old-fashioned $ ./setup-old-fashioned -> select the serie, ubuntu/master for impish builds $ cd ~/livecd-rootfs # apply fix that hasn't been merged yet $ sudo -E old-fashioned-image-build --series impish --project ubuntu --subproject canary --image-format squashfs --use-chroot-cache Optional set up of a local squid deb proxy $ sudo apt install squid-deb-proxy $ export LXD_ADDRESS=$(ifconfig lxdbr0 | grep 'inet' | cut -d: -f2 | awk '{ print $2}') $ sudo -E bash -c 'cat > /etc/apt/apt.conf.d/30squid-proxy << EOF Acquire::http::Proxy "http://$LXD_ADDRESS:8000"; EOF' $ sudo editor /etc/squid-deb-proxy/autogenerated/allowed-networks-src.acl Add the container IP to the list The next step is to use ubuntu-cdimage / debian-cd / live-build to use the generated artifacts and turn them into an ISO = hackish but working = $ export CDIMAGE_NOSYNC=1 $ export CDIMAGE_ROOT=/home/ubuntu/cdimage/ $ export PATH=/home/ubuntu/cdimage/bin:$PATH $ cd ~ $ bzr branch https://code.launchpad.net/~ubuntu-cdimage/ubuntu-cdimage/mainline cdimage $ cd cdimage $ bzr branch lp:~ubuntu-cdimage/debian-cd/ubuntu debian-cd $ sudo apt install procmail python-apt rename liblz4-tool xorriso genisoimage $ mkdir -p ftp/dists/impish $ cd ftp/dists $ rsync --recursive --links --perms --times --compress --progress --delete rsync://archive.ubuntu.com/ubuntu/dists/impish/ impish $ rsync --recursive --links --perms --times --compress --progress --delete rsync://archive.ubuntu.com/ubuntu/dists/impish-updates/ impish-updates $ cd ~/cdimage $ git clone https://git.launchpad.net/germinate $ mkdir -p ftp/pool/main/u/ubuntu-keyring $ wget http://archive.ubuntu.com/ubuntu/pool/main/u/ubuntu-keyring/ubuntu-keyring_2021.03.26_all.deb -O/home/ubuntu/cdimage/ftp/pool/main/u/ubuntu-keyring/ubuntu-keyring_2021.03.26_all.deb $ apply the hackish patch there === modified file 'lib/cdimage/livefs.py' --- lib/cdimage/livefs.py 2020-12-03 21:38:05 +0000 +++ lib/cdimage/livefs.py 2020-12-14 20:48:18 +0000 @@ -660,6 +660,7 @@ def download_live_items(config, arch, item): + return True output_dir = live_output_directory(config) found = False @@ -789,6 +790,8 @@ output_dir = live_output_directory(config) osextras.mkemptydir(output_dir) + os.system("cp /home/ubuntu/build.output/* %s" % output_dir) + os.system("rename s/livecd.ubuntu/amd64/ %s/* " % output_dir) if (config["CDIMAGE_LIVE"] or config["CDIMAGE_SQUASHFS_BASE"] or config["CDIMAGE_PREINSTALLED"]): got_image = False $ SUBPROJECT=canary DIST=impish PROJECT=ubuntu DEBUG=1 for-project ubuntu cron.daily-live 2> ftp/pool/deblist $ cd ftp/pool $ grep 'deb failed: No' deblist | awk '{print $3}' | sed 's#.*pool/##' | xargs -n1 dirname | sort | uniq | xargs -n1 mkdir -p $ grep 'deb failed: No' deblist | awk '{print $3}' | sed 's#.*pool/##' | xargs -I@ wget "http://archive.ubuntu.com/ubuntu/pool/"@ -O@ $ cd ~/cdimage $ mkdir -p /home/ubuntu/cdimage/ftp/pool/main/c/cd-boot-images-amd64/ $ wget http://archive.ubuntu.com/ubuntu/pool/main/c/cd-boot-images-amd64/cd-boot-images-amd64_14_all.deb -O/home/ubuntu/cdimage/ftp/pool/main/c/cd-boot-images-amd64/cd-boot-images-amd64_14_all.deb (check the current version) $ mkdir -p /home/ubuntu/cdimage/ftp/pool/main/m/memtest86+/ $ wget http://archive.ubuntu.com/ubuntu/pool/main/m/memtest86+/memtest86+_5.01-3.1ubuntu4_amd64.deb -O/home/ubuntu/cdimage/ftp/pool/main/m/memtest86+/memtest86+_5.01-3.1ubuntu4_amd64.deb On bionic needs to apply the fix from http://launchpadlibrarian.net/544367331/initramfs-tools_0.136ubuntu6.5_0.136ubuntu6.6.diff.gz (was https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1832108 for < impish) (and install zstd!) $ SUBPROJECT=canary DIST=impish PROJECT=ubuntu DEBUG=1 for-project ubuntu cron.daily-live The image should be available as scratch/ubuntu/impish/daily-live/debian-cd/amd64/impish-desktop-canary-amd64.raw