Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / ocaml-modules / tcpip / default.nix
blob1f86d7ef5bfbab149a9347e535212e5da3bc169d
1 { lib, buildDunePackage, fetchurl
2 , pkg-config
3 , cstruct, cstruct-lwt, mirage-net, mirage-clock
4 , mirage-random, mirage-time
5 , macaddr, macaddr-cstruct, fmt
6 , lwt, lwt-dllist, logs, duration, randomconv, ethernet
7 , alcotest, mirage-flow, mirage-vnetif, pcap-format
8 , mirage-clock-unix, arp, ipaddr-cstruct, mirage-random-test
9 , lru, metrics
10 , withFreestanding ? false
11 , ocaml-freestanding
14 buildDunePackage rec {
15   pname = "tcpip";
16   version = "8.0.0";
18   src = fetchurl {
19     url = "https://github.com/mirage/mirage-${pname}/releases/download/v${version}/${pname}-${version}.tbz";
20     hash = "sha256-NrTBVr4WcCukxteBotqLoUYrIjcNFVcOERYFbL8CUjM=";
21   };
23   nativeBuildInputs = [
24     pkg-config
25   ];
27   propagatedBuildInputs = [
28     cstruct
29     cstruct-lwt
30     mirage-net
31     mirage-clock
32     mirage-random
33     mirage-time
34     ipaddr-cstruct
35     macaddr
36     macaddr-cstruct
37     fmt
38     lwt
39     lwt-dllist
40     logs
41     duration
42     randomconv
43     ethernet
44     lru
45     metrics
46     arp
47     mirage-flow
48   ] ++ lib.optionals withFreestanding [
49     ocaml-freestanding
50   ];
52   doCheck = true;
53   checkInputs = [
54     alcotest
55     mirage-random-test
56     mirage-flow
57     mirage-vnetif
58     pcap-format
59     mirage-clock-unix
60   ];
61   __darwinAllowLocalNetworking = true;
63   meta = with lib; {
64     description = "OCaml TCP/IP networking stack, used in MirageOS";
65     homepage = "https://github.com/mirage/mirage-tcpip";
66     maintainers = [ maintainers.sternenseemann ];
67     license = licenses.isc;
68   };