diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 2898cb0ce4dc..b14c26c69478 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1067,35 +1067,8 @@ self: super: { # Generate shell completion. cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix; - - stack = - let - stackWithOverrides = - super.stack.override { - # stack-2.1.3.1 requires pantry-0.2.0.0. - pantry = self.pantry_0_2_0_0; - }; - in - generateOptparseApplicativeCompletion - "stack" - (appendPatches stackWithOverrides [ - # This PR fixes stack up to be able to build with Cabal-3. This patch - # can probably be dropped when the next stack release is made after - # 2.1.3.1. - (pkgs.fetchpatch { - url = "https://github.com/commercialhaskell/stack/pull/5156.diff"; - sha256 = "0knk6f9fh1b4fxkhvx5gfrwclal4vi2va4zy34gpmwnjr7knf42y"; - excludes = [ - "snapshot-lts-12.yaml" - "snapshot-nightly.yaml" - "snapshot.yaml" - ]; - }) - # This patch fixes stack up to be able to build various GHC-8.8 changes. - # This can hopefully be dropped when the next stack release is made - # after 2.1.3.1 (assuming the next stack release uses GHC-8.8). - ./patches/stack-ghc882-support.patch - ]); + stack = generateOptparseApplicativeCompletion "stack" (super.stack.overrideScope (self: super: { http-download = self.http-download_0_2_0_0; })); + http-download_0_2_0_0 = dontCheck super.http-download_0_2_0_0; # musl fixes # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test diff --git a/pkgs/development/haskell-modules/patches/stack-ghc882-support.patch b/pkgs/development/haskell-modules/patches/stack-ghc882-support.patch deleted file mode 100644 index 0d906638e7fa..000000000000 --- a/pkgs/development/haskell-modules/patches/stack-ghc882-support.patch +++ /dev/null @@ -1,104 +0,0 @@ -diff --git a/src/Stack/Coverage.hs b/src/Stack/Coverage.hs -index d95fa332..f80e121a 100644 ---- a/src/Stack/Coverage.hs -+++ b/src/Stack/Coverage.hs -@@ -235,7 +235,7 @@ generateHpcReportForTargets opts tixFiles targetNames = do - case nc of - CTest testName -> - liftM (pkgPath ) $ parseRelFile (T.unpack testName ++ "/" ++ T.unpack testName ++ ".tix") -- _ -> fail $ -+ _ -> liftIO $ fail $ - "Can't specify anything except test-suites as hpc report targets (" ++ - packageNameString name ++ - " is used with a non test-suite target)" -diff --git a/src/Stack/Package.hs b/src/Stack/Package.hs -index b69337ce..08eb9b9f 100644 ---- a/src/Stack/Package.hs -+++ b/src/Stack/Package.hs -@@ -463,7 +463,7 @@ makeObjectFilePathFromC - makeObjectFilePathFromC cabalDir namedComponent distDir cFilePath = do - relCFilePath <- stripProperPrefix cabalDir cFilePath - relOFilePath <- -- parseRelFile (replaceExtension (toFilePath relCFilePath) "o") -+ parseRelFile (System.FilePath.replaceExtension (toFilePath relCFilePath) "o") - return (componentOutputDir namedComponent distDir relOFilePath) - - -- | Make the global autogen dir if Cabal version is new enough. -diff --git a/src/Stack/Script.hs b/src/Stack/Script.hs -index c63c9f62..70257be1 100644 ---- a/src/Stack/Script.hs -+++ b/src/Stack/Script.hs -@@ -172,8 +172,8 @@ scriptCmd opts = do - - toExeName fp = - if osIsWindows -- then replaceExtension fp "exe" -- else dropExtension fp -+ then System.FilePath.replaceExtension fp "exe" -+ else System.FilePath.dropExtension fp - - getPackagesFromImports - :: FilePath -- ^ script filename -diff --git a/src/Stack/Setup.hs b/src/Stack/Setup.hs -index 8bbfc45c..5c5b028c 100644 ---- a/src/Stack/Setup.hs -+++ b/src/Stack/Setup.hs -@@ -876,7 +876,7 @@ buildGhcFromSource getSetupInfo' installed (CompilerRepository url) commitId fla - (_,files) <- listDir (cwd bindistPath) - let - isBindist p = "ghc-" `isPrefixOf` (toFilePath (filename p)) -- && fileExtension (filename p) == ".xz" -+ && (maybe "" id (fileExtension (filename p))) == ".xz" - mbindist = filter isBindist files - case mbindist of - [bindist] -> do -diff --git a/src/Stack/Storage/Project.hs b/src/Stack/Storage/Project.hs -index dc5318d8..984e6259 100644 ---- a/src/Stack/Storage/Project.hs -+++ b/src/Stack/Storage/Project.hs -@@ -12,6 +12,9 @@ - {-# LANGUAGE UndecidableInstances #-} - {-# OPTIONS_GHC -Wno-unused-top-binds -Wno-identities #-} - -+{-# LANGUAGE DerivingStrategies #-} -+{-# LANGUAGE StandaloneDeriving #-} -+ - -- | Work with SQLite database used for caches across a single project. - module Stack.Storage.Project - ( initProjectStorage -diff --git a/src/Stack/Storage/User.hs b/src/Stack/Storage/User.hs -index 3845b094..09695344 100644 ---- a/src/Stack/Storage/User.hs -+++ b/src/Stack/Storage/User.hs -@@ -12,6 +12,9 @@ - {-# LANGUAGE UndecidableInstances #-} - {-# OPTIONS_GHC -Wno-unused-top-binds -Wno-identities #-} - -+{-# LANGUAGE DerivingStrategies #-} -+{-# LANGUAGE StandaloneDeriving #-} -+ - -- | Work with SQLite database used for caches across an entire user account. - module Stack.Storage.User - ( initUserStorage -diff --git a/src/Stack/Types/Config.hs b/src/Stack/Types/Config.hs -index a5cc22b5..a329d353 100644 ---- a/src/Stack/Types/Config.hs -+++ b/src/Stack/Types/Config.hs -@@ -406,7 +406,7 @@ instance FromJSON CabalConfigKey where - instance FromJSONKey CabalConfigKey where - fromJSONKey = FromJSONKeyTextParser parseCabalConfigKey - --parseCabalConfigKey :: Monad m => Text -> m CabalConfigKey -+parseCabalConfigKey :: MonadFail m => Text -> m CabalConfigKey - parseCabalConfigKey "$targets" = pure CCKTargets - parseCabalConfigKey "$locals" = pure CCKLocals - parseCabalConfigKey "$everything" = pure CCKEverything -@@ -974,7 +974,7 @@ parseConfigMonoidObject rootDir obj = do - - return ConfigMonoid {..} - where -- handleExplicitSetupDep :: Monad m => (Text, Bool) -> m (Maybe PackageName, Bool) -+ handleExplicitSetupDep :: MonadFail m => (Text, Bool) -> m (Maybe PackageName, Bool) - handleExplicitSetupDep (name', b) = do - name <- - if name' == "*"