[pacman-dev] [PATCH 4/6] Fix replacement of provider issue

Dan McGee dan at archlinux.org
Thu Aug 18 08:48:38 EDT 2011


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 at archlinux.org>
---
 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



More information about the pacman-dev mailing list