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> --- 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