ROADMAP
=======

lenny
~~~~~

 * Review this file and remove or update the old entries.

 * Triage as much bugs as possible to get the bug count below 300 ;) and
   merge as much patches as possible.

1.14.x
------

 * Make dpkg bootstrappable (modularize dpkg-architecture).

 * Support udeb natively:
   - Add field Package-Type and friends.
   - Generate proper Packages files. (#383916)

1.14.y
------

 * Add Wig&Pen source package support.

 * Support lzma and bzip2 source package compression.

 * Get rid of install-info.

 * Add multiarch support.

 * Merge dpkg-cross functionality.

 * Merge dpkg-sig?

 * Support versioned symbols in dpkg-shlibdeps.

 * Start exposing libdpkg.

 * Convert controllib.pl to a new style perl module(s).

 * Fix tied field enum with its dselect description (pkgdisplay.cc).

 * Add example to dpkg-scanfoo manpages?

 * The cleverer conffile support bug fixed.

 * Add UTF-8 support to all programs.

 * Add md5sums and/or sha1sums package support. (#155676)

 * Allow packages to register additional files, declare ownership of files for
   dpkg -S and -L without having dpkg act on this (.psuedolist?).

 * Some kind of test-suite (Esteban).

 * Parse the dependencies and coalesce them: controllib.pl (parsedep).

 * Make dpkg-checkbuilddeps easier to use by other programs such as pbuilder
   or sbuild, so that they can start using the new architecture wildcards
   automatically.
   - New command line arguments to retrieve Build-Depends. (#114774)
   - Support for output format. (#214566)

 * Remove conffile background support? (#38334)

 * Make dpkg-build --build check for duped conffiles. (#131633)

 * Make update-alternatives --display support --quiet. (#336091)

 * Make dpkg-checkbuilddeps check build-essential. (#402901)

 * Fix pointless use of strdup. (#379027)

 * Propagate --admindir to programs run from maintainer scritpts. (#97076)

 * Fix quotes? <http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html>


TODO
====

Old TODO entries from Scott:

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
* capabilities support
* don't close FD's

dpkg
* integrate debconf (add new status)
* allow external program to specify how to handle conffiles
* 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

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

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.
 * Several things ought to be configurable but aren't.
 * Filenames containing newlines.  Conffile names containing spaces.
 * dpkg --status for virtual packages
 * openpgp signatures in the package archive

other stuff unlikely to get done soon
 * 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
 * diversions list as control archive entry
 * single maintainer script, and new package getting there first
 * local conffiles, aswell as local files that dpkg should check before
   overwriting
 * hooks
 * dselect per-half focus and keybindings improvements.
   !missing bug report #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

