Say hello to our brand-new Haskell infrastructure.

This commit is contained in:
Peter Simons 2015-01-07 20:31:32 +01:00
parent 82b55b9c78
commit 54baa53df1
14 changed files with 124572 additions and 2 deletions

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,375 @@
{ pkgs }:
with import ./lib.nix;
self: super: {
# Some packages need a non-core version of Cabal.
Cabal_1_20_0_3 = overrideCabal super.Cabal_1_20_0_3 (drv: { doCheck = false;});
Cabal_1_22_0_0 = overrideCabal super.Cabal_1_22_0_0 (drv: { doCheck = false;});
cabal-install = overrideCabal (super.cabal-install.override { Cabal = self.Cabal_1_22_0_0; }) (drv: { doCheck = false; });
jailbreak-cabal = super.jailbreak-cabal.override { Cabal = self.Cabal_1_20_0_3; };
# Break infinite recursions.
digest = super.digest.override { inherit (pkgs) zlib; };
matlab = super.matlab.override { matlab = null; };
# Doesn't compile with lua 5.2.
hslua = super.hslua.override { lua = pkgs.lua5_1; };
# "curl" means pkgs.curl
git-annex = super.git-annex.override { inherit (pkgs) git rsync gnupg1 curl lsof openssh which bup perl wget; };
# Depends on code distributed under a non-free license.
yices-painless = overrideCabal super.yices-painless (drv: { hydraPlatforms = []; });
# This package overrides the one from pkgs.gnome.
gtkglext = super.gtkglext.override { inherit (pkgs.gnome) gtkglext; };
# The test suite refers to its own library with an invalid version constraint.
presburger = overrideCabal super.presburger (drv: { doCheck = false; });
# Won't find it's header files without help.
sfml-audio = overrideCabal super.sfml-audio (drv: { configureFlags = drv.configureFlags or [] ++ ["--extra-include-dirs=${pkgs.openal}/include/AL"]; });
# Hacks to make packages compile.
abstract-deque = overrideCabal super.abstract-deque (drv: { doCheck = false; });
accelerate-cuda = overrideCabal super.accelerate-cuda (drv: { jailbreak = true; });
accelerate = overrideCabal super.accelerate (drv: { jailbreak = true; });
active = overrideCabal super.active (drv: { jailbreak = true; });
aeson-utils = overrideCabal super.aeson-utils (drv: { jailbreak = true; });
Agda = overrideCabal super.Agda (drv: { jailbreak = true; noHaddock = true; });
amqp = overrideCabal super.amqp (drv: { doCheck = false; });
arbtt = overrideCabal super.arbtt (drv: { jailbreak = true; });
ariadne = overrideCabal super.ariadne (drv: { doCheck = false; });
arithmoi = overrideCabal super.arithmoi (drv: { jailbreak = true; });
asn1-encoding = overrideCabal super.asn1-encoding (drv: { doCheck = false; });
assert-failure = overrideCabal super.assert-failure (drv: { jailbreak = true; });
atto-lisp = overrideCabal super.atto-lisp (drv: { jailbreak = true; });
attoparsec-conduit = overrideCabal super.attoparsec-conduit (drv: { noHaddock = true; });
authenticate-oauth = overrideCabal super.authenticate-oauth (drv: { jailbreak = true; });
aws = overrideCabal super.aws (drv: { doCheck = false; jailbreak = true; });
base64-bytestring = overrideCabal super.base64-bytestring (drv: { doCheck = false; });
benchpress = overrideCabal super.benchpress (drv: { jailbreak = true; });
binary-conduit = overrideCabal super.binary-conduit (drv: { jailbreak = true; });
bindings-GLFW = overrideCabal super.bindings-GLFW (drv: { doCheck = false; });
bitset = overrideCabal super.bitset (drv: { doCheck = false; });
blaze-builder-conduit = overrideCabal super.blaze-builder-conduit (drv: { noHaddock = true; });
blaze-builder-enumerator = overrideCabal super.blaze-builder-enumerator (drv: { jailbreak = true; });
blaze-svg = overrideCabal super.blaze-svg (drv: { jailbreak = true; });
boundingboxes = overrideCabal super.boundingboxes (drv: { doCheck = false; });
bson = overrideCabal super.bson (drv: { doCheck = false; });
bytestring-progress = overrideCabal super.bytestring-progress (drv: { noHaddock = true; });
cabal2ghci = overrideCabal super.cabal2ghci (drv: { jailbreak = true; });
cabal-bounds = overrideCabal super.cabal-bounds (drv: { doCheck = false; jailbreak = true; });
cabal-cargs = overrideCabal super.cabal-cargs (drv: { jailbreak = true; });
cabal-lenses = overrideCabal super.cabal-lenses (drv: { jailbreak = true; });
cabal-macosx = overrideCabal super.cabal-macosx (drv: { jailbreak = true; });
cabal-meta = overrideCabal super.cabal-meta (drv: { doCheck = false; });
cairo = overrideCabal super.cairo (drv: { jailbreak = true; });
cautious-file = overrideCabal super.cautious-file (drv: { doCheck = false; });
certificate = overrideCabal super.certificate (drv: { jailbreak = true; });
Chart-cairo = overrideCabal super.Chart-cairo (drv: { jailbreak = true; });
Chart-diagrams = overrideCabal super.Chart-diagrams (drv: { jailbreak = true; });
Chart = overrideCabal super.Chart (drv: { jailbreak = true; });
ChasingBottoms = overrideCabal super.ChasingBottoms (drv: { jailbreak = true; });
cheapskate = overrideCabal super.cheapskate (drv: { jailbreak = true; });
citeproc-hs = overrideCabal super.citeproc-hs (drv: { jailbreak = true; });
clay = overrideCabal super.clay (drv: { jailbreak = true; });
cmdtheline = overrideCabal super.cmdtheline (drv: { doCheck = false; });
codex = overrideCabal super.codex (drv: { jailbreak = true; });
command-qq = overrideCabal super.command-qq (drv: { doCheck = false; });
comonads-fd = overrideCabal super.comonads-fd (drv: { noHaddock = true; });
comonad-transformers = overrideCabal super.comonad-transformers (drv: { noHaddock = true; });
concrete-typerep = overrideCabal super.concrete-typerep (drv: { doCheck = false; });
conduit-extra = overrideCabal super.conduit-extra (drv: { doCheck = false; });
conduit = overrideCabal super.conduit (drv: { doCheck = false; });
CouchDB = overrideCabal super.CouchDB (drv: { doCheck = false; jailbreak = true; });
criterion = overrideCabal super.criterion (drv: { doCheck = false; });
crypto-conduit = overrideCabal super.crypto-conduit (drv: { doCheck = false; jailbreak = true; });
crypto-numbers = overrideCabal super.crypto-numbers (drv: { doCheck = false; });
cuda = overrideCabal super.cuda (drv: { doCheck = false; });
data-accessor = overrideCabal super.data-accessor (drv: { jailbreak = true; });
dataenc = overrideCabal super.dataenc (drv: { jailbreak = true; });
data-fin = overrideCabal super.data-fin (drv: { jailbreak = true; });
data-lens = overrideCabal super.data-lens (drv: { jailbreak = true; });
data-pprint = overrideCabal super.data-pprint (drv: { jailbreak = true; });
dbmigrations = overrideCabal super.dbmigrations (drv: { jailbreak = true; });
dbus = overrideCabal super.dbus (drv: { doCheck = false; jailbreak = true; });
deepseq-th = overrideCabal super.deepseq-th (drv: { doCheck = false; jailbreak = true; });
diagrams-contrib = overrideCabal super.diagrams-contrib (drv: { jailbreak = true; });
diagrams-core = overrideCabal super.diagrams-core (drv: { jailbreak = true; });
diagrams-lib = overrideCabal super.diagrams-lib (drv: { jailbreak = true; });
diagrams-postscript = overrideCabal super.diagrams-postscript (drv: { jailbreak = true; });
diagrams-rasterific = overrideCabal super.diagrams-rasterific (drv: { jailbreak = true; });
diagrams = overrideCabal super.diagrams (drv: { noHaddock = true; jailbreak = true; });
diagrams-svg = overrideCabal super.diagrams-svg (drv: { jailbreak = true; });
digestive-functors-heist = overrideCabal super.digestive-functors-heist (drv: { jailbreak = true; });
digestive-functors-snap = overrideCabal super.digestive-functors-snap (drv: { jailbreak = true; });
digestive-functors = overrideCabal super.digestive-functors (drv: { jailbreak = true; });
directory-layout = overrideCabal super.directory-layout (drv: { doCheck = false; });
distributed-process-platform = overrideCabal super.distributed-process-platform (drv: { doCheck = false; jailbreak = true; });
distributed-process = overrideCabal super.distributed-process (drv: { jailbreak = true; });
doctest = overrideCabal super.doctest (drv: { doCheck = false; });
dom-selector = overrideCabal super.dom-selector (drv: { doCheck = false; });
download-curl = overrideCabal super.download-curl (drv: { jailbreak = true; });
dual-tree = overrideCabal super.dual-tree (drv: { jailbreak = true; });
Dust-crypto = overrideCabal super.Dust-crypto (drv: { doCheck = false; });
either = overrideCabal super.either (drv: { noHaddock = true; });
ekg = overrideCabal super.ekg (drv: { jailbreak = true; });
elm-get = overrideCabal super.elm-get (drv: { jailbreak = true; });
elm-server = overrideCabal super.elm-server (drv: { jailbreak = true; });
encoding = overrideCabal super.encoding (drv: { jailbreak = true; });
enummapset = overrideCabal super.enummapset (drv: { jailbreak = true; });
equational-reasoning = overrideCabal super.equational-reasoning (drv: { jailbreak = true; });
equivalence = overrideCabal super.equivalence (drv: { doCheck = false; });
errors = overrideCabal super.errors (drv: { jailbreak = true; });
extensible-effects = overrideCabal super.extensible-effects (drv: { jailbreak = true; });
failure = overrideCabal super.failure (drv: { jailbreak = true; });
fay = overrideCabal super.fay (drv: { jailbreak = true; });
fb = overrideCabal super.fb (drv: { doCheck = false; jailbreak = true; });
filestore = overrideCabal super.filestore (drv: { doCheck = false; jailbreak = true; });
force-layout = overrideCabal super.force-layout (drv: { jailbreak = true; });
free-game = overrideCabal super.free-game (drv: { jailbreak = true; });
free = overrideCabal super.free (drv: { jailbreak = true; });
fsnotify = overrideCabal super.fsnotify (drv: { doCheck = false; });
ghc-events = overrideCabal super.ghc-events (drv: { doCheck = false; jailbreak = true; });
ghcid = overrideCabal super.ghcid (drv: { doCheck = false; });
ghc-mod = overrideCabal super.ghc-mod (drv: { doCheck = false; });
gitit = overrideCabal super.gitit (drv: { jailbreak = true; });
git-vogue = overrideCabal super.git-vogue (drv: { doCheck = false; });
glade = overrideCabal super.glade (drv: { jailbreak = true; });
GLFW-b = overrideCabal super.GLFW-b (drv: { doCheck = false; });
gloss-raster = overrideCabal super.gloss-raster (drv: { jailbreak = true; });
gl = overrideCabal super.gl (drv: { noHaddock = true; });
gnuplot = overrideCabal super.gnuplot (drv: { jailbreak = true; });
Graphalyze = overrideCabal super.Graphalyze (drv: { jailbreak = true; });
graphviz = overrideCabal super.graphviz (drv: { doCheck = false; jailbreak = true; });
grid = overrideCabal super.grid (drv: { doCheck = false; });
groupoids = overrideCabal super.groupoids (drv: { noHaddock = true; });
gtk-traymanager = overrideCabal super.gtk-traymanager (drv: { jailbreak = true; });
hakyll = overrideCabal super.hakyll (drv: { jailbreak = true; });
hamlet = overrideCabal super.hamlet (drv: { noHaddock = true; });
handa-gdata = overrideCabal super.handa-gdata (drv: { doCheck = false; });
HandsomeSoup = overrideCabal super.HandsomeSoup (drv: { jailbreak = true; });
happstack-server = overrideCabal super.happstack-server (drv: { doCheck = false; jailbreak = true; });
hashable = overrideCabal super.hashable (drv: { doCheck = false; jailbreak = true; });
hashed-storage = overrideCabal super.hashed-storage (drv: { doCheck = false; });
haskell-docs = overrideCabal super.haskell-docs (drv: { doCheck = false; });
haskell-names = overrideCabal super.haskell-names (drv: { doCheck = false; });
haskell-src-exts = overrideCabal super.haskell-src-exts (drv: { doCheck = false; });
haskell-src-meta = overrideCabal super.haskell-src-meta (drv: { jailbreak = true; });
haskoin = overrideCabal super.haskoin (drv: { doCheck = false; jailbreak = true; });
hasktags = overrideCabal super.hasktags (drv: { jailbreak = true; });
hasql-postgres = overrideCabal super.hasql-postgres (drv: { doCheck = false; });
haste-compiler = overrideCabal super.haste-compiler (drv: { noHaddock = true; });
haxl = overrideCabal super.haxl (drv: { jailbreak = true; });
HaXml = overrideCabal super.HaXml (drv: { noHaddock = true; });
haxr = overrideCabal super.haxr (drv: { jailbreak = true; });
hcltest = overrideCabal super.hcltest (drv: { jailbreak = true; });
HDBC-odbc = overrideCabal super.HDBC-odbc (drv: { noHaddock = true; });
hedis = overrideCabal super.hedis (drv: { doCheck = false; });
heist = overrideCabal super.heist (drv: { jailbreak = true; });
hindent = overrideCabal super.hindent (drv: { doCheck = false; });
hi = overrideCabal super.hi (drv: { doCheck = false; });
hjsmin = overrideCabal super.hjsmin (drv: { jailbreak = true; });
hledger-web = overrideCabal super.hledger-web (drv: { doCheck = false; jailbreak = true; });
HList = overrideCabal super.HList (drv: { doCheck = false; });
hoauth2 = overrideCabal super.hoauth2 (drv: { jailbreak = true; });
holy-project = overrideCabal super.holy-project (drv: { doCheck = false; });
hoodle-core = overrideCabal super.hoodle-core (drv: { noHaddock = true; });
hsbencher-fusion = overrideCabal super.hsbencher-fusion (drv: { doCheck = false; });
hsbencher = overrideCabal super.hsbencher (drv: { doCheck = false; });
hsc3-db = overrideCabal super.hsc3-db (drv: { noHaddock = true; });
hsimport = overrideCabal super.hsimport (drv: { jailbreak = true; });
hsini = overrideCabal super.hsini (drv: { jailbreak = true; });
hspec-discover = overrideCabal super.hspec-discover (drv: { noHaddock = true; });
hspec-expectations = overrideCabal super.hspec-expectations (drv: { doCheck = false; });
hspec-meta = overrideCabal super.hspec-meta (drv: { doCheck = false; });
hspec = overrideCabal super.hspec (drv: { doCheck = false; });
hsyslog = overrideCabal super.hsyslog (drv: { noHaddock = true; });
HTF = overrideCabal super.HTF (drv: { doCheck = false; });
http-attoparsec = overrideCabal super.http-attoparsec (drv: { jailbreak = true; });
http-client-conduit = overrideCabal super.http-client-conduit (drv: { noHaddock = true; });
http-client-multipart = overrideCabal super.http-client-multipart (drv: { noHaddock = true; });
http-client = overrideCabal super.http-client (drv: { doCheck = false; });
http-client-tls = overrideCabal super.http-client-tls (drv: { doCheck = false; });
http-conduit = overrideCabal super.http-conduit (drv: { doCheck = false; });
httpd-shed = overrideCabal super.httpd-shed (drv: { jailbreak = true; });
http-reverse-proxy = overrideCabal super.http-reverse-proxy (drv: { doCheck = false; });
http-streams = overrideCabal super.http-streams (drv: { doCheck = false; jailbreak = true; });
HTTP = overrideCabal super.HTTP (drv: { doCheck = false; });
http-types = overrideCabal super.http-types (drv: { jailbreak = true; });
idris = overrideCabal super.idris (drv: { jailbreak = true; });
ihaskell = overrideCabal super.ihaskell (drv: { doCheck = false; jailbreak = true; });
js-jquery = overrideCabal super.js-jquery (drv: { doCheck = false; });
json-assertions = overrideCabal super.json-assertions (drv: { jailbreak = true; });
json-rpc = overrideCabal super.json-rpc (drv: { jailbreak = true; });
json-schema = overrideCabal super.json-schema (drv: { jailbreak = true; });
kansas-lava = overrideCabal super.kansas-lava (drv: { jailbreak = true; });
keys = overrideCabal super.keys (drv: { jailbreak = true; });
language-c-quote = overrideCabal super.language-c-quote (drv: { jailbreak = true; });
language-ecmascript = overrideCabal super.language-ecmascript (drv: { doCheck = false; jailbreak = true; });
language-java = overrideCabal super.language-java (drv: { doCheck = false; });
largeword = overrideCabal super.largeword (drv: { jailbreak = true; });
libjenkins = overrideCabal super.libjenkins (drv: { doCheck = false; jailbreak = true; });
libsystemd-journal = overrideCabal super.libsystemd-journal (drv: { jailbreak = true; });
lifted-base = overrideCabal super.lifted-base (drv: { doCheck = false; });
linear = overrideCabal super.linear (drv: { doCheck = false; });
ListLike = overrideCabal super.ListLike (drv: { jailbreak = true; });
list-tries = overrideCabal super.list-tries (drv: { jailbreak = true; });
llvm-general-pure = overrideCabal super.llvm-general-pure (drv: { doCheck = false; });
llvm-general = overrideCabal super.llvm-general (drv: { doCheck = false; });
lzma-enumerator = overrideCabal super.lzma-enumerator (drv: { jailbreak = true; });
machines-directory = overrideCabal super.machines-directory (drv: { jailbreak = true; });
machines-io = overrideCabal super.machines-io (drv: { jailbreak = true; });
mainland-pretty = overrideCabal super.mainland-pretty (drv: { jailbreak = true; });
markdown-unlit = overrideCabal super.markdown-unlit (drv: { noHaddock = true; });
math-functions = overrideCabal super.math-functions (drv: { doCheck = false; });
MissingH = overrideCabal super.MissingH (drv: { doCheck = false; });
MonadCatchIO-mtl = overrideCabal super.MonadCatchIO-mtl (drv: { jailbreak = true; });
MonadCatchIO-transformers = overrideCabal super.MonadCatchIO-transformers (drv: { jailbreak = true; });
monadloc-pp = overrideCabal super.monadloc-pp (drv: { jailbreak = true; });
monad-par = overrideCabal super.monad-par (drv: { doCheck = false; });
monoid-extras = overrideCabal super.monoid-extras (drv: { jailbreak = true; });
mpppc = overrideCabal super.mpppc (drv: { jailbreak = true; });
msgpack = overrideCabal super.msgpack (drv: { jailbreak = true; });
multiplate = overrideCabal super.multiplate (drv: { jailbreak = true; });
mwc-random = overrideCabal super.mwc-random (drv: { doCheck = false; });
nanospec = overrideCabal super.nanospec (drv: { doCheck = false; });
network-carbon = overrideCabal super.network-carbon (drv: { jailbreak = true; });
network-conduit = overrideCabal super.network-conduit (drv: { noHaddock = true; });
network-simple = overrideCabal super.network-simple (drv: { jailbreak = true; });
network-transport-tcp = overrideCabal super.network-transport-tcp (drv: { doCheck = false; });
network-transport-tests = overrideCabal super.network-transport-tests (drv: { jailbreak = true; });
network-uri = overrideCabal super.network-uri (drv: { doCheck = false; });
numeric-prelude = overrideCabal super.numeric-prelude (drv: { jailbreak = true; });
ofx = overrideCabal super.ofx (drv: { jailbreak = true; });
opaleye = overrideCabal super.opaleye (drv: { doCheck = false; jailbreak = true; });
openssl-streams = overrideCabal super.openssl-streams (drv: { jailbreak = true; });
options = overrideCabal super.options (drv: { doCheck = false; });
optparse-applicative = overrideCabal super.optparse-applicative (drv: { jailbreak = true; });
packunused = overrideCabal super.packunused (drv: { jailbreak = true; });
pandoc-citeproc = overrideCabal super.pandoc-citeproc (drv: { doCheck = false; });
pandoc = overrideCabal super.pandoc (drv: { doCheck = false; jailbreak = true; });
parallel-io = overrideCabal super.parallel-io (drv: { jailbreak = true; });
parsec = overrideCabal super.parsec (drv: { jailbreak = true; });
permutation = overrideCabal super.permutation (drv: { doCheck = false; });
persistent-postgresql = overrideCabal super.persistent-postgresql (drv: { jailbreak = true; });
persistent-template = overrideCabal super.persistent-template (drv: { jailbreak = true; });
pipes-aeson = overrideCabal super.pipes-aeson (drv: { jailbreak = true; doCheck = false; });
pipes-binary = overrideCabal super.pipes-binary (drv: { jailbreak = true; });
pipes-http = overrideCabal super.pipes-http (drv: { jailbreak = true; });
pipes-network = overrideCabal super.pipes-network (drv: { jailbreak = true; });
pipes-shell = overrideCabal super.pipes-shell (drv: { doCheck = false; jailbreak = true; });
pipes = overrideCabal super.pipes (drv: { jailbreak = true; });
pipes-text = overrideCabal super.pipes-text (drv: { jailbreak = true; });
pointed = overrideCabal super.pointed (drv: { jailbreak = true; });
pointfree = overrideCabal super.pointfree (drv: { jailbreak = true; });
postgresql-simple = overrideCabal super.postgresql-simple (drv: { doCheck = false; });
process-conduit = overrideCabal super.process-conduit (drv: { doCheck = false; });
product-profunctors = overrideCabal super.product-profunctors (drv: { jailbreak = true; });
prolog = overrideCabal super.prolog (drv: { jailbreak = true; });
punycode = overrideCabal super.punycode (drv: { doCheck = false; });
quickcheck-instances = overrideCabal super.quickcheck-instances (drv: { jailbreak = true; });
Rasterific = overrideCabal super.Rasterific (drv: { doCheck = false; });
reactive-banana-wx = overrideCabal super.reactive-banana-wx (drv: { jailbreak = true; });
ReadArgs = overrideCabal super.ReadArgs (drv: { jailbreak = true; });
reducers = overrideCabal super.reducers (drv: { jailbreak = true; });
rematch = overrideCabal super.rematch (drv: { doCheck = false; });
repa-algorithms = overrideCabal super.repa-algorithms (drv: { jailbreak = true; });
repa-examples = overrideCabal super.repa-examples (drv: { jailbreak = true; });
repa-io = overrideCabal super.repa-io (drv: { jailbreak = true; });
RepLib = overrideCabal super.RepLib (drv: { noHaddock = true; });
rest-core = overrideCabal super.rest-core (drv: { jailbreak = true; });
rest-gen = overrideCabal super.rest-gen (drv: { jailbreak = true; });
rest-stringmap = overrideCabal super.rest-stringmap (drv: { jailbreak = true; });
rest-types = overrideCabal super.rest-types (drv: { jailbreak = true; });
rethinkdb = overrideCabal super.rethinkdb (drv: { doCheck = false; jailbreak = true; });
retry = overrideCabal super.retry (drv: { jailbreak = true; });
rope = overrideCabal super.rope (drv: { jailbreak = true; });
RSA = overrideCabal super.RSA (drv: { doCheck = false; });
scientific = overrideCabal super.scientific (drv: { jailbreak = true; });
scotty = overrideCabal super.scotty (drv: { doCheck = false; jailbreak = true; });
sdl2 = overrideCabal super.sdl2 (drv: { noHaddock = true; });
serialport = overrideCabal super.serialport (drv: { doCheck = false; });
setenv = overrideCabal super.setenv (drv: { doCheck = false; });
setlocale = overrideCabal super.setlocale (drv: { jailbreak = true; });
shakespeare-css = overrideCabal super.shakespeare-css (drv: { noHaddock = true; });
shakespeare-i18n = overrideCabal super.shakespeare-i18n (drv: { noHaddock = true; });
shakespeare-js = overrideCabal super.shakespeare-js (drv: { noHaddock = true; });
shakespeare-text = overrideCabal super.shakespeare-text (drv: { noHaddock = true; });
simple-sendfile = overrideCabal super.simple-sendfile (drv: { doCheck = false; });
singletons = overrideCabal super.singletons (drv: { noHaddock = true; });
skein = overrideCabal super.skein (drv: { jailbreak = true; });
snap-core = overrideCabal super.snap-core (drv: { jailbreak = true; });
snaplet-acid-state = overrideCabal super.snaplet-acid-state (drv: { jailbreak = true; });
snaplet-redis = overrideCabal super.snaplet-redis (drv: { jailbreak = true; });
snaplet-stripe = overrideCabal super.snaplet-stripe (drv: { jailbreak = true; });
snap-web-routes = overrideCabal super.snap-web-routes (drv: { jailbreak = true; });
snowball = overrideCabal super.snowball (drv: { doCheck = false; });
sparse = overrideCabal super.sparse (drv: { doCheck = false; });
statistics = overrideCabal super.statistics (drv: { doCheck = false; });
stm-containers = overrideCabal super.stm-containers (drv: { doCheck = false; });
storable-record = overrideCabal super.storable-record (drv: { jailbreak = true; });
Strafunski-StrategyLib = overrideCabal super.Strafunski-StrategyLib (drv: { jailbreak = true; });
stripe = overrideCabal super.stripe (drv: { jailbreak = true; });
symbol = overrideCabal super.symbol (drv: { jailbreak = true; });
system-filepath = overrideCabal super.system-filepath (drv: { doCheck = false; });
tabular = overrideCabal super.tabular (drv: { jailbreak = true; });
tar = overrideCabal super.tar (drv: { noHaddock = true; });
template-default = overrideCabal super.template-default (drv: { jailbreak = true; });
temporary = overrideCabal super.temporary (drv: { jailbreak = true; });
test-framework-quickcheck2 = overrideCabal super.test-framework-quickcheck2 (drv: { jailbreak = true; });
text = overrideCabal super.text (drv: { doCheck = false; });
th-desugar = overrideCabal super.th-desugar (drv: { doCheck = false; });
these = overrideCabal super.these (drv: { jailbreak = true; });
th-lift-instances = overrideCabal super.th-lift-instances (drv: { jailbreak = true; });
th-orphans = overrideCabal super.th-orphans (drv: { jailbreak = true; });
thread-local-storage = overrideCabal super.thread-local-storage (drv: { doCheck = false; });
threads = overrideCabal super.threads (drv: { doCheck = false; });
threepenny-gui = overrideCabal super.threepenny-gui (drv: { jailbreak = true; });
thyme = overrideCabal super.thyme (drv: { doCheck = false; });
timeparsers = overrideCabal super.timeparsers (drv: { jailbreak = true; });
tls = overrideCabal super.tls (drv: { doCheck = false; });
twitter-types = overrideCabal super.twitter-types (drv: { doCheck = false; });
unordered-containers = overrideCabal super.unordered-containers (drv: { doCheck = false; });
uri-encode = overrideCabal super.uri-encode (drv: { jailbreak = true; });
usb = overrideCabal super.usb (drv: { jailbreak = true; });
utf8-string = overrideCabal super.utf8-string (drv: { noHaddock = true; });
uuid = overrideCabal super.uuid (drv: { doCheck = false; jailbreak = true; });
vacuum-graphviz = overrideCabal super.vacuum-graphviz (drv: { jailbreak = true; });
vault = overrideCabal super.vault (drv: { jailbreak = true; });
vcswrapper = overrideCabal super.vcswrapper (drv: { jailbreak = true; });
vty = overrideCabal super.vty (drv: { doCheck = false; });
vty-ui = overrideCabal super.vty-ui (drv: { jailbreak = true; });
wai-extra = overrideCabal super.wai-extra (drv: { jailbreak = true; });
wai-logger = overrideCabal super.wai-logger (drv: { doCheck = false; });
wai-middleware-static = overrideCabal super.wai-middleware-static (drv: { jailbreak = true; });
wai-test = overrideCabal super.wai-test (drv: { noHaddock = true; });
wai-websockets = overrideCabal super.wai-websockets (drv: { jailbreak = true; });
warp = overrideCabal super.warp (drv: { doCheck = false; });
webdriver = overrideCabal super.webdriver (drv: { doCheck = false; jailbreak = true; });
websockets-snap = overrideCabal super.websockets-snap (drv: { jailbreak = true; });
websockets = overrideCabal super.websockets (drv: { jailbreak = true; });
wl-pprint-terminfo = overrideCabal super.wl-pprint-terminfo (drv: { jailbreak = true; });
wl-pprint-text = overrideCabal super.wl-pprint-text (drv: { jailbreak = true; });
wreq = overrideCabal super.wreq (drv: { doCheck = false; });
wxc = overrideCabal super.wxc (drv: { noHaddock = true; });
wxdirect = overrideCabal super.wxdirect (drv: { jailbreak = true; });
xdot = overrideCabal super.xdot (drv: { jailbreak = true; });
xml-conduit = overrideCabal super.xml-conduit (drv: { jailbreak = true; });
xmlgen = overrideCabal super.xmlgen (drv: { doCheck = false; });
xml-html-conduit-lens = overrideCabal super.xml-html-conduit-lens (drv: { jailbreak = true; });
xml-lens = overrideCabal super.xml-lens (drv: { jailbreak = true; });
xmonad-extras = overrideCabal super.xmonad-extras (drv: { jailbreak = true; });
xournal-types = overrideCabal super.xournal-types (drv: { jailbreak = true; });
yap = overrideCabal super.yap (drv: { jailbreak = true; });
yesod-core = overrideCabal super.yesod-core (drv: { jailbreak = true; });
yesod-static = overrideCabal super.yesod-static (drv: { doCheck = false; });
yst = overrideCabal super.yst (drv: { jailbreak = true; });
zeromq3-haskell = overrideCabal super.zeromq3-haskell (drv: { doCheck = false; });
zip-archive = overrideCabal super.zip-archive (drv: { doCheck = false; });
zlib-conduit = overrideCabal super.zlib-conduit (drv: { noHaddock = true; });
}

View file

@ -0,0 +1,39 @@
{ pkgs }:
with import ./lib.nix;
self: super: {
# Disable GHC 7.6.x core libraries.
array = null;
base = null;
binary = null;
bin-package-db = null;
bytestring = null;
Cabal = null;
containers = null;
deepseq = null;
directory = null;
filepath = null;
ghc-prim = null;
haskell2010 = null;
haskell98 = null;
hoopl = null;
hpc = null;
integer-gmp = null;
old-locale = null;
old-time = null;
pretty = null;
process = null;
rts = null;
template-haskell = null;
time = null;
unix = null;
terminfo = self.terminfo_0_4_0_0;
haskeline = self.haskeline_0_7_1_3;
transformers = self.transformers_0_4_2_0;
mtl = self.mtl_2_2_1;
Cabal_1_22_0_0 = super.Cabal_1_22_0_0.override { binary = self.binary_0_7_2_3; };
}

View file

@ -0,0 +1,51 @@
{ pkgs }:
with import ./lib.nix;
self: super: {
# Disable GHC 7.8.x core libraries.
array = null;
base = null;
binary = null;
bin-package-db = null;
bytestring = null;
Cabal = null;
containers = null;
deepseq = null;
directory = null;
filepath = null;
ghc-prim = null;
haskeline = self.haskeline_0_7_1_3; # GHC's version is broken: https://github.com/NixOS/nixpkgs/issues/5616.
haskell2010 = null;
haskell98 = null;
hoopl = null;
hpc = null;
integer-gmp = null;
old-locale = null;
old-time = null;
pretty = null;
process = null;
rts = null;
template-haskell = null;
terminfo = self.terminfo_0_4_0_0; # GHC's version is broken: https://github.com/NixOS/nixpkgs/issues/5616.
time = null;
transformers = null;
unix = null;
xhtml = null;
ghcjs-prim = self.mkDerivation {
pname = "ghcjs-prim";
version = "0.1.0.0";
src = pkgs.fetchgit {
url = git://github.com/ghcjs/ghcjs-prim.git;
rev = "8e003e1a1df10233bc3f03d7bbd7d37de13d2a84";
sha256 = "11k2r87s58wmpxykn61lihn4vm3x67cm1dygvdl26papifinj6pz";
};
buildDepends = with self; [ primitive ];
license = "unknown";
};
ghcjs = self.callPackage ../compilers/ghcjs { Cabal = self.Cabal_1_22_0_0; };
}

View file

@ -0,0 +1,41 @@
{ pkgs }:
with import ./lib.nix;
self: super: {
# Disable GHC 7.9.x core libraries.
array = null;
base = null;
binary = null;
bin-package-db = null;
bytestring = null;
Cabal = null;
containers = null;
deepseq = null;
directory = null;
filepath = null;
ghc-prim = null;
haskeline = null;
hoopl = null;
hpc = null;
integer-gmp = null;
pretty = null;
process = null;
rts = null;
template-haskell = null;
terminfo = null;
time = null;
transformers = null;
unix = null;
xhtml = null;
# haddock: internal error: expectJust getPackageDetails
mkDerivation = drv: super.mkDerivation (drv // { noHaddock = true; });
# Setup: At least the following dependencies are missing: base <4.8
hspec-expectations = overrideCabal super.hspec-expectations (drv: {
patchPhase = "sed -i -e 's|base < 4.8|base|' hspec-expectations.cabal";
});
}

View file

@ -0,0 +1,49 @@
{ pkgs }:
with import ./lib.nix;
self: super: {
# This is the list of packages that are built into a booted ghcjs installation
# It can be generated with the command:
# nix-shell '<nixpkgs>' -A pkgs.haskellPackages_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;/'"
Cabal = null;
aeson = null;
array = null;
async = null;
attoparsec = null;
base = null;
binary = null;
rts = null;
bytestring = null;
caseInsensitive = null;
containers = null;
deepseq = null;
directory = null;
dlist = null;
extensibleExceptions = null;
filepath = null;
ghcPrim = null;
ghcjsBase = null;
ghcjsPrim = null;
hashable = null;
integerGmp = null;
mtl = null;
oldLocale = null;
oldTime = null;
parallel = null;
pretty = null;
primitive = null;
process = null;
scientific = null;
stm = null;
syb = null;
templateHaskell = null;
text = null;
time = null;
transformers = null;
unix = null;
unorderedContainers = null;
vector = null;
}

View file

@ -0,0 +1,51 @@
{ pkgs, stdenv, ghc
, packageSetConfig ? (self: super: {})
, overrides ? (self: super: {})
, provideOldAttributeNames ? false
}:
with ./lib.nix;
let
fix = f: let x = f x // { __unfix__ = f; }; in x;
extend = rattrs: f: self: let super = rattrs self; in super // f self super;
haskellPackages = self:
let
mkDerivation = pkgs.callPackage ./generic-builder.nix {
inherit stdenv ghc;
inherit (pkgs) fetchurl pkgconfig glibcLocales coreutils gnugrep gnused;
inherit (self) jailbreak-cabal;
hscolour = overrideCabal self.hscolour (drv: {
isLibrary = false;
noHaddock = true;
hyperlinkSource = false; # Avoid depending on hscolour for this build.
postFixup = "rm -rf $out/lib $out/share $out/nix-support";
});
};
overrideCabal = drv: f: drv.override (args: args // {
mkDerivation = drv: args.mkDerivation (drv // f drv);
});
defaultScope = pkgs // pkgs.xlibs // pkgs.gnome // self;
callPackage = drv: args: stdenv.lib.callPackageWith defaultScope drv args;
in
import ./hackage-packages.nix { inherit pkgs stdenv callPackage; } self // {
inherit ghc mkDerivation callPackage;
ghcWithPackages = pkgs: callPackage ./with-packages-wrapper.nix { packages = pkgs self; };
};
compatLayer = if provideOldAttributeNames then import ./compat-layer.nix else (self: super: {});
commonConfiguration = import ./configuration-common.nix { inherit pkgs; };
in
fix (extend (extend (extend (extend haskellPackages commonConfiguration) packageSetConfig) overrides) compatLayer)

View file

@ -0,0 +1,203 @@
{ stdenv, fetchurl, ghc, pkgconfig, glibcLocales, coreutils, gnugrep, gnused
, jailbreak-cabal, hscolour
}:
{ pname, version, sha256 ? null
, src ? fetchurl { url = "mirror://hackage/${pname}-${version}.tar.gz"; inherit sha256; }
, buildDepends ? []
, extraLibraries ? []
, configureFlags ? []
, configureFlagsArray ? []
, pkgconfigDepends ? []
, noHaddock ? false
, buildTools ? []
, patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
, preConfigure ? "", postConfigure ? ""
, preBuild ? "", postBuild ? ""
, installPhase ? "", preInstall ? "", postInstall ? ""
, checkPhase ? "", preCheck ? "", postCheck ? ""
, preFixup ? "", postFixup ? ""
, isExecutable ? false, isLibrary ? !isExecutable
, propagatedUserEnvPkgs ? []
, testDepends ? []
, doCheck ? stdenv.lib.versionOlder "7.4" ghc.version, testTarget ? ""
, jailbreak ? false
, hyperlinkSource ? true
, enableLibraryProfiling ? false
, enableSharedExecutables ? stdenv.lib.versionOlder "7.7" ghc.version
, enableSharedLibraries ? stdenv.lib.versionOlder "7.7" ghc.version
, enableSplitObjs ? !stdenv.isDarwin # http://hackage.haskell.org/trac/ghc/ticket/4013
, enableStaticLibraries ? true
, homepage ? "http://hackage.haskell.org/package/${pname}"
, description ? "no description available"
, license
, editedCabalFile ? null
, platforms ? ghc.meta.platforms
, hydraPlatforms ? ghc.meta.hydraPlatforms or ghc.meta.platforms
, broken ? false
, maintainers ? []
, passthru ? {}
}:
assert pkgconfigDepends != [] -> pkgconfig != null;
let
inherit (stdenv.lib) optional optionals optionalString versionOlder
concatStringsSep enableFeature;
defaultSetupHs = builtins.toFile "Setup.hs" ''
import Distribution.Simple
main = defaultMain
'';
defaultConfigureFlags = [
(enableFeature enableSplitObjs "split-objs")
(enableFeature enableLibraryProfiling "library-profiling")
(enableFeature enableSharedLibraries "shared")
(optionalString (versionOlder "7" ghc.version) (enableFeature enableStaticLibraries "library-vanilla"))
(optionalString (versionOlder "7.4" ghc.version) (enableFeature enableSharedExecutables "executable-dynamic"))
(optionalString (versionOlder "7" ghc.version) (enableFeature doCheck "tests"))
];
hasActiveLibrary = isLibrary && (enableStaticLibraries || enableSharedLibraries);
newCabalFile = fetchurl {
url = "http://hackage.haskell.org/package/${pname}-${version}/${pname}.cabal";
sha256 = editedCabalFile;
};
in
stdenv.mkDerivation {
name = "${optionalString hasActiveLibrary "haskell-"}${pname}-${version}";
inherit src;
nativeBuildInputs = extraLibraries ++ buildTools ++
optionals (pkgconfigDepends != []) ([pkgconfig] ++ pkgconfigDepends) ++
optionals doCheck testDepends;
propagatedNativeBuildInputs = buildDepends;
inherit propagatedUserEnvPkgs;
inherit patches patchPhase prePatch postPatch;
inherit preConfigure postConfigure configureFlags configureFlagsArray;
inherit preBuild postBuild;
inherit preInstall postInstall;
inherit doCheck preCheck postCheck;
inherit preFixup postFixup;
# GHC needs the locale configured during the Haddock phase.
LANG = "en_US.UTF-8";
LOCALE_ARCHIVE = optionalString stdenv.isLinux "${glibcLocales}/lib/locale/locale-archive";
configurePhase = ''
runHook preConfigure
echo "Building with ${ghc}."
export PATH="${ghc}/bin:$PATH"
${optionalString (hasActiveLibrary && hyperlinkSource) "export PATH=${hscolour}/bin:$PATH"}
configureFlags="--verbose --prefix=$out --libdir=\$prefix/lib/\$compiler --libsubdir=\$pkgid $configureFlags"
configureFlags+=' ${concatStringsSep " " defaultConfigureFlags}'
${optionalString (enableSharedExecutables && stdenv.isLinux) ''
configureFlags+=" --ghc-option=-optl=-Wl,-rpath=$out/lib/${ghc.name}/${pname}-${version}"
''}
${optionalString (enableSharedExecutables && stdenv.isDarwin) ''
configureFlags+=" --ghc-option=-optl=-Wl,-headerpad_max_install_names"
''}
${optionalString (versionOlder "7.8" ghc.version && !isLibrary) ''
configureFlags+=" --ghc-option=-j$NIX_BUILD_CORES"
setupCompileFlags="-j$NIX_BUILD_CORES"
''}
local confDir=$out/nix-support/ghc-${ghc.version}-package.conf.d
mkdir -p $confDir
for p in $propagatedNativeBuildInputs $nativeBuildInputs; do
if [ -d "$p/nix-support/ghc-${ghc.version}-package.conf.d" ]; then
cp -f "$p/nix-support/ghc-${ghc.version}-package.conf.d/"*.conf $confDir/
continue
fi
if [ -d "$p/include" ]; then
configureFlags+=" --extra-include-dirs=$p/include"
fi
for d in lib{,64}; do
if [ -d "$p/$d" ]; then
configureFlags+=" --extra-lib-dirs=$p/$d"
fi
done
done
ghc-pkg --package-db=$confDir recache
configureFlags+=" --package-db=$confDir"
${optionalString (editedCabalFile != null) ''
echo "Replacing Cabal file with edited version ${newCabalFile}."
cp ${newCabalFile} ${pname}.cabal
''}
${optionalString jailbreak ''
echo "Running jailbreak-cabal to lift version restrictions on build inputs."
${jailbreak-cabal}/bin/jailbreak-cabal ${pname}.cabal
''}
for i in Setup.hs Setup.lhs ${defaultSetupHs}; do
test -f $i && break
done
ghc -package-db=$confDir $setupCompileFlags --make -o Setup -odir $TMPDIR -hidir $TMPDIR $i
echo configureFlags: $configureFlags
unset GHC_PACKAGE_PATH # Cabal complains about this variable if it's set.
./Setup configure $configureFlags 2>&1 | ${coreutils}/bin/tee "$NIX_BUILD_TOP/cabal-configure.log"
if ${gnugrep}/bin/egrep -q '^Warning:.*depends on multiple versions' "$NIX_BUILD_TOP/cabal-configure.log"; then
echo >&2 "*** abort because of serious configure-time warning from Cabal"
exit 1
fi
export GHC_PACKAGE_PATH="$confDir:"
runHook postConfigure
'';
buildPhase = ''
runHook preBuild
./Setup build
${optionalString (!noHaddock && hasActiveLibrary) ''
./Setup haddock --html --hoogle ${optionalString (hasActiveLibrary && hyperlinkSource) "--hyperlink-source"}
''}
runHook postBuild
'';
checkPhase = if installPhase != "" then installPhase else ''
runHook preCheck
./Setup test ${testTarget}
runHook postCheck
'';
installPhase = if installPhase != "" then installPhase else ''
runHook preInstall
${if !hasActiveLibrary then "./Setup install" else ''
./Setup copy
local confDir=$out/nix-support/ghc-${ghc.version}-package.conf.d
local pkgConf=$confDir/${pname}-${version}.conf
mkdir -p $confDir
./Setup register --gen-pkg-config=$pkgConf
local pkgId=$( ${gnused}/bin/sed -n -e 's|^id: ||p' $pkgConf )
mv $pkgConf $confDir/$pkgId.conf
ghc-pkg --package-db=$confDir recache
''}
${optionalString (enableSharedExecutables && isExecutable && stdenv.isDarwin) ''
for exe in "$out/bin/"* ; do
install_name_tool -add_rpath "$out/lib/ghc-${ghc.version}/${pname}-${version}" "$exe"
done
''}
runHook postInstall
'';
passthru = passthru // { inherit pname version; };
meta = {
inherit homepage license description platforms hydraPlatforms maintainers broken;
};
}

View file

@ -0,0 +1,43 @@
diff -Naur ghc-paths-0.1.0.9/GHC/Paths.hs ghc-paths-0.1.0.9-new/GHC/Paths.hs
--- ghc-paths-0.1.0.9/GHC/Paths.hs 2012-12-16 13:53:45.720148396 +0100
+++ ghc-paths-0.1.0.9-new/GHC/Paths.hs 2012-12-16 17:22:12.765576568 +0100
@@ -1,13 +1,35 @@
{-# LANGUAGE CPP #-}
+{-# LANGUAGE ScopedTypeVariables #-}
module GHC.Paths (
ghc, ghc_pkg, libdir, docdir
) where
+import Control.Exception as E
+import Data.Maybe
+import System.Environment
+import System.IO.Unsafe
+
+-- Yes, there's lookupEnv now, but we want to be compatible
+-- with older GHCs.
+checkEnv :: String -> IO (Maybe String)
+checkEnv var = E.catch (fmap Just (getEnv var))
+ (\ (e :: IOException) -> return Nothing)
+
+nixLibdir, nixDocdir, nixGhc, nixGhcPkg :: Maybe FilePath
+nixLibdir = unsafePerformIO (checkEnv "NIX_GHC_LIBDIR")
+nixDocdir = unsafePerformIO (checkEnv "NIX_GHC_DOCDIR")
+nixGhc = unsafePerformIO (checkEnv "NIX_GHC")
+nixGhcPkg = unsafePerformIO (checkEnv "NIX_GHCPKG")
+{-# NOINLINE nixLibdir #-}
+{-# NOINLINE nixDocdir #-}
+{-# NOINLINE nixGhc #-}
+{-# NOINLINE nixGhcPkg #-}
+
libdir, docdir, ghc, ghc_pkg :: FilePath
-libdir = GHC_PATHS_LIBDIR
-docdir = GHC_PATHS_DOCDIR
+libdir = fromMaybe GHC_PATHS_LIBDIR nixLibdir
+docdir = fromMaybe GHC_PATHS_DOCDIR nixDocdir
-ghc = GHC_PATHS_GHC
-ghc_pkg = GHC_PATHS_GHC_PKG
+ghc = fromMaybe GHC_PATHS_GHC nixGhc
+ghc_pkg = fromMaybe GHC_PATHS_GHC_PKG nixGhcPkg

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
{
overrideCabal = drv: f: drv.override (args: args // {
mkDerivation = drv: args.mkDerivation (drv // f drv);
});
}

View file

@ -0,0 +1,79 @@
{ stdenv, ghc, packages, buildEnv, makeWrapper, ignoreCollisions ? false }:
# This wrapper works only with GHC 6.12 or later.
assert stdenv.lib.versionOlder "6.12" ghc.version;
# It's probably a good idea to include the library "ghc-paths" in the
# compiler environment, because we have a specially patched version of
# that package in Nix that honors these environment variables
#
# NIX_GHC
# NIX_GHCPKG
# NIX_GHC_DOCDIR
# NIX_GHC_LIBDIR
#
# instead of hard-coding the paths. The wrapper sets these variables
# appropriately to configure ghc-paths to point back to the wrapper
# instead of to the pristine GHC package, which doesn't know any of the
# additional libraries.
#
# A good way to import the environment set by the wrapper below into
# your shell is to add the following snippet to your ~/.bashrc:
#
# if [ -e ~/.nix-profile/bin/ghc ]; then
# eval $(grep export ~/.nix-profile/bin/ghc)
# fi
let
ghc761OrLater = stdenv.lib.versionOlder "7.6.1" ghc.version;
packageDBFlag = if ghc761OrLater then "--global-package-db" else "--global-conf";
libDir = "$out/lib/ghc-${ghc.version}";
docDir = "$out/share/doc/ghc/html";
packageCfgDir = "${libDir}/package.conf.d";
isHaskellPkg = x: (x ? pname) && (x ? version);
in
if packages == [] then ghc else
buildEnv {
name = "haskell-env-${ghc.name}";
paths = stdenv.lib.filter isHaskellPkg (stdenv.lib.closePropagation packages) ++ [ghc];
inherit ignoreCollisions;
postBuild = ''
. ${makeWrapper}/nix-support/setup-hook
for prg in ghc ghci ghc-${ghc.version} ghci-${ghc.version}; do
rm -f $out/bin/$prg
makeWrapper ${ghc}/bin/$prg $out/bin/$prg \
--add-flags '"-B$NIX_GHC_LIBDIR"' \
--set "NIX_GHC" "$out/bin/ghc" \
--set "NIX_GHCPKG" "$out/bin/ghc-pkg" \
--set "NIX_GHC_DOCDIR" "${docDir}" \
--set "NIX_GHC_LIBDIR" "${libDir}"
done
for prg in runghc runhaskell; do
rm -f $out/bin/$prg
makeWrapper ${ghc}/bin/$prg $out/bin/$prg \
--add-flags "-f $out/bin/ghc" \
--set "NIX_GHC" "$out/bin/ghc" \
--set "NIX_GHCPKG" "$out/bin/ghc-pkg" \
--set "NIX_GHC_DOCDIR" "${docDir}" \
--set "NIX_GHC_LIBDIR" "${libDir}"
done
for prg in ghc-pkg ghc-pkg-${ghc.version}; do
rm -f $out/bin/$prg
makeWrapper ${ghc}/bin/$prg $out/bin/$prg --add-flags "${packageDBFlag}=${packageCfgDir}"
done
rm $out/lib/${ghc.name}/package.conf.d
mkdir $out/lib/${ghc.name}/package.conf.d
for pkg in $paths; do
for file in "$pkg/nix-support/${ghc.name}-package.conf.d/"*.conf "$pkg/lib/${ghc.name}/package.conf.d/"*.conf; do
ln -sf $file $out/lib/${ghc.name}/package.conf.d/
done
done
$out/bin/ghc-pkg recache
$out/bin/ghc-pkg check
'';
}

View file

@ -3387,8 +3387,6 @@ let
builtins.substring 0 (builtins.stringLength "packages_") name == "packages_"
) haskell));
haskellPackages = haskellPackages_ghc784;
haskellPackages_ghc6104 = haskell.packages_ghc6104;
haskellPackages_ghc6123 = haskell.packages_ghc6123;
haskellPackages_ghc704 = haskell.packages_ghc704;
@ -3400,6 +3398,13 @@ let
haskellPackages_ghc784 = recurseIntoAttrs haskell.packages_ghc784.highPrio;
haskellPackages_ghcHEAD = haskell.packages_ghcHEAD;
haskellPackages_ghcjs = haskell.packages_ghcjs;
haskellPackages = haskellPackages_ghc784;
haskell-ng = callPackage ./haskell-ng.nix { };
haskellngPackages = haskell-ng.packages.ghc784.override {
overrides = config.haskellPackageOverrides or (self: super: {});
provideOldAttributeNames = config.provideOldHaskellAttributeNames or false;
};
haxe = callPackage ../development/compilers/haxe { };

View file

@ -0,0 +1,51 @@
{ pkgs, callPackage }:
rec {
compiler = {
ghc6102Binary = callPackage ../development/compilers/ghc/6.10.2-binary.nix { gmp = pkgs.gmp4; };
ghc704Binary = callPackage ../development/compilers/ghc/7.0.4-binary.nix { gmp = pkgs.gmp4; };
ghc742Binary = callPackage ../development/compilers/ghc/7.4.2-binary.nix { gmp = pkgs.gmp4; };
ghc6104 = callPackage ../development/compilers/ghc/6.10.4.nix { ghc = compiler.ghc6102Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc6123 = callPackage ../development/compilers/ghc/6.12.3.nix { ghc = compiler.ghc6102Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc704 = callPackage ../development/compilers/ghc/7.0.4.nix { ghc = compiler.ghc704Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc722 = callPackage ../development/compilers/ghc/7.2.2.nix { ghc = compiler.ghc704Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc742 = callPackage ../development/compilers/ghc/7.4.2.nix { ghc = compiler.ghc704Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc763 = callPackage ../development/compilers/ghc/7.6.3.nix { ghc = compiler.ghc704Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc783 = callPackage ../development/compilers/ghc/7.8.3.nix { ghc = compiler.ghc742Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghc784 = callPackage ../development/compilers/ghc/7.8.4.nix { ghc = compiler.ghc742Binary; gmp = pkgs.gmp.override { withStatic = true; }; };
ghcHEAD = callPackage ../development/compilers/ghc/head.nix { inherit (packages.ghc784) ghc alex happy; };
ghc = compiler.ghc784;
};
packages = {
ghc6104 = callPackage ../development/haskell-modules { ghc = compiler.ghc6104; };
ghc6123 = callPackage ../development/haskell-modules { ghc = compiler.ghc6123; };
ghc704 = callPackage ../development/haskell-modules { ghc = compiler.ghc704; };
ghc722 = callPackage ../development/haskell-modules { ghc = compiler.ghc722; };
ghc742 = callPackage ../development/haskell-modules { ghc = compiler.ghc742; };
ghc763 = callPackage ../development/haskell-modules {
ghc = compiler.ghc763;
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghc-7.6.x.nix { };
};
ghc784 = callPackage ../development/haskell-modules {
ghc = compiler.ghc784;
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghc-7.8.x.nix { };
};
ghcHEAD = callPackage ../development/haskell-modules {
ghc = compiler.ghcHEAD;
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghc-7.9.x.nix { };
};
ghcjs = callPackage ../development/haskell-modules {
packageSetConfig = callPackage ../development/haskell-modules/configuration-ghcjs.nix { };
};
};
}