on master help sign in
Allow containers-unicode-symbols #58
26e3408Michael Snoyman
Stackage/Config.hs+2−4
@@ -140,10 +140,8 @@ defaultStablePackages = unPackageMap $ execWriter $ do
140 mapM_ (add "Felipe Lessa <felipe.lessa@gmail.com>") $ words
140 mapM_ (add "Felipe Lessa <felipe.lessa@gmail.com>") $ words
141 "esqueleto fb fb-persistent yesod-fb yesod-auth-fb"
141 "esqueleto fb fb-persistent yesod-fb yesod-auth-fb"
142
142
143− -- Requires containers 0.5
144− -- https://github.com/fpco/stackage/issues/58
145− -- mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
143+ mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
146− -- "base-unicode-symbols containers-unicode-symbols"
144+ "base-unicode-symbols containers-unicode-symbols"
147
145
148 -- https://github.com/fpco/stackage/issues/46
146 -- https://github.com/fpco/stackage/issues/46
149 addRange "Michael Snoyman" "QuickCheck" "< 2.6"
147 addRange "Michael Snoyman" "QuickCheck" "< 2.6"
Stackage/InstallInfo.hs+1−1
@@ -46,7 +46,7 @@ getInstallInfo settings = do
46 let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core
46 let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core
47
47
48 putStrLn "Loading package database"
48 putStrLn "Loading package database"
49− pdb <- loadPackageDB settings totalCore allPackages
49+ pdb <- loadPackageDB settings coreMap totalCore allPackages
50
50
51 putStrLn "Narrowing package database"
51 putStrLn "Narrowing package database"
52 final <- narrowPackageDB settings totalCore pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages
52 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
54--
54--
55-- * For other packages, select the maximum version number.
55-- * For other packages, select the maximum version number.
56loadPackageDB :: SelectSettings
56loadPackageDB :: SelectSettings
57+ -> Map PackageName Version -- ^ core packages from HP file
57− -> Set PackageName -- ^ core packages
58+ -> Set PackageName -- ^ all core packages, including extras
58 -> Map PackageName (VersionRange, Maintainer) -- ^ additional deps
59 -> Map PackageName (VersionRange, Maintainer) -- ^ additional deps
59 -> IO PackageDB
60 -> IO PackageDB
60−loadPackageDB settings core deps = do
61+loadPackageDB settings coreMap core deps = do
61 tarName <- getTarballName
62 tarName <- getTarballName
62 lbs <- L.readFile tarName
63 lbs <- L.readFile tarName
63 addEntries mempty $ Tar.read lbs
64 addEntries mempty $ Tar.read lbs
@@ -139,7 +140,7 @@ loadPackageDB settings core deps = do
139 checkCond' (CAnd c1 c2) = checkCond' c1 && checkCond' c2
140 checkCond' (CAnd c1 c2) = checkCond' c1 && checkCond' c2
140
141
141 flags' = map flagName (filter flagDefault $ genPackageFlags gpd) ++
142 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)
143
144
144-- | Attempt to grab the Github username from a homepage.
145-- | Attempt to grab the Github username from a homepage.
145parseGithubUserHP :: String -> Maybe String
146parseGithubUserHP :: String -> Maybe String
Stackage/Select.hs+9−1
@@ -8,6 +8,8 @@ import qualified Data.Map as Map
8import Data.Maybe (mapMaybe)
8import Data.Maybe (mapMaybe)
9import Data.Set (empty)
9import Data.Set (empty)
10import qualified Data.Set as Set
10import qualified Data.Set as Set
11+import Distribution.Text (simpleParse)
12+import Distribution.Version (withinRange)
11import Prelude hiding (pi)
13import Prelude hiding (pi)
12import Stackage.Config
14import Stackage.Config
13import Stackage.InstallInfo
15import Stackage.InstallInfo
@@ -22,7 +24,13 @@ defaultSelectSettings = SelectSettings
22 , haskellPlatformCabal = "haskell-platform/haskell-platform.cabal"
24 , haskellPlatformCabal = "haskell-platform/haskell-platform.cabal"
23 , requireHaskellPlatform = True
25 , requireHaskellPlatform = True
24 , excludedPackages = empty
26 , excludedPackages = empty
27+ , flags = \coreMap ->
25− , flags = Set.fromList $ words "blaze_html_0_5"
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)
26 , disabledFlags = Set.fromList $ words "bytestring-in-base"
34 , disabledFlags = Set.fromList $ words "bytestring-in-base"
27 , allowedPackage = const $ Right ()
35 , allowedPackage = const $ Right ()
28 , useGlobalDatabase = False
36 , useGlobalDatabase = False
Stackage/Types.hs+3−2
@@ -91,8 +91,9 @@ newtype Maintainer = Maintainer { unMaintainer :: String }
91
91
92data SelectSettings = SelectSettings
92data SelectSettings = SelectSettings
93 { haskellPlatformCabal :: FilePath
93 { haskellPlatformCabal :: FilePath
94− , flags :: Set String
94+ , flags :: Map PackageName Version -> Set String
95− -- ^ Compile flags which should be turned on.
95+ -- ^ Compile flags which should be turned on. Takes a Map providing the
96+ -- core packages so that flags can be set appropriately.
96 , disabledFlags :: Set String
97 , disabledFlags :: Set String
97 -- ^ Compile flags which should always be disabled.
98 -- ^ Compile flags which should always be disabled.
98 , extraCore :: Set PackageName
99 , extraCore :: Set PackageName