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