nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildDunePackage,
4 fetchFromGitHub,
5 which,
6 ocaml,
7 lwt_react,
8 ssl,
9 lwt_ssl,
10 findlib,
11 bigstringaf,
12 lwt,
13 cstruct,
14 mirage-crypto,
15 zarith,
16 mirage-crypto-ec,
17 ptime,
18 mirage-crypto-rng,
19 mtime,
20 ca-certs,
21 cohttp,
22 cohttp-lwt-unix,
23 lwt_log,
24 re,
25 logs-syslog,
26 cryptokit,
27 xml-light,
28 ipaddr,
29 camlzip,
30 makeWrapper,
31}:
32
33let
34 mkpath = p: "${p}/lib/ocaml/${ocaml.version}/site-lib/stublibs";
35in
36
37let
38 caml_ld_library_path = lib.concatMapStringsSep ":" mkpath [
39 bigstringaf
40 lwt
41 ssl
42 cstruct
43 mirage-crypto
44 zarith
45 mirage-crypto-ec
46 ptime
47 mirage-crypto-rng
48 mtime
49 ca-certs
50 cryptokit
51 re
52 ];
53in
54
55buildDunePackage {
56 version = "6.0.0-unstable-2025-08-11";
57 pname = "ocsigenserver";
58
59 minimalOCamlVersion = "4.08";
60
61 src = fetchFromGitHub {
62 owner = "ocsigen";
63 repo = "ocsigenserver";
64 rev = "0d3c74d71fbdf738d1e45a98814b7ebdd1efe6c1";
65 hash = "sha256-KEHTw4cCPRJSE4SAnUFWzeoiEz8y9nUQFpaFiNxAsiU=";
66 };
67
68 nativeBuildInputs = [
69 makeWrapper
70 which
71 ];
72 buildInputs = [
73 lwt_react
74 camlzip
75 findlib
76 ];
77
78 propagatedBuildInputs = [
79 cohttp
80 cohttp-lwt-unix
81 cryptokit
82 ipaddr
83 lwt_log
84 lwt_ssl
85 re
86 logs-syslog
87 xml-light
88 ];
89
90 dontAddPrefix = true;
91 dontAddStaticConfigureFlags = true;
92 configurePlatforms = [ ];
93
94 postInstall = ''
95 make install.files
96 '';
97
98 postFixup = ''
99 rm -rf $out/var/run
100 wrapProgram $out/bin/ocsigenserver \
101 --suffix CAML_LD_LIBRARY_PATH : "${caml_ld_library_path}"
102 '';
103
104 dontPatchShebangs = true;
105
106 meta = {
107 homepage = "http://ocsigen.org/ocsigenserver/";
108 description = "Full featured Web server";
109 longDescription = ''
110 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.
111 '';
112 license = lib.licenses.lgpl21Only;
113 inherit (ocaml.meta) platforms;
114 maintainers = [ lib.maintainers.gal_bolle ];
115 };
116
117}