Module Rpm
module Hdlists : sig
exception Hdlist_Eof
type ic
type field = string
type constr = (int * string)
type data =
| S of string
| L of string list
| D of (string * constr option) list
type stanza = (field * data) list
val _open_in : string -> ic
val _close_in : ic -> unit
val parse_paragraph : ic -> stanza
val decode_flags : int -> TODO: a
val string_of_rel : TODO: a -> string
val get_string : ?opt:bool -> 'a -> ('a * data) list -> string
val get_list : ?opt:bool -> 'a -> ('a * data) list -> string list
val get_deplist : ?opt:bool -> 'a -> ('a * data) list -> (string * (TODO: b * string) option) list
val parse_822_iter : stanza -> 'a option -> 'b -> ic -> 'a list
end
module Version : sig
val rpmvercmp : string -> string -> int
compare only version strings
val is_lower : char -> bool
val is_upper : char -> bool
val is_digit : char -> bool
val is_alpha : char -> bool
val is_alnum : char -> bool
val check_version : string -> bool
val parse_version : string -> (int option * string * string option)
val epochcmp : int option -> int option -> int
val relcmp : string option -> string option -> int
val compare : string -> string -> int
end
module Packages : sig
module Pcre = Re_pcre
type name = string
type version = string
type rel = TODO: a
type vpkg = (string * (rel * string) option)
type package = {
name : name;
version : version;
depends : vpkg list;
conflicts : vpkg list;
obsoletes : vpkg list;
provides : vpkg list;
files : string list;
extras : (string * string) list;
}
val default_package : package
val string_of_rel : TODO: a -> string
module Set : sig
type elt = package
type t
val empty : t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val remove : elt -> t -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val compare : t -> t -> int
val equal : t -> t -> bool
val subset : t -> t -> bool
val iter : elt -> unit -> t -> unit
val fold : elt -> 'a -> 'a -> t -> 'a -> 'a
val for_all : elt -> bool -> t -> bool
val exists : elt -> bool -> t -> bool
val filter : elt -> bool -> t -> t
val partition : elt -> bool -> t -> (t * t)
val cardinal : t -> int
val elements : t -> elt list
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
val split : elt -> t -> (t * bool * t)
val find : elt -> t -> elt
val of_list : elt list -> t
end
val input_raw_priv : 'a -> 'a -> string -> Set.elt list -> string list -> Set.elt list
module Hdlists : sig
val parse_packages_fields : (string * Hdlists.data) list -> package option
val parse_packages : 'a -> string -> package list
val input_raw : ?extras:'a list -> string list -> Set.elt list
end
module Synthesis : sig
val rel_of_string : string -> TODO: a
val parse_op : string -> (TODO: a * string) option
val parse_vpkg : string -> (string * (TODO: a * string) option)
val parse_deps : string list -> (string * (TODO: a * string) option) list
val parse_info : package -> string list -> package
exception Eof
val parse_packages : 'a -> string -> package list
val input_raw : ?extras:'a list -> string list -> Set.elt list
end
end
module Rpmcudf : sig
val create : int -> tables
val clear : tables -> unit
val init_tables : Packages.package list -> tables
val compare_constr : (TODO: a * string) -> (TODO: b * string) -> bool
val get_cudf_version : tables -> (Packages.name * string) -> int
val expand : tables -> (Packages.name * (TODO: a * string) option) list -> (string * (TODO: b * int) option) list
val load_provides : ('a * 'b) -> tables -> (Packages.name * (TODO: c * string) option) list -> (string * (TODO: d * int) option) list
val load_conflicts : tables -> (Packages.name * (TODO: a * string) option) list -> (string * (TODO: b * int) option) list
val load_depends : tables -> (Packages.name * (TODO: a * string) option) list list -> (string * (TODO: b * int) option) list list
val load_filesprovides : tables -> (string * string) -> (string * 'a option) list
val load_fileconflicts : tables -> (string * string) -> (string * (TODO: a * int) option) list
val add_extra : (string * TODO: a) list -> 'b -> Packages.package -> (string * 'a) list
val add_keep : Packages.package -> TODO: a
val tocudf : tables -> ?extras:(string * Cudf_types.typed_value) list -> ?inst:bool -> Packages.package -> Cudf.package
end