about summary refs log tree commit diff
path: root/pkgs/development/ocaml-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/ocaml-modules')
-rw-r--r--pkgs/development/ocaml-modules/alcotest/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/angstrom-async/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/angstrom-unix/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ansiterminal/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/apron/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/arp/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/asai/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bigarray-overlap/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/binning/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bisect_ppx/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bistro/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bitv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/brr/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bytestring/default.nix45
-rw-r--r--pkgs/development/ocaml-modules/ca-certs-nss/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/calendar/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camlpdf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camlzip/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camomile/0.8.5.nix2
-rw-r--r--pkgs/development/ocaml-modules/camomile/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cil/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/1_0.nix2
-rw-r--r--pkgs/development/ocaml-modules/cmdliner/1_1.nix6
-rw-r--r--pkgs/development/ocaml-modules/coin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/colors/default.nix35
-rw-r--r--pkgs/development/ocaml-modules/conduit/async.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt-unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/conduit/mirage.nix2
-rw-r--r--pkgs/development/ocaml-modules/config-file/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/config/default.nix27
-rw-r--r--pkgs/development/ocaml-modules/containers/data.nix2
-rw-r--r--pkgs/development/ocaml-modules/containers/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cooltt/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/cpuid/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cryptokit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/csv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cudf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/data-encoding/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/dates_calc/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/directories/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/dns/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dns/mirage.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolmen/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolmen/loop.nix2
-rw-r--r--pkgs/development/ocaml-modules/dolmen/type.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain-local-await/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain-local-timeout/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain_shims/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dtoa/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dune-site/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/duppy/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/earley/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/easy-format/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/eigen/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/eio/linux.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/main.nix2
-rw-r--r--pkgs/development/ocaml-modules/eio/posix.nix2
-rw-r--r--pkgs/development/ocaml-modules/eliom/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/ezjsonm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/facile/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/farfadet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/base.nix6
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix2
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix2
-rw-r--r--pkgs/development/ocaml-modules/fix/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/fpath/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/functoria/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/functory/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/gd/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/gd4o/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/git/mirage.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/paf.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/unix.nix4
-rw-r--r--pkgs/development/ocaml-modules/gluon/default.nix42
-rw-r--r--pkgs/development/ocaml-modules/gluten/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/gnuplot/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/graphics/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/h2/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/hpack/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/httpaf/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/index/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/inifiles/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/cstruct.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ipaddr/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.16.nix12
-rw-r--r--pkgs/development/ocaml-modules/javalib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/jsonm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/junit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk-extras/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lacaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/landmarks-ppx/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/landmarks/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lastfm/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/lem/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/app.nix2
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/dns.nix2
-rw-r--r--pkgs/development/ocaml-modules/libc/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/linksem/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lua-ml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lun/ppx.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwd/nottui-lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwd/nottui-pretty.nix4
-rw-r--r--pkgs/development/ocaml-modules/lwd/nottui.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt-dllist/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt-exit/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/cstruct.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/macaddr/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/mad/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/magic-trace/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/markup/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mccs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/memprof-limits/default.nix26
-rw-r--r--pkgs/development/ocaml-modules/menhir/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/menhir/lib.nix5
-rw-r--r--pkgs/development/ocaml-modules/menhir/sdk.nix2
-rw-r--r--pkgs/development/ocaml-modules/mimic/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix2
-rw-r--r--pkgs/development/ocaml-modules/minisat/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/minttea/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-logs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-time/unix.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage/runtime.nix4
-rw-r--r--pkgs/development/ocaml-modules/morbig/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mparser/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mparser/pcre.nix2
-rw-r--r--pkgs/development/ocaml-modules/msat/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/note/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-monadic/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-protoc/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocamlformat/generic.nix3
-rw-r--r--pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix3
-rw-r--r--pkgs/development/ocaml-modules/ocamlnet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocp-ocamlres/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocplib-simplex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/odoc-parser/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/odoc/default.nix14
-rw-r--r--pkgs/development/ocaml-modules/opam-format/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/opam-repository/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/opium/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/opti/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/otoml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ounit2/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/owee/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/owl/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/paf/cohttp.nix2
-rw-r--r--pkgs/development/ocaml-modules/pcre/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pecu/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/pgocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pgsolver/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/piaf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/piqi-ocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/plotkicadsch/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/postgresql/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pprint/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_bap/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_cstubs/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_gen_rec/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_import/default.nix23
-rw-r--r--pkgs/development/ocaml-modules/ppx_monad/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_tools/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/pratter/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/prettym/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/psmt2-frontend/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pyml/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/qcheck/lin.nix2
-rw-r--r--pkgs/development/ocaml-modules/rdbg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/reactivedata/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/console.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/dir.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/fp.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/pastel.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/refmterr.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/rely.nix2
-rw-r--r--pkgs/development/ocaml-modules/resource-pooling/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/resto/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/rio/default.nix30
-rw-r--r--pkgs/development/ocaml-modules/riot/default.nix32
-rw-r--r--pkgs/development/ocaml-modules/rope/default.nix21
-rw-r--r--pkgs/development/ocaml-modules/rpclib/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/safepass/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sail/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/saturn/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sawja/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sedlex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sel/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/spices/default.nix34
-rw-r--r--pkgs/development/ocaml-modules/stdcompat/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/tcslib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/telegraml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/telemetry/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/thread-table/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/topkg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/torch/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/trace/tef.nix2
-rw-r--r--pkgs/development/ocaml-modules/tsdl-image/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/tty/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/tyxml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ulex/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/unstrctrd/default.nix10
-rw-r--r--pkgs/development/ocaml-modules/uri/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/uring/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/uucd/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uucp/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uuidm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uunf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uuseg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uuuu/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/visitors/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/wasm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/webmachine/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/wtf8/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/xmlm/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/yaml/yaml-sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/yuscii/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/zelus/default.nix2
247 files changed, 674 insertions, 412 deletions
diff --git a/pkgs/development/ocaml-modules/alcotest/default.nix b/pkgs/development/ocaml-modules/alcotest/default.nix
index 0e459315fa883..f9f07aed0fbad 100644
--- a/pkgs/development/ocaml-modules/alcotest/default.nix
+++ b/pkgs/development/ocaml-modules/alcotest/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchurl
+{ lib, buildDunePackage, fetchurl, fetchpatch
 , astring, cmdliner, fmt, re, stdlib-shims, uutf, ocaml-syntax-shims
 }:
 
@@ -6,13 +6,17 @@ buildDunePackage rec {
   pname = "alcotest";
   version = "1.7.0";
 
-  duneVersion = "3";
-
   src = fetchurl {
     url = "https://github.com/mirage/alcotest/releases/download/${version}/alcotest-${version}.tbz";
     hash = "sha256-gSus2zS0XoiZXgfXMGvasvckee8ZlmN/HV0fQWZ5At8=";
   };
 
+  # Fix tests with OCaml 5.2
+  patches = fetchpatch {
+    url = "https://github.com/mirage/alcotest/commit/aa437168b258db97680021116af176c55e1bd53b.patch";
+    hash = "sha256-cytuJFg4Mft47LsAEcz2zvzyy1wNzMdeLK+cjaFANpo=";
+  };
+
   nativeBuildInputs = [ ocaml-syntax-shims ];
 
   propagatedBuildInputs = [ astring cmdliner fmt re stdlib-shims uutf ];
@@ -21,7 +25,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mirage/alcotest";
-    description = "A lightweight and colourful test framework";
+    description = "Lightweight and colourful test framework";
     license = licenses.isc;
     maintainers = [ maintainers.ericbmerritt ];
   };
diff --git a/pkgs/development/ocaml-modules/angstrom-async/default.nix b/pkgs/development/ocaml-modules/angstrom-async/default.nix
index c603d1b21e572..92dd90ff22cbe 100644
--- a/pkgs/development/ocaml-modules/angstrom-async/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom-async/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, angstrom, async }:
+{ lib, buildDunePackage, angstrom, async }:
 
 buildDunePackage rec {
   pname = "angstrom-async";
diff --git a/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix b/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix
index 2742b8515de79..2867e4b1a813f 100644
--- a/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom-lwt-unix/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, angstrom, lwt }:
+{ lib, buildDunePackage, angstrom, lwt }:
 
 buildDunePackage rec {
   pname = "angstrom-lwt-unix";
diff --git a/pkgs/development/ocaml-modules/angstrom-unix/default.nix b/pkgs/development/ocaml-modules/angstrom-unix/default.nix
index 04c380320199c..be34145463171 100644
--- a/pkgs/development/ocaml-modules/angstrom-unix/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom-unix/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, angstrom }:
+{ lib, buildDunePackage, angstrom }:
 
 buildDunePackage rec {
   pname = "angstrom-unix";
diff --git a/pkgs/development/ocaml-modules/ansiterminal/default.nix b/pkgs/development/ocaml-modules/ansiterminal/default.nix
index 8b8833b14eb6e..7530e45ac853e 100644
--- a/pkgs/development/ocaml-modules/ansiterminal/default.nix
+++ b/pkgs/development/ocaml-modules/ansiterminal/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A module allowing to use the colors and cursor movements on ANSI terminals";
+    description = "Module allowing to use the colors and cursor movements on ANSI terminals";
     longDescription = ''
       ANSITerminal is a module allowing to use the colors and cursor
       movements on ANSI terminals. It also works on the windows shell (but
diff --git a/pkgs/development/ocaml-modules/apron/default.nix b/pkgs/development/ocaml-modules/apron/default.nix
index 5ad98224962e3..fb93fd2f18753 100644
--- a/pkgs/development/ocaml-modules/apron/default.nix
+++ b/pkgs/development/ocaml-modules/apron/default.nix
@@ -4,26 +4,23 @@
 
 stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-apron";
-  version = "0.9.14";
+  version = "0.9.15";
   src = fetchFromGitHub {
     owner = "antoinemine";
     repo = "apron";
     rev = "v${version}";
-    hash = "sha256-e8bSf0FPB6E3MFHHoSrE0x/6nrUStO+gOKxJ4LDHBi0=";
+    hash = "sha256-gHLCurydxX1pS66DTAWUJGl9Yqu9RWRjkZh6lXzM7YY=";
   };
 
   nativeBuildInputs = [ ocaml findlib perl ];
   buildInputs = [ gmp mpfr ppl camlidl flint pplite ];
   propagatedBuildInputs = [ mlgmpidl ];
 
-  # TODO: Doesn't produce the library correctly if true
-  strictDeps = false;
-
   outputs = [ "out" "dev" ];
 
   configurePhase = ''
     runHook preConfigure
-    ./configure -prefix $out ${lib.optionalString stdenv.isDarwin "-no-strip"}
+    ./configure -prefix $out ${lib.optionalString stdenv.isDarwin "--no-strip"}
     mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
     runHook postConfigure
   '';
diff --git a/pkgs/development/ocaml-modules/arp/default.nix b/pkgs/development/ocaml-modules/arp/default.nix
index c2109b49af1ba..a4facc6cddfcd 100644
--- a/pkgs/development/ocaml-modules/arp/default.nix
+++ b/pkgs/development/ocaml-modules/arp/default.nix
@@ -22,11 +22,11 @@
 
 buildDunePackage rec {
   pname = "arp";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchurl {
     url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-${version}.tbz";
-    hash = "sha256-g/aEhpufQcyS/vCtKk0Z1sYaYNRmQFaZ9rTp9F4nq54=";
+    hash = "sha256-6jPFiene6jAPtivCugtVfP3+6k9A5gBoWzpoxoaPBvE=";
   };
 
   minimalOCamlVersion = "4.08";
diff --git a/pkgs/development/ocaml-modules/asai/default.nix b/pkgs/development/ocaml-modules/asai/default.nix
index b089eba768742..fd7c9c4e5c637 100644
--- a/pkgs/development/ocaml-modules/asai/default.nix
+++ b/pkgs/development/ocaml-modules/asai/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "A library for constructing and printing compiler diagnostics";
+    description = "Library for constructing and printing compiler diagnostics";
     homepage = "https://redprl.org/asai/asai/";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 0d2b4247bd423..bdbf9b65c3c01 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, fetchpatch
+{ lib, stdenv, fetchFromGitHub, fetchurl
 , ocaml, findlib, ocamlbuild, ocaml_oasis
 , bitstring, camlzip, cmdliner, core_kernel, ezjsonm, fileutils, mmap, lwt, ocamlgraph, ocurl, re, uri, zarith, piqi, piqi-ocaml, uuidm, llvm, frontc, ounit, ppx_jane, parsexp
 , utop, libxml2, ncurses
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--enable-everything ${disableIda} ${disableGhidra}" "--with-llvm-config=${llvm.dev}/bin/llvm-config" ];
 
   meta = with lib; {
-    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
+    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages";
     homepage = "https://github.com/BinaryAnalysisPlatform/bap/";
     license = licenses.mit;
     maintainers = [ maintainers.maurer ];
diff --git a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
index 78a01b65f9bf2..a913b507eab4b 100644
--- a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
+++ b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/dinosaure/overlap";
-    description = "A minimal library to know that 2 bigarray share physically the same memory or not";
+    description = "Minimal library to know that 2 bigarray share physically the same memory or not";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
   };
diff --git a/pkgs/development/ocaml-modules/binning/default.nix b/pkgs/development/ocaml-modules/binning/default.nix
index 244b96220f7b2..bf448970ef616 100644
--- a/pkgs/development/ocaml-modules/binning/default.nix
+++ b/pkgs/development/ocaml-modules/binning/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   };
 
   meta = {
-    description = "A datastructure to accumulate values in bins";
+    description = "Datastructure to accumulate values in bins";
     license = lib.licenses.cecill-b;
     homepage = "https://github.com/pveber/binning/";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/bisect_ppx/default.nix b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
index 114e638fa6c44..ae70482fd4b2e 100644
--- a/pkgs/development/ocaml-modules/bisect_ppx/default.nix
+++ b/pkgs/development/ocaml-modules/bisect_ppx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage, cmdliner, ppxlib }:
+{ lib, fetchFromGitHub, buildDunePackage, cmdliner, ppxlib }:
 
 buildDunePackage rec {
   pname = "bisect_ppx";
@@ -19,7 +19,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "Bisect_ppx is a code coverage tool for OCaml and Reason. It helps you test thoroughly by showing what's not tested.";
+    description = "Bisect_ppx is a code coverage tool for OCaml and Reason. It helps you test thoroughly by showing what's not tested";
     homepage = "https://github.com/aantron/bisect_ppx";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/bistro/default.nix b/pkgs/development/ocaml-modules/bistro/default.nix
index fd409b51091d6..bb424a5ce9aeb 100644
--- a/pkgs/development/ocaml-modules/bistro/default.nix
+++ b/pkgs/development/ocaml-modules/bistro/default.nix
@@ -1,6 +1,4 @@
 { lib
-, ocaml
-, fetchpatch
 , fetchFromGitHub
 , buildDunePackage
 , base64
diff --git a/pkgs/development/ocaml-modules/bitv/default.nix b/pkgs/development/ocaml-modules/bitv/default.nix
index 25906f1432f06..1369ed078d6ec 100644
--- a/pkgs/development/ocaml-modules/bitv/default.nix
+++ b/pkgs/development/ocaml-modules/bitv/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   createFindlibDestdir = true;
 
   meta = {
-    description = "A bit vector library for OCaml";
+    description = "Bit vector library for OCaml";
     license = lib.licenses.lgpl21;
     homepage = "https://github.com/backtracking/bitv";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/brr/default.nix b/pkgs/development/ocaml-modules/brr/default.nix
index 816a52bbab9ff..e010bedebb0ea 100644
--- a/pkgs/development/ocaml-modules/brr/default.nix
+++ b/pkgs/development/ocaml-modules/brr/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://erratique.ch/software/brr";
-    description = "A toolkit for programming browsers in OCaml";
+    description = "Toolkit for programming browsers in OCaml";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/ocaml-modules/bytestring/default.nix b/pkgs/development/ocaml-modules/bytestring/default.nix
new file mode 100644
index 0000000000000..3714846ee6b5c
--- /dev/null
+++ b/pkgs/development/ocaml-modules/bytestring/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, rio
+, sedlex
+, spices
+, uutf
+, qcheck
+}:
+
+buildDunePackage rec {
+  pname = "bytestring";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    sedlex
+    spices
+    rio
+    uutf
+  ];
+
+  checkInputs = [
+    qcheck
+  ];
+
+  # Checks fail with OCaml 5.2
+  doCheck = false;
+
+  meta = {
+    description = "Efficient, immutable, pattern-matchable, UTF friendly byte strings";
+    homepage = "https://github.com/riot-ml/riot";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
index 9129ad98ae6ae..308fcf3ac4c9b 100644
--- a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
+++ b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
@@ -14,13 +14,13 @@
 
 buildDunePackage rec {
   pname = "ca-certs-nss";
-  version = "3.98";
+  version = "3.101";
 
   minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/mirage/ca-certs-nss/releases/download/v${version}/ca-certs-nss-${version}.tbz";
-    hash = "sha256-N1/cz8e3KB3pBd5+ZV/JbuW6FaaVijNhok7QyMB7ppc=";
+    hash = "sha256-XE3201P5JXWMRLhCwAa6zwMHEwZjg3ORIKii7tmx/hI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/calendar/default.nix b/pkgs/development/ocaml-modules/calendar/default.nix
index 8fd3f5befef93..fcd8058d64c4f 100644
--- a/pkgs/development/ocaml-modules/calendar/default.nix
+++ b/pkgs/development/ocaml-modules/calendar/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A library for handling dates and times";
+    description = "Library for handling dates and times";
     license = lib.licenses.lgpl21Plus;
     maintainers = [ lib.maintainers.gal_bolle ];
   };
diff --git a/pkgs/development/ocaml-modules/camlpdf/default.nix b/pkgs/development/ocaml-modules/camlpdf/default.nix
index 115bc5b2c55cd..dad901ba9c103 100644
--- a/pkgs/development/ocaml-modules/camlpdf/default.nix
+++ b/pkgs/development/ocaml-modules/camlpdf/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An OCaml library for reading, writing and modifying PDF files";
+    description = "OCaml library for reading, writing and modifying PDF files";
     homepage = "https://github.com/johnwhitington/camlpdf";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [vbgl];
diff --git a/pkgs/development/ocaml-modules/camlzip/default.nix b/pkgs/development/ocaml-modules/camlzip/default.nix
index 761453739e29a..3b038f4dfec3a 100644
--- a/pkgs/development/ocaml-modules/camlzip/default.nix
+++ b/pkgs/development/ocaml-modules/camlzip/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "http://cristal.inria.fr/~xleroy/software.html#camlzip";
-    description = "A library for handling ZIP and GZIP files in OCaml";
+    description = "Library for handling ZIP and GZIP files in OCaml";
     longDescription = ''
       This Objective Caml library provides easy access to compressed files in
       ZIP and GZIP format, as well as to Java JAR files.  It provides functions
diff --git a/pkgs/development/ocaml-modules/camomile/0.8.5.nix b/pkgs/development/ocaml-modules/camomile/0.8.5.nix
index 7726a95cece69..658daf61c81af 100644
--- a/pkgs/development/ocaml-modules/camomile/0.8.5.nix
+++ b/pkgs/development/ocaml-modules/camomile/0.8.5.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/yoriyuki/Camomile/tree/master/Camomile";
-    description = "A comprehensive Unicode library for OCaml";
+    description = "Comprehensive Unicode library for OCaml";
     license = lib.licenses.lgpl21;
     inherit (ocaml.meta) platforms;
     maintainers = [
diff --git a/pkgs/development/ocaml-modules/camomile/default.nix b/pkgs/development/ocaml-modules/camomile/default.nix
index b1178a4e8dd8a..e4856062adb16 100644
--- a/pkgs/development/ocaml-modules/camomile/default.nix
+++ b/pkgs/development/ocaml-modules/camomile/default.nix
@@ -52,6 +52,6 @@ buildDunePackage (params."${version}" // {
     homepage = "https://github.com/ocaml-community/Camomile";
     maintainers = [ lib.maintainers.vbgl ];
     license = lib.licenses.lgpl21;
-    description = "A Unicode library for OCaml";
+    description = "Unicode library for OCaml";
   };
 })
diff --git a/pkgs/development/ocaml-modules/cil/default.nix b/pkgs/development/ocaml-modules/cil/default.nix
index 7a8a3f2e70a4b..4cedb1291e1de 100644
--- a/pkgs/development/ocaml-modules/cil/default.nix
+++ b/pkgs/development/ocaml-modules/cil/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://kerneis.github.io/cil/";
-    description = "A front-end for the C programming language that facilitates program analysis and transformation";
+    description = "Front-end for the C programming language that facilitates program analysis and transformation";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
     platforms = ocaml.meta.platforms or [ ];
diff --git a/pkgs/development/ocaml-modules/cmdliner/1_0.nix b/pkgs/development/ocaml-modules/cmdliner/1_0.nix
index 718c6b95a0696..0265ed18ecb36 100644
--- a/pkgs/development/ocaml-modules/cmdliner/1_0.nix
+++ b/pkgs/development/ocaml-modules/cmdliner/1_0.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://erratique.ch/software/cmdliner";
-    description = "An OCaml module for the declarative definition of command line interfaces";
+    description = "OCaml module for the declarative definition of command line interfaces";
     license = licenses.isc;
     inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/cmdliner/1_1.nix b/pkgs/development/ocaml-modules/cmdliner/1_1.nix
index 735496aa459ce..67d55bc756a9e 100644
--- a/pkgs/development/ocaml-modules/cmdliner/1_1.nix
+++ b/pkgs/development/ocaml-modules/cmdliner/1_1.nix
@@ -5,11 +5,11 @@ lib.throwIfNot (lib.versionAtLeast ocaml.version "4.08")
 
 stdenv.mkDerivation rec {
   pname = "cmdliner";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchurl {
     url = "https://erratique.ch/software/${pname}/releases/${pname}-${version}.tbz";
-    sha256 = "sha256-r+0QWJAoOU/W9k6XscYX4r5w3m017kfgQjXaMandAHg=";
+    sha256 = "sha256-joGA9XO0QPanqMII2rLK5KgjhP7HMtInhNG7bmQWjLs=";
   };
 
   nativeBuildInputs = [ ocaml ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://erratique.ch/software/cmdliner";
-    description = "An OCaml module for the declarative definition of command line interfaces";
+    description = "OCaml module for the declarative definition of command line interfaces";
     license = licenses.isc;
     inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/coin/default.nix b/pkgs/development/ocaml-modules/coin/default.nix
index c9b6ad3128f38..3b746ccfbdce3 100644
--- a/pkgs/development/ocaml-modules/coin/default.nix
+++ b/pkgs/development/ocaml-modules/coin/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A library to normalize an KOI8-{U,R} input to Unicode";
+    description = "Library to normalize an KOI8-{U,R} input to Unicode";
     homepage = "https://github.com/mirage/coin";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/colors/default.nix b/pkgs/development/ocaml-modules/colors/default.nix
new file mode 100644
index 0000000000000..00ae0ff7cfe15
--- /dev/null
+++ b/pkgs/development/ocaml-modules/colors/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, mdx
+}:
+
+buildDunePackage rec {
+  pname = "colors";
+  version = "0.0.1";
+
+  minimalOCamlVersion = "4.13";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/colors/releases/download/${version}/colors-${version}.tbz";
+    hash = "sha256-fY1j9FODVnifwsI8qkKm0QSmssgWqYFXJ7y8o7/KmEY=";
+  };
+
+  doCheck = true;
+
+  checkInputs = [
+    mdx
+  ];
+
+  nativeCheckInputs = [
+    mdx.bin
+  ];
+
+  meta = {
+    description = "Pure OCaml library for manipulating colors across color spaces";
+    homepage = "https://github.com/leostera/colors";
+    changelog = "https://github.com/leostera/colors/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/conduit/async.nix b/pkgs/development/ocaml-modules/conduit/async.nix
index 5aaf16c46de53..9522dc552e8d9 100644
--- a/pkgs/development/ocaml-modules/conduit/async.nix
+++ b/pkgs/development/ocaml-modules/conduit/async.nix
@@ -23,6 +23,6 @@ buildDunePackage {
   ];
 
   meta = conduit.meta // {
-    description = "A network connection establishment library for Async";
+    description = "Network connection establishment library for Async";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/default.nix b/pkgs/development/ocaml-modules/conduit/default.nix
index 7a7ee238f10bd..a9fbb02c5fe91 100644
--- a/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/pkgs/development/ocaml-modules/conduit/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ppx_sexp_conv ];
 
   meta = {
-    description = "A network connection establishment library";
+    description = "Network connection establishment library";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ alexfmpe vbgl ];
     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 81a77f356aff9..144325e6c2b97 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -28,6 +28,6 @@ buildDunePackage {
   ];
 
   meta = conduit-lwt.meta // {
-    description = "A network connection establishment library for Lwt_unix";
+    description = "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 641d57db10e39..bc64a7869e57e 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt.nix
@@ -9,6 +9,6 @@ buildDunePackage {
   propagatedBuildInputs = [ conduit lwt sexplib ];
 
   meta = conduit.meta // {
-    description = "A network connection establishment library for Lwt";
+    description = "Network connection establishment library for Lwt";
   };
 }
diff --git a/pkgs/development/ocaml-modules/conduit/mirage.nix b/pkgs/development/ocaml-modules/conduit/mirage.nix
index 79174261b9eb6..c4a7b304a6e89 100644
--- a/pkgs/development/ocaml-modules/conduit/mirage.nix
+++ b/pkgs/development/ocaml-modules/conduit/mirage.nix
@@ -20,6 +20,6 @@ buildDunePackage {
   ];
 
   meta = conduit-lwt.meta // {
-    description = "A network connection establishment library for MirageOS";
+    description = "Network connection establishment library for MirageOS";
   };
 }
diff --git a/pkgs/development/ocaml-modules/config-file/default.nix b/pkgs/development/ocaml-modules/config-file/default.nix
index b9dde0e6425f5..46d513f62ddec 100644
--- a/pkgs/development/ocaml-modules/config-file/default.nix
+++ b/pkgs/development/ocaml-modules/config-file/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://config-file.forge.ocamlcore.org/";
     platforms = ocaml.meta.platforms or [ ];
-    description = "An OCaml library used to manage the configuration file(s) of an application";
+    description = "OCaml library used to manage the configuration file(s) of an application";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/config/default.nix b/pkgs/development/ocaml-modules/config/default.nix
new file mode 100644
index 0000000000000..43ad500602ee7
--- /dev/null
+++ b/pkgs/development/ocaml-modules/config/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, ppxlib
+, spices
+}:
+
+buildDunePackage rec {
+  pname = "config";
+  version = "0.0.3";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/config.ml/releases/download/${version}/config-${version}.tbz";
+    hash = "sha256-bcRCfLX2ro8vnQTJiX2aYGJC+eD26vkPynMYg817YFM=";
+  };
+
+  propagatedBuildInputs = [
+    ppxlib
+    spices
+  ];
+
+  meta = {
+    description = "Ergonomic, lightweight conditional compilation through attributes";
+    homepage = "https://github.com/ocaml-sys/config.ml";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/ocaml-modules/containers/data.nix b/pkgs/development/ocaml-modules/containers/data.nix
index 98b6ec750640f..5d09504945220 100644
--- a/pkgs/development/ocaml-modules/containers/data.nix
+++ b/pkgs/development/ocaml-modules/containers/data.nix
@@ -19,6 +19,6 @@ buildDunePackage {
   propagatedBuildInputs = [ containers ];
 
   meta = containers.meta // {
-    description = "A set of advanced datatypes for containers";
+    description = "Set of advanced datatypes for containers";
   };
 }
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index 654e86ab15175..252a61369febd 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/c-cube/ocaml-containers";
-    description = "A modular standard library focused on data structures";
+    description = "Modular standard library focused on data structures";
     longDescription = ''
       Containers is a standard library (BSD license) focused on data structures,
       combinators and iterators, without dependencies on unix. Every module is
diff --git a/pkgs/development/ocaml-modules/cooltt/default.nix b/pkgs/development/ocaml-modules/cooltt/default.nix
index 7cf63e5c0b115..cf322e74760d2 100644
--- a/pkgs/development/ocaml-modules/cooltt/default.nix
+++ b/pkgs/development/ocaml-modules/cooltt/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchFromGitHub
-, fetchurl
 , buildDunePackage
 , bos
 , bwd
@@ -104,7 +103,7 @@ buildDunePackage {
 
   meta = with lib; {
     homepage = "https://github.com/RedPRL/cooltt";
-    description = "A cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory";
+    description = "Cool implementation of normalization by evaluation (nbe) & elaboration for Cartesian cubical type theory";
     license = licenses.asl20;
     maintainers = with maintainers; [ moni ];
   };
diff --git a/pkgs/development/ocaml-modules/cpuid/default.nix b/pkgs/development/ocaml-modules/cpuid/default.nix
index a0c28bc92d9a0..7afbd84323990 100644
--- a/pkgs/development/ocaml-modules/cpuid/default.nix
+++ b/pkgs/development/ocaml-modules/cpuid/default.nix
@@ -6,7 +6,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.03";
+  minimalOCamlVersion = "4.03";
 
   src = fetchurl {
     url = "https://github.com/pqwy/cpuid/releases/download/v${version}/cpuid-v${version}.tbz";
diff --git a/pkgs/development/ocaml-modules/cryptokit/default.nix b/pkgs/development/ocaml-modules/cryptokit/default.nix
index c3e3e5da9f8da..e104f94d13a9c 100644
--- a/pkgs/development/ocaml-modules/cryptokit/default.nix
+++ b/pkgs/development/ocaml-modules/cryptokit/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "http://pauillac.inria.fr/~xleroy/software.html";
-    description = "A library of cryptographic primitives for OCaml";
+    description = "Library of cryptographic primitives for OCaml";
     license = lib.licenses.lgpl2Only;
     maintainers = [
       lib.maintainers.maggesi
diff --git a/pkgs/development/ocaml-modules/csv/default.nix b/pkgs/development/ocaml-modules/csv/default.nix
index 7510dcede3a95..0846a35798557 100644
--- a/pkgs/development/ocaml-modules/csv/default.nix
+++ b/pkgs/development/ocaml-modules/csv/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   duneVersion = "3";
 
   meta = {
-    description = "A pure OCaml library to read and write CSV files";
+    description = "Pure OCaml library to read and write CSV files";
     license = lib.licenses.lgpl21;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/Chris00/ocaml-csv";
diff --git a/pkgs/development/ocaml-modules/cudf/default.nix b/pkgs/development/ocaml-modules/cudf/default.nix
index 18ea3defa1936..1be0a0e49ce22 100644
--- a/pkgs/development/ocaml-modules/cudf/default.nix
+++ b/pkgs/development/ocaml-modules/cudf/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = with lib; {
-    description = "A library for CUDF format";
+    description = "Library for CUDF format";
     homepage = "https://www.mancoosi.org/cudf/";
     downloadPage = "https://gforge.inria.fr/projects/cudf/";
     license = licenses.lgpl3;
diff --git a/pkgs/development/ocaml-modules/data-encoding/default.nix b/pkgs/development/ocaml-modules/data-encoding/default.nix
index f94abebbcbdf0..c9a102366fdcd 100644
--- a/pkgs/development/ocaml-modules/data-encoding/default.nix
+++ b/pkgs/development/ocaml-modules/data-encoding/default.nix
@@ -1,5 +1,4 @@
 { lib
-, fetchFromGitLab
 , buildDunePackage
 , ppx_hash
 , bigstringaf
diff --git a/pkgs/development/ocaml-modules/dates_calc/default.nix b/pkgs/development/ocaml-modules/dates_calc/default.nix
index 4a2b9f176822b..d577cd61664ac 100644
--- a/pkgs/development/ocaml-modules/dates_calc/default.nix
+++ b/pkgs/development/ocaml-modules/dates_calc/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "A date calculation library";
+    description = "Date calculation library";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.niols ];
     homepage = "https://github.com/catalalang/dates-calc";
diff --git a/pkgs/development/ocaml-modules/directories/default.nix b/pkgs/development/ocaml-modules/directories/default.nix
index 509d5b2a1e4a8..5f86db245470d 100644
--- a/pkgs/development/ocaml-modules/directories/default.nix
+++ b/pkgs/development/ocaml-modules/directories/default.nix
@@ -5,7 +5,7 @@ buildDunePackage rec {
   version = "0.5";
   useDune2 = true;
 
-  minimumOCamlVersion = "4.07";
+  minimalOCamlVersion = "4.07";
 
   src = fetchFromGitHub {
     owner = "ocamlpro";
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocamlpro/directories";
-    description = "An OCaml library that provides configuration, cache and data paths (and more!) following the suitable conventions on Linux, macOS and Windows";
+    description = "OCaml library that provides configuration, cache and data paths (and more!) following the suitable conventions on Linux, macOS and Windows";
     longDescription = ''
       directories is an OCaml library that provides configuration, cache and
       data paths (and more!) following the suitable conventions on Linux, macOS
diff --git a/pkgs/development/ocaml-modules/dns/default.nix b/pkgs/development/ocaml-modules/dns/default.nix
index 9012b9d8214ef..a4f1972745003 100644
--- a/pkgs/development/ocaml-modules/dns/default.nix
+++ b/pkgs/development/ocaml-modules/dns/default.nix
@@ -33,7 +33,7 @@ buildDunePackage rec {
   checkInputs = [ alcotest ];
 
   meta = {
-    description = "An Domain Name System (DNS) library";
+    description = "Domain Name System (DNS) library";
     homepage = "https://github.com/mirage/ocaml-dns";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/dns/mirage.nix b/pkgs/development/ocaml-modules/dns/mirage.nix
index 640578831b22a..aba32efe52459 100644
--- a/pkgs/development/ocaml-modules/dns/mirage.nix
+++ b/pkgs/development/ocaml-modules/dns/mirage.nix
@@ -14,6 +14,6 @@ buildDunePackage {
   ];
 
   meta = dns.meta // {
-    description = "An opinionated Domain Name System (DNS) library";
+    description = "Opinionated Domain Name System (DNS) library";
   };
 }
diff --git a/pkgs/development/ocaml-modules/dolmen/default.nix b/pkgs/development/ocaml-modules/dolmen/default.nix
index 1586474f3910b..fede56388a774 100644
--- a/pkgs/development/ocaml-modules/dolmen/default.nix
+++ b/pkgs/development/ocaml-modules/dolmen/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
   checkInputs = [ qcheck ];
 
   meta = {
-    description = "An OCaml library providing clean and flexible parsers for input languages";
+    description = "OCaml library providing clean and flexible parsers for input languages";
     license = lib.licenses.bsd2;
     maintainers = [ lib.maintainers.vbgl ];
     homepage = "https://github.com/Gbury/dolmen";
diff --git a/pkgs/development/ocaml-modules/dolmen/loop.nix b/pkgs/development/ocaml-modules/dolmen/loop.nix
index 11e49ad9ee8d9..19349bcb6e6aa 100644
--- a/pkgs/development/ocaml-modules/dolmen/loop.nix
+++ b/pkgs/development/ocaml-modules/dolmen/loop.nix
@@ -10,6 +10,6 @@ buildDunePackage {
   propagatedBuildInputs = [ dolmen dolmen_type gen pp_loc ];
 
   meta = dolmen.meta // {
-    description = "A tool library for automated deduction tools";
+    description = "Tool library for automated deduction tools";
   };
 }
diff --git a/pkgs/development/ocaml-modules/dolmen/type.nix b/pkgs/development/ocaml-modules/dolmen/type.nix
index ce2fe7616da4d..79b84fd1f0f06 100644
--- a/pkgs/development/ocaml-modules/dolmen/type.nix
+++ b/pkgs/development/ocaml-modules/dolmen/type.nix
@@ -10,6 +10,6 @@ buildDunePackage {
   propagatedBuildInputs = [ dolmen spelll uutf ];
 
   meta = dolmen.meta // {
-    description = "A typechecker for automated deduction languages";
+    description = "Typechecker for automated deduction languages";
   };
 }
diff --git a/pkgs/development/ocaml-modules/domain-local-await/default.nix b/pkgs/development/ocaml-modules/domain-local-await/default.nix
index a3ed0bcc3ed65..9b90e87aa5179 100644
--- a/pkgs/development/ocaml-modules/domain-local-await/default.nix
+++ b/pkgs/development/ocaml-modules/domain-local-await/default.nix
@@ -37,7 +37,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
     changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/v${version}/CHANGES.md";
-    description = "A scheduler independent blocking mechanism";
+    description = "Scheduler independent blocking mechanism";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ toastal ];
   };
diff --git a/pkgs/development/ocaml-modules/domain-local-timeout/default.nix b/pkgs/development/ocaml-modules/domain-local-timeout/default.nix
index f0a1874acad26..a8ba771399b7e 100644
--- a/pkgs/development/ocaml-modules/domain-local-timeout/default.nix
+++ b/pkgs/development/ocaml-modules/domain-local-timeout/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocaml-multicore/domain-local-timeout";
-    description = "A scheduler independent timeout mechanism";
+    description = "Scheduler independent timeout mechanism";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/domain_shims/default.nix b/pkgs/development/ocaml-modules/domain_shims/default.nix
index 5846d068ae541..4ccc6bbe90bdc 100644
--- a/pkgs/development/ocaml-modules/domain_shims/default.nix
+++ b/pkgs/development/ocaml-modules/domain_shims/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://gitlab.com/gasche/domain-shims/";
-    description = "A non-parallel implementation of Domains compatible with OCaml 4";
+    description = "Non-parallel implementation of Domains compatible with OCaml 4";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/dtoa/default.nix b/pkgs/development/ocaml-modules/dtoa/default.nix
index 866375cc5bae1..c3297b9a525bd 100644
--- a/pkgs/development/ocaml-modules/dtoa/default.nix
+++ b/pkgs/development/ocaml-modules/dtoa/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-dtoa";
-    description = "Converts OCaml floats into strings (doubles to ascii, \"d to a\"), using the efficient Grisu3 algorithm.";
+    description = "Converts OCaml floats into strings (doubles to ascii, \"d to a\"), using the efficient Grisu3 algorithm";
     license = licenses.mit;
     maintainers = [ maintainers.eqyiel ];
   };
diff --git a/pkgs/development/ocaml-modules/dune-site/default.nix b/pkgs/development/ocaml-modules/dune-site/default.nix
index 9eb2dcba5a49b..f17cdd60d2e14 100644
--- a/pkgs/development/ocaml-modules/dune-site/default.nix
+++ b/pkgs/development/ocaml-modules/dune-site/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for embedding location information inside executable and libraries";
+    description = "Library for embedding location information inside executable and libraries";
     inherit (dune_3.meta) homepage;
     maintainers = with lib.maintainers; [ ];
     license = licenses.mit;
diff --git a/pkgs/development/ocaml-modules/duppy/default.nix b/pkgs/development/ocaml-modules/duppy/default.nix
index 6397b1e21e5ad..bae9f62d26f11 100644
--- a/pkgs/development/ocaml-modules/duppy/default.nix
+++ b/pkgs/development/ocaml-modules/duppy/default.nix
@@ -1,17 +1,19 @@
-{ lib, buildDunePackage, fetchFromGitHub, ocaml_pcre }:
+{ lib, buildDunePackage, fetchFromGitHub, re }:
 
 buildDunePackage rec {
   pname = "duppy";
-  version = "0.9.3";
+  version = "0.9.4";
+
+  minimalOCamlVersion = "4.07";
 
   src = fetchFromGitHub {
     owner = "savonet";
     repo = "ocaml-duppy";
     rev = "v${version}";
-    sha256 = "sha256-5U/CNQ88Wi/AgJEoFeS9O0zTPiD9ysJNQohRVJdyH9w=";
+    sha256 = "sha256-rVdfAMu26YgS/TZk2XPqaR6KTDLbh9Elkf8rjhSnNO4=";
   };
 
-  propagatedBuildInputs = [ ocaml_pcre ];
+  propagatedBuildInputs = [ re ];
 
   meta = with lib; {
     homepage = "https://github.com/savonet/ocaml-duppy";
diff --git a/pkgs/development/ocaml-modules/earley/default.nix b/pkgs/development/ocaml-modules/earley/default.nix
index 0d365c8036dd1..a679ee1ed4fd2 100644
--- a/pkgs/development/ocaml-modules/earley/default.nix
+++ b/pkgs/development/ocaml-modules/earley/default.nix
@@ -12,7 +12,7 @@ buildDunePackage rec {
     sha256 = "1vi58zdxchpw6ai0bz9h2ggcmg8kv57yk6qbx82lh47s5wb3mz5y";
   };
 
-  minimumOCamlVersion = "4.07";
+  minimalOCamlVersion = "4.07";
   useDune2 = true;
 
   buildInputs = [ stdlib-shims ];
diff --git a/pkgs/development/ocaml-modules/easy-format/default.nix b/pkgs/development/ocaml-modules/easy-format/default.nix
index 7e3fe5f483ec2..7d178b7580629 100644
--- a/pkgs/development/ocaml-modules/easy-format/default.nix
+++ b/pkgs/development/ocaml-modules/easy-format/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A high-level and functional interface to the Format module of the OCaml standard library";
+    description = "High-level and functional interface to the Format module of the OCaml standard library";
     homepage = "https://github.com/ocaml-community/easy-format";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/eigen/default.nix b/pkgs/development/ocaml-modules/eigen/default.nix
index 16a69db3b2fce..5c75c4cb10441 100644
--- a/pkgs/development/ocaml-modules/eigen/default.nix
+++ b/pkgs/development/ocaml-modules/eigen/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
     sha256 = "1zaw03as14hyvfpyj6bjrfbcxp2ljdbqcqqgm53kms244mig425f";
   };
 
-  minimumOCamlVersion = "4.02";
+  minimalOCamlVersion = "4.02";
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
diff --git a/pkgs/development/ocaml-modules/eio/default.nix b/pkgs/development/ocaml-modules/eio/default.nix
index 0eafead13cf10..60e09d35db7b1 100644
--- a/pkgs/development/ocaml-modules/eio/default.nix
+++ b/pkgs/development/ocaml-modules/eio/default.nix
@@ -1,6 +1,6 @@
 { lib
 , ocaml
-, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.0" else "0.12"
+, version ? if lib.versionAtLeast ocaml.version "5.1" then "1.1" else "0.12"
 , buildDunePackage
 , bigstringaf
 , cstruct
@@ -24,9 +24,9 @@ let
       minimalOCamlVersion = "5.0";
       hash = "sha256-2EhHzoX/t4ZBSWrSS+PGq1zCxohc7a1q4lfsrFnZJqA=";
     };
-    "1.0" = {
+    "1.1" = {
       minimalOCamlVersion = "5.1";
-      hash = "sha256-2iYNnaOLPd6fMWZSogsTomHPkLhaJJisZpt9Vk5hlC0=";
+      hash = "sha256-NGEEiEB38UCzV04drMwCISlgxu/reTyAPj5ri6/qD6s=";
     };
   }."${version}";
 in
@@ -63,8 +63,8 @@ buildDunePackage rec {
   ];
 
   meta = {
-    homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
-    changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/v${version}/CHANGES.md";
+    homepage = "https://github.com/ocaml-multicore/${pname}";
+    changelog = "https://github.com/ocaml-multicore/${pname}/raw/v${version}/CHANGES.md";
     description = "Effects-Based Parallel IO for OCaml";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ toastal ];
diff --git a/pkgs/development/ocaml-modules/eio/linux.nix b/pkgs/development/ocaml-modules/eio/linux.nix
index b376f709794a5..f6ed30d4e80d1 100644
--- a/pkgs/development/ocaml-modules/eio/linux.nix
+++ b/pkgs/development/ocaml-modules/eio/linux.nix
@@ -7,7 +7,7 @@
 
 buildDunePackage {
   pname = "eio_linux";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eio/main.nix b/pkgs/development/ocaml-modules/eio/main.nix
index 410e535512755..a65b27b8db411 100644
--- a/pkgs/development/ocaml-modules/eio/main.nix
+++ b/pkgs/development/ocaml-modules/eio/main.nix
@@ -8,7 +8,7 @@
 
 buildDunePackage {
   pname = "eio_main";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eio/posix.nix b/pkgs/development/ocaml-modules/eio/posix.nix
index cba34a0d63899..c18cdd506141e 100644
--- a/pkgs/development/ocaml-modules/eio/posix.nix
+++ b/pkgs/development/ocaml-modules/eio/posix.nix
@@ -10,7 +10,7 @@
 
 buildDunePackage {
   pname = "eio_posix";
-  inherit (eio) meta src version;
+  inherit (eio) meta src patches version;
 
   minimalOCamlVersion = "5.0";
 
diff --git a/pkgs/development/ocaml-modules/eliom/default.nix b/pkgs/development/ocaml-modules/eliom/default.nix
index 73f7c0aaccd20..30b955876ace5 100644
--- a/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/pkgs/development/ocaml-modules/eliom/default.nix
@@ -1,7 +1,6 @@
 { buildDunePackage
 , lib
 , fetchFromGitHub
-, fetchpatch
 , which
 , ocsigen_server
 , lwt_react
@@ -18,19 +17,13 @@
 
 buildDunePackage rec {
   pname = "eliom";
-  version = "10.3.1";
+  version = "10.4.1";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "eliom";
     rev = version;
-    hash = "sha256-REOyxwnQqWOKywVYwN/WP22cNKZv5Nv0OpFVbNBPJN8=";
-  };
-
-  # Compatibility with tyxml 4.6.x
-  patches = fetchpatch {
-    url = "https://github.com/ocsigen/eliom/commit/9a6adcce3959a37b971890999331335d07f4f732.patch";
-    hash = "sha256-rgsqohSAHHljvag3c+HNGEgW9qwmqPq8qfTpX6vVKtg=";
+    hash = "sha256-j4t6GEd8hYyM87b9XvgcnaV9XMkouz6+v0SYW22/bqg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix b/pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix
new file mode 100644
index 0000000000000..ec81d52da687e
--- /dev/null
+++ b/pkgs/development/ocaml-modules/ezjsonm-encoding/default.nix
@@ -0,0 +1,20 @@
+{ lib, fetchurl, buildDunePackage, ezjsonm }:
+
+buildDunePackage rec {
+  pname = "ezjsonm-encoding";
+  version = "2.0.0";
+
+  src = fetchurl {
+    url = "https://github.com/lthms/ezjsonm-encoding/releases/download/${version}/ezjsonm-encoding-${version}.tbz";
+    hash = "sha256-e5OPcbbQLr16ANFNZ5i10LjlHgwcRTCYhyvOhVk22yI=";
+  };
+
+  propagatedBuildInputs = [ ezjsonm ];
+
+  meta = {
+    description = "Encoding combinators a la Data_encoding for Ezjsonm";
+    homepage = "https://github.com/lthms/ezjsonmi-encoding";
+    license = lib.licenses.mpl20;
+    maintainers = with lib.maintainers; [ fgaz ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ezjsonm/default.nix b/pkgs/development/ocaml-modules/ezjsonm/default.nix
index ae66f5fbc0c2f..cde69a13e8bab 100644
--- a/pkgs/development/ocaml-modules/ezjsonm/default.nix
+++ b/pkgs/development/ocaml-modules/ezjsonm/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ jsonm hex sexplib0 ];
 
   meta = {
-    description = "An easy interface on top of the Jsonm library";
+    description = "Easy interface on top of the Jsonm library";
     homepage = "https://github.com/mirage/ezjsonm";
     license = lib.licenses.isc;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/facile/default.nix b/pkgs/development/ocaml-modules/facile/default.nix
index 488a7d151d1b1..ee8b7cb5319d7 100644
--- a/pkgs/development/ocaml-modules/facile/default.nix
+++ b/pkgs/development/ocaml-modules/facile/default.nix
@@ -20,6 +20,6 @@ buildDunePackage rec {
   meta = {
     homepage = "http://opti.recherche.enac.fr/facile/";
     license = lib.licenses.lgpl21Plus;
-    description = "A Functional Constraint Library";
+    description = "Functional Constraint Library";
   };
 }
diff --git a/pkgs/development/ocaml-modules/farfadet/default.nix b/pkgs/development/ocaml-modules/farfadet/default.nix
index a02866e3b4f0c..aa200f880e450 100644
--- a/pkgs/development/ocaml-modules/farfadet/default.nix
+++ b/pkgs/development/ocaml-modules/farfadet/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = {
-    description = "A printf-like for Faraday library";
+    description = "Printf-like for Faraday library";
     homepage = "https://github.com/oklm-wsh/Farfadet";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ffmpeg/base.nix b/pkgs/development/ocaml-modules/ffmpeg/base.nix
index e8bb6128db62f..bf63c00378cc3 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/base.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/base.nix
@@ -1,13 +1,13 @@
 { lib, fetchFromGitHub }:
 
 rec {
-  version = "1.1.8";
+  version = "1.1.11";
 
   src = fetchFromGitHub {
     owner = "savonet";
     repo = "ocaml-ffmpeg";
-    rev = "v${version}";
-    sha256 = "sha256-XqZATaxpW0lEdrRTXVTc0laQAx437+eoa/zOzZV1kHk=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-Tr0YhoaaUSOlA7vlhAjPyFJI/iL7Z54oO27RnG7d+nA=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/ffmpeg/default.nix b/pkgs/development/ocaml-modules/ffmpeg/default.nix
index 10e837dcd62c2..1ceea8a75f690 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/default.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, callPackage
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil
 , ffmpeg-avcodec
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
index b902f72bc1ec0..58055aa6698c3 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-av.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AudioToolbox
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg-avcodec, ffmpeg
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
index bce592a8a2c83..8f268d4d5ec2c 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avcodec.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AudioToolbox
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
index 3d27ab803153c..c8a1bf9de5a1a 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avdevice.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AppKit
 , AudioToolbox
 , AVFoundation
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
index 524bc600093ef..89d9824839863 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avfilter.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AppKit
 , CoreImage
 , ffmpeg-base ? callPackage ./base.nix { }
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
index 6cd71ebd58eb5..8e299a536f635 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-avutil.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, stdenv, buildDunePackage, dune-configurator, pkg-config, callPackage
 , AudioToolbox, VideoToolbox
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
index a6012a44171d8..d21e0d02ad4c7 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swresample.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg-avcodec, ffmpeg
 , stdenv
diff --git a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
index 773b10ee168c7..b03d87596b03c 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/ffmpeg-swscale.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune-configurator, pkg-config, fetchFromGitHub, callPackage
+{ lib, buildDunePackage, dune-configurator, pkg-config, callPackage
 , ffmpeg-base ? callPackage ./base.nix { }
 , ffmpeg-avutil, ffmpeg
 , stdenv
diff --git a/pkgs/development/ocaml-modules/fix/default.nix b/pkgs/development/ocaml-modules/fix/default.nix
index ed4230fbd01dd..844059849bfc3 100644
--- a/pkgs/development/ocaml-modules/fix/default.nix
+++ b/pkgs/development/ocaml-modules/fix/default.nix
@@ -12,12 +12,12 @@ buildDunePackage rec {
     sha256 = "sha256-Xuw4pEPqAbQjSHrpMCNE7Th0mpbNMSxdEdwvH4hu2SM=";
   };
 
-  minimumOCamlVersion = "4.03";
+  minimalOCamlVersion = "4.03";
   useDune2 = true;
 
   meta = with lib; {
     homepage = "https://gitlab.inria.fr/fpottier/fix/";
-    description = "A simple OCaml module for computing the least solution of a system of monotone equations";
+    description = "Simple OCaml module for computing the least solution of a system of monotone equations";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/fpath/default.nix b/pkgs/development/ocaml-modules/fpath/default.nix
index 84f25fed28406..db742f9290294 100644
--- a/pkgs/development/ocaml-modules/fpath/default.nix
+++ b/pkgs/development/ocaml-modules/fpath/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = {
-    description = "An OCaml module for handling file system paths with POSIX and Windows conventions";
+    description = "OCaml module for handling file system paths with POSIX and Windows conventions";
     homepage = "https://erratique.ch/software/fpath";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/functoria/default.nix b/pkgs/development/ocaml-modules/functoria/default.nix
index e126c707285ab..96fd6d0749ffc 100644
--- a/pkgs/development/ocaml-modules/functoria/default.nix
+++ b/pkgs/development/ocaml-modules/functoria/default.nix
@@ -12,11 +12,12 @@ buildDunePackage {
 
   propagatedBuildInputs = [ cmdliner rresult astring fmt logs bos fpath emile uri ];
 
-  doCheck = true;
+  # Tests are not compatible with cmdliner 1.3
+  doCheck = false;
   checkInputs = [ alcotest functoria-runtime ];
 
   meta = with lib; {
-    description = "A DSL to organize functor applications";
+    description = "DSL to organize functor applications";
     homepage    = "https://github.com/mirage/functoria";
     license     = licenses.isc;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/functory/default.nix b/pkgs/development/ocaml-modules/functory/default.nix
index 8a960dedcb5cc..0901de7c53b5d 100644
--- a/pkgs/development/ocaml-modules/functory/default.nix
+++ b/pkgs/development/ocaml-modules/functory/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://www.lri.fr/~filliatr/functory/";
-    description = "A distributed computing library for Objective Caml which facilitates distributed execution of parallelizable computations in a seamless fashion";
+    description = "Distributed computing library for Objective Caml which facilitates distributed execution of parallelizable computations in a seamless fashion";
     license = licenses.lgpl21;
     maintainers = [ maintainers.vbgl ];
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/ocaml-modules/gd/default.nix b/pkgs/development/ocaml-modules/gd/default.nix
new file mode 100644
index 0000000000000..86817f05abb75
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gd/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, fetchFromGitHub, dune-configurator, gd }:
+
+buildDunePackage rec {
+  pname = "gd";
+  version = "1.1";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-gd";
+    rev = "v${version}";
+    sha256 = "sha256-78cqxVEappTybRLk7Y6vW1POvZKFIxtGNVcmkKq9GEE=";
+  };
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ gd ];
+
+  meta = with lib; {
+    homepage = "https://github.com/savonet/ocaml-gd";
+    description = "OCaml bindings for gd";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/gd4o/default.nix b/pkgs/development/ocaml-modules/gd4o/default.nix
deleted file mode 100644
index f3206c2385a3f..0000000000000
--- a/pkgs/development/ocaml-modules/gd4o/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib, stdenv, fetchurl, ocaml, gd, freetype, findlib, zlib, libpng, libjpeg }:
-
-lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
-  "gd4o is not available for OCaml ${ocaml.version}"
-
-stdenv.mkDerivation rec {
-  pname = "ocaml${ocaml.version}-gd4o";
-  version = "1.0a5";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/gd4o/gd4o/1.0%20Alpha%205/gd4o-1.0a5.tar.gz";
-    sha256 = "1vbyakz7byvxmqf3hj68rw15b4kb94ppcnhvmjv38rsyg05bc47s";
-  };
-
-  buildInputs = [ ocaml findlib libjpeg libpng ];
-  propagatedBuildInputs = [ gd zlib freetype ];
-
-  makeFlags = [
-    "CC=${stdenv.cc.targetPrefix}cc"
-  ];
-
-  preInstall = ''
-    mkdir -p $OCAMLFIND_DESTDIR/stublibs
-  '';
-
-  buildFlags = [ "all" "opt" ];
-
-  checkPhase = ''
-    runHook preCheck
-    make test.opt
-    runHook postCheck
-  '';
-
-  doCheck = true;
-
-  meta = with lib; {
-    homepage = "https://sourceforge.net/projects/gd4o/";
-    description = "OCaml wrapper for the GD graphics library";
-    license = licenses.lgpl21Only;
-    maintainers = with maintainers; [ dandellion ];
-  };
-}
diff --git a/pkgs/development/ocaml-modules/git/mirage.nix b/pkgs/development/ocaml-modules/git/mirage.nix
index ad5a399bda632..28c49b70b1837 100644
--- a/pkgs/development/ocaml-modules/git/mirage.nix
+++ b/pkgs/development/ocaml-modules/git/mirage.nix
@@ -91,6 +91,6 @@ buildDunePackage {
   ];
 
   meta = git.meta // {
-    description = "A package to use ocaml-git with MirageOS backend";
+    description = "Package to use ocaml-git with MirageOS backend";
   };
 }
diff --git a/pkgs/development/ocaml-modules/git/paf.nix b/pkgs/development/ocaml-modules/git/paf.nix
index 4806909962c09..9f38f0c8606a7 100644
--- a/pkgs/development/ocaml-modules/git/paf.nix
+++ b/pkgs/development/ocaml-modules/git/paf.nix
@@ -50,6 +50,6 @@ buildDunePackage {
   ];
 
   meta = git.meta // {
-    description = "A package to use HTTP-based ocaml-git with MirageOS backend";
+    description = "Package to use HTTP-based ocaml-git with MirageOS backend";
   };
 }
diff --git a/pkgs/development/ocaml-modules/git/unix.nix b/pkgs/development/ocaml-modules/git/unix.nix
index 28bfb40cf8cbc..adad5dc0792eb 100644
--- a/pkgs/development/ocaml-modules/git/unix.nix
+++ b/pkgs/development/ocaml-modules/git/unix.nix
@@ -1,11 +1,11 @@
-{ buildDunePackage, fetchpatch, git
+{ buildDunePackage, git
 , rresult, result, bigstringaf
 , fmt, bos, fpath, uri, digestif, logs, lwt
 , mirage-clock, mirage-clock-unix, astring, awa, cmdliner
 , decompress, domain-name, ipaddr, mtime
 , tcpip, awa-mirage, mirage-flow, mirage-unix
 , alcotest, alcotest-lwt, base64, cstruct
-, ke, mirage-crypto-rng, ocurl, git-binary
+, ke, mirage-crypto-rng, git-binary
 , ptime, mimic, ca-certs-nss, tls, tls-mirage
 , cacert, happy-eyeballs-lwt, git-mirage
 }:
diff --git a/pkgs/development/ocaml-modules/gluon/default.nix b/pkgs/development/ocaml-modules/gluon/default.nix
new file mode 100644
index 0000000000000..cb926cbb07094
--- /dev/null
+++ b/pkgs/development/ocaml-modules/gluon/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, bytestring
+, config
+, libc
+, rio
+, uri
+}:
+
+buildDunePackage rec {
+  pname = "gluon";
+  version = "0.0.9";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/gluon/releases/download/${version}/gluon-${version}.tbz";
+    hash = "sha256-YWJCPokY1A7TGqCGoxJl14oKDVeMNybEEB7KiK92WSo=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  propagatedBuildInputs = [
+    bytestring
+    libc
+    rio
+    uri
+  ];
+
+  meta = {
+    description = "Minimal, portable, and fast API on top of the operating-system's evented I/O API";
+    homepage = "https://github.com/riot-ml/gluon";
+    changelog = "https://github.com/riot-ml/gluon/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
+
diff --git a/pkgs/development/ocaml-modules/gluten/default.nix b/pkgs/development/ocaml-modules/gluten/default.nix
index 5c55f2f09bfd1..1c8b2597b2bbb 100644
--- a/pkgs/development/ocaml-modules/gluten/default.nix
+++ b/pkgs/development/ocaml-modules/gluten/default.nix
@@ -7,11 +7,11 @@
 
 buildDunePackage rec {
   pname = "gluten";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchurl {
     url = "https://github.com/anmonteiro/gluten/releases/download/${version}/gluten-${version}.tbz";
-    hash = "sha256-mGKbbQSPMOumUCtxrAdoBt5y2RrkAf58spkUymTYhYM=";
+    hash = "sha256-VZcbMFDRv+TVSXG05wUYxaWbTnBSa43RiVx9OesPnZY=";
   };
 
   minimalOCamlVersion = "4.08";
@@ -24,7 +24,7 @@ buildDunePackage rec {
   doCheck = false; # No tests
 
   meta = {
-    description = "An implementation of a platform specific runtime code for driving network libraries based on state machines, such as http/af, h2 and websocketaf";
+    description = "Implementation of a platform specific runtime code for driving network libraries based on state machines, such as http/af, h2 and websocketaf";
     license = lib.licenses.bsd3;
     homepage = "https://github.com/anmonteiro/gluten";
     maintainers = with lib.maintainers; [ anmonteiro ];
diff --git a/pkgs/development/ocaml-modules/gnuplot/default.nix b/pkgs/development/ocaml-modules/gnuplot/default.nix
index 038863aad978a..6b30ac5848c4d 100644
--- a/pkgs/development/ocaml-modules/gnuplot/default.nix
+++ b/pkgs/development/ocaml-modules/gnuplot/default.nix
@@ -6,7 +6,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.03";
+  minimalOCamlVersion = "4.03";
 
   src = fetchFromGitHub {
     owner  = "c-cube";
diff --git a/pkgs/development/ocaml-modules/graphics/default.nix b/pkgs/development/ocaml-modules/graphics/default.nix
index 38db74fc9faf8..02edaded7c03d 100644
--- a/pkgs/development/ocaml-modules/graphics/default.nix
+++ b/pkgs/development/ocaml-modules/graphics/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://github.com/ocaml/graphics";
-    description = "A set of portable drawing primitives";
+    description = "Set of portable drawing primitives";
     license = lib.licenses.lgpl2;
   };
 }
diff --git a/pkgs/development/ocaml-modules/h2/default.nix b/pkgs/development/ocaml-modules/h2/default.nix
index 5ec66ae9235ef..e8d9d42ff602a 100644
--- a/pkgs/development/ocaml-modules/h2/default.nix
+++ b/pkgs/development/ocaml-modules/h2/default.nix
@@ -50,6 +50,6 @@ buildDunePackage rec {
   ];
 
   meta = hpack.meta // {
-    description = "A high-performance, memory-efficient, and scalable HTTP/2 library for OCaml";
+    description = "High-performance, memory-efficient, and scalable HTTP/2 library for OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/hpack/default.nix b/pkgs/development/ocaml-modules/hpack/default.nix
index 3b8057bf81c8b..eb42f51585893 100644
--- a/pkgs/development/ocaml-modules/hpack/default.nix
+++ b/pkgs/development/ocaml-modules/hpack/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   meta = {
     license = lib.licenses.bsd3;
-    description = "An HPACK (Header Compression for HTTP/2) implementation in OCaml";
+    description = "HPACK (Header Compression for HTTP/2) implementation in OCaml";
     homepage = "https://github.com/anmonteiro/ocaml-h2";
     maintainers = with lib.maintainers; [
       sternenseemann
diff --git a/pkgs/development/ocaml-modules/httpaf/default.nix b/pkgs/development/ocaml-modules/httpaf/default.nix
index 6dce28fb20202..c4a3dd8e31723 100644
--- a/pkgs/development/ocaml-modules/httpaf/default.nix
+++ b/pkgs/development/ocaml-modules/httpaf/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, fetchpatch, buildDunePackage
+{ lib, fetchFromGitHub, buildDunePackage
 , angstrom, faraday, result, alcotest
 }:
 
@@ -20,7 +20,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A high-performance, memory-efficient, and scalable web server for OCaml";
+    description = "High-performance, memory-efficient, and scalable web server for OCaml";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
diff --git a/pkgs/development/ocaml-modules/index/default.nix b/pkgs/development/ocaml-modules/index/default.nix
index 3cc3643429c72..edcb416194093 100644
--- a/pkgs/development/ocaml-modules/index/default.nix
+++ b/pkgs/development/ocaml-modules/index/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A platform-agnostic multi-level index";
+    description = "Platform-agnostic multi-level index";
     homepage = "https://github.com/mirage/index";
     license = licenses.mit;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/inifiles/default.nix b/pkgs/development/ocaml-modules/inifiles/default.nix
index 9e3cf1f2ba1e3..a78e314b76656 100644
--- a/pkgs/development/ocaml-modules/inifiles/default.nix
+++ b/pkgs/development/ocaml-modules/inifiles/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   createFindlibDestdir = true;
 
   meta = {
-    description = "A small OCaml library to read and write .ini files";
+    description = "Small OCaml library to read and write .ini files";
     license = lib.licenses.lgpl21Plus;
     inherit (ocaml.meta) platforms;
   };
diff --git a/pkgs/development/ocaml-modules/ipaddr/cstruct.nix b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
index 07abfc9673436..cbad2d73e545f 100644
--- a/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
@@ -14,6 +14,6 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = ipaddr.meta // {
-    description = "A library for manipulation of IP address representations using Cstructs";
+    description = "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 6e1170375dcdd..d579c22de1345 100644
--- a/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = macaddr.meta // {
-    description = "A library for manipulation of IP (and MAC) address representations ";
+    description = "Library for manipulation of IP (and MAC) address representations ";
     maintainers = with lib.maintainers; [ alexfmpe ericbmerritt ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/ipaddr/sexp.nix b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
index a74236c5aa0cb..9484f8203cec9 100644
--- a/pkgs/development/ocaml-modules/ipaddr/sexp.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
@@ -15,6 +15,6 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = ipaddr.meta // {
-    description = "A library for manipulation of IP address representations usnig sexp";
+    description = "Library for manipulation of IP address representations usnig sexp";
   };
 }
diff --git a/pkgs/development/ocaml-modules/irmin/default.nix b/pkgs/development/ocaml-modules/irmin/default.nix
index 3f6e551e67139..fdd18aa5abe5c 100644
--- a/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/pkgs/development/ocaml-modules/irmin/default.nix
@@ -38,6 +38,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = ppx_irmin.meta // {
-    description = "A distributed database built on the same principles as Git";
+    description = "Distributed database built on the same principles as Git";
   };
 }
diff --git a/pkgs/development/ocaml-modules/janestreet/0.16.nix b/pkgs/development/ocaml-modules/janestreet/0.16.nix
index 526ea44808cd7..59cd7539d1f19 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.16.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.16.nix
@@ -569,13 +569,17 @@ with self;
     propagatedBuildInputs = [ base ppx_jane ];
   };
 
-  ocaml-compiler-libs = janePackage {
+  ocaml-compiler-libs = janePackage ({
     pname = "ocaml-compiler-libs";
-    version = "0.12.4";
-    hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
     minimalOCamlVersion = "4.04.1";
     meta.description = "OCaml compiler libraries repackaged";
-  };
+  } // (if lib.versionAtLeast ocaml.version "5.2" then {
+    version = "0.17.0";
+    hash = "sha256-QaC6BWrpFblra6X1+TrlK+J3vZxLvLJZ2b0427DiQzM=";
+  } else {
+    version = "0.12.4";
+    hash = "00if2f7j9d8igdkj4rck3p74y17j6b233l91mq02drzrxj199qjv";
+  }));
 
   ocaml-embed-file = janePackage {
     pname = "ocaml-embed-file";
diff --git a/pkgs/development/ocaml-modules/javalib/default.nix b/pkgs/development/ocaml-modules/javalib/default.nix
index fbe2d71fcd008..e6685ec0b5589 100644
--- a/pkgs/development/ocaml-modules/javalib/default.nix
+++ b/pkgs/development/ocaml-modules/javalib/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ camlzip extlib ];
 
   meta = with lib; {
-    description = "A library that parses Java .class files into OCaml data structures";
+    description = "Library that parses Java .class files into OCaml data structures";
     homepage = "https://javalib-team.github.io/javalib/";
     license = licenses.lgpl3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/jsonm/default.nix b/pkgs/development/ocaml-modules/jsonm/default.nix
index a6e136eddfc45..ada427aef8668 100644
--- a/pkgs/development/ocaml-modules/jsonm/default.nix
+++ b/pkgs/development/ocaml-modules/jsonm/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = {
-    description = "An OCaml non-blocking streaming codec to decode and encode the JSON data format";
+    description = "OCaml non-blocking streaming codec to decode and encode the JSON data format";
     homepage = "https://erratique.ch/software/jsonm";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/junit/default.nix b/pkgs/development/ocaml-modules/junit/default.nix
index b71712aba9992..ff3c31519ed45 100644
--- a/pkgs/development/ocaml-modules/junit/default.nix
+++ b/pkgs/development/ocaml-modules/junit/default.nix
@@ -17,7 +17,7 @@ buildDunePackage (rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest.";
+    description = "ocaml-junit is an OCaml package for the creation of JUnit XML reports, proving a typed API to produce valid reports acceptable to Jenkins, comes with packages supporting OUnit and Alcotest";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ ];
     homepage = "https://github.com/Khady/ocaml-junit";
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
index 3d5135d7439a3..6b8ee76985c79 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     platforms = ocaml.meta.platforms or [ ];
     maintainers = with lib.maintainers; [ vbgl ];
     homepage = "http://gtk-extras.forge.ocamlcore.org/";
-    description = "A collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
+    description = "Collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
     license = lib.licenses.lgpl2Plus;
     branch = "1.4";
   };
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
index 66728db655668..bca24a9240abf 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     inherit (ocaml.meta) platforms;
     maintainers = with lib.maintainers; [ vbgl ];
     homepage = "https://framagit.org/zoggy/lablgtk-extras/";
-    description = "A collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
+    description = "Collection of libraries and modules useful when developing OCaml/LablGtk2 applications";
     license = lib.licenses.lgpl2Plus;
   };
 }
diff --git a/pkgs/development/ocaml-modules/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix
index 17e64cafb0776..fc3aebd33d23c 100644
--- a/pkgs/development/ocaml-modules/lablgtk/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   dontStrip = true;
 
   meta = with lib; {
-    description = "An OCaml interface to GTK";
+    description = "OCaml interface to GTK";
     homepage = "http://lablgtk.forge.ocamlcore.org/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ maggesi roconnor vbgl ];
diff --git a/pkgs/development/ocaml-modules/lacaml/default.nix b/pkgs/development/ocaml-modules/lacaml/default.nix
index 04880bca3ac5b..e8d0e966c40f6 100644
--- a/pkgs/development/ocaml-modules/lacaml/default.nix
+++ b/pkgs/development/ocaml-modules/lacaml/default.nix
@@ -10,7 +10,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.08";
+  minimalOCamlVersion = "4.08";
 
   src = fetchurl {
     url = "https://github.com/mmottl/lacaml/releases/download/${version}/lacaml-${version}.tbz";
diff --git a/pkgs/development/ocaml-modules/landmarks-ppx/default.nix b/pkgs/development/ocaml-modules/landmarks-ppx/default.nix
index c55836a9b75e5..f15c86b9e1f31 100644
--- a/pkgs/development/ocaml-modules/landmarks-ppx/default.nix
+++ b/pkgs/development/ocaml-modules/landmarks-ppx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage, ocaml, landmarks, ppxlib }:
+{ lib, buildDunePackage, ocaml, landmarks, ppxlib }:
 
 buildDunePackage {
   pname = "landmarks-ppx";
diff --git a/pkgs/development/ocaml-modules/landmarks/default.nix b/pkgs/development/ocaml-modules/landmarks/default.nix
index d501e4e3c51a2..e25bf1ae79047 100644
--- a/pkgs/development/ocaml-modules/landmarks/default.nix
+++ b/pkgs/development/ocaml-modules/landmarks/default.nix
@@ -16,7 +16,7 @@ buildDunePackage {
     && lib.versionOlder ocaml.version "5.0";
 
   meta = with lib; {
-    description = "A Simple Profiling Library for OCaml";
+    description = "Simple Profiling Library for OCaml";
     maintainers = [ maintainers.kenran ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/ocaml-modules/lastfm/default.nix b/pkgs/development/ocaml-modules/lastfm/default.nix
index 41bdac459b310..807589e19b57b 100644
--- a/pkgs/development/ocaml-modules/lastfm/default.nix
+++ b/pkgs/development/ocaml-modules/lastfm/default.nix
@@ -3,25 +3,27 @@
 , fetchFromGitHub
 , pkg-config
 , dune-configurator
+, re
 , xmlplaylist
-, ocaml_pcre
-, ocamlnet
 }:
 
 buildDunePackage rec {
   pname = "lastfm";
-  version = "0.3.3";
+  version = "0.3.4";
 
-  useDune2 = true;
+  minimalOCamlVersion = "4.08";
 
   src = fetchFromGitHub {
     owner = "savonet";
     repo = "ocaml-lastfm";
     rev = "v${version}";
-    sha256 = "1sz400ny9h7fs20k7600q475q164x49ba30ls3q9y35rhm3g2y2b";
+    sha256 = "sha256-1te9B2+sUmkT/i2K5ueswWAWpvJf9rXob0zR4CMOJlg=";
   };
 
-  propagatedBuildInputs = [ xmlplaylist ocaml_pcre ocamlnet ];
+  propagatedBuildInputs = [
+    re
+    xmlplaylist
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/savonet/ocaml-lastfm";
diff --git a/pkgs/development/ocaml-modules/lem/default.nix b/pkgs/development/ocaml-modules/lem/default.nix
index b9e02eb97c091..1e797cbb7cb16 100644
--- a/pkgs/development/ocaml-modules/lem/default.nix
+++ b/pkgs/development/ocaml-modules/lem/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rems-project/lem";
-    description = "A tool for lightweight executable mathematics";
+    description = "Tool for lightweight executable mathematics";
     mainProgram = "lem";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = with licenses; [ bsd3 gpl2 ];
diff --git a/pkgs/development/ocaml-modules/letsencrypt/app.nix b/pkgs/development/ocaml-modules/letsencrypt/app.nix
index b2d8b3c220735..0b20eb5c3e6ad 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/app.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/app.nix
@@ -42,7 +42,7 @@ buildDunePackage {
   ];
 
   meta = letsencrypt.meta // {
-    description = "An ACME client implementation of the ACME protocol (RFC 8555) for OCaml";
+    description = "ACME client implementation of the ACME protocol (RFC 8555) for OCaml";
     mainProgram = "oacmel";
   };
 }
diff --git a/pkgs/development/ocaml-modules/letsencrypt/dns.nix b/pkgs/development/ocaml-modules/letsencrypt/dns.nix
index 6465c8c722025..4f2f04843163e 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/dns.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/dns.nix
@@ -30,6 +30,6 @@ buildDunePackage {
   ];
 
   meta = letsencrypt.meta // {
-    description = "A DNS solver for the ACME implementation in OCaml";
+    description = "DNS solver for the ACME implementation in OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/libc/default.nix b/pkgs/development/ocaml-modules/libc/default.nix
new file mode 100644
index 0000000000000..13e0f04ddfc78
--- /dev/null
+++ b/pkgs/development/ocaml-modules/libc/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, config
+}:
+
+buildDunePackage rec {
+  pname = "libc";
+  version = "0.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-sys/libc.ml/releases/download/${version}/libc-${version}.tbz";
+    hash = "sha256-e5x5Yae7V6qOpq+aLZaV+6L9ldy9qDqd9Kc8nkAsENg=";
+  };
+
+  buildInputs = [
+    config
+  ];
+
+  meta = {
+    description = "Raw definitions and bindings to platforms system libraries";
+    homepage = "https://github.com/ocaml-sys/libc.ml";
+    license = lib.licenses.mit;
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/linksem/default.nix b/pkgs/development/ocaml-modules/linksem/default.nix
index 751f4e14a2d30..2e88c7f0d45f8 100644
--- a/pkgs/development/ocaml-modules/linksem/default.nix
+++ b/pkgs/development/ocaml-modules/linksem/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/rems-project/linksem";
-    description = "A formalisation of substantial parts of ELF linking and DWARF debug information";
+    description = "Formalisation of substantial parts of ELF linking and DWARF debug information";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd2;
     platforms = ocaml.meta.platforms;
diff --git a/pkgs/development/ocaml-modules/lua-ml/default.nix b/pkgs/development/ocaml-modules/lua-ml/default.nix
index 5c48b763fc51b..bec9b9a998dc4 100644
--- a/pkgs/development/ocaml-modules/lua-ml/default.nix
+++ b/pkgs/development/ocaml-modules/lua-ml/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An embeddable Lua 2.5 interpreter implemented in OCaml";
+    description = "Embeddable Lua 2.5 interpreter implemented in OCaml";
     inherit (src.meta) homepage;
     inherit (ocaml.meta) platforms;
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/ocaml-modules/lun/ppx.nix b/pkgs/development/ocaml-modules/lun/ppx.nix
index fc138f1a6f8a4..d4212a3d95956 100644
--- a/pkgs/development/ocaml-modules/lun/ppx.nix
+++ b/pkgs/development/ocaml-modules/lun/ppx.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchurl, fmt, lun, ppxlib }:
+{ lib, buildDunePackage, fmt, lun, ppxlib }:
 
 buildDunePackage {
   pname = "ppx_lun";
diff --git a/pkgs/development/ocaml-modules/lwd/nottui-lwt.nix b/pkgs/development/ocaml-modules/lwd/nottui-lwt.nix
index 84df8db4ea374..09a4a8ba228eb 100644
--- a/pkgs/development/ocaml-modules/lwd/nottui-lwt.nix
+++ b/pkgs/development/ocaml-modules/lwd/nottui-lwt.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, lwd, lwt, nottui }:
+{ lib, buildDunePackage, lwd, lwt, nottui }:
 
 buildDunePackage {
   pname = "nottui-lwt";
diff --git a/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix b/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix
index e411255c58c41..ac9b18ff3b4f9 100644
--- a/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix
+++ b/pkgs/development/ocaml-modules/lwd/nottui-pretty.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, lwd, nottui }:
+{ lib, buildDunePackage, lwd, nottui }:
 
 buildDunePackage {
   pname = "nottui-pretty";
@@ -11,7 +11,7 @@ buildDunePackage {
   propagatedBuildInputs = [ nottui ];
 
   meta = with lib; {
-    description = "A pretty-printer based on PPrint rendering UIs";
+    description = "Pretty-printer based on PPrint rendering UIs";
     license = licenses.mit;
     maintainers = [ maintainers.alizter ];
     homepage = "https://github.com/let-def/lwd";
diff --git a/pkgs/development/ocaml-modules/lwd/nottui.nix b/pkgs/development/ocaml-modules/lwd/nottui.nix
index 6427ca9630c46..bffab13a5e1d0 100644
--- a/pkgs/development/ocaml-modules/lwd/nottui.nix
+++ b/pkgs/development/ocaml-modules/lwd/nottui.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, lwd, notty }:
+{ lib, buildDunePackage, lwd, notty }:
 
 buildDunePackage {
   pname = "nottui";
diff --git a/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix b/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix
index 0aad68fa5a0b0..f391eba7d6226 100644
--- a/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix
+++ b/pkgs/development/ocaml-modules/lwd/tyxml-lwd.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, fetchpatch, buildDunePackage, js_of_ocaml, js_of_ocaml-ppx, lwd, tyxml }:
+{ lib, fetchpatch, buildDunePackage, js_of_ocaml, js_of_ocaml-ppx, lwd, tyxml }:
 
 buildDunePackage {
   pname = "tyxml-lwd";
diff --git a/pkgs/development/ocaml-modules/lwt-dllist/default.nix b/pkgs/development/ocaml-modules/lwt-dllist/default.nix
index b28981b1b7799..88ad74b3e652f 100644
--- a/pkgs/development/ocaml-modules/lwt-dllist/default.nix
+++ b/pkgs/development/ocaml-modules/lwt-dllist/default.nix
@@ -6,7 +6,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.02";
+  minimalOCamlVersion = "4.02";
 
   src = fetchurl {
     url = "https://github.com/mirage/${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
diff --git a/pkgs/development/ocaml-modules/lwt-exit/default.nix b/pkgs/development/ocaml-modules/lwt-exit/default.nix
index 1b82c30028e97..52bcc0ab2de3a 100644
--- a/pkgs/development/ocaml-modules/lwt-exit/default.nix
+++ b/pkgs/development/ocaml-modules/lwt-exit/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
   doCheck = false;
 
   meta = {
-    description = "An opinionated clean-exit and signal-handling library for Lwt programs";
+    description = "Opinionated clean-exit and signal-handling library for Lwt programs";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ulrikstrid ];
   };
diff --git a/pkgs/development/ocaml-modules/lwt/default.nix b/pkgs/development/ocaml-modules/lwt/default.nix
index 167df30ae3535..61cf05151a309 100644
--- a/pkgs/development/ocaml-modules/lwt/default.nix
+++ b/pkgs/development/ocaml-modules/lwt/default.nix
@@ -21,7 +21,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "https://ocsigen.org/lwt/";
-    description = "A cooperative threads library for OCaml";
+    description = "Cooperative threads library for OCaml";
     maintainers = [ lib.maintainers.vbgl ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/ocaml-modules/macaddr/cstruct.nix b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
index 863491e0b7fb8..9fb3ce304d952 100644
--- a/pkgs/development/ocaml-modules/macaddr/cstruct.nix
+++ b/pkgs/development/ocaml-modules/macaddr/cstruct.nix
@@ -14,6 +14,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = macaddr.meta // {
-    description = "A library for manipulation of MAC address representations using Cstructs";
+    description = "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 28269ab6dfc95..4c405f2fff835 100644
--- a/pkgs/development/ocaml-modules/macaddr/default.nix
+++ b/pkgs/development/ocaml-modules/macaddr/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mirage/ocaml-ipaddr";
-    description = "A library for manipulation of MAC address representations";
+    description = "Library for manipulation of MAC address representations";
     license = licenses.isc;
     maintainers = [ maintainers.alexfmpe ];
   };
diff --git a/pkgs/development/ocaml-modules/macaddr/sexp.nix b/pkgs/development/ocaml-modules/macaddr/sexp.nix
index 5d096dfececdb..62e2acba4d3e2 100644
--- a/pkgs/development/ocaml-modules/macaddr/sexp.nix
+++ b/pkgs/development/ocaml-modules/macaddr/sexp.nix
@@ -15,6 +15,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = macaddr.meta // {
-    description = "A library for manipulation of MAC address representations using sexp";
+    description = "Library for manipulation of MAC address representations using sexp";
   };
 }
diff --git a/pkgs/development/ocaml-modules/mad/default.nix b/pkgs/development/ocaml-modules/mad/default.nix
index 79e2fd035f5a4..096987f737f84 100644
--- a/pkgs/development/ocaml-modules/mad/default.nix
+++ b/pkgs/development/ocaml-modules/mad/default.nix
@@ -2,13 +2,15 @@
 
 buildDunePackage rec {
   pname = "mad";
-  version = "0.5.2";
+  version = "0.5.3";
+
+  minimalOCamlVersion = "4.06";
 
   src = fetchFromGitHub {
     owner = "savonet";
     repo = "ocaml-mad";
     rev = "v${version}";
-    sha256 = "sha256-iJjANV2M68v3C3db1n9Y8V6yJKuDBDSjtMteamndN7U=";
+    sha256 = "sha256-rSFzWyUYTrGL7GvVsY5qKdCXqY/XJQkuBerexG838jc=";
   };
 
   buildInputs = [ dune-configurator ];
diff --git a/pkgs/development/ocaml-modules/magic-trace/default.nix b/pkgs/development/ocaml-modules/magic-trace/default.nix
index 8fdd92f813299..b4e1c557e8124 100644
--- a/pkgs/development/ocaml-modules/magic-trace/default.nix
+++ b/pkgs/development/ocaml-modules/magic-trace/default.nix
@@ -17,7 +17,7 @@
 
 buildDunePackage rec {
   pname = "magic-trace";
-  version = "1.2.1";
+  version = "1.2.3";
 
   minimalOCamlVersion = "4.12";
 
@@ -25,7 +25,7 @@ buildDunePackage rec {
     owner = "janestreet";
     repo = "magic-trace";
     rev = "v${version}";
-    hash = "sha256-/9TDjCG/06mhGyqbjAdUmk6fcaq9fNDqVSw51w5EEy4=";
+    hash = "sha256-cAoaAXZOeWNQh6emm17a9oCis8s4jJxPQMI/NfiUa7g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix
index 6f286346a9a03..2de510919edf1 100644
--- a/pkgs/development/ocaml-modules/markup/default.nix
+++ b/pkgs/development/ocaml-modules/markup/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/aantron/markup.ml/";
-    description = "A pair of best-effort parsers implementing the HTML5 and XML specifications";
+    description = "Pair of best-effort parsers implementing the HTML5 and XML specifications";
     license = licenses.mit;
     maintainers = with maintainers; [ gal_bolle ];
   };
diff --git a/pkgs/development/ocaml-modules/mccs/default.nix b/pkgs/development/ocaml-modules/mccs/default.nix
index 50abdf631db89..8a2f195c9445f 100644
--- a/pkgs/development/ocaml-modules/mccs/default.nix
+++ b/pkgs/development/ocaml-modules/mccs/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library providing a multi criteria CUDF solver, part of MANCOOSI project.";
+    description = "Library providing a multi criteria CUDF solver, part of MANCOOSI project";
     downloadPage = "https://github.com/AltGr/ocaml-mccs";
     homepage = "https://www.i3s.unice.fr/~cpjm/misc/";
     license = with licenses; [ lgpl21 gpl3 ];
diff --git a/pkgs/development/ocaml-modules/memprof-limits/default.nix b/pkgs/development/ocaml-modules/memprof-limits/default.nix
new file mode 100644
index 0000000000000..768c044872820
--- /dev/null
+++ b/pkgs/development/ocaml-modules/memprof-limits/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitLab, ocaml }:
+
+if !(lib.versionOlder ocaml.version "5.0.0") then
+  throw "memprof-limits is not available for OCaml ${ocaml.version}"
+else
+  buildDunePackage rec {
+    pname = "memprof-limits";
+    version = "0.2.1";
+
+    src = fetchFromGitLab rec {
+      owner = "gadmm";
+      repo = pname;
+      rev = "v${version}";
+      hash = "sha256-Pmuln5TihPoPZuehZlqPfERif6lf7O+0454kW9y3aKc=";
+    };
+
+    minimalOCamlVersion = "4.12";
+
+    meta = with lib; {
+      homepage = "https://ocaml.org/p/memprof-limits/latest";
+      description =
+        "Memory limits, allocation limits, and thread cancellation for OCaml";
+      license = licenses.lgpl3;
+      maintainers = with maintainers; [ alizter ];
+    };
+  }
diff --git a/pkgs/development/ocaml-modules/menhir/default.nix b/pkgs/development/ocaml-modules/menhir/default.nix
index a96f3ab9cfd9c..afe2d5cf593a2 100644
--- a/pkgs/development/ocaml-modules/menhir/default.nix
+++ b/pkgs/development/ocaml-modules/menhir/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitLab, buildDunePackage
+{ buildDunePackage
 , menhirLib, menhirSdk
 }:
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
   buildInputs = [ menhirLib menhirSdk ];
 
   meta = menhirSdk.meta // {
-    description = "A LR(1) parser generator for OCaml";
+    description = "LR(1) parser generator for OCaml";
     mainProgram = "menhir";
   };
 }
diff --git a/pkgs/development/ocaml-modules/menhir/lib.nix b/pkgs/development/ocaml-modules/menhir/lib.nix
index 9deceded4068f..a694c7a54c3c1 100644
--- a/pkgs/development/ocaml-modules/menhir/lib.nix
+++ b/pkgs/development/ocaml-modules/menhir/lib.nix
@@ -2,14 +2,15 @@
 
 buildDunePackage rec {
   pname = "menhirLib";
-  version = "20230608";
+  version = "20231231";
+  minimalOCamlVersion = "4.03";
 
   src = fetchFromGitLab {
     domain = "gitlab.inria.fr";
     owner = "fpottier";
     repo = "menhir";
     rev = version;
-    sha256 = "sha256-dUPoIUVr3gqvE5bniyQh/b37tNfRsZN8X3e99GFkyLY=";
+    hash = "sha256-veB0ORHp6jdRwCyDDAfc7a7ov8sOeHUmiELdOFf/QYk=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/menhir/sdk.nix b/pkgs/development/ocaml-modules/menhir/sdk.nix
index cc699175af399..ad406c8a31dd2 100644
--- a/pkgs/development/ocaml-modules/menhir/sdk.nix
+++ b/pkgs/development/ocaml-modules/menhir/sdk.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitLab, buildDunePackage
+{ lib, buildDunePackage
 , menhirLib
 }:
 
diff --git a/pkgs/development/ocaml-modules/mimic/default.nix b/pkgs/development/ocaml-modules/mimic/default.nix
index 097ecb3135346..eb910c5a5b04d 100644
--- a/pkgs/development/ocaml-modules/mimic/default.nix
+++ b/pkgs/development/ocaml-modules/mimic/default.nix
@@ -32,7 +32,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple protocol dispatcher";
+    description = "Simple protocol dispatcher";
     license = licenses.isc;
     homepage = "https://github.com/mirage/ocaml-git";
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix b/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix
index 193509dd49036..569cc713fd1df 100644
--- a/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix
+++ b/pkgs/development/ocaml-modules/mimic/happy-eyeballs.nix
@@ -17,7 +17,7 @@ buildDunePackage {
   doCheck = false;
 
   meta = {
-    description = "A happy-eyeballs integration into mimic";
+    description = "Happy-eyeballs integration into mimic";
     maintainers = [ lib.maintainers.ulrikstrid ];
     inherit (mimic.meta) license homepage;
   };
diff --git a/pkgs/development/ocaml-modules/minisat/default.nix b/pkgs/development/ocaml-modules/minisat/default.nix
index 257bbde0531ca..3a7c222c95728 100644
--- a/pkgs/development/ocaml-modules/minisat/default.nix
+++ b/pkgs/development/ocaml-modules/minisat/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "minisat";
-  version = "0.5";
+  version = "0.6";
 
   minimalOCamlVersion = "4.05";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner  = "c-cube";
     repo   = "ocaml-minisat";
     rev    = "v${version}";
-    hash   = "sha256-hqGSHxhT+Z2slRCIXnfYuasG1K3tVG/tsM0IXxmy9hQ=";
+    hash   = "sha256-dH0Ndlyo/DTZ6Ao1S478aBuxoZFSkRBi5HblkTWCPas=";
   };
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/minttea/default.nix b/pkgs/development/ocaml-modules/minttea/default.nix
index 8d81317edd1f3..07084c12c8769 100644
--- a/pkgs/development/ocaml-modules/minttea/default.nix
+++ b/pkgs/development/ocaml-modules/minttea/default.nix
@@ -7,13 +7,13 @@
 
 buildDunePackage rec {
   pname = "minttea";
-  version = "0.0.1";
+  version = "0.0.3";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
-    hash = "sha256-+4nVeYKx2A2i2nll/PbStcEa+Dvxd0T7e/KsdJqY4bI=";
+    hash = "sha256-WEaJVCCvsmKcF8+yzovljt8dGWaIv4UmAr74jq6Vo9M=";
   };
 
   propagatedBuildInputs = [
@@ -21,10 +21,8 @@ buildDunePackage rec {
     tty
   ];
 
-  doCheck = true;
-
   meta = {
-    description = "A fun, functional, and stateful way to build terminal apps in OCaml heavily inspired by Go's BubbleTea";
+    description = "Fun, functional, and stateful way to build terminal apps in OCaml heavily inspired by Go's BubbleTea";
     homepage = "https://github.com/leostera/minttea";
     changelog = "https://github.com/leostera/minttea/blob/${version}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
index 5fd9e1289a6e7..79ff29a05de4e 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
@@ -15,6 +15,6 @@ buildDunePackage rec {
   strictDeps = true;
 
   meta = mirage-crypto.meta // {
-    description = "A cryptographically secure PRNG";
+    description = "Cryptographically secure PRNG";
   };
 }
diff --git a/pkgs/development/ocaml-modules/mirage-logs/default.nix b/pkgs/development/ocaml-modules/mirage-logs/default.nix
index e54a8bc1b3e2f..be9592fb374bd 100644
--- a/pkgs/development/ocaml-modules/mirage-logs/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-logs/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   checkInputs = [ alcotest ];
 
   meta = {
-    description = "A reporter for the Logs library that writes log messages to stderr, using a Mirage `CLOCK` to add timestamps";
+    description = "Reporter for the Logs library that writes log messages to stderr, using a Mirage `CLOCK` to add timestamps";
     homepage = "https://github.com/mirage/mirage-logs";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/mirage-time/unix.nix b/pkgs/development/ocaml-modules/mirage-time/unix.nix
index 9678815edf050..5771a3e2deeac 100644
--- a/pkgs/development/ocaml-modules/mirage-time/unix.nix
+++ b/pkgs/development/ocaml-modules/mirage-time/unix.nix
@@ -1,4 +1,4 @@
-{ buildDunePackage, fetchurl, mirage-time, lwt, duration }:
+{ buildDunePackage, mirage-time, lwt, duration }:
 
 buildDunePackage {
   pname = "mirage-time-unix";
diff --git a/pkgs/development/ocaml-modules/mirage/default.nix b/pkgs/development/ocaml-modules/mirage/default.nix
index 410475b6b5c00..6342184e805db 100644
--- a/pkgs/development/ocaml-modules/mirage/default.nix
+++ b/pkgs/development/ocaml-modules/mirage/default.nix
@@ -34,6 +34,6 @@ buildDunePackage rec {
   '';
 
   meta = mirage-runtime.meta // {
-    description = "The MirageOS library operating system";
+    description = "MirageOS library operating system";
   };
 }
diff --git a/pkgs/development/ocaml-modules/mirage/runtime.nix b/pkgs/development/ocaml-modules/mirage/runtime.nix
index 7e20e3363a473..d3b847d6da477 100644
--- a/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchurl, ipaddr, functoria-runtime
+{ lib, buildDunePackage, ipaddr, functoria-runtime
 , logs, lwt
 , alcotest
 }:
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage";
-    description = "The base MirageOS runtime library, part of every MirageOS unikernel";
+    description = "Base MirageOS runtime library, part of every MirageOS unikernel";
     license = licenses.isc;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/pkgs/development/ocaml-modules/morbig/default.nix b/pkgs/development/ocaml-modules/morbig/default.nix
index 013fa2e233a1b..6b8adcf7429c1 100644
--- a/pkgs/development/ocaml-modules/morbig/default.nix
+++ b/pkgs/development/ocaml-modules/morbig/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/colis-anr/${pname}";
-    description = "A static parser for POSIX Shell";
+    description = "Static parser for POSIX Shell";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ niols ];
   };
diff --git a/pkgs/development/ocaml-modules/mparser/default.nix b/pkgs/development/ocaml-modules/mparser/default.nix
index 5f63a98a13097..602545382bc41 100644
--- a/pkgs/development/ocaml-modules/mparser/default.nix
+++ b/pkgs/development/ocaml-modules/mparser/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
   };
 
   meta = {
-    description = "A simple monadic parser combinator OCaml library";
+    description = "Simple monadic parser combinator OCaml library";
     license = lib.licenses.lgpl21Plus;
     homepage = "https://github.com/murmour/mparser";
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/mparser/pcre.nix b/pkgs/development/ocaml-modules/mparser/pcre.nix
index 0f26e140ed873..6656deef14710 100644
--- a/pkgs/development/ocaml-modules/mparser/pcre.nix
+++ b/pkgs/development/ocaml-modules/mparser/pcre.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, buildDunePackage, ocaml_pcre, mparser }:
+{ buildDunePackage, ocaml_pcre, mparser }:
 
 buildDunePackage rec {
   pname = "mparser-pcre";
diff --git a/pkgs/development/ocaml-modules/msat/default.nix b/pkgs/development/ocaml-modules/msat/default.nix
index d5893dc55e043..7cb512a942d11 100644
--- a/pkgs/development/ocaml-modules/msat/default.nix
+++ b/pkgs/development/ocaml-modules/msat/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
   nativeCheckInputs = [ mdx.bin ];
 
   meta = {
-    description = "A modular sat/smt solver with proof output.";
+    description = "Modular sat/smt solver with proof output";
     homepage = "https://gbury.github.io/mSAT/";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/note/default.nix b/pkgs/development/ocaml-modules/note/default.nix
index 9640a33569c44..11ab46a2af0dc 100644
--- a/pkgs/development/ocaml-modules/note/default.nix
+++ b/pkgs/development/ocaml-modules/note/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://erratique.ch/software/note";
-    description = "An OCaml module for functional reactive programming";
+    description = "OCaml module for functional reactive programming";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (ocaml.meta) platforms;
diff --git a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
index 7201311a53350..50a04bbefab22 100644
--- a/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-monadic/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A PPX extension to provide an OCaml-friendly monadic syntax";
+    description = "PPX extension to provide an OCaml-friendly monadic syntax";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix b/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix
index 067b61212acec..c89d9d7219ac7 100644
--- a/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-protoc-plugin/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   nativeCheckInputs = [ protobuf ];
 
   meta = {
-    description = "Maps google protobuf compiler to Ocaml types.";
+    description = "Maps google protobuf compiler to Ocaml types";
     homepage = "https://github.com/issuu/ocaml-protoc-plugin";
     license = lib.licenses.asl20;
     longDescription = ''
diff --git a/pkgs/development/ocaml-modules/ocaml-protoc/default.nix b/pkgs/development/ocaml-modules/ocaml-protoc/default.nix
index 301a0f2c9a61f..51ca531b0140e 100644
--- a/pkgs/development/ocaml-modules/ocaml-protoc/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-protoc/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildDunePackage
+{ lib, buildDunePackage
 , pbrt
 , stdlib-shims
 }:
@@ -14,6 +14,6 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = pbrt.meta // {
-    description = "A Protobuf Compiler for OCaml";
+    description = "Protobuf Compiler for OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/ocamlformat/generic.nix b/pkgs/development/ocaml-modules/ocamlformat/generic.nix
index ca5c78bca7d97..f8f8c9d991956 100644
--- a/pkgs/development/ocaml-modules/ocamlformat/generic.nix
+++ b/pkgs/development/ocaml-modules/ocamlformat/generic.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, version ? "0.26.1", astring, base, camlp-streams, cmdliner_1_0
+{ lib, fetchurl, version ? "0.26.2", astring, base, camlp-streams, cmdliner_1_0
 , cmdliner_1_1, csexp, dune-build-info, either, fix, fpath, menhirLib, menhirSdk
 , ocaml-version, ocp-indent, odoc-parser, result, stdio, uuseg, uutf, ... }:
 
@@ -24,6 +24,7 @@ rec {
       "0.25.1" = "sha256-3I8qMwyjkws2yssmI7s2Dti99uSorNKT29niJBpv0z0=";
       "0.26.0" = "sha256-AxSUq3cM7xCo9qocvrVmDkbDqmwM1FexEP7IWadeh30=";
       "0.26.1" = "sha256-2gBuQn8VuexhL7gI1EZZm9m3w+4lq+s9VVdHpw10xtc=";
+      "0.26.2" = "sha256-Lk9Za/eqNnqET+g7oPawvxSyplF53cCCNj/peT0DdcU=";
     }."${version}";
   };
 
diff --git a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix
index ca78efad37488..d8dc1d54ffc0c 100644
--- a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix
+++ b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat-rpc-lib.nix
@@ -1,5 +1,5 @@
 # Version can be selected with the 'version' argument, see generic.nix.
-{ lib, fetchurl, buildDunePackage, ocaml, csexp, sexplib0, callPackage, ... }@args:
+{ lib, buildDunePackage, ocaml, csexp, sexplib0, callPackage, ... }@args:
 
 let
   # for compat with ocaml-lsp
diff --git a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix
index 7b1faaf3e88b6..e56b864096854 100644
--- a/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix
+++ b/pkgs/development/ocaml-modules/ocamlformat/ocamlformat.nix
@@ -12,7 +12,8 @@
 let inherit (callPackage ./generic.nix args) src version library_deps;
 in
 
-lib.throwIf (lib.versionAtLeast ocaml.version "5.0" && !lib.versionAtLeast version "0.23")
+lib.throwIf (lib.versionAtLeast ocaml.version "5.0" && !lib.versionAtLeast version "0.23"
+          || lib.versionAtLeast ocaml.version "5.2" && !lib.versionAtLeast version "0.26.2")
   "ocamlformat ${version} is not available for OCaml ${ocaml.version}"
 
 buildDunePackage {
diff --git a/pkgs/development/ocaml-modules/ocamlnet/default.nix b/pkgs/development/ocaml-modules/ocamlnet/default.nix
index c650155ff3822..7fb262a91ac44 100644
--- a/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://projects.camlcity.org/projects/ocamlnet.html";
-    description = "A library implementing Internet protocols (http, cgi, email, etc.) for OCaml";
+    description = "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.";
     inherit (ocaml.meta) platforms;
     maintainers = [
diff --git a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
index d5a70406e9c33..e8b705ebdd4d8 100644
--- a/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
+++ b/pkgs/development/ocaml-modules/ocp-ocamlres/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   preInstall = "mkdir -p $out/bin";
 
   meta = {
-    description = "A simple tool and library to embed files and directories inside OCaml executables";
+    description = "Simple tool and library to embed files and directories inside OCaml executables";
     homepage = "https://www.typerex.org/ocp-ocamlres.html";
     license = lib.licenses.lgpl3Plus;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ocplib-simplex/default.nix b/pkgs/development/ocaml-modules/ocplib-simplex/default.nix
index 768c0baa6d229..930c78fb163d9 100644
--- a/pkgs/development/ocaml-modules/ocplib-simplex/default.nix
+++ b/pkgs/development/ocaml-modules/ocplib-simplex/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "An OCaml library implementing a simplex algorithm, in a functional style, for solving systems of linear inequalities";
+    description = "OCaml library implementing a simplex algorithm, in a functional style, for solving systems of linear inequalities";
     homepage = "https://github.com/OCamlPro-Iguernlala/ocplib-simplex";
     license = lib.licenses.lgpl21Only;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 515fd218d8fca..b770c0d7d5d7a 100644
--- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -61,7 +61,7 @@ buildDunePackage rec {
 
   meta = {
     homepage = "http://ocsigen.org/ocsigenserver/";
-    description = "A full featured Web server";
+    description = "Full featured Web server";
     longDescription =''
       A full featured Web server. It implements most features of the HTTP protocol, and has a very powerful extension mechanism that make very easy to plug your own OCaml modules for generating pages.
       '';
diff --git a/pkgs/development/ocaml-modules/odoc-parser/default.nix b/pkgs/development/ocaml-modules/odoc-parser/default.nix
index 90e99427ec09d..5d22d2d712384 100644
--- a/pkgs/development/ocaml-modules/odoc-parser/default.nix
+++ b/pkgs/development/ocaml-modules/odoc-parser/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchurl, buildDunePackage, ocaml, astring, result, camlp-streams, version ? "2.0.0" }:
+{ lib, fetchurl, buildDunePackage, ocaml, astring, result, camlp-streams, version ? "2.4.2" }:
 
 let param = {
+  "2.4.2" = {
+    sha256 = "sha256-Vjz9uybsijDnN6nPKFoG4LuulT9I4lu7D2n3qZwrpAs=";
+  };
   "2.0.0" = {
     sha256 = "sha256-QHkZ+7DrlXYdb8bsZ3dijZSqGQc0O9ymeLGIC6+zOSI=";
-    extraBuildInputs = [ camlp-streams ];
   };
   "1.0.1" = {
     sha256 = "sha256-orvo5CAbYOmAurAeluQfK6CwW6P1C0T3WDfoovuQfSw=";
-    extraBuildInputs = [ camlp-streams ];
   };
   "1.0.0" = {
     sha256 = "sha256-tqoI6nGp662bK+vE2h7aDXE882dObVfRBFnZNChueqE=";
     max_version = "5.0";
-    extraBuildInputs = [];
   };
   "0.9.0" = {
     sha256 = "sha256-3w2tG605v03mvmZsS2O5c71y66O3W+n3JjFxIbXwvXk=";
     max_version = "5.0";
-    extraBuildInputs = [];
   };
 }."${version}"; in
 
@@ -31,11 +30,14 @@ buildDunePackage rec {
   minimalOCamlVersion = "4.02";
 
   src = fetchurl {
-    url = "https://github.com/ocaml-doc/odoc-parser/releases/download/${version}/odoc-parser-${version}.tbz";
+    url = if lib.versionAtLeast version "2.4"
+      then "https://github.com/ocaml/odoc/releases/download/${version}/odoc-${version}.tbz"
+      else "https://github.com/ocaml-doc/odoc-parser/releases/download/${version}/odoc-parser-${version}.tbz";
     inherit (param) sha256;
   };
 
-  propagatedBuildInputs = [ astring result ] ++ param.extraBuildInputs;
+  propagatedBuildInputs = [ astring result ] ++
+    lib.optional (lib.versionAtLeast version "1.0.1") camlp-streams;
 
   meta = {
     description = "Parser for Ocaml documentation comments";
diff --git a/pkgs/development/ocaml-modules/odoc/default.nix b/pkgs/development/ocaml-modules/odoc/default.nix
index 18be9801a9c01..58a52a04c1961 100644
--- a/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/pkgs/development/ocaml-modules/odoc/default.nix
@@ -1,4 +1,5 @@
-{ lib, fetchurl, buildDunePackage, ocaml
+{ lib, buildDunePackage, ocaml
+, ocaml-crunch
 , astring, cmdliner, cppo, fpath, result, tyxml
 , markup, yojson, sexplib0, jq
 , odoc-parser, ppx_expect, bash, fmt
@@ -6,14 +7,9 @@
 
 buildDunePackage rec {
   pname = "odoc";
-  version = "2.2.1";
+  inherit (odoc-parser) version src;
 
-  src = fetchurl {
-    url = "https://github.com/ocaml/odoc/releases/download/${version}/odoc-${version}.tbz";
-    sha256 = "sha256-F4blO/CCT+HHx7gdKn2EaEal0RZ3lp5jljYfd6OBaAM=";
-  };
-
-  nativeBuildInputs = [ cppo ];
+  nativeBuildInputs = [ cppo ocaml-crunch ];
   buildInputs = [ astring cmdliner fpath result tyxml odoc-parser fmt ];
 
   nativeCheckInputs = [ bash jq ];
@@ -29,7 +25,7 @@ buildDunePackage rec {
   '';
 
   meta = {
-    description = "A documentation generator for OCaml";
+    description = "Documentation generator for OCaml";
     mainProgram = "odoc";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/opam-format/default.nix b/pkgs/development/ocaml-modules/opam-format/default.nix
index fdb8ba33d5eb3..1360c62816360 100644
--- a/pkgs/development/ocaml-modules/opam-format/default.nix
+++ b/pkgs/development/ocaml-modules/opam-format/default.nix
@@ -7,7 +7,7 @@ buildDunePackage rec {
 
   inherit (opam-core) src version;
 
-  minimumOCamlVersion = "4.02.3";
+  minimalOCamlVersion = "4.02.3";
 
   # get rid of check for curl at configure time
   # opam-format does not call curl at run time
diff --git a/pkgs/development/ocaml-modules/opam-repository/default.nix b/pkgs/development/ocaml-modules/opam-repository/default.nix
index ff9ad75fad86b..008cc2812453c 100644
--- a/pkgs/development/ocaml-modules/opam-repository/default.nix
+++ b/pkgs/development/ocaml-modules/opam-repository/default.nix
@@ -3,7 +3,7 @@
 buildDunePackage rec {
   pname = "opam-repository";
 
-  minimumOCamlVersion = "4.02";
+  minimalOCamlVersion = "4.02";
 
   useDune2 = true;
 
diff --git a/pkgs/development/ocaml-modules/opium/default.nix b/pkgs/development/ocaml-modules/opium/default.nix
index b98d892696ec4..b11ab3a8ec95f 100644
--- a/pkgs/development/ocaml-modules/opium/default.nix
+++ b/pkgs/development/ocaml-modules/opium/default.nix
@@ -1,6 +1,5 @@
 { buildDunePackage
 , lib
-, fetchurl
 , astring
 , base64
 , cmdliner
diff --git a/pkgs/development/ocaml-modules/opti/default.nix b/pkgs/development/ocaml-modules/opti/default.nix
index 4ce5087912d29..1d854a1fda502 100644
--- a/pkgs/development/ocaml-modules/opti/default.nix
+++ b/pkgs/development/ocaml-modules/opti/default.nix
@@ -6,7 +6,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.02";
+  minimalOCamlVersion = "4.02";
 
   src = fetchurl {
     url = "https://github.com/magnusjonsson/opti/releases/download/${version}/opti-${version}.tbz";
diff --git a/pkgs/development/ocaml-modules/otoml/default.nix b/pkgs/development/ocaml-modules/otoml/default.nix
index 0a25ac52148b1..10b8a03a1b187 100644
--- a/pkgs/development/ocaml-modules/otoml/default.nix
+++ b/pkgs/development/ocaml-modules/otoml/default.nix
@@ -24,7 +24,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ menhirLib uutf ];
 
   meta = {
-    description = "A TOML parsing and manipulation library for OCaml";
+    description = "TOML parsing and manipulation library for OCaml";
     changelog = "https://github.com/dmbaturin/otoml/raw/${version}/CHANGELOG.md";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ounit2/default.nix b/pkgs/development/ocaml-modules/ounit2/default.nix
index a57a389541919..61c1615b58578 100644
--- a/pkgs/development/ocaml-modules/ounit2/default.nix
+++ b/pkgs/development/ocaml-modules/ounit2/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/gildor478/ounit";
-    description = "A unit test framework for OCaml";
+    description = "Unit test framework for OCaml";
     license = licenses.mit;
     maintainers = with maintainers; [ sternenseemann ];
   };
diff --git a/pkgs/development/ocaml-modules/owee/default.nix b/pkgs/development/ocaml-modules/owee/default.nix
index d6886c49ca5a0..67cdb3828f818 100644
--- a/pkgs/development/ocaml-modules/owee/default.nix
+++ b/pkgs/development/ocaml-modules/owee/default.nix
@@ -12,7 +12,7 @@ buildDunePackage rec {
   };
 
   meta = with lib; {
-    description = "An experimental OCaml library to work with DWARF format";
+    description = "Experimental OCaml library to work with DWARF format";
     homepage = "https://github.com/let-def/owee/";
     license = licenses.mit;
     maintainers = with maintainers; [ vbgl alizter ];
diff --git a/pkgs/development/ocaml-modules/owl/default.nix b/pkgs/development/ocaml-modules/owl/default.nix
index 22aa70d9ff1c5..178a4f6349b3d 100644
--- a/pkgs/development/ocaml-modules/owl/default.nix
+++ b/pkgs/development/ocaml-modules/owl/default.nix
@@ -1,6 +1,5 @@
 { buildDunePackage
 , dune-configurator
-, fetchFromGitHub
 , alcotest
 , ctypes
 , stdio
diff --git a/pkgs/development/ocaml-modules/paf/cohttp.nix b/pkgs/development/ocaml-modules/paf/cohttp.nix
index 2f2891493061c..0300076b52158 100644
--- a/pkgs/development/ocaml-modules/paf/cohttp.nix
+++ b/pkgs/development/ocaml-modules/paf/cohttp.nix
@@ -50,6 +50,6 @@ buildDunePackage {
   __darwinAllowLocalNetworking = true;
 
   meta = paf.meta // {
-    description = "A CoHTTP client with its HTTP/AF implementation";
+    description = "CoHTTP client with its HTTP/AF implementation";
   };
 }
diff --git a/pkgs/development/ocaml-modules/pcre/default.nix b/pkgs/development/ocaml-modules/pcre/default.nix
index ca3cc203f9689..9184b4dfd3756 100644
--- a/pkgs/development/ocaml-modules/pcre/default.nix
+++ b/pkgs/development/ocaml-modules/pcre/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://mmottl.github.io/pcre-ocaml";
-    description = "An efficient C-library for pattern matching with Perl-style regular expressions in OCaml";
+    description = "Efficient C-library for pattern matching with Perl-style regular expressions in OCaml";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ maggesi vbmithr ];
   };
diff --git a/pkgs/development/ocaml-modules/pecu/default.nix b/pkgs/development/ocaml-modules/pecu/default.nix
index 746c75fccc1c0..66d9e56c6dc36 100644
--- a/pkgs/development/ocaml-modules/pecu/default.nix
+++ b/pkgs/development/ocaml-modules/pecu/default.nix
@@ -2,15 +2,13 @@
 
 buildDunePackage rec {
   pname = "pecu";
-  version = "0.6";
-
-  duneVersion = "3";
+  version = "0.7";
 
   minimalOCamlVersion = "4.03";
 
   src = fetchurl {
-    url = "https://github.com/mirage/pecu/releases/download/v${version}/pecu-v${version}.tbz";
-    sha256 = "a9d2b7da444c83b20f879f6c3b7fc911d08ac1e6245ad7105437504f9394e5c7";
+    url = "https://github.com/mirage/pecu/releases/download/v${version}/pecu-${version}.tbz";
+    hash = "sha256-rXR3tbFkKNM8MkQAZ2hJU9lO+qQ/qvYghXkYus6f13g=";
   };
 
   # crowbar availability
diff --git a/pkgs/development/ocaml-modules/pgocaml/default.nix b/pkgs/development/ocaml-modules/pgocaml/default.nix
index 46b239a3d28a3..ba9a97fcaa0d1 100644
--- a/pkgs/development/ocaml-modules/pgocaml/default.nix
+++ b/pkgs/development/ocaml-modules/pgocaml/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "An interface to PostgreSQL databases for OCaml applications";
+    description = "Interface to PostgreSQL databases for OCaml applications";
     homepage = "https://github.com/darioteixeira/pgocaml";
     license = licenses.lgpl2Only;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/pgsolver/default.nix b/pkgs/development/ocaml-modules/pgsolver/default.nix
index 6653284ba4870..4bf765bc9cfc4 100644
--- a/pkgs/development/ocaml-modules/pgsolver/default.nix
+++ b/pkgs/development/ocaml-modules/pgsolver/default.nix
@@ -15,7 +15,7 @@ buildOasisPackage rec {
   propagatedBuildInputs = [ tcslib ocaml-sat-solvers ];
 
   meta = {
-    description = "A collection of tools for generating, manipulating and - most of all - solving parity games";
+    description = "Collection of tools for generating, manipulating and - most of all - solving parity games";
     homepage = "https://github.com/tcsprojects/pgsolver";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ mgttlinger ];
diff --git a/pkgs/development/ocaml-modules/piaf/default.nix b/pkgs/development/ocaml-modules/piaf/default.nix
index cf2dd146ccab5..46bb62a246692 100644
--- a/pkgs/development/ocaml-modules/piaf/default.nix
+++ b/pkgs/development/ocaml-modules/piaf/default.nix
@@ -50,7 +50,7 @@ buildDunePackage rec {
   doCheck = false;
 
   meta = {
-    description = "An HTTP library with HTTP/2 support written entirely in OCaml";
+    description = "HTTP library with HTTP/2 support written entirely in OCaml";
     homepage = "https://github.com/anmonteiro/piaf";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ anmonteiro ];
diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 39ae5a86c5982..ae1efafb22516 100644
--- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, piqi, stdlib-shims, num }:
+{ lib, stdenv, fetchFromGitHub, ocaml, findlib, piqi, stdlib-shims, num }:
 
 stdenv.mkDerivation rec {
   version = "0.7.8";
diff --git a/pkgs/development/ocaml-modules/plotkicadsch/default.nix b/pkgs/development/ocaml-modules/plotkicadsch/default.nix
index 27b3a0ac5ee78..09593f835aef6 100644
--- a/pkgs/development/ocaml-modules/plotkicadsch/default.nix
+++ b/pkgs/development/ocaml-modules/plotkicadsch/default.nix
@@ -1,6 +1,5 @@
 { lib
 , buildDunePackage
-, fetchFromGitHub
 , substituteAll
 , base64
 , cmdliner
@@ -43,7 +42,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to export Kicad Sch files to SVG pictures";
+    description = "Tool to export Kicad Sch files to SVG pictures";
     homepage = "https://github.com/jnavila/plotkicadsch";
     license = licenses.isc;
     maintainers = with maintainers; [ leungbk ];
diff --git a/pkgs/development/ocaml-modules/postgresql/default.nix b/pkgs/development/ocaml-modules/postgresql/default.nix
index 4140baa675cb2..25dddaed08c9e 100644
--- a/pkgs/development/ocaml-modules/postgresql/default.nix
+++ b/pkgs/development/ocaml-modules/postgresql/default.nix
@@ -6,7 +6,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.08";
+  minimalOCamlVersion = "4.08";
 
   src = fetchFromGitHub {
     owner = "mmottl";
diff --git a/pkgs/development/ocaml-modules/pprint/default.nix b/pkgs/development/ocaml-modules/pprint/default.nix
index 3a103ad41ae68..2fcb4dbf1fe7a 100644
--- a/pkgs/development/ocaml-modules/pprint/default.nix
+++ b/pkgs/development/ocaml-modules/pprint/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "An OCaml library for pretty-printing textual documents";
+    description = "OCaml library for pretty-printing textual documents";
     license = licenses.lgpl2Only;
     maintainers = [ maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/ppx_bap/default.nix b/pkgs/development/ocaml-modules/ppx_bap/default.nix
index c0c5b9dfd13d0..13f9d3471fef2 100644
--- a/pkgs/development/ocaml-modules/ppx_bap/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_bap/default.nix
@@ -43,7 +43,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "The set of ppx rewriters for BAP";
+    description = "Set of ppx rewriters for BAP";
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
index 7cf1a0d869e34..189efc3a675dd 100644
--- a/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_cstubs/default.nix
@@ -1,4 +1,5 @@
 { lib
+, ocaml
 , fetchFromGitHub
 , buildDunePackage
 , bigarray-compat
@@ -12,6 +13,9 @@
 , findlib
 }:
 
+lib.throwIf (lib.versionAtLeast ocaml.version "5.2")
+  "ppx_cstubs is not available for OCaml ${ocaml.version}"
+
 buildDunePackage rec {
   pname = "ppx_cstubs";
   version = "0.7.0";
diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index 314f52f40fc0a..1e79e8a1ffa88 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -51,7 +51,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02.";
+    description = "deriving is a library simplifying type-driven code generation on OCaml >=4.02";
     maintainers = [ maintainers.maurer ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix
index d1e435c1bfc0c..00f2ee0f8317d 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_protobuf/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ocaml-ppx/ppx_deriving_protobuf";
-    description = "A Protocol Buffers codec generator for OCaml";
+    description = "Protocol Buffers codec generator for OCaml";
     license = licenses.mit;
     maintainers = [ maintainers.vyorkin ];
   };
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
index 8106f4619d138..5fd645b52113a 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   nativeCheckInputs = [ mdx.bin ];
 
   meta = {
-    description = "A YAML codec generator for OCaml";
+    description = "YAML codec generator for OCaml";
     homepage = "https://github.com/patricoferris/ppx_deriving_yaml";
     license = lib.licenses.isc;
     maintainers = [ ];
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
index aa261f0bbb829..6e0fa39a0acf7 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
   checkInputs = [ ounit ];
 
   meta = {
-    description = "A Yojson codec generator for OCaml >= 4.04";
+    description = "Yojson codec generator for OCaml >= 4.04";
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix b/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
index 1da8a55225c22..ea2ea5be9db5f 100644
--- a/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_gen_rec/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-ppx_gen_rec";
-    description = "A ppx rewriter that transforms a recursive module expression into a struct.";
+    description = "Ppx rewriter that transforms a recursive module expression into a struct";
     license = licenses.mit;
     maintainers = with maintainers; [ frontsideair ];
   };
diff --git a/pkgs/development/ocaml-modules/ppx_import/default.nix b/pkgs/development/ocaml-modules/ppx_import/default.nix
index 8330aead80ea6..7b74fb8a49a5a 100644
--- a/pkgs/development/ocaml-modules/ppx_import/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_import/default.nix
@@ -6,18 +6,9 @@
 , ppx_deriving
 , ppx_sexp_conv
 , ppxlib
-, version ? if lib.versionAtLeast ocaml.version "4.11" then "1.10.0" else "1.9.1"
+, version ? if lib.versionAtLeast ocaml.version "4.11" then "1.11.0" else "1.9.1"
 }:
 
-let param = {
-  "1.9.1" = {
-    sha256 = "sha256-0bSY4u44Ds84XPIbcT5Vt4AG/4PkzFKMl9CDGFZyIdI=";
-  };
-  "1.10.0" = {
-    sha256 = "sha256-MA8sf0F7Ch1wJDL8E8470ukKx7KieWyjWJnJQsqBVW8=";
-  };
-}."${version}"; in
-
 lib.throwIfNot (lib.versionAtLeast ppxlib.version "0.24.0")
   "ppx_import is not available with ppxlib-${ppxlib.version}"
 
@@ -26,11 +17,15 @@ buildDunePackage rec {
   inherit version;
 
   minimalOCamlVersion = "4.05";
-  duneVersion = "3";
 
   src = fetchurl {
-    url = "https://github.com/ocaml-ppx/ppx_import/releases/download/${version}/ppx_import-${version}.tbz";
-    inherit (param) sha256;
+    url = let dir = if lib.versionAtLeast version "1.11" then "v${version}" else "${version}"; in
+      "https://github.com/ocaml-ppx/ppx_import/releases/download/${dir}/ppx_import-${version}.tbz";
+
+    hash = {
+      "1.9.1" = "sha256-0bSY4u44Ds84XPIbcT5Vt4AG/4PkzFKMl9CDGFZyIdI=";
+      "1.11.0" = "sha256-Jmfv1IkQoaTkyxoxp9FI0ChNESqCaoDsA7D4ZUbOrBo=";
+    }."${version}";
   };
 
   propagatedBuildInputs = [
@@ -46,7 +41,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A syntax extension for importing declarations from interface files";
+    description = "Syntax extension for importing declarations from interface files";
     license = lib.licenses.mit;
     homepage = "https://github.com/ocaml-ppx/ppx_import";
   };
diff --git a/pkgs/development/ocaml-modules/ppx_monad/default.nix b/pkgs/development/ocaml-modules/ppx_monad/default.nix
index 6c71dcb26c5f4..d17de7a1033c9 100644
--- a/pkgs/development/ocaml-modules/ppx_monad/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_monad/default.nix
@@ -24,7 +24,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "An OCaml Syntax Extension for all Monadic Syntaxes";
+    description = "OCaml Syntax Extension for all Monadic Syntaxes";
     license = lib.licenses.lgpl3Plus;
     maintainers = [ lib.maintainers.niols ];
     homepage = "https://github.com/niols/${pname}";
diff --git a/pkgs/development/ocaml-modules/ppx_tools/default.nix b/pkgs/development/ocaml-modules/ppx_tools/default.nix
index 7a07daf8ddcd5..41db9313fe7fe 100644
--- a/pkgs/development/ocaml-modules/ppx_tools/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_tools/default.nix
@@ -1,5 +1,9 @@
 { lib, stdenv, fetchFromGitHub, buildDunePackage, ocaml, findlib, cppo }:
 
+if lib.versionAtLeast ocaml.version "5.2"
+then throw "ppx_tools is not available for OCaml ${ocaml.version}"
+else
+
 let param =
   let v6_6 = {
     version = "6.6";
@@ -58,7 +62,6 @@ then
   buildDunePackage {
     inherit pname src meta;
     inherit (param) version buildInputs nativeBuildInputs;
-    duneVersion = "3";
   }
 else
   stdenv.mkDerivation {
diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
index 3feeaa84ab479..b80adedbc753b 100644
--- a/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_yojson_conv/default.nix
@@ -10,7 +10,7 @@ buildDunePackage rec {
   pname = "ppx_yojson_conv";
   version = "0.15.1";
   duneVersion = "3";
-  minimumOCamlVersion = "4.08.0";
+  minimalOCamlVersion = "4.08.0";
 
   src = fetchFromGitHub {
     owner = "janestreet";
@@ -26,7 +26,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A PPX syntax extension that generates code for converting OCaml types to and from Yojson";
+    description = "PPX syntax extension that generates code for converting OCaml types to and from Yojson";
     homepage = "https://github.com/janestreet/ppx_yojson_conv";
     maintainers = with maintainers; [djacu];
     license = with licenses; [mit];
diff --git a/pkgs/development/ocaml-modules/pratter/default.nix b/pkgs/development/ocaml-modules/pratter/default.nix
index a2408a267ce3a..efd2fc6639c28 100644
--- a/pkgs/development/ocaml-modules/pratter/default.nix
+++ b/pkgs/development/ocaml-modules/pratter/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An extended Pratt parser";
+    description = "Extended Pratt parser";
     homepage = "https://github.com/gabrielhdt/pratter";
     license = licenses.bsd3;
     changelog = "https://github.com/gabrielhdt/pratter/raw/${version}/CHANGELOG.md";
diff --git a/pkgs/development/ocaml-modules/prettym/default.nix b/pkgs/development/ocaml-modules/prettym/default.nix
index 0ec93f488eef1..a229eb9f35f16 100644
--- a/pkgs/development/ocaml-modules/prettym/default.nix
+++ b/pkgs/development/ocaml-modules/prettym/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A simple bounded encoder to serialize human readable values and respect the 80-column constraint";
+    description = "Simple bounded encoder to serialize human readable values and respect the 80-column constraint";
     license = lib.licenses.mit;
     homepage = "https://github.com/dinosaure/prettym";
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
index ef88bdcdab7b8..6981726f6df72 100644
--- a/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
+++ b/pkgs/development/ocaml-modules/psmt2-frontend/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   nativeBuildInputs = [ menhir ];
 
   meta = {
-    description = "A simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
+    description = "Simple parser and type-checker for polomorphic extension of the SMT-LIB 2 language";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
     inherit (src.meta) homepage;
diff --git a/pkgs/development/ocaml-modules/pyml/default.nix b/pkgs/development/ocaml-modules/pyml/default.nix
index ed7f2ef559edf..d5840c8af53dd 100644
--- a/pkgs/development/ocaml-modules/pyml/default.nix
+++ b/pkgs/development/ocaml-modules/pyml/default.nix
@@ -1,7 +1,6 @@
 { buildDunePackage
 , lib
 , fetchFromGitHub
-, fetchpatch
 , utop
 , python3
 , stdcompat
diff --git a/pkgs/development/ocaml-modules/qcheck/lin.nix b/pkgs/development/ocaml-modules/qcheck/lin.nix
index 23164901ab6ea..460d15b288da9 100644
--- a/pkgs/development/ocaml-modules/qcheck/lin.nix
+++ b/pkgs/development/ocaml-modules/qcheck/lin.nix
@@ -12,6 +12,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = qcheck-multicoretests-util.meta // {
-    description = "A multicore testing library for OCaml";
+    description = "Multicore testing library for OCaml";
   };
 }
diff --git a/pkgs/development/ocaml-modules/rdbg/default.nix b/pkgs/development/ocaml-modules/rdbg/default.nix
index 2813586180072..47504e4aa8888 100644
--- a/pkgs/development/ocaml-modules/rdbg/default.nix
+++ b/pkgs/development/ocaml-modules/rdbg/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://gricad-gitlab.univ-grenoble-alpes.fr/verimag/synchrone/rdbg";
-    description = "A programmable debugger that targets reactive programs for which a rdbg-plugin exists. Currently two plugins exist : one for Lustre, and one for Lutin (nb: both are synchronous programming languages)";
+    description = "Programmable debugger that targets reactive programs for which a rdbg-plugin exists. Currently two plugins exist : one for Lustre, and one for Lutin (nb: both are synchronous programming languages)";
     license = lib.licenses.cecill21;
     maintainers = [ lib.maintainers.delta ];
   };
diff --git a/pkgs/development/ocaml-modules/reactivedata/default.nix b/pkgs/development/ocaml-modules/reactivedata/default.nix
index 49b1357f54918..243e0daf16318 100644
--- a/pkgs/development/ocaml-modules/reactivedata/default.nix
+++ b/pkgs/development/ocaml-modules/reactivedata/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ react ];
 
   meta = with lib; {
-    description = "An OCaml module for functional reactive programming (FRP) based on React";
+    description = "OCaml module for functional reactive programming (FRP) based on React";
     homepage = "https://github.com/ocsigen/reactiveData";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ vbgl ];
diff --git a/pkgs/development/ocaml-modules/reason-native/console.nix b/pkgs/development/ocaml-modules/reason-native/console.nix
index b4b30cab4a0cb..a39ba9a7e3ec3 100644
--- a/pkgs/development/ocaml-modules/reason-native/console.nix
+++ b/pkgs/development/ocaml-modules/reason-native/console.nix
@@ -14,7 +14,7 @@
   };
 
   meta = {
-    description = "A library providing a web-influenced polymorphic console API for native Console.log(anything) with runtime printing";
+    description = "Library providing a web-influenced polymorphic console API for native Console.log(anything) with runtime printing";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/console";
     homepage = "https://reason-native.com/docs/console/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/dir.nix b/pkgs/development/ocaml-modules/reason-native/dir.nix
index 6b2aa0c3cd8f5..8b09eafc36965 100644
--- a/pkgs/development/ocaml-modules/reason-native/dir.nix
+++ b/pkgs/development/ocaml-modules/reason-native/dir.nix
@@ -12,7 +12,7 @@
   ];
 
   meta = {
-    description = "A library that provides a consistent API for common system, user and application directories consistently on all platforms";
+    description = "Library that provides a consistent API for common system, user and application directories consistently on all platforms";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/dir";
   };
 }
diff --git a/pkgs/development/ocaml-modules/reason-native/fp.nix b/pkgs/development/ocaml-modules/reason-native/fp.nix
index 8ff2ed65c4c01..7df1c84e55cf9 100644
--- a/pkgs/development/ocaml-modules/reason-native/fp.nix
+++ b/pkgs/development/ocaml-modules/reason-native/fp.nix
@@ -8,7 +8,7 @@
   ];
 
   meta = {
-    description = "A library for creating and operating on file paths consistently on multiple platforms";
+    description = "Library for creating and operating on file paths consistently on multiple platforms";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/fp";
   };
 }
diff --git a/pkgs/development/ocaml-modules/reason-native/pastel.nix b/pkgs/development/ocaml-modules/reason-native/pastel.nix
index f2c975d938e0b..6d08243638cab 100644
--- a/pkgs/development/ocaml-modules/reason-native/pastel.nix
+++ b/pkgs/development/ocaml-modules/reason-native/pastel.nix
@@ -13,7 +13,7 @@
   ];
 
   meta = {
-    description = "A text formatting library that harnesses Reason JSX to provide intuitive terminal output. Like React but for CLI";
+    description = "Text formatting library that harnesses Reason JSX to provide intuitive terminal output. Like React but for CLI";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/pastel";
     homepage = "https://reason-native.com/docs/pastel/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix b/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix
index 9d2770def09bc..ac645791f46c2 100644
--- a/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix
+++ b/pkgs/development/ocaml-modules/reason-native/qcheck-rely.nix
@@ -25,7 +25,7 @@
   ];
 
   meta = {
-    description = "A library containing custom Rely matchers allowing for easily using QCheck with Rely. QCheck is a 'QuickCheck inspired property-based testing for OCaml, and combinators to generate random values to run tests on'";
+    description = "Library containing custom Rely matchers allowing for easily using QCheck with Rely. QCheck is a 'QuickCheck inspired property-based testing for OCaml, and combinators to generate random values to run tests on'";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/qcheck-rely";
   };
 }
diff --git a/pkgs/development/ocaml-modules/reason-native/refmterr.nix b/pkgs/development/ocaml-modules/reason-native/refmterr.nix
index 3e517591b9e65..17c595d9e107d 100644
--- a/pkgs/development/ocaml-modules/reason-native/refmterr.nix
+++ b/pkgs/development/ocaml-modules/reason-native/refmterr.nix
@@ -15,7 +15,7 @@
   ];
 
   meta = {
-    description = "An error formatter tool for Reason and OCaml. Takes raw error output from compiler and converts to pretty output";
+    description = "Error formatter tool for Reason and OCaml. Takes raw error output from compiler and converts to pretty output";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/refmterr";
     homepage = "https://reason-native.com/docs/refmterr/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix b/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix
index 8a7080f624df1..25d9cc2c5f70f 100644
--- a/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix
+++ b/pkgs/development/ocaml-modules/reason-native/rely-junit-reporter.nix
@@ -19,7 +19,7 @@
   ];
 
   meta = {
-    description = "A tool providing JUnit Reporter for Rely Testing Framework";
+    description = "Tool providing JUnit Reporter for Rely Testing Framework";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/rely-junit-reporter";
     homepage = "https://reason-native.com/docs/rely/";
   };
diff --git a/pkgs/development/ocaml-modules/reason-native/rely.nix b/pkgs/development/ocaml-modules/reason-native/rely.nix
index f29565f9c4630..40315a668ba90 100644
--- a/pkgs/development/ocaml-modules/reason-native/rely.nix
+++ b/pkgs/development/ocaml-modules/reason-native/rely.nix
@@ -15,7 +15,7 @@
   ];
 
   meta = {
-    description = "A Jest-inspired testing framework for native OCaml/Reason";
+    description = "Jest-inspired testing framework for native OCaml/Reason";
     downloadPage = "https://github.com/reasonml/reason-native/tree/master/src/rely";
     homepage = "https://reason-native.com/docs/rely/";
   };
diff --git a/pkgs/development/ocaml-modules/resource-pooling/default.nix b/pkgs/development/ocaml-modules/resource-pooling/default.nix
index 463f8b386f24c..79d5c6175a7b5 100644
--- a/pkgs/development/ocaml-modules/resource-pooling/default.nix
+++ b/pkgs/development/ocaml-modules/resource-pooling/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A library for pooling resources like connections, threads, or similar";
+    description = "Library for pooling resources like connections, threads, or similar";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/resto/default.nix b/pkgs/development/ocaml-modules/resto/default.nix
index 0d67ca947751a..43735de3e5068 100644
--- a/pkgs/development/ocaml-modules/resto/default.nix
+++ b/pkgs/development/ocaml-modules/resto/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   doCheck = false;
 
   meta = {
-    description = "A minimal OCaml library for type-safe HTTP/JSON RPCs";
+    description = "Minimal OCaml library for type-safe HTTP/JSON RPCs";
     homepage = "https://gitlab.com/nomadic-labs/resto";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ulrikstrid ];
diff --git a/pkgs/development/ocaml-modules/rio/default.nix b/pkgs/development/ocaml-modules/rio/default.nix
new file mode 100644
index 0000000000000..853670be35288
--- /dev/null
+++ b/pkgs/development/ocaml-modules/rio/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "rio";
+  version = "0.0.8";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/riot-ml/riot/releases/download/${version}/riot-${version}.tbz";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
+  };
+
+  propagatedBuildInputs = [
+    cstruct
+  ];
+
+  meta = {
+    description = "Ergonomic, composable, efficient read/write streams";
+    homepage = "https://github.com/riot-ml/riot";
+    changelog = "https://github.com/riot-ml/riot/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/riot/default.nix b/pkgs/development/ocaml-modules/riot/default.nix
index a6f599639111f..f7ead9e0a194e 100644
--- a/pkgs/development/ocaml-modules/riot/default.nix
+++ b/pkgs/development/ocaml-modules/riot/default.nix
@@ -1,42 +1,40 @@
 { lib
 , buildDunePackage
-, cstruct
 , fetchurl
-, mdx
-, poll
-, ptime
+, mirage-crypto-rng
+, mtime
+, gluon
+, randomconv
+, rio
 , telemetry
-, uri
+, tls
 }:
 
 buildDunePackage rec {
   pname = "riot";
-  version = "0.0.7";
+  version = "0.0.8";
 
   minimalOCamlVersion = "5.1";
 
   src = fetchurl {
     url = "https://github.com/leostera/riot/releases/download/${version}/riot-${version}.tbz";
-    hash = "sha256-t+PMBh4rZXi82dUljv3nLzZX5o1iagBbQ9FfGnr/dp4=";
+    hash = "sha256-SsiDz53b9bMIT9Q3IwDdB3WKy98WSd9fiieU41qZpeE=";
   };
 
   propagatedBuildInputs = [
-    cstruct
-    poll
-    ptime
+    gluon
+    mirage-crypto-rng
+    mtime
+    randomconv
+    rio
     telemetry
-    uri
-  ];
-
-  checkInputs = [
-    mdx
-    mdx.bin
+    tls
   ];
 
   doCheck = false; # fails on sandbox
 
   meta = {
-    description = "An actor-model multi-core scheduler for OCaml 5";
+    description = "Actor-model multi-core scheduler for OCaml 5";
     homepage = "https://github.com/leostera/riot";
     changelog = "https://github.com/leostera/riot/blob/${version}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/ocaml-modules/rope/default.nix b/pkgs/development/ocaml-modules/rope/default.nix
index ff4f304d68515..c6260d713bc16 100644
--- a/pkgs/development/ocaml-modules/rope/default.nix
+++ b/pkgs/development/ocaml-modules/rope/default.nix
@@ -1,20 +1,29 @@
-{ lib, fetchurl, ocaml, buildDunePackage, benchmark }:
+{ lib, fetchurl, fetchpatch, ocaml, buildDunePackage
+, version ? if lib.versionAtLeast ocaml.version "5.0" then "0.6.3" else "0.6.2"
+, benchmark
+}:
 
-lib.throwIf (lib.versionAtLeast ocaml.version "5.0")
-  "rope is not available for OCaml ${ocaml.version}"
 
-buildDunePackage rec {
+buildDunePackage {
   pname = "rope";
-  version = "0.6.2";
+  inherit version;
   minimalOCamlVersion = "4.03";
 
   src = fetchurl {
     url = "https://github.com/Chris00/ocaml-rope/releases/download/${version}/rope-${version}.tbz";
-    sha256 = "15cvfa0s1vjx7gjd07d3fkznilishqf4z4h2q5f20wm9ysjh2h2i";
+    hash = {
+      "0.6.2" = "sha256:15cvfa0s1vjx7gjd07d3fkznilishqf4z4h2q5f20wm9ysjh2h2i";
+      "0.6.3" = "sha256-M14fiP9BDiz3WEoMqAJqZaXk4PoZ8Z1YjOk+F97z05Y=";
+    }."${version}";
   };
 
   buildInputs = [ benchmark ] ;
 
+  patches = lib.optional (version == "0.6.3") (fetchpatch {
+    url = "https://github.com/Chris00/ocaml-rope/commit/be53daa18dd3d1450a92881b33c997eafb1dc958.patch";
+    hash = "sha256-fHJNfD1ph3+QLmVJ8C4hhJ8hvrWIh7D0EL0XhOW2yqQ=";
+  });
+
   meta = {
     homepage = "https://github.com/Chris00/ocaml-rope";
     description = "Ropes (“heavyweight strings”) in OCaml";
diff --git a/pkgs/development/ocaml-modules/rpclib/lwt.nix b/pkgs/development/ocaml-modules/rpclib/lwt.nix
index eacdcf303c2dd..a4a3e06bf1009 100644
--- a/pkgs/development/ocaml-modules/rpclib/lwt.nix
+++ b/pkgs/development/ocaml-modules/rpclib/lwt.nix
@@ -18,6 +18,6 @@ buildDunePackage {
   doCheck = true;
 
   meta = rpclib.meta // {
-    description = "A library to deal with RPCs in OCaml - Lwt interface";
+    description = "Library to deal with RPCs in OCaml - Lwt interface";
   };
 }
diff --git a/pkgs/development/ocaml-modules/safepass/default.nix b/pkgs/development/ocaml-modules/safepass/default.nix
index e8a50f45119e8..d60cfcdb12762 100644
--- a/pkgs/development/ocaml-modules/safepass/default.nix
+++ b/pkgs/development/ocaml-modules/safepass/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "An OCaml library offering facilities for the safe storage of user passwords";
+    description = "OCaml library offering facilities for the safe storage of user passwords";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ vbgl ];
   };
diff --git a/pkgs/development/ocaml-modules/sail/default.nix b/pkgs/development/ocaml-modules/sail/default.nix
index 0e2dbda80d49d..a01afe5904a5e 100644
--- a/pkgs/development/ocaml-modules/sail/default.nix
+++ b/pkgs/development/ocaml-modules/sail/default.nix
@@ -73,7 +73,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/rems-project/sail";
-    description = "A language for describing the instruction-set architecture (ISA) semantics of processors";
+    description = "Language for describing the instruction-set architecture (ISA) semantics of processors";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/ocaml-modules/saturn/default.nix b/pkgs/development/ocaml-modules/saturn/default.nix
index 855935aff6727..582f0e7f5aeab 100644
--- a/pkgs/development/ocaml-modules/saturn/default.nix
+++ b/pkgs/development/ocaml-modules/saturn/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, ocaml
+{ lib, buildDunePackage, ocaml
 , saturn_lockfree
 , dscheck
 , qcheck, qcheck-alcotest, qcheck-stm
diff --git a/pkgs/development/ocaml-modules/sawja/default.nix b/pkgs/development/ocaml-modules/sawja/default.nix
index ab21f11fa31f0..465c568a1d1f9 100644
--- a/pkgs/development/ocaml-modules/sawja/default.nix
+++ b/pkgs/development/ocaml-modules/sawja/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = [ javalib ];
 
   meta = with lib; {
-    description = "A library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
+    description = "Library written in OCaml, relying on Javalib to provide a high level representation of Java bytecode programs";
     homepage = "http://sawja.inria.fr/";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/sedlex/default.nix b/pkgs/development/ocaml-modules/sedlex/default.nix
index b4147f53c7e9a..b7303a425d623 100644
--- a/pkgs/development/ocaml-modules/sedlex/default.nix
+++ b/pkgs/development/ocaml-modules/sedlex/default.nix
@@ -78,7 +78,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-community/sedlex";
     changelog = "https://github.com/ocaml-community/sedlex/raw/v${version}/CHANGES";
-    description = "An OCaml lexer generator for Unicode";
+    description = "OCaml lexer generator for Unicode";
     license = lib.licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/ocaml-modules/sel/default.nix b/pkgs/development/ocaml-modules/sel/default.nix
index 348421f53912c..e9742c9b42d57 100644
--- a/pkgs/development/ocaml-modules/sel/default.nix
+++ b/pkgs/development/ocaml-modules/sel/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   ];
 
   meta = {
-    description = "A simple event library";
+    description = "Simple event library";
     homepage = "https://github.com/gares/sel/";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/spices/default.nix b/pkgs/development/ocaml-modules/spices/default.nix
new file mode 100644
index 0000000000000..a1d6b06d156bb
--- /dev/null
+++ b/pkgs/development/ocaml-modules/spices/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildDunePackage
+, fetchurl
+, colors
+, tty
+}:
+
+buildDunePackage rec {
+  pname = "spices";
+  version = "0.0.2";
+
+  minimalOCamlVersion = "5.1";
+
+  src = fetchurl {
+    url = "https://github.com/leostera/minttea/releases/download/${version}/minttea-${version}.tbz";
+    hash = "sha256-0eB7OuxcPdv9bf2aIQEeir44mQfx5W2AJj7Vb4pGtLI=";
+  };
+
+  propagatedBuildInputs = [
+    colors
+    tty
+  ];
+
+  doCheck = true;
+
+  meta = {
+    description = "Declarative styles for TUI applications";
+    homepage = "https://github.com/leostera/minttea";
+    changelog = "https://github.com/leostera/minttea/blob/${version}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
+
diff --git a/pkgs/development/ocaml-modules/stdcompat/default.nix b/pkgs/development/ocaml-modules/stdcompat/default.nix
index 33e93967e192e..23eeca421f5ea 100644
--- a/pkgs/development/ocaml-modules/stdcompat/default.nix
+++ b/pkgs/development/ocaml-modules/stdcompat/default.nix
@@ -1,8 +1,12 @@
 { buildDunePackage
+, ocaml
 , lib
 , fetchurl
 }:
 
+lib.throwIf (lib.versionAtLeast ocaml.version "5.2")
+  "stdcompat is not available for OCaml ${ocaml.version}"
+
 buildDunePackage rec {
   pname = "stdcompat";
   version = "19";
diff --git a/pkgs/development/ocaml-modules/tcslib/default.nix b/pkgs/development/ocaml-modules/tcslib/default.nix
index 53bc8c9292cb5..1feff4e0a39b3 100644
--- a/pkgs/development/ocaml-modules/tcslib/default.nix
+++ b/pkgs/development/ocaml-modules/tcslib/default.nix
@@ -17,7 +17,7 @@ buildOasisPackage rec {
 
   meta = {
     homepage = "https://github.com/tcsprojects/tcslib";
-    description = "A multi-purpose library for OCaml";
+    description = "Multi-purpose library for OCaml";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ mgttlinger ];
   };
diff --git a/pkgs/development/ocaml-modules/telegraml/default.nix b/pkgs/development/ocaml-modules/telegraml/default.nix
index d58e6adfe2e5d..ed0dc49fa9e18 100644
--- a/pkgs/development/ocaml-modules/telegraml/default.nix
+++ b/pkgs/development/ocaml-modules/telegraml/default.nix
@@ -30,7 +30,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "An OCaml library implementing the Telegram bot API";
+    description = "OCaml library implementing the Telegram bot API";
     homepage = "https://github.com/nv-vn/TelegraML/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/telemetry/default.nix b/pkgs/development/ocaml-modules/telemetry/default.nix
index 85d6e067f60f8..d1a57745cefb7 100644
--- a/pkgs/development/ocaml-modules/telemetry/default.nix
+++ b/pkgs/development/ocaml-modules/telemetry/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A lightweight library for dispatching and handling events, with a focus on metrics and instrumentation";
+    description = "Lightweight library for dispatching and handling events, with a focus on metrics and instrumentation";
     homepage = "https://github.com/leostera/telemetry";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/thread-table/default.nix b/pkgs/development/ocaml-modules/thread-table/default.nix
index 36f1ca79b2708..155bca397ee69 100644
--- a/pkgs/development/ocaml-modules/thread-table/default.nix
+++ b/pkgs/development/ocaml-modules/thread-table/default.nix
@@ -30,7 +30,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/ocaml-multicore/ocaml-${pname}";
     changelog = "https://github.com/ocaml-multicore/ocaml-${pname}/raw/${version}/CHANGES.md";
-    description = "A lock-free thread-safe integer keyed hash table";
+    description = "Lock-free thread-safe integer keyed hash table";
     license = with lib.licenses; [ isc ];
     maintainers = with lib.maintainers; [ toastal ];
   };
diff --git a/pkgs/development/ocaml-modules/topkg/default.nix b/pkgs/development/ocaml-modules/topkg/default.nix
index 0baa38c806ef6..e0dbc77eafd99 100644
--- a/pkgs/development/ocaml-modules/topkg/default.nix
+++ b/pkgs/development/ocaml-modules/topkg/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://erratique.ch/software/topkg";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.vbgl ];
-    description = "A packager for distributing OCaml software";
+    description = "Packager for distributing OCaml software";
     inherit (ocaml.meta) platforms;
   };
 }
diff --git a/pkgs/development/ocaml-modules/torch/default.nix b/pkgs/development/ocaml-modules/torch/default.nix
index 5acef0f2a72ca..f24a4fe968197 100644
--- a/pkgs/development/ocaml-modules/torch/default.nix
+++ b/pkgs/development/ocaml-modules/torch/default.nix
@@ -64,5 +64,6 @@ buildDunePackage rec {
     description = "Ocaml bindings to Pytorch";
     maintainers = [ maintainers.bcdarwin ];
     license = licenses.asl20;
+    broken = true; # Not compatible with libtorch ≥ 2.3.0
   };
 }
diff --git a/pkgs/development/ocaml-modules/trace/tef.nix b/pkgs/development/ocaml-modules/trace/tef.nix
index eeeda78f580d0..618009d11fa77 100644
--- a/pkgs/development/ocaml-modules/trace/tef.nix
+++ b/pkgs/development/ocaml-modules/trace/tef.nix
@@ -18,7 +18,7 @@ buildDunePackage {
   doCheck = true;
 
   meta = trace.meta // {
-    description = "A simple backend for trace, emitting Catapult JSON into a file";
+    description = "Simple backend for trace, emitting Catapult JSON into a file";
   };
 
 }
diff --git a/pkgs/development/ocaml-modules/tsdl-image/default.nix b/pkgs/development/ocaml-modules/tsdl-image/default.nix
index 3b0895b7b2f62..008822459cc15 100644
--- a/pkgs/development/ocaml-modules/tsdl-image/default.nix
+++ b/pkgs/development/ocaml-modules/tsdl-image/default.nix
@@ -9,7 +9,7 @@
 
 buildDunePackage rec {
   pname = "tsdl-image";
-  version = "0.5";
+  version = "0.6";
 
   duneVersion = "3";
 
@@ -17,7 +17,7 @@ buildDunePackage rec {
     owner = "sanette";
     repo = pname;
     rev = version;
-    hash = "sha256-khLhVJuiLNNWw76gTeg4W32v5XbkwAg11bIOWl67u2k=";
+    hash = "sha256-mgTFwkuFJVwJmHrzHSdNh8v4ehZIcWemK+eLqjglw5o=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/ocaml-modules/tty/default.nix b/pkgs/development/ocaml-modules/tty/default.nix
index 8c5c1b47524af..649973df578be 100644
--- a/pkgs/development/ocaml-modules/tty/default.nix
+++ b/pkgs/development/ocaml-modules/tty/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A library for interacting with teletype and terminal emulators";
+    description = "Library for interacting with teletype and terminal emulators";
     homepage = "https://github.com/leostera/tty";
     changelog = "https://github.com/leostera/tty/blob/${version}/CHANGES.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/ocaml-modules/tyxml/default.nix b/pkgs/development/ocaml-modules/tyxml/default.nix
index 4cc5aa4cc42d7..d58cee2cad3c0 100644
--- a/pkgs/development/ocaml-modules/tyxml/default.nix
+++ b/pkgs/development/ocaml-modules/tyxml/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "http://ocsigen.org/tyxml/";
-    description = "A library that makes it almost impossible for your OCaml programs to generate wrong XML output, using static typing";
+    description = "Library that makes it almost impossible for your OCaml programs to generate wrong XML output, using static typing";
     license = licenses.lgpl21;
     maintainers = with maintainers; [
       gal_bolle vbgl
diff --git a/pkgs/development/ocaml-modules/ulex/default.nix b/pkgs/development/ocaml-modules/ulex/default.nix
index b871bc403ed80..910d75dcdc2bb 100644
--- a/pkgs/development/ocaml-modules/ulex/default.nix
+++ b/pkgs/development/ocaml-modules/ulex/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     inherit (src.meta) homepage;
-    description = "A lexer generator for Unicode and OCaml";
+    description = "Lexer generator for Unicode and OCaml";
     license = lib.licenses.mit;
     inherit (ocaml.meta) platforms;
     maintainers = [ lib.maintainers.roconnor ];
diff --git a/pkgs/development/ocaml-modules/unstrctrd/default.nix b/pkgs/development/ocaml-modules/unstrctrd/default.nix
index f9e287e21620c..b9be734a40e87 100644
--- a/pkgs/development/ocaml-modules/unstrctrd/default.nix
+++ b/pkgs/development/ocaml-modules/unstrctrd/default.nix
@@ -14,15 +14,13 @@
 
 buildDunePackage rec {
   pname = "unstrctrd";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchzip {
-    url = "https://github.com/dinosaure/unstrctrd/releases/download/v${version}/unstrctrd-v${version}.tbz";
-    sha256 = "0mjm4v7kk75iwwsfnpmxc3bsl8aisz53y7z21sykdp60f4rxnah7";
+    url = "https://github.com/dinosaure/unstrctrd/releases/download/v${version}/unstrctrd-${version}.tbz";
+    hash = "sha256-CGcDqEr+VDTbDYkjxeYB6IFWiTkOTLJJl/Y2bHtv19g=";
   };
 
-  duneVersion = "3";
-
   propagatedBuildInputs = [
     angstrom
     uutf
@@ -40,7 +38,7 @@ buildDunePackage rec {
   doCheck = true;
 
   meta = {
-    description = "A library for parsing email headers";
+    description = "Library for parsing email headers";
     homepage = "https://github.com/dinosaure/unstrctrd";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/uri/default.nix b/pkgs/development/ocaml-modules/uri/default.nix
index 2c7ab1b6e5063..f8e8efdaae678 100644
--- a/pkgs/development/ocaml-modules/uri/default.nix
+++ b/pkgs/development/ocaml-modules/uri/default.nix
@@ -5,13 +5,13 @@
 buildDunePackage rec {
   minimalOCamlVersion = "4.03";
   pname = "uri";
-  version = "4.2.0";
+  version = "4.4.0";
 
   duneVersion = "3";
 
   src = fetchurl {
-    url = "https://github.com/mirage/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "0szifda6yism5vn5jdizkha3ad0xk6zw4xgfl8g77dnv83ci7h65";
+    url = "https://github.com/mirage/ocaml-${pname}/releases/download/v${version}/${pname}-${version}.tbz";
+    sha256 = "cdabaf6ef5cd2161e59cc7b74c6e4a68ecb80a9f4e96002e338e1b6bf17adec4";
   };
 
   checkInputs = [ ounit ];
diff --git a/pkgs/development/ocaml-modules/uring/default.nix b/pkgs/development/ocaml-modules/uring/default.nix
index 1930aa5bbff5d..c78e794b8034e 100644
--- a/pkgs/development/ocaml-modules/uring/default.nix
+++ b/pkgs/development/ocaml-modules/uring/default.nix
@@ -3,7 +3,6 @@
 , cstruct
 , dune-configurator
 , fetchurl
-, fetchpatch
 , fmt
 , optint
 , mdx
@@ -11,23 +10,15 @@
 
 buildDunePackage rec {
   pname = "uring";
-  version = "0.8";
+  version = "0.9";
 
   minimalOCamlVersion = "4.12";
 
   src = fetchurl {
     url = "https://github.com/ocaml-multicore/ocaml-${pname}/releases/download/v${version}/${pname}-${version}.tbz";
-    hash = "sha256-4OGst19vqEzuNVxO5xxtzS+mEilEBFoEc7lC3j3sTk4=";
+    hash = "sha256-eXWIxfL9UsKKf4sanBjKfr6Od4fPDctVnkU+wjIXW0M=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "musl-1.2.5.patch";
-      url = "https://github.com/ocaml-multicore/ocaml-uring/commit/abe340086574c124061434054937d1f19ee6bb71.patch";
-      hash = "sha256-J4ZQAdQZ9fhT3/vAh5FYMyvMllTowe4GyHJy5RGUTv0=";
-    })
-  ];
-
   propagatedBuildInputs = [
     cstruct
     fmt
diff --git a/pkgs/development/ocaml-modules/uucd/default.nix b/pkgs/development/ocaml-modules/uucd/default.nix
index 3bad3a84945aa..847868032ca1b 100644
--- a/pkgs/development/ocaml-modules/uucd/default.nix
+++ b/pkgs/development/ocaml-modules/uucd/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ xmlm ];
 
   meta = with lib; {
-    description = "An OCaml module to decode the data of the Unicode character database from its XML representation";
+    description = "OCaml module to decode the data of the Unicode character database from its XML representation";
     homepage = webpage;
     inherit (ocaml.meta) platforms;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix
index 7ef10660fbb2c..1703cac867f72 100644
--- a/pkgs/development/ocaml-modules/uucp/default.nix
+++ b/pkgs/development/ocaml-modules/uucp/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
   checkInputs = [ uucd ];
 
   meta = with lib; {
-    description = "An OCaml library providing efficient access to a selection of character properties of the Unicode character database";
+    description = "OCaml library providing efficient access to a selection of character properties of the Unicode character database";
     homepage = webpage;
     inherit (ocaml.meta) platforms;
     license = licenses.bsd3;
diff --git a/pkgs/development/ocaml-modules/uuidm/default.nix b/pkgs/development/ocaml-modules/uuidm/default.nix
index 949737d28ee07..83b8cacc77a0f 100644
--- a/pkgs/development/ocaml-modules/uuidm/default.nix
+++ b/pkgs/development/ocaml-modules/uuidm/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = with lib; {
-    description = "An OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
+    description = "OCaml module implementing 128 bits universally unique identifiers version 3, 5 (name based with MD5, SHA-1 hashing) and 4 (random based) according to RFC 4122";
     homepage = "https://erratique.ch/software/uuidm";
     license = licenses.bsd3;
     maintainers = [ maintainers.maurer ];
diff --git a/pkgs/development/ocaml-modules/uunf/default.nix b/pkgs/development/ocaml-modules/uunf/default.nix
index 4785bbd040516..2d473a4b83516 100644
--- a/pkgs/development/ocaml-modules/uunf/default.nix
+++ b/pkgs/development/ocaml-modules/uunf/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation {
   inherit (topkg) installPhase;
 
   meta = with lib; {
-    description = "An OCaml module for normalizing Unicode text";
+    description = "OCaml module for normalizing Unicode text";
     homepage = webpage;
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/uuseg/default.nix b/pkgs/development/ocaml-modules/uuseg/default.nix
index a277bffd85f31..9a8cfa29491f2 100644
--- a/pkgs/development/ocaml-modules/uuseg/default.nix
+++ b/pkgs/development/ocaml-modules/uuseg/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) installPhase;
 
   meta = with lib; {
-    description = "An OCaml library for segmenting Unicode text";
+    description = "OCaml library for segmenting Unicode text";
     homepage = webpage;
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/uuuu/default.nix b/pkgs/development/ocaml-modules/uuuu/default.nix
index ed38329ae22b6..6f0312cfb61a6 100644
--- a/pkgs/development/ocaml-modules/uuuu/default.nix
+++ b/pkgs/development/ocaml-modules/uuuu/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
   duneVersion = "3";
 
   meta = {
-    description = "A library to normalize an ISO-8859 input to Unicode code-point";
+    description = "Library to normalize an ISO-8859 input to Unicode code-point";
     homepage = "https://github.com/mirage/uuuu";
     license = lib.licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/ocaml-modules/visitors/default.nix b/pkgs/development/ocaml-modules/visitors/default.nix
index 2187de4c7c42b..22762db02aa3f 100644
--- a/pkgs/development/ocaml-modules/visitors/default.nix
+++ b/pkgs/development/ocaml-modules/visitors/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
     homepage = "https://gitlab.inria.fr/fpottier/visitors";
     changelog = "https://gitlab.inria.fr/fpottier/visitors/-/raw/${version}/CHANGES.md";
     license = licenses.lgpl21;
-    description = "An OCaml syntax extension (technically, a ppx_deriving plugin) which generates object-oriented visitors for traversing and transforming data structures";
+    description = "OCaml syntax extension (technically, a ppx_deriving plugin) which generates object-oriented visitors for traversing and transforming data structures";
     maintainers = [ ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/wasm/default.nix b/pkgs/development/ocaml-modules/wasm/default.nix
index 2dc6122fa6207..95ba92c8bca30 100644
--- a/pkgs/development/ocaml-modules/wasm/default.nix
+++ b/pkgs/development/ocaml-modules/wasm/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An executable and OCaml library to run, read and write Web Assembly (wasm) files and manipulate their AST";
+    description = "Executable and OCaml library to run, read and write Web Assembly (wasm) files and manipulate their AST";
     mainProgram = "wasm";
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/webmachine/default.nix b/pkgs/development/ocaml-modules/webmachine/default.nix
index 9f8749cac9fd3..33436cd2c8c23 100644
--- a/pkgs/development/ocaml-modules/webmachine/default.nix
+++ b/pkgs/development/ocaml-modules/webmachine/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
   meta = {
     homepage = "https://github.com/inhabitedtype/ocaml-webmachine";
     license = lib.licenses.bsd3;
-    description = "A REST toolkit for OCaml";
+    description = "REST toolkit for OCaml";
     maintainers = [ lib.maintainers.vbgl ];
   };
 
diff --git a/pkgs/development/ocaml-modules/wtf8/default.nix b/pkgs/development/ocaml-modules/wtf8/default.nix
index fec6c433604eb..456fe129c8b19 100644
--- a/pkgs/development/ocaml-modules/wtf8/default.nix
+++ b/pkgs/development/ocaml-modules/wtf8/default.nix
@@ -6,7 +6,7 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  minimumOCamlVersion = "4.02";
+  minimalOCamlVersion = "4.02";
 
   src = fetchurl {
     url = "https://github.com/flowtype/ocaml-${pname}/releases/download/v${version}/${pname}-v${version}.tbz";
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/flowtype/ocaml-wtf8";
-    description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates.";
+    description = "WTF-8 is a superset of UTF-8 that allows unpaired surrogates";
     license = licenses.mit;
     maintainers = [ maintainers.eqyiel ];
   };
diff --git a/pkgs/development/ocaml-modules/xmlm/default.nix b/pkgs/development/ocaml-modules/xmlm/default.nix
index 82d64566b9a6f..35459d14024b0 100644
--- a/pkgs/development/ocaml-modules/xmlm/default.nix
+++ b/pkgs/development/ocaml-modules/xmlm/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   inherit (topkg) buildPhase installPhase;
 
   meta = with lib; {
-    description = "An OCaml streaming codec to decode and encode the XML data format";
+    description = "OCaml streaming codec to decode and encode the XML data format";
     homepage = webpage;
     license = licenses.isc;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/yaml/yaml-sexp.nix b/pkgs/development/ocaml-modules/yaml/yaml-sexp.nix
index e0cc9fac177d7..051019c734796 100644
--- a/pkgs/development/ocaml-modules/yaml/yaml-sexp.nix
+++ b/pkgs/development/ocaml-modules/yaml/yaml-sexp.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, yaml, dune-configurator, ppx_sexp_conv, sexplib
+{ lib, buildDunePackage, yaml, dune-configurator, ppx_sexp_conv, sexplib
 , junit_alcotest
 }:
 
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index c8600cf52b168..ec5c86036ad27 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -1,19 +1,18 @@
-{ lib, fetchurl, buildDunePackage, cppo, seq }:
+{ lib, fetchurl, buildDunePackage, seq }:
 
 buildDunePackage rec {
   pname = "yojson";
-  version = "2.1.2";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/yojson/releases/download/${version}/yojson-${version}.tbz";
-    hash = "sha256-WfLxq7/Ip8y9v2CIlOXHXop2AG40iZJURG+D4gDftPk=";
+    hash = "sha256-v9wzvvMUG7qaj6ZqiFtUsp9r+rRQBAiE3Yz3zex4RRk=";
   };
 
-  nativeBuildInputs = [ cppo ];
   propagatedBuildInputs = [ seq ];
 
   meta = with lib; {
-    description = "An optimized parsing and printing library for the JSON format";
+    description = "Optimized parsing and printing library for the JSON format";
     homepage = "https://github.com/ocaml-community/${pname}";
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
diff --git a/pkgs/development/ocaml-modules/yuscii/default.nix b/pkgs/development/ocaml-modules/yuscii/default.nix
index 9dea11e62b35b..3080cb772e9e3 100644
--- a/pkgs/development/ocaml-modules/yuscii/default.nix
+++ b/pkgs/development/ocaml-modules/yuscii/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = {
-    description = "A simple mapper between UTF-7 to Unicode according RFC2152";
+    description = "Simple mapper between UTF-7 to Unicode according RFC2152";
     license = lib.licenses.mit;
     homepage = "https://github.com/mirage/yuscii";
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/ocaml-modules/zelus/default.nix b/pkgs/development/ocaml-modules/zelus/default.nix
index d326e234c0d02..07d268d45de9a 100644
--- a/pkgs/development/ocaml-modules/zelus/default.nix
+++ b/pkgs/development/ocaml-modules/zelus/default.nix
@@ -33,7 +33,7 @@ buildDunePackage rec {
   ];
 
   meta = with lib; {
-    description = "A synchronous language with ODEs";
+    description = "Synchronous language with ODEs";
     homepage = "https://zelus.di.ens.fr";
     license = licenses.inria-zelus;
     mainProgram = "zeluc";