Revert "Revert "Merge pull request #27209 from nc6/nc/haskell-multiple-out""

This reverts commit 89f5d52cf4.
This commit is contained in:
Nicholas Clarke
2017-11-27 16:05:22 +00:00
parent 946ae87414
commit d90165c7db
13 changed files with 171 additions and 36 deletions
@@ -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
'';
});
}