diff options
author | Dan McGee <dan@archlinux.org> | 2011-08-18 07:23:06 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-08-18 17:47:41 +0200 |
commit | 3752edbff48fc472c5944f05f665adb000a521d9 (patch) | |
tree | 0274684e5519b4696ff70d647d1e653f94a37ae9 | |
parent | d008a816f1125ca44f0b2165b38220047860ecb0 (diff) | |
download | pacman-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>
-rw-r--r-- | lib/libalpm/sync.c | 3 | ||||
-rw-r--r-- | 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 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 |