Repository : ssh://darcs.haskell.org//srv/darcs/packages/Cabal

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/96e0a6f1fe4d2682d5f6af39ed8e8aea8688b2b9

>---------------------------------------------------------------

commit 96e0a6f1fe4d2682d5f6af39ed8e8aea8688b2b9
Author: Duncan Coutts <[email protected]>
Date:   Mon Mar 3 14:00:07 2008 +0000

    Fix savedConfigToConfigFlags so the command line overrides the config
    "cabal configure --global" was incorrectly passing the user prefix to setup.

>---------------------------------------------------------------

 cabal-install/Hackage/Config.hs |   27 +++++----------------------
 cabal-install/Main.hs           |   15 +++++++--------
 2 files changed, 12 insertions(+), 30 deletions(-)

diff --git a/cabal-install/Hackage/Config.hs b/cabal-install/Hackage/Config.hs
index a9c624f..0017d4f 100644
--- a/cabal-install/Hackage/Config.hs
+++ b/cabal-install/Hackage/Config.hs
@@ -14,7 +14,6 @@ module Hackage.Config
     ( SavedConfig(..)
     , savedConfigToConfigFlags
     , configRepos
-    , configPackageDB
     , defaultConfigFile
     , loadConfig
     , showConfig
@@ -33,7 +32,6 @@ import Distribution.Compat.ReadP (ReadP, char, munch1, 
readS_to_P)
 import Distribution.Compiler (CompilerFlavor(..), defaultCompilerFlavor)
 import Distribution.PackageDescription.Parse (ParseResult(..))
 import Distribution.ParseUtils (FieldDescr(..), simpleField, listField, 
liftField, field)
-import Distribution.Simple.Compiler (PackageDB(..))
 import Distribution.Simple.InstallDirs (InstallDirs(..), PathTemplate, 
toPathTemplate)
 import Distribution.Simple.Setup (Flag(..), toFlag, fromFlag, 
fromFlagOrDefault)
 import qualified Distribution.Simple.Setup as Cabal
@@ -71,14 +69,8 @@ configRepos config =
      in Repo remote cacheDir
   | remote <- configRemoteRepos config ]
 
-configPackageDB :: SavedConfig -> Flag PackageDB
-configPackageDB config = case configUserInstall config of
-  NoFlag     -> NoFlag
-  Flag True  -> Flag UserPackageDB
-  Flag False -> Flag GlobalPackageDB
-
-savedConfigToConfigFlags :: Flag PackageDB -> SavedConfig -> Cabal.ConfigFlags
-savedConfigToConfigFlags packageDB config = mempty {
+savedConfigToConfigFlags :: Flag Bool -> SavedConfig -> Cabal.ConfigFlags
+savedConfigToConfigFlags userInstallFlag config = mempty {
     Cabal.configHcFlavor    = configCompiler config,
     Cabal.configHcPath      = configCompilerPath config,
     Cabal.configHcPkg       = configHcPkgPath config,
@@ -86,20 +78,11 @@ savedConfigToConfigFlags packageDB config = mempty {
     Cabal.configInstallDirs = if userInstall
                                 then configUserInstallDirs config
                                 else configGlobalInstallDirs config,
-    Cabal.configVerbose     = configVerbose config,
-
-    -- FIXME: Urk, all this complex stuff is a result of the mismatch between
-    -- userInstall :: Bool and packageDB :: PackageDB. We should use one or
-    -- the other consistently.
-    Cabal.configPackageDB   = if userInstall
-                                then toFlag UserPackageDB
-                                else toFlag GlobalPackageDB
+    Cabal.configVerbose     = configVerbose config
   }
   where userInstall :: Bool
-        userInstall = fromFlag $ fmap (\p -> case p of
-                                               UserPackageDB -> True
-                                               _             -> False) 
packageDB
-                       `mappend` configUserInstall config
+        userInstall = fromFlag $ configUserInstall config
+                       `mappend` userInstallFlag
 
 --
 -- * Default config
diff --git a/cabal-install/Main.hs b/cabal-install/Main.hs
index a5656b9..b1c20c9 100644
--- a/cabal-install/Main.hs
+++ b/cabal-install/Main.hs
@@ -14,7 +14,7 @@
 module Main where
 
 import Hackage.Setup
-import Distribution.Simple.Setup (Flag, fromFlag, fromFlagOrDefault,
+import Distribution.Simple.Setup (Flag(..), fromFlag, fromFlagOrDefault,
                                   flagToMaybe)
 import qualified Distribution.Simple.Setup as Cabal
 import Distribution.Simple.Program (defaultProgramConfiguration)
@@ -23,8 +23,7 @@ import Distribution.Simple.SetupWrapper (setupWrapper)
 import Distribution.Simple.Configure (configCompilerAux)
 import Distribution.Simple.Utils (cabalVersion, die)
 import Hackage.Config           (SavedConfig(..), savedConfigToConfigFlags,
-                                 defaultConfigFile, loadConfig, configRepos,
-                                 configPackageDB)
+                                 defaultConfigFile, loadConfig, configRepos)
 import Hackage.List             (list)
 import Hackage.Install          (install)
 import Hackage.Update           (update)
@@ -111,7 +110,7 @@ configureAction flags extraArgs = do
   configFile <- defaultConfigFile --FIXME
   let verbosity = fromFlagOrDefault normal (Cabal.configVerbose flags)
   config <- loadConfig verbosity configFile
-  let flags' = savedConfigToConfigFlags (Cabal.configPackageDB flags) config
+  let flags' = savedConfigToConfigFlags (Cabal.configUserInstall flags) config
                `mappend` flags
       args = commandName configureCommand
            : commandShowOptions configureCommand flags' ++ extraArgs
@@ -123,7 +122,7 @@ installAction (cflags,iflags) extraArgs = do
   configFile <- defaultConfigFile --FIXME
   let verbosity = fromFlagOrDefault normal (Cabal.configVerbose cflags)
   config <- loadConfig verbosity configFile
-  let cflags' = savedConfigToConfigFlags (Cabal.configPackageDB cflags) config
+  let cflags' = savedConfigToConfigFlags (Cabal.configUserInstall cflags) 
config
                `mappend` cflags
   (comp, conf) <- configCompilerAux cflags'
   install verbosity
@@ -135,7 +134,7 @@ listAction listFlags extraArgs = do
   configFile <- defaultConfigFile --FIXME
   let verbosity = fromFlag (listVerbosity listFlags)
   config <- loadConfig verbosity configFile
-  let flags = savedConfigToConfigFlags (configPackageDB config) config
+  let flags = savedConfigToConfigFlags NoFlag config
   (comp, conf) <- configCompilerAux flags
   list verbosity
        (fromFlag $ Cabal.configPackageDB flags)
@@ -157,7 +156,7 @@ upgradeAction (cflags,iflags) _extraArgs = do
   configFile <- defaultConfigFile --FIXME
   let verbosity = fromFlagOrDefault normal (Cabal.configVerbose cflags)
   config <- loadConfig verbosity configFile
-  let cflags' = savedConfigToConfigFlags (Cabal.configPackageDB cflags) config
+  let cflags' = savedConfigToConfigFlags (Cabal.configUserInstall cflags) 
config
                `mappend` cflags
   (comp, conf) <- configCompilerAux cflags'
   upgrade verbosity
@@ -170,7 +169,7 @@ fetchAction verbosityFlag extraArgs = do
   configFile <- defaultConfigFile --FIXME
   let verbosity = fromFlag verbosityFlag
   config <- loadConfig verbosity configFile
-  let flags = savedConfigToConfigFlags (configPackageDB config) config
+  let flags = savedConfigToConfigFlags NoFlag config
   (comp, conf) <- configCompilerAux flags
   fetch verbosity
         (fromFlag $ Cabal.configPackageDB flags) (configRepos config)



_______________________________________________
Cvs-libraries mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-libraries

Reply via email to