Module OpamCudf

module OpamCudf: sig .. end
Cudf interface

module Set: OpamMisc.SET  with type elt = Cudf.package
Cudf sets
module Map: OpamMisc.MAP  with type key = Cudf.package
Cudf maps
module Graph: sig .. end
Cudf graph
module Diff: sig .. end
Difference between universes
module ActionGraph: ACTION_GRAPH  with type package = Cudf.package
Cudf action graph
val dependencies : Cudf.universe -> Cudf.package list -> Cudf.package list
Return the transitive closure of dependencies of set, sorted in topological order
val reverse_dependencies : Cudf.universe -> Cudf.package list -> Cudf.package list
Return the transitive closure of dependencies of set, sorted in topological order
val get_final_universe : Cudf.universe ->
Cudf_types.vpkg OpamTypes.request ->
(Cudf.universe, Algo.Diagnostic.reason list) OpamTypes.result
Compute the final universe state.
val actions_of_diff : Diff.universe -> Cudf.package OpamTypes.action list
Compute the list of actions to match the difference between two universe. Remark: the result order is unspecified, ie. need to use solution_of_actions to get a solution which respects the topological order induced by dependencies.
val solution_of_actions : simple_universe:Cudf.universe ->
complete_universe:Cudf.universe ->
Cudf.package OpamTypes.action list -> ActionGraph.solution
Compution the actions to process from a solution
val resolve : Cudf.universe ->
Cudf_types.vpkg OpamTypes.request ->
(Cudf.package OpamTypes.action list, Algo.Diagnostic.reason list)
OpamTypes.result
Resolve a CUDF request. The result is either a conflict explaining the error, or a list of action to proceed. Note however than the action list is not yet complete: the transitive closure of reinstallations is not yet completed, as it requires to fold over the dependency graph in considering the optional dependencies -- which is something that dose/cudf obviously does not handle.
val remove : Cudf.universe -> Cudf_types.pkgname -> Cudf_types.constr -> Cudf.universe
remove universe name constr Remove all the packages called name satisfying the constraints constr in the universe universe.
val uninstall_all : Cudf.universe -> Cudf.universe
Uninstall all the package in the universe.
val install : Cudf.universe -> Cudf.package -> Cudf.universe
Install a package in the universe. We don't care about any invariant here (eg. the resulting universe can have mutliple versions of the same package installed).
val remove_all_uninstalled_versions_but : Cudf.universe -> string -> Cudf_types.constr -> Cudf.universe
Remove all the versions of a given package, but the one given as argument.
val s_reinstall : string
The "reinstall" string
val s_installed_root : string
The "installed-root" string

Pretty-printing


val string_of_vpkgs : Cudf_types.vpkg list -> string
Convert a package constraint to something readable.
val string_of_reason : (Cudf.package -> OpamTypes.package) ->
OpamTypes.universe -> Algo.Diagnostic.reason -> string option
Convert a reason to something readable by the user
val string_of_reasons : (Cudf.package -> OpamTypes.package) ->
OpamTypes.universe -> Algo.Diagnostic.reason list -> string
Convert a list of reasons to something readable by the user
val string_of_atom : Cudf_types.vpkg -> string
Pretty-print atoms
val string_of_request : Cudf_types.vpkg OpamTypes.request -> string
Pretty-print requests
val string_of_universe : Cudf.universe -> string
Pretty-print the universe
val string_of_packages : Cudf.package list -> string
Pretty-print of packages
val external_solver_available : unit -> bool

External solver