Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/55f07e8f9a6908b6a86bf706840b24f4a2fa78c7 >--------------------------------------------------------------- commit 55f07e8f9a6908b6a86bf706840b24f4a2fa78c7 Author: Duncan Coutts <[email protected]> Date: Tue May 6 13:32:36 2008 +0000 Hide the installed instance when installing the local package. Otherwise the dependency resolver may decide to pick the installed instance of the package but we really do want to install the local version. So to remove that choice from the dep resolver we just delete it from the installed package index. >--------------------------------------------------------------- cabal-install/Hackage/Install.hs | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cabal-install/Hackage/Install.hs b/cabal-install/Hackage/Install.hs index 6dbb78e..560dc49 100644 --- a/cabal-install/Hackage/Install.hs +++ b/cabal-install/Hackage/Install.hs @@ -138,9 +138,11 @@ installLocalPackage verbosity packageDB repos comp conf miscOptions configFlags installed <- getInstalledPackages verbosity comp packageDB conf available <- fmap mconcat (mapM (IndexUtils.readRepoIndex verbosity) repos) let -- The trick is, we add the local package to the available index and - -- then ask to resolve a dependency on exactly that package. So the - -- resolver ends up having to pick the local package. + -- remove it from the installed index. Then we ask to resolve a + -- dependency on exactly that package. So the resolver ends up having + -- to pick the local package. available' = PackageIndex.insert localPackage available + installed' = PackageIndex.delete (packageId localPackage) `fmap` installed localPackage = AvailablePackage { packageInfoId = packageId desc, Available.packageDescription = desc, @@ -157,7 +159,7 @@ installLocalPackage verbosity packageDB repos comp conf miscOptions configFlags -- info verbosity $ unlines (map (" "++) (concat details)) info verbosity "Resolving dependencies..." case resolveDependencies buildOS buildArch (compilerId comp) - installed available' [localDependency] of + installed' available' [localDependency] of Left missing -> die $ "Unresolved dependencies: " ++ showDependencies missing Right installPlan -> do when (verbosity >= verbose || dryRun miscOptions) $ _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
