summaryrefslogtreecommitdiff
path: root/lib/libalpm/conflict.c
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2007-02-21 06:44:14 +0000
committerAaron Griffin <aaron@archlinux.org>2007-02-21 06:44:14 +0000
commit436f36c76b74f7580da48e618dbdbd78037736fb (patch)
tree2ac3224aebed635bde3b6730c02cf3cbeb57f71c /lib/libalpm/conflict.c
parent1334f5c56c8394e69ad16f3b5269105e3dc42246 (diff)
downloadpacman-436f36c76b74f7580da48e618dbdbd78037736fb.tar.xz
* Re-added a compare function for syncpkg's - it was removed without thinking
properly * Error when re-reading the DB for replacements, wrong info level * Removed an duplicate debug message "checking for package replacements" * Check ignorepkg for REAL upgrades... * Properly check the NOSAVE flag * some unlink_file (remove.c) cleanup * fix indent level on handle.c * Force libalpm paths to end with a '/' char * Fixed 'target' looping in conflict.c (pmsyncpkg_t, not pmpkg_t) * Added some debug output to cache and db scanning ** All pactest tests succeed again, yay **
Diffstat (limited to 'lib/libalpm/conflict.c')
-rw-r--r--lib/libalpm/conflict.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c
index a5f9590f..2846d9e8 100644
--- a/lib/libalpm/conflict.c
+++ b/lib/libalpm/conflict.c
@@ -379,9 +379,16 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root)
/* stat the file - if it exists and is not a dir, do some checks */
if(lstat(path, &buf) == 0 && !S_ISDIR(buf.st_mode)) {
+
/* Look at all the targets to see if file has changed hands */
for(k = targets; k; k = k->next) {
- p2 = (pmpkg_t *)k->data;
+ pmsyncpkg_t *sync = k->data;
+ if(!sync) {
+ continue;
+ }
+
+ p2 = sync->pkg;
+
/* Ensure we aren't looking at current package */
if(p2 == p1) {
continue;
@@ -404,6 +411,7 @@ alpm_list_t *_alpm_db_find_conflicts(pmdb_t *db, pmtrans_t *trans, char *root)
_alpm_log(PM_LOG_DEBUG, "file changed packages, adding to remove skiplist: %s", filestr);
}
} else {
+ _alpm_log(PM_LOG_DEBUG, "file found in conflict: %s", filestr);
conflicts = add_fileconflict(conflicts, PM_CONFLICT_TYPE_FILE,
filestr, p1->name, NULL);
break;