1{stdenv, fetchurl, ocaml, findlib, which, ocaml_react, ocaml_ssl,
2ocaml_lwt, ocamlnet, ocaml_pcre, cryptokit, tyxml, ipaddr, zlib,
3libev, openssl, ocaml_sqlite3, tree, uutf, makeWrapper
4}:
5
6let mkpath = p: n:
7 let v = stdenv.lib.getVersion ocaml; in
8 "${p}/lib/ocaml/${v}/site-lib/${n}";
9in
10
11stdenv.mkDerivation {
12 name = "ocsigenserver-2.7";
13
14 src = fetchurl {
15 url = https://github.com/ocsigen/ocsigenserver/archive/2.7.tar.gz;
16 sha256 = "0gv9nchsx9z74hh46gn7bd0053j4694fhxriannf13sqh2qpg901";
17 };
18
19 buildInputs = [ocaml which findlib ocaml_react ocaml_ssl ocaml_lwt
20 ocamlnet ocaml_pcre cryptokit tyxml ipaddr zlib libev openssl
21 ocaml_sqlite3 tree uutf makeWrapper ];
22
23 configureFlags = "--root $(out) --prefix /";
24
25 dontAddPrefix = true;
26
27 createFindlibDestdir = true;
28
29 postFixup =
30 ''
31 rm -rf $out/var/run
32 wrapProgram $out/bin/ocsigenserver \
33 --prefix CAML_LD_LIBRARY_PATH : "${mkpath ocaml_ssl "ssl"}:${mkpath ocaml_lwt "lwt"}:${mkpath ocamlnet "netsys"}:${mkpath ocamlnet "netstring"}:${mkpath ocaml_pcre "pcre"}:${mkpath cryptokit "cryptokit"}:${mkpath ocaml_sqlite3 "sqlite3"}"
34 '';
35
36 dontPatchShebangs = true;
37
38 meta = {
39 homepage = http://ocsigen.org/ocsigenserver/;
40 description = "A full featured Web server";
41 longDescription =''
42 A full featured Web server. It implements most features of the HTTP protocol, and has a very powerful extension mechanism that make very easy to plug your own OCaml modules for generating pages.
43 '';
44 license = stdenv.lib.licenses.lgpl21;
45 platforms = ocaml.meta.platforms or [];
46 maintainers = [ stdenv.lib.maintainers.gal_bolle ];
47 };
48
49}