Say hello to our brand-new Haskell infrastructure.
This commit is contained in:
parent
82b55b9c78
commit
54baa53df1
3846
pkgs/development/haskell-modules/compat-layer.nix
Normal file
3846
pkgs/development/haskell-modules/compat-layer.nix
Normal file
File diff suppressed because it is too large
Load Diff
375
pkgs/development/haskell-modules/configuration-common.nix
Normal file
375
pkgs/development/haskell-modules/configuration-common.nix
Normal 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; });
|
||||
|
||||
}
|
39
pkgs/development/haskell-modules/configuration-ghc-7.6.x.nix
Normal file
39
pkgs/development/haskell-modules/configuration-ghc-7.6.x.nix
Normal 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; };
|
||||
}
|
51
pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix
Normal file
51
pkgs/development/haskell-modules/configuration-ghc-7.8.x.nix
Normal 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; };
|
||||
|
||||
}
|
41
pkgs/development/haskell-modules/configuration-ghc-7.9.x.nix
Normal file
41
pkgs/development/haskell-modules/configuration-ghc-7.9.x.nix
Normal 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";
|
||||
});
|
||||
|
||||
}
|
49
pkgs/development/haskell-modules/configuration-ghcjs.nix
Normal file
49
pkgs/development/haskell-modules/configuration-ghcjs.nix
Normal 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;
|
||||
|
||||
}
|
51
pkgs/development/haskell-modules/default.nix
Normal file
51
pkgs/development/haskell-modules/default.nix
Normal 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)
|
203
pkgs/development/haskell-modules/generic-builder.nix
Normal file
203
pkgs/development/haskell-modules/generic-builder.nix
Normal 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;
|
||||
};
|
||||
}
|
43
pkgs/development/haskell-modules/ghc-paths-nix.patch
Normal file
43
pkgs/development/haskell-modules/ghc-paths-nix.patch
Normal 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
|
119730
pkgs/development/haskell-modules/hackage-packages.nix
Normal file
119730
pkgs/development/haskell-modules/hackage-packages.nix
Normal file
File diff suppressed because it is too large
Load Diff
7
pkgs/development/haskell-modules/lib.nix
Normal file
7
pkgs/development/haskell-modules/lib.nix
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
|
||||
overrideCabal = drv: f: drv.override (args: args // {
|
||||
mkDerivation = drv: args.mkDerivation (drv // f drv);
|
||||
});
|
||||
|
||||
}
|
79
pkgs/development/haskell-modules/with-packages-wrapper.nix
Normal file
79
pkgs/development/haskell-modules/with-packages-wrapper.nix
Normal 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
|
||||
'';
|
||||
}
|
@ -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 { };
|
||||
|
||||
|
51
pkgs/top-level/haskell-ng.nix
Normal file
51
pkgs/top-level/haskell-ng.nix
Normal 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 { };
|
||||
};
|
||||
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue
Block a user