chiark / gitweb /
awful debugging hacking
[dpkg] / TODO
1 RoadMap
2 =======
3
4   <https://wiki.debian.org/Teams/Dpkg/RoadMap>
5
6 TODO
7 ====
8
9 1.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
89 Old TODO entries from Scott:
90
91 start-stop-daemon
92 * capabilities support
93
94 dpkg
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
102 Fix:
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
108 dselect:
109 * support Enhances
110
111 ------------------------------------------------------------------------------
112
113 Old TODO entries from IWJ:
114
115 Here are some currently-known inadequacies:
116
117 urgent
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
129 other 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