]> git.ipfire.org Git - thirdparty/libsolv.git/commitdiff
Add solver_get_cleandeps() method
authorMichael Schroeder <mls@suse.de>
Mon, 11 Sep 2017 14:39:23 +0000 (16:39 +0200)
committerMichael Schroeder <mls@suse.de>
Mon, 11 Sep 2017 14:39:23 +0000 (16:39 +0200)
See https://github.com/openSUSE/libsolv/pull/226

src/libsolv.ver
src/solver.c
src/solver.h

index d65c0d664d2fa60f2aa55e43445d501e005c4d59..337cd19cc5a2f3ed030efdf43bef1142f653a42e 100644 (file)
@@ -425,4 +425,5 @@ SOLV_1.0 {
 
 SOLV_1.1 {
                pool_best_solvables;
+               solver_get_cleandeps;
 } SOLV_1.0;
index 5d1052d295795292d9f759798dc8b05d71a14cc4..6edc66f9aed256b9670af015c4df09452608175a 100644 (file)
@@ -4435,6 +4435,23 @@ void solver_get_orphaned(Solver *solv, Queue *orphanedq)
   queue_init_clone(orphanedq, &solv->orphaned);
 }
 
+void solver_get_cleandeps(Solver *solv, Queue *cleandepsq)
+{
+  Repo *installed = solv->installed;
+  Solvable *s;
+  Id p;
+
+  queue_empty(cleandepsq);
+  if (!installed || !solv->cleandepsmap.size)
+    return;
+  FOR_REPO_SOLVABLES(installed, p, s)
+    {
+      if (!MAPTST(&solv->cleandepsmap, p - installed->start) || solv->decisionmap[p] >= 0)
+       continue;
+      queue_push(cleandepsq, p);
+    }
+}
+
 void solver_get_recommendations(Solver *solv, Queue *recommendationsq, Queue *suggestionsq, int noselected)
 {
   Pool *pool = solv->pool;
index 15fdf3f213cb61a2248c5e6cb2540338b3115982..464d7e6cd45a4ef91b1f2a760155a868046ced46 100644 (file)
@@ -341,6 +341,7 @@ extern void solver_get_recommendations(Solver *solv, Queue *recommendationsq, Qu
 extern void solver_get_unneeded(Solver *solv, Queue *unneededq, int filtered);
 extern void solver_get_userinstalled(Solver *solv, Queue *q, int flags);
 extern void pool_add_userinstalled_jobs(Pool *pool, Queue *q, Queue *job, int flags);
+extern void solver_get_cleandeps(Solver *solv, Queue *cleandepsq);
 
 extern int  solver_describe_decision(Solver *solv, Id p, Id *infop);
 extern void solver_describe_weakdep_decision(Solver *solv, Id p, Queue *whyq);