From 35b6bda936849cf400b4f9b50b8ffe06977f7801 Mon Sep 17 00:00:00 2001
From: Mikhail Glushenkov <mikhail.glushenkov@gmail.com>
Date: Fri, 17 May 2013 21:33:20 +0200
Subject: [PATCH] Apply 'sandboxInstallPolicy' after 'reinstallTargets'.

Otherwise 'install --reinstall' in a sandbox reinstall the contents of the whole
sandbox.
---
 .../Distribution/Client/Dependency.hs          | 18 ++++++++----------
 cabal-install/Distribution/Client/Install.hs   |  4 +++-
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/cabal-install/Distribution/Client/Dependency.hs b/cabal-install/Distribution/Client/Dependency.hs
index d772759f83..679e40a110 100644
--- a/cabal-install/Distribution/Client/Dependency.hs
+++ b/cabal-install/Distribution/Client/Dependency.hs
@@ -34,7 +34,7 @@ module Distribution.Client.Dependency (
     PackageSpecifier(..),
 
     -- ** Sandbox policy
-    sandboxInstallPolicy,
+    applySandboxInstallPolicy,
 
     -- ** Extra policy options
     dontUpgradeBasePackage,
@@ -321,14 +321,12 @@ standardInstallPolicy
   $ basicDepResolverParams
       installedPkgIndex sourcePkgIndex
 
-sandboxInstallPolicy :: SandboxPackageInfo
-                     -> InstalledPackageIndex.PackageIndex
-                     -> SourcePackageDb
-                     -> [PackageSpecifier SourcePackage]
-                     -> DepResolverParams
-sandboxInstallPolicy
-    (SandboxPackageInfo modifiedDeps otherDeps allSandboxPkgs)
-    installedPkgIndex sourcePackageDb pkgSpecifiers
+applySandboxInstallPolicy :: SandboxPackageInfo
+                             -> DepResolverParams
+                             -> DepResolverParams
+applySandboxInstallPolicy
+  (SandboxPackageInfo modifiedDeps otherDeps allSandboxPkgs)
+  params
 
   = addPreferences [ PackageInstalledPreference n PreferInstalled
                    | n <- installedNotModified ]
@@ -347,7 +345,7 @@ sandboxInstallPolicy
   -- We don't need to add source packages for add-source deps to the
   -- 'installedPkgIndex' since 'getSourcePackages' did that for us.
 
-  $ standardInstallPolicy installedPkgIndex sourcePackageDb pkgSpecifiers
+  $ params
 
   where
     installedPkgIds =
diff --git a/cabal-install/Distribution/Client/Install.hs b/cabal-install/Distribution/Client/Install.hs
index 1b4b43b0ca..ea276e740b 100644
--- a/cabal-install/Distribution/Client/Install.hs
+++ b/cabal-install/Distribution/Client/Install.hs
@@ -328,9 +328,11 @@ planPackages comp platform mSandboxPkgInfo solver
           [ PackageConstraintStanzas (pkgSpecifierTarget pkgSpecifier) stanzas
           | pkgSpecifier <- pkgSpecifiers ]
 
+      . maybe id applySandboxInstallPolicy mSandboxPkgInfo
+
       . (if reinstall then reinstallTargets else id)
 
-      $ (maybe standardInstallPolicy sandboxInstallPolicy mSandboxPkgInfo)
+      $ standardInstallPolicy
         installedPkgIndex sourcePkgDb pkgSpecifiers
 
     stanzas = concat
-- 
GitLab