]> git.ipfire.org Git - pakfire.git/commitdiff
transaction: Directly pass the context
authorMichael Tremer <michael.tremer@ipfire.org>
Sun, 29 Jun 2025 14:27:09 +0000 (14:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Sun, 29 Jun 2025 14:27:09 +0000 (14:27 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
13 files changed:
src/cli/lib/install.c
src/cli/lib/remove.c
src/cli/lib/sync.c
src/cli/lib/transaction.c
src/cli/lib/transaction.h
src/cli/lib/update.c
src/pakfire/build.c
src/pakfire/package.c
src/pakfire/root.c
src/pakfire/snapshot.c
src/pakfire/transaction.c
src/pakfire/transaction.h
src/python/transaction.c

index 95fbc7ce8a460adf62ef1e9a1cd11040e2a1ad9c..941dd28a8651aa243ed26f5355aa6c8db7870852 100644 (file)
@@ -124,7 +124,8 @@ int cli_install(void* data, int argc, char* argv[]) {
        if (r)
                goto ERROR;
 
-       r = cli_transaction(root, argc, argv, local_args.transaction_flags, __cli_install, &local_args);
+       r = cli_transaction(global_args->ctx, root, argc, argv, local_args.transaction_flags,
+                       __cli_install, &local_args);
 
 ERROR:
        if (root)
index 93b9d5d7cd6c6d1fe34a99eb5d2ecc53c6d9b390..5d13a40e178f3e80df4b6c00772b44c6d539e0dd 100644 (file)
@@ -104,7 +104,7 @@ int cli_remove(void* data, int argc, char* argv[]) {
        if (r)
                goto ERROR;
 
-       r = cli_transaction(root, argc, argv, 0, __cli_remove, &local_args);
+       r = cli_transaction(global_args->ctx, root, argc, argv, 0, __cli_remove, &local_args);
 
 ERROR:
        if (root)
index 4d2c90f3fef927aa1a1c973912119432e8a1d25d..5496fa3234a2519223b55c71754dfdfae940c2c2 100644 (file)
@@ -89,7 +89,7 @@ int cli_sync(void* data, int argc, char* argv[]) {
        if (r)
                goto ERROR;
 
-       r = cli_transaction(root, argc, argv, 0, __cli_sync, &local_args);
+       r = cli_transaction(global_args->ctx, root, argc, argv, 0, __cli_sync, &local_args);
 
 ERROR:
        if (root)
index bf5836fe04dfe6ab535e4d8913f604e4469bd3df..1ec732f3a8007a91d923f9f42eb9a64c94fc3207 100644 (file)
@@ -21,6 +21,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 
+#include <pakfire/ctx.h>
 #include <pakfire/root.h>
 #include <pakfire/transaction.h>
 
 
        The transaction is then solved and executed.
 */
-int cli_transaction(pakfire_root* root, int argc, char* argv[], int flags,
-               cli_transaction_callback callback, void* data) {
+int cli_transaction(pakfire_ctx* ctx, pakfire_root* root, int argc, char* argv[],
+               int flags, cli_transaction_callback callback, void* data) {
        pakfire_transaction* transaction = NULL;
        char* problems = NULL;
        int r;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, root, flags);
+       r = pakfire_transaction_create(&transaction, ctx, root, flags);
        if (r) {
                fprintf(stderr, "Could not setup the transaction\n");
                goto ERROR;
index c570e521ca5334448e1bb1f1b60dc81226c45780..2d4b74b2423e0718d562d3480a1438561f4ba6b5 100644 (file)
 #ifndef PAKFIRE_CLI_TRANSACTION_H
 #define PAKFIRE_CLI_TRANSACTION_H
 
+#include <pakfire/ctx.h>
 #include <pakfire/root.h>
 #include <pakfire/transaction.h>
 
 typedef int (*cli_transaction_callback)
        (pakfire_transaction* transaction, int argc, char* argv[], void* data);
 
-int cli_transaction(pakfire_root* root, int argc, char* argv[], int flags,
-       cli_transaction_callback callback, void* data);
+int cli_transaction(pakfire_ctx* ctx, pakfire_root* root, int argc, char* argv[],
+       int flags, cli_transaction_callback callback, void* data);
 
 #endif /* PAKFIRE_CLI_TRANSACTION_H */
index 8533be756f6b1bb31b0290e619b98916642f539b..4de594647db8ce2db2211db9342c7fa722bd06e0 100644 (file)
@@ -140,7 +140,8 @@ int cli_update(void* data, int argc, char* argv[]) {
        if (r)
                goto ERROR;
 
-       r = cli_transaction(root, argc, argv, local_args.transaction_flags, __cli_update, &local_args);
+       r = cli_transaction(global_args->ctx, root, argc, argv, local_args.transaction_flags,
+                       __cli_update, &local_args);
 
 ERROR:
        if (root)
index d1090ec6edd2483ce432fcb02a0222d1b0083ab2..8432c76c425be9b3bb6d841f992ab63567e604ee 100644 (file)
@@ -2348,8 +2348,8 @@ static int pakfire_build_install_test(pakfire_build* build) {
        int r;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, build->root,
-                       PAKFIRE_TRANSACTION_ALLOW_UNINSTALL);
+       r = pakfire_transaction_create(&transaction,
+                       build->ctx, build->root, PAKFIRE_TRANSACTION_ALLOW_UNINSTALL);
        if (r < 0)
                goto ERROR;
 
@@ -2408,7 +2408,7 @@ static int pakfire_build_init(pakfire_build* build,
        int r;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, build->root,
+       r = pakfire_transaction_create(&transaction, build->ctx, build->root,
                        PAKFIRE_TRANSACTION_ALLOW_DOWNGRADE|PAKFIRE_TRANSACTION_ALLOW_UNINSTALL);
        if (r)
                goto ERROR;
@@ -2629,7 +2629,7 @@ static int pakfire_build_mkimage_install_deps(pakfire_build* build,
                goto ERROR;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, build->root, 0);
+       r = pakfire_transaction_create(&transaction, build->ctx, build->root, 0);
        if (r) {
                ERROR(build->ctx, "Could not create transaction: %m\n");
                goto ERROR;
@@ -2671,7 +2671,7 @@ static int pakfire_build_collect_packages(pakfire_build* build, const char* path
        int r;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, build->root, 0);
+       r = pakfire_transaction_create(&transaction, build->ctx, build->root, 0);
        if (r) {
                ERROR(build->ctx, "Could not create transaction: %m\n");
                goto ERROR;
index 0568b635e733eeb90b981d241fb8ca47f8d727ee..870ef346ee3be789f710468cca1f4fa611ec4149 100644 (file)
@@ -2918,7 +2918,7 @@ int pakfire_package_installcheck(pakfire_package* pkg,
        const char* nevra = pakfire_package_get_string(pkg, PAKFIRE_PKG_NEVRA);
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, pkg->root, flags);
+       r = pakfire_transaction_create(&transaction, pkg->ctx, pkg->root, flags);
        if (r)
                goto ERROR;
 
index fe3965b55d5a346bc008b7f4b3d835cac5a0ee19..44aea58b9c2ed603ad3fa016f5925af37f143cac 100644 (file)
@@ -1934,7 +1934,7 @@ int pakfire_root_install(pakfire_root* self, const char** packages) {
        int r;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, self, 0);
+       r = pakfire_transaction_create(&transaction, self->ctx, self, 0);
        if (r < 0)
                goto ERROR;
 
index 300f5608daf8d1d689a6914a7ac1453cb9a261d1..0a96b34e1adcc4fd8a8f7189f4ed9091b30d392f 100644 (file)
@@ -467,12 +467,13 @@ static int pakfire_snapshot_destroy(pakfire_snapshot* self) {
        return 0;
 }
 
-static int pakfire_snapshot_install_packages(pakfire_root* root, const char** packages) {
+static int pakfire_snapshot_install_packages(pakfire_ctx* ctx, pakfire_root* root,
+               const char** packages) {
        pakfire_transaction* transaction = NULL;
        int r;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&transaction, root, 0);
+       r = pakfire_transaction_create(&transaction, ctx, root, 0);
        if (r)
                goto ERROR;
 
@@ -555,7 +556,7 @@ int pakfire_snapshot_make(pakfire_snapshot** snapshot, pakfire_ctx* ctx, pakfire
        }
 
        // Install packages
-       r = pakfire_snapshot_install_packages(p, packages);
+       r = pakfire_snapshot_install_packages(ctx, p, packages);
        if (r < 0)
                goto ERROR;
 
index d40d0ccd19d983381b034494f8c332e48f08669f..cd5946947f5a5d15f8bb88455ae4530adc3ae29e 100644 (file)
@@ -367,7 +367,7 @@ static void pakfire_transaction_free(pakfire_transaction* transaction) {
 }
 
 int pakfire_transaction_create(pakfire_transaction** transaction,
-               pakfire_root* root, int flags) {
+               pakfire_ctx* ctx, pakfire_root* root, int flags) {
        int r;
 
        // Allocate the transaction
@@ -376,7 +376,7 @@ int pakfire_transaction_create(pakfire_transaction** transaction,
                return -errno;
 
        // Store a reference to the context
-       t->ctx = pakfire_root_get_ctx(root);
+       t->ctx = pakfire_ctx_ref(ctx);
 
        // Store reference to Pakfire
        t->root = pakfire_root_ref(root);
index 1da801eaf58c955d77ad15d5e49c19b22c1c796c..21cc07d77b8e1f013a4c95d0292a3a7b4becfeb4 100644 (file)
@@ -26,6 +26,7 @@
 
 typedef struct pakfire_transaction pakfire_transaction;
 
+#include <pakfire/ctx.h>
 #include <pakfire/key.h>
 #include <pakfire/package.h>
 #include <pakfire/root.h>
@@ -59,7 +60,8 @@ enum pakfire_job_flags {
        PAKFIRE_JOB_BEST                = 1 << 3,
 };
 
-int pakfire_transaction_create(pakfire_transaction** transaction, pakfire_root* root, int flags);
+int pakfire_transaction_create(pakfire_transaction** transaction,
+       pakfire_ctx* ctx, pakfire_root* root, int flags);
 
 pakfire_transaction* pakfire_transaction_ref(pakfire_transaction* transaction);
 pakfire_transaction* pakfire_transaction_unref(pakfire_transaction* transaction);
index cb4470202f17315a37af572e63e7761aa68611f0..b8601b805c02cc876efb5e5f992aaa055d4bfe96 100644 (file)
@@ -73,7 +73,7 @@ static int Transaction_init(TransactionObject* self, PyObject* args, PyObject* k
                flags |= PAKFIRE_TRANSACTION_WITHOUT_RECOMMENDED;
 
        // Create a new transaction
-       r = pakfire_transaction_create(&self->transaction, root->root, flags);
+       r = pakfire_transaction_create(&self->transaction, root->ctx->ctx, root->root, flags);
        if (r < 0) {
                errno = -r;
                PyErr_SetFromErrno(PyExc_OSError);