summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-12-22 06:07:33 +0000
committerAaron Griffin <aaron@archlinux.org>2006-12-22 06:07:33 +0000
commit796490546e2d3868a387ff18b05f2fa382a9aa7e (patch)
tree9a71b2f847d6f98a012ab5b2fdebfa8e2cf3b4a6
parent2a8980866709c0e85f23e5eeab6188c9376fe451 (diff)
* Properly fix the NoUpgrade issues.
-rw-r--r--TODO.aaron13
-rw-r--r--lib/libalpm/add.c25
2 files changed, 21 insertions, 17 deletions
diff --git a/TODO.aaron b/TODO.aaron
index dee8ddff..823289d6 100644
--- a/TODO.aaron
+++ b/TODO.aaron
@@ -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;