From 45f90de0eb9c33eee0deb63bae9aabe5988b8733 Mon Sep 17 00:00:00 2001 From: Xavier Chantry Date: Sun, 19 Jul 2009 16:54:12 +0200 Subject: Fix klibc conflict case. A package can now replace symdir->dir by dir without fileconflicts. Signed-off-by: Xavier Chantry Signed-off-by: Dan McGee --- lib/libalpm/conflict.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'lib') diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index c4c57cb0..a6d50d4f 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -531,6 +531,19 @@ alpm_list_t *_alpm_db_find_fileconflicts(pmdb_t *db, pmtrans_t *trans, free(dir); } + if(!resolved_conflict && dbpkg) { + char *rpath = calloc(PATH_MAX+1, sizeof(char)); + if(!realpath(path, rpath)) { + free(rpath); + continue; + } + char *filestr = rpath + strlen(handle->root); + if(alpm_list_find_str(alpm_pkg_get_files(dbpkg),filestr)) { + resolved_conflict = 1; + } + free(rpath); + } + if(!resolved_conflict) { _alpm_log(PM_LOG_DEBUG, "file found in conflict: %s\n", path); conflicts = add_fileconflict(conflicts, PM_FILECONFLICT_FILESYSTEM, -- cgit v1.2.3-54-g00ecf