nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1# COMMON OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS
2#
3# This file contains haskell package overrides that are shared by all
4# haskell package sets provided by nixpkgs and distributed via the official
5# NixOS hydra instance.
6#
7# Overrides that would also make sense for custom haskell package sets not provided
8# as part of nixpkgs and that are specific to Nix should go in configuration-nix.nix
9#
10# See comment at the top of configuration-nix.nix for more information about this
11# distinction.
12{ pkgs, haskellLib }:
13
14self: super:
15
16let
17 inherit (pkgs) fetchpatch lib;
18 inherit (lib) throwIfNot versionOlder;
19
20 warnAfterVersion =
21 ver: pkg:
22 lib.warnIf (lib.versionOlder ver
23 super.${pkg.pname}.version
24 ) "override for haskellPackages.${pkg.pname} may no longer be needed" pkg;
25
26in
27
28with haskellLib;
29
30# To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead.
31{
32 # Hackage's accelerate is from 2020 and incompatible with our GHC.
33 # The existing derivation also has missing dependencies
34 # compared to the source from github.
35 # https://github.com/AccelerateHS/accelerate/issues/553
36 accelerate = lib.pipe super.accelerate [
37 (warnAfterVersion "1.3.0.0")
38 (addBuildDepends [
39 self.double-conversion
40 self.formatting
41 self.microlens
42 ])
43
44 (overrideCabal (drv: {
45 version = "1.3.0.0-unstable-2025-04-25";
46 src = pkgs.fetchFromGitHub {
47 owner = "AccelerateHS";
48 repo = "accelerate";
49 rev = "3f681a5091eddf5a3b97f4cd0de32adc830e1117";
50 sha256 = "sha256-tCcl7wAls+5cBSrqbxfEAJngbV43OJcLJdaC4qqkBxc=";
51 };
52 }))
53 ];
54
55 # Make sure that Cabal_* can be built as-is
56 Cabal_3_10_3_0 = doDistribute (
57 super.Cabal_3_10_3_0.override {
58 Cabal-syntax = self.Cabal-syntax_3_10_3_0;
59 }
60 );
61 Cabal_3_12_1_0 = doDistribute (
62 super.Cabal_3_12_1_0.override {
63 Cabal-syntax = self.Cabal-syntax_3_12_1_0;
64 }
65 );
66 Cabal_3_14_2_0 =
67 overrideCabal
68 (drv: {
69 # Revert increased lower bound on unix since we have backported
70 # the required patch to all GHC bundled versions of unix.
71 postPatch = drv.postPatch or "" + ''
72 substituteInPlace Cabal.cabal --replace-fail "unix >= 2.8.6.0" "unix >= 2.6.0.0"
73 '';
74 })
75 (
76 doDistribute (
77 super.Cabal_3_14_2_0.override {
78 Cabal-syntax = self.Cabal-syntax_3_14_2_0;
79 }
80 )
81 );
82 Cabal_3_16_1_0 =
83 overrideCabal
84 (drv: {
85 # Revert increased lower bound on unix since we have backported
86 # the required patch to all GHC bundled versions of unix.
87 postPatch = drv.postPatch or "" + ''
88 substituteInPlace Cabal.cabal --replace-fail "unix >= 2.8.6.0" "unix >= 2.6.0.0"
89 '';
90 })
91 (
92 doDistribute (
93 super.Cabal_3_16_1_0.override {
94 Cabal-syntax = self.Cabal-syntax_3_16_1_0;
95 }
96 )
97 );
98
99 # Needs matching version of Cabal
100 Cabal-hooks = super.Cabal-hooks.override {
101 Cabal = self.Cabal_3_14_2_0;
102 };
103
104 # Needs Cabal>=3.14
105 cabal-lenses = super.cabal-lenses.override {
106 Cabal = self.Cabal_3_14_2_0;
107 };
108
109 # cabal-install needs most recent versions of Cabal and Cabal-syntax,
110 # so we need to put some extra work for non-latest GHCs
111 inherit
112 (
113 let
114 # !!! Use cself/csuper inside for the actual overrides
115 cabalInstallOverlay = cself: csuper: {
116 Cabal = cself.Cabal_3_16_1_0;
117 Cabal-syntax = cself.Cabal-syntax_3_16_1_0;
118 };
119 in
120 {
121 cabal-install =
122 let
123 cabal-install = super.cabal-install.overrideScope cabalInstallOverlay;
124 scope = cabal-install.scope;
125 in
126 # Some dead code is not properly eliminated on aarch64-darwin, leading
127 # to bogus references to some dependencies.
128 overrideCabal (
129 old:
130 lib.optionalAttrs (pkgs.stdenv.hostPlatform.isDarwin && pkgs.stdenv.hostPlatform.isAarch64) {
131 postInstall = ''
132 ${old.postInstall or ""}
133 remove-references-to -t ${scope.HTTP} "$out/bin/.cabal-wrapped"
134 # if we don't override Cabal, it is taken from ghc's core libs
135 remove-references-to -t ${
136 if scope.Cabal != null then scope.Cabal else scope.ghc
137 } "$out/bin/.cabal-wrapped"
138 '';
139 }
140 ) cabal-install;
141
142 cabal-install-solver = super.cabal-install-solver.overrideScope cabalInstallOverlay;
143
144 # Needs cabal-install >= 3.8 /as well as/ matching Cabal
145 guardian = lib.pipe (super.guardian.overrideScope cabalInstallOverlay) [
146 # Tests need internet access (run stack)
147 dontCheck
148 # May as well…
149 (self.generateOptparseApplicativeCompletions [ "guardian" ])
150 ];
151 }
152 )
153 cabal-install
154 cabal-install-solver
155 guardian
156 ;
157
158 # cabal2nix depends on hpack which doesn't support Cabal >= 3.16
159 cabal2nix-unstable = super.cabal2nix-unstable.override (
160 prev:
161 # Manually override the relevant dependencies to reduce rebuild amount
162 let
163 cabalOverride = {
164 Cabal = self.Cabal_3_14_2_0;
165 };
166 in
167 cabalOverride
168 // lib.mapAttrs (_: drv: drv.override cabalOverride) {
169 inherit (prev)
170 distribution-nixpkgs
171 hackage-db
172 hpack
173 ;
174 }
175 );
176
177 # Extensions wants a specific version of Cabal for its list of Haskell
178 # language extensions.
179 extensions = doJailbreak (
180 super.extensions.override {
181 Cabal =
182 if versionOlder self.ghc.version "9.10" then
183 self.Cabal_3_12_1_0
184 else
185 # use GHC bundled version
186 # N.B. for GHC >= 9.12, extensions needs to be upgraded
187 null;
188 }
189 );
190
191 #######################################
192 ### HASKELL-LANGUAGE-SERVER SECTION ###
193 #######################################
194
195 inherit
196 (
197 let
198 hls_overlay = lself: lsuper: {
199 # For fourmolu 0.18 and ormolu 0.7.7
200 Cabal-syntax = lself.Cabal-syntax_3_14_2_0;
201 Cabal = lself.Cabal_3_14_2_0;
202 # Jailbreaking cabal-install-parsers to make it pick Cabal 3.14 instead of 3.12.
203 cabal-install-parsers = doJailbreak lsuper.cabal-install-parsers;
204 # Need a newer version of extensions to be compatible with the newer Cabal
205 extensions = doJailbreak lself.extensions_0_1_1_0;
206 # For most ghc versions, we overrideScope Cabal in the configuration-ghc-???.nix,
207 # because some packages, like ormolu, need a newer Cabal version.
208 # ghc-paths is special because it depends on Cabal for building
209 # its Setup.hs, and therefor declares a Cabal dependency, but does
210 # not actually use it as a build dependency.
211 # That means ghc-paths can just use the ghc included Cabal version,
212 # without causing package-db incoherence and we should do that because
213 # otherwise we have different versions of ghc-paths
214 # around which have the same abi-hash, which can lead to confusions and conflicts.
215 ghc-paths = lsuper.ghc-paths.override { Cabal = null; };
216 };
217 in
218 lib.mapAttrs (_: pkg: pkg.overrideScope hls_overlay) (
219 super
220 // {
221 # HLS 2.11: Too strict bound on Diff 1.0.
222 haskell-language-server = lib.pipe super.haskell-language-server [
223 dontCheck
224 (
225 if versionOlder self.ghc.version "9.10" || versionOlder "9.11" self.ghc.version then
226 addBuildDepends [
227 self.apply-refact
228 self.hlint
229 self.refact
230 ]
231 else
232 lib.id
233 )
234 ];
235 }
236 )
237 )
238 hlint
239 fourmolu
240 ormolu
241 haskell-language-server
242 hls-plugin-api
243 ghcide
244 lsp-types
245 ;
246
247 # For -f-auto see cabal.project in haskell-language-server.
248 ghc-lib-parser-ex = addBuildDepend self.ghc-lib-parser (
249 disableCabalFlag "auto" super.ghc-lib-parser-ex
250 );
251
252 ###########################################
253 ### END HASKELL-LANGUAGE-SERVER SECTION ###
254 ###########################################
255
256 # network < 3.2.8
257 # bound only required when running under WINE: https://github.com/haskell/network/issues/604
258 iserv-proxy = doJailbreak super.iserv-proxy;
259
260 # Test ldap server test/ldap.js is missing from sdist
261 # https://github.com/supki/ldap-client/issues/18
262 ldap-client-og = dontCheck super.ldap-client-og;
263
264 # Support for template-haskell >= 2.16
265 language-haskell-extract = appendPatch (pkgs.fetchpatch {
266 url = "https://gitlab.haskell.org/ghc/head.hackage/-/raw/dfd024c9a336c752288ec35879017a43bd7e85a0/patches/language-haskell-extract-0.2.4.patch";
267 sha256 = "0w4y3v69nd3yafpml4gr23l94bdhbmx8xky48a59lckmz5x9fgxv";
268 }) (doJailbreak super.language-haskell-extract);
269
270 vector = overrideCabal (old: {
271 # vector-doctest seems to be broken when executed via ./Setup test
272 testTargets = [
273 "vector-tests-O0"
274 "vector-tests-O2"
275 ];
276 # inspection-testing doesn't work on all archs & ABIs
277 doCheck = !self.inspection-testing.meta.broken;
278 }) super.vector;
279
280 # https://github.com/lspitzner/data-tree-print/issues/4
281 data-tree-print = doJailbreak super.data-tree-print;
282
283 # Test suite hangs on 32bit. Unclear if this is a bug or not, but if so, then
284 # it has been present in past versions as well.
285 # https://github.com/haskell-unordered-containers/unordered-containers/issues/491
286 unordered-containers =
287 if pkgs.stdenv.hostPlatform.is32bit then
288 dontCheck super.unordered-containers
289 else
290 super.unordered-containers;
291
292 aeson =
293 # aeson's test suite includes some tests with big numbers that fail on 32bit
294 # https://github.com/haskell/aeson/issues/1060
295 dontCheckIf pkgs.stdenv.hostPlatform.is32bit
296 # Deal with infinite and NaN values generated by QuickCheck-2.14.3
297 super.aeson;
298
299 time-compat = overrideCabal (drv: {
300 testFlags = drv.testFlags or [ ] ++ [
301 "-p"
302 (lib.concatStringsSep "&&" [
303 # Precision tests often fail in VMs:
304 # https://github.com/haskellari/time-compat/issues/31
305 "!/getCurrentTime/"
306 "!/taiClock/"
307 ])
308 ];
309 }) super.time-compat;
310
311 # 2023-06-28: Test error: https://hydra.nixos.org/build/225565149
312 orbits = dontCheck super.orbits;
313
314 # 2025-02-10: Too strict bounds on tasty-quickcheck < 0.11
315 tasty-discover = doJailbreak super.tasty-discover;
316
317 # 2025-02-10: Too strict bounds on tasty < 1.5
318 tasty-hunit-compat = doJailbreak super.tasty-hunit-compat;
319
320 # Makes cross-compilation hang
321 # https://github.com/composewell/streamly/issues/2840
322 streamly-core = overrideCabal (drv: {
323 postPatch = ''
324 substituteInPlace src/Streamly/Internal/Data/Array/Stream.hs \
325 --replace-fail '{-# INLINE splitAtArrayListRev #-}' ""
326 '';
327 }) super.streamly-core;
328
329 # Expected failures are fixed as of GHC-9.10,
330 # but the tests haven't been updated yet.
331 # https://github.com/ocharles/weeder/issues/198
332 weeder = overrideCabal (drv: {
333 testFlags = drv.testFlags or [ ] ++ [
334 "-p"
335 "!/wrong/"
336 ];
337 }) super.weeder;
338
339 # Test suite doesn't find necessary test files when compiling
340 # https://github.com/yesodweb/shakespeare/issues/294
341 shakespeare = dontCheck super.shakespeare;
342
343 # Fixes test suite with mime-types >= 0.1.2.1
344 yesod-static = appendPatches [
345 (pkgs.fetchpatch {
346 name = "yesod-static-mime-types-0.1.2.1.patch";
347 url = "https://github.com/yesodweb/yesod/commit/5466dc3b984efcd1f963ae3c6c3a5241c4f625ee.patch";
348 sha256 = "sha256-UN8kdnSsZPRt8PdQdortd50cB+j9kUOmhECl6lfxIxI=";
349 includes = [ "**/EmbedProductionTest.hs" ];
350 stripLen = 1;
351 })
352 ] super.yesod-static;
353
354 # Work around -Werror failures until a more permanent solution is released
355 # https://github.com/haskell-cryptography/HsOpenSSL/issues/88
356 # https://github.com/haskell-cryptography/HsOpenSSL/issues/93
357 # https://github.com/haskell-cryptography/HsOpenSSL/issues/95
358 HsOpenSSL = appendConfigureFlags [
359 "--ghc-option=-optc=-Wno-error=incompatible-pointer-types"
360 ] super.HsOpenSSL;
361 # https://github.com/rethab/bindings-dsl/issues/46
362 bindings-libcddb = appendConfigureFlags [
363 "--ghc-option=-optc=-Wno-error=incompatible-pointer-types"
364 ] super.bindings-libcddb;
365 # https://github.com/ocramz/hdf5-lite/issues/3
366 hdf5-lite = appendConfigureFlags [
367 "--ghc-option=-optc=-Wno-error=implicit-function-declaration"
368 ] super.hdf5-lite;
369 # https://github.com/awkward-squad/termbox/issues/5
370 termbox-bindings-c = appendConfigureFlags [
371 "--ghc-option=-optc=-Wno-error=implicit-function-declaration"
372 ] super.termbox-bindings-c;
373
374 # There are numerical tests on random data, that may fail occasionally
375 lapack = dontCheck super.lapack;
376
377 # fpr-calc test suite depends on random >= 1.3
378 # see https://github.com/IntersectMBO/lsm-tree/issues/797
379 bloomfilter-blocked =
380 lib.warnIf (lib.versionAtLeast self.random.version "1.3")
381 "haskellPackages.bloomfilter-blocked: dontCheck can potentially be removed"
382 dontCheck
383 super.bloomfilter-blocked;
384
385 # support for transformers >= 0.6
386 lifted-base = appendPatch (fetchpatch {
387 url = "https://github.com/basvandijk/lifted-base/commit/6b61483ec7fd0d5d5d56ccb967860d42740781e8.patch";
388 sha256 = "sha256-b29AVDiEMcShceRJyKEauK/411UkOh3ME9AnKEYvcEs=";
389 }) super.lifted-base;
390
391 leveldb-haskell = overrideCabal (drv: {
392 version = "2024-05-05-unstable";
393 # Fix tests on mtl ≥ 2.3
394 # https://github.com/kim/leveldb-haskell/pull/42
395 src = pkgs.fetchFromGitHub {
396 owner = "kim";
397 repo = "leveldb-haskell";
398 rev = "3a505f3a7de0f5d14463538d7c2c9a9881a60eb9";
399 sha256 = "sha256-okUn5ZuWcj8vPr0GWXvO1LygNCrDfttkDaUoOt+FLA0=";
400 };
401 }) super.leveldb-haskell;
402
403 # 2025-08-08: Allow QuickCheck >= 2.15 in selective's test-suite
404 # https://github.com/snowleopard/selective/pull/81
405 selective = doJailbreak super.selective;
406
407 # 2025-09-03: Allow QuickCheck >= 2.15
408 # https://github.com/sw17ch/data-clist/pull/28
409 data-clist = doJailbreak super.data-clist;
410
411 # 2025-09-20: Allow QuickCheck >= 2.15
412 # https://github.com/raehik/binrep/issues/14
413 binrep = warnAfterVersion "1.1.0" (doJailbreak super.binrep);
414
415 # 2024-06-23: Hourglass is archived and had its last commit 6 years ago.
416 # Patch is needed to add support for time 1.10, which is only used in the tests
417 # https://github.com/vincenthz/hs-hourglass/pull/56
418 # Jailbreak is needed because a hackage revision added the (correct) time <1.10 bound.
419 hourglass = doJailbreak (
420 appendPatches [
421 (pkgs.fetchpatch {
422 name = "hourglass-pr-56.patch";
423 url = "https://github.com/vincenthz/hs-hourglass/commit/cfc2a4b01f9993b1b51432f0a95fa6730d9a558a.patch";
424 sha256 = "sha256-gntZf7RkaR4qzrhjrXSC69jE44SknPDBmfs4z9rVa5Q=";
425 })
426 ] super.hourglass
427 );
428
429 # Arion's test suite needs a Nixpkgs, which is cumbersome to do from Nixpkgs
430 # itself. For instance, pkgs.path has dirty sources and puts a huge .git in the
431 # store. Testing is done upstream.
432 arion-compose = dontCheck super.arion-compose;
433
434 # Don't call setEnv in parallel in the test suite (which leads to flaky failures)
435 env-extra = appendPatches [
436 (pkgs.fetchpatch {
437 name = "env-extra-no-parallel-setenv.patch";
438 url = "https://github.com/d12frosted/env-extra/commit/4fcbc031b210e71e4243fcfe7c48d381e2f51d78.patch";
439 sha256 = "sha256-EbXk+VOmxMJAMCMTXpTiW8fkbNI9za7f1alzCeaJaV4=";
440 excludes = [ "package.yaml" ];
441 })
442 ] super.env-extra;
443
444 # This used to be a core package provided by GHC, but then the compiler
445 # dropped it. We define the name here to make sure that old packages which
446 # depend on this library still evaluate (even though they won't compile
447 # successfully with recent versions of the compiler).
448 bin-package-db = null;
449
450 # waiting for release: https://github.com/jwiegley/c2hsc/issues/41
451 c2hsc = appendPatch (fetchpatch {
452 url = "https://github.com/jwiegley/c2hsc/commit/490ecab202e0de7fc995eedf744ad3cb408b53cc.patch";
453 sha256 = "1c7knpvxr7p8c159jkyk6w29653z5yzgjjqj11130bbb8mk9qhq7";
454 }) super.c2hsc;
455
456 # 2025-02-10: Too strict bounds on bytestring < 0.12
457 ghc-debug-common = doJailbreak super.ghc-debug-common;
458 ghc-debug-client = lib.pipe super.ghc-debug-client [
459 (warnAfterVersion "0.7.0.0")
460 # 2025-09-18: Too strict bounds on containers < 0.7
461 doJailbreak
462 ];
463
464 # https://github.com/agrafix/superbuffer/issues/4
465 # Too strict bounds on bytestring < 0.12
466 superbuffer = doJailbreak super.superbuffer;
467
468 # Infinite recursion with test enabled.
469 # 2025-02-14: Too strict bounds on attoparsec < 0.14
470 attoparsec-varword = doJailbreak (dontCheck super.attoparsec-varword);
471
472 # These packages (and their reverse deps) cannot be built with profiling enabled.
473 ghc-heap-view = lib.pipe super.ghc-heap-view [
474 disableLibraryProfiling
475 (warnAfterVersion "0.6.4.1")
476 # 2025-09-18: Too strict bounds on base < 4.20
477 doJailbreak
478 ];
479 ghc-datasize = disableLibraryProfiling super.ghc-datasize;
480 ghc-vis = disableLibraryProfiling super.ghc-vis;
481
482 # 2025-09-20: Too strict upper bound on base (<4.20)
483 # https://github.com/phadej/regression-simple/issues/13
484 regression-simple = doJailbreak super.regression-simple;
485
486 # Fix 32bit struct being used for 64bit syscall on 32bit platforms
487 # https://github.com/haskellari/lukko/issues/15
488 lukko = appendPatches [
489 (fetchpatch {
490 name = "lukko-ofd-locking-32bit.patch";
491 url = "https://github.com/haskellari/lukko/pull/32/commits/4e69ffad996c3771f50017b97375af249dd17c85.patch";
492 sha256 = "0n8vig48irjz0jckc20dzc23k16fl5hznrc0a81y02ms72msfwi1";
493 })
494 ] super.lukko;
495
496 # Relax version constraints (network < 3.2, text < 2.1)
497 # https://github.com/essandess/adblock2privoxy/pull/43
498 adblock2privoxy = doJailbreak super.adblock2privoxy;
499
500 # 2025-07-15: Relax version constraints (network < 3.2)
501 # Fixed upstream, but unreleased: https://github.com/fumieval/mason/pull/14
502 mason = (warnAfterVersion "0.2.6") (doJailbreak super.mason);
503
504 # Missing test file https://gitlab.com/dpwiz/hs-jpeg-turbo/-/issues/1
505 jpeg-turbo = dontCheck super.jpeg-turbo;
506 JuicyPixels-jpeg-turbo = dontCheck super.JuicyPixels-jpeg-turbo;
507
508 # Fixes compilation for basement on i686
509 # https://github.com/haskell-foundation/foundation/pull/573
510 basement = appendPatches [
511 (fetchpatch {
512 name = "basement-i686-ghc-9.4.patch";
513 url = "https://github.com/haskell-foundation/foundation/pull/573/commits/38be2c93acb6f459d24ed6c626981c35ccf44095.patch";
514 sha256 = "17kz8glfim29vyhj8idw8bdh3id5sl9zaq18zzih3schfvyjppj7";
515 stripLen = 1;
516 })
517 ] super.basement;
518
519 # Fixes compilation of memory with GHC >= 9.4 on 32bit platforms
520 # https://github.com/vincenthz/hs-memory/pull/99
521 memory = appendPatches [
522 (fetchpatch {
523 name = "memory-i686-ghc-9.4.patch";
524 url = "https://github.com/vincenthz/hs-memory/pull/99/commits/2738929ce15b4c8704bbbac24a08539b5d4bf30e.patch";
525 sha256 = "196rj83iq2k249132xsyhbbl81qi1j23h9pa6mmk6zvxpcf63yfw";
526 })
527 ] super.memory;
528
529 # Depends on outdated deps hedgehog < 1.4, doctest < 0.12 for tests
530 # As well as deepseq < 1.5 (so it forbids GHC 9.8)
531 hw-fingertree = doJailbreak super.hw-fingertree;
532
533 # Test suite is slow and sometimes comes up with counter examples.
534 # Upstream is aware (https://github.com/isovector/nspace/issues/1),
535 # if it's a bug, at least doesn't seem to be nixpkgs-specific.
536 nspace = dontCheck super.nspace;
537
538 # Unreleased commits relaxing bounds on various dependencies
539 gitit = appendPatches [
540 (fetchpatch {
541 name = "gitit-allow-hoauth2-2.14.patch";
542 url = "https://github.com/jgm/gitit/commit/58a226c48b37f076ccc1b94ad88a9ffc05f983cc.patch";
543 sha256 = "1fvfzbas18vsv9qvddp6g82hy9hdgz34n51w6dpkd7cm4sl07pjv";
544 })
545 (fetchpatch {
546 name = "gitit-allow-pandoc-3.6.patch";
547 url = "https://github.com/jgm/gitit/commit/c57c790fa0db81d383f22901a0db4ffe90f1bfcc.patch";
548 sha256 = "0nbzxyc9gkhkag1fhv3qmw5zgblhbz0axrlsismrcvdzr28amii8";
549 })
550 (fetchpatch {
551 name = "gitit-allow-zlib-0.7-network-3.2.patch";
552 url = "https://github.com/jgm/gitit/commit/efaee62bc32c558e618ad34458fa2ef85cb8eb1e.patch";
553 sha256 = "1ghky3afnib56w102mh09cz2alfyq743164mnjywwfl6a6yl6i5h";
554 })
555 (pkgs.fetchpatch {
556 name = "gitit-pandoc-3.7.patch";
557 url = "https://github.com/jgm/gitit/commit/211631ffdd8b520f368220e5cfbd8d64a28b43b6.patch";
558 hash = "sha256-eVjwiGNfEKmeamsUfTNCxJm7OJ7N9xuYHfFllwtwRi0=";
559 })
560 (pkgs.fetchpatch {
561 name = "gitit-xml-conduit-1.10.patch";
562 url = "https://github.com/jgm/gitit/commit/88d1a91795e08ea573d50f4f24e2e1c5d6da5002.patch";
563 hash = "sha256-LrP51+Uxp1VPKrDkIhVlm3kSAnYkodiENtLbWHxV3B4=";
564 })
565 ] super.gitit;
566
567 # Cut off infinite recursion via test suites:
568 #
569 # tasty-quickcheck-0.11.1 (test) -> regex-tdfa-1.3.2.4 (test) -> doctest-parallel-0.4
570 # -> ghc-exactprint-1.10.0.0 -> extra-1.8 -> quickcheck-instances-0.3.33 (test)
571 # -> uuid-types-1.0.6 (test) -> tasty-quickcheck-0.11.1
572 #
573 # tasty-quickcheck is probably the least risky test suite to disable.
574 tasty-quickcheck = dontCheck super.tasty-quickcheck;
575
576 # https://github.com/schuelermine/ret/issues/3
577 ret = doJailbreak super.ret; # base < 4.19
578
579 # The latest release on hackage has an upper bound on containers which
580 # breaks the build, though it works with the version of containers present
581 # and the upper bound doesn't exist in code anymore:
582 # > https://github.com/roelvandijk/numerals
583 numerals = doJailbreak (dontCheck super.numerals);
584
585 # Bound on containers is too strict but jailbreak doesn't work with conditional flags
586 # https://github.com/NixOS/jailbreak-cabal/issues/24
587 containers-unicode-symbols = overrideCabal {
588 postPatch = ''
589 substituteInPlace containers-unicode-symbols.cabal \
590 --replace 'containers >= 0.5 && < 0.6.5' 'containers'
591 '';
592 } super.containers-unicode-symbols;
593
594 # Test file not included on hackage
595 numerals-base = dontCheck (doJailbreak super.numerals-base);
596
597 # This test keeps being aborted because it runs too quietly for too long
598 Lazy-Pbkdf2 =
599 if pkgs.stdenv.hostPlatform.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2;
600
601 # check requires mysql server
602 mysql-simple = dontCheck super.mysql-simple;
603
604 # Hackage tarball only includes what is supported by `cabal install git-annex`,
605 # but we want e.g. completions as well. See
606 # https://web.archive.org/web/20160724083703/https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
607 # or git-annex @ 3571b077a1244330cc736181ee04b4d258a78476 doc/bugs/bash_completion_file_is_missing*
608 git-annex = lib.pipe super.git-annex [
609 (overrideCabal (drv: {
610 src = pkgs.fetchgit {
611 name = "git-annex-${super.git-annex.version}-src";
612 url = "git://git-annex.branchable.com/";
613 tag = super.git-annex.version;
614 sha256 = "sha256-Cnkohi1sl7kS4JECCsNDbxXKIWBus1gDcWoO3xZtXoM=";
615 # delete android and Android directories which cause issues on
616 # darwin (case insensitive directory). Since we don't need them
617 # during the build process, we can delete it to prevent a hash
618 # mismatch on darwin.
619 postFetch = ''
620 rm -r $out/doc/?ndroid*
621 '';
622 };
623
624 patches = drv.patches or [ ] ++ [
625 # Prevent .desktop files from being installed to $out/usr/share.
626 # TODO(@sternenseemann): submit upstreamable patch resolving this
627 # (this should be possible by also taking PREFIX into account).
628 ./patches/git-annex-no-usr-prefix.patch
629 ];
630
631 postPatch = ''
632 substituteInPlace Makefile \
633 --replace-fail 'InstallDesktopFile $(PREFIX)/bin/git-annex' \
634 'InstallDesktopFile git-annex'
635 '';
636 }))
637 ];
638
639 # Fix test trying to access /home directory
640 shell-conduit = overrideCabal (drv: {
641 postPatch = "sed -i s/home/tmp/ test/Spec.hs";
642 }) super.shell-conduit;
643
644 # No maintenance planned until eventual removal
645 # https://github.com/NixOS/nixfmt/issues/340#issuecomment-3315920564
646 nixfmt = doJailbreak super.nixfmt;
647
648 # Too strict upper bounds on turtle and text
649 # https://github.com/awakesecurity/nix-deploy/issues/35
650 nix-deploy = doJailbreak super.nix-deploy;
651
652 call-stack = appendPatches [
653 # Fixes test suites with GHC >= 9.10
654 (pkgs.fetchpatch {
655 name = "call-stack-tests-normalize-pkg-name.patch";
656 url = "https://github.com/sol/call-stack/commit/cbbee23ce309d18201951e16a8b6d30b57e2bdf9.patch";
657 sha256 = "sha256-xkdjf8zXW+UMxot2Z8WYYmvAJsT+VGKXWGt19mZZwCg=";
658 includes = [ "test/Data/CallStackSpec.hs" ];
659 })
660 ] super.call-stack;
661
662 # Too strict upper bound on algebraic-graphs
663 # https://github.com/awakesecurity/nix-graph/issues/5
664 nix-graph = doJailbreak super.nix-graph;
665
666 # Pass in `pkgs.nix` for the required tools. This means that overriding
667 # them sort of works, but only if you override all instances.
668 nix-paths =
669 if pkgs.stdenv.hostPlatform == pkgs.stdenv.buildPlatform then
670 super.nix-paths.override {
671 nix-build = pkgs.nix;
672 nix-env = pkgs.nix;
673 nix-hash = pkgs.nix;
674 nix-instantiate = pkgs.nix;
675 nix-store = pkgs.nix;
676 }
677 else
678 # When cross-compiling, nix-paths won't be able to detect
679 # the path to the (host) tools at build time from PATH,
680 # so we instruct it to check at runtime.
681 enableCabalFlag "allow-relative-paths" (
682 super.nix-paths.override {
683 nix-build = null;
684 nix-env = null;
685 nix-hash = null;
686 nix-instantiate = null;
687 nix-store = null;
688 }
689 );
690
691 # Fix `mv` not working on directories
692 turtle = appendPatches [
693 (pkgs.fetchpatch {
694 name = "turtle-fix-mv.patch";
695 url = "https://github.com/Gabriella439/turtle/commit/b3975531f8d6345da54b005f226adab095085865.patch";
696 sha256 = "sha256-EqvMQpRz/7hbY6wJ0xG8Ou6oKhwWdpjzBv+NPW6tnSY=";
697 includes = [ "src/Turtle/Prelude.hs" ];
698 })
699 ] super.turtle;
700
701 # Allow inspection-testing >= 0.6 in test suite
702 algebraic-graphs = appendPatch (pkgs.fetchpatch2 {
703 name = "algebraic-graphs-0.7-allow-inspection-testing-0.6.patch";
704 url = "https://github.com/snowleopard/alga/commit/d4e43fb42db05413459fb2df493361d5a666588a.patch";
705 hash = "sha256-feGEuALVJ0Zl8zJPIfgEFry9eH/MxA0Aw7zlDq0PC/s=";
706 }) super.algebraic-graphs;
707
708 inspection-testing = overrideCabal (drv: {
709 broken =
710 with pkgs.stdenv.hostPlatform;
711 # Relies on DWARF <-> register mappings in GHC, not available for every arch & ABI
712 # (check dwarfReturnRegNo in compiler/GHC/CmmToAsm/Dwarf/Constants.hs, that's where ppc64 elfv1 gives up)
713 !(isx86 || (isPower64 && isAbiElfv2) || isAarch64)
714 # We compile static with -fexternal-interpreter which is incompatible with plugins
715 || (isStatic && lib.versionAtLeast self.ghc.version "9.10");
716 }) super.inspection-testing;
717
718 # Too strict bounds on filepath, hpsec, tasty, tasty-quickcheck, transformers
719 # https://github.com/illia-shkroba/pfile/issues/3
720 pfile = doJailbreak super.pfile;
721
722 # Overly strict bounds on postgresql-simple (< 0.7), tasty (< 1.5) and tasty-quickcheck (< 0.11)
723 # https://github.com/tdammers/migrant/pull/5
724 migrant-core = doJailbreak super.migrant-core;
725 migrant-sqlite-simple = doJailbreak super.migrant-sqlite-simple;
726 migrant-hdbc = doJailbreak super.migrant-hdbc;
727 migrant-postgresql-simple = doJailbreak super.migrant-postgresql-simple;
728
729 # https://github.com/froozen/kademlia/issues/2
730 kademlia = dontCheck super.kademlia;
731
732 # 2025-09-03: jailbreak for base 4.20 and hashable 1.5
733 # https://github.com/typeclasses/ascii-case/pulls/1
734 ascii-case = lib.pipe super.ascii-case [
735 (warnAfterVersion "1.0.1.4")
736 doJailbreak
737 ];
738
739 # Tests require older versions of tasty.
740 hzk = dontCheck super.hzk;
741
742 # 2025-12-11: Too strict bound on containers (<0.7)
743 # https://github.com/byteverse/disjoint-containers/pull/15
744 disjoint-containers = doJailbreak super.disjoint-containers;
745
746 # Test suite doesn't compile with 9.6
747 # https://github.com/sebastiaanvisser/fclabels/issues/45
748 # Doesn't compile with 9.8 at all
749 # https://github.com/sebastiaanvisser/fclabels/issues/46
750 fclabels =
751 if lib.versionOlder self.ghc.version "9.8" then
752 dontCheck super.fclabels
753 else
754 dontDistribute (markBroken super.fclabels);
755
756 # Bounds on base are too strict. Upstream is no longer maintained:
757 # https://github.com/phadej/regex-applicative-text/issues/13 krank:ignore-line
758 regex-applicative-text = doJailbreak super.regex-applicative-text;
759
760 # Tests require a Kafka broker running locally
761 haskakafka = dontCheck super.haskakafka;
762
763 bindings-levmar = addExtraLibrary pkgs.blas super.bindings-levmar;
764
765 # Requires wrapQtAppsHook
766 qtah-cpp-qt5 = overrideCabal (drv: {
767 buildDepends = [ pkgs.qt5.wrapQtAppsHook ];
768 }) super.qtah-cpp-qt5;
769
770 # The Haddock phase fails for one reason or another.
771 deepseq-magic = dontHaddock super.deepseq-magic;
772 feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
773 hoodle-core = dontHaddock super.hoodle-core;
774 hsc3-db = dontHaddock super.hsc3-db;
775
776 # Fix build with time >= 1.10 while retaining compat with time < 1.9
777 mbox = appendPatch ./patches/mbox-time-1.10.patch (
778 overrideCabal {
779 editedCabalFile = null;
780 revision = null;
781 } super.mbox
782 );
783
784 # https://github.com/techtangents/ablist/issues/1
785 ABList = dontCheck super.ABList;
786
787 inline-c-cpp = overrideCabal (drv: {
788 postPatch = (drv.postPatch or "") + ''
789 substituteInPlace inline-c-cpp.cabal --replace "-optc-std=c++11" ""
790 '';
791 }) super.inline-c-cpp;
792
793 inline-java = addBuildDepend pkgs.jdk super.inline-java;
794
795 # Too strict upper bound on unicode-transforms
796 # <https://gitlab.com/ngua/ipa-hs/-/issues/1>
797 ipa = doJailbreak super.ipa;
798
799 # Upstream notified by e-mail.
800 permutation = dontCheck super.permutation;
801
802 # Test suite depends on source code being available
803 simple-affine-space = dontCheck super.simple-affine-space;
804
805 # Fails no apparent reason. Upstream has been notified by e-mail.
806 assertions = dontCheck super.assertions;
807
808 # These packages try to execute non-existent external programs.
809 cmaes = dontCheck super.cmaes; # http://hydra.cryp.to/build/498725/log/raw
810 dbmigrations = dontCheck super.dbmigrations;
811 filestore = dontCheck super.filestore;
812 graceful = dontCheck super.graceful;
813 ide-backend = dontCheck super.ide-backend;
814 marquise = dontCheck super.marquise; # https://github.com/anchor/marquise/issues/69
815 memcached-binary = dontCheck super.memcached-binary;
816 msgpack-rpc = dontCheck super.msgpack-rpc;
817 persistent-zookeeper = dontCheck super.persistent-zookeeper;
818 pocket-dns = dontCheck super.pocket-dns;
819 squeal-postgresql = dontCheck super.squeal-postgresql;
820 postgrest-ws = dontCheck super.postgrest-ws;
821 snowball = dontCheck super.snowball;
822 sophia = dontCheck super.sophia;
823 test-sandbox = dontCheck super.test-sandbox;
824 texrunner = dontCheck super.texrunner;
825 wai-middleware-hmac = dontCheck super.wai-middleware-hmac;
826 xkbcommon = dontCheck super.xkbcommon;
827 xmlgen = dontCheck super.xmlgen;
828 HerbiePlugin = dontCheck super.HerbiePlugin;
829 wai-cors = dontCheck super.wai-cors;
830
831 # Needs QuickCheck >= 2.16, but Stackage is currently on 2.15
832 integer-logarithms =
833 lib.warnIf (lib.versionAtLeast super.QuickCheck.version "2.16")
834 "override for haskellPackages.integer-logarithms may no longer be needed"
835 (dontCheck super.integer-logarithms);
836
837 # Apply patch fixing an incorrect QuickCheck property which occasionally causes false negatives
838 # https://github.com/Philonous/xml-picklers/issues/5
839 xml-picklers = appendPatch (pkgs.fetchpatch {
840 name = "xml-picklers-fix-prop-xp-attribute.patch";
841 url = "https://github.com/Philonous/xml-picklers/commit/887e5416b5e61c589cadf775d82013eb87751ea2.patch";
842 sha256 = "sha256-EAyTVkAqCvJ0lRD0+q/htzBJ8iD5qP47j5i2fKhRrlw=";
843 }) super.xml-picklers;
844
845 pandoc-crossref = lib.pipe super.pandoc-crossref [
846 # https://github.com/lierdakil/pandoc-crossref/issues/492
847 doJailbreak
848 # We are still using pandoc == 3.7.*
849 (appendPatch (
850 lib.warnIf (lib.versionAtLeast self.pandoc.version "3.8")
851 "haskellPackages.pandoc-crossref: remove revert of pandoc-3.8 patch"
852 pkgs.fetchpatch
853 {
854 name = "pandoc-crossref-revert-pandoc-3.8-highlight.patch";
855 url = "https://github.com/lierdakil/pandoc-crossref/commit/b0c35a59d5a802f6525407bfeb31699ffd0b4671.patch";
856 hash = "sha256-MIITL9Qr3+1fKf1sTwHzXPcYTt3YC+vr9CpMgqsBXlc=";
857 revert = true;
858 }
859 ))
860 ];
861
862 pandoc = appendPatches [
863 # Adjust text fixtures for djot >= 0.1.2.3, patch extracted from unrelated change.
864 (pkgs.fetchpatch {
865 name = "pandoc-djot-0.1.2.3.patch";
866 url = "https://github.com/jgm/pandoc/commit/643712ca70b924c0edcc059699aa1ee42234be34.patch";
867 hash = "sha256-khDkb1PzC0fTaWTq3T04UvgoI+XefOJMaTV1d3Du8BU=";
868 includes = [ "test/djot-reader.native" ];
869 })
870 ] super.pandoc;
871
872 # Too strict upper bound on data-default-class (< 0.2)
873 # https://github.com/stackbuilders/dotenv-hs/issues/203
874 dotenv = doJailbreak super.dotenv;
875
876 # 2022-01-29: Tests require package to be in ghc-db.
877 aeson-schemas = dontCheck super.aeson-schemas;
878
879 matterhorn = doJailbreak super.matterhorn;
880
881 # Too strict bounds on transformers and resourcet
882 # https://github.com/alphaHeavy/lzma-conduit/issues/23 krank:ignore-line
883 lzma-conduit = doJailbreak super.lzma-conduit;
884
885 # 2020-06-05: HACK: does not pass own build suite - `dontCheck`
886 # 2024-01-15: too strict bound on free < 5.2
887 hnix = doJailbreak super.hnix;
888 # 2025-09-13: too strict bound on algebraic-graphs
889 hnix-store-core = warnAfterVersion "0.6.1.0" (doJailbreak super.hnix-store-core);
890
891 # hnix doesn't support hnix-store-core >= 0.8: https://github.com/haskell-nix/hnix/pull/1112
892 hnix-store-core_0_8_0_0 = doDistribute super.hnix-store-core_0_8_0_0;
893 hnix-store-db = super.hnix-store-db.override { hnix-store-core = self.hnix-store-core_0_8_0_0; };
894 hnix-store-json = super.hnix-store-json.override {
895 hnix-store-core = self.hnix-store-core_0_8_0_0;
896 };
897 hnix-store-readonly = super.hnix-store-readonly.override {
898 hnix-store-core = self.hnix-store-core_0_8_0_0;
899 };
900 hnix-store-remote_0_7_0_0 = doDistribute (
901 super.hnix-store-remote_0_7_0_0.override { hnix-store-core = self.hnix-store-core_0_8_0_0; }
902 );
903 hnix-store-tests = super.hnix-store-tests.override {
904 hnix-store-core = self.hnix-store-core_0_8_0_0;
905 };
906
907 # Fails for non-obvious reasons while attempting to use doctest.
908 focuslist = dontCheck super.focuslist;
909 search = dontCheck super.search;
910
911 # https://github.com/ekmett/structures/issues/3
912 structures = dontCheck super.structures;
913
914 # ships broken Setup.hs https://github.com/facebook/Haxl/issues/165
915 # https://github.com/facebook/Haxl/pull/164
916 haxl = overrideCabal (drv: {
917 postPatch = ''
918 ${drv.postPatch or ""}
919 rm Setup.hs
920 '';
921 # non-deterministic failure https://github.com/facebook/Haxl/issues/85
922 # doesn't compile with text-2.1.2 in <2.5.1.2
923 doCheck = false;
924 }) super.haxl;
925
926 # Disable test suites to fix the build.
927 acme-year = dontCheck super.acme-year; # http://hydra.cryp.to/build/497858/log/raw
928 aeson-lens = dontCheck super.aeson-lens; # http://hydra.cryp.to/build/496769/log/raw
929 angel = dontCheck super.angel;
930 apache-md5 = dontCheck super.apache-md5; # http://hydra.cryp.to/build/498709/nixlog/1/raw
931 app-settings = dontCheck super.app-settings; # http://hydra.cryp.to/build/497327/log/raw
932 aws-kinesis = dontCheck super.aws-kinesis; # needs aws credentials for testing
933 binary-protocol = dontCheck super.binary-protocol; # http://hydra.cryp.to/build/499749/log/raw
934 binary-search = dontCheck super.binary-search;
935 bloodhound = dontCheck super.bloodhound; # https://github.com/plow-technologies/quickcheck-arbitrary-template/issues/10
936 buildwrapper = dontCheck super.buildwrapper;
937 burst-detection = dontCheck super.burst-detection; # http://hydra.cryp.to/build/496948/log/raw
938 cabal-meta = dontCheck super.cabal-meta; # http://hydra.cryp.to/build/497892/log/raw
939 camfort = dontCheck super.camfort;
940 cjk = dontCheck super.cjk;
941 CLI = dontCheck super.CLI; # Upstream has no issue tracker.
942 command-qq = dontCheck super.command-qq; # http://hydra.cryp.to/build/499042/log/raw
943 conduit-connection = dontCheck super.conduit-connection;
944 craftwerk = dontCheck super.craftwerk;
945 crc = dontCheck super.crc; # https://github.com/MichaelXavier/crc/issues/2
946 damnpacket = dontCheck super.damnpacket; # http://hydra.cryp.to/build/496923/log
947 Deadpan-DDP = dontCheck super.Deadpan-DDP; # http://hydra.cryp.to/build/496418/log/raw
948 DigitalOcean = dontCheck super.DigitalOcean;
949 directory-layout = dontCheck super.directory-layout;
950 dom-selector = dontCheck super.dom-selector; # http://hydra.cryp.to/build/497670/log/raw
951 dotfs = dontCheck super.dotfs; # http://hydra.cryp.to/build/498599/log/raw
952 DRBG = dontCheck super.DRBG; # http://hydra.cryp.to/build/498245/nixlog/1/raw
953 ed25519 = dontCheck super.ed25519;
954 etcd = dontCheck super.etcd;
955 fb = dontCheck super.fb; # needs credentials for Facebook
956 fptest = dontCheck super.fptest; # http://hydra.cryp.to/build/499124/log/raw
957 friday-juicypixels = dontCheck super.friday-juicypixels; # tarball missing test/rgba8.png
958 ghc-events-parallel = dontCheck super.ghc-events-parallel; # http://hydra.cryp.to/build/496828/log/raw
959 ghc-imported-from = dontCheck super.ghc-imported-from;
960 ghc-parmake = dontCheck super.ghc-parmake;
961 git-vogue = dontCheck super.git-vogue;
962 github-rest = dontCheck super.github-rest; # test suite needs the network
963 gitlib-cmdline = dontCheck super.gitlib-cmdline;
964 hackport = dontCheck super.hackport;
965 hadoop-formats = dontCheck super.hadoop-formats;
966 hashed-storage = dontCheck super.hashed-storage;
967 hashring = dontCheck super.hashring;
968 haxl-facebook = dontCheck super.haxl-facebook; # needs facebook credentials for testing
969 hdbi-postgresql = dontCheck super.hdbi-postgresql;
970 hedis = dontCheck super.hedis;
971 hedis-pile = dontCheck super.hedis-pile;
972 hedis-tags = dontCheck super.hedis-tags;
973 hgdbmi = dontCheck super.hgdbmi;
974 hi = dontCheck super.hi;
975 hierarchical-clustering = dontCheck super.hierarchical-clustering;
976 hlibgit2 = disableHardening [ "format" ] super.hlibgit2;
977 hmatrix-tests = dontCheck super.hmatrix-tests;
978 hquery = dontCheck super.hquery;
979 hs2048 = dontCheck super.hs2048;
980 hsbencher = dontCheck super.hsbencher;
981 # 2025-02-11: Too strict bounds on bytestring
982 hsexif = doJailbreak (dontCheck super.hsexif);
983 hspec-server = dontCheck super.hspec-server;
984 HTF = overrideCabal (orig: {
985 # The scripts in scripts/ are needed to build the test suite.
986 preBuild = "patchShebangs --build scripts";
987 # test suite doesn't compile with aeson >= 2.0
988 # https://github.com/skogsbaer/HTF/issues/114
989 doCheck = false;
990 }) super.HTF;
991 htsn = dontCheck super.htsn;
992 htsn-import = dontCheck super.htsn-import;
993 http-link-header = dontCheck super.http-link-header; # non deterministic failure https://hydra.nixos.org/build/75041105
994 influxdb = dontCheck super.influxdb;
995 integer-roots = dontCheck super.integer-roots; # requires an old version of smallcheck, will be fixed in > 1.0
996 itanium-abi = dontCheck super.itanium-abi;
997 katt = dontCheck super.katt;
998 language-slice = dontCheck super.language-slice;
999
1000 # Group of libraries by same upstream maintainer for interacting with
1001 # Telegram messenger. Bit-rotted a bit since 2020.
1002 tdlib = appendPatch (fetchpatch {
1003 # https://github.com/poscat0x04/tdlib/pull/3
1004 url = "https://github.com/poscat0x04/tdlib/commit/8eb9ecbc98c65a715469fdb8b67793ab375eda31.patch";
1005 hash = "sha256-vEI7fTsiafNGBBl4VUXVCClW6xKLi+iK53fjcubgkpc=";
1006 }) (doJailbreak super.tdlib);
1007 tdlib-types = doJailbreak super.tdlib-types;
1008 tdlib-gen = doJailbreak super.tdlib-gen;
1009 # https://github.com/poscat0x04/language-tl/pull/1
1010 language-tl = doJailbreak super.language-tl;
1011
1012 ldap-client = dontCheck super.ldap-client;
1013 lensref = dontCheck super.lensref;
1014 lvmrun = disableHardening [ "format" ] (dontCheck super.lvmrun);
1015 matplotlib = dontCheck super.matplotlib;
1016 milena = dontCheck super.milena;
1017 modular-arithmetic = dontCheck super.modular-arithmetic; # tests require a very old Glob (0.7.*)
1018 nats-queue = dontCheck super.nats-queue;
1019 network-dbus = dontCheck super.network-dbus;
1020 notcpp = dontCheck super.notcpp;
1021 ntp-control = dontCheck super.ntp-control;
1022 odpic-raw = dontCheck super.odpic-raw; # needs a running oracle database server
1023 opaleye = dontCheck super.opaleye;
1024 openpgp = dontCheck super.openpgp;
1025 optional = dontCheck super.optional;
1026 orgmode-parse = dontCheck super.orgmode-parse;
1027 os-release = dontCheck super.os-release;
1028 parameterized = dontCheck super.parameterized; # https://github.com/louispan/parameterized/issues/2
1029 persistent-redis = dontCheck super.persistent-redis;
1030 pipes-extra = dontCheck super.pipes-extra;
1031 posix-pty = dontCheck super.posix-pty; # https://github.com/merijn/posix-pty/issues/12
1032 postgresql-binary = dontCheck super.postgresql-binary; # needs a running postgresql server
1033 powerdns = dontCheck super.powerdns; # Tests require networking and external services
1034 process-streaming = dontCheck super.process-streaming;
1035 punycode = dontCheck super.punycode;
1036 pwstore-cli = dontCheck super.pwstore-cli;
1037 quantities = dontCheck super.quantities;
1038 redis-io = dontCheck super.redis-io;
1039 rethinkdb = dontCheck super.rethinkdb;
1040 Rlang-QQ = dontCheck super.Rlang-QQ;
1041 sai-shape-syb = dontCheck super.sai-shape-syb;
1042 scp-streams = dontCheck super.scp-streams;
1043 sdl2 = dontCheck super.sdl2; # the test suite needs an x server
1044 separated = dontCheck super.separated;
1045 shadowsocks = dontCheck super.shadowsocks;
1046 shake-language-c = dontCheck super.shake-language-c;
1047 sourcemap = dontCheck super.sourcemap;
1048 static-resources = dontCheck super.static-resources;
1049 svndump = dontCheck super.svndump;
1050 tar = dontCheck super.tar; # https://hydra.nixos.org/build/25088435/nixlog/2 (fails only on 32-bit)
1051 thumbnail-plus = dontCheck super.thumbnail-plus;
1052 tickle = dontCheck super.tickle;
1053 tpdb = dontCheck super.tpdb;
1054 translatable-intset = dontCheck super.translatable-intset;
1055 ua-parser = dontCheck super.ua-parser;
1056 unagi-chan = dontCheck super.unagi-chan;
1057 WebBits = dontCheck super.WebBits; # http://hydra.cryp.to/build/499604/log/raw
1058 webdriver-angular = dontCheck super.webdriver-angular;
1059 xsd = dontCheck super.xsd;
1060
1061 # Allow template-haskell 2.22
1062 # https://github.com/well-typed/ixset-typed/pull/23
1063 ixset-typed =
1064 appendPatches
1065 [
1066 (fetchpatch {
1067 name = "ixset-typed-template-haskell-2.21.patch";
1068 url = "https://github.com/well-typed/ixset-typed/commit/085cccbaa845bff4255028ed5ff71402e98a953a.patch";
1069 sha256 = "1cz30dmby3ff3zcnyz7d2xsqls7zxmzig7bgzy2gfa24s3sa32jg";
1070 })
1071 (fetchpatch {
1072 name = "ixset-typed-template-haskell-2.22.patch";
1073 url = "https://github.com/well-typed/ixset-typed/commit/0d699386eab5c4f6aa53e4de41defb460acbbd99.patch";
1074 sha256 = "04lbfvaww05czhnld674c9hm952f94xpicf08hby8xpksfj7rs41";
1075 })
1076 ]
1077 (
1078 overrideCabal {
1079 editedCabalFile = null;
1080 revision = null;
1081 } super.ixset-typed
1082 );
1083
1084 # https://github.com/eli-frey/cmdtheline/issues/28
1085 cmdtheline = dontCheck super.cmdtheline;
1086
1087 # https://github.com/bos/snappy/issues/1
1088 # https://github.com/bos/snappy/pull/10
1089 snappy = dontCheck super.snappy;
1090
1091 # https://github.com/vincenthz/hs-crypto-pubkey/issues/20
1092 crypto-pubkey = dontCheck super.crypto-pubkey;
1093
1094 # https://github.com/joeyadams/haskell-stm-delay/issues/3
1095 stm-delay = dontCheck super.stm-delay;
1096
1097 # Skip test that checks a race condition between stm and stm-queue
1098 stm-queue = overrideCabal (drv: {
1099 testFlags = drv.testFlags or [ ] ++ [
1100 "--skip"
1101 "/Data.Queue/behaves faster than TQueue in its worst case/"
1102 ];
1103 }) super.stm-queue;
1104
1105 # https://github.com/pixbi/duplo/issues/25
1106 duplo = doJailbreak super.duplo;
1107
1108 # https://github.com/evanrinehart/mikmod/issues/1
1109 mikmod = addExtraLibrary pkgs.libmikmod super.mikmod;
1110
1111 # Missing module.
1112 rematch = dontCheck super.rematch; # https://github.com/tcrayford/rematch/issues/5
1113 rematch-text = dontCheck super.rematch-text; # https://github.com/tcrayford/rematch/issues/6
1114
1115 # Package exists only to be example of documentation, yet it has restrictive
1116 # "base" dependency.
1117 haddock-cheatsheet = doJailbreak super.haddock-cheatsheet;
1118
1119 # no haddock since this is an umbrella package.
1120 cloud-haskell = dontHaddock super.cloud-haskell;
1121
1122 # This packages compiles 4+ hours on a fast machine. That's just unreasonable.
1123 CHXHtml = dontDistribute super.CHXHtml;
1124
1125 # https://github.com/NixOS/nixpkgs/issues/6350
1126 paypal-adaptive-hoops = overrideCabal (drv: {
1127 testTargets = [ "local" ];
1128 }) super.paypal-adaptive-hoops;
1129
1130 # Avoid "QuickCheck >=2.3 && <2.10" dependency we cannot fulfill in lts-11.x.
1131 test-framework = dontCheck super.test-framework;
1132
1133 # Depends on broken test-framework-quickcheck.
1134 apiary = dontCheck super.apiary;
1135 apiary-authenticate = dontCheck super.apiary-authenticate;
1136 apiary-clientsession = dontCheck super.apiary-clientsession;
1137 apiary-cookie = dontCheck super.apiary-cookie;
1138 apiary-eventsource = dontCheck super.apiary-eventsource;
1139 apiary-logger = dontCheck super.apiary-logger;
1140 apiary-memcached = dontCheck super.apiary-memcached;
1141 apiary-mongoDB = dontCheck super.apiary-mongoDB;
1142 apiary-persistent = dontCheck super.apiary-persistent;
1143 apiary-purescript = dontCheck super.apiary-purescript;
1144 apiary-session = dontCheck super.apiary-session;
1145 apiary-websockets = dontCheck super.apiary-websockets;
1146
1147 # https://github.com/junjihashimoto/test-sandbox-compose/issues/2
1148 test-sandbox-compose = dontCheck super.test-sandbox-compose;
1149
1150 # Test suite won't compile against tasty-hunit 0.10.x.
1151 binary-parsers = dontCheck super.binary-parsers;
1152
1153 # https://github.com/ndmitchell/shake/issues/804
1154 shake = dontCheck super.shake;
1155
1156 # https://github.com/nushio3/doctest-prop/issues/1
1157 doctest-prop = dontCheck super.doctest-prop;
1158
1159 # Missing file in source distribution:
1160 # - https://github.com/karun012/doctest-discover/issues/22
1161 # - https://github.com/karun012/doctest-discover/issues/23
1162 #
1163 # When these are fixed the following needs to be enabled again:
1164 #
1165 # # Depends on itself for testing
1166 # doctest-discover = addBuildTool super.doctest-discover
1167 # (if pkgs.stdenv.buildPlatform != pkgs.stdenv.hostPlatform
1168 # then self.buildHaskellPackages.doctest-discover
1169 # else dontCheck super.doctest-discover);
1170 doctest-discover = dontCheck super.doctest-discover;
1171
1172 # Known issue with nondeterministic test suite failure
1173 # https://github.com/nomeata/tasty-expected-failure/issues/21
1174 tasty-expected-failure = dontCheck super.tasty-expected-failure;
1175
1176 # https://github.com/yaccz/saturnin/issues/3
1177 Saturnin = dontCheck super.Saturnin;
1178
1179 # https://github.com/kkardzis/curlhs/issues/6
1180 curlhs = dontCheck super.curlhs;
1181
1182 # curl 7.87.0 introduces a preprocessor typechecker of sorts which fails on
1183 # incorrect usages of curl_easy_getopt and similar functions. Presumably
1184 # because the wrappers in curlc.c don't use static values for the different
1185 # arguments to curl_easy_getinfo, it complains and needs to be disabled.
1186 # https://github.com/GaloisInc/curl/issues/28
1187 curl = appendConfigureFlags [
1188 "--ghc-option=-DCURL_DISABLE_TYPECHECK"
1189 ] super.curl;
1190
1191 # https://github.com/alphaHeavy/lzma-enumerator/issues/3
1192 lzma-enumerator = dontCheck super.lzma-enumerator;
1193
1194 # FPCO's fork of Cabal won't succeed its test suite.
1195 Cabal-ide-backend = dontCheck super.Cabal-ide-backend;
1196
1197 # This package can't be built on non-Windows systems.
1198 inline-c-win32 = dontDistribute super.inline-c-win32;
1199 Southpaw = dontDistribute super.Southpaw;
1200
1201 # https://ghc.haskell.org/trac/ghc/ticket/9825
1202 vimus = overrideCabal (drv: {
1203 broken = pkgs.stdenv.hostPlatform.isLinux && pkgs.stdenv.hostPlatform.isi686;
1204 }) super.vimus;
1205
1206 # https://github.com/kazu-yamamoto/logger/issues/42
1207 logger = dontCheck super.logger;
1208
1209 # Byte-compile elisp code for Emacs.
1210 ghc-mod = overrideCabal (drv: {
1211 preCheck = "export HOME=$TMPDIR";
1212 testToolDepends = drv.testToolDepends or [ ] ++ [ self.cabal-install ];
1213 doCheck = false; # https://github.com/kazu-yamamoto/ghc-mod/issues/335
1214 executableToolDepends = drv.executableToolDepends or [ ] ++ [ pkgs.buildPackages.emacs ];
1215 postInstall = ''
1216 local lispdir=( "$data/share/${self.ghc.targetPrefix}${self.ghc.haskellCompilerName}/*/${drv.pname}-${drv.version}/elisp" )
1217 make -C $lispdir
1218 mkdir -p $data/share/emacs/site-lisp
1219 ln -s "$lispdir/"*.el{,c} $data/share/emacs/site-lisp/
1220 '';
1221 }) super.ghc-mod;
1222
1223 # 2022-03-19: Testsuite is failing: https://github.com/puffnfresh/haskell-jwt/issues/2
1224 jwt = dontCheck super.jwt;
1225
1226 # 2024-03-10: Getting the test suite to run requires a correctly crafted GHC_ENVIRONMENT variable.
1227 graphql-client = dontCheck super.graphql-client;
1228
1229 # Build the latest git version instead of the official release. This isn't
1230 # ideal, but Chris doesn't seem to make official releases any more.
1231 structured-haskell-mode = overrideCabal (drv: {
1232 src = pkgs.fetchFromGitHub {
1233 owner = "projectional-haskell";
1234 repo = "structured-haskell-mode";
1235 rev = "7f9df73f45d107017c18ce4835bbc190dfe6782e";
1236 sha256 = "1jcc30048j369jgsbbmkb63whs4wb37bq21jrm3r6ry22izndsqa";
1237 };
1238 version = "20170205-git";
1239 editedCabalFile = null;
1240 # Make elisp files available at a location where people expect it. We
1241 # cannot easily byte-compile these files, unfortunately, because they
1242 # depend on a new version of haskell-mode that we don't have yet.
1243 postInstall = ''
1244 local lispdir=( "$data/share/${self.ghc.targetPrefix}${self.ghc.haskellCompilerName}/"*"/${drv.pname}-"*"/elisp" )
1245 mkdir -p $data/share/emacs
1246 ln -s $lispdir $data/share/emacs/site-lisp
1247 '';
1248 }) super.structured-haskell-mode;
1249
1250 # Make elisp files available at a location where people expect it.
1251 hindent = (
1252 overrideCabal (drv: {
1253 # We cannot easily byte-compile these files, unfortunately, because they
1254 # depend on a new version of haskell-mode that we don't have yet.
1255 postInstall = ''
1256 local lispdir=( "$data/share/${self.ghc.targetPrefix}${self.ghc.haskellCompilerName}/"*"/${drv.pname}-"*"/elisp" )
1257 mkdir -p $data/share/emacs
1258 ln -s $lispdir $data/share/emacs/site-lisp
1259 '';
1260 }) super.hindent
1261 );
1262
1263 # https://github.com/basvandijk/concurrent-extra/issues/12
1264 concurrent-extra = dontCheck super.concurrent-extra;
1265
1266 # https://github.com/pxqr/base32-bytestring/issues/4
1267 base32-bytestring = dontCheck super.base32-bytestring;
1268
1269 # Too strict bounds on bytestring (<0.12) on the test suite
1270 # https://github.com/emilypi/Base32/issues/24
1271 base32 = doJailbreak super.base32;
1272
1273 # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
1274 # https://github.com/augustss/djinn/pull/8
1275 djinn = overrideSrc {
1276 version = "unstable-2023-11-20";
1277 src = pkgs.fetchFromGitHub {
1278 owner = "augustss";
1279 repo = "djinn";
1280 rev = "69b3fbad9f42f0b1b2c49977976b8588c967d76e";
1281 hash = "sha256-ibxn6DXk4pqsOsWhi8KcrlH/THnuMWvIu5ENOn3H3So=";
1282 };
1283 } super.djinn;
1284
1285 # https://github.com/Philonous/hs-stun/pull/1
1286 # Remove if a version > 0.1.0.1 ever gets released.
1287 stunclient = overrideCabal (drv: {
1288 postPatch = (drv.postPatch or "") + ''
1289 substituteInPlace source/Network/Stun/MappedAddress.hs --replace "import Network.Endian" ""
1290 '';
1291 }) super.stunclient;
1292
1293 d-bus =
1294 let
1295 # The latest release on hackage is missing necessary patches for recent compilers
1296 # https://github.com/Philonous/d-bus/issues/24
1297 newer = overrideSrc {
1298 version = "unstable-2021-01-08";
1299 src = pkgs.fetchFromGitHub {
1300 owner = "Philonous";
1301 repo = "d-bus";
1302 rev = "fb8a948a3b9d51db618454328dbe18fb1f313c70";
1303 hash = "sha256-R7/+okb6t9DAkPVUV70QdYJW8vRcvBdz4zKJT13jb3A=";
1304 };
1305 } super.d-bus;
1306 # Add now required extension on recent compilers.
1307 # https://github.com/Philonous/d-bus/pull/23
1308 in
1309 appendPatch (fetchpatch {
1310 url = "https://github.com/Philonous/d-bus/commit/e5f37900a3a301c41d98bdaa134754894c705681.patch";
1311 sha256 = "6rQ7H9t483sJe1x95yLPAZ0BKTaRjgqQvvrQv7HkJRE=";
1312 }) newer;
1313
1314 # * The standard libraries are compiled separately.
1315 # * We need a few patches from master to fix compilation with
1316 # updated dependencies which can be
1317 # removed when the next idris release comes around.
1318 idris = lib.pipe super.idris [
1319 dontCheck
1320 doJailbreak
1321 (appendPatch (fetchpatch {
1322 name = "idris-bumps.patch";
1323 url = "https://github.com/idris-lang/Idris-dev/compare/c99bc9e4af4ea32d2172f873152b76122ee4ee14...cf78f0fb337d50f4f0dba235b6bbe67030f1ff47.patch";
1324 hash = "sha256-RCMIRHIAK1PCm4B7v+5gXNd2buHXIqyAxei4bU8+eCk=";
1325 }))
1326 (self.generateOptparseApplicativeCompletions [ "idris" ])
1327 ];
1328
1329 # https://hydra.nixos.org/build/42769611/nixlog/1/raw
1330 # note: the library is unmaintained, no upstream issue
1331 dataenc = doJailbreak super.dataenc;
1332
1333 # Test suite occasionally runs for 1+ days on Hydra.
1334 distributed-process-tests = dontCheck super.distributed-process-tests;
1335
1336 # https://github.com/mulby/diff-parse/issues/9
1337 diff-parse = doJailbreak super.diff-parse;
1338
1339 # No upstream issue tracker
1340 hspec-expectations-pretty-diff = dontCheck super.hspec-expectations-pretty-diff;
1341
1342 # The tests spuriously fail
1343 libmpd = dontCheck super.libmpd;
1344
1345 # https://github.com/xu-hao/namespace/issues/1
1346 namespace = doJailbreak super.namespace;
1347
1348 # https://github.com/danidiaz/streaming-eversion/issues/1
1349 streaming-eversion = dontCheck super.streaming-eversion;
1350
1351 # https://github.com/danidiaz/tailfile-hinotify/issues/2
1352 tailfile-hinotify = doJailbreak (dontCheck super.tailfile-hinotify);
1353
1354 # Test suite fails: https://github.com/lymar/hastache/issues/46.
1355 # Don't install internal mkReadme tool.
1356 hastache = overrideCabal (drv: {
1357 doCheck = false;
1358 postInstall = "rm $out/bin/mkReadme && rmdir $out/bin";
1359 }) super.hastache;
1360
1361 # 2025-09-01: Merged patch from upstream to fix bounds:
1362 optics = appendPatch (fetchpatch {
1363 name = "optics-fix-inspection-testing-bound";
1364 url = "https://github.com/well-typed/optics/commit/d16b1ac5476c89cc94fb108fe1be268791affca6.patch";
1365 sha256 = "sha256-w0L/EXSWRQkCkFnvXYel0BNgQQhxn6zATkD3GZS5gz8=";
1366 relative = "optics";
1367 }) super.optics;
1368
1369 # 2025-02-10: Too strict bounds on text < 2.1
1370 digestive-functors-blaze = doJailbreak super.digestive-functors-blaze;
1371
1372 # Wrap the generated binaries to include their run-time dependencies in
1373 # $PATH. Also, cryptol needs a version of sbl that's newer than what we have
1374 # in LTS-13.x.
1375 cryptol = overrideCabal (drv: {
1376 buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ];
1377 postInstall = drv.postInstall or "" + ''
1378 for b in $out/bin/cryptol $out/bin/cryptol-html; do
1379 wrapProgram $b --prefix 'PATH' ':' "${lib.getBin pkgs.z3}/bin"
1380 done
1381 '';
1382 }) super.cryptol;
1383
1384 # Z3 removed aliases for boolean types in 4.12
1385 inherit
1386 (
1387 let
1388 fixZ3 = appendConfigureFlags [
1389 "--hsc2hs-option=-DZ3_Bool=bool"
1390 "--hsc2hs-option=-DZ3_TRUE=true"
1391 "--hsc2hs-option=-DZ3_FALSE=false"
1392 ];
1393 in
1394 {
1395 z3 = fixZ3 super.z3;
1396 hz3 = fixZ3 super.hz3;
1397 }
1398 )
1399 z3
1400 hz3
1401 ;
1402
1403 # test suite requires git and does a bunch of git operations
1404 restless-git = dontCheck super.restless-git;
1405
1406 # Work around https://github.com/haskell/c2hs/issues/192.
1407 c2hs = dontCheck super.c2hs;
1408
1409 # Needs pginit to function and pgrep to verify.
1410 tmp-postgres = overrideCabal (drv: {
1411 # Flaky tests: https://github.com/jfischoff/tmp-postgres/issues/274
1412 doCheck = false;
1413
1414 preCheck = ''
1415 export HOME="$TMPDIR"
1416 ''
1417 + (drv.preCheck or "");
1418 libraryToolDepends = drv.libraryToolDepends or [ ] ++ [ pkgs.buildPackages.postgresql ];
1419 testToolDepends = drv.testToolDepends or [ ] ++ [ pkgs.procps ];
1420 }) super.tmp-postgres;
1421
1422 # Needs QuickCheck <2.10, which we don't have.
1423 edit-distance = doJailbreak super.edit-distance;
1424
1425 # With ghc-8.2.x haddock would time out for unknown reason
1426 # See https://github.com/haskell/haddock/issues/679
1427 language-puppet = dontHaddock super.language-puppet;
1428
1429 # https://github.com/alphaHeavy/protobuf/issues/34
1430 protobuf = dontCheck super.protobuf;
1431
1432 # The test suite does not know how to find the 'alex' binary.
1433 alex = overrideCabal (drv: {
1434 testSystemDepends = (drv.testSystemDepends or [ ]) ++ [ pkgs.which ];
1435 preCheck = ''export PATH="$PWD/dist/build/alex:$PATH"'';
1436 }) super.alex;
1437
1438 # Compiles some C or C++ source which requires these headers
1439 VulkanMemoryAllocator = addExtraLibrary pkgs.vulkan-headers super.VulkanMemoryAllocator;
1440 vulkan-utils = addExtraLibrary pkgs.vulkan-headers super.vulkan-utils;
1441
1442 # Generate cli completions for dhall.
1443 dhall = self.generateOptparseApplicativeCompletions [ "dhall" ] super.dhall;
1444 # 2025-01-27: allow aeson >= 2.2, 9.8 versions of text and bytestring
1445 dhall-json = self.generateOptparseApplicativeCompletions [ "dhall-to-json" "dhall-to-yaml" ] (
1446 doJailbreak super.dhall-json
1447 );
1448 dhall-nix = self.generateOptparseApplicativeCompletions [ "dhall-to-nix" ] super.dhall-nix;
1449 # 2025-02-10: jailbreak due to aeson < 2.2, hnix < 0.17, transformers < 0.6, turtle < 1.6
1450 dhall-nixpkgs = self.generateOptparseApplicativeCompletions [ "dhall-to-nixpkgs" ] (
1451 doJailbreak super.dhall-nixpkgs
1452 );
1453 dhall-yaml = self.generateOptparseApplicativeCompletions [ "dhall-to-yaml-ng" "yaml-to-dhall" ] (
1454 doJailbreak super.dhall-yaml
1455 ); # bytestring <0.12, text<2.1
1456 # 2025-02-14: see also https://github.com/dhall-lang/dhall-haskell/issues/2638
1457 dhall-bash = doJailbreak super.dhall-bash; # bytestring <0.12, text <2.1
1458
1459 # musl fixes
1460 # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test
1461 unix-time = if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.unix-time else super.unix-time;
1462
1463 # hslua has tests that break when using musl.
1464 # https://github.com/hslua/hslua/issues/106
1465 hslua-core =
1466 if pkgs.stdenv.hostPlatform.isMusl then dontCheck super.hslua-core else super.hslua-core;
1467
1468 # The test suite runs for 20+ minutes on a very fast machine, which feels kinda disproportionate.
1469 prettyprinter = dontCheck super.prettyprinter;
1470
1471 # Fix with Cabal 2.2, https://github.com/guillaume-nargeot/hpc-coveralls/pull/73
1472 hpc-coveralls = appendPatch (fetchpatch {
1473 url = "https://github.com/guillaume-nargeot/hpc-coveralls/pull/73/commits/344217f513b7adfb9037f73026f5d928be98d07f.patch";
1474 sha256 = "056rk58v9h114mjx62f41x971xn9p3nhsazcf9zrcyxh1ymrdm8j";
1475 }) super.hpc-coveralls;
1476
1477 # sexpr is old, broken and has no issue-tracker. Let's fix it the best we can.
1478 sexpr = appendPatch ./patches/sexpr-0.2.1.patch (
1479 overrideCabal (drv: {
1480 isExecutable = false;
1481 libraryHaskellDepends = drv.libraryHaskellDepends ++ [ self.QuickCheck ];
1482 }) super.sexpr
1483 );
1484
1485 # https://github.com/haskell/hoopl/issues/50
1486 hoopl = dontCheck super.hoopl;
1487
1488 # TODO(Profpatsch): factor out local nix store setup from
1489 # lib/tests/release.nix and use that for the tests of libnix
1490 # libnix = overrideCabal (old: {
1491 # testToolDepends = old.testToolDepends or [] ++ [ pkgs.nix ];
1492 # }) super.libnix;
1493 libnix = dontCheck super.libnix;
1494
1495 # dontCheck: The test suite tries to mess with ALSA, which doesn't work in the build sandbox.
1496 xmobar = dontCheck super.xmobar;
1497
1498 # 2025-02-10: Too strict bounds on aeson < 1.5
1499 json-alt = doJailbreak super.json-alt;
1500
1501 # https://github.com/mgajda/json-autotype/issues/25
1502 json-autotype = dontCheck super.json-autotype;
1503
1504 gargoyle-postgresql-nix = addBuildTool [ pkgs.postgresql ] super.gargoyle-postgresql-nix;
1505
1506 # PortMidi needs an environment variable to have ALSA find its plugins:
1507 # https://github.com/NixOS/nixpkgs/issues/6860
1508 PortMidi = overrideCabal (drv: {
1509 patches = (drv.patches or [ ]) ++ [
1510 ./patches/portmidi-alsa-plugins.patch
1511 # Fixes compilation with GCC15 which defaults to C23
1512 # https://github.com/PortMidi/PortMidi-haskell/pull/24
1513 (pkgs.fetchpatch {
1514 name = "PortMidi-C23.patch";
1515 url = "https://github.com/PortMidi/PortMidi-haskell/commit/24b6ce1c77137b055ae57a99080d5f1616490197.patch";
1516 sha256 = "sha256-PqnWA/DMW00Gtfa4YDV6iC/MXwQ3gFsNESbx+daw4C4=";
1517 })
1518 ];
1519 postPatch = (drv.postPatch or "") + ''
1520 substituteInPlace portmidi/pm_linux/pmlinuxalsa.c \
1521 --replace @alsa_plugin_dir@ "${pkgs.alsa-plugins}/lib/alsa-lib"
1522 '';
1523 }) super.PortMidi;
1524
1525 scat = overrideCabal (drv: {
1526 patches = [
1527 # Fix build with base >= 4.11 (https://github.com/redelmann/scat/pull/6)
1528 (fetchpatch {
1529 url = "https://github.com/redelmann/scat/commit/429f22944b7634b8789cb3805292bcc2b23e3e9f.diff";
1530 hash = "sha256-FLr1KfBaSYzI6MiZIBY1CkgAb5sThvvgjrSAN8EV0h4=";
1531 })
1532 # Fix build with vector >= 0.13, mtl >= 2.3 (https://github.com/redelmann/scat/pull/8)
1533 (fetchpatch {
1534 url = "https://github.com/redelmann/scat/compare/e8e064f7e6a152fe25a6ccd743573a16974239d0..c6a3636548d628f32d8edc73a333188ce24141a7.patch";
1535 hash = "sha256-BU4MUn/TnZHpZBlX1vDHE7QZva5yhlLTb8zwpx7UScI";
1536 })
1537 ];
1538 }) super.scat;
1539
1540 # Fix build with attr-2.4.48 (see #53716)
1541 xattr = appendPatch ./patches/xattr-fix-build.patch super.xattr;
1542
1543 # Requires API keys to run tests
1544 algolia = dontCheck super.algolia;
1545 openai-hs = dontCheck super.openai-hs;
1546
1547 # antiope-s3's latest stackage version has a hspec < 2.6 requirement, but
1548 # hspec which isn't in stackage is already past that
1549 antiope-s3 = doJailbreak super.antiope-s3;
1550
1551 # Has tasty < 1.2 requirement, but works just fine with 1.2
1552 temporary-resourcet = doJailbreak super.temporary-resourcet;
1553
1554 # Test suite doesn't work with current QuickCheck
1555 # https://github.com/pruvisto/heap/issues/11
1556 heap = dontCheck super.heap;
1557
1558 # Test suite won't link for no apparent reason.
1559 constraints-deriving = dontCheck super.constraints-deriving;
1560
1561 # https://github.com/erikd/hjsmin/issues/32
1562 hjsmin = dontCheck super.hjsmin;
1563
1564 # Remove for hail > 0.2.0.0
1565 hail = doJailbreak super.hail;
1566
1567 # https://github.com/kazu-yamamoto/dns/issues/150
1568 dns = dontCheck super.dns;
1569
1570 # https://github.com/haskell-servant/servant-ekg/issues/15
1571 servant-ekg = doJailbreak super.servant-ekg;
1572
1573 # it wants to build a statically linked binary by default
1574 hledger-flow = overrideCabal (drv: {
1575 postPatch = (drv.postPatch or "") + ''
1576 substituteInPlace hledger-flow.cabal --replace "-static" ""
1577 '';
1578 }) super.hledger-flow;
1579
1580 # Chart-tests needs and compiles some modules from Chart itself
1581 Chart-tests = overrideCabal (old: {
1582 # 2025-02-13: Too strict bounds on lens < 5.3 and vector < 0.13
1583 jailbreak = true;
1584 preCheck = old.preCheck or "" + ''
1585 tar --one-top-level=../chart --strip-components=1 -xf ${self.Chart.src}
1586 '';
1587 }) (addExtraLibrary self.QuickCheck super.Chart-tests);
1588
1589 # 2026-01-17: too strict bounds on QuickCheck < 2.15
1590 # https://github.com/hasufell/lzma-static/pull/15
1591 xz = doJailbreak super.xz;
1592
1593 ghcup =
1594 lib.throwIf pkgs.config.allowAliases
1595 "ghcup cannot be used to install the haskell tool chain on NixOS because there is no compatible bindist. Please install ghc etc. via Nix. On non-NixOS systems you can use the ghcup shell installer"
1596 super.ghcup;
1597
1598 # This breaks because of version bounds, but compiles and runs fine.
1599 # Last commit is 5 years ago, so we likely won't get upstream fixed soon.
1600 # https://bitbucket.org/rvlm/hakyll-contrib-hyphenation/src/master/
1601 # Therefore we jailbreak it.
1602 hakyll-contrib-hyphenation = doJailbreak super.hakyll-contrib-hyphenation;
1603
1604 # The test suite depends on an impure cabal-install installation in
1605 # $HOME, which we don't have in our build sandbox.
1606 cabal-install-parsers = dontCheck super.cabal-install-parsers;
1607
1608 # Test suite requires database
1609 persistent-mysql = dontCheck super.persistent-mysql;
1610
1611 dhall-lsp-server = appendPatches [
1612 # Add support for lsp >= 2.7
1613 (pkgs.fetchpatch {
1614 name = "dhall-lsp-server-lsp-2.7.patch";
1615 url = "https://github.com/dhall-lang/dhall-haskell/commit/a621e1438df5865d966597e2e1b0bb37e8311447.patch";
1616 sha256 = "sha256-7edxNIeIM/trl2SUXybvSzkscvr1kj5+tZF50IeTOgY=";
1617 relative = "dhall-lsp-server";
1618 })
1619 # Fix build with text >= 2.1.2
1620 (pkgs.fetchpatch {
1621 name = "dhall-lsp-server-text-2.1.2.patch";
1622 url = "https://github.com/dhall-lang/dhall-haskell/commit/9f2d4d44be643229784bfc502ab49184ec82bc05.patch";
1623 hash = "sha256-cwNH5+7YY8UbA9zHhTRfVaqtIMowZGfFT5Kj+wSlapA=";
1624 relative = "dhall-lsp-server";
1625 })
1626 ] super.dhall-lsp-server;
1627
1628 # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392
1629 reflex-dom-core = lib.pipe super.reflex-dom-core [
1630 doDistribute
1631 dontCheck
1632 unmarkBroken
1633 ];
1634
1635 # Unreleased patch fixing compilation with text >= 2.1.2
1636 dom-parser = appendPatches [
1637 (pkgs.fetchpatch {
1638 name = "dom-parser-text-2.1.2.patch";
1639 url = "https://github.com/typeable/dom-parser/commit/b8d9af75595072026a1706e94750dba55e65326b.patch";
1640 hash = "sha256-c7ea0YCtXhv4u+pTuxcWoISa+yV2oEtxS/RmC6Bbx1M=";
1641 })
1642 ] super.dom-parser;
1643
1644 # Requires jsaddle-webkit2gtk to build outside of pkgsCross.ghcjs
1645 # which requires a version of libsoup that's marked as insecure
1646 reflex-dom = dontDistribute super.reflex-dom;
1647 reflex-localize-dom = dontDistribute super.reflex-localize-dom;
1648 trasa-reflex = dontDistribute super.trasa-reflex;
1649
1650 # https://github.com/ghcjs/jsaddle/pull/160/
1651 jsaddle = appendPatch (fetchpatch {
1652 name = "fix-on-firefox.patch";
1653 url = "https://github.com/ghcjs/jsaddle/commit/71ef7f0cbc60a380ba0dc299e758c8f90cc4b526.patch";
1654 relative = "jsaddle";
1655 sha256 = "sha256-IBOX74r+lyywVWp0ZucoseeevFrGiInkq7V6RoWADNU=";
1656 }) super.jsaddle;
1657 jsaddle-warp = appendPatch (fetchpatch {
1658 name = "fix-on-firefox.patch";
1659 url = "https://github.com/ghcjs/jsaddle/commit/71ef7f0cbc60a380ba0dc299e758c8f90cc4b526.patch";
1660 relative = "jsaddle-warp";
1661 sha256 = "sha256-jYEUOkP4Kv3yBjo3SbN7sruV+T5R5XWbRFcCUAa6HvE=";
1662 }) super.jsaddle-warp;
1663
1664 # https://github.com/ghcjs/jsaddle/issues/151
1665 jsaddle-webkit2gtk =
1666 overrideCabal
1667 (drv: {
1668 postPatch = drv.postPatch or "" + ''
1669 substituteInPlace jsaddle-webkit2gtk.cabal --replace-fail gi-gtk gi-gtk3
1670 substituteInPlace jsaddle-webkit2gtk.cabal --replace-fail gi-javascriptcore gi-javascriptcore4
1671 '';
1672 })
1673 (
1674 super.jsaddle-webkit2gtk.override {
1675 gi-gtk = self.gi-gtk3;
1676 gi-javascriptcore = self.gi-javascriptcore4;
1677 }
1678 );
1679
1680 # https://github.com/danfran/cabal-macosx/pull/19
1681 cabal-macosx = appendPatch (fetchpatch {
1682 name = "support-cabal-3.14.patch";
1683 url = "https://github.com/danfran/cabal-macosx/commit/24ef850a4c743e525433a6f9eaa3f8924408db10.patch";
1684 excludes = [ ".gitignore" ];
1685 sha256 = "sha256-ORonk31yStWH0I83B4hCpnap7KK4o49UVrwdrZjCRaU=";
1686 }) super.cabal-macosx;
1687
1688 # 2020-06-24: Jailbreaking because of restrictive test dep bounds
1689 # Upstream issue: https://github.com/kowainik/trial/issues/62
1690 trial = doJailbreak super.trial;
1691
1692 # 2024-03-19: Fix for mtl >= 2.3
1693 pattern-arrows = lib.pipe super.pattern-arrows [
1694 doJailbreak
1695 (appendPatches [ ./patches/pattern-arrows-add-fix-import.patch ])
1696 ];
1697
1698 # posix-waitpid - Fix CPid constructor import and version bounds
1699 # Broken since 2011 (GHC 7.4+), marked broken in nixpkgs since 2016
1700 # The original package has no repo however there's a fork with the
1701 # fix at https://github.com/GaloisInc/posix-waitpid
1702 posix-waitpid = lib.pipe super.posix-waitpid [
1703 (overrideCabal (drv: {
1704 postPatch = ''
1705 substituteInPlace System/Posix/Waitpid.hs \
1706 --replace 'import System.Posix.Types (CPid)' \
1707 'import System.Posix.Types (CPid(..))'
1708 '';
1709 }))
1710 doJailbreak
1711 ];
1712
1713 # 2024-03-19: Fix for mtl >= 2.3
1714 cheapskate = lib.pipe super.cheapskate [
1715 doJailbreak
1716 (appendPatches [ ./patches/cheapskate-mtl-2-3-support.patch ])
1717 ];
1718
1719 # 2020-06-24: Tests are broken in hackage distribution.
1720 # See: https://github.com/robstewart57/rdf4h/issues/39
1721 rdf4h = dontCheck super.rdf4h;
1722
1723 # Fixed upstream but not released to Hackage yet:
1724 # https://github.com/k0001/hs-libsodium/issues/2
1725 libsodium = overrideCabal (drv: {
1726 libraryToolDepends = (drv.libraryToolDepends or [ ]) ++ [ self.buildHaskellPackages.c2hs ];
1727 }) super.libsodium;
1728
1729 svgcairo = overrideCabal (drv: {
1730 patches = drv.patches or [ ] ++ [
1731 # Remove when https://github.com/gtk2hs/svgcairo/pull/12 goes in.
1732 (fetchpatch {
1733 url = "https://github.com/gtk2hs/svgcairo/commit/348c60b99c284557a522baaf47db69322a0a8b67.patch";
1734 sha256 = "0akhq6klmykvqd5wsbdfnnl309f80ds19zgq06sh1mmggi54dnf3";
1735 })
1736 # Remove when https://github.com/gtk2hs/svgcairo/pull/13 goes in.
1737 (fetchpatch {
1738 url = "https://github.com/dalpd/svgcairo/commit/d1e0d7ae04c1edca83d5b782e464524cdda6ae85.patch";
1739 sha256 = "1pq9ld9z67zsxj8vqjf82qwckcp69lvvnrjb7wsyb5jc6jaj3q0a";
1740 })
1741 ];
1742 editedCabalFile = null;
1743 revision = null;
1744 }) super.svgcairo;
1745
1746 # Too strict upper bound on tasty-hedgehog (<1.5)
1747 # https://github.com/typeclasses/ascii-predicates/pull/1
1748 ascii-predicates = doJailbreak super.ascii-predicates;
1749 ascii-numbers = doJailbreak super.ascii-numbers;
1750
1751 # Upstream PR: https://github.com/jkff/splot/pull/9
1752 splot = appendPatch (fetchpatch {
1753 url = "https://github.com/jkff/splot/commit/a6710b05470d25cb5373481cf1cfc1febd686407.patch";
1754 sha256 = "1c5ck2ibag2gcyag6rjivmlwdlp5k0dmr8nhk7wlkzq2vh7zgw63";
1755 }) super.splot;
1756
1757 # Support ansi-terminal 1.1: https://github.com/facebookincubator/retrie/pull/73
1758 retrie = appendPatch (fetchpatch {
1759 url = "https://github.com/facebookincubator/retrie/commit/b0df07178133b5b049e3e7764acba0e5e3fa57af.patch";
1760 sha256 = "sha256-Ea/u6PctSxy4h8VySjOwD2xW3TbwY1qE49dG9Av1SbQ=";
1761 }) super.retrie;
1762
1763 # Fails with encoding problems, likely needs locale data.
1764 # Test can be executed by adding which to testToolDepends and
1765 # $PWD/dist/build/haskeline-examples-Test to $PATH.
1766 haskeline_0_8_4_1 = doDistribute (dontCheck super.haskeline_0_8_4_1);
1767
1768 # Test suite fails to compile https://github.com/agrafix/Spock/issues/177
1769 Spock = dontCheck super.Spock;
1770
1771 Spock-core = appendPatches [
1772 (fetchpatch {
1773 url = "https://github.com/agrafix/Spock/commit/d0b51fa60a83bfa5c1b5fc8fced18001e7321701.patch";
1774 sha256 = "sha256-l9voiczOOdYVBP/BNEUvqARb21t0Rp2kpsNbRFUWSLg=";
1775 stripLen = 1;
1776 })
1777 ] (doJailbreak super.Spock-core);
1778
1779 hcoord = overrideCabal (drv: {
1780 # Remove when https://github.com/danfran/hcoord/pull/8 is merged.
1781 patches = [
1782 (fetchpatch {
1783 url = "https://github.com/danfran/hcoord/pull/8/commits/762738b9e4284139f5c21f553667a9975bad688e.patch";
1784 sha256 = "03r4jg9a6xh7w3jz3g4bs7ff35wa4rrmjgcggq51y0jc1sjqvhyz";
1785 })
1786 ];
1787 # Remove when https://github.com/danfran/hcoord/issues/9 is closed.
1788 doCheck = false;
1789 }) super.hcoord;
1790
1791 # Break infinite recursion via tasty
1792 temporary = dontCheck super.temporary;
1793
1794 # Break infinite recursion via doctest-lib
1795 utility-ht = dontCheck super.utility-ht;
1796
1797 # Break infinite recursion via optparse-applicative (alternatively, dontCheck syb)
1798 prettyprinter-ansi-terminal = dontCheck super.prettyprinter-ansi-terminal;
1799
1800 # Released version prohibits QuickCheck >= 2.15 at the moment
1801 optparse-applicative = appendPatches [
1802 (pkgs.fetchpatch2 {
1803 name = "optparse-applicative-0.18.1-allow-QuickCheck-2.15.patch";
1804 url = "https://github.com/pcapriotti/optparse-applicative/commit/2c2a39ed53e6339d8dc717efeb7d44f4c2b69cab.patch";
1805 hash = "sha256-198TfBUR3ygPpvKPvtH69UmbMmoRagmzr9UURPr6Kj4=";
1806 })
1807 ] super.optparse-applicative;
1808
1809 # chell-quickcheck doesn't work with QuickCheck >= 2.15 with no known fix yet
1810 # https://github.com/typeclasses/chell/issues/5
1811 system-filepath = dontCheck super.system-filepath;
1812 gnuidn = dontCheck super.gnuidn;
1813
1814 # Tests rely on `Int` being 64-bit: https://github.com/hspec/hspec/issues/431.
1815 # Also, we need QuickCheck-2.14.x to build the test suite, which isn't easy in LTS-16.x.
1816 # So let's not go there and just disable the tests altogether.
1817 hspec-core = dontCheck super.hspec-core;
1818
1819 update-nix-fetchgit =
1820 let
1821 # Deps are required during the build for testing and also during execution,
1822 # so add them to build input and also wrap the resulting binary so they're in
1823 # PATH.
1824 deps = [
1825 pkgs.git
1826 pkgs.nix-prefetch-git
1827 ];
1828 in
1829 lib.pipe super.update-nix-fetchgit [
1830 # 2023-06-26: Test failure: https://hydra.nixos.org/build/225081865
1831 dontCheck
1832 (self.generateOptparseApplicativeCompletions [ "update-nix-fetchgit" ])
1833 (overrideCabal (drv: {
1834 buildTools = drv.buildTools or [ ] ++ [ pkgs.buildPackages.makeWrapper ];
1835 postInstall = drv.postInstall or "" + ''
1836 wrapProgram "$out/bin/update-nix-fetchgit" --prefix 'PATH' ':' "${lib.makeBinPath deps}"
1837 '';
1838 }))
1839 # pkgs.nix is not added to the wrapper since we can resonably expect it to be installed
1840 # and we don't know which implementation the eventual user prefers
1841 (addTestToolDepends (deps ++ [ pkgs.nix ]))
1842 # Patch for hnix compat.
1843 (appendPatches [
1844 (fetchpatch {
1845 url = "https://github.com/expipiplus1/update-nix-fetchgit/commit/dfa34f9823e282aa8c5a1b8bc95ad8def0e8d455.patch";
1846 sha256 = "sha256-yBjn1gVihVTlLewKgJc2I9gEj8ViNBAmw0bcsb5rh1A=";
1847 excludes = [ "cabal.project" ];
1848 })
1849 # Fix for GHC >= 9.8
1850 (fetchpatch {
1851 name = "update-nix-fetchgit-base-4.19.patch";
1852 url = "https://github.com/expipiplus1/update-nix-fetchgit/commit/384d2e259738abf94f5a20717b12648996cf24e2.patch";
1853 sha256 = "11489rpxrrz98f7d3j9mz6npgfg0zp005pghxv9c86rkyg5b10d5";
1854 })
1855 ])
1856 ];
1857
1858 # Raise version bounds: https://github.com/idontgetoutmuch/binary-low-level/pull/16
1859 binary-strict = appendPatches [
1860 (fetchpatch {
1861 url = "https://github.com/idontgetoutmuch/binary-low-level/pull/16/commits/c16d06a1f274559be0dea0b1f7497753e1b1a8ae.patch";
1862 sha256 = "sha256-deSbudy+2je1SWapirWZ1IVWtJ0sJVR5O/fnaAaib2g=";
1863 })
1864 ] super.binary-strict;
1865
1866 # The tests for semver-range need to be updated for the MonadFail change in
1867 # ghc-8.8:
1868 # https://github.com/adnelson/semver-range/issues/15
1869 semver-range = dontCheck super.semver-range;
1870
1871 # 2024-03-02: vty <5.39 - https://github.com/reflex-frp/reflex-ghci/pull/33
1872 reflex-ghci = warnAfterVersion "0.2.0.1" (doJailbreak super.reflex-ghci);
1873
1874 # 2024-09-18: transformers <0.5 https://github.com/reflex-frp/reflex-gloss/issues/6
1875 reflex-gloss = warnAfterVersion "0.2" (doJailbreak super.reflex-gloss);
1876
1877 # 2024-09-18: primitive <0.8 https://gitlab.com/Kritzefitz/reflex-gi-gtk/-/merge_requests/20
1878 reflex-gi-gtk = warnAfterVersion "0.2.0.1" (doJailbreak super.reflex-gi-gtk);
1879
1880 # Due to tests restricting base in 0.8.0.0 release
1881 http-media = doJailbreak super.http-media;
1882
1883 # 2022-03-19: strict upper bounds https://github.com/poscat0x04/hinit/issues/2
1884 hinit = doJailbreak (self.generateOptparseApplicativeCompletions [ "hi" ] super.hinit);
1885
1886 # 2020-11-23: https://github.com/Rufflewind/blas-hs/issues/8
1887 blas-hs = dontCheck super.blas-hs;
1888
1889 # Strange doctest problems
1890 # https://github.com/biocad/servant-openapi3/issues/30
1891 servant-openapi3 = dontCheck super.servant-openapi3;
1892
1893 # Disable test cases that were broken by insignificant changes in icu 76
1894 # https://github.com/haskell/text-icu/issues/108
1895 text-icu = overrideCabal (drv: {
1896 testFlags = drv.testFlags or [ ] ++ [
1897 "-t"
1898 "!Test cases"
1899 ];
1900 }) super.text-icu;
1901
1902 hercules-ci-agent = self.generateOptparseApplicativeCompletions [
1903 "hercules-ci-agent"
1904 ] super.hercules-ci-agent;
1905
1906 hercules-ci-cli = lib.pipe super.hercules-ci-cli [
1907 unmarkBroken
1908 (overrideCabal (drv: {
1909 hydraPlatforms = super.hercules-ci-cli.meta.platforms;
1910 }))
1911 # See hercules-ci-optparse-applicative in non-hackage-packages.nix.
1912 (addBuildDepend super.hercules-ci-optparse-applicative)
1913 (self.generateOptparseApplicativeCompletions [ "hci" ])
1914 ];
1915
1916 # https://github.com/k0001/pipes-aeson/pull/21
1917 pipes-aeson = appendPatch (fetchpatch {
1918 url = "https://github.com/k0001/pipes-aeson/commit/08c25865ef557b41d7e4a783f52e655d2a193e18.patch";
1919 relative = "pipes-aeson";
1920 sha256 = "sha256-kFV6CcwKdMq+qSgyc+eIApnaycq5A++pEEVr2A9xvts=";
1921 }) super.pipes-aeson;
1922
1923 moto-postgresql = appendPatches [
1924 # https://gitlab.com/k0001/moto/-/merge_requests/3
1925 (fetchpatch {
1926 name = "moto-postgresql-monadfail.patch";
1927 url = "https://gitlab.com/k0001/moto/-/commit/09cc1c11d703c25f6e81325be6482dc7ec6cbf58.patch";
1928 relative = "moto-postgresql";
1929 sha256 = "sha256-f2JVX9VveShCeV+T41RQgacpUoh1izfyHlE6VlErkZM=";
1930 })
1931 ] super.moto-postgresql;
1932
1933 moto = appendPatches [
1934 # https://gitlab.com/k0001/moto/-/merge_requests/3
1935 (fetchpatch {
1936 name = "moto-ghc-9.0.patch";
1937 url = "https://gitlab.com/k0001/moto/-/commit/5b6f015a1271765005f03762f1f1aaed3a3198ed.patch";
1938 relative = "moto";
1939 sha256 = "sha256-RMa9tk+2ip3Ks73UFv9Ea9GEnElRtzIjdpld1Fx+dno=";
1940 })
1941 ] super.moto;
1942
1943 # Readline uses Distribution.Simple from Cabal 2, in a way that is not
1944 # compatible with Cabal 3. No upstream repository found so far
1945 readline = appendPatch ./patches/readline-fix-for-cabal-3.patch super.readline;
1946
1947 # DerivingVia is not allowed in safe Haskell
1948 # https://github.com/strake/util.hs/issues/1
1949 util = appendConfigureFlags [
1950 "--ghc-option=-fno-safe-haskell"
1951 "--haddock-option=--optghc=-fno-safe-haskell"
1952 ] super.util;
1953 category = appendConfigureFlags [
1954 "--ghc-option=-fno-safe-haskell"
1955 "--haddock-option=--optghc=-fno-safe-haskell"
1956 ] super.category;
1957 alg = appendConfigureFlags [
1958 "--ghc-option=-fno-safe-haskell"
1959 "--haddock-option=--optghc=-fno-safe-haskell"
1960 ] super.alg;
1961
1962 # Test suite fails, upstream not reachable for simple fix (not responsive on github)
1963 vivid-supercollider = dontCheck super.vivid-supercollider;
1964
1965 # Test suite does not compile.
1966 feed = dontCheck super.feed;
1967
1968 spacecookie = overrideCabal (old: {
1969 buildTools = (old.buildTools or [ ]) ++ [ pkgs.buildPackages.installShellFiles ];
1970 # let testsuite discover the resulting binary
1971 preCheck = ''
1972 export SPACECOOKIE_TEST_BIN=./dist/build/spacecookie/spacecookie
1973 ''
1974 + (old.preCheck or "");
1975 # install man pages shipped in the sdist
1976 postInstall = ''
1977 installManPage docs/man/*
1978 ''
1979 + (old.postInstall or "");
1980 }) super.spacecookie;
1981
1982 # Patch and jailbreak can be removed at next release, chatter > 0.9.1.0
1983 # * Remove dependency on regex-tdfa-text
1984 # * Jailbreak as bounds on cereal are too strict
1985 # * Disable test suite which doesn't compile
1986 # https://github.com/creswick/chatter/issues/38
1987 chatter = appendPatch (fetchpatch {
1988 url = "https://github.com/creswick/chatter/commit/e8c15a848130d7d27b8eb5e73e8a0db1366b2e62.patch";
1989 sha256 = "1dzak8d12h54vss5fxnrclygz0fz9ygbqvxd5aifz5n3vrwwpj3g";
1990 }) (dontCheck (doJailbreak (super.chatter.override { regex-tdfa-text = null; })));
1991
1992 # test suite doesn't compile anymore due to changed hunit/tasty APIs
1993 fullstop = dontCheck super.fullstop;
1994
1995 # * doctests don't work without cabal
1996 # https://github.com/noinia/hgeometry/issues/132
1997 # * Too strict version bound on vector-builder
1998 # https://github.com/noinia/hgeometry/commit/a6abecb1ce4a7fd96b25cc1a5c65cd4257ecde7a#commitcomment-49282301
1999 hgeometry-combinatorial = dontCheck (doJailbreak super.hgeometry-combinatorial);
2000
2001 # Too strict bounds on containers
2002 # https://github.com/jswebtools/language-ecmascript-analysis/issues/1
2003 language-ecmascript-analysis = doJailbreak super.language-ecmascript-analysis;
2004
2005 cli-git = addBuildTool pkgs.git super.cli-git;
2006
2007 cli-nix = addBuildTools [
2008 # Required due to https://github.com/obsidiansystems/cli-nix/issues/11
2009 pkgs.nix
2010 pkgs.nix-prefetch-git
2011 ] super.cli-nix;
2012
2013 # list `modbus` in librarySystemDepends, correct to `libmodbus`
2014 libmodbus = doJailbreak (addExtraLibrary pkgs.libmodbus super.libmodbus);
2015
2016 # Missing test files in sdist tarball:
2017 # https://gitlab.com/dpwiz/geomancy-layout/-/issues/1
2018 geomancy-layout = dontCheck super.geomancy-layout;
2019
2020 # 2025-02-11: Too strict bounds on base < 4.19, bytestring < 0.12, tasty < 1.5, tasty-quickcheck < 0.11
2021 blake2 = doJailbreak super.blake2;
2022
2023 # Test suite doesn't support base16-bytestring >= 1.0
2024 # https://github.com/serokell/haskell-crypto/issues/25
2025 crypto-sodium = dontCheck super.crypto-sodium;
2026
2027 # 2021-04-09: too strict time bound
2028 # PR pending https://github.com/zohl/cereal-time/pull/2
2029 cereal-time = doJailbreak super.cereal-time;
2030
2031 # 2021-04-16: too strict bounds on QuickCheck and tasty
2032 # https://github.com/hasufell/lzma-static/issues/1
2033 lzma-static = doJailbreak super.lzma-static;
2034
2035 # Too strict version bounds on base:
2036 # https://github.com/obsidiansystems/database-id/issues/1
2037 database-id-class = doJailbreak super.database-id-class;
2038
2039 # Too strict version bounds on base
2040 # https://github.com/gibiansky/IHaskell/issues/1217
2041 ihaskell-display = doJailbreak super.ihaskell-display;
2042 ihaskell-basic = doJailbreak super.ihaskell-basic;
2043
2044 # Tests need to lookup target triple x86_64-unknown-linux
2045 # https://github.com/llvm-hs/llvm-hs/issues/334
2046 llvm-hs = dontCheckIf (pkgs.stdenv.targetPlatform.system != "x86_64-linux") super.llvm-hs;
2047
2048 # Fix build with bytestring >= 0.11 (GHC 9.2)
2049 # https://github.com/llvm-hs/llvm-hs/pull/389
2050 llvm-hs-pure =
2051 appendPatches
2052 [
2053 (fetchpatch {
2054 name = "llvm-hs-pure-bytestring-0.11.patch";
2055 url = "https://github.com/llvm-hs/llvm-hs/commit/fe8fd556e8d2cc028f61d4d7b4b6bf18c456d090.patch";
2056 sha256 = "sha256-1d4wQg6JEJL3GwmXQpvbW7VOY5DwjUPmIsLEEur0Kps=";
2057 relative = "llvm-hs-pure";
2058 excludes = [ "**/Triple.hs" ]; # doesn't exist in 9.0.0
2059 })
2060 ]
2061 (
2062 overrideCabal {
2063 # Hackage Revision prevents patch from applying. Revision 1 does not allow
2064 # bytestring-0.11.4 which is bundled with 9.2.6.
2065 editedCabalFile = null;
2066 revision = null;
2067 } super.llvm-hs-pure
2068 );
2069
2070 # 2025-02-11: Too strict bounds on tasty-quickcheck < 0.11
2071 exact-pi = doJailbreak super.exact-pi;
2072
2073 # Too strict bounds on dimensional
2074 # https://github.com/enomsg/science-constants-dimensional/pull/1
2075 science-constants-dimensional = doJailbreak super.science-constants-dimensional;
2076
2077 # Tests are flaky on busy machines, upstream doesn't intend to fix
2078 # https://github.com/merijn/paramtree/issues/4
2079 paramtree = dontCheck super.paramtree;
2080
2081 # Flaky test suites
2082 ticker = dontCheck super.ticker;
2083 powerqueue-distributed = dontCheck super.powerqueue-distributed;
2084 job = dontCheck super.job;
2085 scheduler = dontCheck super.scheduler;
2086
2087 # Flaky test suite
2088 # https://github.com/minimapletinytools/linear-tests/issues/1
2089 linear-tests = dontCheck super.linear-tests;
2090
2091 # 2024-09-18: Make compatible with haskell-gi 0.26.10
2092 # https://github.com/owickstrom/gi-gtk-declarative/pull/118
2093 gi-gtk-declarative = warnAfterVersion "0.7.1" (
2094 overrideCabal (drv: {
2095 jailbreak = true;
2096 postPatch = ''
2097 sed -i '1 i {-# LANGUAGE FlexibleContexts #-}' \
2098 src/GI/Gtk/Declarative/Widget/Conversions.hs
2099 '';
2100 }) super.gi-gtk-declarative
2101 );
2102 gi-gtk-declarative-app-simple = doJailbreak super.gi-gtk-declarative-app-simple;
2103
2104 # 2023-04-09: haskell-ci needs Cabal-syntax 3.10
2105 # 2024-03-21: pins specific version of ShellCheck
2106 # 2025-03-10: jailbreak, https://github.com/haskell-CI/haskell-ci/issues/771
2107 haskell-ci = doJailbreak (
2108 super.haskell-ci.overrideScope (
2109 self: super: {
2110 Cabal-syntax = self.Cabal-syntax_3_10_3_0;
2111 ShellCheck = self.ShellCheck_0_9_0;
2112 }
2113 )
2114 );
2115
2116 # ShellCheck < 0.10.0 needs to be adjusted for changes in fgl >= 5.8
2117 # https://github.com/koalaman/shellcheck/issues/2677
2118 ShellCheck_0_9_0 = doJailbreak (
2119 appendPatches [
2120 (fetchpatch {
2121 name = "shellcheck-fgl-5.8.1.1.patch";
2122 url = "https://github.com/koalaman/shellcheck/commit/c05380d518056189412e12128a8906b8ca6f6717.patch";
2123 sha256 = "0gbx46x1a2sh5mvgpqxlx9xkqcw4wblpbgqdkqccxdzf7vy50xhm";
2124 })
2125 ] super.ShellCheck_0_9_0
2126 );
2127
2128 # Too strict bound on hspec (<2.11)
2129 utf8-light = doJailbreak super.utf8-light;
2130
2131 # BSON defaults to requiring network instead of network-bsd which is
2132 # required nowadays: https://github.com/mongodb-haskell/bson/issues/26
2133 bson = appendConfigureFlag "-f-_old_network" (
2134 super.bson.override {
2135 network = self.network-bsd;
2136 }
2137 );
2138
2139 # Disable flaky tests
2140 # https://github.com/DavidEichmann/alpaca-netcode/issues/2
2141 alpaca-netcode = overrideCabal {
2142 testFlags = [
2143 "--pattern"
2144 "!/[NOCI]/"
2145 ];
2146 } super.alpaca-netcode;
2147
2148 # 2021-05-22: Tests fail sometimes (even consistently on hydra)
2149 # when running a fs-related test with >= 12 jobs. To work around
2150 # this, run tests with only a single job.
2151 # https://github.com/vmchale/libarchive/issues/20
2152 libarchive = overrideCabal {
2153 testFlags = [ "-j1" ];
2154 } super.libarchive;
2155
2156 # https://github.com/plow-technologies/hspec-golden-aeson/issues/17
2157 hspec-golden-aeson = dontCheck super.hspec-golden-aeson;
2158
2159 # To strict bound on hspec
2160 # https://github.com/dagit/zenc/issues/5
2161 zenc = doJailbreak super.zenc;
2162
2163 # https://github.com/ajscholl/basic-cpuid/pull/1
2164 basic-cpuid = appendPatch (fetchpatch {
2165 url = "https://github.com/ajscholl/basic-cpuid/commit/2f2bd7a7b53103fb0cf26883f094db9d7659887c.patch";
2166 sha256 = "0l15ccfdys100jf50s9rr4p0d0ikn53bkh7a9qlk9i0y0z5jc6x1";
2167 }) super.basic-cpuid;
2168
2169 # 2025-09-03 jailbreak for base >= 4.20
2170 # https://github.com/brandonhamilton/ilist/issues/17
2171 ilist = lib.pipe super.ilist [
2172 (warnAfterVersion "0.4.0.1")
2173 doJailbreak
2174 ];
2175
2176 # 2025-09-18: ilist >=0.3.1 && <0.4, optparse-applicative >=0.19.0 && <0.20
2177 # https://github.com/hadolint/hadolint/issues/1127
2178 hadolint = doJailbreak super.hadolint;
2179
2180 # test suite requires stack to run, https://github.com/dino-/photoname/issues/24
2181 photoname = dontCheck super.photoname;
2182
2183 # Too strict bounds on
2184 # QuickCheck (<2.15): https://github.com/kapralVV/Unique/issues/12
2185 # hashable (<1.5): https://github.com/kapralVV/Unique/issues/11#issuecomment-3088832168
2186 Unique = doJailbreak super.Unique;
2187
2188 # Too strict bound on tasty-quickcheck (<0.11)
2189 # https://github.com/haskell-unordered-containers/hashable/issues/321
2190 hashable_1_4_7_0 = doDistribute (doJailbreak super.hashable_1_4_7_0);
2191
2192 # https://github.com/AndrewRademacher/aeson-casing/issues/8
2193 aeson-casing = warnAfterVersion "0.2.0.0" (
2194 overrideCabal (drv: {
2195 testFlags = [
2196 "-p"
2197 "! /encode train/"
2198 ]
2199 ++ drv.testFlags or [ ];
2200 }) super.aeson-casing
2201 );
2202
2203 # https://github.com/emc2/HUnit-Plus/issues/26
2204 HUnit-Plus = dontCheck super.HUnit-Plus;
2205 # https://github.com/ewestern/haskell-postgis/issues/7
2206 haskell-postgis = overrideCabal (drv: {
2207 testFlags = [
2208 "--skip"
2209 "/Geo/Hexable/Encodes a linestring/"
2210 ]
2211 ++ drv.testFlags or [ ];
2212 }) super.haskell-postgis;
2213 # https://github.com/ChrisPenner/json-to-haskell/issues/5
2214 json-to-haskell = overrideCabal (drv: {
2215 testFlags = [
2216 "--match"
2217 "/should sanitize weird field and record names/"
2218 ]
2219 ++ drv.testFlags or [ ];
2220 }) super.json-to-haskell;
2221 # https://github.com/fieldstrength/aeson-deriving/issues/5
2222 aeson-deriving = dontCheck super.aeson-deriving;
2223
2224 drunken-bishop = doJailbreak super.drunken-bishop;
2225 # https://github.com/SupercedeTech/dropbox-client/issues/1
2226 dropbox = overrideCabal (drv: {
2227 testFlags = [
2228 "--skip"
2229 "/Dropbox/Dropbox aeson aeson/encodes list folder correctly/"
2230 ]
2231 ++ drv.testFlags or [ ];
2232 }) super.dropbox;
2233 # https://github.com/alonsodomin/haskell-schema/issues/11
2234 hschema-aeson = overrideCabal (drv: {
2235 testFlags = [
2236 "--skip"
2237 "/toJsonSerializer/should generate valid JSON/"
2238 ]
2239 ++ drv.testFlags or [ ];
2240 }) super.hschema-aeson;
2241 # https://github.com/minio/minio-hs/issues/165
2242 # https://github.com/minio/minio-hs/pull/191 Use crypton-connection instead of unmaintained connection
2243 minio-hs = overrideCabal (drv: {
2244 testFlags = [
2245 "-p"
2246 "!/Test mkSelectRequest/"
2247 ]
2248 ++ drv.testFlags or [ ];
2249 patches = drv.patches or [ ] ++ [
2250 (pkgs.fetchpatch {
2251 name = "use-crypton-connection.patch";
2252 url = "https://github.com/minio/minio-hs/commit/786cf1881f0b62b7539e63547e76afc3c1ade36a.patch";
2253 sha256 = "sha256-zw0/jhKzShpqV1sUyxWTl73sQOzm6kA/yQOZ9n0L1Ag";
2254 })
2255 (pkgs.fetchpatch {
2256 name = "compatibility-with-crypton-connection-0-4-0.patch";
2257 url = "https://github.com/minio/minio-hs/commit/e2169892a5fea444aaf9e551243da811003d3188.patch";
2258 sha256 = "sha256-hWphiArv7gZWiDewLHDeU4RASGOE9Z1liahTmAGQIgQ=";
2259 })
2260 ];
2261 }) (super.minio-hs.override { connection = self.crypton-connection; });
2262
2263 # Invalid CPP in test suite: https://github.com/cdornan/memory-cd/issues/1
2264 memory-cd = dontCheck super.memory-cd;
2265
2266 fgl-arbitrary = doJailbreak super.fgl-arbitrary;
2267
2268 # raaz-0.3 onwards uses backpack and it does not play nicely with
2269 # parallel builds using -j
2270 #
2271 # See: https://gitlab.haskell.org/ghc/ghc/-/issues/17188
2272 #
2273 # Overwrite the build cores
2274 raaz = disableParallelBuilding super.raaz;
2275
2276 # Test suite uses SHA as a point of comparison which doesn't
2277 # succeeds its own test suite on 32bit:
2278 # https://github.com/GaloisInc/SHA/issues/16
2279 cryptohash-sha256 =
2280 if pkgs.stdenv.hostPlatform.is32bit then
2281 dontCheck super.cryptohash-sha256
2282 else
2283 super.cryptohash-sha256;
2284
2285 # https://github.com/andreymulik/sdp/issues/3
2286 sdp = disableLibraryProfiling super.sdp;
2287 sdp-binary = disableLibraryProfiling super.sdp-binary;
2288 sdp-deepseq = disableLibraryProfiling super.sdp-deepseq;
2289 sdp-hashable = disableLibraryProfiling super.sdp-hashable;
2290 sdp-io = disableLibraryProfiling super.sdp-io;
2291 sdp-quickcheck = disableLibraryProfiling super.sdp-quickcheck;
2292 sdp4bytestring = disableLibraryProfiling super.sdp4bytestring;
2293 sdp4text = disableLibraryProfiling super.sdp4text;
2294 sdp4unordered = disableLibraryProfiling super.sdp4unordered;
2295 sdp4vector = disableLibraryProfiling super.sdp4vector;
2296
2297 # Fixes compilation with GHC 9.0 and above
2298 # https://hub.darcs.net/shelarcy/regex-compat-tdfa/issue/3
2299 regex-compat-tdfa =
2300 appendPatches
2301 [
2302 ./patches/regex-compat-tdfa-ghc-9.0.patch
2303 ]
2304 (
2305 overrideCabal {
2306 # Revision introduces bound base < 4.15
2307 revision = null;
2308 editedCabalFile = null;
2309 } super.regex-compat-tdfa
2310 );
2311
2312 darcs = appendPatches [
2313 # Cabal 3.12 support in Setup.hs
2314 # https://hub.darcs.net/darcs/darcs-reviewed/patch/50d9b0b402a896c83aa7929a50a0e0449838600f
2315 ./patches/darcs-cabal-3.12.patch
2316 # GHC 9.10 patch plus lifted constraints for hashable
2317 # https://hub.darcs.net/darcs/darcs-reviewed/patch/32646b190e019de21a103e950c4eccdd66f7eadc
2318 ./patches/darcs-stackage-lts-23.patch
2319 ] super.darcs;
2320
2321 # 2025-02-11: Too strict bounds on hedgehog < 1.5, hspec-hedgehog < 0.2
2322 validation-selective = doJailbreak super.validation-selective;
2323
2324 # Test suite isn't supposed to succeed yet, apparently…
2325 # https://github.com/andrewufrank/uniform-error/blob/f40629ad119e90f8dae85e65e93d7eb149bddd53/test/Uniform/Error_test.hs#L124
2326 # https://github.com/andrewufrank/uniform-error/issues/2
2327 uniform-error = dontCheck super.uniform-error;
2328 # https://github.com/andrewufrank/uniform-fileio/issues/2
2329 uniform-fileio = dontCheck super.uniform-fileio;
2330
2331 # The shipped Setup.hs file is broken.
2332 csv = overrideCabal (drv: { preCompileBuildDriver = "rm Setup.hs"; }) super.csv;
2333
2334 cabal-fmt = doJailbreak (
2335 super.cabal-fmt.override {
2336 # Needs newer Cabal-syntax version.
2337 Cabal-syntax = self.Cabal-syntax_3_10_3_0;
2338 }
2339 );
2340
2341 # Pick bound changes from development branch, same commit also adds support for Cabal >= 3.14
2342 glirc = lib.pipe super.glirc [
2343 (warnAfterVersion "2.41")
2344 # Revisions only partially (?) include the changes we want
2345 (overrideCabal {
2346 revision = null;
2347 editedCabalFile = null;
2348 })
2349 (appendPatch (
2350 pkgs.fetchpatch {
2351 name = "glirc-bounds-plus-cabal-3.14.patch";
2352 url = "https://github.com/glguy/irc-core/commit/00ab04700e45f6f7f2ffe4ac992ca73505407516.patch";
2353 hash = "sha256-XX6y3lR/a6ofcpkuqczC2A5IyHsAsRfAB+x4hdKu9+o=";
2354 includes = [
2355 "glirc.cabal"
2356 "Setup.hs"
2357 ];
2358 }
2359 ))
2360 ];
2361
2362 # Test failures on various archs
2363 # https://github.com/kazu-yamamoto/crypton/issues/49
2364 crypton = dontCheckIf (
2365 pkgs.stdenv.hostPlatform.isPower64 && pkgs.stdenv.hostPlatform.isBigEndian
2366 ) super.crypton;
2367
2368 # Test failures on at least ppc64
2369 # https://github.com/kazu-yamamoto/crypton-certificate/issues/25
2370 # Likely related to the issues in crypton
2371 # https://github.com/kazu-yamamoto/crypton/issues/49
2372 crypton-x509-validation = dontCheckIf (
2373 pkgs.stdenv.hostPlatform.isPower64 && pkgs.stdenv.hostPlatform.isBigEndian
2374 ) super.crypton-x509-validation;
2375
2376 # Likely fallout from the crypton issues
2377 # exception: HandshakeFailed (Error_Protocol "bad PubKeyALG_Ed448 signature for ecdhparams" DecryptError)
2378 tls = dontCheckIf (
2379 pkgs.stdenv.hostPlatform.isPower64 && pkgs.stdenv.hostPlatform.isBigEndian
2380 ) super.tls;
2381
2382 # Too strict bounds on text and tls
2383 # https://github.com/barrucadu/irc-conduit/issues/54
2384 # Use crypton-connection instead of connection
2385 # https://github.com/barrucadu/irc-conduit/pull/60 https://github.com/barrucadu/irc-client/pull/101
2386 irc-conduit =
2387 appendPatch
2388 (pkgs.fetchpatch {
2389 url = "https://github.com/barrucadu/irc-conduit/pull/60/commits/58f6b5ee0c23a0615e43292dbbacf40636dcd7a6.patch";
2390 hash = "sha256-d08tb9iL07mBWdlZ7PCfTLVFJLgcxeGVPzJ+jOej8io=";
2391 })
2392 (
2393 doJailbreak (
2394 super.irc-conduit.override {
2395 connection = self.crypton-connection;
2396 x509-validation = self.crypton-x509-validation;
2397 }
2398 )
2399 );
2400 irc-client =
2401 appendPatch
2402 (pkgs.fetchpatch {
2403 url = "https://github.com/barrucadu/irc-client/pull/101/commits/0440b7e2ce943d960234c50957a55025771f567a.patch";
2404 hash = "sha256-iZyZMrodgViXFCMH9y2wIJZRnjd6WhkqInAdykqTdkY=";
2405 })
2406 (
2407 doJailbreak (
2408 super.irc-client.override {
2409 connection = self.crypton-connection;
2410 x509 = self.crypton-x509;
2411 x509-store = self.crypton-x509-store;
2412 x509-validation = self.crypton-x509-validation;
2413 }
2414 )
2415 );
2416
2417 # 2022-03-16: Upstream stopped updating bounds https://github.com/haskell-hvr/base-noprelude/pull/15
2418 base-noprelude = doJailbreak super.base-noprelude;
2419
2420 # 2025-01-07: unreleased upstream supports hedgehog 1.5 but drifted quite a bit from hackage revisions so hard to patch
2421 hw-hspec-hedgehog = doJailbreak super.hw-hspec-hedgehog;
2422
2423 # 2025-09-03: allow QuickCheck 2.15
2424 # https://github.com/haskell-works/hw-prim/issues/150
2425 hw-prim = lib.pipe super.hw-prim [
2426 (warnAfterVersion "0.6.3.2")
2427 doJailbreak
2428 ];
2429
2430 # Test suite doesn't support hspec 2.8
2431 # https://github.com/zellige/hs-geojson/issues/29
2432 geojson = dontCheck super.geojson;
2433
2434 # Test data missing from sdist
2435 # https://github.com/ngless-toolkit/ngless/issues/152
2436 NGLess = dontCheck super.NGLess;
2437
2438 # Too strict bound on network (<3.2)
2439 hookup = appendPatches [
2440 (pkgs.fetchpatch {
2441 name = "hookup-network-3.2.patch";
2442 url = "https://github.com/glguy/irc-core/commit/a3ec982e729b0f77b2db336ec32c5e4b7283bed5.patch";
2443 sha256 = "0qc1qszn3l69xlbpfv8vz9ld0q7sghfcbp0wjds81kwcpdpl4jgv";
2444 stripLen = 1;
2445 includes = [ "hookup.cabal" ];
2446 })
2447 ] super.hookup;
2448
2449 basic-sop = appendPatch (fetchpatch {
2450 # https://github.com/well-typed/basic-sop/pull/13
2451 name = "increase-upper-bounds.patch";
2452 url = "https://github.com/well-typed/basic-sop/commit/f1873487dd3e3955a82d6d9f37a6b164be36851f.patch";
2453 sha256 = "sha256-uBH+LmiSO91diVe4uX75/DdWT2wuyqEL+XUlSHnJk5k=";
2454 }) super.basic-sop;
2455
2456 # Unmaintained
2457 records-sop = doJailbreak super.records-sop;
2458
2459 # Fix build failures for ghc 9 (https://github.com/mokus0/polynomial/pull/20)
2460 polynomial =
2461 appendPatch
2462 (fetchpatch {
2463 name = "haskell-polynomial.20.patch";
2464 url = "https://github.com/mokus0/polynomial/pull/20.diff";
2465 sha256 = "1bwivimpi2hiil3zdnl5qkds1inyn239wgxbn3y8l2pwyppnnfl0";
2466 })
2467 (
2468 overrideCabal (drv: {
2469 revision = null;
2470 editedCabalFile = null;
2471 doCheck = false; # Source dist doesn't include the checks
2472 }) super.polynomial
2473 );
2474
2475 # lucid-htmx has restrictive upper bounds on lucid and servant:
2476 #
2477 # Setup: Encountered missing or private dependencies:
2478 # lucid >=2.9.12.1 && <=2.11, servant >=0.18.3 && <0.19
2479 #
2480 # Can be removed once
2481 #
2482 # > https://github.com/MonadicSystems/lucid-htmx/issues/6
2483 #
2484 # has been resolved.
2485 lucid-htmx = doJailbreak super.lucid-htmx;
2486
2487 clash-prelude = dontCheck super.clash-prelude;
2488
2489 krank = appendPatches [
2490 # Deal with removed exports in base
2491 (pkgs.fetchpatch {
2492 name = "krank-issue-97.patch";
2493 url = "https://github.com/guibou/krank/commit/f6b676774537f8e2357115fd8cd3c93fb68e8a85.patch";
2494 sha256 = "0d85q2x37yhjwp17wmqvblkna7p7vnl7rwdqr3kday46wvdgblgl";
2495 excludes = [ ".envrc" ];
2496 })
2497 # Fix build of tests with http-client >=0.7.16
2498 (pkgs.fetchpatch {
2499 name = "krank-http-client-0.7.16.patch";
2500 url = "https://github.com/guibou/krank/commit/50fd3d08526f3ed6add3352460d3d1ce9dc15f6d.patch";
2501 sha256 = "0h15iir2v4pli2b72gv69amxs277xmmzw3wavrix74h9prbs4pms";
2502 })
2503 ] super.krank;
2504
2505 # 2025-08-06: Upper bounds on containers <0.7 and hedgehog < 1.5 too strict.
2506 hermes-json = doJailbreak super.hermes-json;
2507
2508 # hexstring is not compatible with newer versions of base16-bytestring
2509 # See https://github.com/solatis/haskell-hexstring/issues/3
2510 hexstring = overrideCabal (old: {
2511 # GitHub doesn't generate a patch with DOS line endings, so we
2512 # need to convert the patched file to Unix line endings
2513 prePatch = old.prePatch or "" + ''
2514 sed -i -e 's/\r$//' src/Data/HexString.hs
2515 '';
2516 patches = old.patches or [ ] ++ [
2517 (pkgs.fetchpatch {
2518 name = "fix-base16-bytestring-compat";
2519 url = "https://github.com/solatis/haskell-hexstring/commit/4f0a27c64ecb4a767eeea2efebebfd7edba18de0.patch";
2520 hash = "sha256-DHT566Ov1D++1VNjUor9xSeOsuSi2LPiIAGT55gqr8s=";
2521 })
2522 ];
2523 }) super.hexstring;
2524
2525 # Disabling doctests.
2526 regex-tdfa = overrideCabal {
2527 testTargets = [ "regex-tdfa-unittest" ];
2528 } super.regex-tdfa;
2529
2530 # Missing test files https://github.com/kephas/xdg-basedir-compliant/issues/1
2531 xdg-basedir-compliant = dontCheck super.xdg-basedir-compliant;
2532
2533 # Test failure after libxcrypt migration, reported upstream at
2534 # https://github.com/phadej/crypt-sha512/issues/13
2535 crypt-sha512 = dontCheck super.crypt-sha512;
2536
2537 # Latest release depends on crypton-connection ==0.3.2 https://github.com/ndmitchell/hoogle/issues/435
2538 hoogle = overrideSrc {
2539 version = "unstable-2024-07-29";
2540 src = pkgs.fetchFromGitHub {
2541 owner = "ndmitchell";
2542 repo = "hoogle";
2543 rev = "8149c93c40a542bf8f098047e1acbc347fc9f4e6";
2544 hash = "sha256-k3UdmTq8c+iNF8inKM+oWf/NgJqRgUSFS3YwRKVg8Mw=";
2545 };
2546 } super.hoogle;
2547
2548 inherit
2549 (
2550 let
2551 # We need to build purescript with these dependencies and thus also its reverse
2552 # dependencies to avoid version mismatches in their dependency closure.
2553 purescriptOverlay = self: super: {
2554 # As of 2021-11-08, the latest release of `language-javascript` is 0.7.1.0,
2555 # but it has a problem with parsing the `async` keyword. It doesn't allow
2556 # `async` to be used as an object key:
2557 # https://github.com/erikd/language-javascript/issues/131
2558 language-javascript = self.language-javascript_0_7_0_0;
2559 };
2560 in
2561 {
2562 purescript = lib.pipe (super.purescript.overrideScope purescriptOverlay) [
2563 # https://github.com/purescript/purescript/pull/4547
2564 (appendPatches [
2565 (pkgs.fetchpatch {
2566 name = "purescript-import-fix";
2567 url = "https://github.com/purescript/purescript/commit/c610ec18391139a67dc9dcf19233f57d2c5413f7.patch";
2568 hash = "sha256-7s/ygzAFJ1ocZIj3OSd3TbsmGki46WViPIZOU1dfQFg=";
2569 })
2570 ])
2571 # PureScript uses nodejs to run tests, so the tests have been disabled
2572 # for now. If someone is interested in figuring out how to get this
2573 # working, it seems like it might be possible.
2574 dontCheck
2575 # The current version of purescript (0.14.5) has version bounds for LTS-17,
2576 # but it compiles cleanly using deps in LTS-18 as well. This jailbreak can
2577 # likely be removed when purescript-0.14.6 is released.
2578 doJailbreak
2579 # Generate shell completions
2580 (self.generateOptparseApplicativeCompletions [ "purs" ])
2581 ];
2582
2583 purenix = lib.pipe (super.purenix.overrideScope purescriptOverlay) [
2584 (appendPatches [
2585 # https://github.com/purenix-org/purenix/pull/63
2586 (pkgs.fetchpatch {
2587 name = "purenix-purescript-0_15_12";
2588 url = "https://github.com/purenix-org/purenix/commit/2dae563f887c7c8daf3dd3e292ee3580cb70d528.patch";
2589 hash = "sha256-EZXf95BJINyqnRb2t/Ao/9C8ttNp3A27rpKiEKJjO6Y=";
2590 })
2591 (pkgs.fetchpatch {
2592 name = "purenix-import-fix";
2593 url = "https://github.com/purenix-org/purenix/commit/f1890690264e7e5ce7f5b0a32d73d910ce2cbd73.patch";
2594 hash = "sha256-MRITcNOiaWmzlTd9l7sIz/LhlnpW8T02CXdcc1qQt3c=";
2595 })
2596 ])
2597 ];
2598 }
2599 )
2600 purescript
2601 purenix
2602 ;
2603
2604 # containers <0.6, semigroupoids <5.3
2605 data-lens = doJailbreak super.data-lens;
2606
2607 # hashable <1.4, mmorph <1.2
2608 composite-aeson = doJailbreak super.composite-aeson;
2609
2610 hashable = lib.pipe super.hashable [
2611 # Big-endian POWER:
2612 # Test suite xxhash-tests: RUNNING...
2613 # xxhash
2614 # oneshot
2615 # w64-ref: OK (0.03s)
2616 # +++ OK, passed 100 tests.
2617 # w64-examples: FAIL
2618 # tests/xxhash-tests.hs:21:
2619 # expected: 2768807632077661767
2620 # but got: 13521078365639231154
2621 # https://github.com/haskell-unordered-containers/hashable/issues/323
2622 (dontCheckIf pkgs.stdenv.hostPlatform.isBigEndian)
2623 ];
2624
2625 cborg = appendPatches [
2626 # This patch changes CPP macros form gating on the version of ghc-prim to base
2627 # since that's where the definitions are imported from. The source commit
2628 # also changes the cabal file metadata which we filter out since we are
2629 # only interested in this change as a dependency of cborg-i686-support-upstream.patch.
2630 (pkgs.fetchpatch {
2631 name = "cborg-no-gate-on-ghc-prim-version.patch";
2632 url = "https://github.com/well-typed/cborg/commit/a33f94f616f5047e45608a34ca16bfb1304ceaa1.patch";
2633 hash = "sha256-30j4Dksh2nnLKAcUF5XJw3Z/UjfV3F+JFnHeXSUs9Rk=";
2634 includes = [ "**/Codec/CBOR/**" ];
2635 stripLen = 1;
2636 })
2637 # Fixes compilation on 32-bit platforms. Unreleased patch committed to the
2638 # upstream master branch: https://github.com/well-typed/cborg/pull/351
2639 (pkgs.fetchpatch {
2640 name = "cborg-i686-support-upstream.patch";
2641 url = "https://github.com/well-typed/cborg/commit/ecc1360dcf9e9ee27d08de5206b844e075c88ca4.patch";
2642 hash = "sha256-9m2FlG6ziRxA1Dy22mErBaIjiZHa1dqtkbmFnMMFrTI=";
2643 stripLen = 1;
2644 })
2645 ] super.cborg;
2646
2647 # Doesn't compile with tasty-quickcheck == 0.11 (see issue above)
2648 serialise = dontCheck super.serialise;
2649 # 2025-02-06: Allow tasty-quickcheck == 0.11.*
2650 # https://github.com/google/ghc-source-gen/issues/120
2651 ghc-source-gen = doJailbreak super.ghc-source-gen;
2652 # https://github.com/byteverse/bytebuild/issues/20#issuecomment-2652113837
2653 bytebuild = doJailbreak super.bytebuild;
2654
2655 # Too strict bounds on tasty <1.5 and tasty-quickcheck <0.11
2656 # https://github.com/phadej/aeson-extra/issues/62
2657 aeson-extra = doJailbreak super.aeson-extra;
2658
2659 # composite-aeson <0.8, composite-base <0.8
2660 compdoc = doJailbreak super.compdoc;
2661
2662 # composite-aeson <0.8, composite-base <0.8
2663 haskell-coffee = doJailbreak super.haskell-coffee;
2664
2665 # Test suite doesn't compile anymore
2666 twitter-types = dontCheck super.twitter-types;
2667
2668 # Tests open file "data/test_vectors_aserti3-2d_run01.txt" but it doesn't exist
2669 haskoin-core = dontCheck super.haskoin-core;
2670
2671 # unix-compat <0.5
2672 hxt-cache = doJailbreak super.hxt-cache;
2673
2674 # QuickCheck <2.14
2675 term-rewriting = doJailbreak super.term-rewriting;
2676
2677 # tests can't find the test binary anymore - parseargs-example
2678 parseargs = dontCheck super.parseargs;
2679
2680 # Test failure https://gitlab.com/lysxia/ap-normalize/-/issues/2
2681 ap-normalize = dontCheck super.ap-normalize;
2682
2683 # Fixes test that checks error messages which is sensitive to GHC/Cabal version changes
2684 heist = appendPatches [
2685 (pkgs.fetchpatch {
2686 name = "heist-fix-ghc-errorr-message-test.patch";
2687 url = "https://github.com/snapframework/heist/commit/9c8c963021608f09e93d486e5339e45073c757bc.patch";
2688 sha256 = "sha256-lenMCb6o0aAJ8D450JB76cZ49o+LVl2UO9hhAZYPacI=";
2689 })
2690 ] super.heist;
2691
2692 tailwind = doJailbreak super.tailwind; # base <=4.17.0.0
2693
2694 # 2025-09-03: Disable tests until this is solved:
2695 # https://github.com/clash-lang/ghc-typelits-extra/issues/60
2696 ghc-typelits-extra = lib.pipe super.ghc-typelits-extra [
2697 (warnAfterVersion "0.4.8")
2698 dontCheck
2699 ];
2700
2701 # 2025-09-16: 0.5 adds support for GHC 9.12 and doesn't actually seem to contain a
2702 # breaking change, so we can upgrade beyond Stackage.
2703 # https://github.com/clash-lang/ghc-tcplugins-extra/pull/29#issuecomment-3299008674
2704 # https://github.com/clash-lang/ghc-tcplugins-extra/compare/702dda2095c66c4f5148a749c8b7dbcc8a09f5c...v0.5.0
2705 ghc-tcplugins-extra = doDistribute self.ghc-tcplugins-extra_0_5;
2706 # 2025-09-11: Tests have been fixed in 0.7.12, but it requests ghc-tcplugins-extra >= 0.5
2707 # which Stackage LTS won't update to, but we can.
2708 ghc-typelits-natnormalise = doDistribute self.ghc-typelits-natnormalise_0_7_12;
2709
2710 # Test files missing from sdist
2711 # https://github.com/tweag/webauthn/issues/166
2712 webauthn = dontCheck super.webauthn;
2713
2714 # calls ghc in tests
2715 # https://github.com/brandonchinn178/tasty-autocollect/issues/54
2716 tasty-autocollect = dontCheck super.tasty-autocollect;
2717
2718 postgrest =
2719 lib.pipe
2720 (super.postgrest.overrideScope (
2721 self: super: {
2722 # 2025-01-19: Upstream is stuck at hasql < 1.7
2723 # Jailbreaking for newer postgresql-libpq, which seems to work fine
2724 postgresql-binary = dontCheck (doJailbreak super.postgresql-binary_0_13_1_3);
2725 hasql = dontCheck (doJailbreak super.hasql_1_6_4_4);
2726 # Matching dependencies for hasql < 1.6.x
2727 hasql-dynamic-statements = dontCheck super.hasql-dynamic-statements_0_3_1_5;
2728 hasql-implicits = dontCheck super.hasql-implicits_0_1_1_3;
2729 hasql-notifications = unmarkBroken (dontCheck super.hasql-notifications_0_2_2_2);
2730 hasql-pool = dontCheck super.hasql-pool_1_0_1;
2731 hasql-transaction = dontCheck super.hasql-transaction_1_1_0_1;
2732 text-builder = super.text-builder_0_6_10;
2733 text-builder-dev = super.text-builder-dev_0_3_10;
2734 }
2735 ))
2736 [
2737 # 2023-12-20: New version needs extra dependencies
2738 (addBuildDepends [
2739 self.cache
2740 self.extra
2741 self.focus
2742 self.fuzzyset_0_2_4
2743 self.http-client
2744 self.jose-jwt
2745 self.neat-interpolation
2746 self.prometheus-client
2747 self.some
2748 self.stm-hamt
2749 self.timeit
2750 ])
2751 # 2022-12-02: Too strict bounds.
2752 doJailbreak
2753 # 2022-12-02: Hackage release lags behind actual releases: https://github.com/PostgREST/postgrest/issues/2275
2754 (overrideSrc rec {
2755 version = "14.2";
2756 src = pkgs.fetchFromGitHub {
2757 owner = "PostgREST";
2758 repo = "postgrest";
2759 rev = "v${version}";
2760 hash = "sha256-wvE3foz2miOzA3hZ1Ar5XR0FUvP5EqAk010dXp8hiz0=";
2761 };
2762 })
2763 ];
2764
2765 # Too strict bounds on hspec < 2.11
2766 fuzzyset_0_2_4 = doJailbreak super.fuzzyset_0_2_4;
2767
2768 html-charset = dontCheck super.html-charset;
2769
2770 # bytestring <0.11.0, optparse-applicative <0.13.0
2771 # https://github.com/kseo/sfnt2woff/issues/1
2772 sfnt2woff = doJailbreak super.sfnt2woff;
2773
2774 # libfuse3 fails to mount fuse file systems within the build environment
2775 libfuse3 = dontCheck super.libfuse3;
2776
2777 # Merged upstream, but never released. Allows both intel and aarch64 darwin to build.
2778 # https://github.com/vincenthz/hs-gauge/pull/106
2779 gauge = appendPatch (pkgs.fetchpatch {
2780 name = "darwin-aarch64-fix.patch";
2781 url = "https://github.com/vincenthz/hs-gauge/commit/3d7776f41187c70c4f0b4517e6a7dde10dc02309.patch";
2782 hash = "sha256-4osUMo0cvTvyDTXF8lY9tQbFqLywRwsc3RkHIhqSriQ=";
2783 }) super.gauge;
2784
2785 # The hackage source is somehow missing a file present in the repo (tests/ListStat.hs).
2786 sym = dontCheck super.sym;
2787
2788 # 2024-01-24: https://github.com/haskellari/tree-diff/issues/79
2789 # exprParser fails to parse pretty printed structure correctly when the randomizer uses newlines (?)
2790 tree-diff = overrideCabal (drv: {
2791 testFlags = drv.testFlags or [ ] ++ [
2792 "-p"
2793 "!/parsec-ansi-wl-pprint/"
2794 ];
2795 }) super.tree-diff;
2796
2797 # Too strict bound on bytestring < 0.12
2798 # https://github.com/raehik/heystone/issues/2
2799 heystone = doJailbreak super.heystone;
2800
2801 # Too strict bounds on base, ghc-prim, primitive
2802 # https://github.com/kowainik/typerep-map/pull/128
2803 typerep-map = doJailbreak super.typerep-map;
2804
2805 # Too strict bounds on base
2806 kewar = doJailbreak super.kewar;
2807
2808 # Tests rely on (missing) submodule
2809 unleash-client-haskell-core = dontCheck super.unleash-client-haskell-core;
2810
2811 # Workaround for Cabal failing to find nonexistent SDL2 library?!
2812 # https://github.com/NixOS/nixpkgs/issues/260863
2813 sdl2-gfx = overrideCabal { __propagatePkgConfigDepends = false; } super.sdl2-gfx;
2814
2815 # Needs git for compile-time insertion of commit hash into --version string.
2816 kmonad = overrideCabal (drv: {
2817 libraryToolDepends = (drv.libraryToolDepends or [ ]) ++ [ pkgs.buildPackages.git ];
2818 }) super.kmonad;
2819
2820 # 2024-01-24: support optparse-applicative 0.18
2821 niv = appendPatches [
2822 (fetchpatch {
2823 # needed for the following patch to apply
2824 url = "https://github.com/nmattia/niv/commit/7b76374b2b44152bfbf41fcb60162c2ce9182e7a.patch";
2825 includes = [ "src/*" ];
2826 hash = "sha256-3xG+GD6fUCGgi2EgS7WUpjfn6gvc2JurJcIrnyy4ys8=";
2827 })
2828 (fetchpatch {
2829 # Update to optparse-applicative 0.18
2830 url = "https://github.com/nmattia/niv/commit/290965abaa02be33b601032d850c588a6bafb1a5.patch";
2831 hash = "sha256-YxUdv4r/Fx+8YxHhqEuS9uZR1XKzVCPrLmj5+AY5GRA=";
2832 })
2833 ] super.niv;
2834
2835 # 2024-03-25: HSH broken because of the unix-2.8.0.0 breaking change
2836 HSH = appendPatches [ ./patches/HSH-unix-openFd.patch ] super.HSH;
2837
2838 # 2025-09-03: allow base 4.20
2839 # https://github.com/phadej/aeson-optics/issues/20
2840 aeson-optics = lib.pipe super.aeson-optics [
2841 (warnAfterVersion "1.2.1")
2842 doJailbreak
2843 ];
2844
2845 # Use recent git version as the hackage version is outdated and not building on recent GHC versions
2846 haskell-to-elm = overrideSrc {
2847 version = "unstable-2023-12-02";
2848 src = pkgs.fetchFromGitHub {
2849 owner = "haskell-to-elm";
2850 repo = "haskell-to-elm";
2851 rev = "52ab086a320a14051aa38d0353d957fb6b2525e9";
2852 hash = "sha256-j6F4WplJy7NyhTAuiDd/tHT+Agk1QdyPjOEkceZSxq8=";
2853 };
2854 } super.haskell-to-elm;
2855
2856 # Overly strict upper bounds on esqueleto
2857 # https://github.com/jonschoning/espial/issues/61
2858 espial = doJailbreak super.espial;
2859
2860 # https://github.com/isovector/type-errors/issues/9
2861 type-errors = dontCheck super.type-errors;
2862
2863 # Too strict bounds on text. Can be removed after https://github.com/alx741/currencies/pull/3 is merged
2864 currencies = doJailbreak super.currencies;
2865
2866 argon2 = appendPatch (fetchpatch {
2867 # https://github.com/haskell-hvr/argon2/pull/20
2868 url = "https://github.com/haskell-hvr/argon2/commit/f7cc92f18e233e6b1dabf1798dd099e17b6a81a1.patch";
2869 hash = "sha256-JxraFWzErJT4EhELa3PWBGHaLT9OLgEPNSnxwpdpHd0=";
2870 }) (doJailbreak super.argon2); # Unmaintained
2871
2872 # 2025-10-02: Too strict upper bound on tasty-quickcheck (<0.11)
2873 # https://github.com/phadej/zinza/pull/28
2874 zinza = dontCheck super.zinza;
2875
2876 pdftotext = overrideCabal (drv: {
2877 jailbreak = true;
2878 postPatch = ''
2879 # Fixes https://todo.sr.ht/~geyaeb/haskell-pdftotext/6
2880 substituteInPlace pdftotext.cabal --replace-quiet c-sources cxx-sources
2881
2882 # Fix cabal ignoring cxx because the cabal format version is too old
2883 substituteInPlace pdftotext.cabal --replace-quiet ">=1.10" 2.2
2884
2885 # Fix wrong license name that breaks recent cabal version
2886 substituteInPlace pdftotext.cabal --replace-quiet BSD3 BSD-3-Clause
2887 ''
2888 + (drv.postPatch or "");
2889 }) super.pdftotext;
2890
2891 # QuickCheck <2.15
2892 # https://github.com/google/proto-lens/issues/403
2893 proto-lens-arbitrary = doJailbreak super.proto-lens-arbitrary;
2894
2895 # 2024-07-27: building test component requires non-trivial custom build steps
2896 # https://github.com/awakesecurity/proto3-suite/blob/bec9d40e2767143deed5b2d451197191f1d8c7d5/nix/overlays/haskell-packages.nix#L311
2897 # Hackage release trails a good deal behind master
2898 proto3-suite = lib.pipe super.proto3-suite [
2899 dontCheck
2900 doJailbreak
2901 (overrideSrc {
2902 version = "0.9.0-unstable-2025-04-10";
2903 src = pkgs.fetchFromGitHub {
2904 owner = "awakesecurity";
2905 repo = "proto3-suite";
2906 rev = "24bb3f9c6c83b4ecc31783fa5a8fa4406e6ef0d8";
2907 hash = "sha256-009UNd1rEg/wDCCxReQWhPwHaONwlB6l6qoIPR0mVBU=";
2908 };
2909 })
2910 ];
2911
2912 # Tests require docker
2913 testcontainers = dontCheck super.testcontainers;
2914
2915 # https://bitbucket.org/echo_rm/hailgun/pull-requests/27
2916 hailgun = appendPatches [
2917 (fetchpatch {
2918 url = "https://bitbucket.org/nh2/hailgun/commits/ac2bc2a3003e4b862625862c4565fece01c0cf57/raw";
2919 sha256 = "sha256-MWeK9nzMVP6cQs2GBFkohABgL8iWcT7YzwF+tLOkIjo=";
2920 })
2921 (fetchpatch {
2922 url = "https://bitbucket.org/nh2/hailgun/commits/583daaf87265a7fa67ce5171fe1077e61be9b39c/raw";
2923 sha256 = "sha256-6WITonLoONxZzzkS7EI79LwmwSdkt6TCgvHA2Hwy148=";
2924 })
2925 (fetchpatch {
2926 url = "https://bitbucket.org/nh2/hailgun/commits/b9680b82f6d58f807828c1bbb57e26c7af394501/raw";
2927 sha256 = "sha256-MnOc51tTNg8+HDu1VS2Ct7Mtu0vuuRd3DjzOAOF+t7Q=";
2928 })
2929 ] super.hailgun;
2930
2931 # opencascade-hs requires the include path configuring relative to the
2932 # opencascade subdirectory in include.
2933 opencascade-hs = appendConfigureFlags [
2934 "--extra-include-dirs=${lib.getDev pkgs.opencascade-occt}/include/opencascade"
2935 ] super.opencascade-hs;
2936
2937 # https://github.com/haskell-grpc-native/http2-client/pull/95
2938 # https://github.com/haskell-grpc-native/http2-client/pull/96
2939 # https://github.com/haskell-grpc-native/http2-client/pull/97
2940 # Apply patch for http2 >= 5.2, allow tls >= 2.1 and network >= 3.2
2941 http2-client = appendPatches [
2942 (fetchpatch {
2943 name = "http2-client-fix-build-with-http2-5.3.patch";
2944 url = "https://github.com/haskell-grpc-native/http2-client/pull/97/commits/95143e4843253913097838ab791ef39ddfd90b33.patch";
2945 sha256 = "09205ziac59axld8v1cyxa9xl42srypaq8d1gf6y3qwpmrx3rgr9";
2946 })
2947 ] (doJailbreak super.http2-client);
2948
2949 # Needs tls >= 2.1.10
2950 http2-tls =
2951 lib.warnIf (lib.versionAtLeast self.tls.version "2.1.10")
2952 "haskellPackages.http2-tls: tls override can be removed"
2953 (super.http2-tls.override { tls = self.tls_2_1_14; });
2954
2955 # Relax http2 version bound (5.3.9 -> 5.3.10)
2956 # https://github.com/well-typed/grapesy/issues/297
2957 # Tests fail with duplicate IsLabel instance error
2958 grapesy = dontCheck (doJailbreak super.grapesy);
2959
2960 # doctests are failing https://github.com/alpmestan/taggy-lens/issues/8
2961 taggy-lens = dontCheck super.taggy-lens;
2962
2963 # 2025-09-03: allow bytestring 0.12
2964 # https://github.com/wangbj/hashing/issues/4
2965 hashing = lib.pipe super.hashing [
2966 (warnAfterVersion "0.1.1.0")
2967 doJailbreak
2968 ];
2969
2970 bsb-http-chunked = lib.pipe super.bsb-http-chunked [
2971 (warnAfterVersion "0.0.0.4")
2972 # Last released in 2018
2973 # https://github.com/sjakobi/bsb-http-chunked/issues/38
2974 # https://github.com/sjakobi/bsb-http-chunked/issues/45
2975 (overrideSrc {
2976 src = pkgs.fetchFromGitHub {
2977 owner = "sjakobi";
2978 repo = "bsb-http-chunked";
2979 rev = "c0ecd72fe2beb1cf7de9340cc8b4a31045460532";
2980 hash = "sha256-+UDxfywXPjxPuFupcB8veyMYWVQCKha64me9HADtFGg=";
2981 };
2982 })
2983 # https://github.com/sjakobi/bsb-http-chunked/pull/49
2984 (appendPatch (fetchpatch {
2985 url = "https://github.com/sjakobi/bsb-http-chunked/commit/689bf9ce12b8301d0e13a68e4a515c2779b62947.patch";
2986 sha256 = "sha256-ZdCXMhni+RGisRODiElObW5c4hKy2giWQmWnatqeRJo=";
2987 }))
2988 ];
2989
2990 # jailbreak to allow deepseq >= 1.5, https://github.com/jumper149/blucontrol/issues/3
2991 blucontrol = doJailbreak super.blucontrol;
2992
2993 HList = lib.pipe super.HList [
2994 # Fixes syntax error in tests
2995 (appendPatch (fetchpatch {
2996 url = "https://bitbucket.org/HList/hlist/commits/e688f11d7432c812c2b238464401a86f588f81e1/raw";
2997 sha256 = "sha256-XIBIrR2MFmhKaocZJ4p57CgmAaFmMU5Z5a0rk2CjIcM=";
2998 }))
2999 ];
3000
3001 # 2025-04-09: jailbreak to allow hedgehog >= 1.5
3002 hw-int = warnAfterVersion "0.0.2.0" (doJailbreak super.hw-int);
3003
3004 # 2025-04-09: jailbreak to allow tasty-quickcheck >= 0.11
3005 bzlib = warnAfterVersion "0.5.2.0" (doJailbreak super.bzlib);
3006
3007 # 2025-07-29: test suite "test" fails to build because of missing source files,
3008 # fixed by https://github.com/commercialhaskell/path/pull/193
3009 path = warnAfterVersion "0.9.6" (dontCheck super.path);
3010
3011 inherit
3012 (lib.mapAttrs (
3013 _: pkg:
3014 lib.pipe pkg [
3015 (addTestToolDepends (
3016 with pkgs;
3017 [
3018 cvc4
3019 cvc5
3020 z3
3021 ]
3022 ))
3023 # 2025-04-09: FIXME: template_tests still failing with:
3024 # fd:9: hPutBuf: resource vanished (Broken pipe)
3025 dontCheck
3026
3027 doDistribute
3028 ]
3029 ) super)
3030 what4
3031 what4_1_7_2
3032 ;
3033
3034 copilot-theorem = lib.pipe super.copilot-theorem [
3035 (addTestToolDepends (with pkgs; [ z3 ]))
3036 ];
3037
3038 # 2025-04-09: jailbreak to allow mtl >= 2.3, template-haskell >= 2.17, text >= 1.3
3039 egison-pattern-src-th-mode = warnAfterVersion "0.2.1.2" (
3040 doJailbreak super.egison-pattern-src-th-mode
3041 );
3042
3043 # Missing test files, (and one the test suite needs stack)
3044 # https://github.com/egison/egison/issues/283
3045 egison = dontCheck super.egison;
3046
3047 # 2025-12-27: doctests broken with -Wx-partial warning
3048 # https://github.com/junjihashimoto/th-cas/issues/1
3049 th-cas = overrideCabal {
3050 testTargets = [ "spec" ];
3051 } super.th-cas;
3052
3053 # https://github.com/TristanCacqueray/haskell-xstatic/issues/5
3054 # Test suite gets confused by mime-types >= 0.1.2.1
3055 xstatic-th = dontCheck super.xstatic-th;
3056
3057 # 2025-04-09: jailbreak to allow base >= 4.17, hasql >= 1.6, hasql-transaction-io >= 0.2
3058 hasql-streams-core = warnAfterVersion "0.1.0.0" (doJailbreak super.hasql-streams-core);
3059
3060 # 2025-04-09: jailbreak to allow bytestring >= 0.12, text >= 2.1
3061 pipes-text = warnAfterVersion "1.0.1" (doJailbreak super.pipes-text);
3062
3063 # 2025-04-09: jailbreak to allow bytestring >= 0.12
3064 array-builder = warnAfterVersion "0.2.0.0" (doJailbreak super.array-builder);
3065
3066 # 2025-04-09: missing dependency - somehow it's not listed on hackage
3067 broadcast-chan = addExtraLibrary self.conduit super.broadcast-chan;
3068
3069 # 2025-04-09: jailbreak to allow aeson >= 2.2, base >= 4.19, text >= 2.1
3070 ebird-api = warnAfterVersion "0.2.0.0" (doJailbreak super.ebird-api);
3071
3072 # 2025-04-13: jailbreak to allow bytestring >= 0.12
3073 strings = warnAfterVersion "1.1" (doJailbreak super.strings);
3074
3075 # 2025-04-13: jailbreak to allow bytestring >= 0.12
3076 twain = warnAfterVersion "2.2.0.1" (doJailbreak super.twain);
3077
3078 # 2025-04-13: jailbreak to allow hedgehog >= 1.5
3079 hw-bits = warnAfterVersion "0.7.2.2" (doJailbreak super.hw-bits);
3080
3081 # 2025-04-23: jailbreak to allow bytestring >= 0.12
3082 brillo-rendering = warnAfterVersion "1.13.3" (doJailbreak super.brillo-rendering);
3083 brillo-examples = warnAfterVersion "1.13.3" (doJailbreak super.brillo-examples);
3084 brillo-juicy = warnAfterVersion "0.2.4" (doJailbreak super.brillo-juicy);
3085 brillo = warnAfterVersion "1.13.3" (doJailbreak super.brillo);
3086
3087 monad-bayes =
3088 # Floating point precision issues. Test suite is only checked on x86_64.
3089 # https://github.com/tweag/monad-bayes/issues/368
3090 dontCheckIf
3091 (
3092 let
3093 inherit (pkgs.stdenv) hostPlatform;
3094 in
3095 !hostPlatform.isx86_64
3096 # Presumably because we emulate x86_64-darwin via Rosetta, x86_64-darwin
3097 # also fails on Hydra
3098 || hostPlatform.isDarwin
3099 )
3100 # Too strict bounds on brick (<2.6), vty (<6.3)
3101 # https://github.com/tweag/monad-bayes/issues/378
3102 (doJailbreak super.monad-bayes);
3103
3104 # 2025-04-13: jailbreak to allow th-abstraction >= 0.7
3105 crucible = doJailbreak (
3106 super.crucible.override {
3107 what4 = self.what4_1_7_2;
3108 }
3109 );
3110
3111 crucible-llvm = super.crucible-llvm.override {
3112 what4 = self.what4_1_7_2;
3113 };
3114
3115 # Test suite invokes cabal-install in a way incompatible with our generic builder
3116 # (i.e. tries to re-use the ghc package db / environment from dist-newstyle).
3117 sensei = dontCheck super.sensei;
3118
3119 crux = super.crux.override {
3120 simple-get-opt = self.simple-get-opt_0_4;
3121 };
3122
3123 # 2025-04-23: jailbreak to allow megaparsec >= 9.7
3124 # 2025-04-23: test data missing from tarball
3125 crucible-syntax = doJailbreak (dontCheck super.crucible-syntax);
3126 # 2025-04-23: missing test data
3127 crucible-debug = overrideCabal (drv: {
3128 testFlags = drv.testFlags or [ ] ++ [
3129 "-p"
3130 (lib.concatStringsSep "&&" [
3131 "!/backtrace.txt/"
3132 "!/block.txt/"
3133 "!/call-basic.txt/"
3134 "!/clear.txt/"
3135 "!/frame.txt/"
3136 "!/load-empty.txt/"
3137 "!/obligation-false.txt/"
3138 "!/prove-false.txt/"
3139 "!/prove-true.txt/"
3140 "!/test-data\\/.break.txt/"
3141 "!/test-data\\/.reg.txt/"
3142 "!/test-data\\/.reg.txt/"
3143 "!/test-data\\/.trace.txt/"
3144 "!/test-data\\/complete\\/.break.txt/"
3145 ])
3146 ];
3147 }) super.crucible-debug;
3148 # 2025-04-23: missing test data
3149 llvm-pretty-bc-parser = dontCheck super.llvm-pretty-bc-parser;
3150
3151 # diagrams-builder wants diagrams-cairo < 1.5 for its cairo executable,
3152 # but Stackage LTS 24 contains diagrams-cairo >= 1.5.
3153 # As such it is difficult to provide (2025-09-13)
3154 # ATTN: This needs to match ../../tools/graphics/diagrams-builder/default.nix:/backends
3155 # TODO: can we reinstate this by manually passing an older version?
3156 diagrams-builder = disableCabalFlag "cairo" (
3157 super.diagrams-builder.override {
3158 diagrams-cairo = null;
3159 }
3160 );
3161
3162 # 2025-04-23: Allow bytestring >= 0.12
3163 # https://github.com/mrkkrp/wave/issues/48
3164 wave = doJailbreak super.wave;
3165
3166 # Test suite no longer compiles with hspec-hedgehog >= 0.3
3167 finitary = dontCheck super.finitary;
3168
3169 # 2025-04-13: jailbreak to allow template-haskell >= 2.17
3170 sr-extra = warnAfterVersion "1.88" (
3171 overrideCabal (drv: {
3172 version = "1.88-unstable-2025-03-30";
3173 # includes https://github.com/seereason/sr-extra/pull/7
3174 src = pkgs.fetchFromGitHub {
3175 owner = "seereason";
3176 repo = "sr-extra";
3177 rev = "2b18ced8d07aa8832168971842b20ea49369e4f0";
3178 hash = "sha256-jInfHA1xkLjx5PfsgQVzeQIN3OjTUpEz7dpVNOGNo3g=";
3179 };
3180 editedCabalFile = null;
3181 revision = null;
3182 }) super.sr-extra
3183 );
3184
3185 # Too strict bounds on base <4.19 and tasty <1.5
3186 # https://github.com/maoe/ghc-prof/issues/25
3187 ghc-prof = doJailbreak super.ghc-prof;
3188 # aeson <2.2, bytestring <0.12, text <2.1
3189 # https://github.com/jaspervdj/profiteur/issues/43
3190 profiteur = doJailbreak super.profiteur;
3191
3192 # 2025-04-19: Tests randomly fail 6 out of 10 times
3193 coinor-clp = dontCheck super.coinor-clp;
3194
3195 # 2025-04-19: Tests randomly fail 5 out of 10 times
3196 fft = dontCheck super.fft;
3197
3198 # 2025-5-15: Too strict bounds on base <4.19, see: https://github.com/zachjs/sv2v/issues/317
3199 sv2v = doJailbreak super.sv2v;
3200
3201 # 2025-06-25: Upper bounds of transformers and bytestring too strict,
3202 # as haskore 0.2.0.8 was released in 2016 and is quite outdated.
3203 # Tests fail with:
3204 # ### Error in: 11:comparison with MIDI files generated by former Haskore versions:23:Ssf:1
3205 # src/Test/MIDI/Ssf.mid: openBinaryFile: does not exist (No such file or directory)
3206 # Necessary files aren't listed in extra-source-files in the cabal file
3207 # and therefore aren't uploaded to hackage
3208 # Needs to be fixed upstream
3209 haskore = dontCheck (doJailbreak super.haskore);
3210
3211 # 2025-07-10: Hackage release is outdated, https://github.com/portnov/libssh2-hs/issues/77
3212 libssh2 = overrideSrc {
3213 version = "0.2.0.9-unstable-2025-04-03";
3214 src =
3215 pkgs.fetchFromGitHub {
3216 owner = "portnov";
3217 repo = "libssh2-hs";
3218 rev = "d35fa047cd872a73cd4db83aa3185463ac88a1d7";
3219 sha256 = "sha256-m3VVx9mgI3OqtWHC8qY63/Wns808q5iITD5regdMILo=";
3220 }
3221 + "/libssh2";
3222 } super.libssh2;
3223
3224 # 2025-8-19: dontCheck because of: https://github.com/ucsd-progsys/liquid-fixpoint/issues/760
3225 # i.e. tests assume existence of .git and also fail for some versions of CVC5,
3226 # including the current one in nixpkgs.
3227 liquid-fixpoint = dontCheck super.liquid-fixpoint;
3228
3229 # 2025-8-26: Too strict bounds on containers and text, see: https://github.com/stackbuilders/inflections-hs/pull/83
3230 inflections = doJailbreak super.inflections;
3231
3232 # 2025-8-26: Too strict bounds on base <=4.19, see https://github.com/typeclasses/stripe/pull/11
3233 stripe-concepts = doJailbreak super.stripe-concepts;
3234 stripe-signature = doJailbreak super.stripe-signature;
3235 stripe-wreq = doJailbreak super.stripe-wreq;
3236}
3237// import ./configuration-tensorflow.nix { inherit pkgs haskellLib; } self super
3238
3239# Amazonka Packages
3240# 2025-01-24: use latest source files from github, as the hackage release is outdated, https://github.com/brendanhay/amazonka/issues/1001
3241// (
3242 let
3243 amazonkaSrc = pkgs.fetchFromGitHub {
3244 owner = "brendanhay";
3245 repo = "amazonka";
3246 rev = "7645bd335f008912b9e5257486f622b674de7afa";
3247 sha256 = "sha256-ObamDnJdcLA2BlX9iGIxkaknUeL3Po3madKO4JA/em0=";
3248 };
3249 setAmazonkaSourceRoot =
3250 dir: drv:
3251 (overrideSrc {
3252 version = "2.0-unstable-2025-04-16";
3253 src = amazonkaSrc + "/${dir}";
3254 })
3255 drv;
3256 # To get the list of amazonka services run:
3257 # > nix eval --impure --expr 'builtins.attrNames (import ./. {}).haskellPackages' --json | jq '.[]' | grep '^"amazonka'
3258 # NB: we exclude amazonka-test and amazonka-s3-streaming
3259 amazonkaServices = [
3260 "amazonka"
3261 "amazonka-accessanalyzer"
3262 "amazonka-account"
3263 "amazonka-alexa-business"
3264 "amazonka-amp"
3265 "amazonka-amplify"
3266 "amazonka-amplifybackend"
3267 "amazonka-amplifyuibuilder"
3268 "amazonka-apigateway"
3269 "amazonka-apigatewaymanagementapi"
3270 "amazonka-apigatewayv2"
3271 "amazonka-appconfig"
3272 "amazonka-appconfigdata"
3273 "amazonka-appflow"
3274 "amazonka-appintegrations"
3275 "amazonka-application-autoscaling"
3276 "amazonka-application-insights"
3277 "amazonka-applicationcostprofiler"
3278 "amazonka-appmesh"
3279 "amazonka-apprunner"
3280 "amazonka-appstream"
3281 "amazonka-appsync"
3282 "amazonka-arc-zonal-shift"
3283 "amazonka-athena"
3284 "amazonka-auditmanager"
3285 "amazonka-autoscaling"
3286 "amazonka-autoscaling-plans"
3287 "amazonka-backup"
3288 "amazonka-backup-gateway"
3289 "amazonka-backupstorage"
3290 "amazonka-batch"
3291 "amazonka-billingconductor"
3292 "amazonka-braket"
3293 "amazonka-budgets"
3294 "amazonka-certificatemanager"
3295 "amazonka-certificatemanager-pca"
3296 "amazonka-chime"
3297 "amazonka-chime-sdk-identity"
3298 "amazonka-chime-sdk-media-pipelines"
3299 "amazonka-chime-sdk-meetings"
3300 "amazonka-chime-sdk-messaging"
3301 "amazonka-chime-sdk-voice"
3302 "amazonka-cloud9"
3303 "amazonka-cloudcontrol"
3304 "amazonka-clouddirectory"
3305 "amazonka-cloudformation"
3306 "amazonka-cloudfront"
3307 "amazonka-cloudhsm"
3308 "amazonka-cloudhsmv2"
3309 "amazonka-cloudsearch"
3310 "amazonka-cloudsearch-domains"
3311 "amazonka-cloudtrail"
3312 "amazonka-cloudwatch"
3313 "amazonka-cloudwatch-events"
3314 "amazonka-cloudwatch-logs"
3315 "amazonka-codeartifact"
3316 "amazonka-codebuild"
3317 "amazonka-codecommit"
3318 "amazonka-codedeploy"
3319 "amazonka-codeguru-reviewer"
3320 "amazonka-codeguruprofiler"
3321 "amazonka-codepipeline"
3322 "amazonka-codestar"
3323 "amazonka-codestar-connections"
3324 "amazonka-codestar-notifications"
3325 "amazonka-cognito-identity"
3326 "amazonka-cognito-idp"
3327 "amazonka-cognito-sync"
3328 "amazonka-comprehend"
3329 "amazonka-comprehendmedical"
3330 "amazonka-compute-optimizer"
3331 "amazonka-config"
3332 "amazonka-connect"
3333 "amazonka-connect-contact-lens"
3334 "amazonka-connectcampaigns"
3335 "amazonka-connectcases"
3336 "amazonka-connectparticipant"
3337 "amazonka-contrib-rds-utils"
3338 "amazonka-controltower"
3339 "amazonka-core"
3340 "amazonka-cost-explorer"
3341 "amazonka-cur"
3342 "amazonka-customer-profiles"
3343 "amazonka-databrew"
3344 "amazonka-dataexchange"
3345 "amazonka-datapipeline"
3346 "amazonka-datasync"
3347 "amazonka-detective"
3348 "amazonka-devicefarm"
3349 "amazonka-devops-guru"
3350 "amazonka-directconnect"
3351 "amazonka-discovery"
3352 "amazonka-dlm"
3353 "amazonka-dms"
3354 "amazonka-docdb"
3355 "amazonka-docdb-elastic"
3356 "amazonka-drs"
3357 "amazonka-ds"
3358 "amazonka-dynamodb"
3359 "amazonka-dynamodb-dax"
3360 "amazonka-dynamodb-streams"
3361 "amazonka-ebs"
3362 "amazonka-ec2"
3363 "amazonka-ec2-instance-connect"
3364 "amazonka-ecr"
3365 "amazonka-ecr-public"
3366 "amazonka-ecs"
3367 "amazonka-efs"
3368 "amazonka-eks"
3369 "amazonka-elastic-inference"
3370 "amazonka-elasticache"
3371 "amazonka-elasticbeanstalk"
3372 "amazonka-elasticsearch"
3373 "amazonka-elastictranscoder"
3374 "amazonka-elb"
3375 "amazonka-elbv2"
3376 "amazonka-emr"
3377 "amazonka-emr-containers"
3378 "amazonka-emr-serverless"
3379 "amazonka-evidently"
3380 "amazonka-finspace"
3381 "amazonka-finspace-data"
3382 "amazonka-fis"
3383 "amazonka-fms"
3384 "amazonka-forecast"
3385 "amazonka-forecastquery"
3386 "amazonka-frauddetector"
3387 "amazonka-fsx"
3388 "amazonka-gamelift"
3389 "amazonka-gamesparks"
3390 "amazonka-glacier"
3391 "amazonka-globalaccelerator"
3392 "amazonka-glue"
3393 "amazonka-grafana"
3394 "amazonka-greengrass"
3395 "amazonka-greengrassv2"
3396 "amazonka-groundstation"
3397 "amazonka-guardduty"
3398 "amazonka-health"
3399 "amazonka-healthlake"
3400 "amazonka-honeycode"
3401 "amazonka-iam"
3402 "amazonka-iam-policy"
3403 "amazonka-identitystore"
3404 "amazonka-imagebuilder"
3405 "amazonka-importexport"
3406 "amazonka-inspector"
3407 "amazonka-inspector2"
3408 "amazonka-iot"
3409 "amazonka-iot-analytics"
3410 "amazonka-iot-dataplane"
3411 "amazonka-iot-jobs-dataplane"
3412 "amazonka-iot-roborunner"
3413 "amazonka-iot1click-devices"
3414 "amazonka-iot1click-projects"
3415 "amazonka-iotdeviceadvisor"
3416 "amazonka-iotevents"
3417 "amazonka-iotevents-data"
3418 "amazonka-iotfleethub"
3419 "amazonka-iotfleetwise"
3420 "amazonka-iotsecuretunneling"
3421 "amazonka-iotsitewise"
3422 "amazonka-iotthingsgraph"
3423 "amazonka-iottwinmaker"
3424 "amazonka-iotwireless"
3425 "amazonka-ivs"
3426 "amazonka-ivschat"
3427 "amazonka-kafka"
3428 "amazonka-kafkaconnect"
3429 "amazonka-kendra"
3430 "amazonka-keyspaces"
3431 "amazonka-kinesis"
3432 "amazonka-kinesis-analytics"
3433 "amazonka-kinesis-firehose"
3434 "amazonka-kinesis-video"
3435 "amazonka-kinesis-video-archived-media"
3436 "amazonka-kinesis-video-media"
3437 "amazonka-kinesis-video-signaling"
3438 "amazonka-kinesis-video-webrtc-storage"
3439 "amazonka-kinesisanalyticsv2"
3440 "amazonka-kms"
3441 "amazonka-lakeformation"
3442 "amazonka-lambda"
3443 "amazonka-lex-models"
3444 "amazonka-lex-runtime"
3445 "amazonka-lexv2-models"
3446 "amazonka-license-manager"
3447 "amazonka-license-manager-linux-subscriptions"
3448 "amazonka-license-manager-user-subscriptions"
3449 "amazonka-lightsail"
3450 "amazonka-location"
3451 "amazonka-lookoutequipment"
3452 "amazonka-lookoutmetrics"
3453 "amazonka-lookoutvision"
3454 "amazonka-m2"
3455 "amazonka-macie"
3456 "amazonka-maciev2"
3457 "amazonka-managedblockchain"
3458 "amazonka-marketplace-analytics"
3459 "amazonka-marketplace-catalog"
3460 "amazonka-marketplace-entitlement"
3461 "amazonka-marketplace-metering"
3462 "amazonka-mechanicalturk"
3463 "amazonka-mediaconnect"
3464 "amazonka-mediaconvert"
3465 "amazonka-medialive"
3466 "amazonka-mediapackage"
3467 "amazonka-mediapackage-vod"
3468 "amazonka-mediastore"
3469 "amazonka-mediastore-dataplane"
3470 "amazonka-mediatailor"
3471 "amazonka-memorydb"
3472 "amazonka-mgn"
3473 "amazonka-migration-hub-refactor-spaces"
3474 "amazonka-migrationhub"
3475 "amazonka-migrationhub-config"
3476 "amazonka-migrationhuborchestrator"
3477 "amazonka-migrationhubstrategy"
3478 "amazonka-ml"
3479 "amazonka-mobile"
3480 "amazonka-mq"
3481 "amazonka-mtl"
3482 "amazonka-mwaa"
3483 "amazonka-neptune"
3484 "amazonka-network-firewall"
3485 "amazonka-networkmanager"
3486 "amazonka-nimble"
3487 "amazonka-oam"
3488 "amazonka-omics"
3489 "amazonka-opensearch"
3490 "amazonka-opensearchserverless"
3491 "amazonka-opsworks"
3492 "amazonka-opsworks-cm"
3493 "amazonka-organizations"
3494 "amazonka-outposts"
3495 "amazonka-panorama"
3496 "amazonka-personalize"
3497 "amazonka-personalize-events"
3498 "amazonka-personalize-runtime"
3499 "amazonka-pi"
3500 "amazonka-pinpoint"
3501 "amazonka-pinpoint-email"
3502 "amazonka-pinpoint-sms-voice"
3503 "amazonka-pinpoint-sms-voice-v2"
3504 "amazonka-pipes"
3505 "amazonka-polly"
3506 "amazonka-pricing"
3507 "amazonka-privatenetworks"
3508 "amazonka-proton"
3509 "amazonka-qldb"
3510 "amazonka-qldb-session"
3511 "amazonka-quicksight"
3512 "amazonka-ram"
3513 "amazonka-rbin"
3514 "amazonka-rds"
3515 "amazonka-rds-data"
3516 "amazonka-redshift"
3517 "amazonka-redshift-data"
3518 "amazonka-redshift-serverless"
3519 "amazonka-rekognition"
3520 "amazonka-resiliencehub"
3521 "amazonka-resource-explorer-v2"
3522 "amazonka-resourcegroups"
3523 "amazonka-resourcegroupstagging"
3524 "amazonka-robomaker"
3525 "amazonka-rolesanywhere"
3526 "amazonka-route53"
3527 "amazonka-route53-autonaming"
3528 "amazonka-route53-domains"
3529 "amazonka-route53-recovery-cluster"
3530 "amazonka-route53-recovery-control-config"
3531 "amazonka-route53-recovery-readiness"
3532 "amazonka-route53resolver"
3533 "amazonka-rum"
3534 "amazonka-s3"
3535 "amazonka-s3-encryption"
3536 #"amazonka-s3-streaming"
3537 "amazonka-s3outposts"
3538 "amazonka-sagemaker"
3539 "amazonka-sagemaker-a2i-runtime"
3540 "amazonka-sagemaker-edge"
3541 "amazonka-sagemaker-featurestore-runtime"
3542 "amazonka-sagemaker-geospatial"
3543 "amazonka-sagemaker-metrics"
3544 "amazonka-sagemaker-runtime"
3545 "amazonka-savingsplans"
3546 "amazonka-scheduler"
3547 "amazonka-schemas"
3548 "amazonka-sdb"
3549 "amazonka-secretsmanager"
3550 "amazonka-securityhub"
3551 "amazonka-securitylake"
3552 "amazonka-serverlessrepo"
3553 "amazonka-service-quotas"
3554 "amazonka-servicecatalog"
3555 "amazonka-servicecatalog-appregistry"
3556 "amazonka-ses"
3557 "amazonka-sesv2"
3558 "amazonka-shield"
3559 "amazonka-signer"
3560 "amazonka-simspaceweaver"
3561 "amazonka-sms"
3562 "amazonka-sms-voice"
3563 "amazonka-snow-device-management"
3564 "amazonka-snowball"
3565 "amazonka-sns"
3566 "amazonka-sqs"
3567 "amazonka-ssm"
3568 "amazonka-ssm-contacts"
3569 "amazonka-ssm-incidents"
3570 "amazonka-ssm-sap"
3571 "amazonka-sso"
3572 "amazonka-sso-admin"
3573 "amazonka-sso-oidc"
3574 "amazonka-stepfunctions"
3575 "amazonka-storagegateway"
3576 "amazonka-sts"
3577 "amazonka-support"
3578 "amazonka-support-app"
3579 "amazonka-swf"
3580 "amazonka-synthetics"
3581 #"amazonka-test"
3582 "amazonka-textract"
3583 "amazonka-timestream-query"
3584 "amazonka-timestream-write"
3585 "amazonka-transcribe"
3586 "amazonka-transfer"
3587 "amazonka-translate"
3588 "amazonka-voice-id"
3589 "amazonka-waf"
3590 "amazonka-waf-regional"
3591 "amazonka-wafv2"
3592 "amazonka-wellarchitected"
3593 "amazonka-wisdom"
3594 "amazonka-workdocs"
3595 "amazonka-worklink"
3596 "amazonka-workmail"
3597 "amazonka-workmailmessageflow"
3598 "amazonka-workspaces"
3599 "amazonka-workspaces-web"
3600 "amazonka-xray"
3601 ];
3602 amazonkaServiceOverrides = (
3603 lib.genAttrs amazonkaServices (
3604 name:
3605 lib.pipe super.${name} [
3606 (setAmazonkaSourceRoot "lib/services/${name}")
3607 (x: x)
3608 ]
3609 )
3610 );
3611 in
3612 amazonkaServiceOverrides
3613 // {
3614 amazonka-core = lib.pipe super.amazonka-core [
3615 (warnAfterVersion "2.0")
3616 (setAmazonkaSourceRoot "lib/amazonka-core")
3617 (addBuildDepends [
3618 self.microlens
3619 self.microlens-contra
3620 self.microlens-pro
3621 ])
3622 ];
3623 amazonka = warnAfterVersion "2.0" (
3624 setAmazonkaSourceRoot "lib/amazonka" (doJailbreak super.amazonka)
3625 );
3626 amazonka-test = warnAfterVersion "2.0" (
3627 setAmazonkaSourceRoot "lib/amazonka-test" (doJailbreak super.amazonka-test)
3628 );
3629 }
3630)
3631
3632# Cachix packages
3633# Manually maintained
3634// (
3635 let
3636 version = "1.10.1";
3637
3638 src = pkgs.fetchFromGitHub {
3639 owner = "cachix";
3640 repo = "cachix";
3641 tag = "v${version}";
3642 hash = "sha256-kNwoplCrqAymyFIzoR1rpEj0I1Ass+wuP8YsVS61630=";
3643 };
3644 in
3645 {
3646 cachix-api = overrideSrc {
3647 inherit version;
3648 src = src + "/cachix-api";
3649 } super.cachix-api;
3650
3651 cachix = lib.pipe super.cachix [
3652 (overrideSrc {
3653 inherit version;
3654 src = src + "/cachix";
3655 })
3656 (addBuildDepends [
3657 self.pqueue
3658 ])
3659 (
3660 drv:
3661 drv.override {
3662 nix = self.hercules-ci-cnix-store.nixPackage;
3663 hnix-store-core = self.hnix-store-core_0_8_0_0;
3664 }
3665 )
3666 ];
3667 }
3668)