Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal On branch : master
http://hackage.haskell.org/trac/ghc/changeset/7e5135df9b6e008854fd21181ee93c420ffa14ce >--------------------------------------------------------------- commit 7e5135df9b6e008854fd21181ee93c420ffa14ce Author: bjorn <[email protected]> Date: Sun Oct 7 12:35:22 2007 +0000 resolveDependencies does not need a list of installed packages as argument. >--------------------------------------------------------------- .../src/Network/Hackage/CabalInstall/Dependency.hs | 14 ++++++-------- .../src/Network/Hackage/CabalInstall/Fetch.hs | 2 +- .../src/Network/Hackage/CabalInstall/Info.hs | 2 +- .../src/Network/Hackage/CabalInstall/Install.hs | 11 +++++------ 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs index d2d158d..eb1fdcd 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Dependency.hs @@ -176,27 +176,25 @@ resolveDependenciesAux :: ConfigFlags -> [PackageIdentifier] -- ^Installed packages. -> [UnresolvedDependency] -- ^Dependencies in need of resolution. -> IO [ResolvedPackage] -resolveDependenciesAux cfg comp conf ps deps - = do installed <- listInstalledPackages cfg comp conf - knownPkgs <- getKnownPackages cfg +resolveDependenciesAux cfg comp conf installed deps + = do knownPkgs <- getKnownPackages cfg let resolve dep = let rDep = getDependency comp installed knownPkgs dep in case resolvedData rDep of Nothing -> resolvedDepToResolvedPkg (dependency dep,Nothing) _ -> rDep - return $ map resolve (filter (not . isInstalled ps . dependency) deps) + return $ map resolve (filter (not . isInstalled installed . dependency) deps) -- |Resolve some dependencies from the known packages while filtering out installed packages. -- The result has been modified to put the dependencies in front of the packages. resolveDependencies :: ConfigFlags -> Compiler -> ProgramConfiguration - -> [PackageIdentifier] -- ^Installed packages. -> [UnresolvedDependency] -- ^Dependencies in need of resolution. -> IO [ResolvedPackage] -resolveDependencies cfg comp conf ps deps - = fmap (flattenDepList ps) (resolveDependenciesAux cfg comp conf ps deps) - +resolveDependencies cfg comp conf deps + = do installed <- listInstalledPackages cfg comp conf + fmap (flattenDepList installed) (resolveDependenciesAux cfg comp conf installed deps) listInstalledPackages :: ConfigFlags -> Compiler -> ProgramConfiguration -> IO [PackageIdentifier] listInstalledPackages cfg comp conf = diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs b/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs index 27ae78d..67622db 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Fetch.hs @@ -127,7 +127,7 @@ fetchPackage cfg pkg repo fetch :: ConfigFlags -> [String] -> IO () fetch cfg pkgs = do (comp,conf) <- findCompiler cfg - apkgs <- fmap filterFetchables (resolveDependencies cfg comp conf [] (map parseDep pkgs)) + apkgs <- fmap filterFetchables (resolveDependencies cfg comp conf (map parseDep pkgs)) mapM_ (\(pkg,repo) -> fetchPackage cfg pkg repo ) =<< filterM isNotFetched apkgs diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Info.hs b/cabal-install/src/Network/Hackage/CabalInstall/Info.hs index d7dd63c..59b1c0c 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Info.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Info.hs @@ -29,7 +29,7 @@ info :: ConfigFlags -> [String] -> [UnresolvedDependency] -> IO () info cfg globalArgs deps = do (comp,conf) <- findCompiler cfg ipkgs <- listInstalledPackages cfg comp conf - apkgs <- resolveDependencies cfg comp conf [] deps + apkgs <- resolveDependencies cfg comp conf deps mapM_ (infoPkg cfg ipkgs globalArgs) apkgs {-| diff --git a/cabal-install/src/Network/Hackage/CabalInstall/Install.hs b/cabal-install/src/Network/Hackage/CabalInstall/Install.hs index daf6697..18cfeb5 100644 --- a/cabal-install/src/Network/Hackage/CabalInstall/Install.hs +++ b/cabal-install/src/Network/Hackage/CabalInstall/Install.hs @@ -17,16 +17,16 @@ module Network.Hackage.CabalInstall.Install ) where import Control.Exception (bracket_) +import Control.Monad (when) import System.Directory (getTemporaryDirectory, createDirectoryIfMissing - ,removeDirectoryRecursive) -import System.FilePath ((</>)) + ,removeDirectoryRecursive, doesFileExist) +import System.FilePath ((</>),(<.>)) import Text.Printf (printf) import Network.Hackage.CabalInstall.Config (findCompiler, message) -import Network.Hackage.CabalInstall.Dependency (getPackages, resolveDependencies - , listInstalledPackages) +import Network.Hackage.CabalInstall.Dependency (getPackages, resolveDependencies) import Network.Hackage.CabalInstall.Fetch (isFetched, packageFile, fetchPackage) import Network.Hackage.CabalInstall.Tar (extractTarGzFile) import Network.Hackage.CabalInstall.Types (ConfigFlags(..), UnresolvedDependency(..) @@ -46,8 +46,7 @@ import Distribution.Verbosity install :: ConfigFlags -> [String] -> [UnresolvedDependency] -> IO () install cfg globalArgs deps = do (comp,conf) <- findCompiler cfg - ipkgs <- listInstalledPackages cfg comp conf - resolvedDeps <- resolveDependencies cfg comp conf ipkgs deps + resolvedDeps <- resolveDependencies cfg comp conf deps let apkgs = getPackages resolvedDeps if null apkgs then putStrLn "All requested packages already installed. Nothing to do." _______________________________________________ Cvs-libraries mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-libraries
