summary refs log tree commit diff
diff options
context:
space:
mode:
authorsternenseemann <git@lukasepple.de>2020-06-25 23:22:21 +0200
committerGitHub <noreply@github.com>2020-06-25 23:22:21 +0200
commit3a0933a030decfc053b612a6a0d4a4ccc0c5f5da (patch)
tree35a1b54fe6036d50097749d00b05ba64c3bc0bb9
parent3eb4864c8b7c51f050c41fd4fad4a5fb112f6bd1 (diff)
downloadnixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.tar
nixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.tar.gz
nixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.tar.bz2
nixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.tar.lz
nixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.tar.xz
nixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.tar.zst
nixpkgs-3a0933a030decfc053b612a6a0d4a4ccc0c5f5da.zip
ocamlPackages.{ipaddr,macaddr}: 3.1.0 → 5.0.0 and update all affected packages (tuntap, conduit, cohttp, …) (#91350)
* ocamlPackages.{ipaddr,macaddr}: 3.1.0 → 5.0.0
* ipaddr-cstruct: new package (since 4.0.0)
* ipaddr-sexp: new package (since 4.0.0)
* macaddr-cstruct: new package (since 4.0.0)
* macaddr-sexp: new package (since 4.0.0)
* macaddr: enable tests (don't depend on ipaddr anymore)
* ocamlPackages.tuntap: 1.3.0 → 2.0.0
* ocamlPackages.conduit{,-lwt,-lwt-unix}: 1.4.0 → 2.2.2
* ocamlPackages.cohttp{,-lwt,-lwt-unix}: 2.1.3 → 2.5.1
* ocamlPackages: use dune 2 if pkg (indirectly) depends on cohttp-lwt-unix

dune refuses to build a package if one of its dependencies uses dune 2.
-rw-r--r--pkgs/development/ocaml-modules/cohttp/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/cohttp/lwt-unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/cohttp/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix22
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt-unix.nix20
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt.nix14
-rw-r--r--pkgs/development/ocaml-modules/curly/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/git-unix/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/graphql/cohttp.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/cstruct.nix17
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/sexp.nix18
-rw-r--r--pkgs/development/ocaml-modules/irmin/git.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/graphql.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/http.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/ppx.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/cstruct.nix17
-rw-r--r--pkgs/development/ocaml-modules/macaddr/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/macaddr/sexp.nix18
-rw-r--r--pkgs/development/ocaml-modules/opium/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/tuntap/default.nix28
-rw-r--r--pkgs/top-level/ocaml-packages.nix8
23 files changed, 166 insertions, 65 deletions
diff --git a/pkgs/development/ocaml-modules/cohttp/default.nix b/pkgs/development/ocaml-modules/cohttp/default.nix
index 22a4e6371a9..386afe33d7b 100644
--- a/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -1,27 +1,25 @@
-{ lib, fetchFromGitHub, buildDunePackage
-, ppx_fields_conv, ppx_sexp_conv
+{ lib, fetchurl, buildDunePackage
+, ppx_fields_conv, ppx_sexp_conv, stdlib-shims
 , base64, fieldslib, jsonm, re, stringext, uri-sexp
 }:
 
 buildDunePackage rec {
-  pname = "cohttp";
-	version = "2.1.3";
+	pname = "cohttp";
+	version = "2.5.1";
 
-	src = fetchFromGitHub {
-		owner = "mirage";
-		repo = "ocaml-cohttp";
-		rev = "v${version}";
-		sha256 = "16k4ldmz6ljryhr139adlma130frb5wh13qswkrwc5gxx6d2wh8d";
+	src = fetchurl {
+		url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
+		sha256 = "0im91mi3nxzqfd7fs5r0zg5gsparfnf5zaz13mpw247hkd3y3396";
 	};
 
 	buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp ];
+	propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp stdlib-shims ];
 
 	meta = {
 		description = "HTTP(S) library for Lwt, Async and Mirage";
 		license = lib.licenses.isc;
 		maintainers = [ lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
+		homepage = "https://github.com/mirage/ocaml-cohttp";
 	};
 }
diff --git a/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix b/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
index 588ba6711cb..3a99ed9536f 100644
--- a/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
@@ -11,6 +11,8 @@ buildDunePackage {
 	pname = "cohttp-lwt-unix";
 	inherit (cohttp-lwt) version src meta;
 
+	useDune2 = true;
+
 	buildInputs = [ cmdliner ppx_sexp_conv ];
 
 	propagatedBuildInputs = [ cohttp-lwt conduit-lwt-unix fmt magic-mime ];
diff --git a/pkgs/development/ocaml-modules/cohttp/lwt.nix b/pkgs/development/ocaml-modules/cohttp/lwt.nix
index 748b970477e..1f261be6202 100644
--- a/pkgs/development/ocaml-modules/cohttp/lwt.nix
+++ b/pkgs/development/ocaml-modules/cohttp/lwt.nix
@@ -2,6 +2,8 @@
 
 if !stdenv.lib.versionAtLeast cohttp.version "0.99"
 then cohttp
+else if !stdenv.lib.versionAtLeast ppx_sexp_conv.version "0.13"
+then throw "cohttp-lwt is not available for ppx_sexp_conv version ${ppx_sexp_conv.version}"
 else
 
 buildDunePackage {
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index 22538b87f6a..7fbeefb3926 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, buildDunePackage
-, ppx_sexp_conv, sexplib
-, astring, ipaddr, macaddr, uri,
+{ stdenv, fetchurl, buildDunePackage
+, ppx_sexp_conv, sexplib, astring, uri, logs
+, ipaddr, ipaddr-sexp
 }:
 
 buildDunePackage rec {
   pname = "conduit";
-  version = "1.4.0";
+  version = "2.2.2";
 
-  src = fetchFromGitHub {
-    owner = "mirage";
-    repo = "ocaml-conduit";
-    rev = "v${version}";
-    sha256 = "1qzamqcmf9ywz04bkwrv17mz9j6zq2w9h1xmnjvp11pnwrs2xq8l";
+  minimumOCamlVersion = "4.07";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-conduit/releases/download/v2.2.2/conduit-v2.2.2.tbz";
+    sha256 = "1zb83w2pq9c8xrappfxa6y5q93772f5dj22x78camsm77a2c2z55";
   };
 
   buildInputs = [ ppx_sexp_conv ];
-  propagatedBuildInputs = [ astring ipaddr macaddr sexplib uri ];
+  propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ];
 
   meta = {
     description = "Network connection library for TCP and SSL";
     license = stdenv.lib.licenses.isc;
     maintainers = with stdenv.lib.maintainers; [ alexfmpe vbgl ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/mirage/ocaml-conduit";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
index 51fb369e66f..b3c7e7fa86f 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -1,16 +1,20 @@
-{ stdenv, buildDunePackage, conduit-lwt
-, logs, ppx_sexp_conv, lwt_ssl
+{ stdenv, buildDunePackage
+, conduit-lwt, ppx_sexp_conv, ocaml_lwt, uri, ipaddr, ipaddr-sexp
+, lwt_ssl, tls
 }:
 
-if !stdenv.lib.versionAtLeast conduit-lwt.version "1.0"
-then conduit-lwt
-else
-
 buildDunePackage {
 	pname = "conduit-lwt-unix";
-	inherit (conduit-lwt) version src meta;
+	inherit (conduit-lwt) version src minimumOCamlVersion;
+
+	useDune2 = true;
 
 	buildInputs = [ ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit-lwt logs lwt_ssl ];
+	propagatedBuildInputs =
+		[ conduit-lwt ocaml_lwt uri ipaddr ipaddr-sexp tls lwt_ssl ];
+
+	meta = conduit-lwt.meta // {
+		description = "A network connection establishment library for Lwt_unix";
+	};
 }
diff --git a/pkgs/development/ocaml-modules/conduit/lwt.nix b/pkgs/development/ocaml-modules/conduit/lwt.nix
index 2eb225d88b6..9bcd98e06a4 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt }:
-
-if !stdenv.lib.versionAtLeast conduit.version "1.0"
-then conduit
-else
+{ stdenv, buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt, sexplib }:
 
 buildDunePackage {
 	pname = "conduit-lwt";
-	inherit (conduit) version src meta;
+	inherit (conduit) version src minimumOCamlVersion;
 
 	buildInputs = [ ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit ocaml_lwt ];
+	propagatedBuildInputs = [ conduit ocaml_lwt sexplib ];
+
+	meta = conduit.meta // {
+		description = "A network connection establishment library for Lwt";
+	};
 }
diff --git a/pkgs/development/ocaml-modules/curly/default.nix b/pkgs/development/ocaml-modules/curly/default.nix
index 1d455582b3b..a17ea72140f 100644
--- a/pkgs/development/ocaml-modules/curly/default.nix
+++ b/pkgs/development/ocaml-modules/curly/default.nix
@@ -7,6 +7,8 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.02";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner  = "rgrinberg";
     repo   = pname;
diff --git a/pkgs/development/ocaml-modules/git-unix/default.nix b/pkgs/development/ocaml-modules/git-unix/default.nix
index 50e6f1d3bce..072d7fdb5cb 100644
--- a/pkgs/development/ocaml-modules/git-unix/default.nix
+++ b/pkgs/development/ocaml-modules/git-unix/default.nix
@@ -4,6 +4,8 @@ buildDunePackage {
 	pname = "git-unix";
 	inherit (git-http) version src;
 
+	useDune2 = true;
+
 	buildInputs = [ cmdliner mtime ];
 	propagatedBuildInputs = [ cohttp-lwt-unix git-http tls ];
 
diff --git a/pkgs/development/ocaml-modules/graphql/cohttp.nix b/pkgs/development/ocaml-modules/graphql/cohttp.nix
index c6e85da77f3..09f4757041a 100644
--- a/pkgs/development/ocaml-modules/graphql/cohttp.nix
+++ b/pkgs/development/ocaml-modules/graphql/cohttp.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   inherit (graphql) version src;
 
+  useDune2 = true;
+
   nativeBuildInputs = [ ocaml-crunch ];
   propagatedBuildInputs = [ astring cohttp digestif graphql ocplib-endian ];
 
diff --git a/pkgs/development/ocaml-modules/ipaddr/cstruct.nix b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
new file mode 100644
index 00000000000..b6240d39ebd
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage
+, ipaddr, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "ipaddr-cstruct";
+
+  inherit (ipaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ipaddr cstruct ];
+
+  doCheck = true;
+
+  meta = ipaddr.meta // {
+    description = "A library for manipulation of IP address representations using Cstructs";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ipaddr/default.nix b/pkgs/development/ocaml-modules/ipaddr/default.nix
index d7009fdf553..a4a6f9fc7a1 100644
--- a/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -1,22 +1,20 @@
 { lib, buildDunePackage
-, macaddr, ounit
+, macaddr, domain-name, stdlib-shims
+, ounit, ppx_sexp_conv
 }:
 
 buildDunePackage rec {
   pname = "ipaddr";
 
-  inherit (macaddr) version src;
+  inherit (macaddr) version src minimumOCamlVersion;
 
-  buildInputs = [ ounit ];
-
-  propagatedBuildInputs = [ macaddr ];
+  propagatedBuildInputs = [ macaddr domain-name stdlib-shims ];
 
+  checkInputs = [ ppx_sexp_conv ounit ];
   doCheck = true;
 
-  meta = with lib; {
-    homepage = "https://github.com/mirage/ocaml-ipaddr";
+  meta = macaddr.meta // {
     description = "A library for manipulation of IP (and MAC) address representations ";
-    license = licenses.isc;
-    maintainers = with maintainers; [ alexfmpe ericbmerritt ];
+    maintainers = with lib.maintainers; [ alexfmpe ericbmerritt ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ipaddr/sexp.nix b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
new file mode 100644
index 00000000000..8d6186d6338
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, ipaddr, ipaddr-cstruct, ounit, ppx_sexp_conv
+}:
+
+buildDunePackage rec {
+  pname = "ipaddr-sexp";
+
+  inherit (ipaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ipaddr ];
+
+  checkInputs = [ ipaddr-cstruct ounit ppx_sexp_conv ];
+  doCheck = true;
+
+  meta = ipaddr.meta // {
+    description = "A library for manipulation of IP address representations usnig sexp";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/irmin/git.nix b/pkgs/development/ocaml-modules/irmin/git.nix
index bb28042a1f6..b222bc53e3a 100644
--- a/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/pkgs/development/ocaml-modules/irmin/git.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ git irmin ];
 
   checkInputs = lib.optionals doCheck [ git-unix irmin-mem irmin-test ];
diff --git a/pkgs/development/ocaml-modules/irmin/graphql.nix b/pkgs/development/ocaml-modules/irmin/graphql.nix
index abcdc3d58dd..41355fc3986 100644
--- a/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ cohttp-lwt graphql-cohttp graphql-lwt irmin ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/irmin/http.nix b/pkgs/development/ocaml-modules/irmin/http.nix
index c8db6d563c9..24e9f52aa08 100644
--- a/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/pkgs/development/ocaml-modules/irmin/http.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ cohttp-lwt irmin webmachine ];
 
   checkInputs = lib.optionals doCheck [ checkseum git-unix irmin-git irmin-mem irmin-test ];
diff --git a/pkgs/development/ocaml-modules/irmin/ppx.nix b/pkgs/development/ocaml-modules/irmin/ppx.nix
index c28532b49a9..5366a04456d 100644
--- a/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -5,6 +5,8 @@ buildDunePackage {
 
   inherit (irmin) version src minimumOCamlVersion;
 
+  useDune2 = true;
+
   buildInputs = [ ocaml-syntax-shims ];
   propagatedBuildInputs = [ ppxlib ];
 
diff --git a/pkgs/development/ocaml-modules/irmin/unix.nix b/pkgs/development/ocaml-modules/irmin/unix.nix
index 5793678bfcf..7a09eaabd3e 100644
--- a/pkgs/development/ocaml-modules/irmin/unix.nix
+++ b/pkgs/development/ocaml-modules/irmin/unix.nix
@@ -10,6 +10,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ checkseum cmdliner git-unix yaml
     irmin irmin-fs irmin-git irmin-graphql irmin-http irmin-mem irmin-pack irmin-watcher
   ];
diff --git a/pkgs/development/ocaml-modules/macaddr/cstruct.nix b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
new file mode 100644
index 00000000000..991a77a6ba2
--- /dev/null
+++ b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage
+, macaddr, cstruct
+}:
+
+buildDunePackage {
+  pname = "macaddr-cstruct";
+
+  inherit (macaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ macaddr cstruct ];
+
+  doCheck = true;
+
+  meta = macaddr.meta // {
+    description = "A library for manipulation of MAC address representations using Cstructs";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/macaddr/default.nix b/pkgs/development/ocaml-modules/macaddr/default.nix
index 1332c541354..76ced1d753c 100644
--- a/pkgs/development/ocaml-modules/macaddr/default.nix
+++ b/pkgs/development/ocaml-modules/macaddr/default.nix
@@ -1,21 +1,20 @@
 { lib, fetchurl, buildDunePackage
-, ppx_sexp_conv
+, ppx_sexp_conv, ounit
 }:
 
 buildDunePackage rec {
   pname = "macaddr";
-  version = "3.1.0";
+  version = "5.0.0";
 
   minimumOCamlVersion = "4.04";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-ipaddr/archive/v${version}.tar.gz";
-    sha256 = "1hi3v5dzg6h4qb268ch3h6v61gsc8bv21ajhb35z37v5nsdmyzbh";
+    sha256 = "1j2m2v64g3d81sixxq3g57j1iyk6042ivsszml18akrqvwfpxy66";
   };
 
-  propagatedBuildInputs = [ ppx_sexp_conv ];
-
-  doCheck = false; # ipaddr and macaddr tests are together, which requires mutual dependency
+  checkInputs = [ ppx_sexp_conv ounit ];
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/mirage/ocaml-ipaddr";
diff --git a/pkgs/development/ocaml-modules/macaddr/sexp.nix b/pkgs/development/ocaml-modules/macaddr/sexp.nix
new file mode 100644
index 00000000000..3d0305c4be3
--- /dev/null
+++ b/pkgs/development/ocaml-modules/macaddr/sexp.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, macaddr, ppx_sexp_conv, macaddr-cstruct, ounit
+}:
+
+buildDunePackage {
+  pname = "macaddr-sexp";
+
+  inherit (macaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ppx_sexp_conv ];
+
+  checkInputs = [ macaddr-cstruct ounit ];
+  doCheck = true;
+
+  meta = macaddr.meta // {
+    description = "A library for manipulation of MAC address representations using sexp";
+  };
+}
diff --git a/pkgs/development/ocaml-modules/opium/default.nix b/pkgs/development/ocaml-modules/opium/default.nix
index cbd3a14541f..2681cc609d0 100644
--- a/pkgs/development/ocaml-modules/opium/default.nix
+++ b/pkgs/development/ocaml-modules/opium/default.nix
@@ -17,6 +17,8 @@ buildDunePackage {
 	pname = "opium";
 	inherit (opium_kernel) version src meta minimumOCamlVersion;
 
+  useDune2 = true;
+
   doCheck = true;
 
 	buildInputs = [
diff --git a/pkgs/development/ocaml-modules/tuntap/default.nix b/pkgs/development/ocaml-modules/tuntap/default.nix
index 8e8eaf5fd5e..a4536316ba4 100644
--- a/pkgs/development/ocaml-modules/tuntap/default.nix
+++ b/pkgs/development/ocaml-modules/tuntap/default.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ipaddr }:
+{ lib, buildDunePackage, fetchurl
+, ipaddr, macaddr, cmdliner
+}:
 
-assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.01";
+buildDunePackage rec {
+  pname = "tuntap";
+  version = "2.0.0";
 
-stdenv.mkDerivation {
-  name = "ocaml-tuntap-1.3.0";
+  minimumOCamlVersion = "4.04.2";
 
-  src = fetchzip {
-    url = "https://github.com/mirage/ocaml-tuntap/archive/v1.3.0.tar.gz";
-    sha256 = "1cmd4kky875ks02gm2nb8yr80hmlfcnjdfyc63hvkh49acssy3d5";
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-tuntap/releases/download/v${version}/tuntap-v${version}.tbz";
+    sha256 = "12wmls28h3jzikwyfw08d5f7ycsc9njwzbhd3qk2l8jnf5rakfsa";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-  propagatedBuildInputs = [ ipaddr ];
+  propagatedBuildInputs = [ ipaddr macaddr cmdliner ];
 
-  createFindlibDestdir = true;
+  # tests manipulate network devices and use network
+  # also depend on LWT 5
+  doCheck = false;
 
   meta = {
     description = "Bindings to the UNIX tuntap facility";
-    license = stdenv.lib.licenses.isc;
+    license = lib.licenses.isc;
     homepage = "https://github.com/mirage/ocaml-tuntap";
-    inherit (ocaml.meta) platforms;
   };
-
 }
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 194abc496f2..3294099ca5d 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -324,6 +324,10 @@ let
 
     ipaddr = callPackage ../development/ocaml-modules/ipaddr { };
 
+    ipaddr-cstruct = callPackage ../development/ocaml-modules/ipaddr/cstruct.nix { };
+
+    ipaddr-sexp = callPackage ../development/ocaml-modules/ipaddr/sexp.nix { };
+
     irmin_1 = callPackage ../development/ocaml-modules/irmin/1.4.nix { };
 
     iso8601 = callPackage ../development/ocaml-modules/iso8601 { };
@@ -477,6 +481,10 @@ let
 
     macaddr = callPackage ../development/ocaml-modules/macaddr { };
 
+    macaddr-cstruct = callPackage ../development/ocaml-modules/macaddr/cstruct.nix { };
+
+    macaddr-sexp = callPackage ../development/ocaml-modules/macaddr/sexp.nix { };
+
     macaque = callPackage ../development/ocaml-modules/macaque { };
 
     magic-mime = callPackage ../development/ocaml-modules/magic-mime { };