Implement shlib checks for all pkg revdeps in the transaction.

Added three new test cases to verify its correctness.
This commit is contained in:
Juan RP
2014-09-12 11:49:34 +02:00
parent b306adf52b
commit 39aca1bbc9
8 changed files with 249 additions and 76 deletions

View File

@@ -310,22 +310,22 @@ exec_transaction(struct xbps_handle *xhp, int maxcols, bool yes, bool drun)
print_array(array);
fprintf(stderr, "Transaction aborted due to unresolved dependencies.\n");
}
} else if (rv == ENOEXEC) {
array = xbps_dictionary_get(xhp->transd, "missing_shlibs");
if (xbps_array_count(array)) {
/* missing shlibs */
print_array(array);
fprintf(stderr, "Transaction aborted due to unresolved shlibs.\n");
}
goto out;
} else if (rv == EAGAIN) {
/* conflicts */
array = xbps_dictionary_get(xhp->transd, "conflicts");
print_array(array);
fprintf(stderr, "Transaction aborted due to conflicting packages.\n");
goto out;
} else {
xbps_dbg_printf(xhp, "Empty transaction dictionary: %s\n",
strerror(errno));
}
xbps_dbg_printf(xhp, "Empty transaction dictionary: %s\n",
strerror(errno));
goto out;
}
xbps_dbg_printf(xhp, "Dictionary before transaction happens:\n");