[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Multi-arch netinst getting too big



On Mon, 2010-06-28 at 22:43 +0100, Steve McIntyre wrote:

> 
> >Is this list part of the output somewhere when I do a local build
> either
> >with easy-build.sh or by replicating the invocation from
> debian-cd-setup
> >SVN?
> 
> It's an excerpt from make_disc_tree.log, produced when
> make_disc_trees.pl is laying out packages into the temporary trees. It
> logs into the temporary directory where debian-cd is working.

Thanks.

> >Subject: boot-x86: detect duplicates in the extra images used for
> installation
> >
> >Several files included under install.{386,amd} are actually identical
> to
> >others. Rather than duplicating them attempt to detect this and
> symlink
> >them.
> 
> I don't think sym-links are going to work - the filesystem code in
> isolinux is very simple (e.g. it only supports basic 8.3 filenames!)
> and I doubt it'll work. Hard links *might*, however. 

OK, that's a one character change...

The files under install.{486,amd}/xen/ don't need to be readable by
isolinux, only by the xen tools. I've just had a quick look and they
appear to support hardlinks but not symlinks so that's another argument
for hardlinks. If we think isolinux would be a problem then we could
restrict this to files under install.*/xen/.

Ian.
---
Subject: boot-x86: detect duplicates in the extra images used for installation

Several files included under install.{386,amd} are actually identical to
others. Rather than duplicating them attempt to detect this and hardlink
them.

Since images can be downloaded from the web at build time it is not
always possible to detect identical files by looking for the symlinks
created by the debian-installer build. Instead we pass a list of
potential "doppelgangers" to extra_image each of which is checked for
similarity to the new image.

I added gtk/vmlinuz (which is always the same as plain vmlinuz) which
although not necessary makes it more explicit which kernel goes with the
initrd at very little cost.

Hardlinks are used in preference to symlinks since these are expected to
work better with isolinux and the Xen tools.

Signed-off-by: Ian Campbell <ijc@hellion.org.uk>

diff --git a/tools/boot/squeeze/boot-x86 b/tools/boot/squeeze/boot-x86
index c0a5bdc..2189cbf 100644
--- a/tools/boot/squeeze/boot-x86
+++ b/tools/boot/squeeze/boot-x86
@@ -133,6 +133,8 @@ fi
 
 extra_image () {
 	image=$1
+	doppelgangers="$2"
+
 	dir=$(dirname "$image")
 
 	mkdir -p $CDDIR/$INSTALLDIR/$dir
@@ -146,6 +148,15 @@ extra_image () {
 			wget "$DI_WWW_HOME/cdrom/$image" -O $CDDIR/$INSTALLDIR/"$image"
 		fi
 	fi
+
+	for doppelganger in $doppelgangers ; do
+		if [ -f "$CDDIR/$INSTALLDIR/$dir/$doppelganger" ] &&
+		   cmp -s $CDDIR/$INSTALLDIR/"$image" $CDDIR/$INSTALLDIR/"$dir"/"$doppelganger" ; then
+			echo "  $image identical to $doppelganger. Linking"
+			ln -nf "$doppelganger" $CDDIR/$INSTALLDIR/"$image"
+			break
+		fi
+	done
 }
 
 # If multiple desktops are to be supported, set the default one
@@ -231,7 +242,8 @@ if [ "$THISTYPE" = "isolinux" ]; then
 	fi
 
 	if [ -e boot$N/isolinux/f3.txt.withgtk ]; then
-		extra_image gtk/initrd.gz
+		extra_image gtk/vmlinuz		"../vmlinuz"
+		extra_image gtk/initrd.gz	"../initrd.gz"
 		mv boot$N/isolinux/f3.txt.withgtk boot$N/isolinux/f3.txt
 		mv boot$N/isolinux/f4.txt.withgtk boot$N/isolinux/f4.txt
 		if [ -e boot$N/isolinux/isolinux.cfg.withgtk ]; then
@@ -243,8 +255,8 @@ if [ "$THISTYPE" = "isolinux" ]; then
 	rm -f boot$N/isolinux/isolinux.cfg.with*
 
 	if variant_enabled "xen" ; then
-		extra_image xen/vmlinuz
-		extra_image xen/initrd.gz
+		extra_image xen/vmlinuz		"../vmlinuz   ../gtk/vmlinuz"
+		extra_image xen/initrd.gz	"../initrd.gz ../gtk/initrd.gz"
 		extra_image xen/xm-debian.cfg
 	fi
 


-- 
-- 
Ian Campbell

Generic Fortune.

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: