summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2012-02-15 22:40:01 +0100
committerDan McGee <dan@archlinux.org>2012-02-15 22:58:07 +0100
commit85712814cdbfa301e5827fafd6bfb8ac0886079c (patch)
tree2dada4700df6566266f2204ccfb76fdba43fe162 /lib
parent9a1ff474f1fe03e8bfdaf81ffc9a4881a44baea9 (diff)
downloadpacman-85712814cdbfa301e5827fafd6bfb8ac0886079c.tar.gz
pacman-85712814cdbfa301e5827fafd6bfb8ac0886079c.tar.xz
Revert "Add -S --recursive operation"
This reverts commit f3fa77bcf1d792971c314f8c0de255866e89f3f3 along with making other necessary changes to fully back this (mis)feature out until we can do it correctly. The quick summary here is this was not implemented correctly; provides are not fully taken into account in this logic, and making that happen exposes a lot of other flaws in this code that are covered up later on in the dependency resolving process by several other pieces of convoluted and conditional logic. Tests have been adjusted accordingly. Some test EXISTS conditions have been removed as we already know the package is installed locally, and we also are checking the VERSION condition anyway. With these two related revert commits, we do have some changes in test pass/fail results: * upgrade078.py: does not pass, this is due to --recursive getting removed for -U/-S operations after this commit. * sync302.py: the version checks have been disabled, so this test continues to pass but has been scaled back in scope. * sync303.py: now passes, was failing before. * sync304.py: still failing, was failing before. * sync305.py: now passes, was failing before. * sync306.py: still passes, was passing before. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/libalpm/deps.c29
1 files changed, 0 insertions, 29 deletions
diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index 89f6d691..0c0a054e 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -723,12 +723,6 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs,
return 0;
}
- if(handle->trans->flags & ALPM_TRANS_FLAG_RECURSE) {
- /* removing local packages from the equation causes the entire dep chain to
- * get pulled for each target- e.g., pactree -u output */
- localpkgs = NULL;
- }
-
/* Create a copy of the packages list, so that it can be restored
on error */
packages_copy = alpm_list_copy(*packages);
@@ -781,29 +775,6 @@ int _alpm_resolvedeps(alpm_handle_t *handle, alpm_list_t *localpkgs,
alpm_list_free(deps);
}
- if(handle->trans->flags & ALPM_TRANS_FLAG_NEEDED) {
- /* remove any deps that were pulled that match installed version */
- /* odd loop syntax so we can modify the list as we iterate */
- i = *packages;
- while(i) {
- alpm_pkg_t *tpkg = i->data;
- alpm_pkg_t *local = _alpm_db_get_pkgfromcache(
- handle->db_local, tpkg->name);
- if(local && _alpm_pkg_compare_versions(tpkg, local) == 0) {
- /* with the NEEDED flag, packages up to date are not reinstalled */
- _alpm_log(handle, ALPM_LOG_DEBUG,
- "not adding dep %s-%s as it is not needed, same version\n",
- local->name, local->version);
- j = i;
- i = i->next;
- *packages = alpm_list_remove_item(*packages, j);
- free(j);
- } else {
- i = i->next;
- }
- }
- }
-
if(ret != 0) {
alpm_list_free(*packages);
*packages = packages_copy;