on master help sign in
Allow containers-unicode-symbols #58

We need to be able to select which flags to pass based on the selected core packages, so that we can pass containers-old.

commit26e340819632b99b905be7818ff83f16d5c3292e authorMichael Snoyman <michael@snoyman.com> dateWed 10 Apr 2013, 09:24 (14 years ago) parentf920646
5 files changed+19−11
Stackage/Config.hs+2−4 Stackage/InstallInfo.hs+1−1 Stackage/LoadDatabase.hs+4−3 Stackage/Select.hs+9−1 Stackage/Types.hs+3−2
Stackage/Config.hs+2−4
@@ -140,10 +140,8 @@ defaultStablePackages = unPackageMap $ execWriter $ do
140140 mapM_ (add "Felipe Lessa <felipe.lessa@gmail.com>") $ words
141141 "esqueleto fb fb-persistent yesod-fb yesod-auth-fb"
142142
143− -- Requires containers 0.5
144− -- https://github.com/fpco/stackage/issues/58
145− -- mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
146− -- "base-unicode-symbols containers-unicode-symbols"
143+ mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
144+ "base-unicode-symbols containers-unicode-symbols"
147145
148146 -- https://github.com/fpco/stackage/issues/46
149147 addRange "Michael Snoyman" "QuickCheck" "< 2.6"
Stackage/InstallInfo.hs+1−1
@@ -46,7 +46,7 @@ getInstallInfo settings = do
4646 let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core
4747
4848 putStrLn "Loading package database"
49− pdb <- loadPackageDB settings totalCore allPackages
49+ pdb <- loadPackageDB settings coreMap totalCore allPackages
5050
5151 putStrLn "Narrowing package database"
5252 final <- narrowPackageDB settings totalCore pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages
Stackage/LoadDatabase.hs+4−3
@@ -54,10 +54,11 @@ import Stackage.Util
5454--
5555-- * For other packages, select the maximum version number.
5656loadPackageDB :: SelectSettings
57− -> Set PackageName -- ^ core packages
57+ -> Map PackageName Version -- ^ core packages from HP file
58+ -> Set PackageName -- ^ all core packages, including extras
5859 -> Map PackageName (VersionRange, Maintainer) -- ^ additional deps
5960 -> IO PackageDB
60−loadPackageDB settings core deps = do
61+loadPackageDB settings coreMap core deps = do
6162 tarName <- getTarballName
6263 lbs <- L.readFile tarName
6364 addEntries mempty $ Tar.read lbs
@@ -139,7 +140,7 @@ loadPackageDB settings core deps = do
139140 checkCond' (CAnd c1 c2) = checkCond' c1 && checkCond' c2
140141
141142 flags' = map flagName (filter flagDefault $ genPackageFlags gpd) ++
142− (map FlagName $ Set.toList $ Stackage.Types.flags settings)
143+ (map FlagName $ Set.toList $ Stackage.Types.flags settings coreMap)
143144
144145-- | Attempt to grab the Github username from a homepage.
145146parseGithubUserHP :: String -> Maybe String
Stackage/Select.hs+9−1
@@ -8,6 +8,8 @@ import qualified Data.Map as Map
88import Data.Maybe (mapMaybe)
99import Data.Set (empty)
1010import qualified Data.Set as Set
11+import Distribution.Text (simpleParse)
12+import Distribution.Version (withinRange)
1113import Prelude hiding (pi)
1214import Stackage.Config
1315import Stackage.InstallInfo
@@ -22,7 +24,13 @@ defaultSelectSettings = SelectSettings
2224 , haskellPlatformCabal = "haskell-platform/haskell-platform.cabal"
2325 , requireHaskellPlatform = True
2426 , excludedPackages = empty
25− , flags = Set.fromList $ words "blaze_html_0_5"
27+ , flags = \coreMap ->
28+ Set.fromList (words "blaze_html_0_5") `Set.union`
29+ -- Support for containers-unicode-symbols
30+ (case Map.lookup (PackageName "containers") coreMap of
31+ Just v | Just range <- simpleParse "< 0.5", v `withinRange` range
32+ -> Set.singleton "containers-old"
33+ _ -> Set.empty)
2634 , disabledFlags = Set.fromList $ words "bytestring-in-base"
2735 , allowedPackage = const $ Right ()
2836 , useGlobalDatabase = False
Stackage/Types.hs+3−2
@@ -91,8 +91,9 @@ newtype Maintainer = Maintainer { unMaintainer :: String }
9191
9292data SelectSettings = SelectSettings
9393 { haskellPlatformCabal :: FilePath
94− , flags :: Set String
95− -- ^ Compile flags which should be turned on.
94+ , flags :: Map PackageName Version -> Set String
95+ -- ^ Compile flags which should be turned on. Takes a Map providing the
96+ -- core packages so that flags can be set appropriately.
9697 , disabledFlags :: Set String
9798 -- ^ Compile flags which should always be disabled.
9899 , extraCore :: Set PackageName