diff --git a/Stackage/Build.hs b/Stackage/Build.hs index be1cb8b8..e6e34c84 100644 --- a/Stackage/Build.hs +++ b/Stackage/Build.hs @@ -28,6 +28,8 @@ defaultBuildSettings = BuildSettings , expectedFailures = defaultExpectedFailures , stablePackages = defaultStablePackages , extraArgs = ["-fnetwork23"] + , haskellPlatformCabal = "haskell-platform/haskell-platform.cabal" + , requireHaskellPlatform = True } build :: BuildSettings -> IO () diff --git a/Stackage/HaskellPlatform.hs b/Stackage/HaskellPlatform.hs index cc08ff60..bf25e539 100644 --- a/Stackage/HaskellPlatform.hs +++ b/Stackage/HaskellPlatform.hs @@ -11,8 +11,8 @@ import Data.Set (singleton) import Distribution.Text (simpleParse) import Stackage.Types -loadHaskellPlatform :: IO HaskellPlatform -loadHaskellPlatform = fmap parseHP $ readFile "haskell-platform/haskell-platform.cabal" +loadHaskellPlatform :: BuildSettings -> IO HaskellPlatform +loadHaskellPlatform = fmap parseHP . readFile . haskellPlatformCabal data HPLine = HPLPackage PackageIdentifier | HPLBeginCore diff --git a/Stackage/InstallInfo.hs b/Stackage/InstallInfo.hs index f7771b68..f7ccd9dd 100644 --- a/Stackage/InstallInfo.hs +++ b/Stackage/InstallInfo.hs @@ -15,8 +15,10 @@ import Data.Version (showVersion) getInstallInfo :: BuildSettings -> IO InstallInfo getInstallInfo settings = do - hp <- loadHaskellPlatform - let allPackages = Map.union (stablePackages settings) $ identsToRanges (hplibs hp) + hp <- loadHaskellPlatform settings + let allPackages + | requireHaskellPlatform settings = Map.union (stablePackages settings) $ identsToRanges (hplibs hp) + | otherwise = stablePackages settings let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) (hpcore hp) pdb <- loadPackageDB totalCore allPackages final <- narrowPackageDB pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages diff --git a/Stackage/Types.hs b/Stackage/Types.hs index ba8e80bb..df051413 100644 --- a/Stackage/Types.hs +++ b/Stackage/Types.hs @@ -61,4 +61,6 @@ data BuildSettings = BuildSettings , expectedFailures :: Set PackageName , stablePackages :: Map PackageName (VersionRange, Maintainer) , extraArgs :: [String] + , haskellPlatformCabal :: FilePath + , requireHaskellPlatform :: Bool }