Checkers for CUDF documents
Consistency and problem-solution matching.
provide a string explaining a given reason, meant for error messages
check whether a given package formula is satisfied by a given package status
true, []
if the formula is satisfied; false, f
otherwise, where f is a sub-formula of the input denoting an
unsatisfiable formula (ideally, a witness of the unsatisfiability
of the input formula)
check whether a package list is not satisfied by a given package status
true, []
if the list is disjoint; false, l
otherwise, where l is a list of packages satisfied by the universe
(ideally, the reason of the non-disjointness)
true, None
if the given installation is consistent,
false, Some r
otherwise, where r is the inconsistency reason
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.
true, []
if this is the case, false, l
otherwise, where r explains why the solution is bad