lol
1{ stdenv, fetchurl, ocaml, findlib, which, ocsigen_server, ocsigen_deriving,
2 js_of_ocaml, ocaml_react, ocaml_lwt, calendar, cryptokit, tyxml,
3 ipaddr, ocamlnet, ocaml_ssl, ocaml_pcre, ocaml_optcomp,
4 reactivedata, opam}:
5
6assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4";
7
8stdenv.mkDerivation rec
9{
10 pname = "eliom";
11 version = "4.1.0";
12 name = "${pname}-${version}";
13
14 src = fetchurl {
15 url = https://github.com/ocsigen/eliom/archive/4.1.0.tar.gz;
16 sha256 = "10v7mrq3zsbxdlg8k8xif777mbvcdpabvnd1g7p2yqivr7f1qm24";
17 };
18
19 patches = [ ./camlp4.patch ];
20
21 buildInputs = [ocaml which ocsigen_server findlib ocsigen_deriving
22 js_of_ocaml ocaml_optcomp opam];
23
24 propagatedBuildInputs = [ ocaml_lwt reactivedata tyxml ipaddr
25 calendar cryptokit ocamlnet ocaml_react ocaml_ssl
26 ocaml_pcre ];
27
28 installPhase =
29 let ocamlVersion = (builtins.parseDrvName (ocaml.name)).version;
30 in
31 ''opam-installer --script --prefix=$out ${pname}.install > install.sh
32 sh install.sh
33 ln -s $out/lib/${pname} $out/lib/ocaml/${ocamlVersion}/site-lib/
34 '';
35
36 createFindlibDestdir = true;
37
38 meta = {
39 homepage = http://ocsigen.org/eliom/;
40 description = "Ocaml Framework for programming Web sites and client/server Web applications";
41
42 longDescription =''Eliom is a framework for programming Web sites
43 and client/server Web applications. It introduces new concepts to
44 simplify programming common behaviours and uses advanced static
45 typing features of OCaml to check many properties of the Web site
46 at compile time. If you want to write a Web application, Eliom
47 makes possible to write the whole application as a single program
48 (client and server parts). A syntax extension is used to
49 distinguish both parts and the client side is compiled to JS using
50 Ocsigen Js_of_ocaml.'';
51
52 license = stdenv.lib.licenses.lgpl21;
53
54 platforms = ocaml.meta.platforms;
55
56 maintainers = [ stdenv.lib.maintainers.gal_bolle ];
57 };
58}