blob: 9aa06d3965826e2888fd5419ccf5e4a60660077c [file] [log] [blame]
RoadMap
=======
<http://wiki.debian.org/Teams/Dpkg/RoadMap>
TODO
====
1.16.x
~~~~~~
* Review this file and remove or update the old entries.
* Look for FIXME and XXX items in the source.
* Triage as much bugs as possible to get the bug count below 300 ;) and
merge as much patches as possible.
* Create dedicated manual pages for .changes and .dsc documenting the
format of the files. (deb-foo might not be apprioriate as those are
not inside of the .deb file, but changes(5) seems too generic.)
Explain that backwards incompatible change involve a major version bump
(1.x => 2.x) while minor version bump will be used for backwards
compatible extension (e.g. new fields).
* Build:
- Make dpkg bootstrappable.
- Check availability of warning flags at configure time.
- Handle missing lstat at configure time by erroring out.
* Code cleanup / bug fixes:
- Get rid of static variables inside functions.
- Coalesce admindir / infodir / foodir generation.
- Coalesce hash and checksum functions.
- Split modstatdb_rw into mode and flags.
- Move fd function out of mlib.
- Cleanup status chars -> strings hardcoded mappings all over the place.
(Fix tied field enum with its dselect description (pkgdisplay.cc))
- Refactor src/processarc.c.
- Split dpkg.h into independent headers.
- Do more unused header include removal.
- Add needed includes to all header files.
- Get rid of unuseful "unsigned" modifiers.
- Use internerr instead of assert, and print more meaninful messages.
- Make actionfunction return int, and avoid global exitcode variables.
- Make deb build version a version instead of doing checks over a string.
- Use enums for currently hardcoded literals (replacingfilesandsaid,
saidread, rok, filetriggers_edited, etc).
- Do not use nfmalloc (and friends) for non in-core db memory.
- Call nffreeall on exit (need to detangle nfmalloc from non-db first).
- Add a size parameter to the buffer api to avoid some useless
pipe+fork+copy.
- Handle instdir '/' separator consistently.
- Check if caching selinux context for second call is possible.
- Add missing newlines in --version output.
- Fix leak on tar_extract (name, linkname).
- Handle symlinks in statcmd.c statdb_node_apply().
- Fix dpkg termination on SIGPIPE from status-fd.
* libcompat cleanup:
- Add fnmatch, IRIX5 doesn't have it.
* Man pages:
- Add example to dpkg-scanfoo manpages?
- Merge synopsis lines in dpkg-triggers.
- Check all command vs action.
- Check usage of '|' instead of ', '.
- Check position of short option before long option.
- Fix dpkg man page, refs to dpkg-deb and dpkg-split, etc.
- Fix «. ».
* L10n:
- Check dpkg-divert strings for new and fixable ones.
- Standardize translated error messages in the perl code to avoid useless
work for translators.
- Check http://d-i.alioth.debian.org/spellcheck/level5/index.html
* Discuss and implement
http://www.hadrons.org/~guillem/debian/docs/origin.proposal
* Deprecate --force-not-root flag (remove modstatdb_rw rootneeded flags).
* Test and reenable --command-fd.
* Check --no-act for log_action().
* Add non-regression tests for Dpkg::Source::*
* Add UTF-8 support to all programs.
* Allow packages to register additional files, declare ownership of files for
dpkg -S and -L without having dpkg act on this (.psuedolist?).
* 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.
- Support for output format. (#214566)
* Fix conflicting action -%c, when short is 0.
* We should set our own obstack_alloc_failed_handler.
* Remove compatibility symlinks
/usr/sbin/{update-alternatives,dpkg-divert,dpkg-statoverride}.
* Remove install-info wrapper.
------------------------------------------------------------------------------
Old TODO entries from Scott:
start-stop-daemon
* capabilities support
* don't close FD's
dpkg
* 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)
* add test to see if a file should really be installed and optionally
skip it
* 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
* understand Replaces in dselect
* diversions list as control archive entry
* single maintainer script, and new package getting there first
* local conffiles, as well 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
* `fake' or `null' packages
* dpkg --query | -Q