/* Transaction Progress */
diff --git a/lib/libalpm/deps.c b/lib/libalpm/deps.c
index a5b57ad..41eedaa 100644
--- a/lib/libalpm/deps.c
+++ b/lib/libalpm/deps.c
@@ -611,7 +611,7 @@ int _alpm_resolvedeps(pmdb_t *local, alpm_list_t *dbs_sync, pmpkg_t *pkg,
if(!spkg) {
pm_errno = PM_ERR_UNSATISFIED_DEPS;
char *missdepstring = alpm_dep_compute_string(missdep);
- _alpm_log(PM_LOG_ERROR, _("cannot resolve "%s", a dependency of "%s"
"),
+ _alpm_log(PM_LOG_WARNING, _("cannot resolve "%s", a dependency of "%s"
"),
missdepstring, tpkg->name);
free(missdepstring);
if(data) {
diff --git a/lib/libalpm/sync.c b/lib/libalpm/sync.c
index 5daadbd..b3945fc 100644
--- a/lib/libalpm/sync.c
+++ b/lib/libalpm/sync.c
@@ -446,13 +446,25 @@ 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. In a future checkin, the user will be asked if they'd
- like to drop the unresolvable packages intead. */
+ /* 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
diff --git a/pactest/tests/provision020.py b/pactest/tests/provision020.py
index 7cb0a01..c9c0ac3 100644
--- a/pactest/tests/provision020.py
+++ b/pactest/tests/provision020.py
@@ -10,6 +10,6 @@