1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 ocaml,
6 findlib,
7 camlp4,
8 cstruct,
9 ocamlbuild,
10 erm_xml,
11 mirage-crypto,
12 mirage-crypto-rng,
13 base64,
14 digestif,
15}:
16
17stdenv.mkDerivation {
18 version = "0.3+20241009";
19 pname = "ocaml${ocaml.version}-erm_xmpp";
20
21 src = fetchFromGitHub {
22 owner = "hannesm";
23 repo = "xmpp";
24 rev = "54418f77abf47b175e9c1b68a4f745a12b640d6a";
25 sha256 = "sha256-AbzZjNkW1VH/FOnzNruvelZeo3IYg/Usr3enQEknTQs=";
26 };
27
28 nativeBuildInputs = [
29 ocaml
30 findlib
31 ocamlbuild
32 camlp4
33 ];
34 buildInputs = [ camlp4 ];
35 propagatedBuildInputs = [
36 cstruct
37 erm_xml
38 mirage-crypto
39 mirage-crypto-rng
40 base64
41 digestif
42 ];
43
44 strictDeps = true;
45
46 configurePhase = ''
47 runHook preConfigure
48 ocaml setup.ml -configure --prefix $out
49 runHook postConfigure
50 '';
51 buildPhase = ''
52 runHook preBuild
53 ocaml setup.ml -build
54 runHook postBuild
55 '';
56 installPhase = ''
57 runHook preInstall
58 ocaml setup.ml -install
59 runHook postInstall
60 '';
61
62 createFindlibDestdir = true;
63
64 meta = {
65 homepage = "https://github.com/hannesm/xmpp";
66 description = "OCaml based XMPP implementation (fork)";
67 license = lib.licenses.bsd3;
68 maintainers = with lib.maintainers; [ sternenseemann ];
69 inherit (ocaml.meta) platforms;
70 };
71}