@@ -14,7 +14,7 @@ import Control.Monad.State
1414import Control.Exception ( bracket )
1515import Text.Regex.Posix
1616import Data.Version
17−-- import Text.ParserCombinators.ReadP ( readP_to_S, readS_to_P )
17+import Text.ParserCombinators.ReadP ( readP_to_S )
1818import Distribution.PackageDescription.Parse ( parsePackageDescription, ParseResult(..) )
1919import Distribution.PackageDescription ( GenericPackageDescription() )
2020import Distribution.Text
@@ -81,6 +81,11 @@ regenerateDerivation :: Derivation -> String -> Bool
8181regenerateDerivation deriv buf = not (display (pname deriv) `elem` patchedPackages) &&
8282 not (buf =~ "preConfigure|configureFlags|postInstall|patchPhase")
8383
84+readVersion :: String -> Version
85+readVersion str =
86+ case [ v | (v,[]) <- readP_to_S parseVersion str ] of
87+ [ v' ] -> v'
88+ _ -> error ("invalid version specifier " ++ show str)
8489
8590parseNixFile :: FilePath -> String -> Hackage4Nix (Maybe Pkg)
8691parseNixFile path buf