[pacman-dev] [PATCH] Do not resolve every local package filelist on remove

Allan McRae allan at archlinux.org
Fri Mar 1 17:21:45 EST 2013


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 at archlinux.org>
---
 lib/libalpm/remove.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/lib/libalpm/remove.c b/lib/libalpm/remove.c
index 60ea8de..0642e04 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);
-- 
1.8.1.4



More information about the pacman-dev mailing list