nixpkgs/pkgs/development/haskell-modules/configuration-ghcjs.nix
2021-11-07 20:18:45 +08:00

110 lines
3.4 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;
ghcjs-base = dontCheck (self.callPackage ../compilers/ghcjs/ghcjs-base.nix {
fetchgit = pkgs.buildPackages.fetchgit;
});
# GHCJS does not ship with the same core packages as GHC.
# https://github.com/ghcjs/ghcjs/issues/676
stm = doJailbreak self.stm_2_5_0_1;
exceptions = dontCheck self.exceptions_0_10_4;
## 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;
# 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;
# https://github.com/haskell/vector/issues/410
vector = appendPatch super.vector (../compilers/ghcjs/patches/vector-ghcjs-storable-set.patch);
# Need hedgehog for tests, which fails to compile due to dep on concurrent-output
zenc = dontCheck super.zenc;
}