packages feed

hackport 0.5.5 → 0.5.6

raw patch · 7 files changed

+104/−18 lines, 7 files

Files

Main.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module Main (main) where  import Control.Applicative@@ -6,6 +8,7 @@ import Data.List import Data.Monoid         ( Monoid(..) )+import qualified Data.Semigroup as S  -- cabal import Distribution.Simple.Setup@@ -36,6 +39,8 @@ import System.Environment ( getArgs, getProgName ) import System.Directory ( doesDirectoryExist ) import System.Exit ( exitFailure )+{-# LANGUAGE CPP #-}+ import System.FilePath ( (</>) )  import qualified HackPort.GlobalFlags as H@@ -56,14 +61,24 @@     listVerbosity :: Flag Verbosity   } +#if MIN_VERSION_base(4,9,0)+instance S.Semigroup ListFlags where+  a <> b = ListFlags {+    listVerbosity = combine listVerbosity+  }+    where combine field = field a S.<> field b+#endif+ instance Monoid ListFlags where   mempty = ListFlags {     listVerbosity = mempty   }+#if !(MIN_VERSION_base(4,11,0))   mappend a b = ListFlags {     listVerbosity = combine listVerbosity   }     where combine field = field a `mappend` field b+#endif  defaultListFlags :: ListFlags defaultListFlags = ListFlags {@@ -119,16 +134,27 @@   , makeEbuildCabalFlags :: Flag (Maybe String)   } +#if MIN_VERSION_base(4,9,0)+instance S.Semigroup MakeEbuildFlags where+  a <> b = MakeEbuildFlags {+    makeEbuildVerbosity = combine makeEbuildVerbosity+  , makeEbuildCabalFlags = makeEbuildCabalFlags b+  }+    where combine field = field a S.<> field b+#endif+ instance Monoid MakeEbuildFlags where   mempty = MakeEbuildFlags {     makeEbuildVerbosity = mempty   , makeEbuildCabalFlags = mempty   }+#if MIN_VERSION_base(4,9,0)   mappend a b = MakeEbuildFlags {     makeEbuildVerbosity = combine makeEbuildVerbosity   , makeEbuildCabalFlags = makeEbuildCabalFlags b   }     where combine field = field a `mappend` field b+#endif  defaultMakeEbuildFlags :: MakeEbuildFlags defaultMakeEbuildFlags = MakeEbuildFlags {@@ -180,14 +206,24 @@     updateVerbosity :: Flag Verbosity   } +#if MIN_VERSION_base(4,9,0)+instance S.Semigroup UpdateFlags where+  a <> b = UpdateFlags {+    updateVerbosity = combine updateVerbosity+  }+    where combine field = field a S.<> field b+#endif+ instance Monoid UpdateFlags where   mempty = UpdateFlags {     updateVerbosity = mempty   }+#if !(MIN_VERSION_base(4,11,0))   mappend a b = UpdateFlags {     updateVerbosity = combine updateVerbosity   }     where combine field = field a `mappend` field b+#endif  defaultUpdateFlags :: UpdateFlags defaultUpdateFlags = UpdateFlags {@@ -284,16 +320,27 @@   , mergeCabalFlags :: Flag (Maybe String)   } +#if MIN_VERSION_base(4,9,0)+instance S.Semigroup MergeFlags where+  a <> b = MergeFlags {+    mergeVerbosity = combine mergeVerbosity+  , mergeCabalFlags = mergeCabalFlags b+  }+    where combine field = field a S.<> field b+#endif+ instance Monoid MergeFlags where   mempty = MergeFlags {     mergeVerbosity = mempty   , mergeCabalFlags = mempty   }+#if !(MIN_VERSION_base(4,11,0))   mappend a b = MergeFlags {     mergeVerbosity = combine mergeVerbosity   , mergeCabalFlags = mergeCabalFlags b   }     where combine field = field a `mappend` field b+#endif  defaultMergeFlags :: MergeFlags defaultMergeFlags = MergeFlags {
Merge/Dependencies.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ {- | Merge a package from hackage to an ebuild.  -} module Merge.Dependencies@@ -32,6 +34,10 @@  import Debug.Trace ( trace ) +#if MIN_VERSION_base(4,9,0)+import Data.Semigroup (Semigroup(..))+#endif+ -- | Dependencies of an ebuild data EDep = EDep   {@@ -42,6 +48,16 @@   }   deriving (Show, Eq, Ord) +#if MIN_VERSION_base(4,9,0)+instance Semigroup EDep where+  (EDep rdepA rdep_eA depA dep_eA) <> (EDep rdepB rdep_eB depB dep_eB) = EDep+    { rdep   = Portage.DependAllOf [rdepA, rdepB]+    , rdep_e = rdep_eA `S.union` rdep_eB+    , dep    = Portage.DependAllOf [depA, depB]+    , dep_e  = dep_eA  `S.union` dep_eB+    }+#endif  +   instance Monoid EDep where   mempty = EDep       {@@ -50,12 +66,14 @@         dep = Portage.empty_dependency,         dep_e = S.empty       }+#if !(MIN_VERSION_base(4,11,0))   (EDep rdepA rdep_eA depA dep_eA) `mappend` (EDep rdepB rdep_eB depB dep_eB) = EDep     { rdep   = Portage.DependAllOf [rdepA, rdepB]     , rdep_e = rdep_eA `S.union` rdep_eB     , dep    = Portage.DependAllOf [depA, depB]     , dep_e  = dep_eA  `S.union` dep_eB     }+#endif  resolveDependencies :: Portage.Overlay -> Cabal.PackageDescription -> Cabal.CompilerInfo                     -> [Cabal.PackageName] -> Cabal.PackageName
Portage/Dependency/Print.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module Portage.Dependency.Print   (     dep2str@@ -11,7 +13,8 @@  import qualified Distribution.Text as DT import qualified Text.PrettyPrint as Disp-import Text.PrettyPrint ( (<>), vcat, nest, render )+import Text.PrettyPrint ( vcat, nest, render )+import Text.PrettyPrint as PP ((<>))  import Portage.Dependency.Types @@ -21,17 +24,17 @@ dispSlot (GivenSlot slot) = Disp.text (':' : slot)  dispLBound :: PackageName -> LBound -> Disp.Doc-dispLBound pn (StrictLB    v) = Disp.char '>' <> DT.disp pn <-> DT.disp v-dispLBound pn (NonstrictLB v) = Disp.text ">=" <> DT.disp pn <-> DT.disp v+dispLBound pn (StrictLB    v) = Disp.char '>' PP.<> DT.disp pn <-> DT.disp v+dispLBound pn (NonstrictLB v) = Disp.text ">=" PP.<> DT.disp pn <-> DT.disp v dispLBound _pn ZeroB = error "unhandled 'dispLBound ZeroB'"  dispUBound :: PackageName -> UBound -> Disp.Doc-dispUBound pn (StrictUB    v) = Disp.char '<' <> DT.disp pn <-> DT.disp v-dispUBound pn (NonstrictUB v) = Disp.text "<=" <> DT.disp pn <-> DT.disp v+dispUBound pn (StrictUB    v) = Disp.char '<' PP.<> DT.disp pn <-> DT.disp v+dispUBound pn (NonstrictUB v) = Disp.text "<=" PP.<> DT.disp pn <-> DT.disp v dispUBound _pn InfinityB = error "unhandled 'dispUBound Infinity'"  dispDAttr :: DAttr -> Disp.Doc-dispDAttr (DAttr s u) = dispSlot s <> dispUses u+dispDAttr (DAttr s u) = dispSlot s PP.<> dispUses u  dep2str :: Int -> Dependency -> String dep2str start_indent = render . nest start_indent . showDepend@@ -40,13 +43,13 @@ dep2str_noindent = render . showDepend  (<->) :: Disp.Doc -> Disp.Doc -> Disp.Doc-a <-> b = a <> Disp.char '-' <> b+a <-> b = a PP.<> Disp.char '-' PP.<> b  sp :: Disp.Doc sp = Disp.char ' '  sparens :: Disp.Doc -> Disp.Doc-sparens doc = Disp.parens (sp <> valign doc <> sp)+sparens doc = Disp.parens (sp PP.<> valign doc PP.<> sp)  valign :: Disp.Doc -> Disp.Doc valign d = nest 0 d@@ -55,24 +58,24 @@ showDepend (DependAtom (Atom pn range dattr))     = case range of         -- any version-        DRange ZeroB InfinityB -> DT.disp pn       <> dispDAttr dattr-        DRange ZeroB ub        -> dispUBound pn ub <> dispDAttr dattr-        DRange lb InfinityB    -> dispLBound pn lb <> dispDAttr dattr+        DRange ZeroB InfinityB -> DT.disp pn       PP.<> dispDAttr dattr+        DRange ZeroB ub        -> dispUBound pn ub PP.<> dispDAttr dattr+        DRange lb InfinityB    -> dispLBound pn lb PP.<> dispDAttr dattr         -- TODO: handle >=foo-0    special case         -- TODO: handle =foo-x.y.* special case         DRange lb ub          ->    showDepend (DependAtom (Atom pn (DRange lb InfinityB) dattr))-                                 <> Disp.char ' '-                                 <> showDepend (DependAtom (Atom pn (DRange ZeroB ub)    dattr))-        DExact v              -> Disp.char '~' <> DT.disp pn <-> DT.disp v { versionRevision = 0 } <> dispDAttr dattr+                                 PP.<> Disp.char ' '+                                 PP.<> showDepend (DependAtom (Atom pn (DRange ZeroB ub)    dattr))+        DExact v              -> Disp.char '~' PP.<> DT.disp pn <-> DT.disp v { versionRevision = 0 } PP.<> dispDAttr dattr  showDepend (DependIfUse u td fd)  = valign $ vcat [td_doc, fd_doc]     where td_doc               | is_empty_dependency td = Disp.empty-              | otherwise =                  DT.disp u <> Disp.char '?' <> sp <> sparens (showDepend td)+              | otherwise =                  DT.disp u PP.<> Disp.char '?' PP.<> sp PP.<> sparens (showDepend td)           fd_doc               | is_empty_dependency fd = Disp.empty-              | otherwise = Disp.char '!' <> DT.disp u <> Disp.char '?' <> sp <> sparens (showDepend fd)-showDepend (DependAnyOf deps)   = Disp.text "||" <> sp <> sparens (vcat $ map showDependInAnyOf deps)+              | otherwise = Disp.char '!' PP.<> DT.disp u PP.<> Disp.char '?' PP.<> sp PP.<> sparens (showDepend fd)+showDepend (DependAnyOf deps)   = Disp.text "||" PP.<> sp PP.<> sparens (vcat $ map showDependInAnyOf deps) showDepend (DependAllOf deps)   = valign $ vcat $ map showDepend deps  -- needs special grouping
Portage/PackageId.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ -- | Portage package identifiers, which unlike Cabal ones include a category. -- module Portage.PackageId (@@ -30,6 +32,10 @@  import Distribution.Text(display) import System.FilePath ( (</>) )++#if MIN_VERSION_base(4,11,0)+import Prelude hiding ((<>))+#endif  newtype Category = Category { unCategory :: String }   deriving (Eq, Ord, Show, Read)
Portage/Use.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ module Portage.Use (   -- * main structures   UseFlag(..),@@ -12,6 +14,10 @@ import qualified Text.PrettyPrint as Disp import Text.PrettyPrint ((<>)) import qualified Distribution.Text as DT++#if MIN_VERSION_base(4,11,0)+import Prelude hiding ((<>))+#endif  -- | Use variable modificator data UseFlag = UseFlag Use           -- ^ no modificator
Portage/Version.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE CPP #-}+ {-|     Author      :  Andres Loeh <kosmikus@gentoo.org>     Stability   :  provisional@@ -25,6 +27,10 @@ import qualified Text.PrettyPrint as Disp import Text.PrettyPrint ((<>)) import qualified Data.Char as Char (isAlpha, isDigit)++#if MIN_VERSION_base(4,11,0)+import Prelude hiding ((<>))+#endif  data Version = Version { versionNumber   :: [Int]         -- [1,42,3] ~= 1.42.3                        , versionChar     :: (Maybe Char)  -- optional letter
hackport.cabal view
@@ -1,5 +1,5 @@ Name:           hackport-Version:        0.5.5+Version:        0.5.6 License:        GPL License-file:   LICENSE Author:         Henning Günther, Duncan Coutts, Lennart Kolmodin