@@ -1,3 +1,4 @@
1+{-# LANGUAGE CPP #-}
12module Distribution.Nixpkgs.Haskell.Stack where
23
34import Control.Lens
@@ -7,6 +8,7 @@ import Distribution.Compiler as Compiler
78import Distribution.Nixpkgs.Fetch
89import Distribution.Nixpkgs.Haskell.Derivation
910import Distribution.Nixpkgs.Haskell.FromCabal as FromCabal
11+import Distribution.Nixpkgs.Haskell.FromStack as FromStack
1012import Distribution.Nixpkgs.Haskell.PackageSourceSpec as PackageSourceSpec
1113import Distribution.PackageDescription as PackageDescription
1214import Distribution.System as System
@@ -41,9 +43,17 @@ getStackPackageFromDb
4143 -> StackPackage
4244 -> IO Package
4345getStackPackageFromDb optHackageDb stackPackage =
46+#if MIN_VERSION_cabal2nix(2,6,0)
4447 PackageSourceSpec.getPackage
48+ False
4549 (unHackageDb <$> optHackageDb)
50+ Nothing
4651 (stackLocationToSource (stackPackage ^. spLocation) (stackPackage ^. spDir))
52+#else
53+ PackageSourceSpec.getPackage
54+ (unHackageDb <$> optHackageDb)
55+ (stackLocationToSource (stackPackage ^. spLocation) (stackPackage ^. spDir))
56+#endif
4757
4858stackLocationToSource
4959 :: PackageLocation
@@ -83,17 +93,12 @@ packageDerivation conf optHackageDb stackPackage = do
8393 pkg <- getStackPackageFromDb optHackageDb stackPackage
8494 let
8595 drv = genericPackageDerivation conf pkg
86− & src .~ pkgSource pkg
87− -- TODO: remove after Nixos/Nixpkgs #27196 released
88− & enableSeparateDataOutput .~ False
8996 & subpath %~ flip fromMaybe (stackPackage ^. spDir)
90− return $ if stackPackage ^. spExtraDep
91− then drv
92− & doCheck &&~ conf ^. spcDoCheckStackage
93− & runHaddock &&~ conf ^. spcDoHaddockStackage
94− else drv
95− & doCheck &&~ conf ^. spcDoCheckPackages
96− & runHaddock &&~ conf ^. spcDoHaddockPackages
97+ isExtraDep = stackPackage ^. spExtraDep
98+ pconf = PackageConfig
99+ { enableCheck = if isExtraDep then conf ^. spcDoCheckStackage else conf ^. spcDoCheckPackages
100+ , enableHaddock = if isExtraDep then conf ^. spcDoHaddockStackage else conf ^. spcDoHaddockPackages }
101+ return $ finalizePackage pkg pconf drv
97102
98103genericPackageDerivation
99104 :: StackPackagesConfig