let strongdeps_int ?(transitive=true) graph univ pkglist =
let cudfpool = Depsolver_int.init_pool_univ ~global_constraints:false univ in
Util.Progress.set_total mainbar (List.length pkglist);
Util.Timer.start strongtimer;
List.iter (fun pkg ->
Util.Progress.progress mainbar;
G.add_vertex graph pkg;
let id = CudfAdd.vartoint univ pkg in
if somedisj cudfpool id then begin
let closure = Depsolver_int.dependency_closure_cache cudfpool [id] in
let solver = Depsolver_int.init_solver_closure cudfpool closure in
match Depsolver_int.solve solver (Diagnostic_int.Sng (None,id)) with
|Diagnostic_int.Failure(_) -> ()
|Diagnostic_int.Success(f_int) ->
check_strong univ transitive graph solver id (f_int ())
end
) pkglist ;
Util.Progress.reset mainbar;
debug "strong dep graph: %d nodes, %d edges" (G.nb_vertex graph) (G.nb_edges graph);
Util.Timer.stop strongtimer graph