This TODO list can only touch on some larger issues, but there are a great
many open bugs on various components of the installer. See all bugs tagged
d-i in the BTS. Also, there are many unprocessed installation-reports.


Status for different parts of debian-installer.  The numbers are
approximate (as in +/- 50%) and may change in any direction, at any
time.

[0%] Not begun
---------------------------------------------------------------------
	- some architectures
		hurd-i386 (we will ship w/o this)
		sh (we will ship w/o this)
	- support for non-free udebs
		Driver disks are already supported, but that is not really
		good enough for etch.

[30%] Might need large rewrites. Current implementation might
      work by accident
---------------------------------------------------------------------
	- persistent disk device names
		With udev, the best approach, according to Md, is to use
		the /dev/disk/ persistent devices which should always be
		the same. Would need partman, bootloader installer,
		probably other changes.

[60%] Needs some work, but does its grunt work
---------------------------------------------------------------------
	- I18N
		Mostly done, still filling in minor holes.
	- translations
		Varying languages translated to varying degrees.
		http://people.debian.org/~seppy/d-i/translation-status.html
	- boot loader installers (lilo, grub, etc)
		Work, except for when they don't. See BTS.
	- disk selector, partitioner
		We have switched to partman everything except a couple of
		subarches and s390.
	- web site
		http://www.debian.org/devel/debian-installer/
		Could be better laid out, lacking some sections, other
		parts are quite good.
	- archive integration
		No automatic propagation to testing.
		No source propagation for udeb sources!
		http://people.debian.org/~joeyh/d-i/testing-summary.html
	- hw-detect
		Working, but various issues with specific hardware.
	- pcmcia support
		Much improved, generally works now.
		Automatic PCI resource range exclusion based on probing
		still needed, work in progress.
	- low memory support
		Where "low" is 24-46 mb!
		Works, but user must be careful to set up swap ASAP.
		There is no sanity checking, and some bad failure modes.
		More work needed for 16 mb installs.
	- user documentation
		Installation manual is up-to-date for i386.
		Needs sanity checking for other architectures.
	- developer documentation
		We understand it, but it could be improved.
	- integrate/document rescue mode support
		Needs bootloader configuration (done on x86, sparc, ia64).
		Needs easy ways to do common tasks like reinstalling a
		bootloader (done for grub and yaboot).
	- g-i
		Working pretty well, still a few known bugs and UI issues.
	- ppp support
		Not as important for analog dialup, as for ISDN, pppoe.
		pppoe-udeb works
	- most architectures
		i386
		ia64
		powerpc
		mips
		mipsel
		m68k (some subarches)
			- bvme floppies need root to build
		alpha
		sparc
			- floppies need root to build
		armel
		hppa
		amd64
		s390

[90%] Single missing important feature or bug.
---------------------------------------------------------------------
	- iso-scan
		Works, but does not flag the disk the iso is mounted from
		as unusable by the rest of the installer.
	- netcfg
		Working, pending rewrite for IPv6.
	- localechooser
		The perennial problem is how to order/present the list of
		languages. Many complaints, but it works.
	- base system installer
		Improve kernel selection. Knowing about some kind of
		preference order for kernels would be good. (cjwatson)
	- anna
		Needs support for Release files.
	- preseeding
		Works pretty well.
		Some things still cannot be preseeded. This is generally a
		bug in the udeb's use of debconf.

[100%] Those shouldn't need to be touched any more 
       (famous last words)
---------------------------------------------------------------------
	- udpkg
	- cd installs
	- net retriever
	- cdrom retriever
	- ethdetect
	- cdebconf
	- floppy retriever
	- main-menu
	- choose-mirror
	- busybox integration
	- install media build system
	- kernel-package integration
	- library reduction
	- wireless support
	- save-logs
	- 2.6 support
	- udev


Post-etch goals
================

	- fix pkg-lists names to match images (joeyh)
	- consistent indentation of all shell scripts
	  (with a style that minimises size on initrd! :-) (joeyh)
	- 16 mb installs
	- finish partman (anton)
	- handle debian upgrades in partman (anton)
	- fai integration (markos)
	- use same device names in installer and installed
	  system (cjwatson)
	- non-linux d-i (jbailey)
	- moon-buggy udeb (cts@debian)
	- britney and udebs
	- fai disk config files in d-i (holger)
	- low(er) mem (zboob)
	- uml for testing d-i (anton)
	- post reboot network configuration (cjwatson)
	- real deb from archdetect udeb (luther)
	- integrate selinux installation into the installer, for a painless
	  install (joeyh/manoj?)
	- add a xen server task (joeyh)
		- requires a way to install the xen kernel, which might
		  mean moving kernel etc package installation from the end
		  of base-installer to the end of pkgsel

Common problems and transitions
===============================

This is a list of common mistakes that need to be corrected throughout the
code base:

  * All debconf commands that INPUT, GO, GET or SET questions should check
    their return value. This is pure evil:

    debconf->command(debconf, "GET", "mirror/suite", NULL); /* unchecked return code ! */
    asprintf(&command, "foo %s", debconf->value);
    system(command);

  * cdebconf's debconfclient.h has a set of macros for calling debconf
    (debconf_get() and so on)
    These should perhaps be used consistently throughout the code for
    clarity.

  * udebs should not include md5sums files, or postrm, prerm, preinst
    scripts. Linda will find these pretty well.
