git.iko.soy/typeable/cabal2nix
on master help sign in
Merge pull request #288 from Fuuzetsu/honour-package-versions
fe458a9Peter Simons
src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs+7−1
@@ -14,6 +14,7 @@ import Distribution.Nixpkgs.Fetch
14import Distribution.Nixpkgs.Hashes
14import Distribution.Nixpkgs.Hashes
15import qualified Distribution.Nixpkgs.Haskell.Hackage as DB
15import qualified Distribution.Nixpkgs.Haskell.Hackage as DB
16import qualified Distribution.Package as Cabal
16import qualified Distribution.Package as Cabal
17+import qualified Distribution.Version as Cabal
17import Distribution.PackageDescription
18import Distribution.PackageDescription
18import qualified Distribution.PackageDescription as Cabal
19import qualified Distribution.PackageDescription as Cabal
19import Distribution.Text ( simpleParse, display )
20import Distribution.Text ( simpleParse, display )
@@ -56,8 +57,13 @@ fromDB optHackageDB pkg = do
56 pkgId = fromMaybe (error ("invalid Haskell package id " ++ show pkg)) (simpleParse pkg)
57 pkgId = fromMaybe (error ("invalid Haskell package id " ++ show pkg)) (simpleParse pkg)
57 name = Cabal.unPackageName (Cabal.packageName pkgId)
58 name = Cabal.unPackageName (Cabal.packageName pkgId)
58
59
60+ version :: [Int]
61+ version = Cabal.versionNumbers $ Cabal.packageVersion pkgId
62+
59 lookupVersion :: DB.Map DB.Version Cabal.GenericPackageDescription -> Maybe Cabal.GenericPackageDescription
63 lookupVersion :: DB.Map DB.Version Cabal.GenericPackageDescription -> Maybe Cabal.GenericPackageDescription
64+ -- No version is specified, pick latest one
60− lookupVersion = fmap snd . listToMaybe . reverse . DB.toAscList
65+ lookupVersion m | [] <- version = fmap snd . listToMaybe $ DB.toDescList m
66+ lookupVersion m = DB.lookup (DB.makeVersion version) m
61
67
62readFileMay :: String -> IO (Maybe String)
68readFileMay :: String -> IO (Maybe String)
63readFileMay file = do
69readFileMay file = do