diff --git a/helpers/DATA/debian-installer/chmod_755_ld-linux.patch b/helpers/DATA/debian-installer/chmod_755_ld-linux.patch
new file mode 100644
index 0000000000000000000000000000000000000000..61bba962fba3d07aeca670f3b45d83fb8b72e66d
--- /dev/null
+++ b/helpers/DATA/debian-installer/chmod_755_ld-linux.patch
@@ -0,0 +1,12 @@
+--- a/build/Makefile	2023-05-17 02:42:44.707584584 -0600
++++ b/build/Makefile	2023-05-17 02:44:14.563930750 -0600
+@@ -440,6 +440,9 @@
+ 
+ ifeq ($(DEB_HOST_ARCH_OS),linux)
+ ifdef KERNELVERSION
++ifeq ($(DEB_HOST_ARCH),amd64)
++	chmod 755 $(TREE)/lib/$(DEB_HOST_MULTIARCH)/ld-linux*
++endif
+ 	# Set up modules.dep, ensure there is at least one standard dir (kernel
+ 	# in this case), so depmod will use its prune list for archs with no
+ 	# modules.
diff --git a/helpers/DATA/debian-installer/di_focal/1422_1421.diff b/helpers/DATA/debian-installer/di_focal/1422_1421.diff
new file mode 100644
index 0000000000000000000000000000000000000000..f62a271425d0b111575992f2fbd2df04e13b91b6
--- /dev/null
+++ b/helpers/DATA/debian-installer/di_focal/1422_1421.diff
@@ -0,0 +1,35 @@
+=== modified file 'build/Makefile'
+--- build/Makefile	2010-11-05 16:34:29 +0000
++++ build/Makefile	2011-03-01 11:42:39 +0000
+@@ -294,6 +294,7 @@
+ 	rm -rf $(TREE)
+ 	# Set up the basic files [u]dpkg needs.
+ 	mkdir -p $(DPKGDIR)/info
++	ln -nsf . $(DPKGDIR)/info/$(shell dpkg --print-architecture)
+ 	touch $(DPKGDIR)/status
+ 	# Create a tmp tree
+ 	mkdir -p $(TREE)/tmp
+@@ -457,6 +458,7 @@
+ 
+ 	mkdir -p $(EXTRAUDEBSDIR)
+ 	mkdir -p $(EXTRAUDEBSDPKGDIR)/info $(EXTRAUDEBSDPKGDIR)/updates
++	ln -nsf . $(EXTRAUDEBSDPKGDIR)/info/$(shell dpkg --print-architecture)
+ 	touch $(EXTRAUDEBSDPKGDIR)/status $(EXTRAUDEBSDPKGDIR)/available
+ 
+ ifdef EXTRADRIVERS
+
+#=== modified file 'debian/changelog'
+#--- debian/changelog	2011-03-01 10:36:50 +0000
+#+++ debian/changelog	2011-03-01 11:42:39 +0000
+#@@ -1,3 +1,10 @@
+#+debian-installer (20101020ubuntu21) UNRELEASED; urgency=low
+#+
+#+  * Install /var/lib/dpkg/info/$(dpkg --print-architecture) -> . symlink so
+#+    that images build correctly in the presence of multiarch dpkg.
+#+
+#+ -- Colin Watson <cjwatson@ubuntu.com>  Tue, 01 Mar 2011 11:41:38 +0000
+#+
+# debian-installer (20101020ubuntu20) natty; urgency=low
+# 
+#   * Stop building the armel dove subarchitecture; it no longer has a kernel
+#
diff --git a/helpers/DATA/debian-installer/di_focal/1677_1676.diff b/helpers/DATA/debian-installer/di_focal/1677_1676.diff
new file mode 100644
index 0000000000000000000000000000000000000000..8a497ecaf0c3260c517a968db3e79f31144e6ba4
--- /dev/null
+++ b/helpers/DATA/debian-installer/di_focal/1677_1676.diff
@@ -0,0 +1,46 @@
+=== modified file 'build/Makefile'
+#--- build/Makefile	2011-12-15 15:35:38 +0000
+#+++ build/Makefile	2012-04-18 05:24:59 +0000
+#@@ -493,6 +493,12 @@
+# 		`find $(TEMP) -type f -a \( -perm +0111 -o -name '*.so' -o -name '*.so.*' \) | \
+# 		 grep -v udeblibs | grep -v 'usr/lib/xorg/modules/.*\.so'`
+# 
+#+ifeq ($(DEB_HOST_ARCH),armhf)
+#+	# armhf has two linkers for now, while the world gets sorted
+#+	mkdir -p $(TREE)/lib/arm-linux-gnueabihf
+#+	ln -s /lib/ld-linux-armhf.so.3 $(TREE)/lib/arm-linux-gnueabihf/ld-linux.so.3
+#+endif
+#+
+# ifeq ($(DEB_HOST_ARCH_OS),hurd)
+# 	# On Hurd the SONAME for the dynamic linker is ld.so.1, but binaries
+# 	# have the ld.so symlink as the interpreter. Ideally mklibs should
+#
+=== modified file 'build/config/armhf.cfg'
+--- build/config/armhf.cfg	2012-04-11 08:52:18 +0000
++++ build/config/armhf.cfg	2012-04-18 05:24:59 +0000
+@@ -1,5 +1,7 @@
+ SUBARCH_SUPPORTED = omap omap4 armadaxp
+ 
++MKLIBS = mklibs --ldlib=/lib/ld-linux-armhf.so.3
++
+ KERNELMAJOR = 2.6
+ KERNELVERSION = 3.2.0-23
+ KERNEL_FLAVOUR = di
+
+#=== modified file 'debian/changelog'
+#--- debian/changelog	2012-04-13 13:14:35 +0000
+#+++ debian/changelog	2012-04-18 05:24:59 +0000
+#@@ -1,3 +1,12 @@
+#+debian-installer (20101020ubuntu134) precise; urgency=low
+#+
+#+  * Call mklibs with a hardcoded --ldlib in armhf.cfg, so we get a
+#+    deterministic result in our linker search, and then add the
+#+    symlink from the old linker path in build/Makefile (LP: #984007)
+#+  * Rebuild with latest omap4 kernels for ext2 support (LP: #984180)
+#+
+#+ -- Adam Conrad <adconrad@ubuntu.com>  Tue, 17 Apr 2012 23:20:29 -0600
+#+
+# debian-installer (20101020ubuntu133) precise; urgency=low
+# 
+#   * Move armel/omap4 and armhf/omap4 to 3.2.0-1412.
+#
diff --git a/helpers/DATA/debian-installer/di_focal/2057_2056.diff b/helpers/DATA/debian-installer/di_focal/2057_2056.diff
new file mode 100644
index 0000000000000000000000000000000000000000..9e81bc202afa283ca439046b1ae4bb3cfde89d3f
--- /dev/null
+++ b/helpers/DATA/debian-installer/di_focal/2057_2056.diff
@@ -0,0 +1,684 @@
+=== modified file 'build/Makefile'
+--- build/Makefile	2015-01-22 12:10:03 +0000
++++ build/Makefile	2015-03-17 21:09:21 +0000
+@@ -414,6 +414,14 @@
+ 
+ 	# These files are used to build special kernel images for some
+ 	# subarchitectures. Move them out of the way.
++	#
++	# Merge note on the last if:
++	# On Debian, the first two if statements have the side-effect of
++	# moving the dtb files under $(TEMP)/lib. The device-tree
++	# media type expects this and will look for the dtbs there.
++	# Ubuntu installs dtbs into a different path (under
++	# /lib/firmware), so we need to simulate that side-effect
++	# here.
+ 	$(foreach VERSION,$(KERNELVERSION), \
+ 		if [ -d $(TREE)/usr/lib/kernel-image-$(VERSION) ]; then \
+ 			mv $(TREE)/usr/lib/kernel-image-$(VERSION) \
+@@ -422,6 +430,10 @@
+ 		if [ -d $(TREE)/usr/lib/linux-image-$(VERSION) ]; then \
+ 			mv $(TREE)/usr/lib/linux-image-$(VERSION) \
+ 				$(TEMP)/lib; \
++		fi; \
++		if [ -d $(TREE)/lib/firmware/$(VERSION)/device-tree ]; then \
++			cp -a $(TREE)/lib/firmware/$(VERSION)/device-tree \
++				$(TEMP)/lib; \
+ 		fi;)
+ endif
+ endif
+#@@ -763,6 +775,16 @@
+# 	update-manifest $@ $(MANIFEST-KERNEL)
+# endif
+# 
+#+$(DTBS): $(TEMP_KERNEL)
+#+	mkdir -p $(SOME_DEST)/$(EXTRANAME)
+#+	set -ex ; for dtb in $$(find $(TEMP_DTBS) -name "*.dtb") ; do \
+#+		tgt=$(SOME_DEST)/$(EXTRANAME)$$(basename $$dtb); \
+#+		cp $$dtb $$tgt ; \
+#+		update-manifest $$tgt "Device Tree Blob: $$(basename $$dtb)";\
+#+	done
+#+	cp boot/README.device-tree $@
+#+	update-manifest $@ "Device Tree Blobs README"
+#+
+# # bootable images
+# $(BOOT): $(TEMP_BOOT)
+# 	install -m 644 -D $(TEMP_BOOT)$(GZIPPED) $@
+
+#=== added file 'build/boot/README.device-tree'
+#--- build/boot/README.device-tree	1970-01-01 00:00:00 +0000
+#+++ build/boot/README.device-tree	2015-02-13 23:50:29 +0000
+#@@ -0,0 +1,2 @@
+#+This directory contains all of the device-tree files shipped by the Ubuntu
+#+kernel package.
+
+=== added directory 'build/boot/arm64'
+=== added directory 'build/boot/arm64/grub'
+=== added file 'build/boot/arm64/grub/grub-efi.cfg'
+#--- build/boot/arm64/grub/grub-efi.cfg	1970-01-01 00:00:00 +0000
+#+++ build/boot/arm64/grub/grub-efi.cfg	2015-02-24 04:58:57 +0000
+#@@ -0,0 +1,3 @@
+#+set menu_color_normal=cyan/blue
+#+set menu_color_highlight=white/blue
+#+
+
+#=== modified file 'build/config/arm64.cfg'
+#--- build/config/arm64.cfg	2015-05-09 07:52:07 +0000
+#+++ build/config/arm64.cfg	2015-05-12 16:01:14 +0000
+#@@ -1,14 +1,98 @@
+#-SUBARCH_SUPPORTED = generic
+#-
+#-MKLIBS = mklibs-copy
+#+MEDIUM_SUPPORTED = cdrom netboot device-tree
+# 
+# KERNELMAJOR = 2.6
+#-KERNELVERSION = 3.19.0-17
+#+KERNELVERSION = 3.19.0-17-generic
+# KERNEL_FLAVOUR = di
+# KERNELIMAGEVERSION = $(KERNELVERSION)
+#-KERNELNAME = $(foreach ver,$(KERNELVERSION),vmlinuz-$(ver))
+#+KERNELNAME = vmlinuz
+# 
+#-VERSIONED_SYSTEM_MAP = t
+#+GRUB_EFI=y
+#+GRUB_PLATFORM=arm64-efi
+#+GRUB_EFI_NAME=aa64
+#+GRUB_FONT = /usr/share/grub/ascii.pf2
+# 
+# arch_boot_screens:
+# arch_tree:
+#+
+#+# Extract GRUB EFI files.
+#+.PHONY: arm64_grub_efi
+#+arm64_grub_efi:
+#+ifeq ($(GRUB_EFI),y)
+#+	efi-image $(TEMP_GRUB_EFI) arm64-efi aa64 $(NETBOOT_PATH)
+#+endif
+#+
+#+
+#+# Supply GRUB EFI configuration.
+#+.PHONY: arch_cd_info_dir
+#+arch_cd_info_dir: arm64_grub_efi
+#+	-rm -f $(TEMP_CD_INFO_DIR)/*
+#+	mkdir -p $(TEMP_CD_INFO_DIR)
+#+
+#+	if [ "$(GRUB_EFI)" = y ]; then \
+#+		set -e; \
+#+		mkdir -p $(TEMP_CD_INFO_DIR)/grub/arm64-efi; \
+#+		cp -a $(TEMP_GRUB_EFI)/efi.img $(TEMP_CD_INFO_DIR)/grub/; \
+#+		grub-gencfg \
+#+			KERNEL /%install%/vmlinuz \
+#+			INITRD /%install%/initrd.gz \
+#+			HEADER boot/arm64/grub/grub-efi.cfg \
+#+		> $(TEMP_CD_INFO_DIR)/grub/grub.cfg; \
+#+		cp -a $(GRUB_FONT) $(TEMP_CD_INFO_DIR)/grub/font.pf2; \
+#+		cp -a $(TEMP_GRUB_EFI)/boot/grub/arm64-efi/* \
+#+			$(TEMP_CD_INFO_DIR)/grub/arm64-efi/; \
+#+	fi
+#+
+#+.PHONY: arch_miniiso
+#+arch_miniiso: arm64_grub_efi
+#+	-rm -f $(TEMP_CD_TREE)/*
+#+	mkdir -p $(TEMP_CD_TREE)
+#+
+#+	ln -f $(TEMP_KERNEL) $(TEMP_CD_TREE)/linux
+#+	ln -f $(TEMP_INITRD) $(TEMP_CD_TREE)/initrd.gz
+#+
+#+	mkdir -p $(TEMP_CD_TREE)/.disk
+#+	echo "$(DISTRIBUTION_NAME) $(DEBIAN_VERSION) $(ARCH) - netboot mini.iso $(BUILD_DATE)"\
+#+	> $(TEMP_CD_TREE)/.disk/info
+#+
+#+	if [ "$(GRUB_EFI)" = y ]; then \
+#+		set -e; \
+#+		mkdir -p $(TEMP_CD_TREE)/boot/grub/arm64-efi; \
+#+		cp -a $(TEMP_GRUB_EFI)/efi.img $(TEMP_CD_TREE)/boot/grub/; \
+#+		grub-gencfg \
+#+			KERNEL /linux \
+#+			INITRD /initrd.gz \
+#+			HEADER boot/arm64/grub/grub-efi.cfg \
+#+		> $(TEMP_CD_TREE)/boot/grub/grub.cfg; \
+#+		cp -a $(GRUB_FONT) $(TEMP_CD_TREE)/boot/grub/font.pf2; \
+#+		cp -a $(TEMP_GRUB_EFI)/boot/grub/arm64-efi/* \
+#+			$(TEMP_CD_TREE)/boot/grub/arm64-efi/; \
+#+	fi
+#+
+#+	if [ "$(GRUB_EFI)" = y ]; then \
+#+		xorriso -as mkisofs -r -J -c boot.cat \
+#+			-boot-load-size 4 -boot-info-table \
+#+			-eltorito-alt-boot \
+#+			--efi-boot boot/grub/efi.img -no-emul-boot \
+#+			-o $(TEMP_MINIISO) $(TEMP_CD_TREE); \
+#+	fi
+#+
+#+.PHONY: arch_netboot_dir
+#+arch_netboot_dir: arm64_grub_efi
+#+	-rm -f $(TEMP_NETBOOT_DIR)
+#+	mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)
+#+	cp $(TEMP_KERNEL) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/linux
+#+	cp $(TEMP_INITRD) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/initrd.gz
+#+
+#+	if [ "$(GRUB_EFI)" = y ]; then \
+#+		set -e; \
+#+		mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/arm64-efi; \
+#+		cp -a $(TEMP_GRUB_EFI)/bootnetaa64.efi $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH); \
+#+		cp -a $(GRUB_FONT) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/font.pf2; \
+#+		cp -a $(TEMP_GRUB_EFI)/boot/grub/arm64-efi/* \
+#+			$(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/arm64-efi/; \
+#+		grub-gencfg \
+#+			KERNEL /$(NETBOOT_PATH)/linux \
+#+			INITRD /$(NETBOOT_PATH)/initrd.gz \
+#+			HEADER boot/arm64/grub/grub-efi.cfg \
+#+		> $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/grub.cfg; \
+#+	fi
+
+=== added directory 'build/config/arm64/cdrom'
+=== added file 'build/config/arm64/cdrom.cfg'
+#--- build/config/arm64/cdrom.cfg	1970-01-01 00:00:00 +0000
+#+++ build/config/arm64/cdrom.cfg	2015-02-24 05:14:26 +0000
+#@@ -0,0 +1,3 @@
+#+FLAVOUR_SUPPORTED = grub
+#+
+#+MEDIA_TYPE = CD-ROM
+
+=== added file 'build/config/arm64/cdrom/grub.cfg'
+#--- build/config/arm64/cdrom/grub.cfg	1970-01-01 00:00:00 +0000
+#+++ build/config/arm64/cdrom/grub.cfg	2015-02-24 05:14:26 +0000
+#@@ -0,0 +1,8 @@
+#+MEDIA_TYPE = CD-ROM
+#+TARGET = $(INITRD) $(KERNEL) $(DEBIAN_CD_INFO)
+#+
+#+MANIFEST-KERNEL = "kernel for use with EFI to build a CD"
+#+MANIFEST-INITRD = "initrd for use with EFI to build a CD"
+#+MANIFEST-DEBIAN_CD_INFO = "EFI config files for CD"
+#+
+#+TYPE = cdrom/grub
+
+#=== added file 'build/config/arm64/device-tree.cfg'
+#--- build/config/arm64/device-tree.cfg	1970-01-01 00:00:00 +0000
+#+++ build/config/arm64/device-tree.cfg	2015-02-13 23:51:06 +0000
+#@@ -0,0 +1,4 @@
+#+MEDIA_TYPE = device-tree blobs
+#+
+#+TARGET = $(DTBS)
+#+EXTRANAME = $(MEDIUM)/
+
+#=== removed file 'build/config/arm64/generic.cfg'
+#--- build/config/arm64/generic.cfg	2014-01-27 14:09:42 +0000
+#+++ build/config/arm64/generic.cfg	1970-01-01 00:00:00 +0000
+#@@ -1,7 +0,0 @@
+#-MEDIUM_SUPPORTED = netboot
+#-
+#-# The version of the kernel to use.
+#-KERNELVERSION := $(KERNELVERSION)-generic
+#-# we use non-versioned filenames in the generic kernel udeb
+#-KERNELNAME = vmlinuz
+#-VERSIONED_SYSTEM_MAP =
+
+#=== removed file 'build/config/arm64/generic/netboot.cfg'
+#--- build/config/arm64/generic/netboot.cfg	2015-02-27 10:58:49 +0000
+#+++ build/config/arm64/generic/netboot.cfg	1970-01-01 00:00:00 +0000
+#@@ -1,33 +0,0 @@
+#-MEDIA_TYPE = netboot image
+#-TARGET = $(TEMP_INITRD) $(TEMP_KERNEL) all-generic
+#-EXTRANAME = $(MEDIUM)/
+#-INITRD_FS = initramfs
+#-
+#-MANIFEST-INITRD = "netboot initrd"
+#-MANIFEST-KERNEL = "kernel image to netboot"
+#-
+#-generic:
+#-	mkdir -p $(SOME_DEST)/$(EXTRANAME)/
+#-	cp $(TEMP_KERNEL) $(SOME_DEST)/$(EXTRANAME)/vmlinuz
+#-	cp $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)/initrd.gz
+#-	update-manifest $(SOME_DEST)/$(EXTRANAME)vmlinuz "Linux kernel for generic ARM64"
+#-	update-manifest $(SOME_DEST)/$(EXTRANAME)initrd.gz "initrd for generic ARM64"
+#-
+#-
+#-xgene:
+#-	# Make sure our build environment is clean
+#-	$(eval INSTALL_PATH=$(SOME_DEST)/netboot/xgene)
+#-	rm -rf $(INSTALL_PATH)
+#-	mkdir -p $(INSTALL_PATH)
+#-
+#-	# Generate uImage/uInitrd
+#-	mkimage -A arm -O linux -T kernel -C none -a 0x80000 -e 0x80000 -n "Ubuntu kernel" -d $(TEMP_KERNEL) $(INSTALL_PATH)/uImage
+#-	mkimage -A arm -O linux -T ramdisk -C none -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(INSTALL_PATH)/uInitrd
+#-
+#-	install -m644 $(TEMP)/tree/lib/firmware/${KERNELVERSION}/device-tree/apm/apm-mustang.dtb $(INSTALL_PATH)
+#-
+#-	update-manifest $(INSTALL_PATH)/uImage "Linux kernel for X-Gene Boards"
+#-	update-manifest $(INSTALL_PATH)/uInitrd "initrd for X-Gene Boards"
+#-	update-manifest $(INSTALL_PATH)/apm-mustang.dtb "Device Tree file for APM X-Gene Mustang Board"
+#-
+#-all-generic: generic xgene
+
+=== added file 'build/config/arm64/netboot.cfg'
+#--- build/config/arm64/netboot.cfg	1970-01-01 00:00:00 +0000
+#+++ build/config/arm64/netboot.cfg	2015-02-24 05:45:09 +0000
+#@@ -0,0 +1,37 @@
+#+MEDIA_TYPE = netboot image
+#+
+#+NETBOOT_DIR_TARGETS = $(TEMP_INITRD) $(TEMP_KERNEL)
+#+TARGET = $(NETBOOT_DIR) $(NETBOOT_TAR) $(MINIISO)
+#+EXTRANAME = $(MEDIUM)/
+#+
+#+MANIFEST-NETBOOT_DIR = "PXE boot directory for tftp server"
+#+MANIFEST-NETBOOT_TAR = "tarball of PXE boot directory"
+#+MANIFEST-MINIISO = "tiny CD image that boots the netboot installer"
+#+
+#+.PHONY: arch_netboot_dir
+#+arch_netboot_dir:
+#+	-rm -f $(TEMP_NETBOOT_DIR)
+#+	mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)
+#+	cp $(TEMP_KERNEL) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/linux
+#+	cp $(TEMP_INITRD) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/initrd.gz
+#+
+#+	if [ "$(GRUB_EFI)" = y ]; then \
+#+		set -e; \
+#+		mkdir -p $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/arm64-efi; \
+#+		cp -a $(TEMP_GRUB_EFI)/bootnetaa64.efi $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH); \
+#+		cp -a $(GRUB_FONT) $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/font.pf2; \
+#+		cp -a $(TEMP_GRUB_EFI)/boot/grub/arm64-efi/* \
+#+			$(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/arm64-efi/; \
+#+		grub-gencfg \
+#+			KERNEL /$(NETBOOT_PATH)/linux \
+#+			INITRD /$(NETBOOT_PATH)/initrd.gz \
+#+			HEADER boot/arm64/grub/grub-efi.cfg \
+#+		> $(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/grub/grub.cfg; \
+#+	fi
+#+
+#+	# Generate images for X-Gene systems using U-Boot.
+#+	# They don't currently support bootz.
+#+	$(eval XU_INSTALL_PATH=$(TEMP_NETBOOT_DIR)/$(NETBOOT_PATH)/xgene-uboot)
+#+	mkdir -p $(XU_INSTALL_PATH)
+#+	mkimage -A arm -O linux -T kernel -C none -a 0x80000 -e 0x80000 -n "Ubuntu kernel" -d $(TEMP_KERNEL) $(XU_INSTALL_PATH)/uImage
+#+	mkimage -A arm -O linux -T ramdisk -C none -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(XU_INSTALL_PATH)/uInitrd
+
+#=== modified file 'build/config/dir'
+#--- build/config/dir	2010-08-25 22:06:28 +0000
+#+++ build/config/dir	2015-02-13 23:50:29 +0000
+#@@ -62,6 +62,7 @@
+# # The files we may want to have in dest/
+# INITRD = $(SOME_DEST)/$(EXTRANAME)initrd.gz
+# KERNEL = $(foreach name,$(KERNELNAME),$(SOME_DEST)/$(EXTRANAME)$(name))
+#+DTBS = $(SOME_DEST)/$(EXTRANAME)README
+# BOOT = $(SOME_DEST)/$(EXTRANAME)boot.img$(GZIPPED)
+# ROOT = $(SOME_DEST)/$(EXTRANAME)root.img$(GZIPPED)
+# EXTRA = $(SOME_DEST)/$(EXTRANAME).img$(GZIPPED)
+#@@ -76,6 +77,7 @@
+# TEMP_INITRD = $(TEMP)/initrd.gz
+# TEMP_UDEB_LIST = $(TEMP)/udeb.list
+# TEMP_KERNEL = $(foreach name,$(KERNELNAME),$(TEMP)/$(name))
+#+TEMP_DTBS = $(TEMP)/lib
+# TEMP_BOOT = $(TEMP)/boot.img
+# TEMP_ROOT = $(TEMP)/root.img
+# TEMP_MINIISO = $(TEMP)/mini.iso
+
+#=== added file 'build/pkg-lists/cdrom/arm64.cfg'
+#--- build/pkg-lists/cdrom/arm64.cfg	1970-01-01 00:00:00 +0000
+#+++ build/pkg-lists/cdrom/arm64.cfg	2015-02-24 05:14:26 +0000
+#@@ -0,0 +1,11 @@
+#+fat-modules-${kernel:Version}
+#+storage-core-modules-${kernel:Version}
+#+input-modules-${kernel:Version}
+#+console-setup-udeb
+#+usb-modules-${kernel:Version} ?
+#+#serial-modules-${kernel:Version}
+#+usb-serial-modules-${kernel:Version} ?
+#+uinput-modules-${kernel:Version} ?
+#+
+#+# also support MMC/SD cards
+#+mmc-modules-${kernel:Version} ?
+
+#=== added directory 'build/pkg-lists/cdrom/grub'
+#=== added file 'build/pkg-lists/cdrom/grub/arm64.cfg'
+#--- build/pkg-lists/cdrom/grub/arm64.cfg	1970-01-01 00:00:00 +0000
+#+++ build/pkg-lists/cdrom/grub/arm64.cfg	2015-02-24 05:14:26 +0000
+#@@ -0,0 +1,2 @@
+#+# This image is based on the regular cdrom image, and gets all the packages
+#+# from that one too.
+
+#=== added file 'build/pkg-lists/cdrom/grub/common'
+#--- build/pkg-lists/cdrom/grub/common	1970-01-01 00:00:00 +0000
+#+++ build/pkg-lists/cdrom/grub/common	2015-03-17 21:09:21 +0000
+#@@ -0,0 +1,3 @@
+#+# This image is based on the regular cdrom image, and gets all the packages
+#+# from that one too.
+#+
+
+=== added directory 'build/pkg-lists/device-tree'
+#=== added file 'build/pkg-lists/device-tree/arm64.cfg'
+#--- build/pkg-lists/device-tree/arm64.cfg	1970-01-01 00:00:00 +0000
+#+++ build/pkg-lists/device-tree/arm64.cfg	2015-02-13 23:51:06 +0000
+#@@ -0,0 +1,1 @@
+#+# Empty
+
+=== added file 'build/pkg-lists/device-tree/common'
+#--- build/pkg-lists/device-tree/common	1970-01-01 00:00:00 +0000
+#+++ build/pkg-lists/device-tree/common	2015-02-13 23:50:29 +0000
+#@@ -0,0 +1,1 @@
+#+#include "kernel"
+
+#=== modified file 'build/util/efi-image'
+#--- build/util/efi-image	2012-10-15 20:03:40 +0000
+#+++ build/util/efi-image	2015-02-24 04:58:57 +0000
+#@@ -22,13 +22,14 @@
+# # it exists.
+# 
+# if [ -z "$1" ] || [ -z "$2" ]; then
+#-	echo "usage: $0 OUTPUT-DIRECTORY GRUB-PLATFORM EFI-NAME"
+#+	echo "usage: $0 OUTPUT-DIRECTORY GRUB-PLATFORM EFI-NAME [NETBOOT-PREFIX]"
+# 	exit 1
+# fi
+# 
+# outdir="$1"
+# platform="$2"
+# efi_name="$3"
+#+netboot_prefix="$4"
+# 
+# memdisk_img=
+# workdir=
+#@@ -144,6 +145,11 @@
+# 		search iso9660 configfile normal memdisk tar part_msdos fat
+# fi
+# 
+#+[ -z "$netboot_prefix" ] || \
+#+grub-mkimage -O "$platform" \
+#+	-o "$outdir/bootnet$efi_name.efi" -p "$netboot_prefix/grub" \
+#+	search configfile normal efinet tftp net
+#+
+# # Stuff it into a FAT filesystem, making it as small as possible.  24KiB
+# # headroom seems to be enough; (x+31)/32*32 rounds up to multiple of 32.
+# size=$(( $(stat -c %s "$workdir/boot$efi_name.efi") / 1024 ))
+
+#=== added file 'build/util/grub-gencfg'
+#--- build/util/grub-gencfg	1970-01-01 00:00:00 +0000
+#+++ build/util/grub-gencfg	2015-03-23 23:27:39 +0000
+#@@ -0,0 +1,210 @@
+#+#!/usr/bin/perl
+#+
+#+# Invoke as:
+#+#
+#+#  ./gen-grub-cfg KEY1 VAL1 KEY2 VAL2 ... -- COMMAND LINE
+#+#
+#+# Keys are:
+#+#    KERNEL             Normal kernel to use (required)
+#+#    INITRD             Normal initrd to use (required)
+#+#    INITRD_GTK         Graphical installer initrd (optional)
+#+#
+#+#    KERNEL64           Alternative kernel for optional 64-bit entries
+#+#    INITRD64           Alternative initrd for optional 64-bit entries
+#+#    INITRD64_GTK       Alternative graphical initrd for optional 64-bit entries
+#+#
+#+#    THEME_PATH         Path (in boot env) where themes are kept
+#+#    HEADER             Local path to file cat include as a header
+#+#
+#+# At least KERNEL and INITRD must be given.
+#+#
+#+# Unsupported:
+#+#    DEBIAN_VERSION
+#+#    BUILD_DATE
+#+#
+#+# TODO: Theme generation from template
+#+#
+#+# When invoked as:
+#+#
+#+#  ./gen-grub-cfg \
+#+#    KERNEL "/%install%/vmlinuz" \
+#+#    KERNEL64 "/%install-amd%/vmlinuz" \
+#+#    INITRD "/%install%/initrd.gz" \
+#+#    INITRD64 "/%install-amd%/initrd.gz" \
+#+#    INITRD_GTK "/%install%/gtk/initrd.gz" \
+#+#    INITRD64_GTK "/%install-amd%/gtk/initrd.gz" \
+#+#    THEME_PATH "/boot/grub/theme/" \
+#+#    HEADER "build/boot/x86/grub/grub-efi.cfg" \
+#+#    -- vga=788
+#+#
+#+# Will reproduce something similar to
+#+# debian-testing-amd64-netinst.iso::/boot/grub/grub.cfg weekly build
+#+# circa 2014-09-27.
+#+
+#+use warnings;
+#+use strict;
+#+
+#+my %VARS;
+#+
+#+while (@ARGV) {
+#+    my $key=shift;
+#+    last if $key eq "--";
+#+
+#+    my $value=shift;
+#+    $VARS{$key}=$value;
+#+}
+#+
+#+my @OPTS = @ARGV;
+#+
+#+die "No kernel?" unless $VARS{KERNEL};
+#+die "No initrd?" unless $VARS{INITRD};
+#+
+#+my $graphical = defined $VARS{INITRD_GTK};
+#+my $sixtyfour = defined $VARS{KERNEL64} && defined $VARS{INITRD64}
+#+    && (!$graphical || defined $VARS{INITRD64_GTK});
+#+my $themed = defined $VARS{THEME_PATH};
+#+
+#+my @menu_number = (1);
+#+
+#+sub print_indented ($)
+#+{
+#+    my ($text) = @_;
+#+    foreach ( split "\n", $text ) {
+#+        my $i = 1;
+#+        print "    " while ( $i++ < $#menu_number );
+#+        print "$_";
+#+        print "\n";
+#+    }
+#+}
+#+
+#+sub menu_theme ()
+#+{
+#+    my $name = join "-", @menu_number;
+#+}
+#+sub print_set_theme ($)
+#+{
+#+    my ($theme) = @_;
+#+    return unless $themed;
+#+
+#+    print_indented("set theme=$VARS{THEME_PATH}$theme\n");
+#+}
+#+
+#+sub start_submenu ($)
+#+{
+#+    my ($title) = @_;
+#+
+#+    print_indented("submenu '$title' {\n");
+#+
+#+    my $theme = menu_theme();
+#+    push @menu_number, 1;
+#+
+#+    print_indented("set menu_color_normal=cyan/blue\n");
+#+    print_indented("set menu_color_highlight=white/blue\n");
+#+    print_set_theme($theme);
+#+}
+#+sub end_submenu ()
+#+{
+#+    pop @menu_number;
+#+    $menu_number[$#menu_number]++;
+#+    print_indented("}\n");
+#+}
+#+
+#+sub menuentry ($;%)
+#+{
+#+    my ($title,%xattr) = @_;
+#+
+#+    $xattr{SixtyFour} ||= 0;
+#+    $xattr{Graphical} ||= 0;
+#+
+#+    $xattr{Expert} ||= 0;
+#+    $xattr{Auto} ||= 0;
+#+    $xattr{Rescue} ||= 0;
+#+    $xattr{Speach} ||= 0;
+#+
+#+    $xattr{Quiet} = !$xattr{Expert} unless defined $xattr{Quiet};
+#+
+#+    return if $xattr{Graphical} && !$graphical;
+#+    return if $xattr{SixtyFour} && !$sixtyfour;
+#+
+#+    die "automated expert?" if $xattr{Expert} && $xattr{Auto};
+#+
+#+    my $kernel = $xattr{SixtyFour} ? $VARS{KERNEL64} : $VARS{KERNEL};
+#+    my $initrd = $xattr{Graphical} ? $VARS{INITRD_GTK} : $VARS{INITRD};
+#+    $initrd = $xattr{Graphical} ? $VARS{INITRD64_GTK} : $VARS{INITRD64}
+#+        if $xattr{SixtyFour};
+#+
+#+    die "no kernel" unless $kernel;
+#+    die "no initrd" unless $initrd;
+#+
+#+    my @cmdline;
+#+    # Ordering here is to allow diffing against previous versions of this file.
+#+    push @cmdline, "desktop=$xattr{Desktop}" if $xattr{Desktop};
+#+    push @cmdline, "priority=low" if $xattr{Expert};
+#+    push @cmdline, ("auto=true", "priority=critical") if $xattr{Auto};
+#+    push @cmdline, @OPTS;
+#+    push @cmdline, "rescue/enable=true" if $xattr{Rescue};
+#+    push @cmdline, "speakup.synth=soft" if $xattr{Speach};
+#+    push @cmdline, "---";
+#+    push @cmdline, "quiet" if $xattr{Quiet};
+#+
+#+    my $cmdline = join(" ", @cmdline);
+#+
+#+    print_indented (<<EOE);
+#+menuentry '$title' {
+#+    set background_color=black
+#+    linux    $kernel $cmdline
+#+    initrd   $initrd
+#+}
+#+EOE
+#+}
+#+
+#+if ( defined $VARS{HEADER} )
+#+{
+#+    open(HEADER, "<$VARS{HEADER}") or die "open header: $!";
+#+    print <HEADER> or die "write header: $!";
+#+    close(HEADER) or die "close header: $!";
+#+}
+#+
+#+print_set_theme(menu_theme());
+#+push @menu_number, 1;
+#+
+#+menuentry("Install");
+#+menuentry("Graphical install", Graphical => 1);
+#+
+#+start_submenu("Advanced options ..."); {
+#+    menuentry("... Expert install", Expert => 1);
+#+    menuentry("... Rescue mode", Rescue => 1);
+#+    menuentry("... Automated install", Auto => 1);
+#+    menuentry("... Graphical expert install", Graphical => 1, Expert => 1);
+#+    menuentry("... Graphical rescue mode", Graphical => 1, Rescue => 1);
+#+    menuentry("... Graphical automated install", Graphical => 1, Auto => 1);
+#+
+#+    start_submenu("... Desktop environment menu ..."); {
+#+
+#+        foreach ( ["GNOME", "gnome"], ["KDE", "kde"], ["LXDE", "lxde"] ) {
+#+            my ($desktop,$opt) = @{$_};
+#+
+#+            my $one = sub { my ($title, %xargs) = @_;
+#+                            $xargs{Desktop} = $opt;
+#+                            menuentry($title, %xargs);
+#+            };
+#+            start_submenu("... $desktop desktop boot menu ..."); {
+#+                $one->("... Install");
+#+                $one->("... Graphical install", Graphical => 1);
+#+
+#+                start_submenu("... $desktop advanced options ..."); {
+#+                    $one->("... Expert install", Expert => 1);
+#+                    $one->("... Automated install", Auto => 1);
+#+                    $one->("... Graphical expert install", Graphical => 1, Expert => 1);
+#+                    $one->("... Graphical automated install", Graphical => 1, Auto => 1);
+#+                } end_submenu(); # $desktop advanced
+#+
+#+                $one->("... Install with speech synthesis", Speach => 1);
+#+                $one->("... Install with speech synthesis", Graphical => 1, Speach => 1);
+#+                $one->("... 64 bit speech install", SixtyFour => 1, Graphical => 1, Speach => 1)
+#+                    if $sixtyfour;
+#+            } end_submenu(); # $desktop submenu
+#+        } # Desktop loop
+#+    } end_submenu(); # Desktop submenu
+#+} end_submenu(); # Advanced
+#+menuentry('Install with speech synthesis', Graphical => $graphical, Speach => 1);
+
+#=== modified file 'debian/changelog'
+#--- debian/changelog	2015-05-09 07:52:07 +0000
+#+++ debian/changelog	2015-05-14 14:24:09 +0000
+#@@ -1,3 +1,25 @@
+#+debian-installer (20101020ubuntu379) UNRELEASED; urgency=medium
+#+
+#+  [ dann frazier ]
+#+  * arm64: Use mklibs instead of cargo-culting mklibs-copy. This
+#+    currently reduces the initrd.gz by just under 1M and drops
+#+    an unnecessary delta against Debian.
+#+  * arm64: kernel and System.map aren't versioned, correct config.
+#+    No functional change.
+#+  * arm64: Stop calling "generic" a subarchitecture
+#+  * arm64: Rename netboot/xgene -> netboot/xgene-uboot
+#+  * Add device-tree medium infrastructure (from Debian)
+#+  * arm64: Enable device-tree medium
+#+  * arm64/xgene-uboot: apm-mustang.dtb is now in the device-tree directory,
+#+    so we can drop it from the xgene-uboot directory.
+#+  * arm64: Create a netboot tarball
+#+  * arm64: Add netboot mini.iso
+#+  * arm64: Build cdrom medium
+#+  * arm64/netboot: Add a grub/efi build for netboot
+#+  * grub-gencfg: Use --- as linux separator
+#+
+#+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com>  Tue, 12 May 2015 15:45:32 -0400
+#+
+# debian-installer (20101020ubuntu378) wily; urgency=medium
+# 
+#   * Move master kernels to 3.19.0-17.
+
+#=== modified file 'debian/control'
+#--- debian/control	2014-10-30 08:19:25 +0000
+#+++ debian/control	2015-04-03 21:16:40 +0000
+#@@ -9,7 +9,7 @@
+# Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-core-dev/debian-installer/ubuntu
+# Build-Conflicts: libnewt-pic [mipsel]
+# # NOTE: Do not edit the next line by hand. See comment below.
+#-Build-Depends: debhelper (>= 7.0.0), apt, apt-utils, gnupg, ubuntu-keyring, dctrl-tools, wget, bc, debiandoc-sgml, xsltproc, docbook-xml, docbook-xsl, libbogl-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], lsb-release, glibc-pic, libslang2-pic (>= 2.0.6-4), libnewt-pic (>= 0.52.2-11.3) [!mipsel], libnewt-dev (>= 0.52.2-11.3) [mipsel], libgcc1 [i386 amd64], cramfsprogs [powerpc ia64 mips mipsel armeb armel], genext2fs (>= 1.3-7.1), e2fsprogs, mklibs (>= 0.1.25), genisoimage (>= 9:1.1.10-1ubuntu2) [!s390 !s390x], genromfs [sparc sparc64], hfsutils [powerpc], dosfstools (>= 3.0.9-1ubuntu2) [i386 ia64 m68k amd64 armel armhf], cpio, devio [armeb armel], parted [armel armhf], slugimage (>= 0.10+r58-6) [armeb armel], u-boot-tools [arm64 armel armhf], syslinux (>= 3:6) [i386 amd64], syslinux-utils (>= 3:6) [i386 amd64], pxelinux (>= 3:6) [i386 amd64], isolinux (>= 3:6) [i386 amd64], syslinux-common (>= 3:6) [i386 amd64], palo [hppa], elilo [ia64], yaboot [powerpc], aboot (>= 0.9b-2) [alpha], silo [sparc], sparc-utils [sparc sparc64], genisovh [mips], tip22 [mips], colo [mipsel], sibyl [mips mipsel], atari-bootstrap [m68k], vmelilo [m68k], m68k-vme-tftplilo [m68k], amiboot [m68k], emile [m68k], emile-bootblocks [m68k], u-boot [armel armhf], shim-signed [amd64], tofrodos [i386 amd64 kfreebsd-i386 kfreebsd-amd64], mtools [i386 ia64 m68k amd64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 armel armhf], po4a [i386 amd64], python3 (>= 3.1) [i386 amd64], module-init-tools [i386 arm64 armeb armel armhf amd64 alpha hppa ia64 m68k mips mipsel powerpc ppc64el s390 sh4 sparc sparc64], bf-utf-source [!s390 !s390x], mkvmlinuz [powerpc], openssl, makefs [kfreebsd-i386 kfreebsd-amd64], grub-pc (>= 1.98~20100101-1) [kfreebsd-i386 kfreebsd-amd64 hurd-i386], xorriso [kfreebsd-i386 kfreebsd-amd64 hurd-i386 ppc64el], grub-efi-amd64-bin (>= 2.00) [amd64], grub-common [amd64], debian-ports-archive-keyring [sh4 sparc64], grub-ieee1275-bin [ppc64el]
+#+Build-Depends: debhelper (>= 7.0.0), apt, apt-utils, gnupg, ubuntu-keyring, dctrl-tools, wget, bc, debiandoc-sgml, xsltproc, docbook-xml, docbook-xsl, libbogl-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], lsb-release, glibc-pic, libslang2-pic (>= 2.0.6-4), libnewt-pic (>= 0.52.2-11.3) [!mipsel], libnewt-dev (>= 0.52.2-11.3) [mipsel], libgcc1 [i386 amd64], cramfsprogs [powerpc ia64 mips mipsel armeb armel], genext2fs (>= 1.3-7.1), e2fsprogs, mklibs (>= 0.1.25), genisoimage (>= 9:1.1.10-1ubuntu2) [!s390 !s390x], genromfs [sparc sparc64], hfsutils [powerpc], dosfstools (>= 3.0.9-1ubuntu2) [i386 ia64 m68k amd64 armel armhf arm64], cpio, devio [armeb armel], parted [armel armhf], slugimage (>= 0.10+r58-6) [armeb armel], u-boot-tools [arm64 armel armhf], syslinux (>= 3:6) [i386 amd64], syslinux-utils (>= 3:6) [i386 amd64], pxelinux (>= 3:6) [i386 amd64], isolinux (>= 3:6) [i386 amd64], syslinux-common (>= 3:6) [i386 amd64], palo [hppa], elilo [ia64], yaboot [powerpc], aboot (>= 0.9b-2) [alpha], silo [sparc], sparc-utils [sparc sparc64], genisovh [mips], tip22 [mips], colo [mipsel], sibyl [mips mipsel], atari-bootstrap [m68k], vmelilo [m68k], m68k-vme-tftplilo [m68k], amiboot [m68k], emile [m68k], emile-bootblocks [m68k], u-boot [armel armhf], shim-signed [amd64], tofrodos [i386 amd64 kfreebsd-i386 kfreebsd-amd64], mtools [i386 ia64 m68k amd64 arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 armel armhf], po4a [i386 amd64], python3 (>= 3.1) [i386 amd64], module-init-tools [i386 arm64 armeb armel armhf amd64 alpha hppa ia64 m68k mips mipsel powerpc ppc64el s390 sh4 sparc sparc64], bf-utf-source [!s390 !s390x], mkvmlinuz [powerpc], openssl, makefs [kfreebsd-i386 kfreebsd-amd64], grub-pc (>= 1.98~20100101-1) [kfreebsd-i386 kfreebsd-amd64 hurd-i386], xorriso [arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 ppc64el], grub-efi-amd64-bin (>= 2.00) [amd64], grub-efi-arm64-bin [arm64], grub-common [amd64 arm64], debian-ports-archive-keyring [sh4 sparc64], grub-ieee1275-bin [ppc64el]
+# # This package has the worst Build-Depends in Debian, so it deserves some
+# # explanation. Note that this comment can also be used to generate a
+# # Build-Depends line, by running the debian/genbuilddeps program.
+#@@ -82,7 +82,7 @@
+# #		default.)
+# #	- hfsutils [powerpc]
+# #		For making bootable HFS USB sticks for powerpc.
+#-#	- dosfstools (>= 3.0.9-1ubuntu2) [i386 ia64 m68k amd64 armel armhf]
+#+#	- dosfstools (>= 3.0.9-1ubuntu2) [i386 ia64 m68k amd64 armel armhf arm64]
+# #		For creating FAT filesystems with mkfs.msdos.
+# #		Of course i386/amd64 use this for floppies, CDs etc.
+# #		ia64 uses it for floppies (?)
+#@@ -151,7 +151,7 @@
+# #	- tofrodos [i386 amd64 kfreebsd-i386 kfreebsd-amd64]
+# #		For todos, used on files that need to be accessible from
+# #		DOS.
+#-#	- mtools [i386 ia64 m68k amd64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 armel armhf]
+#+#	- mtools [i386 ia64 m68k amd64 arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 armel armhf]
+# #		mcopy is used to put files onto FAT filesystems w/o
+# #		mounting them.
+# #	- po4a [i386 amd64]
+#@@ -175,11 +175,11 @@
+# #		Used to create an UFS1 filesystem from a directory tree.
+# #	- grub-pc (>= 1.98~20100101-1) [kfreebsd-i386 kfreebsd-amd64 hurd-i386]
+# #		Used as the CD-ROM's bootloader
+#-#       - xorriso [kfreebsd-i386 kfreebsd-amd64 hurd-i386 ppc64el]
+#+#       - xorriso [arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 ppc64el]
+# #               Used by grub-pc/grub-ieee1275-bin to create the CD-ROM images
+#-#	- grub-efi-amd64-bin (>= 2.00) [amd64]
+#+#	- grub-efi-amd64-bin (>= 2.00) [amd64], grub-efi-arm64-bin [arm64]
+# #		EFI bootloader support.
+#-#	- grub-common [amd64]
+#+#	- grub-common [amd64 arm64]
+# #		For the GRUB font.
+# #	- debian-ports-archive-keyring [sh4 sparc64]
+# #		Used for architectures hosted on debian-ports.org
+
diff --git a/helpers/DATA/debian-installer/di_focal/2144_2143.diff b/helpers/DATA/debian-installer/di_focal/2144_2143.diff
new file mode 100644
index 0000000000000000000000000000000000000000..3ce1be3596812407580c4d06e29c7ebf21bed789
--- /dev/null
+++ b/helpers/DATA/debian-installer/di_focal/2144_2143.diff
@@ -0,0 +1,220 @@
+=== modified file 'build/Makefile'
+#--- build/Makefile	2015-12-09 17:32:28 +0000
+#+++ build/Makefile	2016-04-16 19:45:21 +0000
+#@@ -525,12 +525,6 @@
+# 		`find $(TEMP) -type f -a \( -perm /0111 -o -name '*.so' -o -name '*.so.*' \) | \
+# 		 grep -v udeblibs | grep -v 'usr/lib/xorg/modules/.*\.so'`
+# 
+#-ifeq ($(DEB_HOST_ARCH),armhf)
+#-	# armhf has two linkers for now, while the world gets sorted
+#-	mkdir -p $(TREE)/lib/arm-linux-gnueabihf
+#-	ln -s /lib/ld-linux-armhf.so.3 $(TREE)/lib/arm-linux-gnueabihf/ld-linux.so.3
+#-endif
+#-
+# ifeq ($(DEB_HOST_ARCH_OS),hurd)
+# 	# On Hurd the SONAME for the dynamic linker is ld.so.1, but binaries
+# 	# have the ld.so symlink as the interpreter. Ideally mklibs should
+#
+#=== modified file 'build/config/amd64.cfg'
+#--- build/config/amd64.cfg	2016-04-08 14:58:47 +0000
+#+++ build/config/amd64.cfg	2016-04-16 19:45:21 +0000
+#@@ -1,8 +1,6 @@
+# MEDIUM_SUPPORTED = cdrom cdrom-xen netboot netboot-xen hd-media # netboot-gtk
+# MEDIUM_SUPPORTED_EXTRA = monolithic
+# 
+#-MKLIBS = mklibs-copy
+#-
+# # The version of the kernel to use.
+# BASEVERSION = 4.4.0-18
+# KERNELVERSION = $(BASEVERSION)-generic
+
+#=== modified file 'build/config/amd64/netboot.cfg'
+#--- build/config/amd64/netboot.cfg	2016-03-27 03:15:58 +0000
+#+++ build/config/amd64/netboot.cfg	2016-04-16 19:45:21 +0000
+#@@ -1,7 +1,7 @@
+# MEDIA_TYPE = netboot image
+# 
+# # Not really a floppy; this is for use on USB memory sticks.
+#-FLOPPY_SIZE = 44032
+#+FLOPPY_SIZE = 45056
+# GZIPPED = .gz
+# DISK_LABEL = "bootable drive"
+ 
+
+=== modified file 'build/config/armhf.cfg'
+--- build/config/armhf.cfg	2016-04-08 14:58:47 +0000
++++ build/config/armhf.cfg	2016-04-16 19:45:21 +0000
+@@ -1,6 +1,6 @@
+ SUBARCH_SUPPORTED = generic-lpae generic
+ 
+-MKLIBS = mklibs --ldlib=/lib/ld-linux-armhf.so.3
++MKLIBS = mklibs-copy --ldlib=/lib/ld-linux-armhf.so.3
+ 
+ KERNELMAJOR = 2.6
+ KERNELVERSION = 4.4.0-18
+
+#=== modified file 'build/config/common'
+#--- build/config/common	2015-11-12 19:14:48 +0000
+#+++ build/config/common	2016-04-16 19:45:21 +0000
+#@@ -24,7 +24,7 @@
+# 
+# # The library reducer to use. Set to mklibs (to build with library reduction)
+# # or mklibs-copy (to build without library reduction).
+#-MKLIBS = mklibs
+#+MKLIBS = mklibs-copy
+# 
+# # Normally the sources.list for building d-i will be derived from your
+# # "normal" sources.list. However, you can specify a mirror here to override
+
+#=== modified file 'build/config/i386/netboot.cfg'
+#--- build/config/i386/netboot.cfg	2016-03-22 04:37:29 +0000
+#+++ build/config/i386/netboot.cfg	2016-04-16 19:45:21 +0000
+#@@ -3,7 +3,7 @@
+# MEDIA_TYPE = netboot image
+# 
+# # Not really a floppy; this is for use on USB memory sticks.
+#-FLOPPY_SIZE = 40960
+#+FLOPPY_SIZE = 41984
+# GZIPPED = .gz
+# DISK_LABEL = "bootable drive"
+ 
+
+#=== modified file 'build/config/powerpc/powerpc/netboot.cfg'
+#--- build/config/powerpc/powerpc/netboot.cfg	2016-03-22 05:15:29 +0000
+#+++ build/config/powerpc/powerpc/netboot.cfg	2016-04-16 19:45:21 +0000
+#@@ -1,7 +1,7 @@
+# MEDIA_TYPE = netboot image
+# 
+# # Not really a floppy; this is for use on USB memory sticks.
+#-FLOPPY_SIZE = 49152
+#+FLOPPY_SIZE = 50176
+# GZIPPED = .gz
+# DISK_LABEL = "bootable drive"
+ 
+
+#=== modified file 'build/config/ppc64el.cfg'
+#--- build/config/ppc64el.cfg	2016-04-08 14:58:47 +0000
+#+++ build/config/ppc64el.cfg	2016-04-16 19:45:21 +0000
+#@@ -1,7 +1,5 @@
+# MEDIUM_SUPPORTED = netboot cdrom
+# 
+#-MKLIBS = mklibs-copy
+#-
+# KERNELMAJOR = 2.6
+# BASEVERSION = 4.4.0-18
+# KERNELVERSION = $(BASEVERSION)-generic
+
+#=== modified file 'build/pkg-lists/base'
+#--- build/pkg-lists/base	2015-09-22 18:31:39 +0000
+#+++ build/pkg-lists/base	2016-04-16 19:45:21 +0000
+#@@ -10,7 +10,6 @@
+# di-utils-shell
+# libdebconfclient0-udeb
+# libdebian-installer4-udeb
+#-libnss-dns-udeb
+# lowmemcheck
+# lsb-release-udeb
+# main-menu
+
+#=== modified file 'build/pkg-lists/exclude'
+#--- build/pkg-lists/exclude	2010-05-24 15:01:07 +0000
+#+++ build/pkg-lists/exclude	2016-04-16 19:45:21 +0000
+#@@ -2,15 +2,6 @@
+# # they are currently provided not in udeb form but by the library
+# # reduction step.
+# 
+#-# libc gets reduced, so using the udeb is not a good idea
+#-libc0.1 -
+#-libc0.1-udeb -
+#-libc0.3 -
+#-libc0.3-udeb -
+#-libc6 -
+#-libc6-udeb -
+#-libc6.1 -
+#-libc6.1-udeb -
+# # slang is also reduced
+# libslang2-udeb -
+# # and newt
+
+#=== modified file 'build/pkg-lists/gtk-common'
+#--- build/pkg-lists/gtk-common	2015-05-14 17:55:41 +0000
+#+++ build/pkg-lists/gtk-common	2016-04-16 19:45:21 +0000
+#@@ -1,5 +1,4 @@
+# # udebs needed for graphical installer
+#-libnss-files-udeb
+# rootskel-gtk
+# cdebconf-gtk-udeb
+# cdebconf-gtk-terminal
+
+#=== modified file 'build/pkg-lists/network-console'
+#--- build/pkg-lists/network-console	2004-06-29 08:17:34 +0000
+#+++ build/pkg-lists/network-console	2016-04-16 19:45:21 +0000
+#@@ -1,4 +1,3 @@
+# openssh-server-udeb
+#-libnss-files-udeb
+# network-console
+ 
+
+#=== modified file 'debian/changelog'
+#--- debian/changelog	2016-04-13 12:07:03 +0000
+#+++ debian/changelog	2016-04-16 19:45:21 +0000
+#@@ -1,3 +1,16 @@
+#+debian-installer (20101020ubuntu448) xenial; urgency=medium
+#+
+#+  * Cherry-pick changes from Debian for the removal of libnss-*-udeb:
+#+    - Switch to using mklibs-copy for the reduction on all arches.
+#+    - Drop the build-dependency on glibc-pic, unneeded for above.
+#+    - Stop excluding libc-udeb to avoid dropping libnss libraries
+#+      and to avoid a useless download of libc-udeb during install.
+#+    - Drop references to libnss-*-udeb, now provided by libc-udeb.
+#+    - Drop extra armhf linker, libc-udeb provides the same symlink.
+#+  * Bump FLOPPY_SIZE by 1MB on all arches to make room for the above.
+#+
+#+ -- Adam Conrad <adconrad@ubuntu.com>  Sat, 16 Apr 2016 12:12:07 -0600
+#+
+# debian-installer (20101020ubuntu447) xenial; urgency=medium
+# 
+#   * Rebuild with updated udebs for s390x.
+
+=== modified file 'debian/control'
+#--- debian/control	2016-02-19 17:00:28 +0000
+#+++ debian/control	2016-04-16 19:45:21 +0000
+#@@ -9,7 +9,7 @@
+# Vcs-Bzr: http://bazaar.launchpad.net/~ubuntu-core-dev/debian-installer/ubuntu
+# Build-Conflicts: libnewt-pic [mipsel]
+# # NOTE: Do not edit the next line by hand. See comment below.
+#-Build-Depends: debhelper (>= 7.0.0), apt, apt-utils, gnupg, ubuntu-keyring, dctrl-tools, wget, bc, debiandoc-sgml, xsltproc, docbook-xml, docbook-xsl, libbogl-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], lsb-release, glibc-pic, libslang2-pic (>= 2.0.6-4), libnewt-pic (>= 0.52.2-11.3) [!mipsel], libnewt-dev (>= 0.52.2-11.3) [mipsel], libgcc1 [i386 amd64], cramfsprogs [powerpc ia64 mips mipsel armeb armel], genext2fs (>= 1.3-7.1), e2fsprogs, mklibs (>= 0.1.25), genisoimage (>= 9:1.1.10-1ubuntu2) [!s390 !s390x], genromfs [sparc sparc64], hfsutils [powerpc], dosfstools (>= 3.0.9-1ubuntu2) [i386 ia64 m68k amd64 armel armhf arm64], cpio, devio [armeb armel], parted [armel armhf], slugimage (>= 0.10+r58-6) [armeb armel], u-boot-tools [arm64 armel armhf], syslinux (>= 3:6) [i386 amd64], syslinux-utils (>= 3:6) [i386 amd64], pxelinux (>= 3:6) [i386 amd64], isolinux (>= 3:6) [i386 amd64], syslinux-common (>= 3:6) [i386 amd64], palo [hppa], elilo [ia64], yaboot [powerpc], aboot (>= 0.9b-2) [alpha], silo [sparc], sparc-utils [sparc sparc64], genisovh [mips], tip22 [mips], colo [mipsel], sibyl [mips mipsel], atari-bootstrap [m68k], vmelilo [m68k], m68k-vme-tftplilo [m68k], amiboot [m68k], emile [m68k], emile-bootblocks [m68k], u-boot [armel armhf], shim-signed [amd64], tofrodos [i386 amd64 kfreebsd-i386 kfreebsd-amd64], mtools [i386 ia64 m68k amd64 arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 armel armhf], po4a [i386 amd64], python3 (>= 3.1) [i386 amd64], kmod [linux-any], bf-utf-source [!s390 !s390x], mkvmlinuz [powerpc], openssl, makefs [kfreebsd-i386 kfreebsd-amd64], grub-pc (>= 1.98~20100101-1) [kfreebsd-i386 kfreebsd-amd64 hurd-i386], xorriso [arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 ppc64el], grub-efi-amd64-bin (>= 2.00) [amd64], grub-efi-arm64-bin [arm64], grub-common [amd64 arm64], debian-ports-archive-keyring [sh4 sparc64], grub-ieee1275-bin [ppc64el]
+#+Build-Depends: debhelper (>= 7.0.0), apt, apt-utils, gnupg, ubuntu-keyring, dctrl-tools, wget, bc, debiandoc-sgml, xsltproc, docbook-xml, docbook-xsl, libbogl-dev [!kfreebsd-i386 !kfreebsd-amd64 !hurd-i386], lsb-release, libslang2-pic (>= 2.0.6-4), libnewt-pic (>= 0.52.2-11.3) [!mipsel], libnewt-dev (>= 0.52.2-11.3) [mipsel], libgcc1 [i386 amd64], cramfsprogs [powerpc ia64 mips mipsel armeb armel], genext2fs (>= 1.3-7.1), e2fsprogs, mklibs (>= 0.1.40), mklibs-copy (>= 0.1.40), genisoimage (>= 9:1.1.10-1ubuntu2) [!s390 !s390x], genromfs [sparc sparc64], hfsutils [powerpc], dosfstools (>= 3.0.9-1ubuntu2) [i386 ia64 m68k amd64 armel armhf arm64], cpio, devio [armeb armel], parted [armel armhf], slugimage (>= 0.10+r58-6) [armeb armel], u-boot-tools [arm64 armel armhf], syslinux (>= 3:6) [i386 amd64], syslinux-utils (>= 3:6) [i386 amd64], pxelinux (>= 3:6) [i386 amd64], isolinux (>= 3:6) [i386 amd64], syslinux-common (>= 3:6) [i386 amd64], palo [hppa], elilo [ia64], yaboot [powerpc], aboot (>= 0.9b-2) [alpha], silo [sparc], sparc-utils [sparc sparc64], genisovh [mips], tip22 [mips], colo [mipsel], sibyl [mips mipsel], atari-bootstrap [m68k], vmelilo [m68k], m68k-vme-tftplilo [m68k], amiboot [m68k], emile [m68k], emile-bootblocks [m68k], u-boot [armel armhf], shim-signed [amd64], tofrodos [i386 amd64 kfreebsd-i386 kfreebsd-amd64], mtools [i386 ia64 m68k amd64 arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 armel armhf], po4a [i386 amd64], python3 (>= 3.1) [i386 amd64], kmod [linux-any], bf-utf-source [!s390 !s390x], mkvmlinuz [powerpc], openssl, makefs [kfreebsd-i386 kfreebsd-amd64], grub-pc (>= 1.98~20100101-1) [kfreebsd-i386 kfreebsd-amd64 hurd-i386], xorriso [arm64 kfreebsd-i386 kfreebsd-amd64 hurd-i386 ppc64el], grub-efi-amd64-bin (>= 2.00) [amd64], grub-efi-arm64-bin [arm64], grub-common [amd64 arm64], debian-ports-archive-keyring [sh4 sparc64], grub-ieee1275-bin [ppc64el]
+# # This package has the worst Build-Depends in Debian, so it deserves some
+# # explanation. Note that this comment can also be used to generate a
+# # Build-Depends line, by running the debian/genbuilddeps program.
+#@@ -46,8 +46,6 @@
+# #		Provides system version information.
+# #	
+# # Library build dependencies:
+#-#	- glibc-pic
+#-#		For library reduction.
+# #	- libslang2-pic (>= 2.0.6-4)
+# #		Make dependency versioned temporarily to make sure we avoid #392942
+# #	- libnewt-pic (>= 0.52.2-11.3) [!mipsel]
+#@@ -73,7 +71,7 @@
+# #		them.
+# #		Lintian: Yes, we know it's essential. We prefer not to
+# #		count on it remaining so.
+#-#	- mklibs (>= 0.1.25)
+#+#	- mklibs (>= 0.1.40), mklibs-copy (>= 0.1.40)
+# #		We use mklibs for library reduction.
+# #	- genisoimage (>= 9:1.1.10-1ubuntu2) [!s390 !s390x]
+# #		For making mini isos.
+##Ark74's fix
+--- debian/control	2023-05-10 08:36:56.311243556 -0600
++++ debian/control	2023-05-10 12:00:07.617639516 -0600
+@@ -45,6 +45,7 @@
+ #		them.
+ #		Lintian: Yes, we know it's essential. We prefer not to
+ #		count on it remaining so.
++	mklibs (>= 0.1.40), mklibs-copy (>= 0.1.40),
+ 	genisoimage [!s390 !s390x],
+ #		For making mini isos.
+ 	genromfs [sparc sparc64],
+
diff --git a/helpers/DATA/debian-installer/di_focal/2273_2272.diff b/helpers/DATA/debian-installer/di_focal/2273_2272.diff
new file mode 100644
index 0000000000000000000000000000000000000000..5012cedbee92cfdd8ed0a974f87c3449abe48273
--- /dev/null
+++ b/helpers/DATA/debian-installer/di_focal/2273_2272.diff
@@ -0,0 +1,27 @@
+=== modified file 'build/Makefile'
+--- build/Makefile	2018-02-15 11:44:41 +0000
++++ build/Makefile	2018-07-22 10:55:51 +0000
+@@ -782,6 +782,8 @@
+ 	update-manifest $@ $(MANIFEST-BOOT) $(UDEB_LISTS)
+ 
+ $(TEMP_KERNEL): $(STAMPS)tree-unpack-$(targetstring)-stamp
++	# The kernel is shipped 600 in some cases, so fix it:
++	chmod 644 $(TEMP_KERNEL)
+ 
+ $(TEMP_BOOT): $(TEMP_INITRD) $(TEMP_KERNEL) $(TEMP_BOOT_SCREENS) arch_boot
+ 
+
+#=== modified file 'debian/changelog'
+#--- debian/changelog	2018-06-14 10:36:23 +0000
+#+++ debian/changelog	2018-07-22 10:55:51 +0000
+#@@ -1,3 +1,9 @@
+#+debian-installer (20101020ubuntu547) UNRELEASED; urgency=medium
+#+
+#+  * Fix permissions on the netboot.tar kernel (LP: #1781036)
+#+
+#+ -- Adam Conrad <adconrad@ubuntu.com>  Sun, 22 Jul 2018 04:55:01 -0600
+#+
+# debian-installer (20101020ubuntu546) cosmic; urgency=medium
+# 
+#   * Move master kernels to 4.15.0-23.
+#
diff --git a/helpers/DATA/debian-installer/medium_supported.patch b/helpers/DATA/debian-installer/medium_supported.patch
new file mode 100644
index 0000000000000000000000000000000000000000..735a84a2fcf92599c01ddc9828245c08313d22a8
--- /dev/null
+++ b/helpers/DATA/debian-installer/medium_supported.patch
@@ -0,0 +1,36 @@
+diff -Nru debian-installer-20210731+deb11u8+11.0trisquel13/build/config/amd64.cfg debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/amd64.cfg
+--- debian-installer-20210731+deb11u8+11.0trisquel13/build/config/amd64.cfg	2023-05-12 13:48:56.045639664 -0600
++++ debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/amd64.cfg	2023-05-12 14:00:23.091630526 -0600
+@@ -1,4 +1,4 @@
+-MEDIUM_SUPPORTED = cdrom cdrom-xen netboot netboot-gtk netboot-xen hd-media
++MEDIUM_SUPPORTED = cdrom netboot
+ MEDIUM_SUPPORTED_EXTRA = monolithic
+ 
+ # The version of the kernel to use.
+diff -Nru debian-installer-20210731+deb11u8+11.0trisquel13/build/config/arm64.cfg debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/arm64.cfg
+--- debian-installer-20210731+deb11u8+11.0trisquel13/build/config/arm64.cfg	2023-05-12 13:48:56.073639701 -0600
++++ debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/arm64.cfg	2023-05-12 14:00:45.351718688 -0600
+@@ -1,4 +1,4 @@
+-MEDIUM_SUPPORTED = cdrom netboot netboot-gtk device-tree u-boot
++MEDIUM_SUPPORTED = cdrom netboot device-tree u-boot
+ 
+ KERNELMAJOR = 2.6
+ # The version of the kernel to use.
+diff -Nru debian-installer-20210731+deb11u8+11.0trisquel13/build/config/armhf.cfg debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/armhf.cfg
+--- debian-installer-20210731+deb11u8+11.0trisquel13/build/config/armhf.cfg	2023-05-12 13:48:59.157643670 -0600
++++ debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/armhf.cfg	2023-05-12 14:01:10.243818298 -0600
+@@ -1,4 +1,4 @@
+-MEDIUM_SUPPORTED = hd-media netboot network-console netboot-gtk device-tree u-boot cdrom
++MEDIUM_SUPPORTED = netboot device-tree u-boot cdrom
+ 
+ MKLIBS = mklibs-copy --ldlib=/lib/ld-linux-armhf.so.3
+ 
+diff -Nru debian-installer-20210731+deb11u8+11.0trisquel13/build/config/i386.cfg debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/i386.cfg
+--- debian-installer-20210731+deb11u8+11.0trisquel13/build/config/i386.cfg	2023-01-08 16:22:52.000000000 -0600
++++ debian-installer-20210731+deb11u8+11.0trisquel13_/build/config/i386.cfg	2023-05-12 13:59:51.799508139 -0600
+@@ -1,4 +1,4 @@
+-MEDIUM_SUPPORTED = cdrom cdrom-xen netboot netboot-gtk netboot-xen hd-media
++MEDIUM_SUPPORTED = cdrom netboot 
+ MEDIUM_SUPPORTED_EXTRA = monolithic
+ 
+ # The version of the kernel to use.
diff --git a/helpers/make-debian-installer b/helpers/make-debian-installer
index 26b3b8149733e42752c167ee146da8e7e7e40462..7797557c508e8e418272b19d6bc8024612a867b6 100644
--- a/helpers/make-debian-installer
+++ b/helpers/make-debian-installer
@@ -1,7 +1,7 @@
 #!/bin/sh
 #
 #    Copyright (C) 2009-2020 Ruben Rodriguez <ruben@trisquel.info>
-#    Copyright (C) 2022 Luis Guzman <ark@switnet.org>
+#    Copyright (C) 2023 Luis Guzman <ark@switnet.org>
 #
 #    This program is free software; you can redistribute it and/or modify
 #    it under the terms of the GNU General Public License as published by
@@ -18,17 +18,12 @@
 #    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
 #
 
-VERSION=12
+VERSION=13
 EXTERNAL='deb-src http://ftp.debian.org/debian bullseye main'
 REPOKEY=0E98404D386FA1D9
 NETINST=true
 . ./config
 
-#Manually disable 'any' other arch than amd64
-sed -i '/Architecture:/s|any|amd64|' debian/control
-# Set complete name as BUILD_DATE
-sed -i "/DATE=/s/ | cut -d '.' -f 1//" debian/rules
-
 cat << EOF > ${LOCAL_APT}/etc/apt_${CODENAME}.conf
 Dir::State "${LOCAL_APT}/var/lib/apt";
 Dir::State::status "${LOCAL_APT}/var/lib/dpkg/status";
@@ -51,23 +46,22 @@ EOF
 find build/pkg-lists -type f | xargs sed -i /media-retriever/d
 apt-get update -c ${LOCAL_APT}/etc/apt_${CODENAME}.conf
 # Get available kernel at release/main packages.
-LASTKERNEL="$(apt-cache madison -c ${LOCAL_APT}/etc/apt_${CODENAME}.conf linux-libc-dev|grep ${CODENAME}/main|awk '{print$3}'|head -n1|cut -d. -f1,2,3)"
-#sed -i "/# The version of the kernel to use./a BASEVERSION = $LASTKERNEL" ./build/config/amd64.cfg
-#sed -i "s/^KERNELVERSION = .*/KERNELVERSION = \$(BASEVERSION)-generic/g" ./build/config/amd64.cfg
-#sed -i "s/^MEDIUM_SUPPORTED.*/MEDIUM_SUPPORTED = cdrom netboot/g" ./build/config/amd64.cfg
-##Optional
-#sed -i '/KERNELNAME = vmlinuz/a #KERNELIMAGEVERSION = $(KERNELVERSION)' ./build/config/amd64.cfg
+LASTKERNEL="$(apt-cache madison -c ${LOCAL_APT}/etc/apt_${CODENAME}.conf linux-libc-dev|\
+              grep ${CODENAME}/main|\
+              awk '{print$3}'|head -n1|\
+              cut -d. -f1,2,3)"
+
+sed -i "s|LINUX_KERNEL_ABI ?= .*|LINUX_KERNEL_ABI ?= $LASTKERNEL|" build/config/common
+sed -i '/LINUX_KERNEL_ABI/d' build/config/ppc64el.cfg
+
+# Patch MEDIUM_SUPPORTED
+patch --no-backup-if-mismatch -p1 < $DATA/medium_supported.patch
 for i in amd64 arm64 armhf ppc64el
 do
-find build/config/ -name $i.cfg | xargs sed -i "/# The version of the kernel to use./a BASEVERSION = $LASTKERNEL"
-find build/config/ -name $i.cfg | xargs sed -i "s/^KERNELVERSION = .*/KERNELVERSION = \$(BASEVERSION)-generic/g"
-find build/config/ -name $i.cfg | xargs sed -i "s/^MEDIUM_SUPPORTED.*/MEDIUM_SUPPORTED = cdrom netboot/g"
-find build/config/ -name $i.cfg | xargs sed -i '/KERNELNAME = vmlinuz/a #KERNELIMAGEVERSION = $(KERNELVERSION)'
-done
-#Limit arm to u-boot
-for i in arm64 armhf
-do
-find build/config/ -name $i.cfg | xargs sed -i "s/^MEDIUM_SUPPORTED.*/MEDIUM_SUPPORTED = u-boot/g"
+    sed -i "/^KERNELVERSION =/i BASEVERSION = $LASTKERNEL" build/config/$i.cfg
+    sed -i 's/^KERNELVERSION = .*/KERNELVERSION = $(BASEVERSION)-generic/g' build/config/$i.cfg
+    sed -i '/^KERNELVERSION =/a KERNEL_FLAVOUR = di' build/config/$i.cfg
+    sed -i '/^KERNEL_FLAVOUR = di/a KERNELIMAGEVERSION = $(KERNELVERSION)' build/config/$i.cfg
 done
 
 ##TODO: fix the EFI bootloader image
@@ -121,6 +115,7 @@ rpl Debian Trisquel . -R
 rpl DEBIAN TRISQUEL . -R
 rpl http://ftp.debian.org/debian http://archive.trisquel.org/trisquel . -R
 rpl http://www.debian.org/ https://trisquel.info build/boot/ -R
+
 # Replace the debian release for the trisquel one.
 rpl bullseye $CODENAME . -R
 rpl debian-archive-keyring trisquel-keyring debian/control
@@ -134,7 +129,7 @@ rpl debian-ports-archive-keyring-udeb trisquel-keyring-udeb . -R
 grep -rl TRISQUEL_VERSION |xargs sed -i "s|TRISQUEL_VERSION =.*|TRISQUEL_VERSION = $REVISION ($CODENAME)|"
 
 # Disable proposed-updates patch
-patch -p1 < $DATA/remove-proposed-updates.patch
+patch --no-backup-if-mismatch -p1 < $DATA/remove-proposed-updates.patch
 
 echo "# Remove gtk related packages, not looking for graphical installer"
 rm $(find build/pkg-lists -type f  -path "*/gtk/*")
@@ -143,11 +138,8 @@ grep -rl acpi-modules- build/pkg-lists/ |xargs sed -i '/acpi-modules-/d'
 grep -rl cdrom-core-modules- build/pkg-lists/ |xargs sed -i '/cdrom-core-modules-/d'
 grep -rl cdebconf-gtk-entropy build/config/ | xargs sed -i 's/cdebconf-gtk-entropy//'
 
-#sed -i 's/.*SIGNED_IMAGE="$(KERNELNAME_ALT_SUFFIX)".*/'$'\t''efi-image $(TEMP_GRUB_EFI) x86_64-efi x64/' build/config/x86.cfg build/config/arm64.cfg
-/bin/sed -i '/KERNELNAME_ALT_SUFFIX = -$(KERNELVERSION)/d' build/config/*.cfg build/config/*/*.cfg
-
 # Ensure that ld-linux is executable
-sed '/ifdef KERNELVERSION/a\\tchmod 755 $(TREE)\/lib\/$(DEB_HOST_MULTIARCH)\/ld-linux*' -i build/Makefile
+patch --no-backup-if-mismatch -p1 < $DATA/chmod_755_ld-linux.patch
 
 # HACK: include liblzma.so and liblz4.so from host into iso image, as runtime dependencies of zstd
 sed '/not packaged as a udeb/a\\tcp /lib/$(DEB_HOST_MULTIARCH)/liblzma.so.5* $(TREE)/lib/$(DEB_HOST_MULTIARCH)' -i build/Makefile
@@ -158,13 +150,18 @@ sed -i '/Build-Depends:/a\\tliblzma5, liblz4-1,' debian/control
 sed 's|/debian|/trisquel|' -i ./build/util/efi-image
 sed 's|EFI/debian|EFI/trisquel|' -i ./build/config/arm.cfg ./build/config/x86.cfg
 
-## Set modules as optional
-### no arm support for netboot (yet?).
-#sed -i "/i2c-modules-/s|$| \?|" build/pkg-lists/netboot/armhf.cfg
-#sed -i "/mtd-modules-/s|$| \?|" build/pkg-lists/netboot/armhf.cfg
-
 #Fix u-boot naming debian>ubuntu
 sed -i 's|.imx|-dtb.imx|g' build/boot/arm/u-boot-image-config
 
+# Re apply upstream behavior and configuration features from last release (focal).
+# https://git.launchpad.net/ubuntu/+source/debian-installer/log/?h=ubuntu/focal
+## - Makebuild set of patches
+## https://bazaar.launchpad.net/~xnox/debian-installer/di-focal/changes?filter_path=build/Makefile
+for patch in $(ls -v ${DATA}/di_focal/*.diff)
+do
+    echo "Applying $patch"
+    patch --no-backup-if-mismatch -Np0 < $patch
+done
+
 changelog "Rebranded and adapted for Trisquel"
 compile