git.iko.soy/typeable/stackage2nix
on master help sign in
Support hackage-db flag
2b92d5cDmitry Bushev
src/LtsHaskell.hs+10−9
@@ -48,15 +48,15 @@ getPackageFromRepo allCabalHashesPath mSha1Hash pkgId = do
48 source = DerivationSource "url" ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") "" tarballSHA256
48 source = DerivationSource "url" ("mirror://hackage/" ++ display pkgId ++ ".tar.gz") "" tarballSHA256
49 return $ Package source pkgDesc
49 return $ Package source pkgDesc
50
50
51−getPackageFromDb :: PackageIdentifier -> IO Package
51+getPackageFromDb :: Maybe HackageDb -> PackageIdentifier -> IO Package
52−getPackageFromDb pkgId =
52+getPackageFromDb mHackageDb pkgId =
53− getStackPackageFromDb Nothing
53+ getStackPackageFromDb mHackageDb
54 $ StackPackage (HackagePackage (T.pack $ Text.display pkgId)) True Nothing
54 $ StackPackage (HackagePackage (T.pack $ Text.display pkgId)) True Nothing
55
55
56−loadPackage :: FilePath -> Maybe SHA1Hash -> PackageIdentifier -> IO Package
56+loadPackage :: Maybe HackageDb -> FilePath -> Maybe SHA1Hash -> PackageIdentifier -> IO Package
57−loadPackage allCabalHashesPath mSha1Hash pkgId =
57+loadPackage mHackageDb allCabalHashesPath mSha1Hash pkgId =
58 getPackageFromRepo allCabalHashesPath mSha1Hash pkgId
58 getPackageFromRepo allCabalHashesPath mSha1Hash pkgId
59− `catchIOError` const (getPackageFromDb pkgId)
59+ `catchIOError` const (getPackageFromDb mHackageDb pkgId)
60
60
61ghcCompilerInfo :: Version -> CompilerInfo
61ghcCompilerInfo :: Version -> CompilerInfo
62ghcCompilerInfo v = CompilerInfo
62ghcCompilerInfo v = CompilerInfo
@@ -72,17 +72,18 @@ buildPlanContainsDependency packageVersions (Dependency depName versionRange) =
72 maybe False (`withinRange` versionRange) $ Map.lookup depName packageVersions
72 maybe False (`withinRange` versionRange) $ Map.lookup depName packageVersions
73
73
74buildPackageSetConfig
74buildPackageSetConfig
75+ :: Maybe HackageDb
75− :: FilePath
76+ -> FilePath
76 -> FilePath
77 -> FilePath
77 -> BuildPlan
78 -> BuildPlan
78 -> IO PackageSetConfig
79 -> IO PackageSetConfig
79−buildPackageSetConfig optAllCabalHashes optNixpkgsRepository buildPlan = do
80+buildPackageSetConfig mHackageDb optAllCabalHashes optNixpkgsRepository buildPlan = do
80 nixpkgs <- readNixpkgPackageMap optNixpkgsRepository Nothing
81 nixpkgs <- readNixpkgPackageMap optNixpkgsRepository Nothing
81 let
82 let
82 systemInfo = bpSystemInfo buildPlan
83 systemInfo = bpSystemInfo buildPlan
83 packageVersions = fmap ppVersion (bpPackages buildPlan) `Map.union` siCorePackages systemInfo
84 packageVersions = fmap ppVersion (bpPackages buildPlan) `Map.union` siCorePackages systemInfo
84 return PackageSetConfig
85 return PackageSetConfig
85− { packageLoader = loadPackage optAllCabalHashes
86+ { packageLoader = loadPackage mHackageDb optAllCabalHashes
86 , targetPlatform = Platform (siArch systemInfo) (siOS systemInfo)
87 , targetPlatform = Platform (siArch systemInfo) (siOS systemInfo)
87 , targetCompiler = ghcCompilerInfo (siGhcVersion systemInfo)
88 , targetCompiler = ghcCompilerInfo (siGhcVersion systemInfo)
88 , nixpkgsResolver = resolve (Map.map (Set.map (over path ("pkgs":))) nixpkgs)
89 , nixpkgsResolver = resolve (Map.map (Set.map (over path ("pkgs":))) nixpkgs)
src/Runner.hs+2
@@ -36,6 +36,7 @@ run = do
36 let buildPlanFile = LH.buildPlanFilePath (opts ^. optLtsHaskellRepo) (stackConf ^. scResolver)
36 let buildPlanFile = LH.buildPlanFilePath (opts ^. optLtsHaskellRepo) (stackConf ^. scResolver)
37 buildPlan <- LH.loadBuildPlan buildPlanFile
37 buildPlan <- LH.loadBuildPlan buildPlanFile
38 packageSetConfig <- LH.buildPackageSetConfig
38 packageSetConfig <- LH.buildPackageSetConfig
39+ (opts ^. optHackageDb)
39 (opts ^. optAllCabalHashesRepo)
40 (opts ^. optAllCabalHashesRepo)
40 (opts ^. optNixpkgsRepository)
41 (opts ^. optNixpkgsRepository)
41 buildPlan
42 buildPlan
@@ -90,6 +91,7 @@ run = do
90 , enableHaddock = opts ^. optDoHaddockStackage }
91 , enableHaddock = opts ^. optDoHaddockStackage }
91 buildPlan <- LH.loadBuildPlan buildPlanFile
92 buildPlan <- LH.loadBuildPlan buildPlanFile
92 packageSetConfig <- LH.buildPackageSetConfig
93 packageSetConfig <- LH.buildPackageSetConfig
94+ (opts ^. optHackageDb)
93 (opts ^. optAllCabalHashesRepo)
95 (opts ^. optAllCabalHashesRepo)
94 (opts ^. optNixpkgsRepository)
96 (opts ^. optNixpkgsRepository)
95 buildPlan
97 buildPlan