summaryrefslogtreecommitdiffstats
path: root/lib/libalpm/sync.c
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-08-18 07:23:06 +0200
committerDan McGee <dan@archlinux.org>2011-08-18 17:47:41 +0200
commit3752edbff48fc472c5944f05f665adb000a521d9 (patch)
tree0274684e5519b4696ff70d647d1e653f94a37ae9 /lib/libalpm/sync.c
parentd008a816f1125ca44f0b2165b38220047860ecb0 (diff)
downloadpacman-3752edbff48fc472c5944f05f665adb000a521d9.tar.gz
pacman-3752edbff48fc472c5944f05f665adb000a521d9.tar.xz
Fix replacement of provider issue
When we switched to using alpm_depcmp() in resolving replacments, we had some interesting behavior with regard to providers and packages not found in repositories. Teach the replacement resolving code to not look at provisions at all to be slightly more sane. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/sync.c')
-rw-r--r--lib/libalpm/sync.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 46e3045b..11ee8175 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -134,7 +134,8 @@ static alpm_list_t *check_replacers(alpm_handle_t *handle, alpm_pkg_t *lpkg,
alpm_list_t *l;
for(l = alpm_pkg_get_replaces(spkg); l; l = l->next) {
alpm_depend_t *replace = l->data;
- if(_alpm_depcmp(lpkg, replace)) {
+ /* we only want to consider literal matches at this point. */
+ if(_alpm_depcmp_literal(lpkg, replace)) {
found = 1;
break;
}