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

Reply via email to