| 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 |