|
22 | 22 | flake = false; |
23 | 23 | }; |
24 | 24 |
|
25 | | - lsp-source = { |
26 | | - url = "https://hackage.haskell.org/package/lsp-1.4.0.0/lsp-1.4.0.0.tar.gz"; |
27 | | - flake = false; |
28 | | - }; |
29 | | - lsp-types-source = { |
30 | | - url = "https://hackage.haskell.org/package/lsp-types-1.4.0.0/lsp-types-1.4.0.0.tar.gz"; |
31 | | - flake = false; |
32 | | - }; |
33 | | - lsp-test-source = { |
34 | | - url = "https://hackage.haskell.org/package/lsp-test-0.14.0.2/lsp-test-0.14.0.2.tar.gz"; |
35 | | - flake = false; |
36 | | - }; |
| 25 | + hackage-sources.url = "path:./flake_hackage"; |
37 | 26 | }; |
38 | 27 | outputs = |
39 | | - { self, nixpkgs, flake-compat, flake-utils, pre-commit-hooks, gitignore, lsp-source, lsp-types-source, lsp-test-source }: |
| 28 | + { self, nixpkgs, flake-compat, flake-utils, pre-commit-hooks, gitignore, hackage-sources }: |
40 | 29 | { |
41 | 30 | overlay = final: prev: |
42 | 31 | with prev; |
43 | 32 | let |
| 33 | + hackage = hackage-sources.inputs; |
| 34 | + |
44 | 35 | haskellOverrides = hself: hsuper: { |
45 | 36 | # we override mkDerivation here to apply the following |
46 | 37 | # tweak to each haskell package: |
|
88 | 79 | # We need an older version |
89 | 80 | hiedb = hself.hiedb_0_4_1_0; |
90 | 81 |
|
91 | | - lsp = hsuper.callCabal2nix "lsp" lsp-source {}; |
92 | | - lsp-types = hsuper.callCabal2nix "lsp-types" lsp-types-source {}; |
93 | | - lsp-test = hsuper.callCabal2nix "lsp-test" lsp-test-source {}; |
| 82 | + lsp = hsuper.callCabal2nix "lsp" hackage.lsp {}; |
| 83 | + lsp-types = hsuper.callCabal2nix "lsp-types" hackage.lsp-types {}; |
| 84 | + lsp-test = hsuper.callCabal2nix "lsp-test" hackage.lsp-test {}; |
94 | 85 |
|
95 | 86 | implicit-hie-cradle = hself.callCabal2nix "implicit-hie-cradle" |
96 | 87 | (builtins.fetchTarball { |
|
144 | 135 | } // (flake-utils.lib.eachSystem [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]) |
145 | 136 | (system: |
146 | 137 | let |
| 138 | + hackage = hackage-sources.inputs; |
147 | 139 | pkgs = import nixpkgs { |
148 | 140 | inherit system; |
149 | 141 | overlays = [ self.overlay ]; |
|
182 | 174 | }; |
183 | 175 |
|
184 | 176 | ghc901Config = (import ./configuration-ghc-901.nix) { inherit pkgs; }; |
| 177 | + ghc921Config = (import ./configuration-ghc-921.nix) { inherit pkgs hackage; }; |
185 | 178 |
|
186 | 179 | # GHC versions |
187 | 180 | ghcDefault = pkgs.hlsHpkgs ("ghc" |
|
190 | 183 | ghc884 = pkgs.hlsHpkgs "ghc884"; |
191 | 184 | ghc8107 = pkgs.hlsHpkgs "ghc8107"; |
192 | 185 | ghc901 = ghc901Config.tweakHpkgs (pkgs.hlsHpkgs "ghc901"); |
| 186 | + ghc921 = ghc921Config.tweakHpkgs (pkgs.hlsHpkgs "ghc921"); |
193 | 187 |
|
194 | 188 | # For markdown support |
195 | 189 | myst-parser = pkgs.python3Packages.callPackage ./myst-parser.nix {}; |
|
224 | 218 | map (name: p.${name}) (attrNames |
225 | 219 | (if hpkgs.ghc.version == "9.0.1" then |
226 | 220 | removeAttrs hlsSources ghc901Config.disabledPlugins |
| 221 | + else if hpkgs.ghc.version == "9.2.1" then |
| 222 | + removeAttrs hlsSources ghc921Config.disabledPlugins |
227 | 223 | else |
228 | 224 | hlsSources)); |
229 | 225 | buildInputs = [ gmp zlib ncurses capstone tracy (gen-hls-changelogs hpkgs) pythonWithPackages ] |
|
266 | 262 | haskell-language-server-884-dev = mkDevShell ghc884; |
267 | 263 | haskell-language-server-8107-dev = mkDevShell ghc8107; |
268 | 264 | haskell-language-server-901-dev = mkDevShell ghc901; |
| 265 | + haskell-language-server-921-dev = mkDevShell ghc921; |
269 | 266 |
|
270 | 267 | # hls package |
271 | 268 | haskell-language-server = mkExe ghcDefault; |
272 | 269 | haskell-language-server-884 = mkExe ghc884; |
273 | 270 | haskell-language-server-8107 = mkExe ghc8107; |
274 | 271 | haskell-language-server-901 = mkExe ghc901; |
| 272 | + haskell-language-server-921 = mkExe ghc921; |
275 | 273 |
|
276 | 274 | # docs |
277 | 275 | docs = docs; |
|
0 commit comments