Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at devShellTools-shell 113 lines 3.3 kB view raw
1{ 2 lib, 3 buildDunePackage, 4 camlp5, 5 ocaml, 6 menhir, 7 menhirLib, 8 atdgen, 9 atdgen-runtime, 10 stdlib-shims, 11 re, 12 perl, 13 ncurses, 14 ppxlib, 15 ppx_deriving, 16 ppxlib_0_15, 17 ppx_deriving_0_15, 18 coqPackages, 19 version ? 20 if lib.versionAtLeast ocaml.version "4.13" then 21 "2.0.7" 22 else if lib.versionAtLeast ocaml.version "4.08" then 23 "1.20.0" 24 else 25 "1.15.2", 26}: 27 28let 29 p5 = camlp5; 30in 31let 32 camlp5 = p5.override { legacy = true; }; 33in 34 35let 36 fetched = coqPackages.metaFetch ({ 37 release."2.0.7".sha256 = "sha256-gCM+vZK6vWlhSO1VMjiWHse23mvxVwRarhxwkIQK7e0="; 38 release."2.0.6".sha256 = "sha256-tRUYXQZ0VXrjIZBZ1skdzieUsww4rSNEe5ik+iKpk3U="; 39 release."2.0.5".sha256 = "sha256-cHgERFqrfSg5WtUX3UxR6L+QkzS7+t6n4V+wweiEacc="; 40 release."2.0.3".sha256 = "sha256-t2z0sWPiFgp6LuR6CsH/Zk9qfxW+3QjjFcYrB6qSPgc="; 41 release."1.20.0".sha256 = "sha256-lctZAIQgOg5d+LfILtWsBVcsemV3zTZYfJfDlCxHtcA="; 42 release."1.19.2".sha256 = "sha256-dBj5Ek7PWq/8Btq/dggJUqa8cUtfvbi6EWo/lJEDOU4="; 43 release."1.18.2".sha256 = "sha256-usOYukHQ/h4YBxlhYrAkMTVjNm97hq4IArI9bvDzy/k="; 44 release."1.18.1".sha256 = "sha256-rrIv/mVC0Ez3nU7fpnzwduIC3tI6l73DjgAbv1gd2v0="; 45 release."1.17.0".sha256 = "sha256-J8FJBeaB+2HtHjrkgNzOZJngZ2AcYU+npL9Y1HNPnzo="; 46 release."1.15.2".sha256 = "sha256-+sQYQiN3n+dlzXzi5opOjhkJZqpkNwlHZcUjaUM6+xQ="; 47 release."1.15.0".sha256 = "sha256-vpQzbkDqJPCmaBmXcBnzlWGS7djW9wWv8xslkIlXgP0="; 48 release."1.13.7".sha256 = "sha256-0QbOEnrRCYA2mXDGRKe+QYCXSESLJvLzRW0Iq+/3P9Y="; 49 release."1.12.0".sha256 = "sha256-w4JzLZB8jcxw7nA7AfgU9jTZTr6IYUxPU5E2vNIFC4Q="; 50 release."1.11.4".sha256 = "sha256-dyzEpzokgffsF9lt+FZgUlcZEuAb70vGuHfGUtjZYIM="; 51 releaseRev = v: "v${v}"; 52 releaseArtifact = v: if lib.versionAtLeast v "1.13.8" then "elpi-${v}.tbz" else "elpi-v${v}.tbz"; 53 location = { 54 domain = "github.com"; 55 owner = "LPCIC"; 56 repo = "elpi"; 57 }; 58 }) version; 59in 60let 61 inherit (fetched) version; 62in 63buildDunePackage { 64 pname = "elpi"; 65 inherit version; 66 inherit (fetched) src; 67 68 patches = lib.optional (version == "1.16.5") ./atd_2_10.patch; 69 70 minimalOCamlVersion = "4.07"; 71 72 nativeBuildInputs = [ 73 perl 74 ] 75 ++ [ (if lib.versionAtLeast version "1.15" || version == "dev" then menhir else camlp5) ] 76 ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen; 77 buildInputs = [ 78 ncurses 79 ] 80 ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen-runtime; 81 82 propagatedBuildInputs = [ 83 re 84 stdlib-shims 85 ] 86 ++ (if lib.versionAtLeast version "1.15" || version == "dev" then [ menhirLib ] else [ camlp5 ]) 87 ++ ( 88 if lib.versionAtLeast version "1.13" || version == "dev" then 89 [ 90 ppxlib 91 ppx_deriving 92 ] 93 else 94 [ 95 ppxlib_0_15 96 ppx_deriving_0_15 97 ] 98 ); 99 100 meta = with lib; { 101 description = "Embeddable λProlog Interpreter"; 102 license = licenses.lgpl21Plus; 103 maintainers = [ maintainers.vbgl ]; 104 homepage = "https://github.com/LPCIC/elpi"; 105 }; 106 107 postPatch = '' 108 substituteInPlace elpi_REPL.ml --replace-warn "tput cols" "${ncurses}/bin/tput cols" 109 '' 110 + lib.optionalString (lib.versionAtLeast version "1.16" || version == "dev") '' 111 substituteInPlace src/dune --replace-warn ' atdgen re' ' atdgen-runtime re' 112 ''; 113}