diff --git a/Makefile b/Makefile index 49386d7f..8334803e 100755 --- a/Makefile +++ b/Makefile @@ -465,9 +465,6 @@ bin-images: ok bin-md5list $(OUT) 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; \ done src-images: ok src-md5list $(OUT) @echo "Generating the source iso images ..." @@ -480,11 +477,14 @@ src-images: ok src-md5list $(OUT) 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; \ done +# Generate the *.list files for the Pseudo Image Kit +pi-makelist: + @for file in $(OUT)/$(CODENAME)-*.raw; do \ + $(BASEDIR)/tools/pi-makelist \ + $$file > $${file%%.raw}.list \ + done # Generate only one image number $(CD) image: bin-image diff --git a/README b/README index 84c25750..6601d947 100644 --- a/README +++ b/README @@ -19,7 +19,8 @@ Software : - perl (>= 5.004) - bash (or another POSIX shell) - make -- mkisofs/mkhybrid +- mkisofs/mkhybrid (mkisofs also provides the isoinfo binary used by the + Pseudo Image Kit) - dpkg-multicd package (for dpkg-scanpackages with -m option) - the perl MD5 module - dpkg-dev (>= 1.4.1.6) (for dpkg-scansources) @@ -32,7 +33,8 @@ Other : ------------------------------- - GENERATING DEBIAN CD IMAGES - ------------------------------- - + + For people that do not have time, here's the quick explanation : ================================================================ @@ -47,6 +49,7 @@ $ make official_images But you really should consider reading further for more information. + How to build a CD set - step by step ==================================== @@ -156,7 +159,24 @@ The process of building a CD is decomposed as follow : images you can do it with : $ make imagesums - + +Additionnal targets +=================== + +Pseudo Image Kit +---------------- +Those of you, who will make images available to people for download may +consider using the Pseudo Image Kit (cf http://cdimage.debian.org for more +information). That's why you can launch "make pi-makelist" that will generate +the *.list files for the images you've just generated. + +The tools/pi-makelist script needs the isoinfo binary. You can get the +sources from http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html + +Alternatively (and certainly simpler for people using Debian system), the +isoinfo binary is in the mkisofs package (since Debian potato at least). + + About the hook system ===================== diff --git a/debian/changelog b/debian/changelog index 6e7ee927..512a17a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -17,8 +17,8 @@ debian-cd (2.1.92) frozen unstable; urgency=low file is included at the end of the Debian_potato task in order to include the packages that are widely used on the first CD if possible. * Added a bunch of set -e. - * Added pi-makelist to generate the *.list files used by the Pseudo - Image Kit. + * Added pi-makelist target to generate the *.list files used by the + Pseudo Image Kit. Needs isoinfo in the cdwrite package. * Updated README and README.devel. Explained that the main source is on CVS and that patch should apply on the CVS tree not on the source package available on the Debian FTP. diff --git a/tools/apt-selection b/tools/apt-selection index 3beaa71a..67d0d9cc 100755 --- a/tools/apt-selection +++ b/tools/apt-selection @@ -3,7 +3,9 @@ # 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 +# There's not set -e here because this script may fail ! +# Apt doesn't always work ... +# set -e # Get the configuration information if necessary if [ -z "$TDIR" -o -z "$CODENAME" -o -z "$ARCH" ]; then diff --git a/tools/pi-makelist b/tools/pi-makelist new file mode 100755 index 00000000..4c36948a --- /dev/null +++ b/tools/pi-makelist @@ -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 ' + 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.