debian cd patch + images
hi.
attached is my patch to debian-cd to create images.
current potato debian-cd does not work (bootdisks), i fixed that.
i also added some "set -e" to various shell scripts (paranoia rules),
added commands to the makefile to create md5sums of the *.raw files,
and added the pi-makelist script from pseude image kit, so list files
are created. don´t forget "chmod +x tools/pi-makelist" after applying the
patch.
my only test was: the script ran successfully.
so far i did not burn the images or test them in any way.
if you don´t have the resources to create you own cd images:
rsync 129.13.126.5::debian-cd/
please use the *.list files and your local cd ftp server with
pseudo image kit to reduce the server load as much as necessary.
yes, i have 100 mbit to the german education network, so bandwith
for german users should be fine. but my university is under constant
attack from outside, so sometimes the net connectivity does not work.
also, i will update the images sometimes. a file called CREATING-NEW-IMAGES
is available during that time. my ftp source is ftp.rfc822.org (via rsync),
so my ftp tree should be up to date and ok.
note: as soon as i need the disk space, my debian mirror and the images
will vanish. so please do not add it to public lists. but i guess it will
last at least 4-8 weeks.
andreas
diff -udrNP debian-cd-2.1.91.orig/Makefile debian-cd-2.1.91/Makefile
--- debian-cd-2.1.91.orig/Makefile Sat Nov 13 15:47:54 1999
+++ debian-cd-2.1.91/Makefile Fri Feb 18 22:52:06 2000
@@ -465,6 +465,10 @@
rm -f $(OUT)/$(CODENAME)-$(ARCH)-$$n.raw; \
$(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \
-o $(OUT)/$(CODENAME)-$(ARCH)-$$n.raw $$opts $$n ; \
+ $(BASEDIR)/tools/pi-makelist \
+ $(OUT)/$(CODENAME)-$(ARCH)-$$n.raw > \
+ $(OUT)/$(CODENAME)-$(ARCH)-$$n.list; \
+ md5sum $(OUT)/$(CODENAME)-$(ARCH)-$$n.* >> $(OUT)/MD5SUMS ; \
done
src-images: ok src-md5list $(OUT)
@echo "Generating the source iso images ..."
@@ -477,6 +481,10 @@
rm -f $(OUT)/$(CODENAME)-src-$$n.raw; \
$(MKISOFS) $(MKISOFS_OPTS) -V "$$volid" \
-o $(OUT)/$(CODENAME)-src-$$n.raw $$opts $$n ; \
+ $(BASEDIR)/tools/pi-makelist \
+ $(OUT)/$(CODENAME)-src-$$n.raw > \
+ $(OUT)/$(CODENAME)-src-$$n.list; \
+ md5sum $(OUT)/$(CODENAME)-src-$$n.* >> $(OUT)/MD5SUMS ; \
done
diff -udrNP debian-cd-2.1.91.orig/tools/apt-selection debian-cd-2.1.91/tools/apt-selection
--- debian-cd-2.1.91.orig/tools/apt-selection Thu Nov 11 18:10:41 1999
+++ debian-cd-2.1.91/tools/apt-selection Fri Feb 18 19:02:39 2000
@@ -3,6 +3,8 @@
# This is a little shell script that will launch apt-get in dry-run mode
# to find all the dependencies of a specific package
+set -e
+
# Get the configuration information if necessary
if [ -z "$TDIR" -o -z "$CODENAME" -o -z "$ARCH" ]; then
if [ -e CONF.sh ]; then
diff -udrNP debian-cd-2.1.91.orig/tools/boot/potato/boot-alpha debian-cd-2.1.91/tools/boot/potato/boot-alpha
--- debian-cd-2.1.91.orig/tools/boot/potato/boot-alpha Thu Nov 11 19:55:23 1999
+++ debian-cd-2.1.91/tools/boot/potato/boot-alpha Fri Feb 18 19:03:21 2000
@@ -9,6 +9,8 @@
# Do install stuff for alpha, including making bootable CDs
#
+set -e
+
N=$1
CDDIR=$2
diff -udrNP debian-cd-2.1.91.orig/tools/boot/potato/boot-i386 debian-cd-2.1.91/tools/boot/potato/boot-i386
--- debian-cd-2.1.91.orig/tools/boot/potato/boot-i386 Thu Nov 11 20:28:32 1999
+++ debian-cd-2.1.91/tools/boot/potato/boot-i386 Fri Feb 18 20:03:47 2000
@@ -12,6 +12,8 @@
# $1 is the CD number
# $2 is the temporary CD build dir
+set -e
+
N=$1
CDDIR=$2
BOOTDIR=
@@ -41,14 +43,14 @@
# Now we do disk 1 ...
-echo -n "-J -b boot/resc2880.bin -c boot/boot.catalog boot1" > 1.mkisofs_opts
+echo -n "-J -b boot/rescue.bin -c boot/boot.catalog boot1" > 1.mkisofs_opts
-(cd $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/ ; \
- cp resc*.bin linux root.bin $CDDIR/install )
+(cp -a $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/ $CDDIR/install
+)
mkdir -p boot1/boot
-cp $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/resc2880.bin boot1/boot
+cp $CDDIR/dists/$CODENAME/main/disks-$ARCH/current/disks-2.88/rescue.bin boot1/boot
#Extracting tools for disc 1
diff -udrNP debian-cd-2.1.91.orig/tools/boot/potato/boot-m68k debian-cd-2.1.91/tools/boot/potato/boot-m68k
--- debian-cd-2.1.91.orig/tools/boot/potato/boot-m68k Thu Nov 11 19:55:23 1999
+++ debian-cd-2.1.91/tools/boot/potato/boot-m68k Fri Feb 18 19:03:32 2000
@@ -38,6 +38,8 @@
# The first two items are in a tar file at master.debian.org:~lawrencc, along
# with a silly rsync script that will accomplish the last item.
+set -e
+
N=$1
CDDIR=$2
diff -udrNP debian-cd-2.1.91.orig/tools/boot/potato/boot-powerpc debian-cd-2.1.91/tools/boot/potato/boot-powerpc
--- debian-cd-2.1.91.orig/tools/boot/potato/boot-powerpc Thu Nov 11 19:55:23 1999
+++ debian-cd-2.1.91/tools/boot/potato/boot-powerpc Fri Feb 18 19:03:36 2000
@@ -11,6 +11,8 @@
# $1 is the CD number
# $2 is the temporary CD build dir
+set -e
+
N=$1
CDROOT=$2
diff -udrNP debian-cd-2.1.91.orig/tools/boot/potato/boot-sparc debian-cd-2.1.91/tools/boot/potato/boot-sparc
--- debian-cd-2.1.91.orig/tools/boot/potato/boot-sparc Thu Nov 11 19:55:23 1999
+++ debian-cd-2.1.91/tools/boot/potato/boot-sparc Fri Feb 18 19:03:40 2000
@@ -9,6 +9,8 @@
#
# Do install stuff for sparc, including making bootable CDs
+set -e
+
N=$1
CDDIR=$2
diff -udrNP debian-cd-2.1.91.orig/tools/pi-makelist debian-cd-2.1.91/tools/pi-makelist
--- debian-cd-2.1.91.orig/tools/pi-makelist Thu Jan 1 01:00:00 1970
+++ debian-cd-2.1.91/tools/pi-makelist Fri Feb 18 21:03:44 2000
@@ -0,0 +1,63 @@
+#! /bin/sh
+
+if [ "$1" == "" ] ; then
+ echo ""
+ echo 'Usage: pi-makelist cdimage.iso > cdimage.iso.list'
+ echo ""
+ echo "Will print on stdout the ordered list of files in the ISO 9660 image."
+ echo ""
+ echo 'Copyright (C) 1999 J.A. Bezemer <costar@panic.et.tudelft.nl>'
+ echo "Released under GNU GPL NO WARRANTY AT ALL USE AT YOUR OWN RISK"
+ echo ""
+
+ exit
+fi
+
+# In my testing situation, isoinfo was in . but . wasn't in the PATH.
+PATH="$PATH":.
+export PATH
+
+# The rest is one long pipe. The best way to find out why it works is
+# to comment out all but the first command, and then remove one hash
+# each run.
+
+isoinfo -i "$1" -R -l -f \
+ | grep -B 1 '^-' \
+ | grep -v '^--$' \
+ | (
+ while read ThisFile; do
+ read ThisInfoLine
+
+ echo "$ThisInfoLine" ["$ThisFile"]
+ done
+ ) \
+ | tr ']' '[' \
+ | cut -d '[' -f 2,4 \
+ | sort \
+ | cut -d '[' -f 2 \
+ | grep -v -e '/Packages' \
+ -e '/Sources' \
+ -e 'TRANS.TBL$' \
+ -e '^/md5sum.txt$' \
+ -e '^/Release-Notes$' \
+ -e '^/README.1ST$' \
+ -e '^/README.multicd$' \
+ -e '^/.disk/' \
+ -e '^/boot/' \
+ -e '^/install/' \
+ -e '^/tools/.*/' \
+ -e '^/tools/README.tools$' \
+ -e '.info$' \
+ -e '.m68k$' \
+ -e '^/m68k-faq/' \
+ -e '^/m68k-tools/' \
+ -e '^/extras/'
+
+# Note: we grep /install/ out because contents are also on other places
+# on the CD; rsync will duplicate them. Same with /boot/resc1440.bin
+# (/boot/boot.catalog is made during image generation).
+# Packages[.cd][.gz] are usually not the same as those on FTP. Same with
+# Sources[.gz].
+# And the /tools are only zipped on FTP.
+# /xxx.info is only on the m68k CDs and not on FTP.
+# *.m68k is not on FTP; m68k-faq and -tools are not on the Debian FTPs.
diff -udrNP debian-cd-2.1.91.orig/tools/potato/installtools.sh debian-cd-2.1.91/tools/potato/installtools.sh
--- debian-cd-2.1.91.orig/tools/potato/installtools.sh Sat Nov 13 15:21:21 1999
+++ debian-cd-2.1.91/tools/potato/installtools.sh Fri Feb 18 19:12:42 2000
@@ -5,17 +5,18 @@
set -e
BDIR=$TDIR/$CODENAME-$ARCH
+DOCDIRNAME=doc
# Put the install documentation in /install
-cd $BDIR/1/dists/$CODENAME/main/disks-$ARCH/current/documentation
-mkdir $BDIR/1/install/documentation
-cp *.{html,txt} $BDIR/1/install/documentation/
+cd $BDIR/1/dists/$CODENAME/main/disks-$ARCH/current/$DOCDIRNAME
+mkdir $BDIR/1/install/$DOCDIRNAME
+cp *.{html,txt} $BDIR/1/install/$DOCDIRNAME/
ln -sf install*.html $BDIR/1/install/index.html
-# Put the boot-disk documentation in /doc too
+# Put the boot-disk $DOCDIRNAME in /doc too
mkdir $BDIR/1/doc/install
cd $BDIR/1/doc/install
-for file in ../../install/documentation/*.{html,txt}
+for file in ../../install/$DOCDIRNAME/*.{html,txt}
do
ln -s $file
done
diff -udrNP debian-cd-2.1.91.orig/tools/scansources debian-cd-2.1.91/tools/scansources
--- debian-cd-2.1.91.orig/tools/scansources Thu Nov 11 18:10:41 1999
+++ debian-cd-2.1.91/tools/scansources Fri Feb 18 19:03:01 2000
@@ -6,7 +6,7 @@
# This script will create the Sources.gz files
# First arg = directory of the CD
-#set -e
+set -e
PREFIX=$1
if [ -n "$NONFREE" ]; then
Reply to: