2015-01-07 11:31:32 -08:00
{ pkgs }:
2016-01-24 14:12:03 -08:00
let
removeLibraryHaskellDepends = pnames : depends :
builtins . filter ( e : ! ( builtins . elem ( e . pname or " " ) pnames ) ) depends ;
in
2015-01-10 11:26:08 -08:00
with import ./lib.nix { inherit pkgs ; } ;
2015-01-07 11:31:32 -08:00
self : super : {
2015-03-09 12:11:23 -07:00
# LLVM is not supported on this GHC; use the latest one.
inherit ( pkgs ) llvmPackages ;
2015-09-14 07:39:44 -07:00
inherit ( pkgs . haskell . packages . ghc7102 ) jailbreak-cabal alex happy gtk2hs-buildtools ;
2015-03-12 20:20:56 -07:00
2015-01-07 11:31:32 -08:00
# This is the list of packages that are built into a booted ghcjs installation
# It can be generated with the command:
2015-11-12 16:47:41 -08:00
# nix-shell -p haskell.packages.ghcjs.ghc --command "ghcjs-pkg list | sed -n 's/^ \(.*\)-\([0-9.]*\)$/\1_\2/ p' | sed 's/\./_/g' | sed 's/-\(.\)/\U\1/' | sed 's/^\([^_]*\)\(.*\)$/\1 = null;/'"
2015-01-07 11:31:32 -08:00
Cabal = null ;
aeson = null ;
array = null ;
async = null ;
attoparsec = null ;
base = null ;
binary = null ;
rts = null ;
bytestring = null ;
2015-03-12 20:20:56 -07:00
case-insensitive = null ;
2015-01-07 11:31:32 -08:00
containers = null ;
deepseq = null ;
directory = null ;
dlist = null ;
2015-03-12 20:20:56 -07:00
extensible-exceptions = null ;
2015-01-07 11:31:32 -08:00
filepath = null ;
2015-03-12 20:20:56 -07:00
ghc-prim = null ;
ghcjs-base = null ;
ghcjs-prim = null ;
2015-01-07 11:31:32 -08:00
hashable = null ;
2015-03-12 20:20:56 -07:00
integer-gmp = null ;
2015-01-07 11:31:32 -08:00
mtl = null ;
2015-03-12 20:20:56 -07:00
old-locale = null ;
old-time = null ;
2015-01-07 11:31:32 -08:00
parallel = null ;
pretty = null ;
primitive = null ;
process = null ;
scientific = null ;
stm = null ;
syb = null ;
2015-03-12 20:20:56 -07:00
template-haskell = null ;
2015-01-07 11:31:32 -08:00
text = null ;
time = null ;
transformers = null ;
unix = null ;
2015-03-12 20:20:56 -07:00
unordered-containers = null ;
2015-01-07 11:31:32 -08:00
vector = null ;
2015-10-16 06:12:27 -07:00
# These packages are core libraries in GHC 7.10.x, but not here.
bin-package-db = null ;
haskeline = self . haskeline_0_7_2_1 ;
2016-01-24 10:27:41 -08:00
hoopl = self . hoopl_3_10_2_1 ;
2015-10-16 06:12:27 -07:00
hpc = self . hpc_0_6_0_2 ;
terminfo = self . terminfo_0_4_0_1 ;
xhtml = self . xhtml_3000_2_1 ;
2015-03-12 20:20:56 -07:00
pqueue = overrideCabal super . pqueue ( drv : {
2015-08-06 05:10:48 -07:00
postPatch = ''
2015-03-12 20:20:56 -07:00
sed - i - e ' 1 2 s | null | Data . PQueue . Internals . null | ' Data/PQueue/Internals.hs
sed - i - e ' 6 4 s | null | Data . PQueue . Internals . null | ' Data/PQueue/Internals.hs
sed - i - e ' 3 2 s | null | Data . PQueue . Internals . null | ' Data/PQueue/Min.hs
sed - i - e ' 3 2 s | null | Data . PQueue . Max . null | ' Data/PQueue/Max.hs
sed - i - e ' 4 2 s | null | Data . PQueue . Prio . Internals . null | ' Data/PQueue/Prio/Min.hs
sed - i - e ' 4 2 s | null | Data . PQueue . Prio . Max . null | ' Data/PQueue/Prio/Max.hs
'' ;
} ) ;
transformers-compat = overrideCabal super . transformers-compat ( drv : {
configureFlags = [ ] ;
} ) ;
profunctors = overrideCabal super . profunctors ( drv : {
preConfigure = ''
sed - i ' s / ^ { - # ANN .* #-}//' src/Data/Profunctor/Unsafe.hs
'' ;
} ) ;
2015-04-09 12:00:52 -07:00
ghcjs-dom = overrideCabal super . ghcjs-dom ( drv : {
2016-01-24 14:12:03 -08:00
libraryHaskellDepends =
removeLibraryHaskellDepends [
" g l i b " " g t k " " g t k 3 " " w e b k i t g t k " " w e b k i t g t k 3 "
] drv . libraryHaskellDepends ;
2015-04-09 12:00:52 -07:00
} ) ;
2015-03-31 06:30:28 -07:00
2015-05-06 12:56:02 -07:00
ghc-paths = overrideCabal super . ghc-paths ( drv : {
2015-08-05 12:48:18 -07:00
patches = [ ./patches/ghc-paths-nix-ghcjs.patch ] ;
2015-05-06 12:56:02 -07:00
} ) ;
2015-09-24 12:11:29 -07:00
# reflex 0.3, made compatible with the newest GHCJS.
reflex = overrideCabal super . reflex ( drv : {
src = pkgs . fetchFromGitHub {
2016-01-24 14:12:03 -08:00
owner = " r y a n t r i n k l e " ;
2015-09-24 12:11:29 -07:00
repo = " r e f l e x " ;
2016-01-24 14:12:03 -08:00
rev = " c c 6 2 c 1 1 a 6 c d e 3 1 4 1 2 5 8 2 7 5 8 c 2 3 6 9 1 9 d 4 b b 7 6 6 a d a " ;
sha256 = " 1 j 4 v w 0 6 3 6 b k l 4 6 l j 8 r y 1 6 i 0 4 v g p i v j c 6 b s 3 l s 5 4 p p p 1 w f p 6 3 q 7 w 4 " ;
2015-09-24 12:11:29 -07:00
} ;
} ) ;
# reflex-dom 0.2, made compatible with the newest GHCJS.
2015-05-08 12:50:48 -07:00
reflex-dom = overrideCabal super . reflex-dom ( drv : {
2015-09-24 12:11:29 -07:00
src = pkgs . fetchFromGitHub {
2016-01-24 14:12:03 -08:00
owner = " r y a n t r i n k l e " ;
2015-09-24 12:11:29 -07:00
repo = " r e f l e x - d o m " ;
2016-01-24 14:12:03 -08:00
rev = " 6 3 9 d 9 c a 1 3 c 2 d e f 0 7 5 e 8 3 3 4 4 c 9 a f c a 6 e a f a f 2 4 2 1 9 " ;
sha256 = " 0 1 6 6 i h b h 3 d b f j i y m 9 w 5 6 1 s v p g v j 0 x 4 i 8 i 8 w s 7 0 x a a f i 0 c m p s x r a r " ;
2015-09-24 12:11:29 -07:00
} ;
2016-01-24 14:12:03 -08:00
libraryHaskellDepends =
removeLibraryHaskellDepends [
" g l i b " " g t k 3 " " w e b k i t g t k 3 " " w e b k i t g t k 3 - j a v a s c r i p t c o r e " " r a w - s t r i n g s - q q " " u n i x "
] drv . libraryHaskellDepends ;
2015-09-24 12:11:29 -07:00
} ) ;
2015-01-07 11:31:32 -08:00
}