-- | Detailed information about the specific repositories such as -- debian or seereason - in particular how cabal names are mapped to -- debian. {-# LANGUAGE CPP #-} {-# OPTIONS -Wall #-} module Debian.Debianize.Details ( debianDefaults ) where import Control.Lens import Data.Map as Map (insert) import Debian.Debianize.DebianName (mapCabal, splitCabal) import Debian.Debianize.Monad (CabalT) import Debian.Debianize.CabalInfo as A (epochMap, debInfo) import Debian.Debianize.DebInfo as D (execMap) import Debian.Debianize.VersionSplits (DebBase(DebBase)) import Debian.Relation (BinPkgName(BinPkgName), Relation(Rel)) #if MIN_VERSION_Cabal(2,0,0) import Distribution.Package (mkPackageName) import Distribution.Version (mkVersion) #else import Data.Version (Version(Version)) import Distribution.Package (PackageName(PackageName)) #endif -- | Update the CabalInfo value in the CabalT state with some details about -- the debian repository - special cases for how some cabal packages -- are mapped to debian package names. debianDefaults :: Monad m => CabalT m () debianDefaults = do -- These are the two epoch names I know about in the debian repo #if MIN_VERSION_Cabal(2,0,0) A.epochMap %= Map.insert (mkPackageName "HaXml") 1 A.epochMap %= Map.insert (mkPackageName "HTTP") 1 #else A.epochMap %= Map.insert (PackageName "HaXml") 1 A.epochMap %= Map.insert (PackageName "HTTP") 1 #endif -- Associate some build tools and their corresponding -- (eponymous) debian package names mapM_ (\name -> (A.debInfo . D.execMap) %= Map.insert name [[Rel (BinPkgName name) Nothing Nothing]]) ["ghc", "happy", "alex", "hsx2hs"] -- The parsec debs are suffixed with either "2" or "3" #if MIN_VERSION_Cabal(2,0,0) mapCabal (mkPackageName "parsec") (DebBase "parsec3") #else mapCabal (PackageName "parsec") (DebBase "parsec3") #endif -- Similar split for quickcheck #if MIN_VERSION_Cabal(2,0,0) mapCabal (mkPackageName "QuickCheck") (DebBase "quickcheck2") #else mapCabal (PackageName "QuickCheck") (DebBase "quickcheck2") #endif -- Something was required for this package at one time - it -- looks like a no-op now #if MIN_VERSION_Cabal(2,0,0) mapCabal (mkPackageName "gtk2hs-buildtools") (DebBase "gtk2hs-buildtools") #else mapCabal (PackageName "gtk2hs-buildtools") (DebBase "gtk2hs-buildtools") #endif -- Upgrade transformers to 0.4 - no don't! -- remapCabal (PackageName "transformers") (DebBase "transformers4") -- remapCabal (PackageName "haskeline") (DebBase "haskeline0713") #if MIN_VERSION_Cabal(2,0,0) mapCabal (mkPackageName "haskell-src-exts") (DebBase "src-exts") mapCabal (mkPackageName "haskell-src-meta") (DebBase "src-meta") mapCabal (mkPackageName "Cabal") (DebBase "cabal") mapCabal (mkPackageName "happstack-authenticate") (DebBase "happstack-authenticate") splitCabal (mkPackageName "happstack-authenticate") (DebBase "happstack-authenticate-0") (mkVersion [2]) #else mapCabal (PackageName "haskell-src-exts") (DebBase "src-exts") mapCabal (PackageName "haskell-src-meta") (DebBase "src-meta") mapCabal (PackageName "Cabal") (DebBase "cabal") mapCabal (PackageName "happstack-authenticate") (DebBase "happstack-authenticate") splitCabal (PackageName "happstack-authenticate") (DebBase "happstack-authenticate-0") (Version [2] []) #endif