let strongdeps_univ ?(transitive=true) univ =
let size = Cudf.universe_size univ in
let graph = G.create ~size () in
Util.Progress.set_total conjbar size;
Util.Timer.start conjtimer;
let l =
Cudf.fold_packages (fun acc pkg ->
let id = Cudf.uid_by_package univ pkg in
Util.Progress.progress conjbar;
IntPkgGraph.conjdepgraph_int ~transitive graph univ id;
id :: acc
) [] univ
in
Util.Progress.reset conjbar;
Util.Timer.stop conjtimer ();
debug "conj dep graph: nodes %d , edges %d" (G.nb_vertex graph) (G.nb_edges graph);
let g = strongdeps_int ~transitive graph univ l in
if not transitive then O.transitive_reduction g;
g