This series of patches make pacman perform conflict checking with all directory paths resovled. This means that inter-package conflicts such as /lib/foo and /usr/lib/foo when /lib -> usr/lib are detected. Similarly, if a package moves a file from /lib/foo to /usr/lib/foo when /lib -> usr/lib (i.e. the file is effectively the same), this is no longer detected as a conflict with the filesystem. A big thanks to Andrew for fixing my initial attempt at the resolving of the filelist and making my idea for efficiently storing paths that are unchanged by resolving a reality. Allan McRae (3): Add resolved_path to alpm_filelist_t Resolve file paths during inter-package conflict check Avoid upgrade conflict with unchanged effective path Andrew Gregory (2): Add _alpm_filelist_resolve _alpm_filelist_resolve: use original filenames where possible lib/libalpm/alpm.h | 1 + lib/libalpm/conflict.c | 6 ++ lib/libalpm/filelist.c | 174 ++++++++++++++++++++++++++++++++--- lib/libalpm/filelist.h | 2 + lib/libalpm/package.c | 22 ++++- test/pacman/tests/fileconflict001.py | 2 - test/pacman/tests/fileconflict013.py | 2 - test/pacman/tests/fileconflict016.py | 2 - test/pacman/tests/fileconflict017.py | 26 ++++++ 9 files changed, 217 insertions(+), 20 deletions(-) create mode 100644 test/pacman/tests/fileconflict017.py -- 1.7.11.3