1 RoadMap
2 =======
4 <http://wiki.debian.org/Teams/Dpkg/RoadMap>
6 TODO
7 ====
9 1.17.x
10 ~~~~~~
12 * Review this file and remove or update the old entries.
14 * Look for FIXME and XXX items in the source.
16 * Triage as much bugs as possible to get the bug count below 300 ;) and
17 merge as much patches as possible.
19 * Create dedicated manual pages for .changes and .dsc documenting the
20 format of the files. (deb-foo might not be apprioriate as those are
21 not inside of the .deb file, but changes(5) seems too generic.)
22 Explain that backwards incompatible change involve a major version bump
23 (1.x => 2.x) while minor version bump will be used for backwards
24 compatible extension (e.g. new fields).
26 * Build:
27 - Check availability of warning flags at configure time.
29 * Code cleanup / bug fixes:
30 - Get rid of static variables inside functions.
31 - Coalesce hash and checksum functions.
32 - Split modstatdb_rw into mode and flags.
33 - Move fd function out of mlib.
34 - Cleanup status chars -> strings hardcoded mappings all over the place.
35 (Fix tied field enum with its dselect description (pkgdisplay.cc))
36 - Refactor src/processarc.c.
37 - Split dpkg.h into independent headers.
38 - Do more unused header include removal.
39 - Add needed includes to all header files.
40 - Get rid of unuseful "unsigned" modifiers.
41 - Use internerr instead of assert, and print more meaninful messages.
42 - Use enums for currently hardcoded literals (replacingfilesandsaid,
43 saidread, rok, filetriggers_edited, etc).
44 - Do not use nfmalloc (and friends) for non in-core db memory.
45 - Call nffreeall on exit (need to detangle nfmalloc from non-db first).
46 - Add a size parameter to the buffer api to avoid some useless
47 pipe+fork+copy.
48 - Handle instdir '/' separator consistently.
49 - Check if caching selinux context for second call is possible.
50 - Add missing newlines in --version output.
51 - Handle symlinks in statcmd.c statdb_node_apply().
52 - Fix dpkg termination on SIGPIPE from status-fd.
54 * libcompat cleanup:
55 - Add fnmatch, IRIX5 doesn't have it.
57 * Man pages:
58 - Add example to dpkg-scanfoo manpages?
59 - Merge synopsis lines in dpkg-triggers.
60 - Check all command vs action.
61 - Check usage of '|' instead of ', '.
62 - Check position of short option before long option.
63 - Fix dpkg man page, refs to dpkg-deb and dpkg-split, etc.
64 - Fix «. ».
66 * L10n:
67 - Check dpkg-divert strings for new and fixable ones.
68 - Standardize translated error messages in the perl code to avoid useless
69 work for translators.
70 - Check http://d-i.alioth.debian.org/spellcheck/level5/index.html
72 * Discuss and implement
73 http://www.hadrons.org/~guillem/debian/docs/origin.proposal
75 * Deprecate --force-not-root flag (remove modstatdb_rw rootneeded flags).
77 * Test and reenable --command-fd.
79 * Check --no-act for log_action().
81 * Add non-regression tests for Dpkg::Source::*
83 * Add UTF-8 support to all programs.
85 * Allow packages to register additional files, declare ownership of files for
86 dpkg -S and -L without having dpkg act on this (.psuedolist?).
88 * Make dpkg-checkbuilddeps easier to use by other programs such as pbuilder
89 or sbuild, so that they can start using the new architecture wildcards
90 automatically.
91 - Support for output format. (#214566)
93 * Fix conflicting action -%c, when short is 0.
95 * We should set our own obstack_alloc_failed_handler.
98 ------------------------------------------------------------------------------
100 Old TODO entries from Scott:
102 start-stop-daemon
103 * capabilities support
105 dpkg
106 * allow external program to specify how to handle conffiles
107 * dpkg --call-maint-script=<script> --maint-script-arg=<arg>
108 --maint-script-arg=<arg> <pkg> <pkg>
109 dpkg will not allow <script> to be one of {pre,post}{inst,rm}. Only
110 unknown scripts can be called this way. dpkg will also not keep track
111 of any state for these scripts.
113 Fix:
114 <joeyh_> package a conflicted with old versions of package b. package b
115 conficted with old versions of package a. I had the old versions of both
116 installed, and told dpkg to install the new versions of a and b
117 simulantaneously. It refused.
119 dselect:
120 * support Enhances
122 ------------------------------------------------------------------------------
124 Old TODO entries from IWJ:
126 Here are some currently-known inadequacies:
128 urgent
129 * Conflicts << installation ordering
130 * Version numbers in pre-depends stuff
131 * Search for all pre-depends things at once, bomb out if any not found
132 * _always_ show section in --yet-to-unpack
133 * automatically do --yet-to-unpack in installation methods
134 * check depending packages when installing new version.
135 * Several things ought to be configurable but aren't.
136 * Filenames containing newlines. Conffile names containing spaces.
137 * dpkg --status for virtual packages
138 * openpgp signatures in the package archive
140 other stuff unlikely to get done soon
141 * Automatically remove <file>.gz if <file> can't be found ? and maybe,
142 remove <file> if <file.gz> can't be found? Big mess when we start
143 thinking about bz2 :/
144 * Local version number (using non-numeric epoch, perhaps, or better yet,
145 a --local option in dpkg, so that it marks this package as a local install
146 (when running dpkg -i)? Keeps it from being listed as obsolete, and maybe
147 from being considered for auto-upgrades (apt-get needs to know about this
148 too)
149 * Filename field generated by --record-avail
150 * understand Replaces in dselect
151 * diversions list as control archive entry
152 * single maintainer script, and new package getting there first
153 * local conffiles, as well as local files that dpkg should check before
154 overwriting
155 * dselect per-half focus and keybindings improvements.
156 !missing bug report #1555!
158 * floppy map (where are the files)
159 * how to change case of package names
160 * `fake' or `null' packages
161 * dpkg --query | -Q
