diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 4a452fa16b88..2a5ec134d777 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -249,11 +249,22 @@ with haskellLib; ### HASKELL-LANGUAGE-SERVER SECTION ### ####################################### - # All jailbreaks in this section due to: https://github.com/haskell/haskell-language-server/pull/4316#discussion_r1667684895 - haskell-language-server = - lib.pipe - (super.haskell-language-server.overrideScope ( - lself: lsuper: { + inherit + ( + let + hls_overlay = lself: lsuper: { + # For fourmolu 0.18 and ormolu 0.7.7 + Cabal-syntax = lself.Cabal-syntax_3_14_2_0; + Cabal = lself.Cabal_3_14_2_0; + # Jailbreaking cabal-install-parsers to make it pick Cabal 3.14 instead of 3.12. + cabal-install-parsers = doJailbreak lsuper.cabal-install-parsers; + # hls 2.11 needs older cabal-add than in stackage. Also copying over test fix override from configuration-nix.nix + cabal-add = overrideCabal (drv: { + # tests depend on executable + preCheck = ''export PATH="$PWD/dist/build/cabal-add:$PATH"''; + }) lself.cabal-add_0_1; + # Need a newer version of extensions to be compatible with the newer Cabal + extensions = doJailbreak lself.extensions_0_1_0_3; # For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix, # because some packages, like ormolu, need a newer Cabal version. # ghc-paths is special because it depends on Cabal for building @@ -264,17 +275,29 @@ with haskellLib; # otherwise we have different versions of ghc-paths # around which have the same abi-hash, which can lead to confusions and conflicts. ghc-paths = lsuper.ghc-paths.override { Cabal = null; }; + }; + in + lib.mapAttrs (_: pkg: pkg.overrideScope hls_overlay) ( + super + // { + # HLS 2.11: Too strict bound on Diff 1.0. + haskell-language-server = dontCheck (doJailbreak super.haskell-language-server); } - )) - [ - dontCheck - ]; + ) + ) + fourmolu + ormolu + haskell-language-server + ; # For -f-auto see cabal.project in haskell-language-server. ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser ( disableCabalFlag "auto" super.ghc-lib-parser-ex ); + hls-plugin-api = doJailbreak super.hls-plugin-api; # HLS 2.11: Too strict bound on Diff 1.0. + ghcide = doJailbreak super.ghcide; # HLS 2.11: Too strict bound on Diff 1.0. + ########################################### ### END HASKELL-LANGUAGE-SERVER SECTION ### ########################################### diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix index 075e3178f172..e12a3e49afde 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.10.x.nix @@ -75,9 +75,6 @@ in # Upgrade to accommodate new core library versions, where the authors have # already made the relevant changes. - fourmolu = doDistribute self.fourmolu_0_16_0_0; - ormolu = doDistribute self.ormolu_0_7_7_0; - stylish-haskell = doDistribute self.stylish-haskell_0_15_0_1; # 2025-08-10: Tests fail, but fix is not released yet https://github.com/clash-lang/ghc-typelits-natnormalise/issues/89 ghc-typelits-natnormalise = doDistribute (doJailbreak self.ghc-typelits-natnormalise_0_7_12); @@ -90,7 +87,6 @@ in haddock-library = assert super.haddock-library.version == "1.11.0"; doJailbreak super.haddock-library; - large-generics = doJailbreak super.large-generics; # base <4.20 tree-sitter = doJailbreak super.tree-sitter; # containers <0.7, filepath <1.5 # diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml index 4f7e9f4db67d..128deed5b981 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml @@ -47,6 +47,7 @@ extra-packages: - Cabal == 3.12.* - Cabal == 3.14.* - Cabal == 3.16.* # version required for cabal-install and other packages + - cabal-add == 0.1 # 2025-09-09: Only needed for hls 2.11 can be removed once we are past it. - Cabal-syntax == 3.6.* # Dummy package that ensures packages depending on Cabal-syntax can work for Cabal < 3.8 - Cabal-syntax == 3.8.* # version required for ormolu and fourmolu on ghc 9.0 - Cabal-syntax == 3.10.* @@ -54,7 +55,6 @@ extra-packages: - Cabal-syntax == 3.14.* - Cabal-syntax == 3.16.* # version required for cabal-install and other packages - fourmolu == 0.14.0.0 # 2023-11-13: for ghc-lib-parser 9.6 compat - - fourmolu == 0.16.0.0 # 2025-01-27: for ghc 9.10 compat - fsnotify < 0.4 # 2024-04-22: required by spago-0.21 - fuzzyset == 0.2.4 # 2023-12-20: Needed for building postgrest > 10 - ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2 @@ -92,7 +92,6 @@ extra-packages: - network-run == 0.4.0 # 2024-10-20: for GHC 9.10/network == 3.1.* - ormolu == 0.5.2.0 # 2023-08-08: preserve for ghc 9.0 - ormolu == 0.7.2.0 # 2023-11-13: for ghc-lib-parser 9.6 compat - - ormolu == 0.7.7.0 # 2025-01-27: for ghc 9.10 compat - os-string == 1.* # 2025-07-30: dummy package we need for pre os-string GHCs - postgresql-binary < 0.14 # 2025-01-19: Needed for building postgrest - primitive-unlifted == 0.1.3.1 # 2024-03-16: preserve for ghc 9.2 diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index 61026de26353..f4cf73570e52 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -122463,6 +122463,67 @@ self: { } ) { youProbablyWantCapitalCabal = null; }; + "cabal-add_0_1" = callPackage ( + { + mkDerivation, + base, + bytestring, + Cabal, + cabal-install-parsers, + Cabal-syntax, + containers, + Diff, + directory, + filepath, + mtl, + optparse-applicative, + process, + string-qq, + tasty, + temporary, + }: + mkDerivation { + pname = "cabal-add"; + version = "0.1"; + sha256 = "1szbi0z8yf98641rwnj856gcfsvvflxwrfxraxy6rl60m7i0mab1"; + revision = "3"; + editedCabalFile = "0siv5ajqxcbs9c0ky94p5qk51w6cgf1zyc3rckxvlc25f4kygw4v"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base + bytestring + Cabal + Cabal-syntax + containers + mtl + ]; + executableHaskellDepends = [ + base + bytestring + Cabal + cabal-install-parsers + directory + filepath + optparse-applicative + process + ]; + testHaskellDepends = [ + base + Diff + directory + process + string-qq + tasty + temporary + ]; + description = "Extend Cabal build-depends from the command line"; + license = lib.licenses.bsd3; + hydraPlatforms = lib.platforms.none; + mainProgram = "cabal-add"; + } + ) { }; + "cabal-add" = callPackage ( { mkDerivation, @@ -240271,113 +240332,6 @@ self: { } ) { }; - "fourmolu_0_16_0_0" = callPackage ( - { - mkDerivation, - aeson, - ansi-terminal, - array, - base, - binary, - bytestring, - Cabal-syntax, - containers, - deepseq, - Diff, - directory, - file-embed, - filepath, - ghc-lib-parser, - hspec, - hspec-discover, - hspec-megaparsec, - megaparsec, - MemoTrie, - mtl, - optparse-applicative, - path, - path-io, - pretty, - process, - QuickCheck, - scientific, - syb, - temporary, - terminal-size, - text, - th-env, - yaml, - }: - mkDerivation { - pname = "fourmolu"; - version = "0.16.0.0"; - sha256 = "0vczia3hb1klvbf9fjy32ynyqaka8n7cdk0h8jg6nr89pixla9lc"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - aeson - ansi-terminal - array - base - binary - bytestring - Cabal-syntax - containers - deepseq - Diff - directory - file-embed - filepath - ghc-lib-parser - megaparsec - MemoTrie - mtl - scientific - syb - text - ]; - executableHaskellDepends = [ - base - Cabal-syntax - containers - directory - filepath - ghc-lib-parser - optparse-applicative - terminal-size - text - th-env - yaml - ]; - testHaskellDepends = [ - base - bytestring - Cabal-syntax - containers - Diff - directory - filepath - ghc-lib-parser - hspec - hspec-megaparsec - megaparsec - path - path-io - pretty - process - QuickCheck - temporary - text - yaml - ]; - testToolDepends = [ hspec-discover ]; - description = "A formatter for Haskell source code"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - mainProgram = "fourmolu"; - } - ) { }; - "fourmolu" = callPackage ( { mkDerivation, @@ -493377,103 +493331,6 @@ self: { } ) { }; - "ormolu_0_7_7_0" = callPackage ( - { - mkDerivation, - ansi-terminal, - array, - base, - binary, - bytestring, - Cabal-syntax, - choice, - containers, - deepseq, - Diff, - directory, - file-embed, - filepath, - ghc-lib-parser, - hspec, - hspec-discover, - hspec-megaparsec, - megaparsec, - MemoTrie, - mtl, - optparse-applicative, - path, - path-io, - QuickCheck, - syb, - temporary, - text, - th-env, - }: - mkDerivation { - pname = "ormolu"; - version = "0.7.7.0"; - sha256 = "1069j7cldvqqazmfrpfc6wy816227c5vz7fbq860yfb5h9ycv5ns"; - revision = "1"; - editedCabalFile = "1v8n4kf8wskyizn868k1662rqsd8myhvrjkchb9hiysw9lgja79c"; - isLibrary = true; - isExecutable = true; - libraryHaskellDepends = [ - ansi-terminal - array - base - binary - bytestring - Cabal-syntax - choice - containers - deepseq - Diff - directory - file-embed - filepath - ghc-lib-parser - megaparsec - MemoTrie - mtl - syb - text - ]; - executableHaskellDepends = [ - base - Cabal-syntax - containers - directory - filepath - ghc-lib-parser - optparse-applicative - text - th-env - ]; - testHaskellDepends = [ - base - Cabal-syntax - choice - containers - directory - filepath - ghc-lib-parser - hspec - hspec-megaparsec - megaparsec - path - path-io - QuickCheck - temporary - text - ]; - testToolDepends = [ hspec-discover ]; - description = "A formatter for Haskell source code"; - license = lib.licenses.bsd3; - hydraPlatforms = lib.platforms.none; - mainProgram = "ormolu"; - } - ) { }; - "ormolu" = callPackage ( { mkDerivation,