nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 buildDunePackage,
3 stdlib-shims,
4 ppx_yojson_conv_lib,
5 ocaml-syntax-shims,
6 yojson,
7 result,
8 fetchurl,
9 lib,
10 ocaml,
11 version ?
12 if lib.versionAtLeast ocaml.version "5.4" then
13 "1.25.0"
14 else if lib.versionAtLeast ocaml.version "5.3" then
15 "1.23.1"
16 else if lib.versionAtLeast ocaml.version "5.2" then
17 "1.21.0"
18 else if lib.versionAtLeast ocaml.version "4.14" then
19 "1.18.0"
20 else if lib.versionAtLeast ocaml.version "4.13" then
21 "1.10.5"
22 else if lib.versionAtLeast ocaml.version "4.12" then
23 "1.9.0"
24 else
25 "1.4.1",
26}:
27
28let
29 params =
30 {
31 "1.25.0" = {
32 name = "lsp";
33 minimalOCamlVersion = "5.3";
34 sha256 = "sha256-4xXSvvP4lwmtJXCEaSeZblT/ja/OJRGIgWq5fO8h8CA=";
35 };
36 "1.24.0" = {
37 name = "lsp";
38 minimalOCamlVersion = "5.3";
39 sha256 = "sha256-TVoaIVf2EvbALY+DjZferKX4GyOt08XOpcts7Ot7N1c=";
40 };
41 "1.23.1" = {
42 name = "lsp";
43 minimalOCamlVersion = "5.3";
44 sha256 = "sha256-x0fjlAJmOeogRGfoWd6T6o6ZWNv0T3gNyyoYl8VtdXE=";
45 };
46 "1.22.0" = {
47 name = "lsp";
48 minimalOCamlVersion = "5.2";
49 sha256 = "sha256-UZ3DV30V3CIQ3vpYBIGnQ1eRGNUGk7aRuxDLyCA/tYE=";
50 };
51 "1.21.0" = {
52 name = "lsp";
53 minimalOCamlVersion = "5.2";
54 sha256 = "sha256-Z4cDN/8j0NK6Q3dL+1io/eBJd+o32k0txQDtC1fO9xc=";
55 };
56 "1.18.0" = {
57 name = "lsp";
58 minimalOCamlVersion = "4.14";
59 sha256 = "sha256-tZ2kPM/S/9J3yeX2laDjnHLA144b8svy9iwae32nXwM=";
60 };
61 "1.17.0" = {
62 name = "lsp";
63 minimalOCamlVersion = "4.14";
64 sha256 = "sha256-j7i71xfu/SYItNg0WBBbZg4N46ETTcj8IWrmWdTRlgA=";
65 };
66 "1.14.2" = {
67 name = "lsp";
68 minimalOCamlVersion = "4.14";
69 sha256 = "sha256-1R+HYaGbPLGDs5DMN3jmnrZFMhMmPUHgF+s+yNzIVJQ=";
70 };
71 "1.10.5" = {
72 name = "jsonrpc";
73 minimalOCamlVersion = "4.13";
74 sha256 = "sha256-TeJS6t1ruWhWPvWNatrnSUWI6T17XKiosHLYizBDDcw=";
75 };
76 "1.9.0" = {
77 name = "jsonrpc";
78 minimalOCamlVersion = "4.12";
79 sha256 = "sha256:1ac44n6g3rf84gvhcca545avgf9vpkwkkkm0s8ipshfhp4g4jikh";
80 };
81 "1.4.1" = {
82 name = "jsonrpc";
83 minimalOCamlVersion = "4.06";
84 sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f";
85 };
86 }
87 ."${version}";
88in
89
90buildDunePackage {
91 pname = "jsonrpc";
92 inherit version;
93 src = fetchurl {
94 url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/${params.name}-${version}.tbz";
95 inherit (params) sha256;
96 };
97
98 inherit (params) minimalOCamlVersion;
99
100 buildInputs =
101 if lib.versionAtLeast version "1.7.0" then
102 [ ]
103 else
104 [
105 yojson
106 stdlib-shims
107 ocaml-syntax-shims
108 ];
109
110 propagatedBuildInputs =
111 if lib.versionAtLeast version "1.23.1" then
112 [ yojson ]
113 else if lib.versionAtLeast version "1.7.0" then
114 [ ]
115 else
116 [
117 ppx_yojson_conv_lib
118 result
119 ];
120
121 meta = {
122 description = "Jsonrpc protocol implementation in OCaml";
123 license = lib.licenses.isc;
124 platforms = lib.platforms.unix;
125 maintainers = [ ];
126 };
127}