From 679aed644100f986881ff41bc2be02aba1b18b16 Mon Sep 17 00:00:00 2001
From: Chris Lamb <chris@chris-lamb.co.uk>
Date: Sat, 22 Mar 2008 18:13:03 +0000
Subject: lh_binary_debian-installer: Preseed by repacking initrd in some
 situations

This patch repacks the initrd when using the d-i netboot images in order
to incorporate a preseed.cfg if it exists. Before this patch, preseeding
of d-i netboot images was not possible.

Repacking the initrd has the additional advantage of being able to preseed
the first few questions of the installation process.
---
 helpers/lh_binary_debian-installer | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/helpers/lh_binary_debian-installer b/helpers/lh_binary_debian-installer
index d1913fa..257d786 100755
--- a/helpers/lh_binary_debian-installer
+++ b/helpers/lh_binary_debian-installer
@@ -453,5 +453,33 @@ then
 	fi
 fi
 
+repack_initrd() {
+	local TARGET_INITRD
+	TARGET_INITRD="${1}"
+	REPACK_TMPDIR="unpacked-initrd"
+	
+	# cpio does not have a "extract to directory", so we must change directory
+	mkdir -p ${REPACK_TMPDIR}
+	cd ${REPACK_TMPDIR}
+
+	gzip -d < ../${TARGET_INITRD} | cpio -i --make-directories --no-absolute-filenames
+	cp ../config/binary_debian-installer/preseed.cfg .
+	find | cpio -H newc -o | gzip -9 > ../${TARGET_INITRD} 
+
+	cd ..
+	rm -rf ${REPACK_TMPDIR}
+}
+
+# Preseed d-i by repacking the initrd in certain situations
+if [ "${USE_NETBOOT_DI}" = "yes" ] && [ -e config/binary_debian-installer/preseed.cfg ]
+then
+	repack_initrd "${DESTDIR}"/"${INITRD_DI}"
+
+	if [ -e "${DESTDIR}"/"${INITRD_GI}" ]
+	then
+		repack_initrd "${DESTDIR}"/"${INITRD_GI}"
+	fi
+fi
+
 # Creating stage file
 Create_stagefile .stage/binary_debian-installer
-- 
cgit v1.0