From e8ac1faff9e0b0ef66c8b7a29c72b8c029dbe3b1 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 01:49:33 +0100 Subject: [PATCH 1/7] haskell.packages.ghc914.parallel: 3.2.2.0 -> 3.3.0.0 --- pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix index 922a1bb72554..ddf329b1eb7e 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -74,6 +74,8 @@ with haskellLib; # Version upgrades # + parallel = doDistribute self.parallel_3_3_0_0; + # # Jailbreaks # From aa3baf2a951b45fa0fd8bbe83a44f61998f40f56 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 01:50:03 +0100 Subject: [PATCH 2/7] haskell.packages.ghc914.tagged: 0.8.9 -> 0.8.10 --- pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix index ddf329b1eb7e..3d17d5691c56 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -75,6 +75,7 @@ with haskellLib; # parallel = doDistribute self.parallel_3_3_0_0; + tagged = doDistribute self.tagged_0_8_10; # # Jailbreaks From 8324100924aa7b25e1bed75dd6bd0f1f51678895 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 01:50:30 +0100 Subject: [PATCH 3/7] haskell.packages.ghc914.unordered-containers: 0.2.20.1 -> 0.2.21 --- pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix index 3d17d5691c56..30e0bc55e2ba 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -76,6 +76,7 @@ with haskellLib; parallel = doDistribute self.parallel_3_3_0_0; tagged = doDistribute self.tagged_0_8_10; + unordered-containers = doDistribute self.unordered-containers_0_2_21; # # Jailbreaks From cd4dfb1d6878468cd4702b9df96ee58dfd9e17a8 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 12:37:03 +0100 Subject: [PATCH 4/7] haskell.packages.ghc914: jailbreak several pkgs maintained by phadej All of these packages have unnecessarily strict upper bounds on core packages. This is known and documented in the linked issues. However, phadej has asked Hackage trustees not to revise these bounds. phadej seems to be working on adding support for QuickCheck 2.17 and GHC 9.14 to quickcheck-instances and is blocking all other maintenance work on that. QuickCheck 2.17 is not necessary for GHC 9.14 support as shown by our 9.14 package set which is using QuickCheck 2.15 at the moment. We may want to think about making these jailbreaks global even since these deliberate delays happen basically with every GHC release. --- .../configuration-ghc-9.14.x.nix | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix index 30e0bc55e2ba..e9356e8bbdb6 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -85,6 +85,24 @@ with haskellLib; primitive = doJailbreak (dontCheck super.primitive); # base <4.22 and a lot of dependencies on packages not yet working. splitmix = doJailbreak super.splitmix; # base <4.22 + # https://github.com/haskellari/indexed-traversable/issues/49 + indexed-traversable = doJailbreak super.indexed-traversable; + # https://github.com/haskellari/indexed-traversable/issues/50 + indexed-traversable-instances = doJailbreak super.indexed-traversable-instances; + # https://github.com/haskellari/these/issues/211 + these = doJailbreak super.these; + # https://github.com/haskellari/these/issues/207 + semialign = doJailbreak super.semialign; + # https://github.com/haskellari/time-compat/issues/48 + time-compat = doJailbreak super.time-compat; + # https://github.com/haskell-hvr/uuid/issues/95 + uuid-types = doJailbreak super.uuid-types; + # https://github.com/haskellari/qc-instances/issues/110 + quickcheck-instances = doJailbreak super.quickcheck-instances; + # https://github.com/haskell/aeson/issues/1155 + text-iso8601 = doJailbreak super.text-iso8601; + aeson = doJailbreak super.aeson; + # https://github.com/sjakobi/newtype-generics/pull/28/files newtype-generics = warnAfterVersion "0.6.2" (doJailbreak super.newtype-generics); From ca00529f59e420ddcf3f6d8873d5c4193eee1e64 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 12:42:21 +0100 Subject: [PATCH 5/7] haskell.packages.ghc914.{serialise,cborg}: jailbreak As documented in the issue, the upper bounds are just too strict. For serialise I've applied a patch that removes support for GHC 8.6 since this removes a conditional in the cabal file that prevents jailbreak-cabal from removing the time constraint. --- .../haskell-modules/configuration-ghc-9.14.x.nix | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix index e9356e8bbdb6..96ab4639e6d6 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -103,6 +103,21 @@ with haskellLib; text-iso8601 = doJailbreak super.text-iso8601; aeson = doJailbreak super.aeson; + # https://github.com/well-typed/cborg/issues/373 + cborg = doJailbreak super.cborg; + serialise = doJailbreak ( + appendPatches [ + # This removes support for older versions of time (think GHC 8.6) and, in doing so, + # drops a Cabal flag that prevents jailbreak from working + (pkgs.fetchpatch { + name = "serialise-no-old-time.patch"; + url = "https://github.com/well-typed/cborg/commit/308afc2795062f847171463958e5e1bbd9c03381.patch"; + hash = "sha256-Gutu9c+houcwAvq2Z+ZQUQbNK+u+OCJRZfKBtx8/V4c="; + relative = "serialise"; + }) + ] super.serialise + ); + # https://github.com/sjakobi/newtype-generics/pull/28/files newtype-generics = warnAfterVersion "0.6.2" (doJailbreak super.newtype-generics); From dc991a10d211398f1f062abfb05ec9bfecaff72e Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 12:43:29 +0100 Subject: [PATCH 6/7] haskell.packages.ghc914.mono-traversable: disable test suite Something seems to go wrong with type inference. The test suite passes fine if fixed, so let's disable it until upstream responds. --- pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix index 96ab4639e6d6..e3ccdf381d5f 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-9.14.x.nix @@ -124,4 +124,7 @@ with haskellLib; # # Test suite issues # + + # Fails to compile with GHC 9.14 https://github.com/snoyberg/mono-traversable/pull/261 + mono-traversable = dontCheck super.mono-traversable; } From e8e01b8e916a8d8b4728740915d274c34fa6bf95 Mon Sep 17 00:00:00 2001 From: sternenseemann Date: Wed, 25 Feb 2026 12:58:20 +0100 Subject: [PATCH 7/7] haskell.packages.ghc914: don't unnecessarily override Cabal core pkg --- .../haskell-modules/configuration-common.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 487158b53c38..78cab79157da 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -112,10 +112,12 @@ with haskellLib; ( let # !!! Use cself/csuper inside for the actual overrides - cabalInstallOverlay = cself: csuper: { - Cabal = cself.Cabal_3_16_1_0; - Cabal-syntax = cself.Cabal-syntax_3_16_1_0; - }; + cabalInstallOverlay = + cself: csuper: + lib.optionalAttrs (lib.versionOlder csuper.ghc.version "9.14") { + Cabal = cself.Cabal_3_16_1_0; + Cabal-syntax = cself.Cabal-syntax_3_16_1_0; + }; in { cabal-install =