return pakfire_transaction_create(request->pakfire, request->transaction);
}
+static int pakfire_request_add_package(struct pakfire_request* request, int action,
+ PakfirePackage pkg, int flags) {
+ // Get the solvable ID
+ Id id = pakfire_package_id(pkg);
+
+ // Add it to the job queue
+ queue_push2(&request->jobs, SOLVER_SOLVABLE|action|flags, id);
+
+ return 0;
+}
+
static int pakfire_request_add_job(struct pakfire_request* request, int action, const char* what) {
Pool* pool = pakfire_get_solv_pool(request->pakfire);
Id key = 0;
return pakfire_request_add_job(request, SOLVER_INSTALL, what);
}
-PAKFIRE_EXPORT int pakfire_request_install_package(struct pakfire_request* request, PakfirePackage package) {
- queue_push2(&request->jobs, SOLVER_SOLVABLE|SOLVER_INSTALL, pakfire_package_id(package));
-
- return 0;
+PAKFIRE_EXPORT int pakfire_request_install_package(
+ struct pakfire_request* request, PakfirePackage package) {
+ return pakfire_request_add_package(request, SOLVER_INSTALL, package, 0);
}
PAKFIRE_EXPORT int pakfire_request_install_relation(struct pakfire_request* request, PakfireRelation relation) {
return additional;
}
-PAKFIRE_EXPORT int pakfire_request_erase_package(struct pakfire_request* request, PakfirePackage package, int flags) {
- int additional = erase_flags(flags);
- queue_push2(&request->jobs, SOLVER_SOLVABLE|SOLVER_ERASE|additional, pakfire_package_id(package));
-
- return 0;
+PAKFIRE_EXPORT int pakfire_request_erase_package(
+ struct pakfire_request* request, PakfirePackage package, int flags) {
+ return pakfire_request_add_package(request, SOLVER_ERASE, package, erase_flags(flags));
}
PAKFIRE_EXPORT int pakfire_request_erase_relation(struct pakfire_request* request, PakfireRelation relation, int flags) {
return pakfire_selector2queue(selector, &request->jobs, SOLVER_ERASE|additional);
}
-PAKFIRE_EXPORT int pakfire_request_upgrade_package(struct pakfire_request* request, PakfirePackage package) {
- return pakfire_request_install_package(request, package);
+PAKFIRE_EXPORT int pakfire_request_upgrade_package(
+ struct pakfire_request* request, PakfirePackage package) {
+ return pakfire_request_add_package(request, SOLVER_UPDATE, package, 0);
}
PAKFIRE_EXPORT int pakfire_request_upgrade_relation(struct pakfire_request* request, PakfireRelation relation) {
}
PAKFIRE_EXPORT int pakfire_request_upgrade_all(struct pakfire_request* request) {
- queue_push2(&request->jobs, SOLVER_UPDATE|SOLVER_SOLVABLE_ALL, 0);
+ queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_UPDATE, 0);
return 0;
}
PAKFIRE_EXPORT int pakfire_request_distupgrade(struct pakfire_request* request) {
- queue_push2(&request->jobs, SOLVER_DISTUPGRADE|SOLVER_SOLVABLE_ALL, 0);
+ queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_DISTUPGRADE, 0);
return 0;
}
PAKFIRE_EXPORT int pakfire_request_lock_package(struct pakfire_request* request, PakfirePackage package) {
- queue_push2(&request->jobs, SOLVER_SOLVABLE|SOLVER_LOCK, pakfire_package_id(package));
-
- return 0;
+ return pakfire_request_add_package(request, SOLVER_LOCK, package, 0);
}
PAKFIRE_EXPORT int pakfire_request_lock_relation(struct pakfire_request* request, PakfireRelation relation) {
}
PAKFIRE_EXPORT int pakfire_request_verify(struct pakfire_request* request) {
- queue_push2(&request->jobs, SOLVER_VERIFY|SOLVER_SOLVABLE_ALL, 0);
+ queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_VERIFY, 0);
return 0;
}