Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Convert between cabal and debian package names based on version number ranges.
Synopsis
- newtype DebBase = DebBase {}
- data VersionSplits = VersionSplits {
- oldestPackage :: DebBase
- splits :: [(Version, DebBase)]
- makePackage :: DebBase -> VersionSplits
- insertSplit :: Version -> DebBase -> VersionSplits -> VersionSplits
- cabalFromDebian :: Map PackageName VersionSplits -> DebBase -> DebianVersion -> PackageName
- cabalFromDebian' :: Map PackageName VersionSplits -> DebBase -> Version -> PackageIdentifier
- debianFromCabal :: VersionSplits -> PackageIdentifier -> DebBase
- packageRangesFromVersionSplits :: VersionSplits -> [(DebBase, VersionRange)]
- doSplits :: VersionSplits -> Maybe VersionReq -> DebBase
Documentation
The base of a debian binary package name, the string that appears between "libghc-" and "-dev".
Instances
Data DebBase Source # | |
Defined in Debian.Debianize.VersionSplits gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> DebBase -> c DebBase # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c DebBase # toConstr :: DebBase -> Constr # dataTypeOf :: DebBase -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c DebBase) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c DebBase) # gmapT :: (forall b. Data b => b -> b) -> DebBase -> DebBase # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> DebBase -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> DebBase -> r # gmapQ :: (forall d. Data d => d -> u) -> DebBase -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> DebBase -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> DebBase -> m DebBase # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> DebBase -> m DebBase # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> DebBase -> m DebBase # | |
Read DebBase Source # | |
Show DebBase Source # | |
Eq DebBase Source # | |
Ord DebBase Source # | |
Defined in Debian.Debianize.VersionSplits | |
Interspersed VersionSplits DebBase Version Source # | |
Defined in Debian.Debianize.VersionSplits leftmost :: VersionSplits -> DebBase Source # pairs :: VersionSplits -> [(Version, DebBase)] Source # foldTriples :: (DebBase -> Version -> DebBase -> r -> r) -> r -> VersionSplits -> r Source # foldInverted :: (Maybe Version -> DebBase -> Maybe Version -> r -> r) -> r -> VersionSplits -> r Source # foldArounds :: (DebBase -> DebBase -> r -> r) -> r -> VersionSplits -> r Source # foldBetweens :: (Version -> r -> r) -> r -> VersionSplits -> r Source # |
Combinators for VersionSplits
data VersionSplits Source #
Describes a mapping from cabal package name and version to debian package names. For example, versions of the cabal QuickCheck package less than 2 are mapped to "quickcheck1", while version 2 or greater is mapped to "quickcheck2".
VersionSplits | |
|
Instances
makePackage :: DebBase -> VersionSplits Source #
Create a version split database that assigns a single debian package name base to all cabal versions.
:: Version | Where to split the version range |
-> DebBase | The name to use for versions older than the split |
-> VersionSplits | |
-> VersionSplits |
Split the version range and give the older packages a new name.
Operators on VersionSplits
cabalFromDebian :: Map PackageName VersionSplits -> DebBase -> DebianVersion -> PackageName Source #
Brute force implementation - I'm assuming this is not a huge map.
cabalFromDebian' :: Map PackageName VersionSplits -> DebBase -> Version -> PackageIdentifier Source #
doSplits :: VersionSplits -> Maybe VersionReq -> DebBase Source #
Given a version split database, turn the debian version requirements into a debian package name base that ought to satisfy them.