diff options
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-common.nix')
-rw-r--r-- | pkgs/development/haskell-modules/configuration-common.nix | 378 |
1 files changed, 198 insertions, 180 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 482abb918e02..6ff84394d3fb 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -34,8 +34,6 @@ self: super: { # !!! Use cself/csuper inside for the actual overrides cabalInstallOverlay = cself: csuper: { - # Needs to be upgraded compared to Stackage LTS 21 - cabal-install-solver = cself.cabal-install-solver_3_10_2_1; # Needs to be downgraded compared to Stackage LTS 21 resolv = cself.resolv_0_1_2_0; } // lib.optionalAttrs (lib.versionOlder self.ghc.version "9.6") { @@ -52,21 +50,6 @@ self: super: { # process depends on directory. process = cself.process_1_6_18_0; - # hspec < 2.10 depends on ghc (the library) directly which in turn - # depends on directory, causing a dependency conflict which is practically - # not solvable short of recompiling GHC. Instead of adding - # allowInconsistentDependencies for all reverse dependencies of hspec-core, - # just upgrade to an hspec version without the offending dependency. - hspec-core = cself.hspec-core_2_11_7; - hspec-discover = cself.hspec-discover_2_11_7; - hspec = cself.hspec_2_11_7; - - # hspec-discover and hspec-core depend on hspec-meta for testing which - # we need to avoid since it depends on ghc as well. Since hspec*_2_11* - # are overridden to take the versioned attributes as inputs, we need - # to make sure to override the versioned attribute with this fix. - hspec-discover_2_11_7 = dontCheck csuper.hspec-discover_2_11_7; - # Prevent dependency on doctest which causes an inconsistent dependency # due to depending on ghc which depends on directory etc. vector = dontCheck csuper.vector; @@ -94,12 +77,13 @@ self: super: { # Extensions wants the latest version of Cabal for its list of Haskell # language extensions. - extensions = super.extensions.override { + # 2024-01-15: jailbreak to allow hspec-hedgehog 0.1.1.0 https://github.com/kowainik/extensions/pull/92 + extensions = doJailbreak (super.extensions.override { Cabal = if versionOlder self.ghc.version "9.6" then self.Cabal_3_10_2_1 else null; # use GHC bundled version - }; + }); ####################################### ### HASKELL-LANGUAGE-SERVER SECTION ### @@ -133,11 +117,19 @@ self: super: { hls-test-utils = doJailbreak super.hls-test-utils; hls-alternate-number-format-plugin = doJailbreak super.hls-alternate-number-format-plugin; hls-cabal-plugin = doJailbreak super.hls-cabal-plugin; - hls-call-hierarchy-plugin = doJailbreak super.hls-call-hierarchy-plugin; hls-explicit-fixity-plugin = doJailbreak super.hls-explicit-fixity-plugin; hls-floskell-plugin = doJailbreak super.hls-floskell-plugin; hls-gadt-plugin = doJailbreak super.hls-gadt-plugin; + hls-call-hierarchy-plugin = appendPatch (pkgs.fetchpatch { + url = "https://github.com/haskell/haskell-language-server/pull/3943.patch"; + relative = "plugins/hls-call-hierarchy-plugin"; + hash = "sha256-TOIn4/AGQr8o3r6gI6/vQsdWw/UGyO/599X0pCTYJjE="; + }) (doJailbreak super.hls-call-hierarchy-plugin); + + # 2024-01-15: allow hiedb 0.5 https://github.com/haskell/haskell-language-server/pull/3943 + ghcide = doJailbreak super.ghcide; + ########################################### ### END HASKELL-LANGUAGE-SERVER SECTION ### ########################################### @@ -190,6 +182,15 @@ self: super: { }) ] super.aeson); + # Lifts bounds on hoauth2, skylighting, and json adds compat with mtl >= 2.3 + gitit = appendPatches [ + (pkgs.fetchpatch { + name = "gitit-stackage-lts-22.patch"; + url = "https://github.com/jgm/gitit/commit/c3ce1ab513d07e9b29e9f4ec8244903441a03fca.patch"; + sha256 = "1573ysf1qdhgsn0lh46cvwlcvyx4r2aay7g8c5cfgnadxd9b1j41"; + }) + ] super.gitit; + # 2023-06-28: Test error: https://hydra.nixos.org/build/225565149 orbits = dontCheck super.orbits; @@ -208,15 +209,17 @@ self: super: { ''; }) super.double-conversion; + # Too strict bounds on hspec < 2.11 + http-api-data = doJailbreak super.http-api-data; + tasty-discover = doJailbreak super.tasty-discover; + # Allow aeson == 2.1.* # https://github.com/hdgarrood/aeson-better-errors/issues/23 aeson-better-errors = doJailbreak super.aeson-better-errors; # 2023-08-09: Jailbreak because of vector < 0.13 # 2023-11-09: don't check because of https://github.com/tweag/monad-bayes/pull/326 - monad-bayes = dontCheck (doJailbreak (super.monad-bayes.override { - hspec = self.hspec_2_11_7; - })); + monad-bayes = dontCheck (doJailbreak super.monad-bayes); # Disable tests failing on odd floating point numbers generated by QuickCheck 2.14.3 # https://github.com/haskell/statistics/issues/205 @@ -235,6 +238,12 @@ self: super: { sha256 = "14gllipl28lqry73c5dnclsskzk1bsrrgazibl4lkl8z98j2csjb"; }) super.leveldb-haskell; + # 2024-01-08: fix tests failure for fgl >= 5.8.1 https://github.com/koalaman/shellcheck/issues/2677 + ShellCheck = appendPatch (fetchpatch { + url = "https://github.com/koalaman/shellcheck/commit/c05380d518056189412e12128a8906b8ca6f6717.patch"; + hash = "sha256-FXZQ/D7ut84Yng2/denihDM8e+q04/t2LVALFbohfT0="; + }) super.ShellCheck; + # Arion's test suite needs a Nixpkgs, which is cumbersome to do from Nixpkgs # itself. For instance, pkgs.path has dirty sources and puts a huge .git in the # store. Testing is done upstream. @@ -272,6 +281,10 @@ self: super: { # 2023-04-17: https://gitlab.haskell.org/ghc/ghc-debug/-/issues/20 ghc-debug-brick = doJailbreak super.ghc-debug-brick; + # Test failure. Tests also disabled in Stackage: + # https://github.com/jtdaugherty/brick/issues/499 + brick = dontCheck super.brick; + # Needs older QuickCheck version attoparsec-varword = dontCheck super.attoparsec-varword; @@ -304,20 +317,9 @@ self: super: { }) ]) super.memory; - # Waiting for the commit being fetched as a patch to get a release. - espial = appendPatch (fetchpatch { - url = "https://github.com/jonschoning/espial/commit/70375db7e245207b3572779288eade3252c4d9e3.patch"; - sha256 = "sha256-fto8fdFbZkzn7dwCCsGw+j+5HSvEvyvU5VzYDn4F2G8="; - excludes = ["*.yaml" "*.lock" "*.json"]; - }) super.espial; - # 2023-06-10: Too strict version bound on https://github.com/haskell/ThreadScope/issues/118 threadscope = doJailbreak super.threadscope; - # Overriding the version pandoc dependency uses as the latest release has version bounds - # defined as >= 3.1 && < 3.2, can be removed once pandoc gets bumped by Stackage. - patat = super.patat.override { pandoc = self.pandoc_3_1_11; }; - # http2 also overridden in all-packages.nix for mailctl. # twain is currently only used by mailctl, so the .overrideScope shouldn't # negatively affect any other packages, at least currently... @@ -356,16 +358,7 @@ self: super: { rm -r $out/doc/?ndroid* ''; }; - - # Git annex provides a restricted login shell. Setting - # passthru.shellPath here allows a user's login shell to be set to - # `git-annex-shell` by making `shell = haskellPackages.git-annex`. - # https://git-annex.branchable.com/git-annex-shell/ - passthru.shellPath = "/bin/git-annex-shell"; - }) (super.git-annex.overrideScope (self: _: { - # https://github.com/haskell-pkg-janitors/unix-compat/issues/3 - unix-compat = self.unix-compat_0_6; - })); + }) super.git-annex; # Too strict bounds on servant # Pending a hackage revision: https://github.com/berberman/arch-web/commit/5d08afee5b25e644f9e2e2b95380a5d4f4aa81ea#commitcomment-89230555 @@ -524,17 +517,60 @@ self: super: { # 2023-04-20: Restrictive bytestring bound in tests. storablevector = doJailbreak super.storablevector; - # 2023-04-20: Pretends to need brick 1.6 but the commit history here - # https://github.com/matterhorn-chat/matterhorn/commits/master/matterhorn.cabal - # makes very clear that 1.4 is equally fine. - # Generally a slightly packaging hostile bound practice. - matterhorn = doJailbreak super.matterhorn; + # Need following changes from develop branch: + # - crypton-connection over connection (abandoned) + # - vty >= 6 (& pals) support + # Unreasonably difficult to apply as patches + matterhorn = lib.pipe + (super.matterhorn.override { + connection = self.crypton-connection; + }) + [ + doJailbreak + # vty >= 6 support + (addBuildDepends [ self.vty-crossplatform ]) + (overrideSrc { + version = "unstable-2024-01-11"; + src = pkgs.fetchFromGitHub { + owner = "matterhorn-chat"; + repo = "matterhorn"; + rev = lib.warnIf + (super.matterhorn.version != "50200.19.0") + "matterhorn on Hackage may have caught up with our pinned commit" + "66d23291a1c748e568908b91b1109ed17b6d86e9"; + sha256 = "0djawpp0zvvc2v020k6p4chvd1dlmcs0fa3d4wlr0cmkha40flpb"; + }; + }) + ]; + # Switch to crypton-connection over abandoned connection + # To add insult to injury, mattermost-api had a breaking change on its develop + # branch, so we also need to bump it to an unstable commit. Luckily, matterhorn + # is its only consumer on Hackage. + mattermost-api = overrideSrc { + version = lib.warnIf + (super.mattermost-api.version != "50200.15.0") + "mattermost-api on Hackage may have caught up with our pinned commit" + "unstable-2024-01-11"; + src = pkgs.fetchFromGitHub { + owner = "matterhorn-chat"; + repo = "mattermost-api"; + rev = "8df809df4d96930cf8b39d0d8f54cdb6d8f42b59"; + sha256 = "154p4yi941l9ga2c3vw8yhgq0g1wn4jhmg3yhzgwgca1c5d1vydi"; + }; + } (super.mattermost-api.override { + connection = self.crypton-connection; + }); + + # Too strict bounds on transformers and resourcet + # https://github.com/alphaHeavy/lzma-conduit/issues/23 + lzma-conduit = doJailbreak super.lzma-conduit; # 2020-06-05: HACK: does not pass own build suite - `dontCheck` - hnix = dontCheck (super.hnix.override { + # 2024-01-15: too strict bound on free < 5.2 + hnix = doJailbreak (dontCheck (super.hnix.override { # 2023-12-11: Needs older core due to remote hnix-store-core = self.hnix-store-core_0_6_1_0; - }); + })); # Too strict bounds on algebraic-graphs @@ -554,9 +590,6 @@ self: super: { # https://github.com/ekmett/structures/issues/3 structures = dontCheck super.structures; - # Requires alex >= 3.4 - jacinda = super.jacinda.override { alex = self.alex_3_4_0_1; }; - # Disable test suites to fix the build. acme-year = dontCheck super.acme-year; # http://hydra.cryp.to/build/497858/log/raw aeson-lens = dontCheck super.aeson-lens; # http://hydra.cryp.to/build/496769/log/raw @@ -719,6 +752,10 @@ self: super: { xsd = dontCheck super.xsd; zip-archive = dontCheck super.zip-archive; # https://github.com/jgm/zip-archive/issues/57 + # 2023-01-11: Too strict bounds on optparse-applicative + # https://github.com/Gabriella439/bench/issues/49 + bench = doJailbreak super.bench; + # 2023-06-26: Test failure: https://hydra.nixos.org/build/224869905 comfort-blas = dontCheck super.comfort-blas; @@ -1057,10 +1094,17 @@ self: super: { # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal # https://github.com/augustss/djinn/pull/8 - djinn = appendPatch (fetchpatch { - url = "https://github.com/augustss/djinn/commit/6cb9433a137fb6b5194afe41d616bd8b62b95630.patch"; - sha256 = "0s021y5nzrh74gfp8xpxpxm11ivzfs3jwg6mkrlyry3iy584xqil"; - }) super.djinn; + djinn = overrideSrc { + version = "unstable-2023-11-20"; + src = pkgs.fetchFromGitHub { + owner = "augustss"; + repo = "djinn"; + rev = "69b3fbad9f42f0b1b2c49977976b8588c967d76e"; + hash = "sha256-ibxn6DXk4pqsOsWhi8KcrlH/THnuMWvIu5ENOn3H3So="; + }; + } super.djinn; + + mueval = doJailbreak super.mueval; # We cannot build this package w/o the C library from <http://www.phash.org/>. phash = markBroken super.phash; @@ -1280,37 +1324,6 @@ self: super: { dhall-nixpkgs = self.generateOptparseApplicativeCompletions [ "dhall-to-nixpkgs" ] (doJailbreak super.dhall-nixpkgs); dhall-yaml = self.generateOptparseApplicativeCompletions ["dhall-to-yaml-ng" "yaml-to-dhall"] super.dhall-yaml; - crypton-connection = super.crypton-connection.override { - # requires tls >= 1.7 - tls = self.tls_1_9_0; - }; - - stack = - lib.pipe - super.stack - [ - (self.generateOptparseApplicativeCompletions [ "stack" ]) - - # stack-2.13.1 requires a bunch of the latest packages. - (drv: drv.overrideScope (hfinal: hprev: { - ansi-terminal = hfinal.ansi-terminal_1_0; # needs ansi-terminal >= 1.0 - crypton = hfinal.crypton_0_34; # needs crypton >= 0.33 - hedgehog = doJailbreak hprev.hedgehog; # has too strict version bound for ansi-terminal - hpack = hfinal.hpack_0_36_0; # needs hpack == 0.36.0 - http-client-tls = hfinal.http-client-tls_0_3_6_3; # needs http-client-tls >= 0.3.6.2 - http-download = hfinal.http-download_0_2_1_0; # needs http-download >= 0.2.1.0 - optparse-applicative = hfinal.optparse-applicative_0_18_1_0; # needs optparse-applicative >= 0.18.1.0 - pantry = hfinal.pantry_0_9_3_1; # needs pantry >= 0.9.2 - syb = dontCheck hprev.syb; # cyclic dependencies - tar-conduit = hfinal.tar-conduit_0_4_0; # pantry needs tar-conduit >= 0.4.0 - temporary = dontCheck hprev.temporary; # cyclic dependencies - })) - ]; - - hopenpgp-tools = super.hopenpgp-tools.override { - optparse-applicative = self.optparse-applicative_0_18_1_0; - }; - # musl fixes # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test unix-time = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.unix-time else super.unix-time; @@ -1630,18 +1643,22 @@ self: super: { libraryToolDepends = (drv.libraryToolDepends or []) ++ [self.buildHaskellPackages.c2hs]; }) super.libsodium; - svgcairo = appendPatches [ - # Remove when https://github.com/gtk2hs/svgcairo/pull/12 goes in. - (fetchpatch { - url = "https://github.com/gtk2hs/svgcairo/commit/348c60b99c284557a522baaf47db69322a0a8b67.patch"; - sha256 = "0akhq6klmykvqd5wsbdfnnl309f80ds19zgq06sh1mmggi54dnf3"; - }) - # Remove when https://github.com/gtk2hs/svgcairo/pull/13 goes in. - (fetchpatch { - url = "https://github.com/dalpd/svgcairo/commit/d1e0d7ae04c1edca83d5b782e464524cdda6ae85.patch"; - sha256 = "1pq9ld9z67zsxj8vqjf82qwckcp69lvvnrjb7wsyb5jc6jaj3q0a"; - }) - ] super.svgcairo; + svgcairo = overrideCabal (drv: { + patches = drv.patches or [ ] ++ [ + # Remove when https://github.com/gtk2hs/svgcairo/pull/12 goes in. + (fetchpatch { + url = "https://github.com/gtk2hs/svgcairo/commit/348c60b99c284557a522baaf47db69322a0a8b67.patch"; + sha256 = "0akhq6klmykvqd5wsbdfnnl309f80ds19zgq06sh1mmggi54dnf3"; + }) + # Remove when https://github.com/gtk2hs/svgcairo/pull/13 goes in. + (fetchpatch { + url = "https://github.com/dalpd/svgcairo/commit/d1e0d7ae04c1edca83d5b782e464524cdda6ae85.patch"; + sha256 = "1pq9ld9z67zsxj8vqjf82qwckcp69lvvnrjb7wsyb5jc6jaj3q0a"; + }) + ]; + editedCabalFile = null; + revision = null; + }) super.svgcairo; # Upstream PR: https://github.com/jkff/splot/pull/9 splot = appendPatch (fetchpatch { @@ -1735,6 +1752,15 @@ self: super: { doCheck = false; }) super.hcoord; + # Break infinite recursion via tasty + temporary = dontCheck super.temporary; + + # Break infinite recursion via doctest-lib + utility-ht = dontCheck super.utility-ht; + + # Break infinite recursion via optparse-applicative (alternatively, dontCheck syb) + prettyprinter-ansi-terminal = dontCheck super.prettyprinter-ansi-terminal; + # Tests rely on `Int` being 64-bit: https://github.com/hspec/hspec/issues/431. # Also, we need QuickCheck-2.14.x to build the test suite, which isn't easy in LTS-16.x. # So let's not go there and just disable the tests altogether. @@ -1821,23 +1847,6 @@ self: super: { # https://github.com/biocad/servant-openapi3/issues/30 servant-openapi3 = dontCheck super.servant-openapi3; - # Give latest hspec correct dependency versions without overrideScope - hspec_2_11_7 = doDistribute (super.hspec_2_11_7.override { - hspec-discover = self.hspec-discover_2_11_7; - hspec-core = self.hspec-core_2_11_7; - }); - hspec-meta_2_11_7 = doDistribute (super.hspec-meta_2_11_7.override { - hspec-expectations = self.hspec-expectations_0_8_4; - }); - hspec-discover_2_11_7 = doDistribute (super.hspec-discover_2_11_7.override { - hspec-meta = self.hspec-meta_2_11_7; - }); - # Need to disable tests to prevent an infinite recursion if hspec-core_2_11_7 - # is overlayed to hspec-core. - hspec-core_2_11_7 = doDistribute (dontCheck (super.hspec-core_2_11_7.override { - hspec-expectations = self.hspec-expectations_0_8_4; - })); - # Point hspec 2.7.10 to correct dependencies hspec_2_7_10 = super.hspec_2_7_10.override { hspec-discover = self.hspec-discover_2_7_10; @@ -1932,8 +1941,16 @@ self: super: { "--haddock-option=--optghc=-fno-safe-haskell" ] super.alg; + # Windows.normalise changed in filepath >= 1.4.100.4 which fails the equivalency + # test suite. This is of no great consequence for us, though. + # Patch solving this has been submitted to upstream by me (@sternenseemann). + filepath-bytestring = + lib.warnIf + (lib.versionAtLeast super.filepath-bytestring.version "1.4.100.4") + "filepath-bytestring override may be obsolete" + dontCheck super.filepath-bytestring; + # Break out of overspecified constraint on QuickCheck. - filepath-bytestring = doJailbreak super.filepath-bytestring; haddock-library = doJailbreak super.haddock-library; # Test suite has overly strict bounds on tasty, jailbreaking fails. @@ -1977,50 +1994,6 @@ self: super: { # test suite doesn't compile anymore due to changed hunit/tasty APIs fullstop = dontCheck super.fullstop; - # https://github.com/jgm/pandoc/issues/7163 - pandoc = dontCheck super.pandoc; - - # Since pandoc-3, the actual `pandoc` executable is in the pandoc-cli - # package. It is no longer distributed in the pandoc package itself. So for - # people that want to use the `pandoc` cli tool, they must use pandoc-cli. - # - # The unfortunate thing is that LTS-21 includes no possible build plan for - # pandoc-cli, because pandoc-cli pandoc-lua-engine are not in LTS 21. - # To get pandoc-lua-engine building we need either to downgrade a ton - # of hslua-module-* packages from stackage or use pandoc 3.1 although - # LTS contains pandoc 3.0. - inherit (let - pandoc-cli-overlay = self: super: { - # pandoc-cli requires pandoc >= 3.1 - pandoc = self.pandoc_3_1_11; - - # pandoc depends on http-client-tls, which only starts depending - # on crypton-connection in http-client-tls-0.3.6.2. - http-client-tls = self.http-client-tls_0_3_6_3; - - # pandoc depends on skylighting >= 0.14 - skylighting = self.skylighting_0_14_1; - skylighting-core = self.skylighting-core_0_14_1; - - # pandoc needs up to date typst - typst-symbols = self.typst-symbols_0_1_5; - # and texmath to match - texmath = self.texmath_0_12_8_6; - }; - in { - pandoc-cli = super.pandoc-cli.overrideScope pandoc-cli-overlay; - pandoc_3_1_11 = doDistribute (super.pandoc_3_1_11.overrideScope pandoc-cli-overlay); - pandoc-lua-engine = super.pandoc-lua-engine.overrideScope pandoc-cli-overlay; - }) - pandoc-cli - pandoc_3_1_11 - pandoc-lua-engine - ; - - # Doesn't work without typst-symbols >= 0.1.5 which conflicts with Stackage - # TODO(@sternenseemann): clean up with Stackage LTS 22 - typst = dontDistribute super.typst; - crypton-x509 = lib.pipe super.crypton-x509 @@ -2294,6 +2267,9 @@ self: super: { Cabal-syntax = self.Cabal-syntax_3_10_2_0; })); + # Too strict bound on hspec (<2.11) + utf8-light = doJailbreak super.utf8-light; + large-hashable = lib.pipe (super.large-hashable.override { # https://github.com/factisresearch/large-hashable/commit/5ec9d2c7233fc4445303564047c992b693e1155c utf8-light = null; @@ -2393,8 +2369,6 @@ self: super: { language-docker = self.language-docker_11_0_0; }; - nix-tree = super.nix-tree; - # test suite requires stack to run, https://github.com/dino-/photoname/issues/24 photoname = dontCheck super.photoname; @@ -2550,8 +2524,24 @@ self: super: { # Too strict bounds on text and tls # https://github.com/barrucadu/irc-conduit/issues/54 - irc-conduit = doJailbreak super.irc-conduit; - irc-client = doJailbreak super.irc-client; + # Use crypton-connection instead of connection + # https://github.com/barrucadu/irc-conduit/pull/60 https://github.com/barrucadu/irc-client/pull/101 + irc-conduit = appendPatch (pkgs.fetchpatch { + url = "https://github.com/barrucadu/irc-conduit/pull/60/commits/58f6b5ee0c23a0615e43292dbbacf40636dcd7a6.patch"; + hash = "sha256-d08tb9iL07mBWdlZ7PCfTLVFJLgcxeGVPzJ+jOej8io="; + }) (doJailbreak (super.irc-conduit.override { + connection = self.crypton-connection; + x509-validation = self.crypton-x509-validation; + })); + irc-client = appendPatch (pkgs.fetchpatch { + url = "https://github.com/barrucadu/irc-client/pull/101/commits/0440b7e2ce943d960234c50957a55025771f567a.patch"; + hash = "sha256-iZyZMrodgViXFCMH9y2wIJZRnjd6WhkqInAdykqTdkY="; + }) (doJailbreak (super.irc-client.override { + connection = self.crypton-connection; + x509 = self.crypton-x509; + x509-store = self.crypton-x509-store; + x509-validation = self.crypton-x509-validation; + })); # 2022-02-25: Unmaintained and to strict upper bounds paths = doJailbreak super.paths; @@ -2777,10 +2767,8 @@ self: super: { co-log-polysemy = doJailbreak super.co-log-polysemy; co-log-polysemy-formatting = doJailbreak super.co-log-polysemy-formatting; - # 2023-12-20: Needs newer hasql-pool package and extra dependencies - postgrest = lib.pipe (super.postgrest.overrideScope (lself: lsuper: { - hasql-pool = lself.hasql-pool_0_10_0_1; - })) [ + postgrest = lib.pipe super.postgrest [ + # 2023-12-20: New version needs extra dependencies (addBuildDepends [ self.extra self.fuzzyset_0_2_4 self.cache self.timeit ]) # 2022-12-02: Too strict bounds: https://github.com/PostgREST/postgrest/issues/2580 doJailbreak @@ -2796,6 +2784,10 @@ self: super: { }) ]; + # Too strict bounds on hspec < 2.11 + fuzzyset_0_2_4 = doJailbreak super.fuzzyset_0_2_4; + swagger2 = doJailbreak super.swagger2; + html-charset = dontCheck super.html-charset; # true-name-0.1.0.4 has been tagged, but has not been released to Hackage. @@ -2857,6 +2849,9 @@ self: super: { # The hackage source is somehow missing a file present in the repo (tests/ListStat.hs). sym = dontCheck super.sym; + # 2024-01-23: https://github.com/composewell/unicode-data/issues/118 + unicode-data = dontCheck super.unicode-data; + # Too strict bounds on base, ghc-prim, primitive # https://github.com/kowainik/typerep-map/pull/128 typerep-map = doJailbreak super.typerep-map; @@ -2864,6 +2859,9 @@ self: super: { # Too strict bounds on base kewar = doJailbreak super.kewar; + # Too strict bounds on mtl, servant and servant-client + unleash-client-haskell = doJailbreak super.unleash-client-haskell; + # Tests rely on (missing) submodule unleash-client-haskell-core = dontCheck super.unleash-client-haskell-core; @@ -2877,11 +2875,6 @@ self: super: { libraryToolDepends = (drv.libraryToolDepends or []) ++ [pkgs.buildPackages.git]; }) super.kmonad; - # Both of these need specific versions of ghc-lib-parser, the minor releases - # seem to be tied. - ghc-syntax-highlighter_0_0_10_0 = super.ghc-syntax-highlighter_0_0_10_0.overrideScope(self: super: { - ghc-lib-parser = self.ghc-lib-parser_9_6_3_20231121; - }); ghc-syntax-highlighter_0_0_11_0 = super.ghc-syntax-highlighter_0_0_11_0.overrideScope(self: super: { ghc-lib-parser = self.ghc-lib-parser_9_8_1_20231121; }); @@ -2890,12 +2883,37 @@ self: super: { # ghc-syntax-highlighter compatible with a newer ghc-lib-parser it # transitively pulls in ihaskell = super.ihaskell.overrideScope (self: super: { - ipython-kernel = self.ipython-kernel_0_11_0_0; ghc-syntax-highlighter = self.ghc-syntax-highlighter_0_0_10_0; }); - # 2024-01-01: Too strict bounds on megaparsec - # Fixed in 0.2.8: https://github.com/PostgREST/configurator-pg/pull/20 - configurator-pg = doJailbreak super.configurator-pg; + inherit + (let + unbreakRepa = packageName: drv: lib.pipe drv [ + # 2023-12-23: Apply build fixes for ghc >=9.4 + (appendPatches (lib.optionals (lib.versionAtLeast self.ghc.version "9.4") (repaPatches.${packageName} or []))) + # 2023-12-23: jailbreak for base <4.17, vector <0.13 + doJailbreak + ]; + # https://github.com/haskell-repa/repa/pull/27 + repaPatches = lib.mapAttrs (relative: hash: lib.singleton (pkgs.fetchpatch { + name = "repa-pr-27.patch"; + url = "https://github.com/haskell-repa/repa/pull/27/commits/40cb2866bb4da51a8cac5e3792984744a64b016e.patch"; + inherit relative hash; + })) { + repa = "sha256-bcSnzvCJmmSBts9UQHA2dYL0Q+wXN9Fbz5LfkrmhCo8="; + repa-io = "sha256-KsIN7NPWCyTpVzhR+xaBKGl8vC6rYH94llvlTawSxFk="; + repa-examples = "sha256-//2JG1CW1h2sKS2BSJadVAujSE3v1TfS0F8zgcNkPI8="; + repa-algorithms = "sha256-z/a7DpT3xJrIsif4cbciYcTSjapAtCoNNVX7PrZtc4I="; + }; + in + lib.mapAttrs unbreakRepa super) + repa + repa-io + repa-examples + repa-algorithms + # The following packages aren't fixed yet, sorry: + # repa-array, repa-convert, repa-eval, repa-flow, + # repa-query, repa-scalar, repa-store, repa-stream + ; } // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super |