diff options
author | Allan McRae <allan@archlinux.org> | 2012-07-20 14:25:18 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2012-12-14 03:35:34 +0100 |
commit | 88e7ea421ebbef86daa20ee0f9aff768a445b467 (patch) | |
tree | d81396c992d4282273e6243dc6d33fe835f10458 /lib/libalpm/conflict.c | |
parent | 28d404f16aca8ae1b7640b32c221c8b8860f8ce0 (diff) | |
download | pacman-88e7ea421ebbef86daa20ee0f9aff768a445b467.tar.gz pacman-88e7ea421ebbef86daa20ee0f9aff768a445b467.tar.xz |
Resolve file paths during inter-package conflict check
File paths are resolved if necessary during inter-package conflict
checks so that packages carrying the same effective file due to
directory symlinks on the filesystem are flagged as conflicting.
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib/libalpm/conflict.c')
-rw-r--r-- | lib/libalpm/conflict.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/libalpm/conflict.c b/lib/libalpm/conflict.c index ccfe990c..afef56cb 100644 --- a/lib/libalpm/conflict.c +++ b/lib/libalpm/conflict.c @@ -361,12 +361,17 @@ alpm_list_t *_alpm_db_find_fileconflicts(alpm_handle_t *handle, int percent = (current * 100) / numtargs; PROGRESS(handle, ALPM_PROGRESS_CONFLICTS_START, "", percent, numtargs, current); + + _alpm_filelist_resolve(handle, alpm_pkg_get_files(p1)); + /* CHECK 1: check every target against every target */ _alpm_log(handle, ALPM_LOG_DEBUG, "searching for file conflicts: %s\n", p1->name); for(j = i->next; j; j = j->next) { alpm_list_t *common_files; alpm_pkg_t *p2 = j->data; + _alpm_filelist_resolve(handle, alpm_pkg_get_files(p2)); + common_files = _alpm_filelist_intersection(alpm_pkg_get_files(p1), alpm_pkg_get_files(p2)); |