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