From: Michael Tremer Date: Thu, 21 Sep 2023 15:58:26 +0000 (+0000) Subject: request: Fix sync X-Git-Tag: 0.9.30~1670 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=82cab92134f9952206d171c843c5bbeb66929bc5;p=pakfire.git request: Fix sync 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 --- diff --git a/src/libpakfire/request.c b/src/libpakfire/request.c index 0a348e6c9..b71c3ace5 100644 --- a/src/libpakfire/request.c +++ b/src/libpakfire/request.c @@ -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; }