Updating German Translation
[pacman-ng.git] / TODO.dan
blob70e08295158f8877848ce1c029cb31b242f04fa7
1 TODO.dan
2 ========
4 This is my personal TODO list. No guarantees if it is out of date and things no
5 longer apply. If you want to help out with any of it, send me an email.
7 Only vaguely related to pacman:
8 -------------------------------
10 Port the libdownload (libfetch) manpage from BSD style to Linux style, or at
11 very least change references to BSD.
14 Pacman 3.1:
15 -----------
17 Documentation- look into moving man page format to a more portable source
18 format to make translation easier to keep up-to-date (something like txt2tags,
19 docbook, asciidoc) This will need some research.
21 Update cache cleaning functionality - keep installed version, choose number to
22 keep, etc. Good python script in the forums that we should try to emulate.
24 Downgrade feature - allow users to see cached packages and downgrade to
25 (previous or any?) available options.
27 Installed size and download size in -Si/Qi output should scale with package
28 size- KB to MB to GB. We should also get consistancy of K/KB, M/MB, etc.
30 Extreme similarity between some of the sync and add code...we have to be able
31 to abstract more away from sync actions and add actions to just 'actions'
32 (example: sync,c, add.c, and deptest.c all contain a switch on PM_DEP_MOD_*).
33 Merge update, add, and sync code when possible, so we reduce duplication.
35 Review progress/transaction event subsystem. (from TODO)
37 Add Doxygen comments to every function in libalpm including private functions.
38 Ensure functions are doing exactly their purpose and nothing more. Find
39 functions that perform duplicate behavior and merge them. Combine and refactor
40 others. Delete unnecessary functions. Stop keeping everything clustered in
41 little add/sync/remove parts, allow transactions to share code.
43 Go through options list. Decide if namings are good, all options are still
44 relevant, etc. Ideas for -Re (#6273), changing meaning of -c (has two meanings,
45 another FS bug), etc. Remove the -A flag and possibly -D, -T, and -Y (-Y is
46 killed now in favor of vercmp binary) if they can be done by other actions.
47 Possible switch of -U --> -I (#5571).
49 Rewrite _alpm_sortbydeps to use Topological Sort. Should work using a standard
50 topo sort algorithm, once the crazy types can be fixed up a bit. Include a
51 cycle check - print a big error message if this happens.
52   -- http://en.wikipedia.org/wiki/Topological_sort
53   -- http://everything2.com/?node_id=556079
55 Review display and logging functions. There seems to be an abundance of them.
56 Make it extensible to use color, review what verbose/debug means. Perhaps
57 separate logging functionality- Pacman has its normal log, and alpm backend
58 keeps a very simple log file - listing only adds (including syncs) and removes.
59 This way a consistency list can be kept of what is currently installed and what
60 isn't, without all the logging junk from the front end.
62 If we stick with autotools, add more defines to configure.in, including
63 CACHEDIR, PKGEXT, so these can be specified at configure time for ease of use
64 by other distributions which may want to change the defaults. Also, review what
65 needs to be in config.h and what does not. There may be excess #depends which
66 are hard coded into the sources. (from TODO.autoconf)
68 Profile the code. Find the functions that are being called a lot, and see what
69 can be done about it. Find out if all these calls are necessary (e.g. excessive
70 alpm_list_count calls), and maybe think about changing data structures to speed
71 operations up (e.g. a 'count' field). NOTE: already found two huge issues with
72 quick profiling- excessive setlocale calls, and extremely excessive strcmp
73 calls.
75 Localize the date display done in --info output. Also, fix other localized
76 issues- use non-printf when necessary, make sure all two line printed messages
77 (especially usage instructions) are printed using one print statement. We
78 may need to use some wchar_t output on the progress bar as char/byte counts
79 differ here. Sizes of packages (e.g. 10,400.23 MB) should all be localized with
80 correct seperators.
82 Rewrite makepkg to use terminal-safe coloring/bolding. tput utility should
83 allow us to do this. Make universal message functions for systemwide use,
84 including all pacman utilites- abs, pacman-optimize, etc.
86 Bugs/FRs to smash: 6468, 6437, 6430?, 6420, 6404, 6389, 6312?, 6284, 6273?,
87 6255?, 6208, 5987, 5885, 5571, 4182, 3492, 2810?, 1769, 1588, 1571
89 Remove _alpm from function names now that we have SYMHIDDEN and static
90 declarations.
92 Remove alpm.c, put functions where they should be.
94 Update doxygen comments, they may need some work. Try to document all of the
95 private internal functions too- it helps a ton for people just getting a
96 start on pacman hacking.
98 Other smaller things:
99 ---------------------
101 unsigned int vs. unsigned- determine a standard and stick with it
103 FS #4185 - move where message is logged, perhaps?
105 Update copyrights (2007)
107 Update pacman website, and add/finish pacman coding style page
109 autogen.sh / autoclean.sh - these seem messy. Can we clean this up?
111 Refine makepkg error codes. Each kind of failure could have its own code:
112   --package already built
113   --failed integ checks
114   --failed build
115   --etc.
117 Add utility function to either frontend or backend to convert sizes: e.g. bytes
118 to KB, MB, GB.
120 Revamp the downloadprog function a bit. Seems kind of messy.
122 Add localized pkgdesc variables to makepkg.
124 --print-uri option to sync should not require saying yes or no to up to date
126 Add testing scripts to pactest for issues we have been working on (especially 
127 files moving between packages). Also, take a look at cleaning up the output and
128 structure of the pactest.py program itself.
130 Build a replacement for this, or at least standardize its use. We shouldn't
131 always need to pass handle->root around, it is constant. Something like char*
132 buildpath(file).
133         /* build the new entryname relative to handle->root */
134         snprintf(filename, PATH_MAX, "%s%s", handle->root, entryname);
136 Random ideas:
137 -------------
139 Possibly split utilities/extras from pacman package
141 Make .indent.pro file for GNU indent (started, but didn't finish)