diff --git a/src/Stack/Solver.hs b/src/Stack/Solver.hs index e965f098d2..7665722907 100644 --- a/src/Stack/Solver.hs +++ b/src/Stack/Solver.hs @@ -76,6 +76,8 @@ import qualified System.Directory as D import qualified System.FilePath as FP import System.Process.Read +import qualified Data.Text.Normalize as T ( normalize ) +import Data.Unicode.Types ( NormalizationMode(NFC) ) data ConstraintType = Constraint | Preference deriving (Eq) type ConstraintSpec = Map PackageName (Version, Map FlagName Bool) @@ -560,8 +562,10 @@ cabalPackagesCheck cabalfps noPkgMsg dupErrMsg = do -- Just the latter check is enough to cover both the cases let packages = zip cabalfps gpds + -- XXX taken from https://github.com/ppelleti/normalization-insensitive, see #1810 + unicodeNormalize = T.unpack . T.normalize NFC . T.pack getNameMismatchPkg (fp, gpd) - | (show . gpdPackageName) gpd /= (FP.takeBaseName . toFilePath) fp + | (unicodeNormalize . show . gpdPackageName) gpd /= (unicodeNormalize . FP.takeBaseName . toFilePath) fp = Just fp | otherwise = Nothing nameMismatchPkgs = mapMaybe getNameMismatchPkg packages