OpamSolutionInterface with the solver, processing of full solutions through actions
val resolve :
'a OpamStateTypes.switch_state ->
OpamTypes.user_action ->
?reinstall:OpamTypes.package_set ->
requested:OpamTypes.package_set ->
OpamTypes.atom OpamTypes.request ->
(OpamSolver.solution, OpamCudf.conflict) OpamTypes.resultResolve an user request
val apply :
?ask:bool ->
OpamStateTypes.rw OpamStateTypes.switch_state ->
requested:OpamTypes.package_set ->
?print_requested:OpamPackage.Name.Set.t ->
?add_roots:OpamPackage.Name.Set.t ->
?skip:OpamTypes.package OpamPackage.Map.t ->
?assume_built:bool ->
?download_only:bool ->
?force_remove:bool ->
OpamSolver.solution ->
OpamStateTypes.rw OpamStateTypes.switch_state * OpamTypes.solution_resultApply a solution returned by the solver. If ask is not specified, prompts the user whenever the solution isn't obvious from the request. add_roots defaults to the set of newly installed packages that are part of requested. If force_remove is true, modified files are not kept. skip will ignore the actions on the supplied map keys, replacing them with the map values when printing. print_requested is the set of initially requested packages, used for printing actions reasons.
val resolve_and_apply :
?ask:bool ->
OpamStateTypes.rw OpamStateTypes.switch_state ->
OpamTypes.user_action ->
?reinstall:OpamTypes.package_set ->
requested:OpamTypes.package_set ->
?print_requested:OpamPackage.Name.Set.t ->
?add_roots:OpamPackage.Name.Set.t ->
?assume_built:bool ->
?download_only:bool ->
?force_remove:bool ->
OpamTypes.atom OpamTypes.request ->
OpamStateTypes.rw OpamStateTypes.switch_state
* (OpamTypes.solution_result, OpamCudf.conflict) OpamTypes.resultCall the solver to get a solution and then call apply. If ask is not specified, prompts the user whenever the solution isn't obvious from the request. add_roots defaults to the set of newly installed packages that are part of requested. If force_remove is true, modified files are not kept. print_requested is the set of initially requested packages, used for printing actions reasons.
val check_solution :
?quiet:bool ->
'a OpamStateTypes.switch_state ->
(OpamTypes.solution_result, 'conflict) OpamTypes.result ->
unitRaise an error if no solution is found or in case of error. Unless quiet is set, print a message indicating that nothing was done on an empty solution.
val dry_run :
'a OpamStateTypes.switch_state ->
OpamSolver.solution ->
'a OpamStateTypes.switch_stateSimulate the new switch_state after applying the solution without actually performing the action(s) on disk.
val print_depext_msg : OpamSysPkg.status -> unitGiven OpamSysPkg.status (see OpamSysInteract.packages_status), displays appropriate warnings/messages on the console if either set is non-empty.
val install_sys_packages :
confirm:bool ->
OpamStateTypes.gt_variables ->
OpamFile.Config.t ->
OpamSysPkg.to_install ->
unit ->
unitAs install_depexts, but supplied with a set of system packages to be installed.
val install_depexts :
?force_depext:bool ->
?confirm:bool ->
OpamStateTypes.rw OpamStateTypes.switch_state ->
pkg_to_install:OpamTypes.package_set ->
pkg_installed:OpamTypes.package_set ->
OpamStateTypes.rw OpamStateTypes.switch_stateval eq_atom : OpamTypes.name -> OpamTypes.version -> OpamTypes.atomReturn an atom with a strict version constraint
val atom_of_package : OpamTypes.package -> OpamTypes.atomReturn a simple atom, with no version constraint, from a package
val eq_atom_of_package : OpamTypes.package -> OpamTypes.atomReturns an atom with a strict version constraint from a package
val atoms_of_packages : OpamTypes.package_set -> OpamTypes.atom listReturn a list of simple atoms (ie. with no version constraints) from a set of packages
val eq_atoms_of_packages : OpamTypes.package_set -> OpamTypes.atom listReturn a list of constrained atoms from a set of packages
val check_availability :
?permissive:bool ->
'a OpamStateTypes.switch_state ->
OpamPackage.Set.t ->
OpamTypes.atom list ->
unitChecks that the atoms can possibly be verified (individually) in a package set. Displays an error and exits otherwise. permissive just changes the error message.
val fuzzy_name :
'a OpamStateTypes.switch_state ->
OpamTypes.name ->
OpamTypes.nameMatches package names to their existing counterparts, up to capitalisation. If no match exists, returns the name unchanged.
val sanitize_atom_list :
?permissive:bool ->
?installed:bool ->
'a OpamStateTypes.switch_state ->
OpamTypes.atom list ->
OpamTypes.atom listTakes a "raw" list of atoms (from the user), and match it to existing packages. Match packages with the wrong capitalisation, and raises errors on non-existing packages, and unavailable ones unless permissive is set. installed additionally accepts installed, but unavailable packages. Exits with a message on error.
val sum : OpamTypes.stats -> intStats