Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
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.3" then 13 "1.23.0" 14 else if lib.versionAtLeast ocaml.version "5.2" then 15 "1.21.0" 16 else if lib.versionAtLeast ocaml.version "4.14" then 17 "1.18.0" 18 else if lib.versionAtLeast ocaml.version "4.13" then 19 "1.10.5" 20 else if lib.versionAtLeast ocaml.version "4.12" then 21 "1.9.0" 22 else 23 "1.4.1", 24}: 25 26let 27 params = 28 { 29 "1.23.0" = { 30 name = "lsp"; 31 minimalOCamlVersion = "5.3"; 32 sha256 = "sha256-fyvQI7VKgOrOFihtKIkcE2B2iUYFLJOZGKipzZU0Dn0="; 33 }; 34 "1.22.0" = { 35 name = "lsp"; 36 minimalOCamlVersion = "5.2"; 37 sha256 = "sha256-UZ3DV30V3CIQ3vpYBIGnQ1eRGNUGk7aRuxDLyCA/tYE="; 38 }; 39 "1.21.0" = { 40 name = "lsp"; 41 minimalOCamlVersion = "5.2"; 42 sha256 = "sha256-Z4cDN/8j0NK6Q3dL+1io/eBJd+o32k0txQDtC1fO9xc="; 43 }; 44 "1.18.0" = { 45 name = "lsp"; 46 minimalOCamlVersion = "4.14"; 47 sha256 = "sha256-tZ2kPM/S/9J3yeX2laDjnHLA144b8svy9iwae32nXwM="; 48 }; 49 "1.17.0" = { 50 name = "lsp"; 51 minimalOCamlVersion = "4.14"; 52 sha256 = "sha256-j7i71xfu/SYItNg0WBBbZg4N46ETTcj8IWrmWdTRlgA="; 53 }; 54 "1.14.2" = { 55 name = "lsp"; 56 minimalOCamlVersion = "4.14"; 57 sha256 = "sha256-1R+HYaGbPLGDs5DMN3jmnrZFMhMmPUHgF+s+yNzIVJQ="; 58 }; 59 "1.10.5" = { 60 name = "jsonrpc"; 61 minimalOCamlVersion = "4.13"; 62 sha256 = "sha256-TeJS6t1ruWhWPvWNatrnSUWI6T17XKiosHLYizBDDcw="; 63 }; 64 "1.9.0" = { 65 name = "jsonrpc"; 66 minimalOCamlVersion = "4.12"; 67 sha256 = "sha256:1ac44n6g3rf84gvhcca545avgf9vpkwkkkm0s8ipshfhp4g4jikh"; 68 }; 69 "1.4.1" = { 70 name = "jsonrpc"; 71 minimalOCamlVersion = "4.06"; 72 sha256 = "1ssyazc0yrdng98cypwa9m3nzfisdzpp7hqnx684rqj8f0g3gs6f"; 73 }; 74 } 75 ."${version}"; 76in 77 78buildDunePackage rec { 79 pname = "jsonrpc"; 80 inherit version; 81 src = fetchurl { 82 url = "https://github.com/ocaml/ocaml-lsp/releases/download/${version}/${params.name}-${version}.tbz"; 83 inherit (params) sha256; 84 }; 85 86 inherit (params) minimalOCamlVersion; 87 88 buildInputs = 89 if lib.versionAtLeast version "1.7.0" then 90 [ ] 91 else 92 [ 93 yojson 94 stdlib-shims 95 ocaml-syntax-shims 96 ]; 97 98 propagatedBuildInputs = 99 if lib.versionAtLeast version "1.7.0" then 100 [ ] 101 else 102 [ 103 ppx_yojson_conv_lib 104 result 105 ]; 106 107 meta = with lib; { 108 description = "Jsonrpc protocol implementation in OCaml"; 109 license = licenses.isc; 110 platforms = platforms.unix; 111 maintainers = [ ]; 112 }; 113}