summaryrefslogtreecommitdiff
path: root/src/pacman/upgrade.c
diff options
context:
space:
mode:
authorNagy Gabor <ngaba@bibl.u-szeged.hu>2009-08-31 16:20:18 +0200
committerDan McGee <dan@archlinux.org>2009-09-08 21:58:52 -0500
commit12b55958d8884bd6828e0888ab9dc10d38bcd72f (patch)
tree9d39d359eec670463a3b806aa6de61154b2059e3 /src/pacman/upgrade.c
parent902dfe5900c89461e76f03a3429a867cc93fd418 (diff)
Add a new reason field to pmconflict_t struct
Sometimes "foo conflicts with bar" information is not enough, see this thread: http://bbs.archlinux.org/viewtopic.php?id=77647. That's why I added a new reason field to our pmconflict_t struct that stores the packager- defined conflict that induced the fact that package1 conflicts with package2. I modified the front-end (in callback.c, sync.c, upgrade.c) to print this new information as well. Signed-off-by: Nagy Gabor <ngaba@bibl.u-szeged.hu>
Diffstat (limited to 'src/pacman/upgrade.c')
-rw-r--r--src/pacman/upgrade.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/pacman/upgrade.c b/src/pacman/upgrade.c
index e7691185..91888fec 100644
--- a/src/pacman/upgrade.c
+++ b/src/pacman/upgrade.c
@@ -110,8 +110,15 @@ int pacman_upgrade(alpm_list_t *targets)
case PM_ERR_CONFLICTING_DEPS:
for(i = data; i; i = alpm_list_next(i)) {
pmconflict_t *conflict = alpm_list_getdata(i);
- printf(_(":: %s: conflicts with %s\n"),
- alpm_conflict_get_package1(conflict), alpm_conflict_get_package2(conflict));
+ const char *package1 = alpm_conflict_get_package1(conflict);
+ const char *package2 = alpm_conflict_get_package2(conflict);
+ const char *reason = alpm_conflict_get_reason(conflict);
+ /* only print reason if it contains new information */
+ if(!strcmp(package1, reason) || !strcmp(package2, reason)) {
+ printf(_(":: %s and %s are in conflict\n"), package1, package2);
+ } else {
+ printf(_(":: %s and %s are in conflict (%s)\n"), package1, package2, reason);
+ }
}
break;
case PM_ERR_FILE_CONFLICTS: