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