From b463558792bc1529d3740c024a0e1bf2ec4b62ad Mon Sep 17 00:00:00 2001
From: Mikhail Glushenkov <mikhail.glushenkov@gmail.com>
Date: Mon, 13 May 2013 11:29:13 +0200
Subject: [PATCH] Don't die if some deps weren't reinstalled.

---
 cabal-install/Distribution/Client/Sandbox.hs | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/cabal-install/Distribution/Client/Sandbox.hs b/cabal-install/Distribution/Client/Sandbox.hs
index 8ce48b0abb..ae73b78b70 100644
--- a/cabal-install/Distribution/Client/Sandbox.hs
+++ b/cabal-install/Distribution/Client/Sandbox.hs
@@ -76,9 +76,9 @@ import Distribution.Simple.Program            ( ProgramConfiguration )
 import Distribution.Simple.Setup              ( Flag(..)
                                               , fromFlag, fromFlagOrDefault )
 import Distribution.Simple.SrcDist            ( prepareTree )
-import Distribution.Simple.Utils              ( die, debug, notice, info
+import Distribution.Simple.Utils              ( die, debug, notice, info, warn
                                               , debugNoWrap, defaultPackageDesc
-                                              , intercalate
+                                              , intercalate, topHandlerWith
                                               , createDirectoryIfMissingVerbose )
 import Distribution.Package                   ( Package(..) )
 import Distribution.System                    ( Platform )
@@ -476,7 +476,7 @@ reinstallAddSourceDeps :: Verbosity
                           -> FilePath
                           -> IO WereDepsReinstalled
 reinstallAddSourceDeps verbosity config configFlags' configExFlags
-                       installFlags globalFlags sandboxDir = do
+                       installFlags globalFlags sandboxDir = topHandler' $ do
   let configFlags       = configFlags'
                           { configDistPref = Flag (sandboxBuildDir sandboxDir)  }
   indexFile            <- tryGetIndexFilePath config
@@ -531,6 +531,13 @@ reinstallAddSourceDeps verbosity config configFlags' configExFlags
 
   readIORef retVal
 
+    where
+      topHandler' = topHandlerWith $ \_ -> do
+        warn verbosity "Couldn't reinstall some add-source dependencies."
+        -- Here we can't know whether any deps have been reinstalled, so we have
+        -- to be conservative.
+        return ReinstalledSomeDeps
+
 -- | Check if a sandbox is present and call @reinstallAddSourceDeps@ in that
 -- case.
 maybeReinstallAddSourceDeps :: Verbosity
-- 
GitLab