]> git.ipfire.org Git - pakfire.git/commitdiff
request: Fix sync
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 21 Sep 2023 15:58:26 +0000 (15:58 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 21 Sep 2023 15:58:26 +0000 (15:58 +0000)
The dist-upgrade job became a noop when the DROP_ORPHANED flag got set,
because it is not a flag but a separate job instead.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/request.c

index 0a348e6c98a376fa1ce33ef07dbf723923fe4b9c..b71c3ace5f3104720584d79a6f88385299e08c95 100644 (file)
@@ -219,8 +219,7 @@ static int pakfire_request_is_file(const char* what) {
 
 static int __pakfire_request_add(struct pakfire_request* request,
                const enum pakfire_request_action action, const Id type, const Id id, int flags) {
-       Id _action = ID_NULL;
-       int solvflags = 0;
+       Id job = ID_NULL;
 
        // Check if type/ID is not set for actions that don't support it
        switch (action) {
@@ -239,49 +238,49 @@ static int __pakfire_request_add(struct pakfire_request* request,
 
        // Essential jobs
        if (flags & PAKFIRE_REQUEST_ESSENTIAL)
-               solvflags |= SOLVER_ESSENTIAL;
+               job |= SOLVER_ESSENTIAL;
 
        // Select the correct action
        switch (action) {
                case PAKFIRE_REQ_INSTALL:
-                       _action = SOLVER_INSTALL;
+                       job |= SOLVER_INSTALL;
                        break;
 
                case PAKFIRE_REQ_ERASE:
-                       _action = SOLVER_ERASE;
+                       job |= SOLVER_ERASE;
 
                        // Should we keep any dependencies?
                        if (!(flags & PAKFIRE_REQUEST_KEEP_DEPS))
-                               solvflags |= SOLVER_CLEANDEPS;
+                               job |= SOLVER_CLEANDEPS;
                        break;
 
                case PAKFIRE_REQ_UPDATE:
-                       _action = SOLVER_UPDATE;
+                       job |= SOLVER_UPDATE;
                        break;
 
                case PAKFIRE_REQ_UPDATE_ALL:
-                       _action = SOLVER_UPDATE|SOLVER_SOLVABLE_ALL;
+                       job |= SOLVER_UPDATE|SOLVER_SOLVABLE_ALL;
                        break;
 
                case PAKFIRE_REQ_SYNC:
-                       _action = SOLVER_DISTUPGRADE|SOLVER_SOLVABLE_ALL;
+                       job |= SOLVER_DISTUPGRADE|SOLVER_SOLVABLE_ALL;
 
                        // Drop orphans?
                        if (!(flags & PAKFIRE_REQUEST_KEEP_ORPHANED))
-                               solvflags |= SOLVER_DROP_ORPHANED;
+                               queue_push2(&request->jobs, SOLVER_DROP_ORPHANED, 0);
                        break;
 
                case PAKFIRE_REQ_LOCK:
-                       _action = SOLVER_LOCK;
+                       job |= SOLVER_LOCK;
                        break;
 
                case PAKFIRE_REQ_VERIFY:
-                       _action = SOLVER_VERIFY|SOLVER_SOLVABLE_ALL;
+                       job |= SOLVER_VERIFY|SOLVER_SOLVABLE_ALL;
                        break;
        }
 
        // Add it to the job queue
-       queue_push2(&request->jobs, _action|type|solvflags, id);
+       queue_push2(&request->jobs, job|type, id);
 
        return 0;
 }