1{
2 stdenv,
3 lib,
4 fetchurl,
5 buildDunePackage,
6 alcotest,
7 mirage-crypto-rng,
8 git-binary,
9 angstrom,
10 astring,
11 cstruct,
12 decompress,
13 digestif,
14 encore,
15 fmt,
16 checkseum,
17 ke,
18 logs,
19 lwt,
20 ocamlgraph,
21 uri,
22 rresult,
23 base64,
24 hxd,
25 bigstringaf,
26 optint,
27 mirage-flow,
28 domain-name,
29 emile,
30 mimic,
31 carton,
32 carton-lwt,
33 carton-git,
34 ipaddr,
35 psq,
36 crowbar,
37 alcotest-lwt,
38 cmdliner,
39}:
40
41buildDunePackage rec {
42 pname = "git";
43 version = "3.17.0";
44
45 minimalOCamlVersion = "4.08";
46
47 src = fetchurl {
48 url = "https://github.com/mirage/ocaml-git/releases/download/${version}/git-${version}.tbz";
49 hash = "sha256-7yANBBLtGlOFJdBQEpiJDguJPgIFKAlNajrhI1n9AmU=";
50 };
51
52 buildInputs = [
53 base64
54 ];
55 propagatedBuildInputs = [
56 angstrom
57 astring
58 checkseum
59 cstruct
60 decompress
61 digestif
62 encore
63 fmt
64 ke
65 logs
66 lwt
67 ocamlgraph
68 uri
69 rresult
70 bigstringaf
71 optint
72 mirage-flow
73 domain-name
74 emile
75 mimic
76 carton
77 carton-lwt
78 carton-git
79 ipaddr
80 psq
81 hxd
82 ];
83 nativeCheckInputs = [
84 git-binary
85 ];
86 checkInputs = [
87 alcotest
88 alcotest-lwt
89 mirage-crypto-rng
90 crowbar
91 cmdliner
92 ];
93 doCheck = !stdenv.hostPlatform.isAarch64;
94
95 meta = {
96 description = "Git format and protocol in pure OCaml";
97 license = lib.licenses.isc;
98 maintainers = with lib.maintainers; [
99 sternenseemann
100 vbgl
101 ];
102 homepage = "https://github.com/mirage/ocaml-git";
103 };
104}