nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 120 lines 3.8 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 ppx_deriving, 15 ppx_deriving_0_15, 16 ppx_deriving_0_33, 17 ppx_optcomp, 18 coqPackages, 19 version ? 20 if lib.versionAtLeast ocaml.version "4.13" then 21 "3.4.2" 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."3.4.2".sha256 = "sha256-w7GjKYZrVrfezJN0NLmzpVm6CFGVKxXszHADFGCw5cc="; 38 release."3.4.1".sha256 = "sha256-3rQPw91dHAqp61KTHk1UOEqh5syWrZZ1V1/1eE8cyI8="; 39 release."3.3.0".sha256 = "sha256:963f95eea48b8f853cca9cbe4db49f22343c58e88dc961bc1da303356ef50dcd"; 40 release."3.0.1".sha256 = "sha256-r4B0xn6UCVslVW4dHiqq8NBMGfNz44kZy48KDWeGquc="; 41 release."2.0.7".sha256 = "sha256-gCM+vZK6vWlhSO1VMjiWHse23mvxVwRarhxwkIQK7e0="; 42 release."2.0.6".sha256 = "sha256-tRUYXQZ0VXrjIZBZ1skdzieUsww4rSNEe5ik+iKpk3U="; 43 release."2.0.5".sha256 = "sha256-cHgERFqrfSg5WtUX3UxR6L+QkzS7+t6n4V+wweiEacc="; 44 release."2.0.3".sha256 = "sha256-t2z0sWPiFgp6LuR6CsH/Zk9qfxW+3QjjFcYrB6qSPgc="; 45 release."1.20.0".sha256 = "sha256-lctZAIQgOg5d+LfILtWsBVcsemV3zTZYfJfDlCxHtcA="; 46 release."1.19.2".sha256 = "sha256-dBj5Ek7PWq/8Btq/dggJUqa8cUtfvbi6EWo/lJEDOU4="; 47 release."1.18.2".sha256 = "sha256-usOYukHQ/h4YBxlhYrAkMTVjNm97hq4IArI9bvDzy/k="; 48 release."1.18.1".sha256 = "sha256-rrIv/mVC0Ez3nU7fpnzwduIC3tI6l73DjgAbv1gd2v0="; 49 release."1.17.0".sha256 = "sha256-J8FJBeaB+2HtHjrkgNzOZJngZ2AcYU+npL9Y1HNPnzo="; 50 release."1.15.2".sha256 = "sha256-+sQYQiN3n+dlzXzi5opOjhkJZqpkNwlHZcUjaUM6+xQ="; 51 release."1.15.0".sha256 = "sha256-vpQzbkDqJPCmaBmXcBnzlWGS7djW9wWv8xslkIlXgP0="; 52 release."1.13.7".sha256 = "sha256-0QbOEnrRCYA2mXDGRKe+QYCXSESLJvLzRW0Iq+/3P9Y="; 53 release."1.12.0".sha256 = "sha256-w4JzLZB8jcxw7nA7AfgU9jTZTr6IYUxPU5E2vNIFC4Q="; 54 release."1.11.4".sha256 = "sha256-dyzEpzokgffsF9lt+FZgUlcZEuAb70vGuHfGUtjZYIM="; 55 releaseRev = v: "v${v}"; 56 releaseArtifact = v: if lib.versionAtLeast v "1.13.8" then "elpi-${v}.tbz" else "elpi-v${v}.tbz"; 57 location = { 58 domain = "github.com"; 59 owner = "LPCIC"; 60 repo = "elpi"; 61 }; 62 } version; 63in 64let 65 inherit (fetched) version; 66in 67buildDunePackage { 68 pname = "elpi"; 69 inherit version; 70 inherit (fetched) src; 71 72 patches = lib.optional (version == "1.16.5") ./atd_2_10.patch; 73 74 minimalOCamlVersion = "4.07"; 75 76 nativeBuildInputs = [ 77 perl 78 ] 79 ++ [ (if lib.versionAtLeast version "1.15" || version == "dev" then menhir else camlp5) ] 80 ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen; 81 buildInputs = [ 82 ncurses 83 ] 84 ++ lib.optional (lib.versionAtLeast version "3.3.0" || version == "dev") ppx_optcomp 85 ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen-runtime; 86 87 propagatedBuildInputs = [ 88 re 89 stdlib-shims 90 ] 91 ++ (if lib.versionAtLeast version "1.15" || version == "dev" then [ menhirLib ] else [ camlp5 ]) 92 ++ ( 93 if lib.versionAtLeast version "2.0.7" || version == "dev" then 94 [ 95 ppx_deriving 96 ] 97 else if lib.versionAtLeast version "1.13" then 98 [ 99 ppx_deriving_0_33 100 ] 101 else 102 [ 103 ppx_deriving_0_15 104 ] 105 ); 106 107 meta = { 108 description = "Embeddable λProlog Interpreter"; 109 license = lib.licenses.lgpl21Plus; 110 maintainers = [ lib.maintainers.vbgl ]; 111 homepage = "https://github.com/LPCIC/elpi"; 112 }; 113 114 postPatch = '' 115 substituteInPlace elpi_REPL.ml --replace-warn "tput cols" "${ncurses}/bin/tput cols" 116 '' 117 + lib.optionalString (lib.versionAtLeast version "1.16" || version == "dev") '' 118 substituteInPlace src/dune --replace-warn ' atdgen re' ' atdgen-runtime re' 119 ''; 120}