diff options
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-common.nix')
-rw-r--r-- | pkgs/development/haskell-modules/configuration-common.nix | 488 |
1 files changed, 73 insertions, 415 deletions
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 5b8df2628774..8e00386267bf 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1,3 +1,14 @@ +# COMMON OVERRIDES FOR THE HASKELL PACKAGE SET IN NIXPKGS +# +# This file contains haskell package overrides that are shared by all +# haskell package sets provided by nixpkgs and distributed via the official +# NixOS hydra instance. +# +# Overrides that would also make sense for custom haskell package sets not provided +# as part of nixpkgs and that are specific to Nix should go in configuration-nix.nix +# +# See comment at the top of configuration-nix.nix for more information about this +# distinction. { pkgs }: with import ./lib.nix { inherit pkgs; }; @@ -15,9 +26,6 @@ self: super: { # Link statically to avoid runtime dependency on GHC. jailbreak-cabal = (disableSharedExecutables super.jailbreak-cabal).override { Cabal = self.Cabal_1_20_0_4; }; - # Apply NixOS-specific patches. - ghc-paths = appendPatch super.ghc-paths ./patches/ghc-paths-nix.patch; - # enable using a local hoogle with extra packagages in the database # nix-shell -p "haskellPackages.hoogleLocal (with haskellPackages; [ mtl lens ])" # $ hoogle server @@ -35,9 +43,6 @@ self: super: { statistics = dontCheck super.statistics; c2hs = dontCheck super.c2hs; - # fix errors caused by hardening flags - epanet-haskell = disableHardening super.epanet-haskell ["format"]; - # This test keeps being aborted because it runs too quietly for too long Lazy-Pbkdf2 = if pkgs.stdenv.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2; @@ -45,6 +50,9 @@ self: super: { # test phase requires networking mysql = dontCheck (super.mysql.override { mysql = pkgs.mysql.lib; }); + # check requires mysql server + mysql-simple = dontCheck super.mysql-simple; + # Link the proper version. zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; }; @@ -63,49 +71,11 @@ self: super: { hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify; }; - # CUDA needs help finding the SDK headers and libraries. - cuda = overrideCabal super.cuda (drv: { - extraLibraries = (drv.extraLibraries or []) ++ [pkgs.linuxPackages.nvidia_x11]; - configureFlags = (drv.configureFlags or []) ++ - pkgs.lib.optional pkgs.stdenv.is64bit "--extra-lib-dirs=${pkgs.cudatoolkit}/lib64" ++ [ - "--extra-lib-dirs=${pkgs.cudatoolkit}/lib" - "--extra-include-dirs=${pkgs.cudatoolkit}/include" - ]; - preConfigure = '' - unset CC # unconfuse the haskell-cuda configure script - sed -i -e 's|/usr/local/cuda|${pkgs.cudatoolkit}|g' configure - ''; - }); - - # jni needs help finding libjvm.so because it's in a weird location. - jni = overrideCabal super.jni (drv: { - preConfigure = '' - local libdir=( "${pkgs.jdk}/lib/openjdk/jre/lib/"*"/server" ) - configureFlags+=" --extra-lib-dir=''${libdir[0]}" - ''; - }); - - # The package doesn't know about the AL include hierarchy. - # https://github.com/phaazon/al/issues/1 - al = appendConfigureFlag super.al "--extra-include-dirs=${pkgs.openal}/include/AL"; - # https://github.com/froozen/kademlia/issues/2 kademlia = dontCheck super.kademlia; - # Won't find it's header files without help. - sfml-audio = appendConfigureFlag super.sfml-audio "--extra-include-dirs=${pkgs.openal}/include/AL"; - - hzk = overrideCabal super.hzk (drv: { - preConfigure = "sed -i -e /include-dirs/d hzk.cabal"; - configureFlags = "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper"; - doCheck = false; - }); - - haskakafka = overrideCabal super.haskakafka (drv: { - preConfigure = "sed -i -e /extra-lib-dirs/d -e /include-dirs/d haskakafka.cabal"; - configureFlags = "--extra-include-dirs=${pkgs.rdkafka}/include/librdkafka"; - doCheck = false; - }); + hzk = dontCheck super.hzk; + haskakafka = dontCheck super.haskakafka; # Depends on broken "lss" package. snaplet-lss = dontDistribute super.snaplet-lss; @@ -124,9 +94,6 @@ self: super: { # Depends on broken "hails" package. hails-bin = dontDistribute super.hails-bin; - # Foreign dependency name clashes with another Haskell package. - libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; }; - # Switch levmar build to openblas. bindings-levmar = overrideCabal super.bindings-levmar (drv: { preConfigure = '' @@ -162,6 +129,7 @@ self: super: { shakespeare-js = dontHaddock super.shakespeare-js; shakespeare-text = dontHaddock super.shakespeare-text; swagger = dontHaddock super.swagger; # http://hydra.cryp.to/build/2035868/nixlog/1/raw + swagger2 = dontHaddock super.swagger2; wai-test = dontHaddock super.wai-test; zlib-conduit = dontHaddock super.zlib-conduit; @@ -171,9 +139,9 @@ self: super: { # https://github.com/techtangents/ablist/issues/1 ABList = dontCheck super.ABList; - # https://github.com/haskell/vector/issues/47 - # https://github.com/haskell/vector/issues/138 - vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector); + # sse2 flag due to https://github.com/haskell/vector/issues/47. + # dontCheck due to https://github.com/haskell/vector/issues/138 + vector = dontCheck (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector); # Fix Darwin build. halive = if pkgs.stdenv.isDarwin @@ -188,11 +156,6 @@ self: super: { # https://github.com/jaspervdj/hakyll/issues/491 else dontCheck super.hakyll; - # Heist's test suite requires system pandoc - heist = overrideCabal super.heist (drv: { - testToolDepends = [pkgs.pandoc]; - }); - # cabal2nix likes to generate dependencies on hinotify when hfsevents is really required # on darwin: https://github.com/NixOS/cabal2nix/issues/146. hinotify = if pkgs.stdenv.isDarwin then self.hfsevents else super.hinotify; @@ -204,20 +167,6 @@ self: super: { then addBuildDepend (dontCheck super.fsnotify) pkgs.darwin.apple_sdk.frameworks.Cocoa else dontCheck super.fsnotify; - # the system-fileio tests use canonicalizePath, which fails in the sandbox - system-fileio = if pkgs.stdenv.isDarwin then dontCheck super.system-fileio else super.system-fileio; - - # Prevents needing to add security_tool as a build tool to all of x509-system's - # dependencies. - x509-system = if pkgs.stdenv.isDarwin && !pkgs.stdenv.cc.nativeLibc - then let inherit (pkgs.darwin) security_tool; - in pkgs.lib.overrideDerivation (addBuildDepend super.x509-system security_tool) (drv: { - postPatch = (drv.postPatch or "") + '' - substituteInPlace System/X509/MacOS.hs --replace security ${security_tool}/bin/security - ''; - }) - else super.x509-system; - double-conversion = if !pkgs.stdenv.isDarwin then addExtraLibrary super.double-conversion pkgs.stdenv.cc.cc.lib else addExtraLibrary (overrideCabal super.double-conversion (drv: @@ -239,29 +188,9 @@ self: super: { # tests don't compile for some odd reason jwt = dontCheck super.jwt; - # https://github.com/NixOS/cabal2nix/issues/136 and https://github.com/NixOS/cabal2nix/issues/216 - gio = disableHardening (addPkgconfigDepend (addBuildTool super.gio self.gtk2hs-buildtools) pkgs.glib) ["fortify"]; - glib = disableHardening (addPkgconfigDepend (addBuildTool super.glib self.gtk2hs-buildtools) pkgs.glib) ["fortify"]; - gtk3 = disableHardening (super.gtk3.override { inherit (pkgs) gtk3; }) ["fortify"]; - gtk = disableHardening (addPkgconfigDepend (addBuildTool super.gtk self.gtk2hs-buildtools) pkgs.gtk2) ["fortify"]; - gtksourceview2 = (addPkgconfigDepend super.gtksourceview2 pkgs.gtk2).override { inherit (pkgs.gnome2) gtksourceview; }; - gtksourceview3 = super.gtksourceview3.override { inherit (pkgs.gnome3) gtksourceview; }; - - # Need WebkitGTK, not just webkit. - webkit = super.webkit.override { webkit = pkgs.webkitgtk2; }; - webkitgtk3 = super.webkitgtk3.override { webkit = pkgs.webkitgtk24x; }; - webkitgtk3-javascriptcore = super.webkitgtk3-javascriptcore.override { webkit = pkgs.webkitgtk24x; }; - websnap = super.websnap.override { webkit = pkgs.webkitgtk24x; }; - # https://github.com/mvoidex/hsdev/issues/11 hsdev = dontHaddock super.hsdev; - hs-mesos = overrideCabal super.hs-mesos (drv: { - # Pass _only_ mesos; the correct protobuf is propagated. - extraLibraries = [ pkgs.mesos ]; - preConfigure = "sed -i -e /extra-lib-dirs/d -e 's|, /usr/include, /usr/local/include/mesos||' hs-mesos.cabal"; - }); - # Upstream notified by e-mail. permutation = dontCheck super.permutation; @@ -303,38 +232,6 @@ self: super: { HerbiePlugin = dontCheck super.HerbiePlugin; wai-cors = dontCheck super.wai-cors; - # These packages try to access the network. - amqp = dontCheck super.amqp; - amqp-conduit = dontCheck super.amqp-conduit; - bitcoin-api = dontCheck super.bitcoin-api; - bitcoin-api-extra = dontCheck super.bitcoin-api-extra; - bitx-bitcoin = dontCheck super.bitx-bitcoin; # http://hydra.cryp.to/build/926187/log/raw - concurrent-dns-cache = dontCheck super.concurrent-dns-cache; - digitalocean-kzs = dontCheck super.digitalocean-kzs; # https://github.com/KazumaSATO/digitalocean-kzs/issues/1 - github-types = dontCheck super.github-types; # http://hydra.cryp.to/build/1114046/nixlog/1/raw - hadoop-rpc = dontCheck super.hadoop-rpc; # http://hydra.cryp.to/build/527461/nixlog/2/raw - hasql = dontCheck super.hasql; # http://hydra.cryp.to/build/502489/nixlog/4/raw - hasql-transaction = dontCheck super.hasql-transaction; # wants to connect to postgresql - hjsonschema = overrideCabal super.hjsonschema (drv: { testTarget = "local"; }); - marmalade-upload = dontCheck super.marmalade-upload; # http://hydra.cryp.to/build/501904/nixlog/1/raw - mongoDB = dontCheck super.mongoDB; - network-transport-tcp = dontCheck super.network-transport-tcp; - network-transport-zeromq = dontCheck super.network-transport-zeromq; # https://github.com/tweag/network-transport-zeromq/issues/30 - pipes-mongodb = dontCheck super.pipes-mongodb; # http://hydra.cryp.to/build/926195/log/raw - raven-haskell = dontCheck super.raven-haskell; # http://hydra.cryp.to/build/502053/log/raw - riak = dontCheck super.riak; # http://hydra.cryp.to/build/498763/log/raw - scotty-binding-play = dontCheck super.scotty-binding-play; - servant-router = dontCheck super.servant-router; - serversession-backend-redis = dontCheck super.serversession-backend-redis; - slack-api = dontCheck super.slack-api; # https://github.com/mpickering/slack-api/issues/5 - socket = dontCheck super.socket; - stackage = dontCheck super.stackage; # http://hydra.cryp.to/build/501867/nixlog/1/raw - textocat-api = dontCheck super.textocat-api; # http://hydra.cryp.to/build/887011/log/raw - warp = dontCheck super.warp; # http://hydra.cryp.to/build/501073/nixlog/5/raw - wreq = dontCheck super.wreq; # http://hydra.cryp.to/build/501895/nixlog/1/raw - wreq-sb = dontCheck super.wreq-sb; # http://hydra.cryp.to/build/783948/log/raw - wuss = dontCheck super.wuss; # http://hydra.cryp.to/build/875964/nixlog/2/raw - # https://github.com/NICTA/digit/issues/3 digit = dontCheck super.digit; @@ -344,9 +241,6 @@ self: super: { # https://github.com/ekmett/structures/issues/3 structures = dontCheck super.structures; - # Tries to mess with extended POSIX attributes, but can't in our chroot environment. - xattr = dontCheck super.xattr; - # Disable test suites to fix the build. acme-year = dontCheck super.acme-year; # http://hydra.cryp.to/build/497858/log/raw aeson-lens = dontCheck super.aeson-lens; # http://hydra.cryp.to/build/496769/log/raw @@ -422,8 +316,6 @@ self: super: { HTF = dontCheck super.HTF; htsn = dontCheck super.htsn; htsn-import = dontCheck super.htsn-import; - http-client-openssl = dontCheck super.http-client-openssl; - http-client-tls = dontCheck super.http-client-tls; ihaskell = dontCheck super.ihaskell; influxdb = dontCheck super.influxdb; itanium-abi = dontCheck super.itanium-abi; @@ -488,9 +380,6 @@ self: super: { snap-core = dontCheck super.snap-core; sourcemap = dontCheck super.sourcemap; - # Needs access to locale data, but looks for it in the wrong place. - scholdoc-citeproc = dontCheck super.scholdoc-citeproc; - # These test suites run for ages, even on a fast machine. This is nuts. Random123 = dontCheck super.Random123; systemd = dontCheck super.systemd; @@ -501,15 +390,8 @@ self: super: { # https://github.com/bos/snappy/issues/1 snappy = dontCheck super.snappy; - # Expect to find sendmail(1) in $PATH. - mime-mail = appendConfigureFlag super.mime-mail "--ghc-option=-DMIME_MAIL_SENDMAIL_PATH=\"sendmail\""; - - # Help the test suite find system timezone data. - tz = overrideCabal super.tz (drv: { preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo"; }); - # https://ghc.haskell.org/trac/ghc/ticket/9625 vty = dontCheck super.vty; - vty_5_15 = dontCheck super.vty_5_15; # https://github.com/vincenthz/hs-crypto-pubkey/issues/20 crypto-pubkey = dontCheck super.crypto-pubkey; @@ -526,18 +408,12 @@ self: super: { # https://github.com/pixbi/duplo/issues/25 duplo = dontCheck super.duplo; - # Nix-specific workaround - xmonad = appendPatch (dontCheck super.xmonad) ./patches/xmonad-nix.patch; - # https://github.com/evanrinehart/mikmod/issues/1 mikmod = addExtraLibrary super.mikmod pkgs.libmikmod; # https://github.com/basvandijk/threads/issues/10 threads = dontCheck super.threads; - # https://github.com/ucsd-progsys/liquid-fixpoint/issues/44 - liquid-fixpoint = overrideCabal super.liquid-fixpoint (drv: { preConfigure = "patchShebangs ."; }); - # Missing module. rematch = dontCheck super.rematch; # https://github.com/tcrayford/rematch/issues/5 rematch-text = dontCheck super.rematch-text; # https://github.com/tcrayford/rematch/issues/6 @@ -557,11 +433,6 @@ self: super: { # https://github.com/vincenthz/hs-asn1/issues/12 asn1-encoding = dontCheck super.asn1-encoding; - # wxc supports wxGTX >= 3.0, but our current default version points to 2.8. - # http://hydra.cryp.to/build/1331287/log/raw - wxc = (addBuildDepend super.wxc self.split).override { wxGTK = pkgs.wxGTK30; }; - wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK30; }; - # Depends on QuickCheck 1.x. HaVSA = super.HaVSA.override { QuickCheck = self.QuickCheck_1_2_0_1; }; test-framework-quickcheck = super.test-framework-quickcheck.override { QuickCheck = self.QuickCheck_1_2_0_1; }; @@ -583,9 +454,6 @@ self: super: { # https://github.com/alephcloud/hs-configuration-tools/issues/40 configuration-tools = dontCheck super.configuration-tools; - # Test suite wants to connect to $DISPLAY. - hsqml = dontCheck (addExtraLibrary (super.hsqml.override { qt5 = pkgs.qt5Full; }) pkgs.mesa); - # HsColour: Language/Unlambda.hs: hGetContents: invalid argument (invalid byte sequence) unlambda = dontHyperlinkSource super.unlambda; @@ -603,15 +471,6 @@ self: super: { preConfigure = "sed -i -e 's,time .* < 1.6,time >= 1.5,' -e 's,haddock-library >= 1.1 && < 1.3,haddock-library >= 1.1,' pandoc.cabal"; }); - # Tests attempt to use NPM to install from the network into - # /homeless-shelter. Disabled. - purescript = dontCheck super.purescript; - - # Requires bower-json >= 1.0.0.1 && < 1.1 - purescript_0_10_5 = super.purescript_0_10_5.overrideScope (self: super: { - bower-json = self.bower-json_1_0_0_1; - }); - # https://github.com/tych0/xcffib/issues/37 xcffib = dontCheck super.xcffib; @@ -621,90 +480,16 @@ self: super: { # https://github.com/haskell/haddock/issues/378 haddock-library = dontCheck super.haddock-library; - # https://github.com/anton-k/csound-expression-dynamic/issues/1 - csound-expression-dynamic = dontHaddock super.csound-expression-dynamic; - - # Hardcoded include path - poppler = overrideCabal super.poppler (drv: { - postPatch = '' - sed -i -e 's,glib/poppler.h,poppler.h,' poppler.cabal - sed -i -e 's,glib/poppler.h,poppler.h,' Graphics/UI/Gtk/Poppler/Structs.hsc - ''; + # https://github.com/haskell/haddock/issues/571 + haddock-api = appendPatch (doJailbreak super.haddock-api) (pkgs.fetchpatch { + url = "https://github.com/basvandijk/haddock/commit/f4c5e46ded05a4b8884f5ad6f3102f79ff3bb127.patch"; + sha256 = "01dawvikzw6y43557sbp9q7z9vw2g3wnzvv5ny0f0ks6ccc0vj0m"; + stripLen = 2; + addPrefixes = true; }); - # Uses OpenGL in testing - caramia = dontCheck super.caramia; - - llvm-general-darwin = overrideCabal (super.llvm-general.override { llvm-config = pkgs.llvm_35; }) (drv: { - preConfigure = '' - sed -i llvm-general.cabal \ - -e 's,extra-libraries: stdc++,extra-libraries: c++,' - ''; - configureFlags = (drv.configureFlags or []) ++ ["--extra-include-dirs=${pkgs.libcxx}/include/c++/v1"]; - librarySystemDepends = [ pkgs.libcxx ] ++ drv.librarySystemDepends or []; - }); - - # Supports only 3.5 for now, https://github.com/bscarlet/llvm-general/issues/142 - llvm-general = - if pkgs.stdenv.isDarwin - then self.llvm-general-darwin - else super.llvm-general.override { llvm-config = pkgs.llvm_35; }; - - # Needs help finding LLVM. - spaceprobe = addBuildTool super.spaceprobe self.llvmPackages.llvm; - - # Tries to run GUI in tests - leksah = dontCheck (overrideCabal super.leksah (drv: { - executableSystemDepends = (drv.executableSystemDepends or []) ++ (with pkgs; [ - gnome3.defaultIconTheme # Fix error: Icon 'window-close' not present in theme ... - wrapGAppsHook # Fix error: GLib-GIO-ERROR **: No GSettings schemas are installed on the system - gtk3 # Fix error: GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed - ]); - postPatch = (drv.postPatch or "") + '' - for f in src/IDE/Leksah.hs src/IDE/Utils/ServerConnection.hs - do - substituteInPlace "$f" --replace "\"leksah-server\"" "\"${self.leksah-server}/bin/leksah-server\"" - done - ''; - })); - - # Packages of the diagrams ecosystem that require: - # diagrams-core ==1.4.* - # diagrams-lib ==1.4.* - # optparse-applicative ==0.13.* - diagrams_1_4 = super.diagrams_1_4.overrideScope (self: super: { - diagrams-contrib = self.diagrams-contrib_1_4_0_1; - diagrams-core = self.diagrams-core_1_4; - diagrams-lib = self.diagrams-lib_1_4_0_1; - diagrams-svg = self.diagrams-svg_1_4_1; - optparse-applicative = self.optparse-applicative_0_13_0_0; - }); - diagrams-contrib_1_4_0_1 = super.diagrams-contrib_1_4_0_1.overrideScope (self: super: { - diagrams-core = self.diagrams-core_1_4; - diagrams-lib = self.diagrams-lib_1_4_0_1; - }); - diagrams-lib_1_4_0_1 = super.diagrams-lib_1_4_0_1.overrideScope (self: super: { - diagrams-core = self.diagrams-core_1_4; - optparse-applicative = self.optparse-applicative_0_13_0_0; - }); - diagrams-pgf = super.diagrams-pgf.overrideScope (self: super: { - diagrams-core = self.diagrams-core_1_4; - diagrams-lib = self.diagrams-lib_1_4_0_1; - optparse-applicative = self.optparse-applicative_0_13_0_0; - }); - diagrams-rasterific_1_4 = super.diagrams-rasterific_1_4.overrideScope (self: super: { - diagrams-core = self.diagrams-core_1_4; - diagrams-lib = self.diagrams-lib_1_4_0_1; - optparse-applicative = self.optparse-applicative_0_13_0_0; - }); - diagrams-svg_1_4_1 = super.diagrams-svg_1_4_1.overrideScope (self: super: { - diagrams-core = self.diagrams-core_1_4; - diagrams-lib = self.diagrams-lib_1_4_0_1; - optparse-applicative = self.optparse-applicative_0_13_0_0; - }); - - # Patch to consider NIX_GHC just like xmonad does - dyre = appendPatch super.dyre ./patches/dyre-nix.patch; + # https://github.com/anton-k/csound-expression-dynamic/issues/1 + csound-expression-dynamic = dontHaddock super.csound-expression-dynamic; # Test suite won't compile against tasty-hunit 0.9.x. zlib = dontCheck super.zlib; @@ -758,14 +543,6 @@ self: super: { # https://github.com/yesodweb/serversession/issues/1 serversession = dontCheck super.serversession; - yesod-bin = if pkgs.stdenv.isDarwin - then addBuildDepend super.yesod-bin pkgs.darwin.apple_sdk.frameworks.Cocoa - else super.yesod-bin; - - hmatrix = if pkgs.stdenv.isDarwin - then addBuildDepend super.hmatrix pkgs.darwin.apple_sdk.frameworks.Accelerate - else super.hmatrix; - # Hydra no longer allows building texlive packages. lhs2tex = dontDistribute super.lhs2tex; @@ -781,16 +558,6 @@ self: super: { # https://github.com/kazu-yamamoto/logger/issues/42 logger = dontCheck super.logger; - # https://github.com/edwinb/EpiVM/issues/13 - # https://github.com/edwinb/EpiVM/issues/14 - epic = addExtraLibraries (addBuildTool super.epic self.happy) [pkgs.boehmgc pkgs.gmp]; - - # https://github.com/ekmett/wl-pprint-terminfo/issues/7 - wl-pprint-terminfo = addExtraLibrary super.wl-pprint-terminfo pkgs.ncurses; - - # https://github.com/bos/pcap/issues/5 - pcap = addExtraLibrary super.pcap pkgs.libpcap; - # https://github.com/qnikst/imagemagick/issues/34 imagemagick = dontCheck super.imagemagick; @@ -865,45 +632,21 @@ self: super: { # https://github.com/yesodweb/Shelly.hs/issues/106 # https://github.com/yesodweb/Shelly.hs/issues/108 - shelly = dontCheck super.shelly; + # https://github.com/yesodweb/Shelly.hs/issues/130 + shelly = + let drv = appendPatch (dontCheck (doJailbreak super.shelly)) (pkgs.fetchpatch { + url = "https://github.com/k0001/Shelly.hs/commit/32a1e290961755e7b2379f59faa49b13d03dfef6.patch"; + sha256 = "0ccq0qly8bxxv64dk97a44ng6hb01j6ajs0sp3f2nn0hf5j3xv69"; + }); + in overrideCabal drv (drv : { + # doJailbreak doesn't seem to work for build-depends inside an + # if-then-else block so we have to do it manually. + postPatch = "sed -i 's/base >=4\.6 \&\& <4\.9\.1/base -any/' shelly.cabal"; + }); # https://github.com/bos/configurator/issues/22 configurator = dontCheck super.configurator; - # The cabal files for these libraries do not list the required system dependencies. - miniball = overrideCabal super.miniball (drv: { - librarySystemDepends = [ pkgs.miniball ]; - }); - SDL-image = overrideCabal super.SDL-image (drv: { - librarySystemDepends = [ pkgs.SDL pkgs.SDL_image ] ++ drv.librarySystemDepends or []; - }); - SDL-ttf = overrideCabal super.SDL-ttf (drv: { - librarySystemDepends = [ pkgs.SDL pkgs.SDL_ttf ]; - }); - SDL-mixer = overrideCabal super.SDL-mixer (drv: { - librarySystemDepends = [ pkgs.SDL pkgs.SDL_mixer ]; - }); - SDL-gfx = overrideCabal super.SDL-gfx (drv: { - librarySystemDepends = [ pkgs.SDL pkgs.SDL_gfx ]; - }); - SDL-mpeg = overrideCabal super.SDL-mpeg (drv: { - configureFlags = (drv.configureFlags or []) ++ [ - "--extra-lib-dirs=${pkgs.smpeg}/lib" - "--extra-include-dirs=${pkgs.smpeg}/include/smpeg" - ]; - }); - - # https://github.com/ivanperez-keera/hcwiid/pull/4 - hcwiid = overrideCabal super.hcwiid (drv: { - configureFlags = (drv.configureFlags or []) ++ [ - "--extra-lib-dirs=${pkgs.bluez.out}/lib" - "--extra-lib-dirs=${pkgs.cwiid}/lib" - "--extra-include-dirs=${pkgs.cwiid}/include" - "--extra-include-dirs=${pkgs.bluez.dev}/include" - ]; - prePatch = '' sed -i -e "/Extra-Lib-Dirs/d" -e "/Include-Dirs/d" "hcwiid.cabal" ''; - }); - # https://github.com/basvandijk/concurrent-extra/issues/12 concurrent-extra = dontCheck super.concurrent-extra; @@ -919,16 +662,6 @@ self: super: { # https://github.com/goldfirere/singletons/issues/122 singletons = dontCheck super.singletons; - # cabal2nix doesn't pick up some of the dependencies. - ginsu = let - g = addBuildDepend super.ginsu pkgs.perl; - g' = overrideCabal g (drv: { - executableSystemDepends = (drv.executableSystemDepends or []) ++ [ - pkgs.ncurses - ]; - }); - in g'; - # https://github.com/guillaume-nargeot/hpc-coveralls/issues/52 hpc-coveralls = disableSharedExecutables super.hpc-coveralls; @@ -941,72 +674,20 @@ self: super: { # https://github.com/sol/hpack/issues/53 hpack = dontCheck super.hpack; - # Tests require `docker` command in PATH - # Tests require running docker service :on localhost - docker = dontCheck super.docker; - # https://github.com/deech/fltkhs/issues/16 fltkhs = overrideCabal super.fltkhs (drv: { - libraryToolDepends = (drv.libraryToolDepends or []) ++ [pkgs.autoconf]; - librarySystemDepends = (drv.librarySystemDepends or []) ++ [pkgs.fltk13 pkgs.mesa_noglu pkgs.libjpeg]; broken = true; # linking fails because the build doesn't pull in the mesa libraries }); fltkhs-fluid-examples = dontDistribute super.fltkhs-fluid-examples; - # https://github.com/skogsbaer/hscurses/pull/26 - hscurses = overrideCabal super.hscurses (drv: { - librarySystemDepends = (drv.librarySystemDepends or []) ++ [ pkgs.ncurses ]; - }); - # We get lots of strange compiler errors during the test suite run. jsaddle = dontCheck super.jsaddle; - # Looks like Avahi provides the missing library - dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; }; - # Haste stuff haste-Cabal = markBroken (self.callPackage ../tools/haskell/haste/haste-Cabal.nix {}); haste-cabal-install = markBroken (self.callPackage ../tools/haskell/haste/haste-cabal-install.nix { Cabal = self.haste-Cabal; }); haste-compiler = markBroken (self.callPackage ../tools/haskell/haste/haste-compiler.nix { inherit overrideCabal; super-haste-compiler = super.haste-compiler; }); - # Ensure the necessary frameworks are propagatedBuildInputs on darwin - OpenGLRaw = overrideCabal super.OpenGLRaw (drv: { - librarySystemDepends = - pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends; - libraryHaskellDepends = drv.libraryHaskellDepends - ++ pkgs.lib.optionals pkgs.stdenv.isDarwin - [ pkgs.darwin.apple_sdk.frameworks.OpenGL ]; - preConfigure = pkgs.lib.optionalString pkgs.stdenv.isDarwin '' - frameworkPaths=($(for i in $nativeBuildInputs; do if [ -d "$i"/Library/Frameworks ]; then echo "-F$i/Library/Frameworks"; fi done)) - frameworkPaths=$(IFS=, ; echo "''${frameworkPaths[@]}") - configureFlags+=$(if [ -n "$frameworkPaths" ]; then echo -n "--ghc-options=-optl=$frameworkPaths"; fi) - ''; - }); - GLURaw = overrideCabal super.GLURaw (drv: { - librarySystemDepends = - pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends; - libraryHaskellDepends = drv.libraryHaskellDepends - ++ pkgs.lib.optionals pkgs.stdenv.isDarwin - [ pkgs.darwin.apple_sdk.frameworks.OpenGL ]; - }); - bindings-GLFW = overrideCabal super.bindings-GLFW (drv: { - doCheck = false; # requires an active X11 display - librarySystemDepends = - pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends; - libraryHaskellDepends = drv.libraryHaskellDepends - ++ pkgs.lib.optionals pkgs.stdenv.isDarwin - (with pkgs.darwin.apple_sdk.frameworks; - [ AGL Cocoa OpenGL IOKit Kernel CoreVideo - pkgs.darwin.CF ]); - }); - OpenCL = overrideCabal super.OpenCL (drv: { - librarySystemDepends = - pkgs.lib.optionals (!pkgs.stdenv.isDarwin) drv.librarySystemDepends; - libraryHaskellDepends = drv.libraryHaskellDepends - ++ pkgs.lib.optionals pkgs.stdenv.isDarwin - [ pkgs.darwin.apple_sdk.frameworks.OpenCL ]; - }); - # tinc is a new build driver a la Stack that's not yet available from Hackage. tinc = self.callPackage ../tools/haskell/tinc {}; @@ -1021,16 +702,8 @@ self: super: { ''; }); - # The most current version needs some packages to build that are not in LTS 7.x. - stack = super.stack.overrideScope (self: super: { - http-client = self.http-client_0_5_5; - http-client-tls = self.http-client-tls_0_3_3_1; - http-conduit = self.http-conduit_2_2_3; - optparse-applicative = dontCheck self.optparse-applicative_0_13_0_0; - criterion = super.criterion.override { inherit (super) optparse-applicative; }; - aeson = self.aeson_1_0_2_1; - hpack = self.hpack_0_15_0; - }); + # https://github.com/commercialhaskell/stack/issues/3001 + stack = doJailbreak super.stack; # The latest Hoogle needs versions not yet in LTS Haskell 7.x. hoogle = super.hoogle.override { haskell-src-exts = self.haskell-src-exts_1_19_1; }; @@ -1054,21 +727,6 @@ self: super: { # Needs new version. haskell-src-exts-simple = super.haskell-src-exts-simple.override { haskell-src-exts = self.haskell-src-exts_1_19_1; }; - # Test suite fails a QuickCheck property. - optparse-applicative_0_13_0_0 = dontCheck super.optparse-applicative_0_13_0_0; - - # GLUT uses `dlopen` to link to freeglut, so we need to set the RUNPATH correctly for - # it to find `libglut.so` from the nix store. We do this by patching GLUT.cabal to pkg-config - # depend on freeglut, which provides GHC to necessary information to generate a correct RPATH. - # - # Note: Simply patching the dynamic library (.so) of the GLUT build will *not* work, since the - # RPATH also needs to be propagated when using static linking. GHC automatically handles this for - # us when we patch the cabal file (Link options will be recored in the ghc package registry). - # - # Additional note: nixpkgs' freeglut and macOS's OpenGL implementation do not cooperate, - # so disable this on Darwin only - ${if pkgs.stdenv.isDarwin then null else "GLUT"} = addPkgconfigDepend (appendPatch super.GLUT ./patches/GLUT.patch) pkgs.freeglut; - # https://github.com/Philonous/hs-stun/pull/1 # Remove if a version > 0.1.0.1 ever gets released. stunclient = overrideCabal super.stunclient (drv: { @@ -1077,33 +735,30 @@ self: super: { ''; }); + # test suite cannot find its own "idris" binary idris = overrideCabal super.idris (drv: { # "idris" binary cannot find Idris library otherwise while building. After # installing it's completely fine though. This seems like a bug in Idris # that's related to builds with shared libraries enabled. It would be great # if someone who knows a thing or two about Idris could look into this. preBuild = "export LD_LIBRARY_PATH=$PWD/dist/build:$LD_LIBRARY_PATH"; - # https://github.com/idris-lang/Idris-dev/issues/2499 - librarySystemDepends = (drv.librarySystemDepends or []) ++ [pkgs.gmp]; - # test suite cannot find its own "idris" binary doCheck = false; }); # https://github.com/bos/math-functions/issues/25 math-functions = dontCheck super.math-functions; - # http-api-data_0.3.x requires QuickCheck > 2.9, but overriding that version - # is hard because of transitive dependencies, so we just disable tests. - http-api-data_0_3_5 = dontCheck super.http-api-data_0_3_5; + # broken test suite + servant-server = dontCheck super.servant-server; # Fix build for latest versions of servant and servant-client. - servant_0_9_1_1 = super.servant_0_9_1_1.overrideScope (self: super: { + servant_0_10 = super.servant_0_10.overrideScope (self: super: { http-api-data = self.http-api-data_0_3_5; }); - servant-client_0_9_1_1 = super.servant-client_0_9_1_1.overrideScope (self: super: { + servant-client_0_10 = super.servant-client_0_10.overrideScope (self: super: { http-api-data = self.http-api-data_0_3_5; - servant-server = self.servant-server_0_9_1_1; - servant = self.servant_0_9_1_1; + servant-server = self.servant-server_0_10; + servant = self.servant_0_10; }); # build servant docs from the repository @@ -1116,7 +771,7 @@ self: super: { owner = "haskell-servant"; repo = "servant"; rev = "v${ver}"; - sha256 = "0fynv77m7rk79pdp535c2a2bd44csgr32zb4wqavbalr7grpxg4q"; + sha256 = "09kjinnarf9q9l8irs46gcrai8bprq39n8pj43bmdv47hl38csa0"; }}/doc"; buildInputs = with pkgs.pythonPackages; [ sphinx recommonmark sphinx_rtd_theme ]; makeFlags = "html"; @@ -1134,16 +789,9 @@ self: super: { # https://github.com/plow-technologies/servant-auth/issues/20 servant-auth = dontCheck super.servant-auth; - servant-auth-server = super.servant-auth-server.overrideScope (self: super: { - jose = super.jose_0_5_0_2; - }); - # https://github.com/pontarius/pontarius-xmpp/issues/105 pontarius-xmpp = dontCheck super.pontarius-xmpp; - # Use proper store-core version. - store_0_3 = super.store_0_3.overrideScope (self: super: { store-core = self.store-core_0_3; }); - # https://github.com/bmillwood/applicative-quoters/issues/6 applicative-quoters = doJailbreak super.applicative-quoters; @@ -1161,10 +809,6 @@ self: super: { # note: the library is unmaintained, no upstream issue dataenc = doJailbreak super.dataenc; - libsystemd-journal = overrideCabal super.libsystemd-journal (old: { - librarySystemDepends = old.librarySystemDepends or [] ++ [ pkgs.systemd ]; - }); - # horribly outdated (X11 interface changed a lot) sindre = markBroken super.sindre; @@ -1181,22 +825,36 @@ self: super: { # https://github.com/josefs/STMonadTrans/issues/4 STMonadTrans = dontCheck super.STMonadTrans; - socket_0_7_0_0 = super.socket_0_7_0_0.overrideScope (self: super: { QuickCheck = self.QuickCheck_2_9_2; }); - - # requires most recent vty - brick = super.brick.overrideScope (self: super: { vty = self.vty_5_15; }); - - turtle_1_3_1 = super.turtle_1_3_1.overrideScope (self: super: { - optparse-applicative = self.optparse-applicative_0_13_0_0; - }); - # No upstream issue tracker hspec-expectations-pretty-diff = dontCheck super.hspec-expectations-pretty-diff; lentil = super.lentil.overrideScope (self: super: { pipes = self.pipes_4_3_2; - optparse-applicative = self.optparse-applicative_0_13_0_0; # https://github.com/roelvandijk/terminal-progress-bar/issues/14 terminal-progress-bar = doJailbreak self.terminal-progress-bar_0_1_1; }); + + # https://github.com/basvandijk/lifted-base/issues/34 + lifted-base = doJailbreak super.lifted-base; + + # https://github.com/aslatter/parsec/issues/68 + parsec = doJailbreak super.parsec; + + # Don't depend on chell-quickcheck, which doesn't compile due to restricting + # QuickCheck to versions ">=2.3 && <2.9". + system-filepath = dontCheck super.system-filepath; + + # https://github.com/basvandijk/case-insensitive/issues/24 + case-insensitive = doJailbreak super.case-insensitive; + + # https://github.com/hvr/uuid/issues/28 + uuid-types = doJailbreak super.uuid-types; + uuid = doJailbreak super.uuid; + + # https://github.com/hspec/hspec/issues/307 + hspec-contrib = dontCheck super.hspec-contrib; + + # https://github.com/ekmett/lens/issues/713 + lens = disableCabalFlag super.lens "test-doctests"; + } |