Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Checkers for CUDF documents
Consistency and problem-solution matching.
type inconsistency_reason = [
| `Unsat_dep of
(Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkgformula
unsatisfied dep.
*)| `Conflict of (Cudf_types.pkgname * Cudf_types.version) * Cudf_types.vpkglist
unsolved conflict(s)
*) ]
type bad_solution_reason = [
| inconsistency_reason
| `Missing_install of Cudf_types.vpkglist
install pkgs missing
*)| `Missing_upgrade of Cudf_types.vpkglist
upgrade pkgs missing
*)| `Unremoved of Cudf_types.vpkglist
remove pkgs still there
*)| `Downgrade of Cudf_types.vpkglist
upgrade pkgs downgraded
*)| `Multi_upgrade of Cudf_types.pkgname list
upgrade pkgs aren't singleton
*)| `Not_kept of Cudf_types.pkgname * Cudf_types.version * Cudf_types.enum_keep
unattended "Keep"
*) ]
val explain_reason : bad_solution_reason -> string
provide a string explaining a given reason, meant for error messages
val satisfy_formula :
Cudf.universe ->
Cudf_types.vpkgformula ->
bool * Cudf_types.vpkgformula
check whether a given package formula is satisfied by a given package status
val disjoint :
Cudf.universe ->
?ignore:(Cudf.package -> bool) ->
Cudf_types.vpkglist ->
bool * Cudf_types.vpkglist
check whether a package list is not satisfied by a given package status
val is_consistent : Cudf.universe -> bool * inconsistency_reason option
val is_solution :
(Cudf.universe * Cudf.request) ->
Cudf.universe ->
bool * bad_solution_reason list
is_solution (status, req) sol
checks whether sol
fulfills the CUDF upgrade scenario described by (status, req)
Note: the sol
package universe must contain all relevant package metadata (e.g. Depends, Conflicts, etc.), copied from status
, a compact universe only containing package names and versions won't be enough. To load compact universes see Cudf_parser.load_solution
.
Note: in accordance with CUDF semantics, for a solution to be valid, the solution shall correspond to a consistent universe. A solution that does satisfy user request, but at the same time proposes an inconsistent universe (as per Cudf_checker.is_consistent
) will be reported by is_solution
as not being a valid solution.