module CudfAdd:sig
..end
Library of additional functions for the CUDF format.
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).
val hash : Cudf.package -> int
A hash function for CUDF packages, using only their name and version.
val sort : ?asc:bool -> Cudf.package list -> Cudf.package list
Sort function: sorts a CUDF packages list using the standard CUDF comparison operator in ascending order.
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.
val who_provides : Cudf.universe -> Cudf_types.vpkg -> Cudf.package list
Return the list of packages that that respect the given constraint
val resolve_deps : Cudf.universe -> Cudf_types.vpkglist -> Cudf.package list
Return the list of packages satisfying the vpkg list
val who_depends : Cudf.universe -> Cudf.package -> Cudf.package list list
Returns the list of packages that are dependencies of the given package
typectable =
(int, int list Stdlib.ref) ExtLib.Hashtbl.t
A table to associate to each id the list of packages id that are in conflict with it. Reflexive conflicts are made explicit.
val init_conflicts : Cudf.universe -> ctable
Create a ctable from a package universe
val who_conflicts : ctable -> Cudf.universe -> Cudf.package -> Cudf.package list
Return the list of packages in conflict with the given package
val resolve_vpkg_int : Cudf.universe -> Cudf_types.vpkg -> int list
Like who_provides but returns a list of cudf ids
val resolve_vpkgs_int : Cudf.universe -> Cudf_types.vpkglist -> int list
Like resolve_deps but returns a list of cudf ids
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:
encode "ab" = "ab"
encode "|" = "%7c"
encode "a|b" = "a%7cb"
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:
decode "ab" = "ab"
decode "%7c" = "|"
decode "a%7cb" = "a|b"
val latest : ?n:int -> Cudf.package list -> Cudf.package list
Returns a list of packages containing for each package n
most recent version (default the latest version)
module StringSet:Set.S
with type elt = ExtLib.String.t
Set of strings
val pkgnames : Cudf.universe -> StringSet.t
Returns the set of all names in the given universe
val add_properties : Cudf.preamble -> Cudf_types.typedecl -> Cudf.preamble
Add a new property to the given cudf preamble
val get_property : string -> Cudf.package -> string
return the value of the requested property. * emit a warning and raise Not_found if the property does not exist
val is_essential : Cudf.package -> bool
Returns true if the package is essential, that is the cudf package has a extra property named "essential" and its value is "yes"
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 pkgtoint : Cudf.universe -> Cudf.package -> int
Return the unique cudf id of a package in a universe
val inttopkg : Cudf.universe -> int -> Cudf.package
Given a universe and a cudf id returns the corresponding package. Raise Not_found if the id does not correspond to a package.
val compute_pool : Cudf.universe -> int list list array * int list array
val add_to_package_list : ('a, 'b list Stdlib.ref) ExtLib.Hashtbl.t -> 'a -> 'b -> unit
val get_package_list : ('a, 'b list Stdlib.ref) ExtLib.Hashtbl.t -> 'a -> 'b list
val normalize_set : int list -> int list
normalize_set l returns the list l without any duplicate element.
val string_of : (Stdlib.Format.formatter -> 'a -> 'b) -> 'a -> string
val pp_version : Stdlib.Format.formatter -> Cudf.package -> unit
val pp_package : Stdlib.Format.formatter -> Cudf.package -> unit
val string_of_version : Cudf.package -> string
return a string containg either the value of the optional field "number" or the cudf version
val string_of_package : Cudf.package -> string
return a string of the form "name ( = version)"
typepp =
Cudf.package ->
string * string option * string * (string * (string * bool)) list
val pp : (Cudf_types.pkgname * Cudf_types.version -> string * string option * string) ->
?fields:string list ->
?decode:(Cudf_types.pkgname -> string) -> pp
pp ?decode from_cudf pkg
package pretty printer.
from_cudf
a function that gets a (name,cudfversion) pair and returns a (name,realversion).
?fields
additional fields to print.
?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"
val default_pp : pp
default_pp
default package printer. Extracts string values from a
cudf package : Name, Version, Fields. Where Fields is a list of
field name , value pairs . If the version of the package is
a negative number, the version version if printed as "nan".
val pp_vpkg : pp -> Stdlib.Format.formatter -> Cudf_types.vpkg -> unit
cudf vpkglist printer.
val pp_vpkglist : pp -> Stdlib.Format.formatter -> Cudf_types.vpkglist -> unit
cudf vpkglist printer.
val cone : Cudf.universe -> Cudf.package list -> Cudf.package list
Compute the depenency cone of a list of packages