3 # Please insert new packages *alphabetically*
4 # in the OTHER PACKAGES section.
8 removeLibraryHaskellDepends = pnames: depends:
9 builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends;
16 ## GENERAL SETUP BASE PACKAGES
18 inherit (self.ghc.bootPkgs)
19 jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
21 # Test suite fails; https://github.com/ghcjs/ghcjs-base/issues/133
22 ghcjs-base = dontCheck (self.callPackage ../compilers/ghcjs/ghcjs-base.nix {
23 fetchFromGitHub = pkgs.buildPackages.fetchFromGitHub;
24 aeson = self.aeson_1_5_6_0;
27 # Included in ghcjs itself
30 ghcjs-websockets = markUnbroken super.ghcjs-websockets;
32 # GHCJS does not ship with the same core packages as GHC.
33 # https://github.com/ghcjs/ghcjs/issues/676
34 stm = doJailbreak self.stm_2_5_3_1;
35 exceptions = dontCheck self.exceptions_0_10_8;
39 # Runtime exception in tests, missing C API h$realloc
40 base-compat-batteries = dontCheck super.base-compat-batteries;
42 # nodejs crashes during test
43 ChasingBottoms = dontCheck super.ChasingBottoms;
46 text-short = dontCheck super.text-short;
48 # doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency
49 doctest = pkgs.lib.warn "ignoring dependency on doctest" null;
51 ghcjs-dom = overrideCabal (drv: {
52 libraryHaskellDepends = with self; [
53 ghcjs-base ghcjs-dom-jsffi text transformers
55 configureFlags = [ "-fjsffi" "-f-webkit" ];
58 ghcjs-dom-jsffi = overrideCabal (drv: {
59 libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
61 }) super.ghcjs-dom-jsffi;
63 # https://github.com/Deewiant/glob/issues/39
64 Glob = dontCheck super.Glob;
66 # Test fails to compile during the hsc2hs stage
67 hashable = dontCheck super.hashable;
70 http-types = dontCheck super.http-types;
72 jsaddle = overrideCabal (drv: {
73 libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
76 # Tests hang, possibly some issue with tasty and race(async) usage in the nonTerminating tests
77 logict = dontCheck super.logict;
79 patch = dontCheck super.patch;
82 pcre-light = dontCheck super.pcre-light;
84 # Terminal test not supported on ghcjs
85 QuickCheck = dontCheck super.QuickCheck;
87 reflex = overrideCabal (drv: {
88 libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
91 reflex-dom = overrideCabal (drv: {
92 libraryHaskellDepends = removeLibraryHaskellDepends ["jsaddle-webkit2gtk"] (drv.libraryHaskellDepends or []);
95 # https://github.com/dreixel/syb/issues/21
96 syb = dontCheck super.syb;
98 # nodejs crashes during test
99 scientific = dontCheck super.scientific;
101 # Tests use TH which gives error
102 tasty-quickcheck = dontCheck super.tasty-quickcheck;
104 temporary = dontCheck super.temporary;
106 # 2 tests fail, related to time precision
107 time-compat = dontCheck super.time-compat;
109 # TODO: The tests have a TH error, which has been fixed in ghc
110 # https://gitlab.haskell.org/ghc/ghc/-/issues/15481 but somehow the issue is
111 # still present here https://github.com/glguy/th-abstraction/issues/53
112 th-abstraction = dontCheck super.th-abstraction;
114 # Need hedgehog for tests, which fails to compile due to dep on concurrent-output
115 zenc = dontCheck super.zenc;
117 hspec = self.hspec_2_7_10;
118 hspec-core = self.hspec-core_2_7_10;
119 hspec-meta = self.hspec-meta_2_7_8;
120 hspec-discover = self.hspec-discover_2_7_10;
122 # ReferenceError: h$primop_ShrinkSmallMutableArrayOp_Char is not defined
123 unordered-containers = dontCheck super.unordered-containers;
125 # Without this revert, test suites using tasty fail with:
126 # ReferenceError: h$getMonotonicNSec is not defined
127 # https://github.com/UnkindPartition/tasty/pull/345#issuecomment-1538216407
128 tasty = appendPatch (pkgs.fetchpatch {
129 name = "tasty-ghcjs.patch";
130 url = "https://github.com/UnkindPartition/tasty/commit/e692065642fd09b82acccea610ad8f49edd207df.patch";
133 hash = "sha256-ryABU2ywkVOEPC/jWv8humT3HaRpCwMYEk+Ux3hhi/M=";
136 # Tests take unacceptably long.
137 vector = dontCheck super.vector;