diff options
author | Aaron Griffin <aaron@archlinux.org> | 2006-12-22 06:07:33 +0000 |
---|---|---|
committer | Aaron Griffin <aaron@archlinux.org> | 2006-12-22 06:07:33 +0000 |
commit | 796490546e2d3868a387ff18b05f2fa382a9aa7e (patch) | |
tree | 9a71b2f847d6f98a012ab5b2fdebfa8e2cf3b4a6 | |
parent | 2a8980866709c0e85f23e5eeab6188c9376fe451 (diff) |
* Properly fix the NoUpgrade issues.
-rw-r--r-- | TODO.aaron | 13 | ||||
-rw-r--r-- | lib/libalpm/add.c | 25 |
2 files changed, 21 insertions, 17 deletions
@@ -1,17 +1,22 @@ == This is my custom TODO file == +* pacman: ALOT 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 alot of this needs to be refactored as we go. + +* pacman: fixup doxygen documentation for public interface + +* pacman: use gcc visibility (static) for non-public functions (all _alpm + functions should be static) + **** 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 -* gensync and makepkg: support for 1 _or more_ file integrity - algorithms at a time (mostly done). * pacman: add pactest cases/functionality for all -Q operations and make sure the output is sane -* etc/pacman.d/ install rules * ordering of installed packages based on dependencies i.e. pkga depends=(pkgb pkgc), pkgb depends=(pkgc) pacman -S pkga pkgb pkgc diff --git a/lib/libalpm/add.c b/lib/libalpm/add.c index 5fda291c..84bf4c3a 100644 --- a/lib/libalpm/add.c +++ b/lib/libalpm/add.c @@ -511,21 +511,20 @@ int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db) if(!stat(expath, &buf) && !S_ISDIR(buf.st_mode)) { /* file already exists */ - if(_alpm_list_is_strin(pathname, handle->noupgrade)) { - notouch = 1; - nb = 1; + if(!pmo_upgrade || oldpkg == NULL) { + nb = _alpm_list_is_strin(pathname, info->backup); } else { - if(!pmo_upgrade || oldpkg == NULL) { - nb = _alpm_list_is_strin(pathname, info->backup); - } else { - /* op == PM_TRANS_TYPE_UPGRADE */ - md5_orig = _alpm_needbackup(pathname, oldpkg->backup); - sha1_orig = _alpm_needbackup(pathname, oldpkg->backup); - if(md5_orig || sha1_orig) { - nb = 1; - } + /* op == PM_TRANS_TYPE_UPGRADE */ + md5_orig = _alpm_needbackup(pathname, oldpkg->backup); + sha1_orig = _alpm_needbackup(pathname, oldpkg->backup); + if(md5_orig || sha1_orig) { + nb = 1; } } + if(_alpm_list_is_strin(pathname, handle->noupgrade)) { + notouch = 1; + nb = 0; + } } if(nb) { @@ -623,7 +622,7 @@ int _alpm_add_commit(pmtrans_t *trans, pmdb_t *db) alpm_logaction(_("warning: %s saved as %s"), expath, newpath); } } - } else if(md5_pkg || sha1_pkg) { + } else if(md5_orig || sha1_pkg) { /* PM_UPGRADE */ int installnew = 0; |