nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 buildDunePackage,
4 fetchurl,
5 pkg-config,
6 cstruct,
7 cstruct-lwt,
8 mirage-net,
9 mirage-mtime,
10 mirage-crypto-rng,
11 mirage-sleep,
12 macaddr,
13 macaddr-cstruct,
14 fmt,
15 lwt,
16 lwt-dllist,
17 logs,
18 duration,
19 randomconv,
20 ethernet,
21 alcotest,
22 mirage-flow,
23 mirage-vnetif,
24 pcap-format,
25 arp,
26 ipaddr-cstruct,
27 lru,
28 metrics,
29 withFreestanding ? false,
30 ocaml-freestanding,
31}:
32
33buildDunePackage rec {
34 pname = "tcpip";
35 version = "9.0.1";
36
37 src = fetchurl {
38 url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-${version}.tbz";
39 hash = "sha256-+sB86YaBHPXj1xNz2StjHMMPvvVI1tohsJFyEtz5CwM=";
40 };
41
42 nativeBuildInputs = [
43 pkg-config
44 ];
45
46 propagatedBuildInputs = [
47 cstruct
48 cstruct-lwt
49 mirage-net
50 mirage-mtime
51 mirage-crypto-rng
52 mirage-sleep
53 ipaddr-cstruct
54 macaddr
55 macaddr-cstruct
56 fmt
57 lwt
58 lwt-dllist
59 logs
60 duration
61 randomconv
62 ethernet
63 lru
64 metrics
65 arp
66 mirage-flow
67 ]
68 ++ lib.optionals withFreestanding [
69 ocaml-freestanding
70 ];
71
72 doCheck = true;
73 checkInputs = [
74 alcotest
75 mirage-vnetif
76 pcap-format
77 ];
78 __darwinAllowLocalNetworking = true;
79
80 meta = {
81 description = "OCaml TCP/IP networking stack, used in MirageOS";
82 homepage = "https://github.com/mirage/mirage-tcpip";
83 maintainers = [ lib.maintainers.sternenseemann ];
84 license = lib.licenses.isc;
85 };
86}