Remove warnings
This commit is contained in:
parent
c46a308724
commit
1bc90402b2
6 changed files with 9 additions and 90 deletions
|
@ -4,31 +4,17 @@ module Stackage.Build
|
|||
, BuildSettings (..)
|
||||
) where
|
||||
|
||||
import Control.Exception (assert)
|
||||
import Control.Monad (unless, when)
|
||||
import qualified Data.Map as Map
|
||||
import Data.Maybe (mapMaybe)
|
||||
import Data.Set (empty)
|
||||
import qualified Data.Set as Set
|
||||
import Distribution.Text (simpleParse)
|
||||
import Distribution.Version (withinRange)
|
||||
import Control.Monad (unless)
|
||||
import Prelude hiding (pi)
|
||||
import Stackage.CheckPlan
|
||||
import Stackage.Config
|
||||
import Stackage.InstallInfo
|
||||
import Stackage.Tarballs
|
||||
import Stackage.Test
|
||||
import Stackage.Types
|
||||
import Stackage.Util
|
||||
import System.Directory (canonicalizePath,
|
||||
createDirectoryIfMissing,
|
||||
doesDirectoryExist)
|
||||
import System.Exit (ExitCode (ExitSuccess), exitWith)
|
||||
import System.IO (IOMode (WriteMode), hPutStrLn,
|
||||
withBinaryFile)
|
||||
import System.Process (rawSystem, readProcess, runProcess,
|
||||
import System.Process (rawSystem, runProcess,
|
||||
waitForProcess)
|
||||
import Stackage.Select (select)
|
||||
import Stackage.CheckCabalVersion (checkCabalVersion)
|
||||
|
||||
defaultBuildSettings :: BuildSettings
|
||||
|
@ -74,10 +60,10 @@ build settings' bp = do
|
|||
]
|
||||
hPutStrLn handle ("cabal " ++ unwords (map (\s -> "'" ++ s ++ "'") args))
|
||||
runCabal args handle
|
||||
ec1 <- waitForProcess ph1
|
||||
unless (ec1 == ExitSuccess) $ do
|
||||
ec2 <- waitForProcess ph1
|
||||
unless (ec2 == ExitSuccess) $ do
|
||||
putStrLn "Building of build tools failed, please see build-tools.log"
|
||||
exitWith ec1
|
||||
exitWith ec2
|
||||
putStrLn "Build tools built"
|
||||
|
||||
ph <- withBinaryFile "build.log" WriteMode $ \handle -> do
|
||||
|
@ -96,33 +82,3 @@ build settings' bp = do
|
|||
unless (ec == ExitSuccess) $ do
|
||||
putStrLn "Build failed, please see build.log"
|
||||
exitWith ec
|
||||
|
||||
-- | Get all of the build tools required.
|
||||
iiBuildTools :: InstallInfo -> [String]
|
||||
iiBuildTools InstallInfo { iiPackageDB = PackageDB m, iiPackages = packages } =
|
||||
-- FIXME possible improvement: track the dependencies between the build
|
||||
-- tools themselves, and install them in the correct order.
|
||||
map unPackageName
|
||||
$ filter (flip Set.notMember coreTools)
|
||||
$ mapMaybe (flip Map.lookup buildToolMap)
|
||||
$ Set.toList
|
||||
$ Set.unions
|
||||
$ map piBuildTools
|
||||
$ Map.elems
|
||||
$ Map.filterWithKey isSelected m
|
||||
where
|
||||
unPackageName (PackageName pn) = pn
|
||||
isSelected name _ = name `Set.member` selected
|
||||
selected = Set.fromList $ Map.keys packages
|
||||
|
||||
-- Build tools shipped with GHC which we should not attempt to build
|
||||
-- ourselves.
|
||||
coreTools = Set.fromList $ map PackageName $ words "hsc2hs"
|
||||
|
||||
-- The map from build tool name to the package it comes from.
|
||||
buildToolMap = Map.unions $ map toBuildToolMap $ Map.toList m
|
||||
toBuildToolMap :: (PackageName, PackageInfo) -> Map Executable PackageName
|
||||
toBuildToolMap (pn, pi) = Map.unions
|
||||
$ map (flip Map.singleton pn)
|
||||
$ Set.toList
|
||||
$ piExecs pi
|
||||
|
|
|
@ -9,8 +9,6 @@ import Stackage.Types
|
|||
import qualified Data.Map as Map
|
||||
import qualified Data.Set as Set
|
||||
import Distribution.Text (simpleParse, display)
|
||||
import Distribution.Package (PackageName (..))
|
||||
import Control.Applicative ((<$>), (<*>))
|
||||
|
||||
readBuildPlan :: FilePath -> IO BuildPlan
|
||||
readBuildPlan fp = do
|
||||
|
@ -76,6 +74,7 @@ takeWord s =
|
|||
if null s'
|
||||
then Right (x', y)
|
||||
else Left $ "Unconsumed input in takeWord call"
|
||||
(_, []) -> Left "takeWord failed"
|
||||
|
||||
instance AsString SelectedPackageInfo where
|
||||
toString SelectedPackageInfo {..} = unwords
|
||||
|
|
|
@ -3,28 +3,10 @@ module Stackage.CheckCabalVersion
|
|||
) where
|
||||
|
||||
import Control.Exception (assert)
|
||||
import Control.Monad (unless, when)
|
||||
import qualified Data.Map as Map
|
||||
import Data.Maybe (mapMaybe)
|
||||
import Data.Set (empty)
|
||||
import qualified Data.Set as Set
|
||||
import Distribution.Text (simpleParse)
|
||||
import Distribution.Version (withinRange)
|
||||
import Prelude hiding (pi)
|
||||
import Stackage.Config
|
||||
import Stackage.InstallInfo
|
||||
import Stackage.Tarballs
|
||||
import Stackage.Test
|
||||
import Stackage.Types
|
||||
import Stackage.Util
|
||||
import System.Directory (canonicalizePath,
|
||||
createDirectoryIfMissing,
|
||||
doesDirectoryExist)
|
||||
import System.Exit (ExitCode (ExitSuccess), exitWith)
|
||||
import System.IO (IOMode (WriteMode), hPutStrLn,
|
||||
withBinaryFile)
|
||||
import System.Process (rawSystem, readProcess, runProcess,
|
||||
waitForProcess)
|
||||
import System.Process (readProcess)
|
||||
|
||||
checkCabalVersion :: IO String
|
||||
checkCabalVersion = do
|
||||
|
|
|
@ -4,7 +4,6 @@ module Stackage.InstallInfo
|
|||
, bpPackageList
|
||||
) where
|
||||
|
||||
import Control.Arrow ((&&&))
|
||||
import Control.Monad (forM_)
|
||||
import qualified Data.Map as Map
|
||||
import qualified Data.Set as Set
|
||||
|
|
|
@ -3,31 +3,15 @@ module Stackage.Select
|
|||
, defaultSelectSettings
|
||||
) where
|
||||
|
||||
import Control.Exception (assert)
|
||||
import Control.Monad (unless, when)
|
||||
import qualified Data.Map as Map
|
||||
import Data.Maybe (mapMaybe)
|
||||
import Data.Set (empty)
|
||||
import qualified Data.Set as Set
|
||||
import Distribution.Text (simpleParse)
|
||||
import Distribution.Version (withinRange)
|
||||
import Prelude hiding (pi)
|
||||
import Stackage.CheckPlan
|
||||
import Stackage.Config
|
||||
import Stackage.InstallInfo
|
||||
import Stackage.Tarballs
|
||||
import Stackage.Test
|
||||
import Stackage.Types
|
||||
import Stackage.Util
|
||||
import System.Directory (canonicalizePath,
|
||||
createDirectoryIfMissing,
|
||||
doesDirectoryExist)
|
||||
import System.Exit (ExitCode (ExitSuccess), exitWith)
|
||||
import System.IO (IOMode (WriteMode), hPutStrLn,
|
||||
withBinaryFile)
|
||||
import System.Process (rawSystem, readProcess, runProcess,
|
||||
waitForProcess)
|
||||
import Stackage.BuildPlan
|
||||
|
||||
defaultSelectSettings :: SelectSettings
|
||||
defaultSelectSettings = SelectSettings
|
||||
|
@ -66,7 +50,6 @@ iiBuildTools InstallInfo { iiPackageDB = PackageDB m, iiPackages = packages } =
|
|||
$ Map.elems
|
||||
$ Map.filterWithKey isSelected m
|
||||
where
|
||||
unPackageName (PackageName pn) = pn
|
||||
isSelected name _ = name `Set.member` selected
|
||||
selected = Set.fromList $ Map.keys packages
|
||||
|
||||
|
|
|
@ -20,8 +20,8 @@ import qualified Distribution.Package as P
|
|||
import qualified Distribution.PackageDescription as PD
|
||||
import Distribution.License (License (..))
|
||||
import System.Directory (canonicalizePath,
|
||||
createDirectoryIfMissing,
|
||||
doesDirectoryExist)
|
||||
createDirectoryIfMissing
|
||||
)
|
||||
|
||||
-- | Allow only packages with permissive licenses.
|
||||
allowPermissive :: [String] -- ^ list of explicitly allowed packages
|
||||
|
|
Loading…
Reference in a new issue