diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 762cc3b1005a..a2f2fdd8e343 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -20,6 +20,14 @@ with haskellLib; self: super: { + # Make sure that Cabal 3.8.* can be built as-is + Cabal_3_8_1_0 = doDistribute (super.Cabal_3_8_1_0.override ({ + Cabal-syntax = self.Cabal-syntax_3_8_1_0; + } // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") { + # Use process core package when possible + process = self.process_1_6_17_0; + })); + # Make sure that Cabal 3.10.* can be built as-is Cabal_3_10_1_0 = doDistribute (super.Cabal_3_10_1_0.override ({ Cabal-syntax = self.Cabal-syntax_3_10_1_0; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index f98916e76ccd..927da8121868 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -48,9 +48,11 @@ default-package-overrides: extra-packages: - Cabal == 2.2.* # required for jailbreak-cabal etc. - Cabal == 2.4.* # required for cabal-install etc. - - Cabal == 3.2.* # required for cabal-install etc. + - Cabal == 3.2.* # required for cabal2spec - Cabal == 3.4.* # required for cabal-install etc. - - Cabal == 3.6.* # required for cabal-install-parsers etc. + - Cabal == 3.6.* + - Cabal-syntax == 3.8.* # required for cabal-install{,-parsers} + - Cabal == 3.8.* # required for cabal-install{,-parsers} - Diff < 0.4 # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729 - aeson < 2 # required by pantry-0.5.2 - apply-refact == 0.9.* # 2022-12-12: needed for GHC < 9.2 diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 6e0a74ff0e12..9e1037bbf5ab 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -1052,14 +1052,6 @@ self: super: builtins.intersectAttrs super { # Wants to execute cabal-install to (re-)build itself hint = dontCheck super.hint; - # Make sure that Cabal 3.8.* can be built as-is - Cabal_3_8_1_0 = doDistribute (super.Cabal_3_8_1_0.override ({ - Cabal-syntax = self.Cabal-syntax_3_8_1_0; - } // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.2.5") { - # Use process core package when possible - process = self.process_1_6_17_0; - })); - # cabal-install switched to build type simple in 3.2.0.0 # as a result, the cabal(1) man page is no longer installed # automatically. Instead we need to use the `cabal man` diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index a33bd14bc037..5627680db392 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -2903,6 +2903,28 @@ self: { hydraPlatforms = lib.platforms.none; }) {}; + "Cabal_3_8_1_0" = callPackage + ({ mkDerivation, array, base, bytestring, Cabal-syntax, containers + , deepseq, directory, filepath, mtl, parsec, pretty, process, text + , time, transformers, unix + }: + mkDerivation { + pname = "Cabal"; + version = "3.8.1.0"; + sha256 = "0236fddzhalsr2gjbjsk92rgh8866fks28r04g8fbmzkqbkcnr3l"; + revision = "2"; + editedCabalFile = "179y365wh9zgzkcn4n6m4vfsfy6vk4apajv8jpys057z3a71s4kp"; + setupHaskellDepends = [ mtl parsec ]; + libraryHaskellDepends = [ + array base bytestring Cabal-syntax containers deepseq directory + filepath mtl parsec pretty process text time transformers unix + ]; + doCheck = false; + description = "A framework for packaging Haskell software"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "Cabal_3_10_1_0" = callPackage ({ mkDerivation, array, base, bytestring, Cabal-syntax, containers , deepseq, directory, filepath, mtl, parsec, pretty, process, text @@ -2961,6 +2983,26 @@ self: { license = lib.licenses.bsd3; }) {}; + "Cabal-syntax_3_8_1_0" = callPackage + ({ mkDerivation, array, base, binary, bytestring, containers + , deepseq, directory, filepath, mtl, parsec, pretty, text, time + , transformers, unix + }: + mkDerivation { + pname = "Cabal-syntax"; + version = "3.8.1.0"; + sha256 = "03yfk3b2sjmqpxmvx3mj185nifiaqapvc8hmbx4825z0kyqxvs07"; + revision = "3"; + editedCabalFile = "14zm8h7sfawysr9g37in8by8aj1p87fywj83hmshp8n6lrxr6bgd"; + libraryHaskellDepends = [ + array base binary bytestring containers deepseq directory filepath + mtl parsec pretty text time transformers unix + ]; + description = "A library for working with .cabal files"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + }) {}; + "Cabal-syntax_3_10_1_0" = callPackage ({ mkDerivation, array, base, binary, bytestring, containers , deepseq, directory, filepath, mtl, parsec, pretty, text, time