1{ lib, writeText, haskellPackages, cabal-install }:
2
3(haskellPackages.shellFor {
4 packages = p: [ p.constraints p.linear ];
5 nativeBuildInputs = [ cabal-install ];
6 phases = [ "unpackPhase" "buildPhase" "installPhase" ];
7 unpackPhase = ''
8 sourceRoot=$(pwd)/scratch
9 mkdir -p "$sourceRoot"
10 cd "$sourceRoot"
11 tar -xf ${haskellPackages.constraints.src}
12 tar -xf ${haskellPackages.linear.src}
13 cp ${writeText "cabal.project" "packages: constraints* linear*"} cabal.project
14 '';
15 buildPhase = ''
16 export HOME=$(mktemp -d)
17 mkdir -p $HOME/.cabal
18 touch $HOME/.cabal/config
19 cabal v2-build --offline --verbose constraints linear --ghc-options="-O0 -j$NIX_BUILD_CORES"
20 '';
21 installPhase = ''
22 touch $out
23 '';
24}).overrideAttrs (oldAttrs: {
25 meta =
26 let
27 oldMeta = oldAttrs.meta or {};
28 oldMaintainers = oldMeta.maintainers or [];
29 additionalMaintainers = with lib.maintainers; [ cdepillabout ];
30 allMaintainers = oldMaintainers ++ additionalMaintainers;
31 in
32 oldMeta // {
33 maintainers = allMaintainers;
34 inherit (cabal-install.meta) platforms;
35 };
36})