]> git.ipfire.org Git - pakfire.git/commitdiff
transaction: Drop old status callback
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 15 Mar 2025 11:13:57 +0000 (11:13 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 15 Mar 2025 11:13:57 +0000 (11:13 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/transaction.c

index 68d7168c7f4ed5601a8c50d6324364c11acda728..676aedb3f00fb6de59549e540bd7bf2dd171d3a0 100644 (file)
@@ -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: