|
1 |
| -{ pkgs }: |
| 1 | +{ pkgs, system }: |
2 | 2 | let
|
3 | 3 | versions = import ./versions.nix { inherit pkgs; };
|
4 | 4 |
|
| 5 | + # empty package, for shenanigans |
| 6 | + empty = builtins.derivation { |
| 7 | + inherit system; |
| 8 | + name = "empty"; |
| 9 | + builder = pkgs.writeShellScript "null.sh" "${pkgs.coreutils}/bin/mkdir $out"; |
| 10 | + }; |
| 11 | + |
5 | 12 | # Unix ODBC Support
|
6 | 13 | freetdsWithODBC = pkgs.freetds.override {
|
7 | 14 | odbcSupport = true;
|
|
28 | 35 | configureFlags = [ "--disable-gui" "--sysconfdir=${odbcConfiguration}" ];
|
29 | 36 | });
|
30 | 37 |
|
| 38 | + # Ensure that GHC and HLS have access to all the dynamic libraries we have kicking around. |
| 39 | + ghc = |
| 40 | + let original = pkgs.haskell.compiler.${pkgs.ghcName}; |
| 41 | + in pkgs.stdenv.mkDerivation |
| 42 | + { |
| 43 | + name = original.name; |
| 44 | + src = empty; |
| 45 | + buildInputs = [ original pkgs.makeWrapper ]; |
| 46 | + installPhase = '' |
| 47 | + mkdir -p "$out/bin" |
| 48 | + makeWrapper ${original}/bin/ghc "$out/bin/ghc" \ |
| 49 | + --set LD_LIBRARY_PATH ${pkgs.lib.strings.makeLibraryPath dynamicLibraries} \ |
| 50 | + --set DYLD_LIBRARY_PATH ${pkgs.lib.strings.makeLibraryPath dynamicLibraries} |
| 51 | + ''; |
| 52 | + }; |
| 53 | + |
| 54 | + hls = |
| 55 | + let original = pkgs.haskell.packages.${pkgs.ghcName}.haskell-language-server; |
| 56 | + in pkgs.stdenv.mkDerivation |
| 57 | + { |
| 58 | + name = original.name; |
| 59 | + src = empty; |
| 60 | + buildInputs = [ original pkgs.makeWrapper ]; |
| 61 | + installPhase = '' |
| 62 | + mkdir -p "$out/bin" |
| 63 | + makeWrapper ${original}/bin/haskell-language-server "$out/bin/haskell-language-server" \ |
| 64 | + --set LD_LIBRARY_PATH ${pkgs.lib.strings.makeLibraryPath dynamicLibraries} \ |
| 65 | + --set DYLD_LIBRARY_PATH ${pkgs.lib.strings.makeLibraryPath dynamicLibraries} |
| 66 | + makeWrapper ${original}/bin/haskell-language-server-wrapper "$out/bin/haskell-language-server-wrapper" \ |
| 67 | + --set LD_LIBRARY_PATH ${pkgs.lib.strings.makeLibraryPath dynamicLibraries} \ |
| 68 | + --set DYLD_LIBRARY_PATH ${pkgs.lib.strings.makeLibraryPath dynamicLibraries} |
| 69 | + ''; |
| 70 | + }; |
| 71 | + |
31 | 72 | baseInputs = [
|
32 | 73 | pkgs.stdenv
|
33 | 74 | pkgs.jq
|
|
56 | 97 | haskellInputs = [
|
57 | 98 | pkgs.cabal2nix
|
58 | 99 |
|
59 |
| - # The correct version of GHC. |
60 |
| - pkgs.haskell.compiler.${pkgs.ghcName} |
| 100 | + ghc |
| 101 | + hls |
61 | 102 |
|
62 | 103 | pkgs.haskell.packages.${pkgs.ghcName}.alex
|
63 | 104 | pkgs.haskell.packages.${pkgs.ghcName}.apply-refact
|
64 | 105 | (versions.ensureVersion pkgs.haskell.packages.${pkgs.ghcName}.cabal-install)
|
65 | 106 | pkgs.haskell.packages.${pkgs.ghcName}.ghcid
|
66 | 107 | pkgs.haskell.packages.${pkgs.ghcName}.happy
|
67 |
| - pkgs.haskell.packages.${pkgs.ghcName}.haskell-language-server |
68 | 108 | (versions.ensureVersion pkgs.haskell.packages.${pkgs.ghcName}.hlint)
|
69 | 109 | pkgs.haskell.packages.${pkgs.ghcName}.hoogle
|
70 | 110 | pkgs.haskell.packages.${pkgs.ghcName}.hspec-discover
|
|
0 commit comments