1{ lib
2, stdenv
3, buildDunePackage
4, fetchurl
5, cstruct
6, duration
7, ethernet
8, ipaddr
9, logs
10, lwt
11, macaddr
12, mirage-time
13, alcotest
14, mirage-clock-unix
15, mirage-flow
16, mirage-random
17, mirage-random-test
18, mirage-time-unix
19, mirage-vnetif
20, bisect_ppx
21}:
22
23buildDunePackage rec {
24 pname = "arp";
25 version = "3.1.0";
26
27 src = fetchurl {
28 url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-${version}.tbz";
29 hash = "sha256-g/aEhpufQcyS/vCtKk0Z1sYaYNRmQFaZ9rTp9F4nq54=";
30 };
31
32 minimalOCamlVersion = "4.08";
33
34 nativeBuildInputs = [
35 bisect_ppx
36 ];
37
38 propagatedBuildInputs = [
39 cstruct
40 duration
41 ethernet
42 ipaddr
43 logs
44 lwt
45 macaddr
46 mirage-time
47 ];
48
49 ## NOTE: As of 18 april 2023 and ARP version 3.0.0, tests fail on Darwin.
50 doCheck = ! stdenv.isDarwin;
51 checkInputs = [
52 alcotest
53 mirage-clock-unix
54 mirage-flow
55 mirage-random
56 mirage-random-test
57 mirage-time-unix
58 mirage-vnetif
59 ];
60
61 meta = with lib; {
62 description = "Address Resolution Protocol purely in OCaml";
63 homepage = "https://github.com/mirage/arp";
64 license = licenses.isc;
65 maintainers = with maintainers; [ sternenseemann ];
66 };
67}