Patch for small cd images and producing them officially?
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
Reply to: