summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2020-03-26 17:17:48 +0000
committerAlyssa Ross <hi@alyssa.is>2020-03-26 17:36:07 +0000
commit70e58881128ed8170821840138ab08fc5cdd3c11 (patch)
tree1bf0d3d977878df5b58493ea02b2e6c79df3ba22 /pkgs/development/ocaml-modules
parenta9847c36e6aa003998c1ef5518e5710658ca5770 (diff)
parent90dcc3360327e250536eeeca7fe9d887c9f7a817 (diff)
downloadnixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar
nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.gz
nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.bz2
nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.lz
nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.xz
nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.tar.zst
nixpkgs-70e58881128ed8170821840138ab08fc5cdd3c11.zip
Merge remote-tracking branch 'nixpkgs/master' into master
Diffstat (limited to 'pkgs/development/ocaml-modules')
-rw-r--r--pkgs/development/ocaml-modules/batteries/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/biocaml/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/cfstream/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/cfstream/git_commit.patch24
-rw-r--r--pkgs/development/ocaml-modules/cohttp/0.19.3.nix30
-rw-r--r--pkgs/development/ocaml-modules/conduit/0.10.0.nix26
-rw-r--r--pkgs/development/ocaml-modules/dum/default.nix17
-rw-r--r--pkgs/development/ocaml-modules/dune-configurator/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-private-libs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/earley/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/earlybird/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/eigen/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/graphics/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/janestreet/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lacaml/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/ocf/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-start/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/owl-base/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/owl/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/parmap/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/pgocaml/ppx.nix8
-rw-r--r--pkgs/development/ocaml-modules/phylogenetics/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_import/default.nix15
-rw-r--r--pkgs/development/ocaml-modules/ppx_tools/default.nix45
-rw-r--r--pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/ppxlib/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/printbox/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix19
-rw-r--r--pkgs/development/ocaml-modules/sedlex/2.nix26
-rw-r--r--pkgs/development/ocaml-modules/uri/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/wasm/default.nix1
38 files changed, 215 insertions, 206 deletions
diff --git a/pkgs/development/ocaml-modules/batteries/default.nix b/pkgs/development/ocaml-modules/batteries/default.nix
index 1b3bb9a7981..263da89d1df 100644
--- a/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/pkgs/development/ocaml-modules/batteries/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, ocaml, findlib, ocamlbuild, qtest, num }:
 
-let version = "2.11.0"; in
+let version = "3.0.0"; in
 
 stdenv.mkDerivation {
   name = "ocaml${ocaml.version}-batteries-${version}";
 
   src = fetchurl {
     url = "https://github.com/ocaml-batteries-team/batteries-included/releases/download/v${version}/batteries-${version}.tar.gz";
-    sha256 = "0swdnm9c3sd3yzzyg7yh1lkqhfikmga4fzx2416ja1q62nv26j53";
+    sha256 = "0d833amm4p0pczgl7wriv99f3r5r6345p5gi9d97sm0hqx27vzwi";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild qtest ];
diff --git a/pkgs/development/ocaml-modules/biocaml/default.nix b/pkgs/development/ocaml-modules/biocaml/default.nix
index 4f97594fb7c..de54c24b774 100644
--- a/pkgs/development/ocaml-modules/biocaml/default.nix
+++ b/pkgs/development/ocaml-modules/biocaml/default.nix
@@ -4,7 +4,7 @@
 
 buildDunePackage rec {
   pname = "biocaml";
-  version = "0.10.0";
+  version = "0.10.1";
 
   owner = "biocaml";
 
@@ -14,7 +14,7 @@ buildDunePackage rec {
     inherit owner;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0dghqx6jbzihmga8jjwwavs0wqksgcns4z1nmwj0ds9ik3mcra30";
+    sha256 = "1f19nc8ld0iv45jjnsvaah3ddj88s2n9wj8mrz726kzg85cfr8xj";
   };
 
   buildInputs = [ ppx_jane ppx_sexp_conv ];
@@ -23,7 +23,7 @@ buildDunePackage rec {
 
   meta = with stdenv.lib; {
     description = "Bioinformatics library for Ocaml";
-    homepage = "http://${owner}.github.io/${pname}";
+    homepage = "http://${pname}.org";
     maintainers = [ maintainers.bcdarwin ];
     license = licenses.gpl2;
   };
diff --git a/pkgs/development/ocaml-modules/cfstream/default.nix b/pkgs/development/ocaml-modules/cfstream/default.nix
index db6d2b1d440..0ec1949f562 100644
--- a/pkgs/development/ocaml-modules/cfstream/default.nix
+++ b/pkgs/development/ocaml-modules/cfstream/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "cfstream";
-  version = "1.3.0";
+  version = "1.3.1";
 
   minimumOCamlVersion = "4.04.1";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner = "biocaml";
     repo   = pname;
     rev    = version;
-    sha256 = "1bpzpci0cx6r3sdk183mm603wgzvvj46nlx0lpx44108anxcxbak";
+    sha256 = "0qnxfp6y294gjsccx7ksvwn9x5q20hi8sg24rjypzsdkmlphgdnd";
   };
 
   patches = [ ./git_commit.patch ];
diff --git a/pkgs/development/ocaml-modules/cfstream/git_commit.patch b/pkgs/development/ocaml-modules/cfstream/git_commit.patch
index 5f8d8f5ce31..596cfdc7092 100644
--- a/pkgs/development/ocaml-modules/cfstream/git_commit.patch
+++ b/pkgs/development/ocaml-modules/cfstream/git_commit.patch
@@ -1,13 +1,13 @@
-diff --git a/lib/jbuild b/lib/jbuild
-index fcc5a39..d72d50c 100644
---- a/lib/jbuild
-+++ b/lib/jbuild
-@@ -10,7 +10,7 @@
- (rule (
-   (targets (GIT_COMMIT))
-   (deps (../bin/git_commit.sh))
--  (action (with-stdout-to ${@} (run ${<})))
-+  (action (with-stdout-to ${@} (run echo "None")))
- ))
+diff --git a/lib/dune b/lib/dune
+index 2266b87..344c704 100644
+--- a/lib/dune
++++ b/lib/dune
+@@ -8,7 +8,7 @@
+ (rule
+  (targets GIT_COMMIT)
+  (deps (:x ../bin/git_commit.sh))
+- (action (with-stdout-to %{targets} (run %{x})))
++ (action (with-stdout-to %{targets} (run echo None)))
+ )
  
- (rule (
+ (rule
diff --git a/pkgs/development/ocaml-modules/cohttp/0.19.3.nix b/pkgs/development/ocaml-modules/cohttp/0.19.3.nix
deleted file mode 100644
index 24547a03a08..00000000000
--- a/pkgs/development/ocaml-modules/cohttp/0.19.3.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, buildOcaml, fetchurl, ocaml, cmdliner, re, uri_p4, fieldslib_p4
-, sexplib_p4, conduit , stringext, base64, magic-mime, ounit, alcotest
-, asyncSupport ? stdenv.lib.versionAtLeast ocaml.version "4.02"
-, lwt ? null, async_p4 ? null, async_ssl_p4 ? null
-}:
-
-buildOcaml rec {
-  name = "cohttp";
-  version = "0.19.3";
-
-  minimumSupportedOcamlVersion = "4.01";
-
-  src = fetchurl {
-    url = "https://github.com/mirage/ocaml-cohttp/archive/v${version}.tar.gz";
-    sha256 = "1nrzpd4h52c1hnzcgsz462676saj9zss708ng001h54dglk8i1iv";
-  };
-
-  buildInputs = [ alcotest cmdliner conduit magic-mime ounit lwt ]
-  ++ stdenv.lib.optionals asyncSupport [ async_p4 async_ssl_p4 ];
-  propagatedBuildInputs = [ re stringext uri_p4 fieldslib_p4 sexplib_p4 base64 ];
-
-  buildFlags = [ "PREFIX=$(out)" ];
-
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mirage/ocaml-cohttp;
-    description = "Very lightweight HTTP server using Lwt or Async";
-    license = licenses.mit;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/conduit/0.10.0.nix b/pkgs/development/ocaml-modules/conduit/0.10.0.nix
deleted file mode 100644
index 4d1c43e0ae1..00000000000
--- a/pkgs/development/ocaml-modules/conduit/0.10.0.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, buildOcaml, fetchurl, ocaml, sexplib_p4, stringext, uri_p4, cstruct, ipaddr_p4
-, asyncSupport ? stdenv.lib.versionAtLeast ocaml.version "4.02"
-, async_p4 ? null, async_ssl_p4 ? null, lwt ? null
-}:
-
-buildOcaml rec {
-  name = "conduit";
-  version = "0.10.0";
-
-  src = fetchurl {
-    url = "https://github.com/mirage/ocaml-conduit/archive/v${version}.tar.gz";
-    sha256 = "1jz2skzsyg0axlkk9s6ahfblfrjx599wisyfs0cvn5dik9jqjadh";
-  };
-
-  propagatedBuildInputs = [ sexplib_p4 stringext uri_p4 cstruct ipaddr_p4 ];
-  buildInputs = stdenv.lib.optional (lwt != null) lwt
-             ++ stdenv.lib.optional (asyncSupport && async_p4 != null) async_p4
-             ++ stdenv.lib.optional (asyncSupport && async_ssl_p4 != null) async_ssl_p4;
-
-  meta = with stdenv.lib; {
-    homepage = https://github.com/mirage/ocaml-conduit;
-    description = "Resolve URIs into communication channels for Async or Lwt ";
-    license = licenses.mit;
-    maintainers = [ maintainers.ericbmerritt ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/dum/default.nix b/pkgs/development/ocaml-modules/dum/default.nix
index 37c00f6b31e..5e5199c2690 100644
--- a/pkgs/development/ocaml-modules/dum/default.nix
+++ b/pkgs/development/ocaml-modules/dum/default.nix
@@ -1,25 +1,24 @@
-{ lib, fetchFromGitHub, buildOcaml, ocaml
+{ stdenv, fetchFromGitHub, ocaml, findlib
 , easy-format
 }:
 
-buildOcaml rec {
-  name = "dum";
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-dum-${version}";
   version = "1.0.1";
 
-  minimumOCamlVersion = "4.06";
-
   src = fetchFromGitHub {
     owner = "mjambon";
-    repo = name;
+    repo = "dum";
     rev = "v${version}";
     sha256 = "0yrxl97szjc0s2ghngs346x3y0xszx2chidgzxk93frjjpsr1mlr";
   };
 
-  buildInputs = [ easy-format ];
+  buildInputs = [ ocaml findlib ];
+  propagatedBuildInputs = [ easy-format ];
 
-  doCheck = true;
+  createFindlibDestdir = true;
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     homepage = https://github.com/mjambon/dum;
     description = "Inspect the runtime representation of arbitrary OCaml values";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/ocaml-modules/dune-configurator/default.nix b/pkgs/development/ocaml-modules/dune-configurator/default.nix
index d84c21565db..aa12ebc8d79 100644
--- a/pkgs/development/ocaml-modules/dune-configurator/default.nix
+++ b/pkgs/development/ocaml-modules/dune-configurator/default.nix
@@ -3,6 +3,8 @@
 buildDunePackage rec {
   pname = "dune-configurator";
 
+  useDune2 = true;
+
   inherit (dune_2) src version;
 
   dontAddPrefix = true;
diff --git a/pkgs/development/ocaml-modules/dune-private-libs/default.nix b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
index 1c3503f11a1..14059070c9a 100644
--- a/pkgs/development/ocaml-modules/dune-private-libs/default.nix
+++ b/pkgs/development/ocaml-modules/dune-private-libs/default.nix
@@ -3,6 +3,8 @@
 buildDunePackage rec {
   pname = "dune-private-libs";
 
+  useDune2 = true;
+
   inherit (dune_2) src version;
 
   dontAddPrefix = true;
diff --git a/pkgs/development/ocaml-modules/earley/default.nix b/pkgs/development/ocaml-modules/earley/default.nix
index ab3011361e1..f47231a242e 100644
--- a/pkgs/development/ocaml-modules/earley/default.nix
+++ b/pkgs/development/ocaml-modules/earley/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchurl, buildDunePackage }:
+{ lib, fetchurl, ocaml, buildDunePackage }:
+
+if lib.versionAtLeast ocaml.version "4.08"
+then throw "earley is not available for OCaml ${ocaml.version}"
+else
 
 buildDunePackage rec {
   version = "2.0.0";
diff --git a/pkgs/development/ocaml-modules/earlybird/default.nix b/pkgs/development/ocaml-modules/earlybird/default.nix
index 1a98c748e45..decbb411767 100644
--- a/pkgs/development/ocaml-modules/earlybird/default.nix
+++ b/pkgs/development/ocaml-modules/earlybird/default.nix
@@ -1,7 +1,11 @@
-{ lib, fetchurl, buildDunePackage, angstrom, angstrom-lwt-unix,
+{ lib, fetchurl, ocaml, buildDunePackage, angstrom, angstrom-lwt-unix,
   batteries, cmdliner, lwt_ppx, ocaml_lwt, ppx_deriving_yojson,
   ppx_tools_versioned, yojson }:
 
+if lib.versionAtLeast ocaml.version "4.08"
+then throw "earlybird is not available for OCaml ${ocaml.version}"
+else
+
 buildDunePackage rec {
   pname = "earlybird";
   version = "0.1.5";
diff --git a/pkgs/development/ocaml-modules/eigen/default.nix b/pkgs/development/ocaml-modules/eigen/default.nix
index 7c1ec79f7da..dacd3a75862 100644
--- a/pkgs/development/ocaml-modules/eigen/default.nix
+++ b/pkgs/development/ocaml-modules/eigen/default.nix
@@ -1,17 +1,21 @@
-{ stdenv, buildDunePackage, fetchFromGitHub, ctypes }:
+{ stdenv, buildDunePackage, fetchFromGitHub, ctypes, libcxx }:
 
 buildDunePackage rec {
   pname = "eigen";
-  version = "0.1.5";
+  version = "0.2.0";
+
+  useDune2 = true;
 
   src = fetchFromGitHub {
     owner = "owlbarn";
     repo   = pname;
     rev    = version;
-    sha256 = "0pbqd87i9h7qpx84hr8k4iw0rhmjgma4s3wihxh992jjvsrgdyfi";
+    sha256 = "1zaw03as14hyvfpyj6bjrfbcxp2ljdbqcqqgm53kms244mig425f";
   };
 
-  minimumOCamlVersion = "4.04";
+  minimumOCamlVersion = "4.02";
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
 
   propagatedBuildInputs = [ ctypes ];
 
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 9a9ea28da53..7ffb7a8880b 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchzip, which, ocsigen_server, ocaml,
   lwt_react,
-  opaline, ppx_tools, ppx_deriving, findlib
-, ppx_tools_versioned
+  opaline, ppx_deriving, findlib
 , js_of_ocaml-ocamlbuild, js_of_ocaml-ppx, js_of_ocaml-ppx_deriving_json
 , js_of_ocaml-lwt
 , js_of_ocaml-tyxml
@@ -15,15 +14,14 @@ else
 stdenv.mkDerivation rec
 {
   pname = "eliom";
-  version = "6.8.0";
+  version = "6.10.1";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz";
-    sha256 = "0di4q0wzbnk9sxlaj97ivghzh8qvjb8n17h80y4nmqhys97pldif";
+    sha256 = "006722wcmhsfhyzv3qbgrrn53fbv9v4i31z52a0pznb6cll45nkm";
   };
 
-  buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild js_of_ocaml-ppx_deriving_json opaline ppx_tools
-    ppx_tools_versioned
+  buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild js_of_ocaml-ppx_deriving_json opaline
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index b69a4900f6f..1c71f7fceb7 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "elpi";
-  version = "1.7.0";
+  version = "1.10.2";
 
   src = fetchFromGitHub {
     owner = "LPCIC";
     repo = "elpi";
     rev = "v${version}";
-    sha256 = "1q6s3x4gba0hdymlgj4rf1bny4v7ac4jj7q134cwd3sxiwqcyhww";
+    sha256 = "0w5z0pxyshqawq7w5rw3nqii49y88rizvwqf202pl11xqi14icsn";
   };
 
   minimumOCamlVersion = "4.04";
diff --git a/pkgs/development/ocaml-modules/graphics/default.nix b/pkgs/development/ocaml-modules/graphics/default.nix
new file mode 100644
index 00000000000..6a3217431b4
--- /dev/null
+++ b/pkgs/development/ocaml-modules/graphics/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchurl, buildDunePackage, dune-configurator, libX11 }:
+
+buildDunePackage rec {
+
+  pname = "graphics";
+  version = "5.1.0";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/ocaml/graphics/releases/download/${version}/graphics-${version}.tbz";
+    sha256 = "16z997mp0ccilaqqvmz3wp7vx0ghaf4ik9qklgd4piklcl1yv5n5";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ libX11 ];
+
+  meta = {
+    homepage = "https://github.com/ocaml/graphics";
+    description = "A set of portable drawing primitives";
+    license = lib.licenses.lgpl2;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/janestreet/default.nix b/pkgs/development/ocaml-modules/janestreet/default.nix
index a8fff893d5c..ff93d65357a 100644
--- a/pkgs/development/ocaml-modules/janestreet/default.nix
+++ b/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -515,13 +515,6 @@ rec {
     meta.description = "Micro-benchmarking library for OCaml";
   };
 
-  core_profiler = janePackage {
-    pname = "core_profiler";
-    hash = "1kaaw3jp3qarbd9rgpjfb9md0dqblf2bxiqb245sqmx4c1346v1c";
-    propagatedBuildInputs = [ core_extended ];
-    meta.description = "Profiling library";
-  };
-
   csvfields = janePackage {
     pname = "csvfields";
     hash = "10zw4fjlniivfdzzz79lnbvcjnhk5y16m1p8mn4xbs23n6mbix0f";
@@ -565,14 +558,6 @@ rec {
     meta.description = "Helpers for incremental operations on map like data structures";
   };
 
-  ocaml_plugin = janePackage {
-    pname = "ocaml_plugin";
-    hash = "0fal5j59qkbksg6ak1ngn92pcgg3f9gwfaglpxb7l6bck20kaigp";
-    buildInputs = [ ocamlbuild ];
-    propagatedBuildInputs = [ async ];
-    meta.description = "Automatically build and dynlink ocaml source files";
-  };
-
   parsexp_io = janePackage {
     pname = "parsexp_io";
     hash = "0rhdl40jiirvv6fhgjk50n8wzs3jly5d8dyyyfgpjgl39mwkjjnb";
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
index c7586ad23e4..91ccbc9ca9e 100644
--- a/pkgs/development/ocaml-modules/javalib/default.nix
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -8,11 +8,11 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-javalib-${version}";
-  version = "3.1.1";
+  version = "3.2.1";
 
   src = fetchzip {
     url = "https://github.com/javalib-team/javalib/archive/v${version}.tar.gz";
-    sha256 = "1myrf7kw7pi04pmp0bi4747nj4h4vfxlla05sz2hp4w8k76iscld";
+    sha256 = "1fkdaiiza145yv0r1cm0n2hsrr0rbn6b27vs66njgv405zwn3vbn";
   };
 
   buildInputs = [ which ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/lacaml/default.nix b/pkgs/development/ocaml-modules/lacaml/default.nix
index 4b35ce25fde..e576fa998c2 100644
--- a/pkgs/development/ocaml-modules/lacaml/default.nix
+++ b/pkgs/development/ocaml-modules/lacaml/default.nix
@@ -4,13 +4,13 @@ assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.05.0";
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-lacaml";
-  version = "11.0.3";
+  version = "11.0.6";
 
   src = fetchFromGitHub {
     owner = "mmottl";
     repo = "lacaml";
     rev = version;
-    sha256 = "1aflg07cc9ak9mg1cr0qr368c9s141glwlarl5nhalf6hhq7ibcb";
+    sha256 = "1vn5441fg45d0ni9x87dhz2x4jrmvg3w7qk3vvcrd436snvh07g0";
   };
 
   buildInputs = [ ocaml findlib dune base stdio ];
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index fe276ac6e94..7d9a0573db7 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -2,14 +2,17 @@
 , gnutls, nettle
 }:
 
-let version = "4.1.6"; in
+if stdenv.lib.versionOlder ocaml.version "4.02"
+then throw "ocamlnet is not available for OCaml ${ocaml.version}"
+else
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocamlnet-${version}";
+  version = "4.1.7";
 
   src = fetchurl {
     url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
-    sha256 = "1j0k0drybcjpysvs8xpq3cnpg3wqk6d5sy7y1h5rq8jk7hrirf0k";
+    sha256 = "0r9gl0lsgxk2achixxqzm8bm5l9jwc4vwihf0rvxxa9v9q9vfdhi";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -37,7 +40,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
-    homepage = http://projects.camlcity.org/projects/ocamlnet.html;
+    homepage = "http://projects.camlcity.org/projects/ocamlnet.html";
     description = "A library implementing Internet protocols (http, cgi, email, etc.) for OCaml";
     license = "Most Ocamlnet modules are released under the zlib/png license. The HTTP server module Nethttpd is, however, under the GPL.";
     platforms = ocaml.meta.platforms or [];
diff --git a/pkgs/development/ocaml-modules/ocf/default.nix b/pkgs/development/ocaml-modules/ocf/default.nix
index 0452b1b7dfe..e90d13de3b3 100644
--- a/pkgs/development/ocaml-modules/ocf/default.nix
+++ b/pkgs/development/ocaml-modules/ocf/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ppx_tools, yojson }:
 
 if stdenv.lib.versionOlder ocaml.version "4.03"
+|| stdenv.lib.versionAtLeast ocaml.version "4.08"
 then throw "ocf not supported for ocaml ${ocaml.version}"
 else
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/ocaml-modules/ocsigen-start/default.nix b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
index bbdf3d56a47..6d8beb8b07b 100644
--- a/pkgs/development/ocaml-modules/ocsigen-start/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-start/default.nix
@@ -1,15 +1,14 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, camlp4, ocsigen-toolkit, pgocaml, macaque, safepass, yojson
-, js_of_ocaml-camlp4, lwt_camlp4
+{ stdenv, fetchFromGitHub, ocaml, findlib, ocsigen-toolkit, pgocaml_ppx, macaque, safepass, yojson
 , cohttp-lwt-unix
 , resource-pooling
 }:
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocsigen-start-${version}";
-  version = "2.7.0";
+  version = "2.16.1";
 
-  buildInputs = [ ocaml findlib js_of_ocaml-camlp4 lwt_camlp4 ];
-  propagatedBuildInputs = [ pgocaml macaque safepass ocsigen-toolkit yojson resource-pooling cohttp-lwt-unix camlp4 ];
+  buildInputs = [ ocaml findlib ];
+  propagatedBuildInputs = [ pgocaml_ppx safepass ocsigen-toolkit yojson resource-pooling cohttp-lwt-unix ];
 
   patches = [ ./templates-dir.patch ];
 
@@ -23,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = "ocsigen-start";
     rev = version;
-    sha256 = "1kp9g679xnff2ybwsicnc9c203hi9ri1ijbpp6221b2sj6zxf2wc";
+    sha256 = "1pzpyrd3vbhc7zvzh6bv44793ikx5bglpd5p4wk5jj65v1w39jwd";
   };
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
index 6c9e72f95d7..2ac54eb4e3c 100644
--- a/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-toolkit/default.nix
@@ -5,9 +5,9 @@
 stdenv.mkDerivation rec {
  pname = "ocsigen-toolkit";
  name = "ocaml${ocaml.version}-${pname}-${version}";
- version = "2.2.0";
+ version = "2.5.0";
 
- propagatedBuildInputs = [ calendar eliom js_of_ocaml-ppx_deriving_json ];
+ propagatedBuildInputs = [ calendar js_of_ocaml-ppx_deriving_json eliom ];
  buildInputs = [ ocaml findlib opaline ];
 
  installPhase =
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "ocsigen";
     repo = pname;
     rev = version;
-    sha256 = "0qy6501jf81qcmkbicgrb1x4pxsjkhr40plwdn09w37d8vx9va3s";
+    sha256 = "0hll8qr363pbb65jnr2w36zcbplbwn08xb7826ayiwigakj783p9";
   };
 
   createFindlibDestdir = true;
diff --git a/pkgs/development/ocaml-modules/owl-base/default.nix b/pkgs/development/ocaml-modules/owl-base/default.nix
index 12cd5436308..9d2bf74a3ac 100644
--- a/pkgs/development/ocaml-modules/owl-base/default.nix
+++ b/pkgs/development/ocaml-modules/owl-base/default.nix
@@ -2,13 +2,15 @@
 
 buildDunePackage rec {
   pname = "owl-base";
-  version = "0.7.2";
+  version = "0.8.0";
+
+  useDune2 = true;
 
   src = fetchFromGitHub {
     owner  = "owlbarn";
     repo   = "owl";
     rev    = version;
-    sha256 = "1a2lbhywrb3bmm4k48wwbp6iszpd3aj1f23v10i78cbqm5slk6dj";
+    sha256 = "1j3xmr4izfznmv8lbn8vkx9c77py2xr6fqyn6ypjlf5k9b8g4mmw";
   };
 
   propagatedBuildInputs = [ stdlib-shims ];
diff --git a/pkgs/development/ocaml-modules/owl/default.nix b/pkgs/development/ocaml-modules/owl/default.nix
index 0cc1c1db42a..7fa912d808d 100644
--- a/pkgs/development/ocaml-modules/owl/default.nix
+++ b/pkgs/development/ocaml-modules/owl/default.nix
@@ -1,14 +1,26 @@
-{ stdenv, buildDunePackage, fetchFromGitHub, alcotest
-, eigen, stdio, stdlib-shims, openblasCompat, owl-base
+{ stdenv
+, buildDunePackage
+, dune-configurator
+, fetchFromGitHub
+, alcotest
+, eigen
+, stdio
+, stdlib-shims
+, openblasCompat
+, owl-base
+, npy
 }:
 
 buildDunePackage rec {
   pname = "owl";
 
-  inherit (owl-base) version src meta;
+  inherit (owl-base) version src meta useDune2;
 
   checkInputs = [ alcotest ];
-  propagatedBuildInputs = [ eigen stdio stdlib-shims openblasCompat owl-base ];
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [
+    eigen stdio stdlib-shims openblasCompat owl-base npy
+  ];
 
   doCheck = !stdenv.isDarwin;  # https://github.com/owlbarn/owl/issues/462
 }
diff --git a/pkgs/development/ocaml-modules/parmap/default.nix b/pkgs/development/ocaml-modules/parmap/default.nix
index a37120b2496..5127dc3b1e6 100644
--- a/pkgs/development/ocaml-modules/parmap/default.nix
+++ b/pkgs/development/ocaml-modules/parmap/default.nix
@@ -1,12 +1,12 @@
-{ lib, buildDunePackage, fetchzip }:
+{ lib, buildDunePackage, fetchurl }:
 
 buildDunePackage rec {
   pname = "parmap";
-  version = "1.1";
+  version = "1.1.1";
 
-  src = fetchzip {
+  src = fetchurl {
     url = "https://github.com/rdicosmo/${pname}/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "13ahqaga1palf0s0dll512cl7k43sllmwvw6r03y70kfmky1j114";
+    sha256 = "1pci7b1jqxkgmrbhr0p5j98i4van5nfmmb3sak8cyvxhwgna93j4";
   };
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/pgocaml/ppx.nix b/pkgs/development/ocaml-modules/pgocaml/ppx.nix
new file mode 100644
index 00000000000..f8bc4a40e7f
--- /dev/null
+++ b/pkgs/development/ocaml-modules/pgocaml/ppx.nix
@@ -0,0 +1,8 @@
+{ buildDunePackage, pgocaml, ppx_tools, ppx_tools_versioned, rresult }:
+
+buildDunePackage {
+  pname = "pgocaml_ppx";
+  inherit (pgocaml) src version meta;
+
+  propagatedBuildInputs = [ pgocaml ppx_tools ppx_tools_versioned rresult ];
+}
diff --git a/pkgs/development/ocaml-modules/phylogenetics/default.nix b/pkgs/development/ocaml-modules/phylogenetics/default.nix
index e665a323578..87e88cbf496 100644
--- a/pkgs/development/ocaml-modules/phylogenetics/default.nix
+++ b/pkgs/development/ocaml-modules/phylogenetics/default.nix
@@ -5,6 +5,8 @@ buildDunePackage rec {
   pname = "phylogenetics";
   version = "unstable-2019-11-15";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner  = "biocaml";
     repo   = pname;
@@ -20,7 +22,7 @@ buildDunePackage rec {
   doCheck = false;  # many tests require bppsuite
 
   meta = with stdenv.lib; {
-    inherit (std.meta) homepage;
+    inherit (src.meta) homepage;
     description = "Bioinformatics library for Ocaml";
     maintainers = [ maintainers.bcdarwin ];
     license = licenses.cecill-b;
diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index d45298972cc..612a12bb418 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -4,11 +4,11 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving";
-  version = "4.4";
+  version = "4.4.1";
 
   src = fetchzip {
     url = "https://github.com/ocaml-ppx/ppx_deriving/archive/v${version}.tar.gz";
-    sha256 = "0b2gaxlh54pcz3b4891yd143nx852mwggcy0yhq8g85dl3iisxzq";
+    sha256 = "1map50w2a35y83bcd19p9yakdkhp04z5as2j2wlygi0b6s0a9vba";
   };
 
   buildInputs = [ ppxfind cppo ounit ];
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
index d8a8f22ae70..5faaca81039 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
@@ -4,7 +4,7 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving_yojson";
-  version = "3.5.1";
+  version = "3.5.2";
 
   minimumOCamlVersion = "4.04";
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
     owner = "ocaml-ppx";
     repo = "ppx_deriving_yojson";
     rev = "v${version}";
-    sha256 = "13nscby635vab9jf5pl1wgmdmqw192nf2r26m3gr01hp3bpn38zh";
+    sha256 = "1vbhmnhnj1aa4jrp8xqi52nggwj7vrml83z2j0r0qzvl65v02mc0";
   };
 
   buildInputs = [ ppxfind ounit ];
diff --git a/pkgs/development/ocaml-modules/ppx_import/default.nix b/pkgs/development/ocaml-modules/ppx_import/default.nix
index bdcc6568ffe..f4977992759 100644
--- a/pkgs/development/ocaml-modules/ppx_import/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_import/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, ocaml
+{ lib, fetchurl, buildDunePackage, ocaml
 , ounit, ppx_deriving, ppx_tools_versioned
 }:
 
@@ -8,24 +8,21 @@ else
 
 buildDunePackage rec {
   pname = "ppx_import";
-  version = "1.5-3";
+  version = "1.7.1";
 
-  src = fetchFromGitHub {
-    owner = "ocaml-ppx";
-    repo = "ppx_import";
-    rev = "bd627d5afee597589761d6fee30359300b5e1d80";
-    sha256 = "1f9bphif1izhyx72hvwpkd9kxi9lfvygaicy6nbxyp6qgc87z4nm";
+  src = fetchurl {
+    url = "https://github.com/ocaml-ppx/ppx_import/releases/download/v${version}/ppx_import-v${version}.tbz";
+    sha256 = "16dyxfb7syz659rqa7yq36ny5vzl7gkqd7f4m6qm2zkjc1gc8j4v";
   };
 
   buildInputs = [ ounit ppx_deriving ];
   propagatedBuildInputs = [ ppx_tools_versioned ];
 
   doCheck = true;
-  checkTarget = "test";
 
   meta = {
     description = "A syntax extension that allows to pull in types or signatures from other compiled interface files";
     license = lib.licenses.mit;
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/ocaml-ppx/ppx_import";
   };
 }
diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix
index 984906342bc..8173fc87aba 100644
--- a/pkgs/development/ocaml-modules/ppx_tools/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib }:
+{ stdenv, fetchFromGitHub, buildDunePackage, ocaml, findlib }:
 
 let param = {
   "4.02" = {
@@ -24,18 +24,39 @@ let param = {
     version = "5.3+4.08.0";
     sha256 = "0vdmhs3hpmh5iclx4lzgdpf362m4l35zprxs73r84z1yhr4jcr4m"; };
   "4.09" = {
-    version = "5.3+4.08.0";
-    sha256 = "0vdmhs3hpmh5iclx4lzgdpf362m4l35zprxs73r84z1yhr4jcr4m"; };
+    version = "6.0+4.08.0";
+    sha256 = "056cmdajap8mbb8k0raj0cq0y4jf7pf5x0hlivm92w2v7xxf59ns"; };
+  "4.10" = {
+    version = "6.1+4.10.0";
+    sha256 = "0ccx2g4zpwnv52bbzhgxji1nvzmn80jwiqalwwc4s60i9qg51llw"; };
 }.${ocaml.meta.branch};
 in
-  stdenv.mkDerivation {
-    name = "ocaml${ocaml.version}-ppx_tools-${param.version}";
-    src = fetchFromGitHub {
+
+let src = fetchFromGitHub {
       owner = "alainfrisch";
-      repo = "ppx_tools";
-      rev = if param ? rev then param.rev else param.version;
+      repo = pname;
+      rev = param.rev or param.version;
       inherit (param) sha256;
     };
+    pname = "ppx_tools";
+    meta = with stdenv.lib; {
+      description = "Tools for authors of ppx rewriters";
+      homepage = http://www.lexifi.com/ppx_tools;
+      license = licenses.mit;
+      maintainers = with maintainers; [ vbgl ];
+    };
+in
+if stdenv.lib.versionAtLeast param.version "6.0"
+then
+  buildDunePackage {
+    inherit pname src meta;
+    inherit (param) version;
+  }
+else
+  stdenv.mkDerivation {
+    name = "ocaml${ocaml.version}-${pname}-${param.version}";
+
+    inherit src;
 
     nativeBuildInputs = [ ocaml findlib ];
     buildInputs = [ ocaml findlib ];
@@ -44,11 +65,5 @@ in
 
     dontStrip = true;
 
-    meta = with stdenv.lib; {
-      description = "Tools for authors of ppx rewriters";
-      homepage = http://www.lexifi.com/ppx_tools;
-      license = licenses.mit;
-      platforms = ocaml.meta.platforms or [];
-      maintainers = with maintainers; [ vbgl ];
-    };
+    meta = meta // { inherit (ocaml.meta) platforms; };
   }
diff --git a/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix b/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
index 03cadad7ff4..7fd939e58ec 100644
--- a/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_tools_versioned/default.nix
@@ -2,19 +2,19 @@
 
 buildDunePackage rec {
   pname = "ppx_tools_versioned";
-  version = "5.2.3";
+  version = "5.3.0";
 
   src = fetchFromGitHub {
     owner = "ocaml-ppx";
     repo = pname;
     rev = version;
-    sha256 = "1hcmpnw26zf70a71r3d2c2c0mn8q084gdn1r36ynng6fv9hq6j0y";
+    sha256 = "0c735w9mq49dmvkdw9ahfwh0icsk2sbhnfwmdhpibj86phfm17yj";
   };
 
   propagatedBuildInputs = [ ocaml-migrate-parsetree ];
 
   meta = with lib; {
-    homepage = https://github.com/let-def/ppx_tools_versioned;
+    homepage = "https://github.com/let-def/ppx_tools_versioned";
     description = "Tools for authors of syntactic tools (such as ppx rewriters)";
     license = licenses.gpl2;
     maintainers = [ maintainers.volth ];
diff --git a/pkgs/development/ocaml-modules/ppxlib/default.nix b/pkgs/development/ocaml-modules/ppxlib/default.nix
index 644e1c98c48..bbaf9e27cf4 100644
--- a/pkgs/development/ocaml-modules/ppxlib/default.nix
+++ b/pkgs/development/ocaml-modules/ppxlib/default.nix
@@ -1,16 +1,23 @@
 { stdenv, fetchFromGitHub, buildDunePackage
+, version ? "0.8.1"
 , ocaml-compiler-libs, ocaml-migrate-parsetree, ppx_derivers, stdio
 }:
 
+let sha256 =
+  { "0.8.1" = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
+    "0.12.0" = "1cg0is23c05k1rc94zcdz452p9zn11dpqxm1pnifwx5iygz3w0a1";
+  }."${version}"
+; in
+
 buildDunePackage rec {
   pname = "ppxlib";
-  version = "0.8.1";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "ocaml-ppx";
     repo = pname;
     rev = version;
-    sha256 = "0vm0jajmg8135scbg0x60ivyy5gzv4abwnl7zls2mrw23ac6kml6";
+    inherit sha256;
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/printbox/default.nix b/pkgs/development/ocaml-modules/printbox/default.nix
index 555ccef3495..f2bbfdcec18 100644
--- a/pkgs/development/ocaml-modules/printbox/default.nix
+++ b/pkgs/development/ocaml-modules/printbox/default.nix
@@ -1,8 +1,8 @@
-{ lib, fetchFromGitHub, buildDunePackage, ocaml, mdx }:
+{ lib, fetchFromGitHub, buildDunePackage, uucp, uutf }:
 
 buildDunePackage rec {
   pname = "printbox";
-  version = "0.2";
+  version = "0.4";
 
   minimumOCamlVersion = "4.05";
 
@@ -10,15 +10,15 @@ buildDunePackage rec {
     owner = "c-cube";
     repo = pname;
     rev = version;
-    sha256 = "16nwwpp13hzlcm9xqfxc558afm3i5s802dkj69l9s2vp04lgms5n";
+    sha256 = "0bq2v37v144i00h1zwyqhkfycxailr245n97yff0f7qnidxprix0";
   };
 
-  checkInputs = lib.optional doCheck mdx.bin;
+  checkInputs = lib.optionals doCheck [ uucp uutf ];
 
-  doCheck = !lib.versionAtLeast ocaml.version "4.08";
+  doCheck = true;
 
   meta = {
-    homepage = https://github.com/c-cube/printbox/;
+    homepage = "https://github.com/c-cube/printbox/";
     description = "Allows to print nested boxes, lists, arrays, tables in several formats";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.romildo ];
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
index d0dba6c2cee..c6cda7d0573 100644
--- a/pkgs/development/ocaml-modules/sawja/default.nix
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -1,19 +1,24 @@
-{stdenv, fetchurl, which, perl, ocaml, findlib, javalib }:
-
-assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "3.12";
+{ stdenv, fetchFromGitHub, which, perl, ocaml, findlib, javalib }:
 
 let
   pname = "sawja";
-  version = "1.5.7";
+  version = "1.5.8";
   webpage = "http://sawja.inria.fr/";
 in
+
+if !stdenv.lib.versionAtLeast ocaml.version "4.07"
+then throw "${pname} is not available for OCaml ${ocaml.version}"
+else
+
 stdenv.mkDerivation {
 
   name = "ocaml${ocaml.version}-${pname}-${version}";
 
-  src = fetchurl {
-    url = https://gforge.inria.fr/frs/download.php/file/38117/sawja-1.5.7.tar.bz2;
-    sha256 = "08xv1bq4pragc1g93w4dnbn0mighcjwfp3ixj9jzmhka2vzqm4cc";
+  src = fetchFromGitHub {
+    owner = "javalib-team";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0rawr0jav33rvagm8sxc0arc7ya1fd9w5nng3lhfk8p02f9z8wrp";
   };
 
   buildInputs = [ which perl ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/sedlex/2.nix b/pkgs/development/ocaml-modules/sedlex/2.nix
index 09390a27343..26c35b98339 100644
--- a/pkgs/development/ocaml-modules/sedlex/2.nix
+++ b/pkgs/development/ocaml-modules/sedlex/2.nix
@@ -1,16 +1,15 @@
-{ stdenv
+{ lib
 , fetchFromGitHub
 , fetchurl
+, buildDunePackage
 , ocaml
-, dune
-, findlib
 , gen
 , ppx_tools_versioned
 , ocaml-migrate-parsetree
 , uchar
 }:
 
-if stdenv.lib.versionOlder ocaml.version "4.02.3"
+if lib.versionOlder ocaml.version "4.02.3"
 then throw "sedlex is not available for OCaml ${ocaml.version}"
 else
 
@@ -28,8 +27,8 @@ let
     sha256 = "0gsb1jpj3mnqbjgbavi4l95gl6g4agq58j82km22fdfg63j3w3fk";
   };
 in
-stdenv.mkDerivation rec {
-  name = "ocaml${ocaml.version}-sedlex-${version}";
+buildDunePackage rec {
+  pname = "sedlex";
   version = "2.1";
 
   src = fetchFromGitHub {
@@ -39,7 +38,7 @@ stdenv.mkDerivation rec {
     sha256 = "05f6qa8x3vhpdz1fcnpqk37fpnyyq13icqsk2gww5idjnh6kng26";
   };
 
-  buildInputs = [ ocaml findlib dune ppx_tools_versioned ocaml-migrate-parsetree ];
+  buildInputs = [ ppx_tools_versioned ocaml-migrate-parsetree ];
 
   propagatedBuildInputs = [ gen uchar ];
 
@@ -49,21 +48,14 @@ stdenv.mkDerivation rec {
     ln -s ${PropList} src/generator/data/PropList.txt
   '';
 
-  buildFlags = [ "build" ];
-
-  installPhase = ''
-    make INSTALL_ARGS="--prefix=$out --libdir=$OCAMLFIND_DESTDIR" install
-  '';
-
-  createFindlibDestdir = true;
+  doCheck = true;
 
   dontStrip = true;
 
   meta = {
     homepage = https://github.com/ocaml-community/sedlex;
     description = "An OCaml lexer generator for Unicode";
-    license = stdenv.lib.licenses.mit;
-    inherit (ocaml.meta) platforms;
-    maintainers = [ stdenv.lib.maintainers.marsam ];
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.marsam ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/uri/default.nix b/pkgs/development/ocaml-modules/uri/default.nix
index e17e99cdc67..cfbcc27ba9c 100644
--- a/pkgs/development/ocaml-modules/uri/default.nix
+++ b/pkgs/development/ocaml-modules/uri/default.nix
@@ -4,11 +4,11 @@
 
 buildDunePackage rec {
   pname = "uri";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "1yhrgm3hbn0hh4jdmcrvxinazgg8vrm0vn425sg8ggzblvxk9cwg";
+    sha256 = "0hxc2mshmqxz2qmjya47dzf858s6lsf3xvqswpzprkvhv0zq4ln4";
   };
 
   buildInputs = [ ounit ];
diff --git a/pkgs/development/ocaml-modules/wasm/default.nix b/pkgs/development/ocaml-modules/wasm/default.nix
index e10a67a50a0..fe3d4ea0e86 100644
--- a/pkgs/development/ocaml-modules/wasm/default.nix
+++ b/pkgs/development/ocaml-modules/wasm/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild }:
 
 if !stdenv.lib.versionAtLeast ocaml.version "4.02"
+ || stdenv.lib.versionAtLeast ocaml.version "4.08"
 then throw "wasm is not available for OCaml ${ocaml.version}"
 else