opam-client

Client library for opam 2.1
Module OpamSolution
val apply : ?ask:bool -> OpamStateTypes.rw OpamStateTypes.switch_state -> requested:OpamPackage.Name.Set.t -> ?add_roots:OpamPackage.Name.Set.t -> ?assume_built:bool -> ?download_only:bool -> ?force_remove:bool -> OpamSolver.solution -> OpamStateTypes.rw OpamStateTypes.switch_state * OpamTypes.solution_result

Apply 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.

Call 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.

val check_solution : ?quiet:bool -> 'a OpamStateTypes.switch_state -> ( OpamTypes.solution_result, 'conflict ) OpamTypes.result -> unit

Raise 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.

Atoms

Return an atom with a strict version constraint

val atom_of_package : OpamTypes.package -> OpamTypes.atom

Return a simple atom, with no version constraint, from a package

val eq_atom_of_package : OpamTypes.package -> OpamTypes.atom

Returns an atom with a strict version constraint from a package

val atoms_of_packages : OpamTypes.package_set -> OpamTypes.atom list

Return 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 list

Return 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 -> unit

Checks that the atoms can possibly be verified (individually) in a package set. Displays an error and exits otherwise. permissive just changes the error message.

Matches package names to their existing counterparts, up to capitalisation. If no match exists, returns the name unchanged.

val sanitize_atom_list : ?permissive:bool -> 'a OpamStateTypes.switch_state -> OpamTypes.atom list -> OpamTypes.atom list

Takes 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. Exits with a message on error.

val sum : OpamTypes.stats -> int

Stats