git.iko.soy/typeable/cabal2nix
on master help sign in
Merge pull request #288 from Fuuzetsu/honour-package-versions

Don't ignore user-specified package version on fetch

commitfe458a99a7efbbcb1d650629a909336b7ea7e13f authorPeter Simons <simons@cryp.to> dateWed 2 Aug 2017, 14:45 (9 years ago) parente4f891e6c0dbd3
1 file changed+7−1
src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs+7−1
src/Distribution/Nixpkgs/Haskell/PackageSourceSpec.hs+7−1
@@ -14,6 +14,7 @@ import Distribution.Nixpkgs.Fetch
1414import Distribution.Nixpkgs.Hashes
1515import qualified Distribution.Nixpkgs.Haskell.Hackage as DB
1616import qualified Distribution.Package as Cabal
17+import qualified Distribution.Version as Cabal
1718import Distribution.PackageDescription
1819import qualified Distribution.PackageDescription as Cabal
1920import Distribution.Text ( simpleParse, display )
@@ -56,8 +57,13 @@ fromDB optHackageDB pkg = do
5657 pkgId = fromMaybe (error ("invalid Haskell package id " ++ show pkg)) (simpleParse pkg)
5758 name = Cabal.unPackageName (Cabal.packageName pkgId)
5859
60+ version :: [Int]
61+ version = Cabal.versionNumbers $ Cabal.packageVersion pkgId
62+
5963 lookupVersion :: DB.Map DB.Version Cabal.GenericPackageDescription -> Maybe Cabal.GenericPackageDescription
60− lookupVersion = fmap snd . listToMaybe . reverse . DB.toAscList
64+ -- No version is specified, pick latest one
65+ lookupVersion m | [] <- version = fmap snd . listToMaybe $ DB.toDescList m
66+ lookupVersion m = DB.lookup (DB.makeVersion version) m
6167
6268readFileMay :: String -> IO (Maybe String)
6369readFileMay file = do