Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/dceb8d4d99e484e5872872520a21fca143a46afa >--------------------------------------------------------------- commit dceb8d4d99e484e5872872520a21fca143a46afa Author: Duncan Coutts <[email protected]> Date: Tue May 3 14:49:32 2011 +0000 Fix bug where contraints where lost for case insensitive package matches E.g. cabal install cabal-1.8.0.6 would actually install the latest version instead, because when 'cabal' got corrected to 'Cabal' the associated constraint 'cabal == 1.8.0.6' was not converted to 'Cabal == 1.8.0.6'. >--------------------------------------------------------------- cabal-install/Distribution/Client/Targets.hs | 11 ++++++++++- 1 files changed, 10 insertions(+), 1 deletions(-) diff --git a/cabal-install/Distribution/Client/Targets.hs b/cabal-install/Distribution/Client/Targets.hs index 5466220..197cc2b 100644 --- a/cabal-install/Distribution/Client/Targets.hs +++ b/cabal-install/Distribution/Client/Targets.hs @@ -574,7 +574,9 @@ disambiguatePackageTargets availablePkgIndex availableExtra targets = pkgname userTarget) Ambiguous pkgnames -> Left (PackageNameAmbigious pkgname pkgnames userTarget) - Unambiguous pkgname' -> Right (NamedPackage pkgname' constraints) + Unambiguous pkgname' -> Right (NamedPackage pkgname' constraints') + where + constraints' = map (renamePackageConstraint pkgname') constraints -- use any extra specific available packages to help us disambiguate packageNameEnv :: PackageNameEnv @@ -682,6 +684,13 @@ userToPackageConstraint uc = case uc of UserConstraintSource name -> PackageConstraintSource name UserConstraintFlags name flags -> PackageConstraintFlags name flags +renamePackageConstraint :: PackageName -> PackageConstraint -> PackageConstraint +renamePackageConstraint name pc = case pc of + PackageConstraintVersion _ ver -> PackageConstraintVersion name ver + PackageConstraintInstalled _ -> PackageConstraintInstalled name + PackageConstraintSource _ -> PackageConstraintSource name + PackageConstraintFlags _ flags -> PackageConstraintFlags name flags + readUserConstraint :: String -> Either String UserConstraint readUserConstraint str = case readPToMaybe parse str of _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
