about summary refs log tree commit diff
path: root/pkgs/development/haskell-modules/configuration-nix.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/haskell-modules/configuration-nix.nix')
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix53
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
+    '';
+  });
+
 }