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

Re: Optimising Debian-CD



On Tue, 2002-04-09 at 19:48, Raphael Hertzog wrote:
> Le Tue, Apr 09, 2002 at 05:39:18PM +0100, Philip Hands écrivait:
> > I'll commit it to CVS once I've managed a successfull build run with it,
> > if that's OK.
> 
> I'd prefer to see the patch first ... because release is approaching and
> I'd like to check it before it's commited.

OK, attached is the output of cvs diff, wich includes changes for
ISOLINUX as well as my FASTSUMS change, and a tweak so I can skip doing
a mirrorcheck for the Nth time in the day.

Also attached is the fast_sums script itself

-- 
Say no to software patents!  http://petition.eurolinux.org/

|)|  Philip Hands [+44 (0)20 8530 9560]    http://www.hands.com/
|-|  HANDS.COM Ltd.                    http://www.uk.debian.org/
|(|  10 Onslow Gardens, South Woodford, London  E18 1NE  ENGLAND
? build_SOME.sh
? typescript
? typescript-bad-src-sparc
? data/woody/f1.txt
? data/woody/f10.txt
? data/woody/f2.txt
? data/woody/f3.txt
? data/woody/f4.txt
? data/woody/f5.txt
? data/woody/f6.txt
? data/woody/f7.txt
? data/woody/f8.txt
? data/woody/f9.txt
? data/woody/isolinux.txt
? tools/fast_packages
? tools/fast_sums
? tools/boot/woody/boot-i386.calc
Index: CONF.sh
===================================================================
RCS file: /cvs/debian-boot/debian-cd/CONF.sh,v
retrieving revision 1.22
diff -u -r1.22 CONF.sh
--- CONF.sh	2002/04/07 16:26:59	1.22
+++ CONF.sh	2002/04/10 08:55:53
@@ -24,6 +24,7 @@
 unset JIGDOTEMPLATEURL
 unset DEFBINSIZE
 unset DEFSRCSIZE
+unset FASTSUMS
 
 
 # The debian-cd dir
@@ -34,14 +35,14 @@
 export CODENAME=woody
 
 # Version number, "2.2 r0", "2.2 r1" etc.
-export DEBVERSION="3.0 beta"
+export DEBVERSION="3.0 pre1"
 
 # Official or non-official set.
 # NOTE: THE "OFFICIAL" DESIGNATION IS ONLY ALLOWED FOR IMAGES AVAILABLE
 # ON THE OFFICIAL DEBIAN CD WEBSITE http://cdimage.debian.org
-export OFFICIAL="Unofficial"
+#export OFFICIAL="Unofficial"
 #export OFFICIAL="Official"
-#export OFFICIAL="Official Beta"
+export OFFICIAL="Pre-release"
 
 # ... for arch  
 export ARCH=`dpkg --print-installation-architecture`
@@ -52,25 +53,25 @@
 #	      images, however. Also, if you are using an NFS partition for
 #	      some part of this, you must use this option.
 # Paths to the mirrors
-export MIRROR=/ftp/debian
+export MIRROR=/home/ftp/debian
 
 # Comment the following line if you don't have/want non-US
-#export NONUS=/ftp/debian-non-US
+export NONUS=/home/ftp/debian/non-US
 
 # And this option will make you 2 copies of CD1 - one with all the
 # non-US packages on it, one with none. Useful if you're likely to
 # need both.
-#export FORCENONUSONCD1=1
+export FORCENONUSONCD1=1
 
 # Path of the temporary directory
-export TDIR=/ftp/tmp
+export TDIR=/home/tmp
 
 # Path where the images will be written
-export OUT=/rack/debian-cd
+export OUT=/unmirrored/test-area
 
 # Where we keep the temporary apt stuff.
 # This cannot reside on an NFS mount.
-export APTTMP=/ftp/tmp/apt
+export APTTMP=$TDIR/apt
 
 # Do I want to have NONFREE merged in the CD set
 # export NONFREE=1
@@ -111,7 +112,7 @@
 # export MKISOFS_OPTS="-r -F . -T"	#For symlink farmers
 
 # uncomment this to if you want to see more of what the Makefile is doing
-#export VERBOSE_MAKE=1
+export VERBOSE_MAKE=1
 
 # uncoment this to make build_all.sh try to build a simple CD image if
 # the proper official CD run does not work
@@ -150,14 +151,21 @@
 #     since they need the actual .iso to make it bootable. For these archs,
 #     the temp-iso will be generated, but deleted again immediately after the
 #     jigdo stuff is made; needs temporary space as big as the biggest image.
-#export DOJIGDO=2
+export DOJIGDO=2
 #
 # jigdo-file command & options
 # Note: building the cache takes hours, so keep it around for the next run
-#export JIGDOCMD="/usr/local/bin/jigdo-file --cache=$HOME/jigdo-cache.db"
+export JIGDOCMD="/usr/bin/jigdo-file --cache=$HOME/jigdo-cache.db"
 #
 # HTTP/FTP URL for directory where you intend to make the templates available.
 # %ARCH%, if present, will be replaced by $ARCH (or "source"). This only goes
 # in the .jigdo files, which you can edit easily if you want.
 # No trailing slash.
-#export JIGDOTEMPLATEURL="http://this-guy-didnt-configure-debiancd-correctly.com/debian-cd/templates/3.0BETA/%ARCH%";
+export JIGDOTEMPLATEURL="http://cdimage.debian.org/cd-images/jigdo/templates/3.0BETA/%ARCH%";
+
+# If set, put all the boot floppies on CD#1
+export ISOLINUX=yes
+
+# If set, use the md5sums from the main archive, rather than calculating
+# them locally
+export FASTSUMS=yes
Index: Makefile
===================================================================
RCS file: /cvs/debian-boot/debian-cd/Makefile,v
retrieving revision 1.51
diff -u -r1.51 Makefile
--- Makefile	2002/04/07 16:26:59	1.51
+++ Makefile	2002/04/10 08:55:54
@@ -81,6 +81,7 @@
 strip_nonus_bin=$(BASEDIR)/tools/strip-nonUS-bin
 add_secured=$(BASEDIR)/tools/add_secured
 md5sum=/usr/bin/md5sum.textutils
+fastsums=$(BASEDIR)/tools/fast_sums
 
 BDIR=$(TDIR)/$(CODENAME)-$(ARCH)
 ADIR=$(APTTMP)/$(CODENAME)-$(ARCH)
@@ -673,6 +674,7 @@
 $(BDIR)/CD1/md5sum.txt:
 	@echo "Generating md5sum of files from all the binary CDs ..."
 	$(Q)set -e; \
+	if [ "$$FASTSUMS" != "yes" ] ; then \
 	 for file in $(BDIR)/*.packages; do \
 		dir=$${file%%.packages}; \
 		n=$${dir##$(BDIR)/}; \
@@ -682,11 +684,15 @@
 		find . -follow -type f | grep -v "\./md5sum" | grep -v \
 		"dists/stable" | grep -v "dists/frozen" | \
 		grep -v "dists/unstable" | xargs $(md5sum) > md5sum.txt ; \
-	done
+	 done \
+	else \
+	 $(fastsums) $(BDIR); \
+	fi
 src-md5list: ok sources src-secured $(SDIR)/CD1/md5sum.txt
 $(SDIR)/CD1/md5sum.txt:
 	@echo "Generating md5sum of files from all the source CDs ..."
 	$(Q)set -e; \
+	if [ "$$FASTSUMS" != "yes" ] ; then \
 	 for file in $(SDIR)/*.sources; do \
 		dir=$${file%%.sources}; \
 		dir=$${dir##$(SDIR)/}; \
@@ -695,7 +701,11 @@
 		find . -follow -type f | grep -v "\./md5sum" | grep -v \
 		"dists/stable" | grep -v "dists/frozen" | \
 		grep -v "dists/unstable" | xargs $(md5sum) > md5sum.txt ; \
-	done
+	 done \
+	else \
+	 $(fastsums) $(SDIR); \
+	fi
+
 
 # Generate $CODENAME-secured tree with Packages and Release(.gpg) files
 # from the official tree
Index: build_all.sh
===================================================================
RCS file: /cvs/debian-boot/debian-cd/build_all.sh,v
retrieving revision 1.11
diff -u -r1.11 build_all.sh
--- build_all.sh	2002/04/07 16:26:59	1.11
+++ build_all.sh	2002/04/10 08:55:54
@@ -6,7 +6,7 @@
 
 TMP_OUT=$OUT
 
-for ARCH in i386 m68k alpha sparc powerpc arm
+for ARCH in i386 powerpc arm hppa ia64 mips mipsel s390   alpha sparc   m68k 
 do
 	export ARCH
 	echo "Now we're going to build CD for $ARCH !"
@@ -14,7 +14,11 @@
 	make distclean
 	make ${CODENAME}_status
 	echo " ... checking your mirror"
-	make mirrorcheck
+	if [ "$SKIPMIRRORCHECK" != "yes" ] ; then 
+		make mirrorcheck
+	else
+		echo "WARNING: skipping mirrorcheck"
+	fi
 	if [ $? -gt 0 ]; then
 		echo "ERROR: Your mirror has a problem, please correct it." >&2
 		exit 1
Index: tools/boot/woody/boot-i386
===================================================================
RCS file: /cvs/debian-boot/debian-cd/tools/boot/woody/boot-i386,v
retrieving revision 1.28
diff -u -r1.28 boot-i386
--- tools/boot/woody/boot-i386	2002/04/07 12:52:26	1.28
+++ tools/boot/woody/boot-i386	2002/04/10 08:55:54
@@ -50,15 +50,26 @@
 # Show user what is going on.
 #
 THISTYPE=${KTYPE[$NN]}
-echo "Using ${THISTYPE:-vanilla} boot-disks image on CD$N"
 
 # Put boot images on CD1...CD(N)
 #
 :> $N.mkisofs_opts
-mkdir -p boot$N/boot
-cp -f CD1/dists/$CODENAME/main/disks-$ARCH/current/images-2.88/${THISTYPE}/rescue.bin boot$N/boot/
 
-echo -n "-J -b boot/rescue.bin "  > $N.mkisofs_opts
+if [ "$ISOLINUX" = "yes" ] && [ "$NN" = "1" ]; then
+    echo "Using ISOLINUX boot-disks image on CD$N"
+    mkdir -p boot$N/isolinux
+    cp -f /usr/lib/syslinux/isolinux.bin boot$N/isolinux/
+    cp -lf CD1/dists/$CODENAME/main/disks-$ARCH/current/images-1.44/root.bin boot$N/isolinux/
+    cp -lf CD1/dists/$CODENAME/main/disks-$ARCH/current/images-1.44/bf2.4/root.bin boot$N/isolinux/bf24.bin
+    cp -lf CD1/dists/$CODENAME/main/disks-$ARCH/current/images-1.44/compact/root.bin boot$N/isolinux/compact.bin
+    cp -lf CD1/dists/$CODENAME/main/disks-$ARCH/current/images-1.44/idepci/root.bin boot$N/isolinux/idepci.bin
+    echo -n "-cache-inodes -J -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table " > $N.mkisofs_opts
+else
+    echo "Using ${THISTYPE:-vanilla} boot-disks image on CD$N"
+    mkdir -p boot$N/boot
+    cp -f CD1/dists/$CODENAME/main/disks-$ARCH/current/images-2.88/${THISTYPE}/rescue.bin boot$N/boot/
+    echo -n "-cache-inodes -J -b boot/rescue.bin "  > $N.mkisofs_opts
+fi
 
 install_languages $CDDIR
 
@@ -75,7 +86,7 @@
 # Setup all boot-disk images (currently 4)
 
 
-if [ "$MULTIBOOT" = "yes" ] ; then
+if [ "$MULTIBOOT" = "yes" ] && [ ! "$ISOLINUX" = "yes" ]; then
         echo "Adding additional boot images to CD1"
 
     for i in 2 3 4 ; do
@@ -95,17 +106,66 @@
 
 # populate the install directory as well
 (cd $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/ ; \
-	cp -f images-1.44/resc*.bin $CDDIR/install ; \
-	cp -f linux.bin $CDDIR/install/linux ; \
-	cp -f compact/linux.bin $CDDIR/install/lincompt ; \
-	cp -f idepci/linux.bin $CDDIR/install/linpci ; \
-	cp -f bf2.4/linux.bin $CDDIR/install/lin24 ; \
-	cp -f images-1.44/root.bin $CDDIR/install )
+	cp -lf images-1.44/resc*.bin $CDDIR/install ; \
+	cp -lf linux.bin $CDDIR/install/linux ; \
+	cp -lf compact/linux.bin $CDDIR/install/lincompt ; \
+	cp -lf idepci/linux.bin $CDDIR/install/linpci ; \
+	cp -lf bf2.4/linux.bin $CDDIR/install/lin24 ; \
+	cp -lf images-1.44/root.bin $CDDIR/install ; \
+        cp -lf images-1.44/bf2.4/root.bin $CDDIR/install/bf24.bin; \
+        cp -lf images-1.44/compact/root.bin $CDDIR/install/compact.bin; \
+        cp -lf images-1.44/idepci/root.bin $CDDIR/install/idepci.bin)
 
 
 # Tools for disc 1
 # and include the legacy DOS stuff 
 
+if [ "$ISOLINUX" = "yes" ]; then
+    cp -f $BASEDIR/data/woody/isolinux.txt $BASEDIR/data/woody/f*.txt boot$N/isolinux/
+    cat > boot$N/isolinux/isolinux.cfg <<EOF
+DEFAULT /install/linpci
+APPEND root=/dev/ram ro initrd=idepci.bin flavor=idepci
+LABEL linux
+  kernel /install/linpci
+LABEL idepci
+  kernel /install/linpci
+LABEL compact
+  kernel /install/lincompt
+  append root=/dev/ram ro initrd=compact.bin flavor=compact
+LABEL vanilla
+  kernel /install/linux
+  append root=/dev/ram ro initrd=root.bin
+LABEL bf24
+  kernel /install/lin24
+  append root=/dev/ram ro initrd=bf24.bin flavor=bf2.4
+LABEL rescue
+  kernel /install/linpci
+  append noinitrd
+LABEL resccomp
+  kernel /install/lincompt
+  append noinitrd
+LABEL rescvanl
+  kernel /install/linux
+  append noinitrd
+LABEL rescbf24
+  kernel /install/lin24
+  append noinitrd
+DISPLAY isolinux.txt
+TIMEOUT 0
+PROMPT 1
+F1 f1.txt
+F2 f2.txt
+F3 f3.txt
+F4 f4.txt
+F5 f5.txt
+F6 f6.txt
+F7 f7.txt
+F8 f8.txt
+F9 f9.txt
+F0 f10.txt
+EOF
+fi
+
 cp -f $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/dosutils/* $CDDIR/install/
 
 (echo "Tools for DOS :" ; \
@@ -121,10 +181,10 @@
 smartdrv /c
 
 echo Please choose a linux kernel now
-echo 1= IDEPCI kernel       (2.2)
-echo 2= compact kernel      (2.2)
-echo 3= 2.4.x kernel        (2.4)
-echo 4= standard kernel     (2.2)
+echo 1= vanilla (standard) kernel   (2.2)
+echo 2= compact kernel              (2.2)
+echo 3= 2.4.x kernel                (2.4)
+echo 4= IDEPCI kernel               (2.2)
 
 choice /c:1234
 if errorlevel 4 goto FOUR
@@ -136,20 +196,20 @@
 goto ONE
 
 :ONE
-echo using IDEPCI kernel
-loadlin.exe linpci root=/dev/ram ro initrd=root.bin cdrom
+echo using vanilla (standard) kernel
+loadlin.exe linux root=/dev/ram ro initrd=root.bin
 
 :TWO
 echo using compact kernel
-loadlin.exe lincompt root=/dev/ram ro initrd=root.bin cdrom
+loadlin.exe lincompt root=/dev/ram ro initrd=compact.bin flavor=compact
 
 :THREE
 echo using 2.4.x kernel
-loadlin.exe lin24 root=/dev/ram ro initrd=root.bin cdrom
+loadlin.exe lin24 root=/dev/ram ro initrd=bf24.bin flavor=bf2.4
 
 :FOUR
-echo using standard kernel
-loadlin.exe linux root=/dev/ram ro initrd=root.bin cdrom
+echo using IDEPCI kernel
+loadlin.exe linpci root=/dev/ram ro initrd=idepci.bin flavor=idepci
 
 EOF
 ) |todos > $CDDIR/install/boot.bat
@@ -159,7 +219,11 @@
 
 
 # write final lines to mkisofs_opts
-echo -n "-c boot/boot.catalog boot$N "  >> $N.mkisofs_opts
+if [ "$ISOLINUX" = "yes" ] && [ "$NN" = "1" ]; then
+    echo -n "boot$N" >> $N.mkisofs_opts
+else
+    echo -n "-c boot/boot.catalog boot$N "  >> $N.mkisofs_opts
+fi
 
 
 # th,th, thats all
#! /usr/bin/perl -w
    eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
        if 0; #$running_under_some_shell

# Copyright (c) 2002 Philip Hands <phil@hands.com>
# See the README file for the license

# This script creates the md5sums files, using the precalculated md5sums
# from the main archive
# First arg = the build directory

use strict;
use Digest::MD5;

# load up all the md5sums we need
my %md5 ;
my $BDIR = shift @ARGV ;

foreach my $sumsfile ($BDIR . "/indices/md5sums", $BDIR . "/indices-non-US/md5sums") {
  open(MD5SUMS, $sumsfile) || die "Couldn't open file: $sumsfile" ;
  while (<MD5SUMS>) {
    chomp;
    next if /Packages/ ;
    next if /Sources/ ;
    next if /Release/ ;
    my ( $sum, $name ) = split(' ') ;
    # printf "[%s] [%s]\n", $sum, $name ;
    $md5{$name} = $sum ;
  }
  close(MD5SUMS);
}

#foreach my $f (keys(%md5)) {
#  printf "[%s] [%s]\n", $f, $md5{$f} ;
#}

foreach my $dir (<$BDIR/CD*>) {
  chdir $dir ;
  open(FILES, "find . -follow \\(   -path '*dists/stable*'              \\
                                 -o -path '*dists/frozen*'              \\
                                 -o -path '*dists/unstable*' \\) -prune \\
                              -o -type f ! -path '\./md5sum*' -print|"    ) || die ;
  open(MD5OUT, ">md5sum.txt") || die "Couldn't open file for writing: md5sums.txt, in $dir" ;
  while(<FILES>) {
    chomp;
    s(^\./)() ;
    if (!defined($md5{$_})) {
       open(FILE, $_) or die "Can't open '$_': $!";
       binmode(FILE);
       # printf STDERR "md5-ing %s", $_ ;
       #$md5{$_} = Digest::MD5->new->addfile(*FILE)->hexdigest ;
       printf MD5OUT "%s  ./%s\n",
	 Digest::MD5->new->addfile(*FILE)->hexdigest, $_;
# FIXME:
# the ./ in the printf above is only there to keep byte-for-byte compatibility
# with the find . output used before -- It should probably be removed
#
       # printf STDERR ".\n" ;
       close(FILE) ;
    } else {
       printf MD5OUT "%s  ./%s\n", $md5{$_}, $_;
    }
  }
  close(MD5OUT) ;
}

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


Reply to: