packages feed

hackport 0.2.17 → 0.2.18

raw patch · 11 files changed

+154/−65 lines, 11 filesdep +HUnitdep ~basedep ~xml

Dependencies added: HUnit

Dependency ranges changed: base, xml

Files

Cabal2Ebuild.hs view
@@ -37,7 +37,6 @@ import Data.Char          (toLower,isUpper)  import Portage.Dependency-import Portage.Use import qualified Portage.PackageId as Portage import qualified Portage.EBuild as Portage import qualified Portage.Resolve as Portage@@ -62,9 +61,11 @@                    ++ maybe [] (const (["lib","profile","haddock","hoogle"]                         ++ if cabalPkgName == "hscolour" then [] else ["hscolour"])                         ) (Cabal.library pkg) -- hscolour can't colour its own sources+                   ++ (if hasTests then ["test-suite"] else [])   } where         cabalPkgName = display $ Cabal.pkgName (Cabal.package pkg)         hasExe = (not . null) (Cabal.executables pkg) +        hasTests = (not . null) (Cabal.testSuites pkg)         thisHomepage = if (null $ Cabal.homepage pkg)                          then E.homepage E.ebuildTemplate                          else Cabal.homepage pkg@@ -73,7 +74,7 @@ convertDependencies overlay category = concatMap (convertDependency overlay category)  convertDependency :: O.Overlay -> Portage.Category -> Cabal.Dependency -> [Dependency]-convertDependency overlay _category (Cabal.Dependency pname@(Cabal.PackageName _name) _)+convertDependency _overlay _category (Cabal.Dependency pname@(Cabal.PackageName _name) _)   | pname `elem` coreLibs = []      -- no explicit dep on core libs convertDependency overlay category (Cabal.Dependency pname versionRange)   = convert versionRange@@ -90,14 +91,10 @@             )(\v     -> [OrLaterVersionOf   (fromCabalVersion v) pn []] -- ^ @\">= v\"@             )(\v     -> [OrEarlierVersionOf (fromCabalVersion v) pn []] -- ^ @\"<= v\"@             )(\v _   -> [ThisMajorOf        (fromCabalVersion v) pn []] -- ^ @\"== v.*\"@ wildcard. (incl lower, excl upper)-            )(\g1 g2 -> [DependEither (flatten g1 ++ flatten g2)   ] -- ^ @\"_ || _\"@ union+            )(\g1 g2 -> [DependEither                       (g1 ++ g2)] -- ^ @\"_ || _\"@ union             )(\r1 r2 -> r1 ++ r2                                     -- ^ @\"_ && _\"@ intersection             )(\dp    -> [AllOf dp                                  ] -- ^ @\"(_)\"@ parentheses             )-      where-      flatten :: [Dependency] -> [[Dependency]]-      flatten [DependEither ds] = concatMap flatten ds-      flatten other = [other]  coreLibs :: [Cabal.PackageName] coreLibs = map Cabal.PackageName
Merge.hs view
@@ -176,6 +176,8 @@    debug verbosity ("Selected flags: " ++ show flags)   info verbosity ("Guessing GHC version: " ++ maybe "could not guess" (display.fst) mminimumGHC)+  forM_ excludePkgs $+      \(PackageName name) -> info verbosity $ "Excluded packages (come with ghc): " ++ name    let ebuild =   (\e -> e { E.depend        = Merge.dep edeps } )                . (\e -> e { E.depend_extra  = Merge.dep_e edeps } )
Merge/Dependencies.hs view
@@ -55,6 +55,8 @@                                        , pkgconfigDepends                                        , hasLibs                                        , specVersion+                                       , TestSuite(..)+                                       , targetBuildDepends                                        ) import Data.Maybe ( isNothing ) import Data.List ( nub )@@ -96,12 +98,16 @@ resolveDependencies overlay pkg mcompiler =     edeps       {-        dep  = Portage.simplify_deps ( dep edeps),-        rdep = Portage.simplify_deps (rdep edeps)+        dep  = dep2,+        rdep = rdep2         -- todo: if rdep includes cabal or ghc, make sure it's the same         -- version as in dep       }   where+    dep1  = Portage.simplify_deps ( dep edeps)+    dep2  = Portage.simplifyUseDeps dep1 (dep1++rdep2)+    rdep1  = Portage.simplify_deps (rdep edeps)+    rdep2  = Portage.simplifyUseDeps rdep1 rdep1     compiler = maybe (fst GHCCore.defaultGHC) id mcompiler      hasBuildableExes p = any (buildable . buildInfo) . executables $ p@@ -109,6 +115,9 @@     haskell_deps         | treatAsLibrary = add_profile $ haskellDependencies overlay pkg         | otherwise      = haskellDependencies overlay pkg+    test_deps+        | (not . null) (testSuites pkg) = testDependencies overlay pkg+        | otherwise = [] -- tests not enabled     cabal_dep = cabalDependency overlay pkg compiler     ghc_dep = compilerIdToDependency compiler     extra_libs = findCLibs pkg@@ -118,7 +127,8 @@         | treatAsLibrary = emptyEDep                   {                     dep = cabal_dep-                          : build_tools,+                          : build_tools+                          ++ test_deps,                     dep_e = [ "${RDEPEND}" ],                     rdep = ghc_dep                             : haskell_deps@@ -130,13 +140,24 @@                     dep = ghc_dep                           : cabal_dep                           : build_tools-                          ++ haskell_deps,+                          ++ haskell_deps+                          ++ test_deps,                     dep_e = [ "${RDEPEND}" ],                     rdep = extra_libs ++ pkg_config                   }     add_profile = map (flip Portage.addDepUseFlag (Portage.mkQUse "profile")) +---------------------------------------------------------------+-- Test-suite dependencies+--------------------------------------------------------------- +testDependencies :: Portage.Overlay -> PackageDescription -> [Portage.Dependency]+testDependencies overlay pkg@(PackageDescription { package = Cabal.PackageIdentifier { Cabal.pkgName = Cabal.PackageName name}}) =+    [Portage.DependIfUse (Portage.UseFlag "test") (Portage.AllOf $ Portage.simplify_deps deps)]+    where cabalDeps = concat $ map targetBuildDepends $ map testBuildInfo (testSuites pkg)+          cabalDeps' = filter (\(Cabal.Dependency (Cabal.PackageName pname) _) -> pname /= name) cabalDeps+          deps = C2E.convertDependencies overlay (Portage.Category "dev-haskell") cabalDeps'+ --------------------------------------------------------------- -- Haskell packages ---------------------------------------------------------------@@ -204,12 +225,13 @@   m = [ ("z", Portage.AnyVersionOf (Portage.mkPackageName "sys-libs" "zlib") [])       , ("bz2", Portage.AnyVersionOf (Portage.mkPackageName "sys-libs" "bzlib") [])       , ("mysqlclient", Portage.LaterVersionOf (Portage.Version [4,0] Nothing [] 0) (Portage.mkPackageName "virtual" "mysql") [])-      , ("pq", Portage.LaterVersionOf (Portage.Version [7] Nothing [] 0) (Portage.mkPackageName "virtual" "postgresql-base") [])+      , ("pq", Portage.LaterVersionOf (Portage.Version [7] Nothing [] 0) (Portage.mkPackageName "dev-db" "postgresql-base") [])       , ("ev", Portage.AnyVersionOf (Portage.mkPackageName "dev-libs" "libev") [])       , ("expat", Portage.AnyVersionOf (Portage.mkPackageName "dev-libs" "expat") [])       , ("curl", Portage.AnyVersionOf (Portage.mkPackageName "net-misc" "curl") [])       , ("xml2", Portage.AnyVersionOf (Portage.mkPackageName "dev-libs" "libxml2") [])       , ("mecab", Portage.AnyVersionOf (Portage.mkPackageName "app-text" "mecab") [])+      , ("zmq", Portage.AnyVersionOf (Portage.mkPackageName "net-libs" "zeromq") [])       ]  ---------------------------------------------------------------@@ -236,6 +258,7 @@   [ ("happy", Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "happy") [])   , ("alex", Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "alex") [])   , ("c2hs", Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "c2hs") [])+  , ("cabal-install", Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "cabal-install") [])   , ("gtk2hsTypeGen",       Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "gtk2hs-buildtools") [])   , ("gtk2hsHookGenerator", Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "gtk2hs-buildtools") [])   , ("gtk2hsC2hs",          Portage.AnyVersionOf (Portage.mkPackageName "dev-haskell" "gtk2hs-buildtools") [])@@ -269,20 +292,20 @@ resolvePkgConfig :: Portage.Overlay -> Cabal.Dependency -> Maybe Portage.Dependency resolvePkgConfig overlay (Cabal.Dependency (Cabal.PackageName pn) _cabalVersion) = do   (cat,portname) <- lookup pn table-  return . head $ (C2E.convertDependency overlay (Portage.Category cat) (Cabal.Dependency (Cabal.PackageName portname) _cabalVersion))+  return $ Portage.AnyVersionOf (Portage.mkPackageName cat portname) []  table :: [(String, (String, String))] table =   [("gconf-2.0",    ("gnome-base", "gconf")) -  ,("gio-2.0",                ("dev-libs", "glib"))-  ,("gio-unix-2.0",           ("dev-libs", "glib"))-  ,("glib-2.0",               ("dev-libs", "glib"))-  ,("gmodule-2.0",            ("dev-libs", "glib"))-  ,("gmodule-export-2.0",     ("dev-libs", "glib"))-  ,("gmodule-no-export-2.0",  ("dev-libs", "glib"))-  ,("gobject-2.0",            ("dev-libs", "glib"))-  ,("gthread-2.0",            ("dev-libs", "glib")) -- should be slot 2+  ,("gio-2.0",                ("dev-libs", "glib:2"))+  ,("gio-unix-2.0",           ("dev-libs", "glib:2"))+  ,("glib-2.0",               ("dev-libs", "glib:2"))+  ,("gmodule-2.0",            ("dev-libs", "glib:2"))+  ,("gmodule-export-2.0",     ("dev-libs", "glib:2"))+  ,("gmodule-no-export-2.0",  ("dev-libs", "glib:2"))+  ,("gobject-2.0",            ("dev-libs", "glib:2"))+  ,("gthread-2.0",            ("dev-libs", "glib:2"))    ,("gtk+-2.0",            ("x11-libs", "gtk+")) -- should be slot 2   ,("gdk-2.0",             ("x11-libs", "gtk+"))@@ -331,5 +354,6 @@    ,("curl",                        ("net-misc", "curl"))   ,("libxml2",                     ("dev-libs", "libxml2"))+  ,("libgsasl",                    ("virtual", "gsasl"))    ]
Portage/Dependency.hs view
@@ -1,6 +1,7 @@ module Portage.Dependency (   Dependency(..),   simplify_deps,+  simplifyUseDeps,   addDepUseFlag   ) where @@ -13,7 +14,7 @@ import qualified Text.PrettyPrint as Disp import Text.PrettyPrint ( (<>), hsep ) -import Data.Maybe ( fromJust, catMaybes )+import Data.Maybe ( fromJust, catMaybes, mapMaybe ) import Data.List ( nub, groupBy, partition, sortBy ) import Data.Ord           (comparing) @@ -23,10 +24,10 @@                 | EarlierVersionOf   Version PackageName [UseFlag]  -- <package-version                 | OrLaterVersionOf   Version PackageName [UseFlag]  -- >=package-version                 | OrEarlierVersionOf Version PackageName [UseFlag]  -- <=package-version-                | DependEither [[Dependency]]           -- || ( depend_group1 ..depend_groupN )-                | DependIfUse  UseFlag    Dependency   -- use? ( depend )+                | DependEither [Dependency]                         -- || ( depend1 depend2 ... )+                | DependIfUse  UseFlag    Dependency                -- use? ( depend )                 | ThisMajorOf        Version PackageName [UseFlag]  -- =package-version*-                | AllOf        [Dependency]                -- ( package-version* )+                | AllOf        [Dependency]                         -- ( depend1 depend2 ... )     deriving (Eq,Show)  instance Text Dependency where@@ -37,21 +38,23 @@  showDepend :: Dependency -> Disp.Doc showDepend (AnyVersionOf         p u) = disp p <> dispUses u -showDepend (ThisVersionOf      v p u) = Disp.char '~' <> disp p <-> disp v { versionRevision = 0 }<>dispUses u+showDepend (ThisVersionOf      v p u) = Disp.char '~' <> disp p <-> disp v { versionRevision = 0 } <> dispUses u showDepend (LaterVersionOf     v p u) = Disp.char '>' <> disp p <-> disp v <> dispUses u showDepend (EarlierVersionOf   v p u) = Disp.char '<' <> disp p <-> disp v <> dispUses u showDepend (OrLaterVersionOf   v p u) = Disp.text ">=" <> disp p <-> disp v <> dispUses u showDepend (OrEarlierVersionOf v p u) = Disp.text "<=" <> disp p <-> disp v <> dispUses u-showDepend (DependEither       dep_groups0)-              = Disp.text "|| " <> spaceParens dep_groups-  where dep_groups = map (spaceParens . map disp) dep_groups0-        spaceParens ds = Disp.parens (Disp.space <> Disp.hsep ds <> Disp.space)-showDepend (DependIfUse        useflag dep@(DependEither _))-              = disp useflag <> Disp.text "? " <> disp dep -showDepend (DependIfUse        useflag dep)-              = disp useflag <> Disp.text "? " <>  Disp.parens (disp dep)+showDepend (DependEither       dp ) = Disp.text "|| ( " <> hsep (map showDepend dp) <> Disp.text " )"+showDepend (DependIfUse        useflag dep) = disp useflag <> Disp.text "? " <> pp_deps dep+    where -- special case to avoid double braces: test? ( ( ) )+          pp_deps (AllOf _) =                               disp dep+          pp_deps         _ = Disp.parens (Disp.text " " <> disp dep <> Disp.text " ") showDepend (ThisMajorOf        v p u) = Disp.char '=' <> disp p <-> disp v <> Disp.char '*' <> dispUses u-showDepend (AllOf              dp ) = Disp.text "( " <> hsep (map showDepend dp) <> Disp.text " )"+showDepend (AllOf []) = Disp.empty+showDepend (AllOf              (d:dp) ) =+    Disp.text "( " <> showDepend d <> line+    <> Disp.hcat (map (\x -> Disp.text "\t\t\t" <> (showDepend x) <> line) dp)+    <> Disp.text "\t\t)"+    where line = Disp.char '\n'  {- Here goes code for dependencies simplification -} @@ -148,6 +151,7 @@           cmpMaybe _         _         = False           -- getPackage :: Dependency -> Maybe PackageName+getPackage (AllOf _dependency) = Nothing getPackage (AnyVersionOf package _uses) = Just package getPackage (ThisVersionOf      _version package _uses) = Just package getPackage (LaterVersionOf     _version package _uses) = Just package@@ -159,6 +163,7 @@ getPackage (ThisMajorOf        _version package _uses) = Just package  getUses  :: Dependency -> Maybe [UseFlag]+getUses (AllOf _d) = Nothing getUses (AnyVersionOf _p u) = Just u getUses (ThisVersionOf _v _p u) = Just u getUses (LaterVersionOf _v _p u) = Just u@@ -175,6 +180,7 @@  -- addDepUseFlag :: Dependency -> UseFlag -> Dependency+addDepUseFlag (AllOf d) n = AllOf $ map (flip addDepUseFlag n) d addDepUseFlag (AnyVersionOf p u) n = AnyVersionOf p (n:u) addDepUseFlag (ThisVersionOf v p u) n = ThisVersionOf v p (n:u) addDepUseFlag (LaterVersionOf v p u) n = LaterVersionOf v p (n:u)@@ -182,5 +188,32 @@ addDepUseFlag (OrLaterVersionOf v p u) n = OrLaterVersionOf v p (n:u) addDepUseFlag (OrEarlierVersionOf v p u) n = OrEarlierVersionOf v p (n:u) addDepUseFlag (ThisMajorOf v p u) n = ThisMajorOf v p (n:u)-addDepUseFlag (DependEither d) n = DependEither $ map (\d' -> map (flip addDepUseFlag n) d') d+addDepUseFlag (DependEither d) n = DependEither $ map (flip addDepUseFlag n) d addDepUseFlag (DependIfUse u d) n = DependIfUse u (addDepUseFlag d n)++--+-- | remove all Use dependencies that overlap with normal dependencies+simplifyUseDeps :: [Dependency]         -- list where use deps is taken+                    -> [Dependency]     -- list where common deps is taken+                    -> [Dependency]     -- result deps+simplifyUseDeps ds cs =+    let (u,o) = partition isUseDep ds+        c = mapMaybe getPackage cs+    in (mapMaybe (intersectD c) u)++o++intersectD :: [PackageName] -> Dependency -> Maybe Dependency+intersectD fs (DependIfUse u d) = intersectD fs d >>= Just . DependIfUse u+intersectD fs (DependEither ds) =+    let ds' = mapMaybe (intersectD fs) ds+    in if null ds' then Nothing else Just (DependEither ds')+intersectD fs (AllOf ds) =+    let ds' = mapMaybe (intersectD fs) ds+    in if null ds' then Nothing else Just (AllOf ds')+intersectD fs x =+    let pkg = fromJust $ getPackage x -- this is unsafe but will save from error later+    in if any (==pkg) fs then Nothing else Just x++isUseDep :: Dependency -> Bool+isUseDep (DependIfUse _ _) = True+isUseDep _ = False+--
Portage/EBuild.hs view
@@ -78,11 +78,11 @@ showEBuild ebuild =   ss "# Copyright 1999-2012 Gentoo Foundation". nl.   ss "# Distributed under the terms of the GNU General Public License v2". nl.-  ss "# $Header:  $". nl.-  nl.-  ss ("# ebuild generated by hackport " ++ hackportVersion ebuild). nl.+  ss "# $Header: $". nl.   nl.   ss "EAPI=4". nl.+  nl.+  ss ("# ebuild generated by hackport " ++ hackportVersion ebuild). nl.   nl.   ss "CABAL_FEATURES=". quote' (sepBy " " $ features ebuild). nl.   ss "inherit haskell-cabal". nl.
Portage/GHCCore.hs view
@@ -139,8 +139,7 @@   , p "old-time" [1,0,0,6]   , p "pretty" [1,0,1,2]   , p "process" [1,0,1,4]-  , p "random" [1,0,0,3]-  , p "syb" [0,2,2] -- not distributed with ghc-7, but ghc-7 PDEPENDs on it+--   , p "random" [1,0,0,3] -- will not be shipped starting from ghc-7.2   , p "template-haskell" [2,5,0,0] --  , p "time" [1,2,0,3] package is upgradeable   , p "unix" [2,4,1,0]@@ -166,8 +165,8 @@   , p "old-time" [1,0,0,5]   , p "pretty" [1,0,1,1]   , p "process" [1,0,1,3]-  , p "random" [1,0,0,2]-  , p "syb" [0,1,0,2]+--  , p "random" [1,0,0,2] -- will not be shipped starting from ghc-7.2+--  , p "syb" [0,1,0,2] -- not distributed with ghc-7   , p "template-haskell" [2,4,0,1] --  , p "time" [1,1,4] package is upgradeable   , p "unix" [2,4,0,2]@@ -193,8 +192,8 @@   , p "old-time" [1,0,0,4]   , p "pretty" [1,0,1,1]   , p "process" [1,0,1,2]-  , p "random" [1,0,0,2]-  , p "syb" [0,1,0,2]+--  , p "random" [1,0,0,2] -- will not be shipped starting from ghc-7.2+--  , p "syb" [0,1,0,2] -- not distributed with ghc-7   , p "template-haskell" [2,4,0,1] --  , p "time" [1,1,4] package is upgradeable   , p "unix" [2,4,0,1]@@ -220,8 +219,8 @@   , p "old-time" [1,0,0,3]   , p "pretty" [1,0,1,1]   , p "process" [1,0,1,2]-  , p "random" [1,0,0,2]-  , p "syb" [0,1,0,2]+--  , p "random" [1,0,0,2] -- will not be shipped starting from ghc-7.2+--  , p "syb" [0,1,0,2] -- not distributed with ghc-7   , p "template-haskell" [2,4,0,0] --  , p "time" [1,1,4] package is upgradeable   , p "unix" [2,4,0,0]@@ -246,8 +245,8 @@   , p "packedstring" [0,1,0,1]   , p "pretty" [1,0,1,0]   , p "process" [1,0,1,1]-  , p "random" [1,0,0,1]-  , p "syb" [0,1,0,1]+--  , p "random" [1,0,0,1] -- will not be shipped starting from ghc-7.2+--  , p "syb" [0,1,0,1] -- not distributed with ghc-7   , p "template-haskell" [2,3,0,1] --  , p "time" [1,1,4] package is upgradeable   , p "unix" [2,3,2,0]@@ -271,8 +270,8 @@   , p "packedstring" [0,1,0,1]   , p "pretty" [1,0,1,0]   , p "process" [1,0,1,0]-  , p "random" [1,0,0,1]-  , p "syb" [0,1,0,0]+--  , p "random" [1,0,0,1] -- will not be shipped starting from ghc-7.2+--  , p "syb" [0,1,0,0] -- not distributed with ghc-7   , p "template-haskell" [2,3,0,0]   , p "unix" [2,3,1,0]   ]@@ -293,7 +292,7 @@   , p "packedstring" [0,1,0,0]   , p "pretty" [1,0,0,0]   , p "process" [1,0,0,0]-  , p "random" [1,0,0,0]+--  , p "random" [1,0,0,0] -- will not be shipped starting from ghc-7.2 --  , p "readline" [1,0,1,0]   , p "template-haskell" [2,2,0,0]   , p "unix" [2,3,0,0]
Portage/Version.hs view
@@ -14,6 +14,7 @@     Suffix(..),     fromCabalVersion,     toCabalVersion,+    is_live   ) where  import qualified Distribution.Version as Cabal@@ -31,6 +32,13 @@                        , versionRevision :: Int           -- revision, 0 means none                        }   deriving (Eq, Ord, Show, Read)++-- foo-9999* is treated as live ebuild+is_live :: Version -> Bool+is_live v =+    case versionNumber v of+        [n] | n >= 9999 && (all (== '9') . show) n -> True+        _                                          -> False  data Suffix = Alpha Int | Beta Int | Pre Int | RC Int | P Int   deriving (Eq, Ord, Show, Read)
README.rst view
@@ -121,10 +121,10 @@                     - the ebuilds differ, or                     - the overlay has a more recent version -    'hackport make-ebuild <path/to/package.cabal>'-        Generates standalone .ebuild file from .cabal spec and stores result in same-        directory.-        Option is useful for packages not-on-hackage and for debug purposes.+    'hackport make-ebuild <category> <path/to/package.cabal>'+        Generates standalone .ebuild file from .cabal spec and stores result+        to the overlay into <category>/<package>+        Option is useful for not-on-hackage packages and for debug purposes.  ------- 
Status.hs view
@@ -8,7 +8,7 @@  import AnsiColor -import qualified Portage.Version as V (versionNumber)+import qualified Portage.Version as V (is_live)  import Portage.Overlay import Portage.PackageId@@ -176,10 +176,10 @@                         case st of                             HackageOnly _ -> False                             _ -> True-        -- treat versionNumber=[9999*] as oldest version not avoid masking hackage releases-        mangle_live_versions v = case V.versionNumber v of-            [n] | n >= 9999 && (all (== '9') . show) n -> v {versionNumber=[-1]}-            _                                          -> v+        -- treat live as oldest version not avoid masking hackage releases+        mangle_live_versions v+            | V.is_live v = v {versionNumber=[-1]}+            | otherwise   = v         latestVersion = List.maximumBy (compare `on` mangle_live_versions . pkgVersion . ebuildId . fromStatus) sts     in case latestVersion of             HackageOnly _ | not (null inEbuilds) -> Just sts
hackport.cabal view
@@ -1,5 +1,5 @@ Name:           hackport-Version:	0.2.17+Version:	0.2.18 License:	GPL License-file:   LICENSE Author:		Henning Günther, Duncan Coutts, Lennart Kolmodin@@ -122,3 +122,21 @@   ghc-options: -Wall   other-modules:     Portage.GHCCore++Test-Suite test-resolve-category+  Type:                 exitcode-stdio-1.0+  Default-Language:     Haskell98+  Main-Is:              tests/resolveCat.hs+  Hs-Source-Dirs:       ., cabal/cabal, cabal/cabal-install+  Build-Depends:        base >= 3 && < 5,+                        bytestring,+                        containers,+                        directory,+                        extensible-exceptions,+                        filepath,+                        HUnit,+                        mtl,+                        pretty,+                        process,+                        unix,+                        xml
tests/resolveCat.hs view
@@ -1,11 +1,14 @@-import Test.HUnit+import Control.Monad (when) +import qualified Distribution.Package as Cabal+ import qualified Portage.Overlay as Portage import qualified Portage.Resolve as Portage import qualified Portage.PackageId as Portage import qualified Portage.Host as Portage -import qualified Distribution.Package as Cabal+import System.Exit (exitFailure)+import Test.HUnit  tests = TestList [ TestLabel "resolve cabal" (test_resolveCategory "dev-haskell" "cabal")                  , TestLabel "resolve ghc" (test_resolveCategory "dev-lang" "ghc")@@ -20,4 +23,9 @@       expected = Just (Portage.PackageName (Portage.Category cat) cabal)   assertEqual ("expecting to find package " ++ pkg) hits expected  -main = runTestTT tests+something_broke :: Counts -> Bool+something_broke stats = errors stats + failures stats > 0++main =+    do stats <- runTestTT tests+       when (something_broke stats) exitFailure