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)
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)
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)
#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;
#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 */
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)
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;
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;
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;
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;
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;
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;
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;
}
// Install packages
- r = pakfire_snapshot_install_packages(p, packages);
+ r = pakfire_snapshot_install_packages(ctx, p, packages);
if (r < 0)
goto ERROR;
}
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
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);
typedef struct pakfire_transaction pakfire_transaction;
+#include <pakfire/ctx.h>
#include <pakfire/key.h>
#include <pakfire/package.h>
#include <pakfire/root.h>
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);
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);