Hi! I've been working on a patch to make debian-cd be able to build small cd images. I think this one does it.
The following patch produces images just with: 1-debian-installer and the doc 2-debian-installer, files necesary for a basic install and the doc I have tested it both here at home and at gluck, so if nobody objects to the code I will commit it. I could put this into production in gluck if we like it, but there are some issues: First of all, what do we want to build, the smaller ones 45 Mb right now, or the installable from cd ones, 83 Mb. Second but not least, there are several problems with the dependencies on d-i: The first one is that the packages depend on libc6, which causes libc6 to go into the cds wich means at least more than 3 megs of unneeded oversize, the packages depend on libc6 2.3.1 and we are putting on the cds version 2.2.5. Second, there are some d-i udeb packages that won't be installed due to missing dependencies, these missing depends are libparted1.6-0 and libdebian-installer3 which are on sid but are not udebs on d-i repository. The packages that depend on them and that don't go on the cd are: anna, autopartkit, choose-mirror, ethdetect, main-menu, net-retriever, netcfg-dhcp and netcfg-static. I can fix this last problem adding those packages from sid, but I really believe that that is not the way to go. I believe that this should be fixed by making udebs of those packages with the right dependencies. As for the dependency on libc6, that should also be fixed on d-i packages. Once we have this fixed we can go to the first question, the medium cds or the smaller ones? and then put them into production, but I really don't think that they should be put into production before this problems being solved. Comments on all this? I'd like to know other people opinions on this, mostly the Release Manager's, but also others. Well, guess that is all, questions will also be accepted ;-) Regards... -- Manty/BestiaTester -> http://manty.net diff -N -u -r debian-cd.orig/CONF.sh debian-cd/CONF.sh --- debian-cd.orig/CONF.sh 2002-12-14 14:58:15.000000000 +0100 +++ debian-cd/CONF.sh 2002-12-19 01:30:27.000000000 +0100 @@ -32,6 +32,7 @@ unset PUBLISH_URL || true unset PUBLISH_NONUS_URL || true unset PUBLISH_PATH || true +unset INSTALLER_CD || true # The debian-cd dir @@ -202,3 +203,9 @@ # File with list of packages to exclude as above. #export BASE_EXCLUDE="$BASEDIR"/data/$CODENAME/base_exclude + +# Only put the installer onto the cd (set NORECOMMENDS,... as well). +# INSTALLER_CD=0: nothing special (default) +# INSTALLER_CD=1: just add debian-installer (use TASK=tasks/debian-installer) +# INSTALLER_CD=2: add d-i and base (use TASK=tasks/debian-installer+kernel) +#export INSTALLER_CD=0 diff -N -u -r debian-cd.orig/Makefile debian-cd/Makefile --- debian-cd.orig/Makefile 2002-12-14 14:53:18.000000000 +0100 +++ debian-cd/Makefile 2002-12-19 00:59:41.000000000 +0100 @@ -215,11 +215,15 @@ status: init $(ADIR)/status $(ADIR)/status: @echo "Generating a fake status file for apt-get and apt-cache..." - $(Q)zcat $(MIRROR)/dists/$(CODENAME)/main/binary-$(ARCH)/Packages.gz | \ - perl -000 -ne 's/^(Package: .*)$$/$$1\nStatus: install ok installed/m; \ + $(Q)if [ "$(INSTALLER_CD)" = "1" -o "$(INSTALLER_CD)" = "2" ];then \ + :> $(ADIR)/status ; \ + else \ + zcat $(MIRROR)/dists/$(CODENAME)/main/binary-$(ARCH)/Packages.gz | \ + perl -000 -ne 's/^(Package: .*)$$/$$1\nStatus: install ok installed/m; \ print if (/^Priority: (required|important|standard)/m or \ /^Section: base/m);' \ - > $(ADIR)/status + > $(ADIR)/status ; \ + fi # Updating the apt database $(Q)$(apt) update # @@ -328,7 +332,7 @@ grep-dctrl -FSection -n -sPackage -e '^(non-US|non-us)' - | \ sort | uniq > $(BDIR)/Debian_$(CODENAME)_nonUS endif - $(Q)if [ -x "/usr/sbin/debootstrap" ]; then \ + $(Q)if [ -x "/usr/sbin/debootstrap" -a _$(INSTALLER_CD) != _1 ]; then \ /usr/sbin/debootstrap --arch $(ARCH) --print-debs $(CODENAME) \ | tr ' ' '\n' >>$(BDIR)/rawlist; \ fi diff -N -u -r debian-cd.orig/debian/CONF.sh debian-cd/debian/CONF.sh --- debian-cd.orig/debian/CONF.sh 2002-12-14 14:58:15.000000000 +0100 +++ debian-cd/debian/CONF.sh 2002-12-19 01:30:49.000000000 +0100 @@ -28,6 +28,7 @@ unset PUBLISH_URL || true unset PUBLISH_NONUS_URL || true unset PUBLISH_PATH || true +unset INSTALLER_CD || true # The debian-cd dir @@ -197,3 +198,9 @@ # File with list of packages to exclude as above. #export BASE_EXCLUDE="$BASEDIR"/data/$CODENAME/base_exclude + +# Only put the installer onto the cd (set NORECOMMENDS,... as well). +# INSTALLER_CD=0: nothing special (default) +# INSTALLER_CD=1: just add debian-installer (use TASK=tasks/debian-installer) +# INSTALLER_CD=2: add d-i and base (use TASK=tasks/debian-installer+kernel) +#export INSTALLER_CD=0 diff -N -u -r debian-cd.orig/tasks/debian-installer debian-cd/tasks/debian-installer --- debian-cd.orig/tasks/debian-installer 2002-11-22 18:14:32.000000000 +0100 +++ debian-cd/tasks/debian-installer 2002-12-14 17:32:52.000000000 +0100 @@ -3,23 +3,35 @@ * This list can be generated with that command line: * $ grep-dctrl -s Package -n -e '.*' /mirror/debian/dists/sarge/main/debian-installer/binary-i386/Packages * - * Last update: $Date: 2002/11/22 17:14:32 $ + * Last update: $Date: 2002/12/14 13:48:52 $ */ anna +autopartkit base-installer brltty-udeb +busybox-cvs-udeb busybox-udeb cdebconf-udeb cdrom-detect -cdrom-modules-2.4.18-386-udeb cdrom-modules-2.4.19-386-udeb +cdrom-modules-2.4.20-386-udeb cdrom-retriever choose-mirror +console-fonts +console-keymaps-acorn +console-keymaps-amiga +console-keymaps-atari +console-keymaps-mac +console-keymaps-ps2 +console-keymaps-sun dash-udeb debootstrap-udeb dhcp-client-udeb dhcp3-client-udeb +di-utils-fake-mkfs +di-utils-fake-mount-partitions +di-utils-fake-partitioner di-utils-mkfs di-utils-mount-partitions di-utils-partitioner @@ -32,14 +44,17 @@ fdisk-udeb file-retriever floppy-modules-2.4.19-386-udeb +floppy-modules-2.4.20-386-udeb +floppy-retriever grub-installer -ide-modules-2.4.18-386-udeb ide-modules-2.4.19-386-udeb +ide-modules-2.4.20-386-udeb ipv6-modules-2.4.19-386-udeb -isa-pnp-modules-2.4.18-386-udeb +ipv6-modules-2.4.20-386-udeb isa-pnp-modules-2.4.19-386-udeb -kernel-image-2.4.18-386-udeb +isa-pnp-modules-2.4.20-386-udeb kernel-image-2.4.19-386-udeb +kernel-image-2.4.20-386-udeb libc-udeb lilo-installer main-menu @@ -49,27 +64,27 @@ net-retriever netcfg-dhcp netcfg-static -nic-modules-2.4.18-386-udeb nic-modules-2.4.19-386-udeb -nic-modules-extra-2.4.18-386-udeb +nic-modules-2.4.20-386-udeb nic-modules-extra-2.4.19-386-udeb -nic-modules-shared-2.4.18-386-udeb +nic-modules-extra-2.4.20-386-udeb nic-modules-shared-2.4.19-386-udeb -packet-socket-2.4.18-386-udeb +nic-modules-shared-2.4.20-386-udeb packet-socket-2.4.19-386-udeb -plip-modules-2.4.18-386-udeb plip-modules-2.4.19-386-udeb -ppp-modules-2.4.18-386-udeb +plip-modules-2.4.20-386-udeb ppp-modules-2.4.19-386-udeb +ppp-modules-2.4.20-386-udeb ppp-udeb prebaseconfig pump-udeb rootskel -scsi-modules-2.4.18-386-udeb scsi-modules-2.4.19-386-udeb -serial-modules-2.4.18-386-udeb +scsi-modules-2.4.20-386-udeb serial-modules-2.4.19-386-udeb +serial-modules-2.4.20-386-udeb socket-modules-2.4.19-386-udeb +socket-modules-2.4.20-386-udeb udhcpc-udeb udpkg diff -N -u -r debian-cd.orig/tasks/debian-installer+kernel debian-cd/tasks/debian-installer+kernel --- debian-cd.orig/tasks/debian-installer+kernel 1970-01-01 01:00:00.000000000 +0100 +++ debian-cd/tasks/debian-installer+kernel 2002-12-14 17:32:52.000000000 +0100 @@ -0,0 +1,13 @@ +/* These files + the ones needed by debootstrap are the ones needed for + * debian-installer to be able to complete the installation of the base. + * at least at this pre-sarge days. + * + * Last update: $Date: 2002/12/14 16:06/34 $ + */ + +#include <debian-installer> +cramfsprogs +dash +initrd-tools +kernel-image-2.4.19-386 +zlib1g diff -N -u -r debian-cd.orig/tools/sarge/installtools.sh debian-cd/tools/sarge/installtools.sh --- debian-cd.orig/tools/sarge/installtools.sh 2002-10-11 11:51:24.000000000 +0200 +++ debian-cd/tools/sarge/installtools.sh 2002-12-14 17:32:52.000000000 +0100 @@ -20,7 +20,7 @@ cd $DOCS mkdir -p $DIR/install/$DOCDIR if cp -a * $DIR/install/$DOCDIR/ ; then - ln -f install.en.html $DIR/install/$DOCDIR/index.html + ln -f $DIR/install/$DOCDIR/install.en.html $DIR/install/$DOCDIR/index.html else echo "ERROR: Unable to copy boot-floppies documentation to CD." fi