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 <[email protected]>
---
 lib/libalpm/sync.c              |    3 ++-
 test/pacman/tests/replace103.py |    2 --
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 46e3045..11ee817 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 955e22d..538d103 100644
--- a/test/pacman/tests/replace103.py
+++ b/test/pacman/tests/replace103.py
@@ -17,5 +17,3 @@
 self.addrule("PACMAN_RETCODE=0")
 self.addrule("PKG_EXIST=util-linux-git")
 self.addrule("!PKG_EXIST=util-linux")
-
-self.expectfailure = True
-- 
1.7.6


Reply via email to