diff options
author | Andrew Gregory <andrew.gregory.8@gmail.com> | 2013-10-18 05:38:58 +0200 |
---|---|---|
committer | Allan McRae <allan@archlinux.org> | 2013-10-31 07:20:02 +0100 |
commit | c2134fde2be179c490b33765fe5504be96291b95 (patch) | |
tree | 52c3e7b6c813591ce1f71b2ad5161e57b142ed71 /lib/libalpm/deps.h | |
parent | 2194eddf30bea718c2b5fd6b86d2a626783fc901 (diff) | |
download | pacman-c2134fde2be179c490b33765fe5504be96291b95.tar.gz pacman-c2134fde2be179c490b33765fe5504be96291b95.tar.xz |
sortbydeps: include local pkgs in dep graph
Detecting indirect dependencies by traversing a package's entire
dependency tree is prohibitively slow for larger transactions. Instead
add local packages to the dependency graph. This additionally requires
delaying dependency ordering for sync operations so that removed
packages may be excluded from dependency detection.
tests/sync012.py was also updated to ensure that the dependency cycle
was actually detected.
Fixes FS#37380
Signed-off-by: Andrew Gregory <andrew.gregory.8@gmail.com>
Signed-off-by: Allan McRae <allan@archlinux.org>
Diffstat (limited to 'lib/libalpm/deps.h')
-rw-r--r-- | lib/libalpm/deps.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/libalpm/deps.h b/lib/libalpm/deps.h index 1fbeff95..8cf5ad22 100644 --- a/lib/libalpm/deps.h +++ b/lib/libalpm/deps.h @@ -30,7 +30,8 @@ void _alpm_dep_free(alpm_depend_t *dep); alpm_depend_t *_alpm_dep_dup(const alpm_depend_t *dep); void _alpm_depmiss_free(alpm_depmissing_t *miss); -alpm_list_t *_alpm_sortbydeps(alpm_handle_t *handle, alpm_list_t *targets, int reverse); +alpm_list_t *_alpm_sortbydeps(alpm_handle_t *handle, + alpm_list_t *targets, alpm_list_t *ignore, int reverse); int _alpm_recursedeps(alpm_db_t *db, alpm_list_t *targs, int include_explicit); int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs, alpm_pkg_t *pkg, alpm_list_t *preferred, alpm_list_t **packages, alpm_list_t *remove, |