mirror of
https://github.com/commercialhaskell/stackage.git
synced 2026-01-11 23:08:30 +01:00
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.
This commit is contained in:
parent
f920646c6f
commit
26e3408196
@ -140,10 +140,8 @@ defaultStablePackages = unPackageMap $ execWriter $ do
|
||||
mapM_ (add "Felipe Lessa <felipe.lessa@gmail.com>") $ words
|
||||
"esqueleto fb fb-persistent yesod-fb yesod-auth-fb"
|
||||
|
||||
-- Requires containers 0.5
|
||||
-- https://github.com/fpco/stackage/issues/58
|
||||
-- mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
|
||||
-- "base-unicode-symbols containers-unicode-symbols"
|
||||
mapM_ (add "Alexander Altman <alexanderaltman@me.com>") $ words
|
||||
"base-unicode-symbols containers-unicode-symbols"
|
||||
|
||||
-- https://github.com/fpco/stackage/issues/46
|
||||
addRange "Michael Snoyman" "QuickCheck" "< 2.6"
|
||||
|
||||
@ -46,7 +46,7 @@ getInstallInfo settings = do
|
||||
let totalCore = extraCore settings `Set.union` Set.map (\(PackageIdentifier p _) -> p) core
|
||||
|
||||
putStrLn "Loading package database"
|
||||
pdb <- loadPackageDB settings totalCore allPackages
|
||||
pdb <- loadPackageDB settings coreMap totalCore allPackages
|
||||
|
||||
putStrLn "Narrowing package database"
|
||||
final <- narrowPackageDB settings totalCore pdb $ Set.fromList $ Map.toList $ Map.map snd $ allPackages
|
||||
|
||||
@ -54,10 +54,11 @@ import Stackage.Util
|
||||
--
|
||||
-- * For other packages, select the maximum version number.
|
||||
loadPackageDB :: SelectSettings
|
||||
-> Set PackageName -- ^ core packages
|
||||
-> Map PackageName Version -- ^ core packages from HP file
|
||||
-> Set PackageName -- ^ all core packages, including extras
|
||||
-> Map PackageName (VersionRange, Maintainer) -- ^ additional deps
|
||||
-> IO PackageDB
|
||||
loadPackageDB settings core deps = do
|
||||
loadPackageDB settings coreMap core deps = do
|
||||
tarName <- getTarballName
|
||||
lbs <- L.readFile tarName
|
||||
addEntries mempty $ Tar.read lbs
|
||||
@ -139,7 +140,7 @@ loadPackageDB settings core deps = do
|
||||
checkCond' (CAnd c1 c2) = checkCond' c1 && checkCond' c2
|
||||
|
||||
flags' = map flagName (filter flagDefault $ genPackageFlags gpd) ++
|
||||
(map FlagName $ Set.toList $ Stackage.Types.flags settings)
|
||||
(map FlagName $ Set.toList $ Stackage.Types.flags settings coreMap)
|
||||
|
||||
-- | Attempt to grab the Github username from a homepage.
|
||||
parseGithubUserHP :: String -> Maybe String
|
||||
|
||||
@ -8,6 +8,8 @@ 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
|
||||
@ -22,7 +24,13 @@ defaultSelectSettings = SelectSettings
|
||||
, haskellPlatformCabal = "haskell-platform/haskell-platform.cabal"
|
||||
, requireHaskellPlatform = True
|
||||
, excludedPackages = empty
|
||||
, flags = Set.fromList $ words "blaze_html_0_5"
|
||||
, flags = \coreMap ->
|
||||
Set.fromList (words "blaze_html_0_5") `Set.union`
|
||||
-- Support for containers-unicode-symbols
|
||||
(case Map.lookup (PackageName "containers") coreMap of
|
||||
Just v | Just range <- simpleParse "< 0.5", v `withinRange` range
|
||||
-> Set.singleton "containers-old"
|
||||
_ -> Set.empty)
|
||||
, disabledFlags = Set.fromList $ words "bytestring-in-base"
|
||||
, allowedPackage = const $ Right ()
|
||||
, useGlobalDatabase = False
|
||||
|
||||
@ -91,8 +91,9 @@ newtype Maintainer = Maintainer { unMaintainer :: String }
|
||||
|
||||
data SelectSettings = SelectSettings
|
||||
{ haskellPlatformCabal :: FilePath
|
||||
, flags :: Set String
|
||||
-- ^ Compile flags which should be turned on.
|
||||
, flags :: Map PackageName Version -> Set String
|
||||
-- ^ Compile flags which should be turned on. Takes a Map providing the
|
||||
-- core packages so that flags can be set appropriately.
|
||||
, disabledFlags :: Set String
|
||||
-- ^ Compile flags which should always be disabled.
|
||||
, extraCore :: Set PackageName
|
||||
|
||||
Loading…
Reference in New Issue
Block a user