libdpkg:
* cut compat.c into little pieces and move them to optlib
* modify database to store per-file flags
* store checksums and stat data in per-file flags

optlib:
* add fnmatch, IRIX5 doesn't have it

start-stop-daemon
* write pidfile before we chroot?
* capabilities support
* don't close FD's
* add autoconf test for TIOCNOTTY

dpkg
* integrate debconf (add new status)
* allow external program to specify how to handle conffiles
* log our actions
* try to remove directories again after removing conffiles
* verify Enhances works (ie don't trigger some assertion)
* refactor processarc.c
* add test to see if a file should really be installed and optionally
  skip it
* dpkg --reconfigure <pkg> <pkg>
    <pkg>.postinst reconfigure <ver>
    Fail if pkg is not in the configured state.
* dpkg --call-maint-script=<script> --maint-script-arg=<arg>
  --maint-script-arg=<arg> <pkg> <pkg>
    dpkg will not allow <script> to be one of {pre,post}{inst,rm}.  Only
    unknown scripts can be called this way.  dpkg will also not keep track
    of any state for these scripts.

Fix:
<joeyh_> package a conflicted with old versions of package b. package b
      conficted with old versions of package a. I had the old versions of both
      installed, and told dpkg to install the new versions of a and b
      simulantaneously. It refused.

dselect:
* support Enhances

dpkg-source
* update format to handle multiple patches and tarballs

------------------------------------------------------------------------------

Old TODO entries from IWJ:

Here are some currently-known inadequacies:

urgent
 * Conflicts << installation ordering
 * Version numbers in pre-depends stuff
 * Search for all pre-depends things at once, bomb out if any not found
 * _always_ show section in --yet-to-unpack
 * automatically do --yet-to-unpack in installation methods
 * check depending packages when installing new version.
 * error handling from some dselect actions. 1399
 * Several things ought to be configurable but aren't.
 * Filenames containing newlines.  Conffile names containing spaces.
 * dpkg --status for virtual packages
 * logging, both transcript logs (kept briefly)
   and action logs (kept forever?)  957
 * start-stop-daemon process status check. 1480
 * openpgp signatures in the package archive

other stuff unlikely to get done soon
 * Purge a.out compatibility from source (keep the upgrade stuff in
   place).
 * Automatically remove <file>.gz if <file> can't be found ? and maybe,
   remove <file> if <file.gz> can't be found? Big mess when we start
   thinking about bz2 :/
 * Local version number (using non-numeric epoch, perhaps, or better yet,
   a --local option in dpkg, so that it marks this package as a local install
   (when running dpkg -i)? Keeps it from being listed as obsolete, and maybe
   from being considered for auto-upgrades (apt-get needs to know about this
   too)
 * Filename field generated by --record-avail 
 * handle split packages somehow.
 * understand Replaces in dselect
 * provide way for package to declare ownership of files for dpkg -S
   and -L without having dpkg act on this (.psuedolist?)
 * diversions list as control archive entry
 * single maintainer script, and new package getting there first
 * dpkg -s show something for virtual packages
 * settable defaults for update-rc.d
 * local conffiles, aswell as local files that dpkg should check before
   overwriting
 * hooks
 * There is no documentation. 1526
 * newbie interface to dselect. 1037
 * dselect per-half focus and keybindings improvements. 1555
 * floppy map (where are the files)
 * how to change case of package names
 * support for adding files to dpkg's file lists
 * `fake' or `null' packages
 * dpkg --query | -Q

done
 * highlight or pre-sort or something new or changed packages,
   during upgrade selection.
 * side-by-side version display
 * version number comparison option
 * Pre-Depends installation ordering
 * a.out version
 * uncomment ELF preinst modification
 * Replaces (auto-deselect for conflicts)
 * Replaces (don't overwrite otherwise)
 * compile with ELF GCC out of the box
 * dpkg --print-architecture
 * Architecture field check
 * symlink rename change
 * dpkg --listfiles should do better for multi-package files  (pkg, pkg: ...)
 * --purge remove empty directories which used too contain conffiles
 * conffiles handling options, including `replace removed files'
 * `diff' option at conffile prompt
 * check description in dpkg-deb
 * update-alternatives prompting.

obsoleted so not done
 * version numbers not starting digit early.
 * dselect bottom window too large, and/or resize
 * md5sum component in new .deb files
 * `template' file giving default selections of dselect.
