Date: Wednesday, February 7, 2007 @ 17:08:38 Author: dan Path: /home/cvs-pacman/pacman-lib Modified: TODO.dan (1.4 -> 1.5) lib/libalpm/alpm.c (1.112 -> 1.113) lib/libalpm/be_files.c (1.25 -> 1.26) Removed: TODO (1.17) TODO.autoconf (1.3) Spruced up the TODOs a bit, got rid of some of them since a lot of it was duplicate anyway. Also removed the last of the ORE tags and replaced them with TODOs. ------------------------+ TODO | 50 ----------------- TODO.autoconf | 24 -------- TODO.dan | 138 ++++++++++++++++++++++++++++------------------- lib/libalpm/alpm.c | 24 +++----- lib/libalpm/be_files.c | 5 - 5 files changed, 97 insertions(+), 144 deletions(-) Index: pacman-lib/TODO diff -u pacman-lib/TODO:1.17 pacman-lib/TODO:removed --- pacman-lib/TODO:1.17 Wed Nov 15 03:02:43 2006 +++ pacman-lib/TODO Wed Feb 7 17:08:38 2007 @@ -1,50 +0,0 @@ -GLOBAL -====== -- ORE tags - are there any left? -- Automake is a PITA. We should switch to just autoconf and hand written - Makefile.in's - -LIBALPM -======= -- review public interface. There seems to be a lot of complication - for consuming front ends for no reason. I have some ideas for a "new and - improved" public interface, but it would be a drastic change. - -- review errors handling (globalise pm_errno usage, improve error - meanings) - - -PACMAN -====== -- review how things are displayed in the frontend (normal display, - verbose mode, which usage for the library log callback, debug levels, ...) - -- review progress / transaction even subsystem - - -TRANSLATION -=========== - -po files --------- -cs.po - mail sent -es.po - created by Matt, pending -fr.po - mail sent -nl.po - mail sent -pl_PL.po - mail sent -pt_BR.po - mail sent -we need to mail them: -pt_PT.po -ru.po -sv.po -zh_CN.po - -manpages --------- -we need to mail them: -es -hu - we need somebody who'll do the work -pl_PL -pt_BR -zh_CN - Index: pacman-lib/TODO.autoconf diff -u pacman-lib/TODO.autoconf:1.3 pacman-lib/TODO.autoconf:removed --- pacman-lib/TODO.autoconf:1.3 Fri Dec 29 12:04:58 2006 +++ pacman-lib/TODO.autoconf Wed Feb 7 17:08:38 2007 @@ -1,24 +0,0 @@ -TODO for autoconf/automake: - -global -====== - -- review autoclean.sh script. Maybe there is a more simple way to do this FULL clean. - -- Many things :)) If you got idea or request, then implement it. - -libalpm and codechanges -======================= - -- Add much more defines in configure.in via options or not. Like CACHEDIR, PKGEXT, etc. - Those will be available from config.h so not need a big codechange. But it is usefull. - The user can specify at the configure what cachedir or pkgext he/she want. And maybe better - for other distros (like frugalware :) ) which are using other PKGEXT or cachedir than default. - -- Review what needed to be in config.h and what not. Probably many #depends which are now hardcoded - into the sources. - - -Christian Hamar alias krix <krics@linuxforum.hu> - -2006. aug. 25., Fri, 01.13.36 CEST Index: pacman-lib/TODO.dan diff -u pacman-lib/TODO.dan:1.4 pacman-lib/TODO.dan:1.5 --- pacman-lib/TODO.dan:1.4 Tue Feb 6 17:36:13 2007 +++ pacman-lib/TODO.dan Wed Feb 7 17:08:37 2007 @@ -1,61 +1,91 @@ TODO.dan -This is my personal TODO list. No guarantees if it is out of date and things - no longer apply. If you want to help out with any of it, send me an email. +======== -* Go through all makepkg bugs in flyspray and see if they are rectified: - http://bugs.archlinux.org/index.php?tasks=&project=1&string=makepkg +This is my personal TODO list. No guarantees if it is out of date and things no +longer apply. If you want to help out with any of it, send me an email. -* Documentation- no one likes to write it, but everyone reads it. Work on the - man pages and make sure they are up to date. -* doc/PKGBUILD.5- continue cleanup work -* PKGBUILD man page should be in section 5 and not section 8 - -* Port the libdownload (libfetch) manpage from BSD style to Linux style, or at - very least change references to BSD. - -* Pacman 3.1 - New cache cleaning functionality in pacman - keep installed - version, choose number to keep, etc. Good python script in the forums that - we should try to emulate, perhaps. -* Pacman 3.1 - downgrade feature - allow users to see cached packages and - downgrade to (previous or any?) available options. - -* Pacman 3.1 - Extreme similarity between some of the sync and add code...we - have to be able to abstract more away from sync actions and add actions to - just 'actions' (example: sync,c, add.c, and deptest.c all contain a switch - on PM_DEP_MOD_*). Merge update, add, and sync code when possible, so we - reduce duplication. - -* Pacman 3.1 - List every function, define, etc. in libalpm. Give one - sentence description of each. If it sounds like two are similar, find a way - to combine or refactor them. If it is unnecessary- delete it. Stop keeping - everything clustered in little add/sync/remove parts, allow transactions to - share code. - -* Pacman 3.1 - Go through options list. Decide if namings are good, all options - are still relevant, etc. Ideas for -Re (#6273), changing meaning of -c (has - two meanings, another FS bug), etc. - -* Pacman 3.1 - Possible rewrite of make system. Options: - -- revise to be more static (Aaron mentioned wmii's system) - -- Cmake? It looks intriguing - -* Pacman 3.1 - Rewrite _alpm_sortbydeps to use Topological Sort. Should work - using a standard topo sort algorithm, once the crazy types can be fixed up - a bit. Include a cycle check - print a big error message if this happens. +Go through all makepkg bugs in Flyspray and see if they are rectified: +http://bugs.archlinux.org/index.php?tasks=&project=1&string=makepkg + +Documentation- no one likes to write it, but everyone reads it. Work on the man +pages and make sure they are up to date. Perhaps move man page format to a more +portable source format to make translation easier to keep up-to-date (something +like txt2tags, docbook?) This will need some research. + +Port the libdownload (libfetch) manpage from BSD style to Linux style, or at +very least change references to BSD. + +Pacman 3.1: +=========== + +Updated cache cleaning functionality in pacman - keep installed version, choose +number to keep, etc. Good python script in the forums that we should try to +emulate, perhaps. + +Downgrade feature - allow users to see cached packages and downgrade to +(previous or any?) available options. + +Extreme similarity between some of the sync and add code...we have to be able +to abstract more away from sync actions and add actions to just 'actions' +(example: sync,c, add.c, and deptest.c all contain a switch on PM_DEP_MOD_*). +Merge update, add, and sync code when possible, so we reduce duplication. + +Review progress /transaction event subsystem. (from TODO) + +Add Doxygen comments to every function in libalpm including private functions. +Ensure functions are doing exactly their purpose and nothing more. Find +functions that perform duplicate behavior and merge them. Combine and refactor +others. Delete unnecessary functions. Stop keeping everything clustered in +little add/sync/remove parts, allow transactions to share code. + +Go through options list. Decide if namings are good, all options are still +relevant, etc. Ideas for -Re (#6273), changing meaning of -c (has two meanings, +another FS bug), etc. Remove the -A flag and possibly -D, -T, and -Y if they +can be done by other actions. Possible switch of -U --> -I (#5571). + +Rewrite _alpm_sortbydeps to use Topological Sort. Should work using a standard +topo sort algorithm, once the crazy types can be fixed up a bit. Include a +cycle check - print a big error message if this happens. -- http://en.wikipedia.org/wiki/Topological_sort -- http://everything2.com/?node_id=556079 +Review display and logging functions. There seems to be an abundance of them. +Make it extensible to use color, review what verbose/debug means. Perhaps +separate logging functionality- Pacman has its normal log, and alpm backend +keeps a very simple log file - listing only adds (including syncs) and removes. +This way a consistency list can be kept of what is currently installed and what +isn't, without all the logging junk from the front end. + +If we stick with autotools, add more defines to configure.in, including +CACHEDIR, PKGEXT, so these can be specified at configure time for ease of use +by other distributions which may want to change the defaults. Also, review what +needs to be in config.h and what does not. There may be excess #depends which +are hard coded into the sources. (from TODO.autoconf) + Quick hits: -* unsigned int vs. unsigned -* 'ldd' & 'ldd -u' - many linkages -* possibly split utilities/extras from pacman package -* makepkg3 produces files with arch appended- gensync can't deal with it -* FS #4185 - move where message is logged, perhaps? -* Remove -A flag (and possibly -D, -T, and -Y?) -* ideas mentioned here - http://bbs.archlinux.org/viewtopic.php?id=29450 - add a .install message about mirrors, maybe comment whole file, encourage - rankmirrors usage -* update copyrights -* update pacman website -* finish pacman coding style page -* make indent.pro file for GNU indent +=========== + +unsigned int vs. unsigned- determine a standard and stick with it + +Possibly split utilities/extras from pacman package + +Rewrite gensync/updatesync, and add a 'repo-remove' script + +FS #4185 - move where message is logged, perhaps? + +ideas mentioned here- http://bbs.archlinux.org/viewtopic.php?id=29450- add a +.install message about mirrors, maybe comment whole file, encourage rankmirrors +usage + +Update copyrights (2007) + +Update pacman website, and add/finish pacman coding style page + +Make .indent.pro file for GNU indent (started, but didn't finish) + +Pacman 3 packaging - perhaps include pacman2.static in case something goes +terribly wrong, which I hope it won't + +autogen.sh / autoclean.sh - these seem messy. Can we clean this up? + + Index: pacman-lib/lib/libalpm/alpm.c diff -u pacman-lib/lib/libalpm/alpm.c:1.112 pacman-lib/lib/libalpm/alpm.c:1.113 --- pacman-lib/lib/libalpm/alpm.c:1.112 Wed Feb 7 01:19:40 2007 +++ pacman-lib/lib/libalpm/alpm.c Wed Feb 7 17:08:37 2007 @@ -820,19 +820,17 @@ vsnprintf(str, LOG_STR_LEN, fmt, args); va_end(args); - /* ORE - We should add a prefix to log strings depending on who called us. - If logaction was called by the frontend: - USER: <the frontend log> - and if called internally: - ALPM: <the library log> - Moreover, the frontend should be able to choose its prefix (USER by default?): - pacman: "PACMAN" - kpacman: "KPACMAN" - ... - It allows to share the log file between several frontends and to actually - know who does what */ - + /* TODO We should add a prefix to log strings depending on who called us. + * If logaction was called by the frontend: + * USER: <the frontend log> + * and if called internally: + * ALPM: <the library log> + * Moreover, the frontend should be able to choose its prefix + * (USER by default?): + * pacman: "PACMAN" + * kpacman: "KPACMAN" + * This would allow us to share the log file between several frontends + * and know who does what */ return(_alpm_logaction(handle->usesyslog, handle->logfd, str)); } /** @} */ Index: pacman-lib/lib/libalpm/be_files.c diff -u pacman-lib/lib/libalpm/be_files.c:1.25 pacman-lib/lib/libalpm/be_files.c:1.26 --- pacman-lib/lib/libalpm/be_files.c:1.25 Wed Jan 31 01:48:06 2007 +++ pacman-lib/lib/libalpm/be_files.c Wed Feb 7 17:08:37 2007 @@ -53,9 +53,8 @@ { ALPM_LOG_FUNC; - /* ORE - we should not simply unpack the archive, but better parse it and - db_write each entry (see sync_load_dbarchive to get archive content) */ + /* TODO we should not simply unpack the archive, but better parse it and + * db_write each entry (see sync_load_dbarchive to get archive content) */ _alpm_log(PM_LOG_DEBUG, _("unpacking database '%s'"), dbfile); if(_alpm_unpack(dbfile, db->path, NULL)) {