Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ stdenv
2, lib
3, fetchFromGitHub
4, which
5, ocsigen_server
6, ocaml
7, lwt_react
8, opaline
9, ocamlbuild
10, ppx_deriving
11, findlib
12, js_of_ocaml-ocamlbuild
13, js_of_ocaml-ppx
14, js_of_ocaml-ppx_deriving_json
15, js_of_ocaml-lwt
16, js_of_ocaml-tyxml
17, lwt_ppx
18, ocamlnet
19, ocsipersist
20}:
21
22stdenv.mkDerivation rec {
23 pname = "eliom";
24 version = "9.4.0";
25
26 src = fetchFromGitHub {
27 owner = "ocsigen";
28 repo = "eliom";
29 rev = version;
30 sha256 = "sha256:1yn8mqxv9yz51x81j8wv1jn7l7crm8azp1m2g4zn5nz2s4nmfv6q";
31 };
32
33 nativeBuildInputs = [
34 ocaml
35 which
36 findlib
37 opaline
38 ocamlbuild
39 ];
40 buildInputs = [
41 js_of_ocaml-ocamlbuild
42 js_of_ocaml-ppx_deriving_json
43 ocamlnet
44 ];
45
46 propagatedBuildInputs = [
47 js_of_ocaml-lwt
48 js_of_ocaml-ppx
49 js_of_ocaml-tyxml
50 lwt_ppx
51 lwt_react
52 ocsigen_server
53 ocsipersist
54 ppx_deriving
55 ];
56
57 strictDeps = true;
58
59 installPhase = ''
60 runHook preInstall
61 opaline -prefix $out -libdir $OCAMLFIND_DESTDIR
62 runHook postInstall
63 '';
64
65 setupHook = [ ./setup-hook.sh ];
66
67 meta = {
68 homepage = "http://ocsigen.org/eliom/";
69 description = "OCaml Framework for programming Web sites and client/server Web applications";
70
71 longDescription = ''Eliom is a framework for programming Web sites
72 and client/server Web applications. It introduces new concepts to
73 simplify programming common behaviours and uses advanced static
74 typing features of OCaml to check many properties of the Web site
75 at compile time. If you want to write a Web application, Eliom
76 makes possible to write the whole application as a single program
77 (client and server parts). A syntax extension is used to
78 distinguish both parts and the client side is compiled to JS using
79 Ocsigen Js_of_ocaml.'';
80
81 license = lib.licenses.lgpl21;
82
83 maintainers = [ lib.maintainers.gal_bolle ];
84 };
85}