debian-3.69: Modules for working with the Debian package system

Safe HaskellNone

Debian.Apt.Dependencies

Contents

Synopsis

Basic CSP Types and Functions

type State a = (Status, [a])Source

Test CSP

controlCSP :: Control -> Relations -> (Paragraph -> Relations) -> CSP ParagraphSource

TODO addProvides -- see DQL.Exec

conflict :: CSP p -> p -> p -> BoolSource

conflict' :: (BinPkgName, DebianVersion) -> Relation -> BoolSource

JAS: deal with Provides (can a package provide more than one package?)

Tree Helper Functions

mkTree :: a -> [Tree a] -> Tree aSource

label :: Tree a -> aSource

initTree :: (a -> [a]) -> a -> Tree aSource

mapTree :: (a -> b) -> Tree a -> Tree bSource

foldTree :: (a -> [b] -> b) -> Tree a -> bSource

zipTreesWith :: (a -> b -> c) -> Tree a -> Tree b -> Tree cSource

prune :: (a -> Bool) -> Tree a -> Tree aSource

leaves :: Tree a -> [a]Source

inhTree :: (b -> a -> b) -> b -> Tree a -> Tree bSource

distrTree :: (a -> [b]) -> b -> Tree a -> Tree bSource

mkSearchTree

mkSearchTree :: forall a. CSP a -> Tree (State a)Source

earliestInconsistency :: CSP a -> State a -> Maybe ((BinPkgName, DebianVersion), (BinPkgName, DebianVersion))Source

earliestInconsistency does what it sounds like the 'reverse as' is because the vars are order high to low, but we want to find the lowest numbered (aka, eariest) inconsistency ??

Conflict Set

type ConflictSet = ([(BinPkgName, DebianVersion)], [Relation])Source

conflicting packages and relations that require non-existant packages

type Labeler a = CSP a -> Tree (State a) -> Tree (State a, ConflictSet)Source

search :: Labeler a -> CSP a -> [State a]Source

Backtracking Labeler

BackJumping Solver

bj :: CSP p -> Tree (State p, ConflictSet) -> Tree (State p, ConflictSet)Source

bj - backjumping labeler

If the node already has a conflict set, then leave it alone.

Otherwise, the conflictset for the node is the combination of the conflict sets of its direct children.