summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2011-08-18 00:23:06 -0500
committerDan McGee <dan@archlinux.org>2011-08-18 10:47:41 -0500
commit3752edbff48fc472c5944f05f665adb000a521d9 (patch)
tree0274684e5519b4696ff70d647d1e653f94a37ae9
parentd008a816f1125ca44f0b2165b38220047860ecb0 (diff)
downloadpacman-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>
-rw-r--r--lib/libalpm/sync.c3
-rw-r--r--test/pacman/tests/replace103.py2
2 files changed, 2 insertions, 3 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;
}
diff --git a/test/pacman/tests/replace103.py b/test/pacman/tests/replace103.py
index 955e22d0..538d1033 100644
--- a/test/pacman/tests/replace103.py
+++ b/test/pacman/tests/replace103.py
@@ -17,5 +17,3 @@ self.args = "-Su"
self.addrule("PACMAN_RETCODE=0")
self.addrule("PKG_EXIST=util-linux-git")
self.addrule("!PKG_EXIST=util-linux")
-
-self.expectfailure = True