git.iko.soy/typeable/stackage2nix
on master help sign in
Upd Stackage lts
commitcc865d6b188010c9757a45f43903f5924743d0d6 authorDmitry Bushev <bushevdv@gmail.com> dateTue 19 Dec 2017, 23:26 (9 years ago) parent39774d0
7 files changed+25−16
.gitignore+1 src/Distribution/Nixpkgs/Haskell/FromStack.hs+1−3 src/Distribution/Nixpkgs/Haskell/FromStack/Package.hs+13−5 src/Distribution/Nixpkgs/Haskell/Stack.hs+1−2 src/Runner.hs+7−4 stack-ghc-822.yaml+1−1 stack.yaml+1−1
.gitignore+1
@@ -1,3 +1,4 @@
11.stack-work
22Paths_stackage2nix.hs
33/*.nix
4+/result*
src/Distribution/Nixpkgs/Haskell/FromStack.hs+1−3
@@ -27,8 +27,7 @@ data PackageSetConfig = PackageSetConfig
2727
2828data PackageConfig = PackageConfig
2929 { enableCheck :: Bool
30− , enableHaddock :: Bool
31− , enableBenchmark :: Bool }
30+ , enableHaddock :: Bool }
3231
3332removeTests :: GenericPackageDescription -> GenericPackageDescription
3433removeTests gd = gd { condTestSuites = [] }
@@ -93,4 +92,3 @@ finalizePackage pkg pconf drv = drv
9392 & src .~ pkgSource pkg
9493 & doCheck &&~ enableCheck pconf
9594 & runHaddock &&~ enableHaddock pconf
96− & benchmarkDepends %~ if enableBenchmark pconf then id else const mempty
src/Distribution/Nixpkgs/Haskell/FromStack/Package.hs+13−5
@@ -22,10 +22,12 @@ import qualified Data.Map as Map
2222import qualified Data.Set as Set
2323
2424data Node = Node
25− { _nodeDerivation :: Derivation
26− , _nodeTestDepends :: Set.Set String
27− , _nodeBenchmarkDepends :: Set.Set String
28− , _nodeOtherDepends :: Set.Set String }
25+ { _nodeDerivation :: Derivation
26+ , _nodeTestDepends :: Set.Set String
27+ , _nodeBenchmarkDepends :: Set.Set String
28+ , _nodeExecutableDepends :: Set.Set String
29+ , _nodeSetupDepends :: Set.Set String
30+ , _nodeOtherDepends :: Set.Set String }
2931
3032makeLenses ''Node
3133
@@ -43,6 +45,8 @@ mkNode _nodeDerivation = Node{..}
4345 $ view (s . (haskell <> tool)) _nodeDerivation
4446 _nodeTestDepends = haskellDependencies testDepends
4547 _nodeBenchmarkDepends = haskellDependencies benchmarkDepends
48+ _nodeExecutableDepends = haskellDependencies executableDepends
49+ _nodeSetupDepends = haskellDependencies setupDepends
4650 _nodeOtherDepends = haskellDependencies (executableDepends <> libraryDepends)
4751
4852nodeName :: Node -> String
@@ -52,7 +56,11 @@ nodeCycleDepends :: Node -> Set.Set String
5256nodeCycleDepends = _nodeTestDepends <> _nodeOtherDepends
5357
5458nodeDepends :: Node -> Set.Set String
55−nodeDepends = _nodeTestDepends <> _nodeOtherDepends <> _nodeBenchmarkDepends
59+nodeDepends = _nodeTestDepends
60+ <> _nodeOtherDepends
61+ <> _nodeBenchmarkDepends
62+ <> _nodeExecutableDepends
63+ <> _nodeSetupDepends
5664
5765findCycles :: [Node] -> [[Node]]
5866findCycles nodes = mapMaybe cyclic $
src/Distribution/Nixpkgs/Haskell/Stack.hs+1−2
@@ -97,8 +97,7 @@ packageDerivation conf optHackageDb stackPackage = do
9797 isExtraDep = stackPackage ^. spExtraDep
9898 pconf = PackageConfig
9999 { enableCheck = if isExtraDep then conf ^. spcDoCheckStackage else conf ^. spcDoCheckPackages
100− , enableHaddock = if isExtraDep then conf ^. spcDoHaddockStackage else conf ^. spcDoHaddockPackages
101− , enableBenchmark = not isExtraDep }
100+ , enableHaddock = if isExtraDep then conf ^. spcDoHaddockStackage else conf ^. spcDoHaddockPackages }
102101 return $ finalizePackage pkg pconf drv
103102
104103genericPackageDerivation
src/Runner.hs+7−4
@@ -56,12 +56,15 @@ run = do
5656 s2nPackageSetConfig = packageSetConfig { packageLoader = s2nLoader }
5757 s2nPackageConfig = PackageConfig
5858 { enableCheck = opts ^. optDoCheckStackage
59− , enableHaddock = opts ^. optDoHaddockStackage
60− , enableBenchmark = False }
59+ , enableHaddock = opts ^. optDoHaddockStackage }
6160 stackagePackages <- traverse (uncurry (buildNode s2nPackageSetConfig s2nPackageConfig))
6261 $ Map.toAscList (bpPackages buildPlan)
6362
6463 let
64+ -- Nixpkgs generic-builder puts hscolour on path for all libraries
65+ withHscolour pkgs =
66+ let hscolour = F.find ((== "hscolour") . nodeName) stackagePackages
67+ in maybe pkgs (`Set.insert` pkgs) hscolour
6568 -- Find all reachable dependencies in stackage set to stick into
6669 -- stackage packages file. This is performed on the full stackage
6770 -- set rather than pruning stackage packages beforehand because
@@ -71,6 +74,7 @@ run = do
7174 -- listed as well.
7275 nodes = case opts ^. optOutPackagesClosure of
7376 True -> Set.toAscList
77+ $ withHscolour
7478 $ flip reachableDependencies stackagePackages
7579 -- Originally reachable nodes are root nodes
7680 $ L.filter (\n -> mkPackageName (nodeName n) `Set.member` reachable) stackagePackages
@@ -88,8 +92,7 @@ run = do
8892 buildPlanFile = LH.buildPlanFilePath (opts ^. optLtsHaskellRepo) stackResolver
8993 packageConfig = PackageConfig
9094 { enableCheck = opts ^. optDoCheckStackage
91− , enableHaddock = opts ^. optDoHaddockStackage
92− , enableBenchmark = False }
95+ , enableHaddock = opts ^. optDoHaddockStackage }
9396 buildPlan <- LH.loadBuildPlan buildPlanFile
9497 packageSetConfig <- LH.buildPackageSetConfig
9598 (opts ^. optHackageDb)
stack-ghc-822.yaml+1−1
@@ -1 +1 @@
1−resolver: nightly-2017-12-08
1+resolver: lts-10.0
stack.yaml+1−1
@@ -1 +1 @@
1−stack-ghc-802.yaml
1+stack-ghc-822.yaml