diff options
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-nix.nix')
-rw-r--r-- | pkgs/development/haskell-modules/configuration-nix.nix | 53 |
1 files changed, 52 insertions, 1 deletions
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index 8146674a9435..d5a2652a4b78 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -217,7 +217,10 @@ self: super: builtins.intersectAttrs super { # 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; }; + wxc = (overrideCabal super.wxc (drv: { + buildDepends = (drv.buildDepends or []) ++ [self.split]; + postInstall = "cp -v dist/build/libwxc.so.0.92.3.0 $lib/lib/libwxc.so"; + })).override { wxGTK = pkgs.wxGTK30; }; wxcore = super.wxcore.override { wxGTK = pkgs.wxGTK30; }; # Test suite wants to connect to $DISPLAY. @@ -507,4 +510,52 @@ self: super: builtins.intersectAttrs super { # Break cyclic reference that results in an infinite recursion. partial-semigroup = dontCheck super.partial-semigroup; + # Alex has some weird files in /usr/share that create a cyclic ref with + # its bin dir. + alex = hasNoBinOutput super.alex; + + # Disable separate bin outputs for these specific packages that break with it. + H = hasNoBinOutput super.H; + cryptol = hasNoBinOutput super.cryptol; + hscolour = hasNoBinOutput super.hscolour; + sproxy = hasNoBinOutput super.sproxy; + sproxy2 = hasNoBinOutput super.sproxy2; + sproxy-web = hasNoBinOutput super.sproxy-web; + juandelacosa = hasNoBinOutput super.juandelacosa; + mywatch = hasNoBinOutput super.mywatch; + sugarhaskell = hasNoBinOutput super.sugarhaskell; + zerobin = hasNoBinOutput super.zerobin; + + git-annex = overrideCabal super.git-annex (drv: { + enableSeparateBinOutput = false; + enableSeparateEtcOutput = false; + }); + + # Has extra data files which are referred to from the binary output, + # creating a store reference cycle. Putting data in separate output + # solves the problem. + happy = overrideCabal super.happy (drv: { enableSeparateDataOutput = true; }); + + # Override a number of packages with specific references to $out in their + # derivations + stack = overrideCabal super.stack (drv: { + postInstall = '' + exe=$bin/bin/stack + mkdir -p $bin/share/bash-completion/completions + $exe --bash-completion-script $exe >$bin/share/bash-completion/completions/stack + ''; + }); + Agda = overrideCabal super.Agda (drv: { + postInstall = '' + files=("$out/share/"*"-ghc-"*"/Agda-"*"/lib/prim/Agda/"{Primitive.agda,Builtin"/"*.agda}) + for f in "''${files[@]}" ; do + $bin/bin/agda $f + done + for f in "''${files[@]}" ; do + $bin/bin/agda -c --no-main $f + done + $bin/bin/agda-mode compile + ''; + }); + } |