From: Michael Tremer Date: Mon, 21 Jun 2021 16:07:17 +0000 (+0000) Subject: Implement sync X-Git-Tag: 0.9.28~1211 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ca41ab1d099cda4990cd522dcd0456c3ef83c3e;p=pakfire.git Implement sync Signed-off-by: Michael Tremer --- diff --git a/src/_pakfire/pakfire.c b/src/_pakfire/pakfire.c index 400db9cc3..285ca62c3 100644 --- a/src/_pakfire/pakfire.c +++ b/src/_pakfire/pakfire.c @@ -1052,6 +1052,16 @@ static PyObject* Pakfire_check(PakfireObject* self) { Py_RETURN_NONE; } +static PyObject* Pakfire_sync(PakfireObject* self) { + int r = pakfire_sync(self->pakfire, NULL); + if (r) { + PyErr_SetFromErrno(PyExc_OSError); + return NULL; + } + + Py_RETURN_NONE; +} + static struct PyMethodDef Pakfire_methods[] = { { "bind", @@ -1167,6 +1177,12 @@ static struct PyMethodDef Pakfire_methods[] = { METH_NOARGS, NULL, }, + { + "sync", + (PyCFunction)Pakfire_sync, + METH_NOARGS, + NULL, + }, { "update", (PyCFunction)Pakfire_update, diff --git a/src/_pakfire/request.c b/src/_pakfire/request.c index dce50ee0d..44131f613 100644 --- a/src/_pakfire/request.c +++ b/src/_pakfire/request.c @@ -115,8 +115,8 @@ static PyObject* Request_upgrade_all(RequestObject* self) { Py_RETURN_NONE; } -static PyObject* Request_distupgrade(RequestObject* self) { - int r = pakfire_request_distupgrade(self->request); +static PyObject* Request_sync(RequestObject* self) { + int r = pakfire_request_sync(self->request); if (r) { PyErr_SetFromErrno(PyExc_OSError); return NULL; @@ -228,8 +228,8 @@ static struct PyMethodDef Request_methods[] = { NULL }, { - "distupgrade", - (PyCFunction)Request_distupgrade, + "sync", + (PyCFunction)Request_sync, METH_NOARGS, NULL }, diff --git a/src/libpakfire/include/pakfire/pakfire.h b/src/libpakfire/include/pakfire/pakfire.h index 2eed931ce..f8adba065 100644 --- a/src/libpakfire/include/pakfire/pakfire.h +++ b/src/libpakfire/include/pakfire/pakfire.h @@ -90,6 +90,10 @@ int pakfire_update(Pakfire pakfire, const char** packages, int flags, int* chang int pakfire_check(Pakfire pakfire); +// Sync + +int pakfire_sync(Pakfire pakfire, int* changed); + #ifdef PAKFIRE_PRIVATE #include diff --git a/src/libpakfire/include/pakfire/request.h b/src/libpakfire/include/pakfire/request.h index 9b66e506f..d3968100e 100644 --- a/src/libpakfire/include/pakfire/request.h +++ b/src/libpakfire/include/pakfire/request.h @@ -58,7 +58,7 @@ int pakfire_request_upgrade(struct pakfire_request* request, const char* what, i int pakfire_request_upgrade_package(struct pakfire_request* request, PakfirePackage package); int pakfire_request_upgrade_all(struct pakfire_request* request); -int pakfire_request_distupgrade(struct pakfire_request* request); +int pakfire_request_sync(struct pakfire_request* request); int pakfire_request_lock(struct pakfire_request* request, const char* what); int pakfire_request_lock_package(struct pakfire_request* request, PakfirePackage package); diff --git a/src/libpakfire/libpakfire.sym b/src/libpakfire/libpakfire.sym index 8e519c5ba..3f090022d 100644 --- a/src/libpakfire/libpakfire.sym +++ b/src/libpakfire/libpakfire.sym @@ -44,6 +44,7 @@ global: pakfire_refresh; pakfire_search; pakfire_set_installonly; + pakfire_sync; pakfire_unref; pakfire_update; pakfire_version_compare; @@ -314,7 +315,6 @@ global: # request pakfire_request_create; - pakfire_request_distupgrade; pakfire_request_erase; pakfire_request_erase_package; pakfire_request_get_pool; @@ -326,6 +326,7 @@ global: pakfire_request_lock_package; pakfire_request_ref; pakfire_request_solve; + pakfire_request_sync; pakfire_request_upgrade; pakfire_request_upgrade_all; pakfire_request_upgrade_package; diff --git a/src/libpakfire/pakfire.c b/src/libpakfire/pakfire.c index 0fae1c0e0..6b9d225dc 100644 --- a/src/libpakfire/pakfire.c +++ b/src/libpakfire/pakfire.c @@ -1763,3 +1763,7 @@ ERROR: return r; } + +PAKFIRE_EXPORT int pakfire_sync(Pakfire pakfire, int* changed) { + return pakfire_perform_transaction_simple(pakfire, pakfire_request_sync, changed); +} diff --git a/src/libpakfire/request.c b/src/libpakfire/request.c index f5c2b9d14..94334cf8e 100644 --- a/src/libpakfire/request.c +++ b/src/libpakfire/request.c @@ -492,8 +492,8 @@ PAKFIRE_EXPORT int pakfire_request_upgrade_all(struct pakfire_request* request) return 0; } -PAKFIRE_EXPORT int pakfire_request_distupgrade(struct pakfire_request* request) { - queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_DISTUPGRADE, 0); +PAKFIRE_EXPORT int pakfire_request_sync(struct pakfire_request* request) { + queue_push2(&request->jobs, SOLVER_SOLVABLE_ALL|SOLVER_DISTUPGRADE|SOLVER_DROP_ORPHANED, 0); return 0; } diff --git a/src/pakfire/cli.py b/src/pakfire/cli.py index 0250d2a8e..3886bce6e 100644 --- a/src/pakfire/cli.py +++ b/src/pakfire/cli.py @@ -257,13 +257,7 @@ class Cli(object): ) def handle_sync(self, ns): - with self.pakfire(ns) as p: - transaction = p.update( - allow_archchange=True, - allow_vendorchange=True, - ) - - self._execute_transaction(transaction) + self.pakfire(ns).sync() def handle_install(self, ns): p = self.pakfire(ns)