index : pacman | |
Archlinux32 fork of pacman | gitolite user |
summaryrefslogtreecommitdiff |
author | Bryan Ischo <bryan@ischo.com> | 2009-02-22 23:25:31 +1300 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2009-02-23 20:33:56 -0600 |
commit | 02685504012a4880e599b15f1060f6bd0bf48797 (patch) | |
tree | 0d227fbfa8a2c58a7e23e6d23365e4b802e2e637 /lib/libalpm/sync.c | |
parent | c8a41b7d6da7f820754a07cb085687ea5e110f85 (diff) |
-rw-r--r-- | lib/libalpm/sync.c | 24 |
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c index 5e5ca92e..eefca7f9 100644 --- a/lib/libalpm/sync.c +++ b/lib/libalpm/sync.c @@ -442,12 +442,26 @@ int _alpm_sync_prepare(pmtrans_t *trans, pmdb_t *db_local, alpm_list_t *dbs_sync dependencies not already on the list */ } - /* If there were unresolvable top-level packages, fail the - transaction. */ + /* If there were unresolvable top-level packages, prompt the user to + see if they'd like to ignore them rather than failing the sync */ if(unresolvable != NULL) { - /* pm_errno is set by resolvedeps */ - ret = -1; - goto cleanup; + int remove_unresolvable = 0; + QUESTION(handle->trans, PM_TRANS_CONV_REMOVE_PKGS, unresolvable, + NULL, NULL, &remove_unresolvable); + if (remove_unresolvable) { + /* User wants to remove the unresolvable packages from the + transaction, so simply drop the unresolvable list. The + packages will be removed from the actual transaction when + the transaction packages are replaced with a + dependency-reordered list below */ + alpm_list_free(unresolvable); + unresolvable = NULL; + } + else { + /* pm_errno is set by resolvedeps */ + ret = -1; + goto cleanup; + } } /* Add all packages which were "pulled" (i.e. weren't already in the |