From: Michael Tremer Date: Sat, 15 Mar 2025 11:13:57 +0000 (+0000) Subject: transaction: Drop old status callback X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e7526f384c7fc09f80fd217ad62ed4c355ab0a3c;p=pakfire.git transaction: Drop old status callback Signed-off-by: Michael Tremer --- diff --git a/src/pakfire/transaction.c b/src/pakfire/transaction.c index 68d7168c..676aedb3 100644 --- a/src/pakfire/transaction.c +++ b/src/pakfire/transaction.c @@ -69,13 +69,6 @@ struct pakfire_transaction { // Progress struct pakfire_progress* progress; - // Callbacks - struct pakfire_transaction_callbacks { - // Status - pakfire_status_callback status; - void* status_data; - } callbacks; - // Changes for file conflicts struct pakfire_packagelist* installed_packages; struct pakfire_packagelist* new_packages; @@ -310,11 +303,6 @@ OUT: return r; } -static void pakfire_transaction_default_status_callback( - struct pakfire* pakfire, void* data, int progress, const char* status) { - // XXX perform some default action... -} - static int pakfire_transaction_setup_solver(struct pakfire_transaction* transaction) { Pool* pool = pakfire_get_solv_pool(transaction->pakfire); @@ -384,9 +372,6 @@ int pakfire_transaction_create(struct pakfire_transaction** transaction, if (r < 0) goto ERROR; - // Set the default status callback - t->callbacks.status = pakfire_transaction_default_status_callback; - // Setup the solver r = pakfire_transaction_setup_solver(t); if (r) @@ -450,44 +435,6 @@ struct pakfire_transaction* pakfire_transaction_unref( return NULL; } -static void pakfire_transaction_status(struct pakfire_transaction* transaction, - const char* message, ...) __attribute__((format(printf, 2, 3))); - -/* - Move this into the progress stuff -*/ -static void pakfire_transaction_status(struct pakfire_transaction* transaction, - const char* message, ...) { - char* buffer = NULL; - va_list args; - int r; - - // Do nothing if callback isn't set - if (!transaction->callbacks.status) - return; - - // Format the message - if (message) { - va_start(args, message); - r = vasprintf(&buffer, message, args); - va_end(args); - - if (r < 0) - return; - } - - // Fetch progress - const int progress = pakfire_progress_get_percentage(transaction->progress); - - // Call the callback - transaction->callbacks.status(transaction->pakfire, - transaction->callbacks.status_data, progress, buffer); - - // Cleanup - if (buffer) - free(buffer); -} - struct pakfire_problem** pakfire_transaction_get_problems( struct pakfire_transaction* transaction) { struct pakfire_problem** problems = NULL; @@ -1379,10 +1326,13 @@ static int pakfire_transaction_extract(struct pakfire_transaction* transaction, struct pakfire_filelist* filelist = NULL; int r; + // Fetch NEVRA const char* nevra = pakfire_package_get_string(pkg, PAKFIRE_PKG_NEVRA); // Update status - pakfire_transaction_status(transaction, _("Installing %s..."), nevra); + r = pakfire_progress_set_status(transaction->progress, _("Installing %s..."), nevra); + if (r < 0) + return r; // Extract payload r = pakfire_archive_extract(archive, NULL, 0, transaction->progress); @@ -1412,6 +1362,14 @@ static int pakfire_transaction_erase(struct pakfire_transaction* transaction, struct pakfire_filelist* filelist = NULL; int r; + // Fetch NEVRA + const char* nevra = pakfire_package_get_string(pkg, PAKFIRE_PKG_NEVRA); + + // Update status + r = pakfire_progress_set_status(transaction->progress, _("Removing %s..."), nevra); + if (r < 0) + goto ERROR; + // Fetch filelist r = pakfire_db_package_filelist(db, &filelist, pkg); if (r) @@ -1603,9 +1561,6 @@ static int pakfire_transaction_run_step(struct pakfire_transaction* transaction, // Increment progress pakfire_progress_increment(transaction->progress, 1); - // Update progress callback - pakfire_transaction_status(transaction, NULL); - switch (type) { case PAKFIRE_STEP_INSTALL: case PAKFIRE_STEP_REINSTALL: @@ -1729,15 +1684,21 @@ static int pakfire_transaction_run_steps(struct pakfire_transaction* transaction // Update status switch (action) { case PAKFIRE_ACTION_VERIFY: - pakfire_transaction_status(transaction, _("Verifying packages...")); + r = pakfire_progress_set_status(transaction->progress, _("Verifying Packages...")); + if (r < 0) + return r; break; case PAKFIRE_ACTION_PRETRANS: - pakfire_transaction_status(transaction, _("Preparing installation...")); + r = pakfire_progress_set_status(transaction->progress, _("Preparing Installation...")); + if (r < 0) + return r; break; case PAKFIRE_ACTION_POSTTRANS: - pakfire_transaction_status(transaction, _("Finishing up...")); + r = pakfire_progress_set_status(transaction->progress, _("Finishing Up...")); + if (r < 0) + return r; break; default: