@@ -56,6 +56,7 @@ getInstallInfo settings = do
57 putStrLn "Printing build plan to build-plan.log"
57 putStrLn "Printing build plan to build-plan.log"
58 System.IO.UTF8.writeFile "build-plan.log" $ unlines $ map showDep $ Map.toList final
58 System.IO.UTF8.writeFile "build-plan.log" $ unlines $ map showDep $ Map.toList final
59+ System.IO.UTF8.writeFile "hackage-map.txt" $ unlines $ map showHackageMap $ Map.toList final
60 unless (Set.null errs) $ do
61 unless (Set.null errs) $ do
61 putStrLn "Build plan requires some disallowed packages"
62 putStrLn "Build plan requires some disallowed packages"
@@ -116,6 +117,12 @@ showDep (PackageName name, BuildInfo {..}) =
117 unP (PackageName p) = p
118 unP (PackageName p) = p
120+-- | Convert to format used by Hackage for displaying distribution versions.
121+-- For more info, see https://github.com/fpco/stackage/issues/38.
122+showHackageMap :: (PackageName, BuildInfo) -> String
123+showHackageMap (PackageName name, BuildInfo {..}) =
124+ show (name, showVersion biVersion, Nothing :: Maybe String)
119bpPackageList :: BuildPlan -> [String]
126bpPackageList :: BuildPlan -> [String]
120bpPackageList = map packageVersionString . Map.toList . Map.map spiVersion . bpPackages
127bpPackageList = map packageVersionString . Map.toList . Map.map spiVersion . bpPackages