134 lines
4.2 KiB
Nix
134 lines
4.2 KiB
Nix
|
# GHCJS package fixes
|
||
|
#
|
||
|
# Please insert new packages *alphabetically*
|
||
|
# in the OTHER PACKAGES section.
|
||
|
{ pkgs, haskellLib }:
|
||
|
|
||
|
let
|
||
|
removeLibraryHaskellDepends = pnames: depends:
|
||
|
builtins.filter (e: !(builtins.elem (e.pname or "") pnames)) depends;
|
||
|
in
|
||
|
|
||
|
with haskellLib;
|
||
|
|
||
|
self: super:
|
||
|
|
||
|
## GENERAL SETUP BASE PACKAGES
|
||
|
{
|
||
|
inherit (self.ghc.bootPkgs)
|
||
|
jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
|
||
|
|
||
|
# Test suite fails; https://github.com/ghcjs/ghcjs-base/issues/133
|
||
|
ghcjs-base = dontCheck (self.callPackage ../compilers/ghcjs/ghcjs-base.nix {
|
||
|
fetchFromGitHub = pkgs.buildPackages.fetchFromGitHub;
|
||
|
aeson = self.aeson_1_5_6_0;
|
||
|
});
|
||
|
|
||
|
# GHCJS does not ship with the same core packages as GHC.
|
||
|
# https://github.com/ghcjs/ghcjs/issues/676
|
||
|
stm = doJailbreak self.stm_2_5_3_0;
|
||
|
exceptions = dontCheck self.exceptions_0_10_7;
|
||
|
|
||
|
## OTHER PACKAGES
|
||
|
|
||
|
# Runtime exception in tests, missing C API h$realloc
|
||
|
base-compat-batteries = dontCheck super.base-compat-batteries;
|
||
|
|
||
|
# nodejs crashes during test
|
||
|
ChasingBottoms = dontCheck super.ChasingBottoms;
|
||
|
|
||
|
# runs forever
|
||
|
text-short = dontCheck super.text-short;
|
||
|
|
||
|
# doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency
|
||
|
doctest = pkgs.lib.warn "ignoring dependency on doctest" null;
|
||
|
|
||
|
ghcjs-dom = overrideCabal (drv: {
|
||
|
libraryHaskellDepends = with self; [
|
||
|
ghcjs-base ghcjs-dom-jsffi text transformers
|
||
|
];
|
||
|
configureFlags = [ "-fjsffi" "-f-webkit" ];
|
||
|
}) super.ghcjs-dom;
|
||
|
|
||
|
ghcjs-dom-jsffi = overrideCabal (drv: {
|
||
|
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base self.text ];
|
||
|
broken = false;
|
||
|
}) super.ghcjs-dom-jsffi;
|
||
|
|
||
|
# https://github.com/Deewiant/glob/issues/39
|
||
|
Glob = dontCheck super.Glob;
|
||
|
|
||
|
# Test fails to compile during the hsc2hs stage
|
||
|
hashable = dontCheck super.hashable;
|
||
|
|
||
|
# uses doctest
|
||
|
http-types = dontCheck super.http-types;
|
||
|
|
||
|
jsaddle = overrideCabal (drv: {
|
||
|
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
|
||
|
}) super.jsaddle;
|
||
|
|
||
|
# Tests hang, possibly some issue with tasty and race(async) usage in the nonTerminating tests
|
||
|
logict = dontCheck super.logict;
|
||
|
|
||
|
patch = dontCheck super.patch;
|
||
|
|
||
|
# TODO: tests hang
|
||
|
pcre-light = dontCheck super.pcre-light;
|
||
|
|
||
|
# Terminal test not supported on ghcjs
|
||
|
QuickCheck = dontCheck super.QuickCheck;
|
||
|
|
||
|
reflex = overrideCabal (drv: {
|
||
|
libraryHaskellDepends = (drv.libraryHaskellDepends or []) ++ [ self.ghcjs-base ];
|
||
|
}) super.reflex;
|
||
|
|
||
|
reflex-dom = overrideCabal (drv: {
|
||
|
libraryHaskellDepends = removeLibraryHaskellDepends ["jsaddle-webkit2gtk"] (drv.libraryHaskellDepends or []);
|
||
|
}) super.reflex-dom;
|
||
|
|
||
|
# https://github.com/dreixel/syb/issues/21
|
||
|
syb = dontCheck super.syb;
|
||
|
|
||
|
# nodejs crashes during test
|
||
|
scientific = dontCheck super.scientific;
|
||
|
|
||
|
# Tests use TH which gives error
|
||
|
tasty-quickcheck = dontCheck super.tasty-quickcheck;
|
||
|
|
||
|
temporary = dontCheck super.temporary;
|
||
|
|
||
|
# 2 tests fail, related to time precision
|
||
|
time-compat = dontCheck super.time-compat;
|
||
|
|
||
|
# TODO: The tests have a TH error, which has been fixed in ghc
|
||
|
# https://gitlab.haskell.org/ghc/ghc/-/issues/15481 but somehow the issue is
|
||
|
# still present here https://github.com/glguy/th-abstraction/issues/53
|
||
|
th-abstraction = dontCheck super.th-abstraction;
|
||
|
|
||
|
# Need hedgehog for tests, which fails to compile due to dep on concurrent-output
|
||
|
zenc = dontCheck super.zenc;
|
||
|
|
||
|
hspec = self.hspec_2_7_10;
|
||
|
hspec-core = self.hspec-core_2_7_10;
|
||
|
hspec-meta = self.hspec-meta_2_7_8;
|
||
|
hspec-discover = self.hspec-discover_2_7_10;
|
||
|
|
||
|
# ReferenceError: h$primop_ShrinkSmallMutableArrayOp_Char is not defined
|
||
|
unordered-containers = dontCheck super.unordered-containers;
|
||
|
|
||
|
# Without this revert, test suites using tasty fail with:
|
||
|
# ReferenceError: h$getMonotonicNSec is not defined
|
||
|
# https://github.com/UnkindPartition/tasty/pull/345#issuecomment-1538216407
|
||
|
tasty = appendPatch (pkgs.fetchpatch {
|
||
|
name = "tasty-ghcjs.patch";
|
||
|
url = "https://github.com/UnkindPartition/tasty/commit/e692065642fd09b82acccea610ad8f49edd207df.patch";
|
||
|
revert = true;
|
||
|
relative = "core";
|
||
|
hash = "sha256-ryABU2ywkVOEPC/jWv8humT3HaRpCwMYEk+Ux3hhi/M=";
|
||
|
}) super.tasty;
|
||
|
|
||
|
# Tests take unacceptably long.
|
||
|
vector = dontCheck super.vector;
|
||
|
}
|