[pacman-dev] [PATCH 0/5] Properly detect conflicts with directory symlinks

Allan McRae allan at archlinux.org
Sun Jul 29 02:18:30 EDT 2012


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



More information about the pacman-dev mailing list