debian-4.0.2: Modules for working with the Debian package system
Safe HaskellNone
LanguageHaskell98

Debian.Relation

Description

A module for working with debian relationships http://www.debian.org/doc/debian-policy/ch-relationships.html

Synopsis

Types

class Pretty (PP a) => PkgName a where Source #

Methods

pkgNameFromString :: String -> a Source #

Instances

Instances details
PkgName BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pkgNameFromString :: String -> BinPkgName Source #

PkgName SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pkgNameFromString :: String -> SrcPkgName Source #

newtype SrcPkgName Source #

Constructors

SrcPkgName 

Fields

Instances

Instances details
Eq SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

(==) :: SrcPkgName -> SrcPkgName -> Bool

(/=) :: SrcPkgName -> SrcPkgName -> Bool

Data SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> SrcPkgName -> c SrcPkgName

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c SrcPkgName

toConstr :: SrcPkgName -> Constr

dataTypeOf :: SrcPkgName -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c SrcPkgName)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c SrcPkgName)

gmapT :: (forall b. Data b => b -> b) -> SrcPkgName -> SrcPkgName

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> SrcPkgName -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> SrcPkgName -> r

gmapQ :: (forall d. Data d => d -> u) -> SrcPkgName -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> SrcPkgName -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> SrcPkgName -> m SrcPkgName

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcPkgName -> m SrcPkgName

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> SrcPkgName -> m SrcPkgName

Ord SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Read SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

readsPrec :: Int -> ReadS SrcPkgName

readList :: ReadS [SrcPkgName]

readPrec :: ReadPrec SrcPkgName

readListPrec :: ReadPrec [SrcPkgName]

Show SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

showsPrec :: Int -> SrcPkgName -> ShowS

show :: SrcPkgName -> String

showList :: [SrcPkgName] -> ShowS

PkgName SrcPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pkgNameFromString :: String -> SrcPkgName Source #

Pretty (PP SrcPkgName) Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP SrcPkgName -> Doc

prettyVersioned :: CabalSpecVersion -> PP SrcPkgName -> Doc

newtype BinPkgName Source #

Constructors

BinPkgName 

Fields

Instances

Instances details
Eq BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

(==) :: BinPkgName -> BinPkgName -> Bool

(/=) :: BinPkgName -> BinPkgName -> Bool

Data BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> BinPkgName -> c BinPkgName

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c BinPkgName

toConstr :: BinPkgName -> Constr

dataTypeOf :: BinPkgName -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c BinPkgName)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c BinPkgName)

gmapT :: (forall b. Data b => b -> b) -> BinPkgName -> BinPkgName

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> BinPkgName -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> BinPkgName -> r

gmapQ :: (forall d. Data d => d -> u) -> BinPkgName -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> BinPkgName -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> BinPkgName -> m BinPkgName

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> BinPkgName -> m BinPkgName

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> BinPkgName -> m BinPkgName

Ord BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Read BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

readsPrec :: Int -> ReadS BinPkgName

readList :: ReadS [BinPkgName]

readPrec :: ReadPrec BinPkgName

readListPrec :: ReadPrec [BinPkgName]

Show BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

showsPrec :: Int -> BinPkgName -> ShowS

show :: BinPkgName -> String

showList :: [BinPkgName] -> ShowS

PkgName BinPkgName Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pkgNameFromString :: String -> BinPkgName Source #

Pretty (PP BinPkgName) Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP BinPkgName -> Doc

prettyVersioned :: CabalSpecVersion -> PP BinPkgName -> Doc

data Relation Source #

Constructors

Rel BinPkgName (Maybe VersionReq) (Maybe ArchitectureReq) 

Instances

Instances details
Eq Relation Source # 
Instance details

Defined in Debian.Relation.Common

Methods

(==) :: Relation -> Relation -> Bool

(/=) :: Relation -> Relation -> Bool

Ord Relation Source # 
Instance details

Defined in Debian.Relation.Common

Methods

compare :: Relation -> Relation -> Ordering

(<) :: Relation -> Relation -> Bool

(<=) :: Relation -> Relation -> Bool

(>) :: Relation -> Relation -> Bool

(>=) :: Relation -> Relation -> Bool

max :: Relation -> Relation -> Relation

min :: Relation -> Relation -> Relation

Read Relation Source # 
Instance details

Defined in Debian.Relation.Common

Methods

readsPrec :: Int -> ReadS Relation

readList :: ReadS [Relation]

readPrec :: ReadPrec Relation

readListPrec :: ReadPrec [Relation]

Show Relation Source # 
Instance details

Defined in Debian.Relation.Common

Methods

showsPrec :: Int -> Relation -> ShowS

show :: Relation -> String

showList :: [Relation] -> ShowS

Pretty (PP Relation) Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP Relation -> Doc

prettyVersioned :: CabalSpecVersion -> PP Relation -> Doc

Pretty (PP OrRelation) Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP OrRelation -> Doc

prettyVersioned :: CabalSpecVersion -> PP OrRelation -> Doc

Pretty (PP Relations) Source #

Wrap PP around type synonyms that might overlap with the `Pretty [a]` instance.

Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP Relations -> Doc

prettyVersioned :: CabalSpecVersion -> PP Relations -> Doc

data ArchitectureReq Source #

Constructors

ArchOnly (Set Arch) 
ArchExcept (Set Arch) 

Instances

Instances details
Eq ArchitectureReq Source # 
Instance details

Defined in Debian.Relation.Common

Ord ArchitectureReq Source # 
Instance details

Defined in Debian.Relation.Common

Read ArchitectureReq Source # 
Instance details

Defined in Debian.Relation.Common

Show ArchitectureReq Source # 
Instance details

Defined in Debian.Relation.Common

Methods

showsPrec :: Int -> ArchitectureReq -> ShowS

show :: ArchitectureReq -> String

showList :: [ArchitectureReq] -> ShowS

Pretty (PP ArchitectureReq) Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP ArchitectureReq -> Doc

prettyVersioned :: CabalSpecVersion -> PP ArchitectureReq -> Doc

data Arch Source #

Constructors

Source 
All 
Binary ArchOS ArchCPU 

Instances

Instances details
Eq Arch Source # 
Instance details

Defined in Debian.Arch

Methods

(==) :: Arch -> Arch -> Bool

(/=) :: Arch -> Arch -> Bool

Data Arch Source # 
Instance details

Defined in Debian.Arch

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Arch -> c Arch

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Arch

toConstr :: Arch -> Constr

dataTypeOf :: Arch -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Arch)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Arch)

gmapT :: (forall b. Data b => b -> b) -> Arch -> Arch

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Arch -> r

gmapQ :: (forall d. Data d => d -> u) -> Arch -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> Arch -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Arch -> m Arch

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Arch -> m Arch

Ord Arch Source # 
Instance details

Defined in Debian.Arch

Methods

compare :: Arch -> Arch -> Ordering

(<) :: Arch -> Arch -> Bool

(<=) :: Arch -> Arch -> Bool

(>) :: Arch -> Arch -> Bool

(>=) :: Arch -> Arch -> Bool

max :: Arch -> Arch -> Arch

min :: Arch -> Arch -> Arch

Read Arch Source # 
Instance details

Defined in Debian.Arch

Methods

readsPrec :: Int -> ReadS Arch

readList :: ReadS [Arch]

readPrec :: ReadPrec Arch

readListPrec :: ReadPrec [Arch]

Show Arch Source # 
Instance details

Defined in Debian.Arch

Methods

showsPrec :: Int -> Arch -> ShowS

show :: Arch -> String

showList :: [Arch] -> ShowS

data ArchOS Source #

Constructors

ArchOS String 
ArchOSAny 

Instances

Instances details
Eq ArchOS Source # 
Instance details

Defined in Debian.Arch

Methods

(==) :: ArchOS -> ArchOS -> Bool

(/=) :: ArchOS -> ArchOS -> Bool

Data ArchOS Source # 
Instance details

Defined in Debian.Arch

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchOS -> c ArchOS

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchOS

toConstr :: ArchOS -> Constr

dataTypeOf :: ArchOS -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchOS)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchOS)

gmapT :: (forall b. Data b => b -> b) -> ArchOS -> ArchOS

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchOS -> r

gmapQ :: (forall d. Data d => d -> u) -> ArchOS -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> ArchOS -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ArchOS -> m ArchOS

Ord ArchOS Source # 
Instance details

Defined in Debian.Arch

Methods

compare :: ArchOS -> ArchOS -> Ordering

(<) :: ArchOS -> ArchOS -> Bool

(<=) :: ArchOS -> ArchOS -> Bool

(>) :: ArchOS -> ArchOS -> Bool

(>=) :: ArchOS -> ArchOS -> Bool

max :: ArchOS -> ArchOS -> ArchOS

min :: ArchOS -> ArchOS -> ArchOS

Read ArchOS Source # 
Instance details

Defined in Debian.Arch

Methods

readsPrec :: Int -> ReadS ArchOS

readList :: ReadS [ArchOS]

readPrec :: ReadPrec ArchOS

readListPrec :: ReadPrec [ArchOS]

Show ArchOS Source # 
Instance details

Defined in Debian.Arch

Methods

showsPrec :: Int -> ArchOS -> ShowS

show :: ArchOS -> String

showList :: [ArchOS] -> ShowS

data ArchCPU Source #

Constructors

ArchCPU String 
ArchCPUAny 

Instances

Instances details
Eq ArchCPU Source # 
Instance details

Defined in Debian.Arch

Methods

(==) :: ArchCPU -> ArchCPU -> Bool

(/=) :: ArchCPU -> ArchCPU -> Bool

Data ArchCPU Source # 
Instance details

Defined in Debian.Arch

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> ArchCPU -> c ArchCPU

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c ArchCPU

toConstr :: ArchCPU -> Constr

dataTypeOf :: ArchCPU -> DataType

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c ArchCPU)

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c ArchCPU)

gmapT :: (forall b. Data b => b -> b) -> ArchCPU -> ArchCPU

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> ArchCPU -> r

gmapQ :: (forall d. Data d => d -> u) -> ArchCPU -> [u]

gmapQi :: Int -> (forall d. Data d => d -> u) -> ArchCPU -> u

gmapM :: Monad m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> ArchCPU -> m ArchCPU

Ord ArchCPU Source # 
Instance details

Defined in Debian.Arch

Methods

compare :: ArchCPU -> ArchCPU -> Ordering

(<) :: ArchCPU -> ArchCPU -> Bool

(<=) :: ArchCPU -> ArchCPU -> Bool

(>) :: ArchCPU -> ArchCPU -> Bool

(>=) :: ArchCPU -> ArchCPU -> Bool

max :: ArchCPU -> ArchCPU -> ArchCPU

min :: ArchCPU -> ArchCPU -> ArchCPU

Read ArchCPU Source # 
Instance details

Defined in Debian.Arch

Methods

readsPrec :: Int -> ReadS ArchCPU

readList :: ReadS [ArchCPU]

readPrec :: ReadPrec ArchCPU

readListPrec :: ReadPrec [ArchCPU]

Show ArchCPU Source # 
Instance details

Defined in Debian.Arch

Methods

showsPrec :: Int -> ArchCPU -> ShowS

show :: ArchCPU -> String

showList :: [ArchCPU] -> ShowS

data VersionReq Source #

Instances

Instances details
Eq VersionReq Source # 
Instance details

Defined in Debian.Relation.Common

Methods

(==) :: VersionReq -> VersionReq -> Bool

(/=) :: VersionReq -> VersionReq -> Bool

Ord VersionReq Source #

The sort order is based on version number first, then on the kind of relation, sorting in the order

Instance details

Defined in Debian.Relation.Common

Read VersionReq Source # 
Instance details

Defined in Debian.Relation.Common

Methods

readsPrec :: Int -> ReadS VersionReq

readList :: ReadS [VersionReq]

readPrec :: ReadPrec VersionReq

readListPrec :: ReadPrec [VersionReq]

Show VersionReq Source # 
Instance details

Defined in Debian.Relation.Common

Methods

showsPrec :: Int -> VersionReq -> ShowS

show :: VersionReq -> String

showList :: [VersionReq] -> ShowS

Pretty (PP VersionReq) Source # 
Instance details

Defined in Debian.Relation.Common

Methods

pretty :: PP VersionReq -> Doc

prettyVersioned :: CabalSpecVersion -> PP VersionReq -> Doc

Helper Functions

checkVersionReq :: Maybe VersionReq -> Maybe DebianVersion -> Bool Source #

Check if a version number satisfies a version requirement.

Relation Parser

type RelParser a = CharParser () a Source #

class ParseRelations a where Source #

Methods

parseRelations :: a -> Either ParseError Relations Source #

parseRelations parse a debian relation (i.e. the value of a Depends field). Return a parsec error or a value of type Relations

Instances

Instances details
ParseRelations String Source # 
Instance details

Defined in Debian.Relation.String

Methods

parseRelations :: String -> Either ParseError Relations Source #

ParseRelations Text Source # 
Instance details

Defined in Debian.Relation.Text

Methods

parseRelations :: Text -> Either ParseError Relations Source #

ParseRelations ByteString Source # 
Instance details

Defined in Debian.Relation.ByteString

Methods

parseRelations :: ByteString -> Either ParseError Relations Source #