== This is my custom TODO file == * Make sure all the alpm_list_t changes are valid (especially alpm_list_free) * src/pacman: - There's quite a few single function headers which contain the pacman_* functions. We should move these to a single header (pacman.h) to clean up the source a bit. * lib/libalpm: - move logging (alpm_logaction) out of the library. log files should be written by the app, not the library. Adding a PM_LOG_* constant that frontends can recognize and send to a file is probably a good idea. - clear up list allocation/deallocation - some lists need to be free'd, some do not and there is no clear indication WHEN this should happen. - remove DB entries (directories) on a read error? * pacman: A LOT of functions are way too long. There should be an upper limit of 100-200 lines. _alpm_add_commit is around 600 lines, and is far too complex. Quite a lot of this needs to be refactored as we go. Function list (from Dan McGee): add.c: _alpm_add_commit be_files.c: _alpm_db_read _alpm_db_write conflict.c: _alpm_checkconflicts _alpm_db_find_conflicts package.c: _alpm_pkg_load (getting a bit long) remove.c: _alpm_remove_commit server.c: _alpm_downloadfiles_forreal sync.c: _alpm_sync_sysupgrade (getting there) _alpm_sync_prepare _alpm_sync_commit * pacman: fixup doxygen documentation for public interface **** BUGS **** * Removal of conflicts on -A and -U (INCOMPLETE) * gensync: get all info from packages instead of PKGBUILDs for now, we only need to check the PKGBUILD in case of a 'force' option * pacman: add pactest cases/functionality for all -Q operations and make sure the output is sane