Module CudfAdd

module CudfAdd: sig .. end
Library of additional functions for the CUDF format.


Basic comparison operations for packages


val equal : Cudf.package -> Cudf.package -> bool
Equality test: two CUDF packages are equal if their names and versions are equal.
val compare : Cudf.package -> Cudf.package -> int
Compare function: compares two CUDF packages using standard CUDF comparison operator (i.e. comparing by their name and version).

Specialized data structures for CUDF packages


val hash : Cudf.package -> int
A hash function for CUDF packages, using only their name and version.

Data structures:
module Cudf_hashtbl: Hashtbl.S  with type key = Cudf.package
Specialized hashtable for CUDF packages.
module Cudf_set: Set.S  with type elt = Cudf.package
Specialized set data structure for CUDF packages.
val to_set : Cudf_set.elt list -> Cudf_set.t
Convert a list of CUDF packages to a set of CUDF packages.

Functions to encode and decode strings.


val encode : string -> string
Encode a string.

Replaces all the "not allowed" characters with their ASCII code (in hexadecimal format), prefixed with a '%' sign.

Only "allowed" characters are letters, numbers and these: @/+().-, all the others are replaced.

Examples:


val decode : string -> string
Decode a string. Opposite of the encode function.

Replaces all the encoded "not allowed" characters in the string by their original (i.e. not encoded) versions.

Examples:



Formatting, printing, converting to string.


val string_of : (Format.formatter -> 'a -> 'b) -> 'a -> string
val pp_version : Format.formatter -> Cudf.package -> unit
val pp_package : Format.formatter -> Cudf.package -> unit
val string_of_version : Cudf.package -> string
val string_of_package : Cudf.package -> string
module StringSet: Set.S  with type elt = ExtLib.String.t
val pkgnames : Cudf.universe -> StringSet.t

Additional functions on the CUDF data types.


val latest : Cudf.package list -> Cudf.package list
Returns a list of packages containing for each package only the latest version
val add_properties : Cudf.preamble -> (string * Cudf_types.typedecl1) list -> Cudf.preamble
val is_essential : Cudf.package -> bool
val realversionmap : Cudf.package list ->
(Cudf_types.pkgname * string, Cudf.package) ExtLib.Hashtbl.t
build a hash table that associates (package name, String version) to CUDF packages
val vartoint : Cudf.universe -> Cudf.package -> int
val inttovar : Cudf.universe -> int -> Cudf.package
val add_to_package_list : ('a, 'b list Pervasives.ref) ExtLib.Hashtbl.t -> 'a -> 'b -> unit
val get_package_list : ('a, 'b list Pervasives.ref) ExtLib.Hashtbl.t -> 'a -> 'b list
val unique : 'a list -> 'a list
val normalize_set : int list -> int list
val who_provides : Cudf.universe -> Cudf_types.pkgname * Cudf_types.constr -> Cudf.package list
val resolve_vpkg_int : Cudf.universe -> Cudf_types.pkgname * Cudf_types.constr -> int list
val resolve_vpkgs_int : Cudf.universe -> (Cudf_types.pkgname * Cudf_types.constr) list -> int list
val resolve_deps : Cudf.universe ->
(Cudf_types.pkgname * Cudf_types.constr) list -> Cudf.package list
val who_depends : Cudf.universe -> Cudf.package -> Cudf.package list list
val who_conflicts : (int, int list Pervasives.ref) ExtLib.Hashtbl.t ->
Cudf.universe -> Cudf.package -> Cudf.package list
val init_conflicts : Cudf.universe -> (int, int list Pervasives.ref) ExtLib.Hashtbl.t
val compute_pool : Cudf.universe -> int list list array * int list array
val cudfop : (string * string) option ->
([> `Eq | `Geq | `Gt | `Leq | `Lt ] * string) option
val pp : (Cudf_types.pkgname * Cudf_types.version -> 'a * Cudf_types.pkgname) ->
?decode:(Cudf_types.pkgname -> string) ->
Cudf.package -> string * string * (string * string) list
pp ?decode from_cudf pkg package pretty printer. from_cudf a function that gets a (name,cudfversion) pair and returns a (name,realversion). ?decode a function that decode the package name and version

returns : a pair (name,versiom,property list)

note that if the package has version less then 0, then the version is printed as "nan"