@@ -4,18 +4,19 @@ module Stackage.InstallInfo
44 , bpPackageList
55 ) where
66
7−import Control.Monad (forM_)
7+import Control.Monad (forM_, unless)
88import qualified Data.Map as Map
99import qualified Data.Set as Set
1010import Data.Version (showVersion)
1111import qualified Distribution.Text
1212import Distribution.Version (simplifyVersionRange, withinRange)
13+import Stackage.GhcPkg
1314import Stackage.HaskellPlatform
1415import Stackage.LoadDatabase
1516import Stackage.NarrowDatabase
1617import Stackage.Types
1718import Stackage.Util
18−import Stackage.GhcPkg
19+import System.Exit (exitFailure)
1920
2021dropExcluded :: SelectSettings
2122 -> Map PackageName (VersionRange, Maintainer)
@@ -42,17 +43,23 @@ getInstallInfo settings = do
4243 | requireHaskellPlatform settings = Map.union (stablePackages settings) $ identsToRanges (hplibs hp)
4344 | otherwise = stablePackages settings
4445 allPackages = dropExcluded settings allPackages'
46+ mapM_ print $ Map.keys allPackages
4547 let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core
4648
4749 putStrLn "Loading package database"
4850 pdb <- loadPackageDB settings coreMap totalCore allPackages
4951
5052 putStrLn "Narrowing package database"
51− final <- narrowPackageDB settings totalCore pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages
53+ (final, errs) <- narrowPackageDB settings totalCore pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages
5254
5355 putStrLn "Printing build plan to build-plan.log"
5456 writeFile "build-plan.log" $ unlines $ map showDep $ Map.toList final
5557
58+ unless (Set.null errs) $ do
59+ putStrLn "Build plan requires some disallowed packages"
60+ mapM_ putStrLn $ Set.toList errs
61+ exitFailure
62+
5663 putStrLn "Checking for bad versions"
5764 case checkBadVersions settings coreMap pdb final of
5865 badVersions