@@ -23,6 +23,7 @@ import Distribution.Nixpkgs.Haskell.Constraint
23import Distribution.Nixpkgs.Haskell.FromCabal
23import Distribution.Nixpkgs.Haskell.FromCabal
24import Distribution.Nixpkgs.Haskell.FromCabal.Configuration as Config
24import Distribution.Nixpkgs.Haskell.FromCabal.Configuration as Config
25import Distribution.Nixpkgs.Haskell.FromCabal.Flags
25import Distribution.Nixpkgs.Haskell.FromCabal.Flags
26+import Distribution.Nixpkgs.Haskell.OrphanInstances ( )
26import Distribution.Nixpkgs.Meta
27import Distribution.Nixpkgs.Meta
27import Distribution.Nixpkgs.PackageMap
28import Distribution.Nixpkgs.PackageMap
28import Distribution.Package
29import Distribution.Package
@@ -62,7 +63,7 @@ main = do
62 pinfo :: ParserInfo CLI
63 pinfo :: ParserInfo CLI
63 pinfo = info
64 pinfo = info
65− <*> infoOption ("hackage2nix " ++ display Main.version) (long "version" <> help "Show version number")
66+ <*> infoOption ("hackage2nix " ++ prettyShow Main.version) (long "version" <> help "Show version number")
66 <*> cliOptions
67 <*> cliOptions
68 ( fullDesc
69 ( fullDesc
@@ -92,7 +93,7 @@ main = do
92 latestVersionSet = Map.map Set.findMax (Map.filter (not . Set.null) (Map.mapWithKey (enforcePreferredVersions preferredVersions) hackage))
93 latestVersionSet = Map.map Set.findMax (Map.filter (not . Set.null) (Map.mapWithKey (enforcePreferredVersions preferredVersions) hackage))
94 defaultPackageOverridesSet :: PackageSet
95 defaultPackageOverridesSet :: PackageSet
95− defaultPackageOverridesSet = Map.fromList [ (name, resolveConstraint c hackage) | c@(Dependency name _) <- defaultPackageOverrides config ]
96+ defaultPackageOverridesSet = Map.fromList [ (name, resolveConstraint c hackage) | c@(Dependency name _ _) <- defaultPackageOverrides config ]
97 generatedDefaultPackageSet :: PackageSet
98 generatedDefaultPackageSet :: PackageSet
98 generatedDefaultPackageSet = (defaultPackageOverridesSet `Map.union` latestVersionSet) `Map.difference` corePackageSet
99 generatedDefaultPackageSet = (defaultPackageOverridesSet `Map.union` latestVersionSet) `Map.difference` corePackageSet
@@ -105,7 +106,7 @@ main = do
106 extraPackageSet :: PackageMultiSet
107 extraPackageSet :: PackageMultiSet
107 extraPackageSet = Map.unionsWith Set.union
108 extraPackageSet = Map.unionsWith Set.union
108− [ Map.singleton name (Set.singleton (resolveConstraint c hackage)) | c@(Dependency name _) <- extraPackages config ]
109+ [ Map.singleton name (Set.singleton (resolveConstraint c hackage)) | c@(Dependency name _ _) <- extraPackages config ]
110 db :: PackageMultiSet
111 db :: PackageMultiSet
111 db = Map.unionsWith Set.union [ Map.map Set.singleton generatedDefaultPackageSet
112 db = Map.unionsWith Set.union [ Map.map Set.singleton generatedDefaultPackageSet
@@ -115,7 +116,7 @@ main = do
117 haskellResolver :: Dependency -> Bool
118 haskellResolver :: Dependency -> Bool
118− haskellResolver (Dependency name vrange)
119+ haskellResolver (Dependency name vrange _)
119 | Just v <- Map.lookup name corePackageSet = v `withinRange` vrange
120 | Just v <- Map.lookup name corePackageSet = v `withinRange` vrange
120 | Just v <- Map.lookup name generatedDefaultPackageSet = v `withinRange` vrange
121 | Just v <- Map.lookup name generatedDefaultPackageSet = v `withinRange` vrange
121 | otherwise = False
122 | otherwise = False
@@ -137,7 +138,7 @@ main = do
137 let isInDefaultPackageSet, isHydraEnabled, isBroken :: Bool
138 let isInDefaultPackageSet, isHydraEnabled, isBroken :: Bool
138 isInDefaultPackageSet = (== Just v) (Map.lookup name generatedDefaultPackageSet)
139 isInDefaultPackageSet = (== Just v) (Map.lookup name generatedDefaultPackageSet)
139 isHydraEnabled = isInDefaultPackageSet && not (isBroken || name `Set.member` dontDistributePackages config)
140 isHydraEnabled = isInDefaultPackageSet && not (isBroken || name `Set.member` dontDistributePackages config)
140− isBroken = any (withinRange v) [ vr | Dependency pn vr <- brokenPackages config, pn == name ]
141+ isBroken = any (withinRange v) [ vr | Dependency pn vr _ <- brokenPackages config, pn == name ]
142 droppedPlatforms :: Set Platform
143 droppedPlatforms :: Set Platform
143 droppedPlatforms = Map.findWithDefault mempty name (unsupportedPlatforms config)
144 droppedPlatforms = Map.findWithDefault mempty name (unsupportedPlatforms config)
@@ -164,7 +165,7 @@ main = do
164 & metaSection.homepage .~ ""
165 & metaSection.homepage .~ ""
166 overrides :: Doc
167 overrides :: Doc
167− overrides = fcat $ punctuate space [ disp b <> semi | b <- Set.toList (view (dependencies . each) drv `Set.union` view extraFunctionArgs drv), not (isFromHackage b) ]
168+ overrides = fcat $ punctuate space [ pPrint b <> semi | b <- Set.toList (view (dependencies . each) drv `Set.union` view extraFunctionArgs drv), not (isFromHackage b) ]
168 return $ render $ nest 2 $
169 return $ render $ nest 2 $
169 hang (doubleQuotes (text attr) <+> equals <+> text "callPackage") 2 (parens (pPrint drv)) <+> (braces overrides <> semi)
170 hang (doubleQuotes (text attr) <+> equals <+> text "callPackage") 2 (parens (pPrint drv)) <+> (braces overrides <> semi)
@@ -204,7 +205,7 @@ resolveConstraint c = fromMaybe (error msg) . resolveConstraint' c
206resolveConstraint' :: Constraint -> Hackage -> Maybe Version
207resolveConstraint' :: Constraint -> Hackage -> Maybe Version
207−resolveConstraint' (Dependency name vrange) hackage
208+resolveConstraint' (Dependency name vrange _) hackage
208 | Just vset' <- Map.lookup name hackage
209 | Just vset' <- Map.lookup name hackage
209 , vset <- Set.filter (`withinRange` vrange) vset'
210 , vset <- Set.filter (`withinRange` vrange) vset'
210 , not (Set.null vset) = Just (Set.findMax vset)
211 , not (Set.null vset) = Just (Set.findMax vset)