summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan McRae <allan@archlinux.org>2013-03-02 08:19:03 +1000
committerAllan McRae <allan@archlinux.org>2013-03-07 15:38:47 +1000
commite6b8d5189f50c36b972a6c57d74a3127bca4ce2d (patch)
treecb13032363c28c39f54f8a1f7bf11fb2b873cfc1
parent8e2648bf02b44a7dc82429327c08cbfd2426ac30 (diff)
downloadpacman-e6b8d5189f50c36b972a6c57d74a3127bca4ce2d.tar.xz
Do not resolve every local package filelist on remove
Although technically correct, this results in my system taking ~30 seconds to resolve all filelists when removing a package that has a directory not owned by any package. The check for if any package own the empty directory is a rare enough occurance, and it will be even rarer when that directory has a directory symlink in its path, so just revert this at this stage. Signed-off-by: Allan McRae <allan@archlinux.org>
-rw-r--r--lib/libalpm/remove.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c
index 60ea8de6..0642e04a 100644
--- a/lib/libalpm/remove.c
+++ b/lib/libalpm/remove.c
@@ -484,7 +484,9 @@ static int unlink_file(alpm_handle_t *handle, alpm_pkg_t *oldpkg,
continue;
}
filelist = alpm_pkg_get_files(local_pkg);
- _alpm_filelist_resolve(handle, filelist);
+ /* This is too slow and only covers a rare case
+ Disable for now... */
+ /* _alpm_filelist_resolve(handle, filelist); */
if(alpm_filelist_contains(filelist, fileobj->name)) {
_alpm_log(handle, ALPM_LOG_DEBUG,
"keeping directory %s (owned by %s)\n", file, local_pkg->name);