haskell-modules: split off nix-specific overrides and common ones
This allows the nix-specific overrides to be reused for other purposes, with different haskell package sets, etc.
This commit is contained in:
parent
5a0368b87c
commit
57507f08e8
@ -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 }:
|
{ pkgs }:
|
||||||
|
|
||||||
with import ./lib.nix { inherit pkgs; };
|
with import ./lib.nix { inherit pkgs; };
|
||||||
@ -15,9 +26,6 @@ self: super: {
|
|||||||
# Link statically to avoid runtime dependency on GHC.
|
# Link statically to avoid runtime dependency on GHC.
|
||||||
jailbreak-cabal = (disableSharedExecutables super.jailbreak-cabal).override { Cabal = self.Cabal_1_20_0_4; };
|
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
|
# enable using a local hoogle with extra packagages in the database
|
||||||
# nix-shell -p "haskellPackages.hoogleLocal (with haskellPackages; [ mtl lens ])"
|
# nix-shell -p "haskellPackages.hoogleLocal (with haskellPackages; [ mtl lens ])"
|
||||||
# $ hoogle server
|
# $ hoogle server
|
||||||
@ -35,9 +43,6 @@ self: super: {
|
|||||||
statistics = dontCheck super.statistics;
|
statistics = dontCheck super.statistics;
|
||||||
c2hs = dontCheck super.c2hs;
|
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
|
# 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;
|
Lazy-Pbkdf2 = if pkgs.stdenv.isi686 then dontCheck super.Lazy-Pbkdf2 else super.Lazy-Pbkdf2;
|
||||||
|
|
||||||
@ -66,49 +71,11 @@ self: super: {
|
|||||||
hinotify = if pkgs.stdenv.isLinux then self.hinotify else self.fsnotify;
|
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
|
# https://github.com/froozen/kademlia/issues/2
|
||||||
kademlia = dontCheck super.kademlia;
|
kademlia = dontCheck super.kademlia;
|
||||||
|
|
||||||
# Won't find it's header files without help.
|
hzk = dontCheck super.hzk;
|
||||||
sfml-audio = appendConfigureFlag super.sfml-audio "--extra-include-dirs=${pkgs.openal}/include/AL";
|
haskakafka = dontCheck super.haskakafka;
|
||||||
|
|
||||||
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;
|
|
||||||
});
|
|
||||||
|
|
||||||
# Depends on broken "lss" package.
|
# Depends on broken "lss" package.
|
||||||
snaplet-lss = dontDistribute super.snaplet-lss;
|
snaplet-lss = dontDistribute super.snaplet-lss;
|
||||||
@ -127,9 +94,6 @@ self: super: {
|
|||||||
# Depends on broken "hails" package.
|
# Depends on broken "hails" package.
|
||||||
hails-bin = dontDistribute super.hails-bin;
|
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.
|
# Switch levmar build to openblas.
|
||||||
bindings-levmar = overrideCabal super.bindings-levmar (drv: {
|
bindings-levmar = overrideCabal super.bindings-levmar (drv: {
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
@ -192,11 +156,6 @@ self: super: {
|
|||||||
# https://github.com/jaspervdj/hakyll/issues/491
|
# https://github.com/jaspervdj/hakyll/issues/491
|
||||||
else dontCheck super.hakyll;
|
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
|
# cabal2nix likes to generate dependencies on hinotify when hfsevents is really required
|
||||||
# on darwin: https://github.com/NixOS/cabal2nix/issues/146.
|
# on darwin: https://github.com/NixOS/cabal2nix/issues/146.
|
||||||
hinotify = if pkgs.stdenv.isDarwin then self.hfsevents else super.hinotify;
|
hinotify = if pkgs.stdenv.isDarwin then self.hfsevents else super.hinotify;
|
||||||
@ -208,20 +167,6 @@ self: super: {
|
|||||||
then addBuildDepend (dontCheck super.fsnotify) pkgs.darwin.apple_sdk.frameworks.Cocoa
|
then addBuildDepend (dontCheck super.fsnotify) pkgs.darwin.apple_sdk.frameworks.Cocoa
|
||||||
else dontCheck super.fsnotify;
|
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
|
double-conversion = if !pkgs.stdenv.isDarwin
|
||||||
then addExtraLibrary super.double-conversion pkgs.stdenv.cc.cc.lib
|
then addExtraLibrary super.double-conversion pkgs.stdenv.cc.cc.lib
|
||||||
else addExtraLibrary (overrideCabal super.double-conversion (drv:
|
else addExtraLibrary (overrideCabal super.double-conversion (drv:
|
||||||
@ -243,29 +188,9 @@ self: super: {
|
|||||||
# tests don't compile for some odd reason
|
# tests don't compile for some odd reason
|
||||||
jwt = dontCheck super.jwt;
|
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
|
# https://github.com/mvoidex/hsdev/issues/11
|
||||||
hsdev = dontHaddock super.hsdev;
|
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.
|
# Upstream notified by e-mail.
|
||||||
permutation = dontCheck super.permutation;
|
permutation = dontCheck super.permutation;
|
||||||
|
|
||||||
@ -307,38 +232,6 @@ self: super: {
|
|||||||
HerbiePlugin = dontCheck super.HerbiePlugin;
|
HerbiePlugin = dontCheck super.HerbiePlugin;
|
||||||
wai-cors = dontCheck super.wai-cors;
|
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
|
# https://github.com/NICTA/digit/issues/3
|
||||||
digit = dontCheck super.digit;
|
digit = dontCheck super.digit;
|
||||||
|
|
||||||
@ -348,9 +241,6 @@ self: super: {
|
|||||||
# https://github.com/ekmett/structures/issues/3
|
# https://github.com/ekmett/structures/issues/3
|
||||||
structures = dontCheck super.structures;
|
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.
|
# Disable test suites to fix the build.
|
||||||
acme-year = dontCheck super.acme-year; # http://hydra.cryp.to/build/497858/log/raw
|
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
|
aeson-lens = dontCheck super.aeson-lens; # http://hydra.cryp.to/build/496769/log/raw
|
||||||
@ -426,8 +316,6 @@ self: super: {
|
|||||||
HTF = dontCheck super.HTF;
|
HTF = dontCheck super.HTF;
|
||||||
htsn = dontCheck super.htsn;
|
htsn = dontCheck super.htsn;
|
||||||
htsn-import = dontCheck super.htsn-import;
|
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;
|
ihaskell = dontCheck super.ihaskell;
|
||||||
influxdb = dontCheck super.influxdb;
|
influxdb = dontCheck super.influxdb;
|
||||||
itanium-abi = dontCheck super.itanium-abi;
|
itanium-abi = dontCheck super.itanium-abi;
|
||||||
@ -492,9 +380,6 @@ self: super: {
|
|||||||
snap-core = dontCheck super.snap-core;
|
snap-core = dontCheck super.snap-core;
|
||||||
sourcemap = dontCheck super.sourcemap;
|
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.
|
# These test suites run for ages, even on a fast machine. This is nuts.
|
||||||
Random123 = dontCheck super.Random123;
|
Random123 = dontCheck super.Random123;
|
||||||
systemd = dontCheck super.systemd;
|
systemd = dontCheck super.systemd;
|
||||||
@ -505,12 +390,6 @@ self: super: {
|
|||||||
# https://github.com/bos/snappy/issues/1
|
# https://github.com/bos/snappy/issues/1
|
||||||
snappy = dontCheck super.snappy;
|
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
|
# https://ghc.haskell.org/trac/ghc/ticket/9625
|
||||||
vty = dontCheck super.vty;
|
vty = dontCheck super.vty;
|
||||||
vty_5_15 = dontCheck super.vty_5_15;
|
vty_5_15 = dontCheck super.vty_5_15;
|
||||||
@ -530,18 +409,12 @@ self: super: {
|
|||||||
# https://github.com/pixbi/duplo/issues/25
|
# https://github.com/pixbi/duplo/issues/25
|
||||||
duplo = dontCheck super.duplo;
|
duplo = dontCheck super.duplo;
|
||||||
|
|
||||||
# Nix-specific workaround
|
|
||||||
xmonad = appendPatch (dontCheck super.xmonad) ./patches/xmonad-nix.patch;
|
|
||||||
|
|
||||||
# https://github.com/evanrinehart/mikmod/issues/1
|
# https://github.com/evanrinehart/mikmod/issues/1
|
||||||
mikmod = addExtraLibrary super.mikmod pkgs.libmikmod;
|
mikmod = addExtraLibrary super.mikmod pkgs.libmikmod;
|
||||||
|
|
||||||
# https://github.com/basvandijk/threads/issues/10
|
# https://github.com/basvandijk/threads/issues/10
|
||||||
threads = dontCheck super.threads;
|
threads = dontCheck super.threads;
|
||||||
|
|
||||||
# https://github.com/ucsd-progsys/liquid-fixpoint/issues/44
|
|
||||||
liquid-fixpoint = overrideCabal super.liquid-fixpoint (drv: { preConfigure = "patchShebangs ."; });
|
|
||||||
|
|
||||||
# Missing module.
|
# Missing module.
|
||||||
rematch = dontCheck super.rematch; # https://github.com/tcrayford/rematch/issues/5
|
rematch = dontCheck super.rematch; # https://github.com/tcrayford/rematch/issues/5
|
||||||
rematch-text = dontCheck super.rematch-text; # https://github.com/tcrayford/rematch/issues/6
|
rematch-text = dontCheck super.rematch-text; # https://github.com/tcrayford/rematch/issues/6
|
||||||
@ -561,11 +434,6 @@ self: super: {
|
|||||||
# https://github.com/vincenthz/hs-asn1/issues/12
|
# https://github.com/vincenthz/hs-asn1/issues/12
|
||||||
asn1-encoding = dontCheck super.asn1-encoding;
|
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.
|
# Depends on QuickCheck 1.x.
|
||||||
HaVSA = super.HaVSA.override { QuickCheck = self.QuickCheck_1_2_0_1; };
|
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; };
|
test-framework-quickcheck = super.test-framework-quickcheck.override { QuickCheck = self.QuickCheck_1_2_0_1; };
|
||||||
@ -587,9 +455,6 @@ self: super: {
|
|||||||
# https://github.com/alephcloud/hs-configuration-tools/issues/40
|
# https://github.com/alephcloud/hs-configuration-tools/issues/40
|
||||||
configuration-tools = dontCheck super.configuration-tools;
|
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)
|
# HsColour: Language/Unlambda.hs: hGetContents: invalid argument (invalid byte sequence)
|
||||||
unlambda = dontHyperlinkSource super.unlambda;
|
unlambda = dontHyperlinkSource super.unlambda;
|
||||||
|
|
||||||
@ -607,10 +472,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";
|
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
|
# Requires bower-json >= 1.0.0.1 && < 1.1
|
||||||
purescript_0_10_5 = super.purescript_0_10_5.overrideScope (self: super: {
|
purescript_0_10_5 = super.purescript_0_10_5.overrideScope (self: super: {
|
||||||
bower-json = self.bower-json_1_0_0_1;
|
bower-json = self.bower-json_1_0_0_1;
|
||||||
@ -636,50 +497,6 @@ self: super: {
|
|||||||
# https://github.com/anton-k/csound-expression-dynamic/issues/1
|
# https://github.com/anton-k/csound-expression-dynamic/issues/1
|
||||||
csound-expression-dynamic = dontHaddock super.csound-expression-dynamic;
|
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
|
|
||||||
'';
|
|
||||||
});
|
|
||||||
|
|
||||||
# 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:
|
# Packages of the diagrams ecosystem that require:
|
||||||
# diagrams-core ==1.4.*
|
# diagrams-core ==1.4.*
|
||||||
# diagrams-lib ==1.4.*
|
# diagrams-lib ==1.4.*
|
||||||
@ -715,9 +532,6 @@ self: super: {
|
|||||||
optparse-applicative = self.optparse-applicative_0_13_0_0;
|
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;
|
|
||||||
|
|
||||||
# Test suite won't compile against tasty-hunit 0.9.x.
|
# Test suite won't compile against tasty-hunit 0.9.x.
|
||||||
zlib = dontCheck super.zlib;
|
zlib = dontCheck super.zlib;
|
||||||
|
|
||||||
@ -770,14 +584,6 @@ self: super: {
|
|||||||
# https://github.com/yesodweb/serversession/issues/1
|
# https://github.com/yesodweb/serversession/issues/1
|
||||||
serversession = dontCheck super.serversession;
|
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.
|
# Hydra no longer allows building texlive packages.
|
||||||
lhs2tex = dontDistribute super.lhs2tex;
|
lhs2tex = dontDistribute super.lhs2tex;
|
||||||
|
|
||||||
@ -793,16 +599,6 @@ self: super: {
|
|||||||
# https://github.com/kazu-yamamoto/logger/issues/42
|
# https://github.com/kazu-yamamoto/logger/issues/42
|
||||||
logger = dontCheck super.logger;
|
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
|
# https://github.com/qnikst/imagemagick/issues/34
|
||||||
imagemagick = dontCheck super.imagemagick;
|
imagemagick = dontCheck super.imagemagick;
|
||||||
|
|
||||||
@ -892,40 +688,6 @@ self: super: {
|
|||||||
# https://github.com/bos/configurator/issues/22
|
# https://github.com/bos/configurator/issues/22
|
||||||
configurator = dontCheck super.configurator;
|
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
|
# https://github.com/basvandijk/concurrent-extra/issues/12
|
||||||
concurrent-extra = dontCheck super.concurrent-extra;
|
concurrent-extra = dontCheck super.concurrent-extra;
|
||||||
|
|
||||||
@ -941,16 +703,6 @@ self: super: {
|
|||||||
# https://github.com/goldfirere/singletons/issues/122
|
# https://github.com/goldfirere/singletons/issues/122
|
||||||
singletons = dontCheck super.singletons;
|
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
|
# https://github.com/guillaume-nargeot/hpc-coveralls/issues/52
|
||||||
hpc-coveralls = disableSharedExecutables super.hpc-coveralls;
|
hpc-coveralls = disableSharedExecutables super.hpc-coveralls;
|
||||||
|
|
||||||
@ -963,72 +715,20 @@ self: super: {
|
|||||||
# https://github.com/sol/hpack/issues/53
|
# https://github.com/sol/hpack/issues/53
|
||||||
hpack = dontCheck super.hpack;
|
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
|
# https://github.com/deech/fltkhs/issues/16
|
||||||
fltkhs = overrideCabal super.fltkhs (drv: {
|
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
|
broken = true; # linking fails because the build doesn't pull in the mesa libraries
|
||||||
});
|
});
|
||||||
fltkhs-fluid-examples = dontDistribute super.fltkhs-fluid-examples;
|
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.
|
# We get lots of strange compiler errors during the test suite run.
|
||||||
jsaddle = dontCheck super.jsaddle;
|
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 stuff
|
||||||
haste-Cabal = markBroken (self.callPackage ../tools/haskell/haste/haste-Cabal.nix {});
|
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-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; });
|
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 is a new build driver a la Stack that's not yet available from Hackage.
|
||||||
tinc = self.callPackage ../tools/haskell/tinc {};
|
tinc = self.callPackage ../tools/haskell/tinc {};
|
||||||
|
|
||||||
@ -1079,18 +779,6 @@ self: super: {
|
|||||||
# Test suite fails a QuickCheck property.
|
# Test suite fails a QuickCheck property.
|
||||||
optparse-applicative_0_13_0_0 = dontCheck super.optparse-applicative_0_13_0_0;
|
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
|
# https://github.com/Philonous/hs-stun/pull/1
|
||||||
# Remove if a version > 0.1.0.1 ever gets released.
|
# Remove if a version > 0.1.0.1 ever gets released.
|
||||||
stunclient = overrideCabal super.stunclient (drv: {
|
stunclient = overrideCabal super.stunclient (drv: {
|
||||||
@ -1099,15 +787,13 @@ self: super: {
|
|||||||
'';
|
'';
|
||||||
});
|
});
|
||||||
|
|
||||||
|
# test suite cannot find its own "idris" binary
|
||||||
idris = overrideCabal super.idris (drv: {
|
idris = overrideCabal super.idris (drv: {
|
||||||
# "idris" binary cannot find Idris library otherwise while building. After
|
# "idris" binary cannot find Idris library otherwise while building. After
|
||||||
# installing it's completely fine though. This seems like a bug in Idris
|
# 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
|
# 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.
|
# 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";
|
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;
|
doCheck = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -1183,10 +869,6 @@ self: super: {
|
|||||||
# note: the library is unmaintained, no upstream issue
|
# note: the library is unmaintained, no upstream issue
|
||||||
dataenc = doJailbreak super.dataenc;
|
dataenc = doJailbreak super.dataenc;
|
||||||
|
|
||||||
libsystemd-journal = overrideCabal super.libsystemd-journal (old: {
|
|
||||||
librarySystemDepends = old.librarySystemDepends or [] ++ [ pkgs.systemd ];
|
|
||||||
});
|
|
||||||
|
|
||||||
# horribly outdated (X11 interface changed a lot)
|
# horribly outdated (X11 interface changed a lot)
|
||||||
sindre = markBroken super.sindre;
|
sindre = markBroken super.sindre;
|
||||||
|
|
||||||
|
386
pkgs/development/haskell-modules/configuration-nix.nix
Normal file
386
pkgs/development/haskell-modules/configuration-nix.nix
Normal file
@ -0,0 +1,386 @@
|
|||||||
|
# NIX-SPECIFIC OVERRIDES/PATCHES FOR HASKELL PACKAGES
|
||||||
|
#
|
||||||
|
# This file contains overrides which are needed because of Nix. For example,
|
||||||
|
# some packages may need help finding the location of native libraries. In
|
||||||
|
# general, overrides in this file are (mostly) due to one of the following reasons:
|
||||||
|
#
|
||||||
|
# * packages that hard code the location of native libraries, so they need to be patched/
|
||||||
|
# supplied the patch explicitly
|
||||||
|
# * passing native libraries that are not detected correctly by cabal2nix
|
||||||
|
# * test suites that fail due to some features not available in the nix sandbox
|
||||||
|
# (networking being a common one)
|
||||||
|
#
|
||||||
|
# In general, this file should *not* contain overrides that fix build failures that could
|
||||||
|
# also occur on standard, FHS-compliant non-Nix systems. For example, if tests have a compile
|
||||||
|
# error, that is a bug in the package, and that failure has nothing to do with Nix.
|
||||||
|
#
|
||||||
|
# Common examples which should *not* be a part of this file:
|
||||||
|
#
|
||||||
|
# * overriding a specific version of a haskell library because some package fails
|
||||||
|
# to build with a newer version. Such overrides have nothing to do with Nix itself,
|
||||||
|
# and they would also be neccessary outside of Nix if you use the same set of
|
||||||
|
# package versions.
|
||||||
|
# * disabling tests that fail due to missing files in the tarball or compile errors
|
||||||
|
# * disabling tests that require too much memory
|
||||||
|
# * enabling/disabling certain features in packages
|
||||||
|
#
|
||||||
|
# If you have an override of this kind, see configuration-common.nix instead.
|
||||||
|
{ pkgs }:
|
||||||
|
|
||||||
|
with import ./lib.nix { inherit pkgs; };
|
||||||
|
|
||||||
|
self: super: builtins.intersectAttrs super {
|
||||||
|
|
||||||
|
# Apply NixOS-specific patches.
|
||||||
|
ghc-paths = appendPatch super.ghc-paths ./patches/ghc-paths-nix.patch;
|
||||||
|
|
||||||
|
# fix errors caused by hardening flags
|
||||||
|
epanet-haskell = disableHardening super.epanet-haskell ["format"];
|
||||||
|
|
||||||
|
# Link the proper version.
|
||||||
|
zeromq4-haskell = super.zeromq4-haskell.override { zeromq = pkgs.zeromq4; };
|
||||||
|
|
||||||
|
# Use the default version of mysql to build this package (which is actually mariadb).
|
||||||
|
# test phase requires networking
|
||||||
|
mysql = dontCheck (super.mysql.override { mysql = pkgs.mysql.lib; });
|
||||||
|
|
||||||
|
# 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";
|
||||||
|
|
||||||
|
# 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";
|
||||||
|
});
|
||||||
|
|
||||||
|
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";
|
||||||
|
});
|
||||||
|
|
||||||
|
# Foreign dependency name clashes with another Haskell package.
|
||||||
|
libarchive-conduit = super.libarchive-conduit.override { archive = pkgs.libarchive; };
|
||||||
|
|
||||||
|
# Fix Darwin build.
|
||||||
|
halive = if pkgs.stdenv.isDarwin
|
||||||
|
then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit
|
||||||
|
else super.halive;
|
||||||
|
|
||||||
|
# Heist's test suite requires system pandoc
|
||||||
|
heist = overrideCabal super.heist (drv: {
|
||||||
|
testToolDepends = [pkgs.pandoc];
|
||||||
|
});
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
|
||||||
|
# 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; };
|
||||||
|
|
||||||
|
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";
|
||||||
|
});
|
||||||
|
|
||||||
|
# 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
|
||||||
|
http-client = dontCheck super.http-client;
|
||||||
|
http-client-openssl = dontCheck super.http-client-openssl;
|
||||||
|
http-client-tls = dontCheck super.http-client-tls;
|
||||||
|
http-conduit = dontCheck super.http-conduit;
|
||||||
|
transient-universe = dontCheck super.transient-universe;
|
||||||
|
|
||||||
|
# Tries to mess with extended POSIX attributes, but can't in our chroot environment.
|
||||||
|
xattr = dontCheck super.xattr;
|
||||||
|
|
||||||
|
# Needs access to locale data, but looks for it in the wrong place.
|
||||||
|
scholdoc-citeproc = dontCheck super.scholdoc-citeproc;
|
||||||
|
|
||||||
|
# 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"; });
|
||||||
|
|
||||||
|
# Nix-specific workaround
|
||||||
|
xmonad = appendPatch (dontCheck super.xmonad) ./patches/xmonad-nix.patch;
|
||||||
|
|
||||||
|
# https://github.com/ucsd-progsys/liquid-fixpoint/issues/44
|
||||||
|
liquid-fixpoint = overrideCabal super.liquid-fixpoint (drv: { preConfigure = "patchShebangs ."; });
|
||||||
|
|
||||||
|
# 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; };
|
||||||
|
|
||||||
|
# Test suite wants to connect to $DISPLAY.
|
||||||
|
hsqml = dontCheck (addExtraLibrary (super.hsqml.override { qt5 = pkgs.qt5Full; }) pkgs.mesa);
|
||||||
|
|
||||||
|
# Tests attempt to use NPM to install from the network into
|
||||||
|
# /homeless-shelter. Disabled.
|
||||||
|
purescript = dontCheck super.purescript;
|
||||||
|
|
||||||
|
# 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
|
||||||
|
'';
|
||||||
|
});
|
||||||
|
|
||||||
|
# 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
|
||||||
|
'';
|
||||||
|
}));
|
||||||
|
|
||||||
|
# Patch to consider NIX_GHC just like xmonad does
|
||||||
|
dyre = appendPatch super.dyre ./patches/dyre-nix.patch;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
|
||||||
|
# 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" '';
|
||||||
|
});
|
||||||
|
|
||||||
|
# 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';
|
||||||
|
|
||||||
|
# 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];
|
||||||
|
});
|
||||||
|
|
||||||
|
# https://github.com/skogsbaer/hscurses/pull/26
|
||||||
|
hscurses = overrideCabal super.hscurses (drv: {
|
||||||
|
librarySystemDepends = (drv.librarySystemDepends or []) ++ [ pkgs.ncurses ];
|
||||||
|
});
|
||||||
|
|
||||||
|
# Looks like Avahi provides the missing library
|
||||||
|
dnssd = super.dnssd.override { dns_sd = pkgs.avahi.override { withLibdnssdCompat = true; }; };
|
||||||
|
|
||||||
|
# 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 ];
|
||||||
|
});
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
|
||||||
|
idris = overrideCabal super.idris (drv: {
|
||||||
|
# https://github.com/idris-lang/Idris-dev/issues/2499
|
||||||
|
librarySystemDepends = (drv.librarySystemDepends or []) ++ [pkgs.gmp];
|
||||||
|
});
|
||||||
|
|
||||||
|
libsystemd-journal = overrideCabal super.libsystemd-journal (old: {
|
||||||
|
librarySystemDepends = old.librarySystemDepends or [] ++ [ pkgs.systemd ];
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
@ -105,6 +105,7 @@ let
|
|||||||
};
|
};
|
||||||
|
|
||||||
commonConfiguration = import ./configuration-common.nix { inherit pkgs; };
|
commonConfiguration = import ./configuration-common.nix { inherit pkgs; };
|
||||||
|
nixConfiguration = import ./configuration-nix.nix { inherit pkgs; };
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
@ -112,4 +113,5 @@ in
|
|||||||
(extends overrides
|
(extends overrides
|
||||||
(extends packageSetConfig
|
(extends packageSetConfig
|
||||||
(extends compilerConfig
|
(extends compilerConfig
|
||||||
(extends commonConfiguration haskellPackages))))
|
(extends commonConfiguration
|
||||||
|
(extends nixConfiguration haskellPackages)))))
|
||||||
|
Loading…
Reference in New Issue
Block a user