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 ->
      Util.Progress.progress conjbar;
      Defaultgraphs.PackageGraph.conjdepgraph_int ~transitive graph univ pkg;
      pkg :: 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
  (* because the graph might still be transitive *)
  (* if not transitive then O.transitive_reduction g; *)
  g