@@ -14,7 +14,7 @@ import Control.Monad.State
14import Control.Exception ( bracket )
14import Control.Exception ( bracket )
15import Text.Regex.Posix
15import Text.Regex.Posix
16import Data.Version
16import Data.Version
17−-- import Text.ParserCombinators.ReadP ( readP_to_S, readS_to_P )
17+import Text.ParserCombinators.ReadP ( readP_to_S )
18import Distribution.PackageDescription.Parse ( parsePackageDescription, ParseResult(..) )
18import Distribution.PackageDescription.Parse ( parsePackageDescription, ParseResult(..) )
19import Distribution.PackageDescription ( GenericPackageDescription() )
19import Distribution.PackageDescription ( GenericPackageDescription() )
20import Distribution.Text
20import Distribution.Text
@@ -81,6 +81,11 @@ regenerateDerivation :: Derivation -> String -> Bool
81regenerateDerivation deriv buf = not (display (pname deriv) `elem` patchedPackages) &&
81regenerateDerivation deriv buf = not (display (pname deriv) `elem` patchedPackages) &&
82 not (buf =~ "preConfigure|configureFlags|postInstall|patchPhase")
82 not (buf =~ "preConfigure|configureFlags|postInstall|patchPhase")
84+readVersion :: String -> Version
86+ case [ v | (v,[]) <- readP_to_S parseVersion str ] of
88+ _ -> error ("invalid version specifier " ++ show str)
85parseNixFile :: FilePath -> String -> Hackage4Nix (Maybe Pkg)
90parseNixFile :: FilePath -> String -> Hackage4Nix (Maybe Pkg)
86parseNixFile path buf
91parseNixFile path buf