From 320c60f50176b52a1e2fefd5d6f06d388822c4a8 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 23 Sep 2023 10:07:18 +0000 Subject: [PATCH] transaction: Automatically solve if not done, yet Signed-off-by: Michael Tremer --- src/libpakfire/transaction.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/libpakfire/transaction.c b/src/libpakfire/transaction.c index 1a169ef0a..3c7ea113c 100644 --- a/src/libpakfire/transaction.c +++ b/src/libpakfire/transaction.c @@ -54,9 +54,6 @@ struct pakfire_transaction { // The solver Solver* solver; - enum pakfire_transaction_solver_status { - SOLVER_STATUS_UNKNOWN, - } solver_status; // The jobs to solve Queue jobs; @@ -1968,10 +1965,15 @@ ERROR: PAKFIRE_EXPORT int pakfire_transaction_run( struct pakfire_transaction* transaction, int flags) { + char* dump = NULL; int r; - // XXX automatically solve - // XXX automatically download + // Automatically solve if not done, yet + if (!transaction->transaction) { + r = pakfire_transaction_solve(transaction, 0, NULL); + if (r) + goto ERROR; + } // Skip running an empty transaction if (!transaction->num) { @@ -1980,7 +1982,7 @@ PAKFIRE_EXPORT int pakfire_transaction_run( } // Show what would be done - char* dump = pakfire_transaction_dump(transaction, 80); + dump = pakfire_transaction_dump(transaction, 80); // Check if we should continue r = pakfire_confirm(transaction->pakfire, dump, _("Is this okay?")); @@ -2010,7 +2012,8 @@ PAKFIRE_EXPORT int pakfire_transaction_run( ERROR: // Cleanup - free(dump); + if (dump) + free(dump); return r; } -- 2.47.2