about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/misc/orpie/default.nix3
-rw-r--r--pkgs/applications/misc/stog/default.nix3
-rw-r--r--pkgs/applications/networking/google-drive-ocamlfuse/default.nix2
-rw-r--r--pkgs/applications/science/logic/acgtk/default.nix16
-rw-r--r--pkgs/applications/science/logic/z3/default.nix5
-rw-r--r--pkgs/applications/virtualization/virt-top/default.nix2
-rw-r--r--pkgs/build-support/ocaml/dune.nix2
-rw-r--r--pkgs/development/compilers/stanc/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/afl-persistent/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/alcotest/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/angstrom/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/apron/default.nix1
-rw-r--r--pkgs/development/ocaml-modules/arp/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/asn1-combinators/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/atdgen/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/awa/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/awa/lwt.nix3
-rw-r--r--pkgs/development/ocaml-modules/bap/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/base64/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/benchmark/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bheap/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/bigarray-overlap/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/bigstringaf/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/bindlib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/biocaml/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/bitstring/ppx.nix2
-rw-r--r--pkgs/development/ocaml-modules/bls12-381-signature/default.nix20
-rw-r--r--pkgs/development/ocaml-modules/bls12-381/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/bls12-381/legacy.nix2
-rw-r--r--pkgs/development/ocaml-modules/bwd/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ca-certs-nss/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ca-certs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/callipyge/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/camlimages/4.2.4.nix4
-rw-r--r--pkgs/development/ocaml-modules/caqti/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/carton/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/carton/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/chacha/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/checkseum/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/class_group_vdf/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/cohttp/async.nix2
-rw-r--r--pkgs/development/ocaml-modules/cohttp/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cohttp/lwt-unix.nix9
-rw-r--r--pkgs/development/ocaml-modules/conduit/lwt-unix.nix2
-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.nix15
-rw-r--r--pkgs/development/ocaml-modules/cow/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/cpu/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/crowbar/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cstruct/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/cstruct/ppx.nix17
-rw-r--r--pkgs/development/ocaml-modules/cstruct/sexp.nix2
-rw-r--r--pkgs/development/ocaml-modules/ctypes_stubs_js/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/cudf/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/curly/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/curses/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/data-encoding/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/decompress/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/diet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/digestif/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/dispatch/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/dns/cli.nix2
-rw-r--r--pkgs/development/ocaml-modules/dns/client.nix27
-rw-r--r--pkgs/development/ocaml-modules/dns/default.nix18
-rw-r--r--pkgs/development/ocaml-modules/dns/dnssec.nix15
-rw-r--r--pkgs/development/ocaml-modules/dns/resolver.nix20
-rw-r--r--pkgs/development/ocaml-modules/dns/server.nix18
-rw-r--r--pkgs/development/ocaml-modules/dns/tsig.nix2
-rw-r--r--pkgs/development/ocaml-modules/domain-name/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/domainslib/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/dose3/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/dtoa/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/duff/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/dune-build-info/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/duration/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/earlybird/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/emile/default.nix16
-rw-r--r--pkgs/development/ocaml-modules/encore/default.nix13
-rw-r--r--pkgs/development/ocaml-modules/ethernet/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/faraday/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ff/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ff/pbt.nix2
-rw-r--r--pkgs/development/ocaml-modules/fileutils/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/gapi-ocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/gen/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/gg/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/git/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/git/mirage.nix5
-rw-r--r--pkgs/development/ocaml-modules/git/unix.nix12
-rw-r--r--pkgs/development/ocaml-modules/gmap/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/graphql/cohttp.nix16
-rw-r--r--pkgs/development/ocaml-modules/graphql/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/graphql/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/graphql/parser.nix2
-rw-r--r--pkgs/development/ocaml-modules/graphql_ppx/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/h2/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/hkdf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/httpaf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/imagelib/default.nix11
-rw-r--r--pkgs/development/ocaml-modules/index/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/inotify/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/io-page/default.nix5
-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/chunk.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/containers.nix12
-rw-r--r--pkgs/development/ocaml-modules/irmin/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/fs.nix5
-rw-r--r--pkgs/development/ocaml-modules/irmin/git.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/graphql.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/http.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/pack.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/test.nix2
-rw-r--r--pkgs/development/ocaml-modules/irmin/tezos.nix18
-rw-r--r--pkgs/development/ocaml-modules/iter/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.14.nix10
-rw-r--r--pkgs/development/ocaml-modules/janestreet/0.15.nix2
-rw-r--r--pkgs/development/ocaml-modules/jingoo/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/json-data-encoding/bson.nix2
-rw-r--r--pkgs/development/ocaml-modules/json-data-encoding/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/jwto/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ke/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lablgl/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/labltk/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lambdapi/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lambdasoup/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lens/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/letsencrypt/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lockfree/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lru/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/luv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/lwt-dllist/default.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/markup/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mdx/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/mec/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/metrics/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/metrics/unix.nix3
-rw-r--r--pkgs/development/ocaml-modules/mimic/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-block-unix/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/mirage-channel/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/ec.nix5
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/pk.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-crypto/rng.nix4
-rw-r--r--pkgs/development/ocaml-modules/mirage-flow/unix.nix5
-rw-r--r--pkgs/development/ocaml-modules/mirage-kv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-logs/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage-nat/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/mirage/runtime.nix2
-rw-r--r--pkgs/development/ocaml-modules/mrmime/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/multipart-form-data/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/mustache/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/netchannel/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-cairo/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-freestanding/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocaml-gettext/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocaml-vdom/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ocaml-version/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/ocamlnat/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocamlsdl/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ocsigen-server/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/odoc/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/opium/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/oseq/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/owl/default.nix9
-rw-r--r--pkgs/development/ocaml-modules/paf/cohttp.nix4
-rw-r--r--pkgs/development/ocaml-modules/paf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/parse-argv/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pbkdf/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/pcap-format/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/pecu/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/phylogenetics/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/piqi-ocaml/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/postgresql/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/pp/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_blob/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving/default.nix5
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/ppx_deriving_rpc/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/pratter/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/prettym/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/progress/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/psq/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/reason-native/refmterr.nix1
-rw-r--r--pkgs/development/ocaml-modules/repr/ppx.nix2
-rw-r--r--pkgs/development/ocaml-modules/rfc7748/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/rpclib/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/rpclib/lwt.nix10
-rw-r--r--pkgs/development/ocaml-modules/secp256k1-internal/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/sha/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/shared-memory-ring/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix2
-rw-r--r--pkgs/development/ocaml-modules/ssl/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/stdint/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/stringext/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/syslog-message/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/tcpip/default.nix6
-rw-r--r--pkgs/development/ocaml-modules/terminal/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/terminal_size/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/default.nix28
-rw-r--r--pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plompiler.nix2
-rw-r--r--pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plonk.nix24
-rw-r--r--pkgs/development/ocaml-modules/tls/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/tsdl/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uecc/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/unstrctrd/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uri/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/uri/sexp.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/uuuu/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/vchan/default.nix7
-rw-r--r--pkgs/development/ocaml-modules/wayland/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/webmachine/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/x509/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/xenstore/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/yaml/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/yojson/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/yuscii/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/yuujinchou/default.nix2
-rw-r--r--pkgs/development/tools/comby/default.nix17
-rw-r--r--pkgs/development/tools/ocaml/camlp4/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/camlp5/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/cppo/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/dune-release/default.nix5
-rw-r--r--pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix4
-rw-r--r--pkgs/development/tools/ocaml/obuild/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocaml-top/default.nix3
-rw-r--r--pkgs/development/tools/ocaml/ocamlify/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocamlmod/default.nix4
-rw-r--r--pkgs/development/tools/ocaml/ocamlscript/default.nix2
-rw-r--r--pkgs/development/tools/ocaml/ocp-build/default.nix5
-rw-r--r--pkgs/development/tools/ocaml/ocsigen-i18n/default.nix5
-rw-r--r--pkgs/development/tools/ocaml/omake/default.nix5
-rw-r--r--pkgs/development/tools/ocaml/opam/1.2.2.nix6
-rw-r--r--pkgs/development/tools/ocaml/opam/default.nix6
-rwxr-xr-xpkgs/development/tools/ocaml/opam/opam.nix.pl6
-rw-r--r--pkgs/development/tools/ocaml/utop/default.nix2
-rw-r--r--pkgs/tools/wayland/wayland-proxy-virtwl/default.nix2
250 files changed, 659 insertions, 406 deletions
diff --git a/pkgs/applications/misc/orpie/default.nix b/pkgs/applications/misc/orpie/default.nix
index ffb62dd6c1997..a7366d6136ffe 100644
--- a/pkgs/applications/misc/orpie/default.nix
+++ b/pkgs/applications/misc/orpie/default.nix
@@ -19,7 +19,8 @@ ocamlPackages.buildDunePackage rec {
     substituteInPlace src/orpie/install.ml.in --replace '@prefix@' $out
   '';
 
-  buildInputs = with ocamlPackages; [ curses camlp5 num gsl ];
+  nativeBuildInputs = [ ocamlPackages.camlp5 ];
+  buildInputs = with ocamlPackages; [ curses num gsl ];
 
   meta = {
     inherit (src.meta) homepage;
diff --git a/pkgs/applications/misc/stog/default.nix b/pkgs/applications/misc/stog/default.nix
index 1d6373592fbf5..c840bbfe5b845 100644
--- a/pkgs/applications/misc/stog/default.nix
+++ b/pkgs/applications/misc/stog/default.nix
@@ -20,7 +20,8 @@ buildDunePackage rec {
     sha256 = "sha256:0krj5w4y05bcfx7hk9blmap8avl31gp7yi01lpqzs6ync23mvm0x";
   };
 
-  buildInputs = [ fmt lwt_ppx menhir ocf_ppx ppx_blob xtmpl_ppx ];
+  nativeBuildInputs = [ menhir ];
+  buildInputs = [ fmt lwt_ppx ocf_ppx ppx_blob xtmpl_ppx ];
   propagatedBuildInputs = [
     dune-build-info
     dune-site
diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
index 81062c1eb7c55..2367f847d1073 100644
--- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
+++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   };
 
   doCheck = true;
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
 
   buildInputs = [ extlib ocamlfuse gapi-ocaml ocaml_sqlite3 tiny_httpd ];
 
diff --git a/pkgs/applications/science/logic/acgtk/default.nix b/pkgs/applications/science/logic/acgtk/default.nix
index d4f0ac3e5044a..c627b8a3c8f5a 100644
--- a/pkgs/applications/science/logic/acgtk/default.nix
+++ b/pkgs/applications/science/logic/acgtk/default.nix
@@ -13,11 +13,19 @@ stdenv.mkDerivation {
     sha256 = "sha256-W/BDhbng5iYuiB7desMKvRtDFdhoaxiJNvNvtbLlA6E=";
   };
 
-  buildInputs = [ dune_2 ] ++ (with ocamlPackages; [
-    ocaml findlib ansiterminal cairo2 cmdliner fmt logs menhir menhirLib mtime sedlex yojson
-  ]);
+  strictDeps = true;
 
-  buildPhase = "dune build --profile=release";
+  nativeBuildInputs = with ocamlPackages; [ menhir ocaml findlib dune_2 ];
+
+  buildInputs = with ocamlPackages; [
+    ansiterminal cairo2 cmdliner fmt logs menhirLib mtime sedlex yojson
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+    dune build --profile=release ''${enableParallelBuilding:+-j $NIX_BUILD_CORES}
+    runHook postBuild
+  '';
 
   installPhase = ''
     dune install --prefix $out --libdir $OCAMLFIND_DESTDIR
diff --git a/pkgs/applications/science/logic/z3/default.nix b/pkgs/applications/science/logic/z3/default.nix
index 75cfa2568f85a..bcc00417bced3 100644
--- a/pkgs/applications/science/logic/z3/default.nix
+++ b/pkgs/applications/science/logic/z3/default.nix
@@ -32,9 +32,10 @@ let common = { version, sha256, patches ? [ ] }:
     nativeBuildInputs = optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
     buildInputs = [ python ]
       ++ optional javaBindings jdk
-      ++ optionals ocamlBindings [ ocaml findlib zarith ]
+      ++ optionals ocamlBindings [ ocaml findlib ]
     ;
-    propagatedBuildInputs = [ python.pkgs.setuptools ];
+    propagatedBuildInputs = [ python.pkgs.setuptools ]
+      ++ optionals ocamlBindings [ zarith ];
     enableParallelBuilding = true;
 
     postPatch = optionalString ocamlBindings ''
diff --git a/pkgs/applications/virtualization/virt-top/default.nix b/pkgs/applications/virtualization/virt-top/default.nix
index 1c648b25ddb02..8918574c43729 100644
--- a/pkgs/applications/virtualization/virt-top/default.nix
+++ b/pkgs/applications/virtualization/virt-top/default.nix
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-IKIkqzx7YWki0L6D5WbwQiVWJfDFGdI2nsGgg212CcE=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     autoreconfHook
     pkg-config
diff --git a/pkgs/build-support/ocaml/dune.nix b/pkgs/build-support/ocaml/dune.nix
index 2ded76d3cd4ac..0a68b73f8956e 100644
--- a/pkgs/build-support/ocaml/dune.nix
+++ b/pkgs/build-support/ocaml/dune.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation ({
     runHook postInstall
   '';
 
-} // (builtins.removeAttrs args [ "minimalOCamlVersion" "duneVersion" ]) // {
+} // (builtins.removeAttrs args [ "minimalOCamlVersion"  "duneVersion" ]) // {
 
   name = "ocaml${ocaml.version}-${pname}-${version}";
 
diff --git a/pkgs/development/compilers/stanc/default.nix b/pkgs/development/compilers/stanc/default.nix
index e3df16230a78c..b4d0c5e682302 100644
--- a/pkgs/development/compilers/stanc/default.nix
+++ b/pkgs/development/compilers/stanc/default.nix
@@ -22,9 +22,11 @@ ocamlPackages.buildDunePackage rec {
       --replace "if Sys.file_exists (to_windows path) then to_windows cmd else cmd" "cmd"
   '';
 
+  nativeBuildInputs = with ocamlPackages; [
+    menhir
+  ];
   buildInputs = with ocamlPackages; [
     core_unix
-    menhir
     menhirLib
     ppx_deriving
     fmt
diff --git a/pkgs/development/ocaml-modules/afl-persistent/default.nix b/pkgs/development/ocaml-modules/afl-persistent/default.nix
index ba266ade830e2..04d31c881561c 100644
--- a/pkgs/development/ocaml-modules/afl-persistent/default.nix
+++ b/pkgs/development/ocaml-modules/afl-persistent/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "06yyds2vcwlfr2nd3gvyrazlijjcrd1abnvkfpkaadgwdw3qam1i";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib ];
 
   # don't run tests in buildPhase
diff --git a/pkgs/development/ocaml-modules/alcotest/lwt.nix b/pkgs/development/ocaml-modules/alcotest/lwt.nix
index dae42e2b97beb..c52079f5ccb67 100644
--- a/pkgs/development/ocaml-modules/alcotest/lwt.nix
+++ b/pkgs/development/ocaml-modules/alcotest/lwt.nix
@@ -10,7 +10,7 @@ buildDunePackage {
   propagatedBuildInputs = [ alcotest logs lwt fmt ];
 
   doCheck = true;
-  nativeCheckInputs = [ re cmdliner ];
+  checkInputs = [ re cmdliner ];
 
   meta = alcotest.meta // {
     description = "Lwt-based helpers for Alcotest";
diff --git a/pkgs/development/ocaml-modules/angstrom/default.nix b/pkgs/development/ocaml-modules/angstrom/default.nix
index 52b65817c6f87..502bd2ad44d7e 100644
--- a/pkgs/development/ocaml-modules/angstrom/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
     sha256 = "1hmrkdcdlkwy7rxhngf3cv3sa61cznnd9p5lmqhx20664gx2ibrh";
   };
 
-  nativeCheckInputs = [ alcotest ppx_let ];
+  checkInputs = [ alcotest ppx_let ];
   buildInputs = [ ocaml-syntax-shims ];
   propagatedBuildInputs = [ bigstringaf result ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
diff --git a/pkgs/development/ocaml-modules/apron/default.nix b/pkgs/development/ocaml-modules/apron/default.nix
index c74545caf24fe..fddf128d0d9be 100644
--- a/pkgs/development/ocaml-modules/apron/default.nix
+++ b/pkgs/development/ocaml-modules/apron/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gmp mpfr ppl camlidl ];
   propagatedBuildInputs = [ mlgmpidl ];
 
+  # TODO: Doesn't produce the library correctly if true
   strictDeps = false;
 
   outputs = [ "out" "bin" "dev" ];
diff --git a/pkgs/development/ocaml-modules/arp/default.nix b/pkgs/development/ocaml-modules/arp/default.nix
index cdf657ea72e1f..4c98f5b377bc2 100644
--- a/pkgs/development/ocaml-modules/arp/default.nix
+++ b/pkgs/development/ocaml-modules/arp/default.nix
@@ -36,7 +36,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     mirage-clock-unix
     mirage-profile
diff --git a/pkgs/development/ocaml-modules/asn1-combinators/default.nix b/pkgs/development/ocaml-modules/asn1-combinators/default.nix
index 720294e65e6ec..8447c25cd7075 100644
--- a/pkgs/development/ocaml-modules/asn1-combinators/default.nix
+++ b/pkgs/development/ocaml-modules/asn1-combinators/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ cstruct zarith bigarray-compat stdlib-shims ptime ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = with lib; {
     homepage = "https://github.com/mirleft/ocaml-asn1-combinators";
diff --git a/pkgs/development/ocaml-modules/atdgen/default.nix b/pkgs/development/ocaml-modules/atdgen/default.nix
index a8d2ef0ace18d..cd56271e655f6 100644
--- a/pkgs/development/ocaml-modules/atdgen/default.nix
+++ b/pkgs/development/ocaml-modules/atdgen/default.nix
@@ -10,10 +10,10 @@ buildDunePackage {
 
   propagatedBuildInputs = [ atdgen-runtime ];
 
+  strictDeps = true;
   doCheck = true;
-  nativeCheckInputs = [ alcotest atdgen-codec-runtime
-    (python3.withPackages (ps: [ ps.jsonschema ]))
-  ];
+  nativeCheckInputs = [ atd (python3.withPackages (ps: [ ps.jsonschema ]))];
+  checkInputs = [ alcotest atdgen-codec-runtime ];
 
   meta = (builtins.removeAttrs atd.meta [ "mainProgram" ]) // {
     description = "Generates efficient JSON serializers, deserializers and validators";
diff --git a/pkgs/development/ocaml-modules/awa/default.nix b/pkgs/development/ocaml-modules/awa/default.nix
index 362edaa95b1a2..fd0bf82df3438 100644
--- a/pkgs/development/ocaml-modules/awa/default.nix
+++ b/pkgs/development/ocaml-modules/awa/default.nix
@@ -18,8 +18,6 @@ buildDunePackage rec {
     hash = "sha256-ae1gTx3Emmkof/2Gnhq0d5RyfkFx21hHkVEVgyPdXuo=";
   };
 
-  nativeBuildInputs = [ ppx_cstruct ];
-
   propagatedBuildInputs = [
     mirage-crypto mirage-crypto-ec mirage-crypto-rng mirage-crypto-pk x509
     cstruct cstruct-sexp sexplib mtime
@@ -27,8 +25,10 @@ buildDunePackage rec {
     ppx_sexp_conv eqaf
   ];
 
+  buildInputs = [ ppx_cstruct ];
+
   doCheck = true;
-  nativeCheckInputs = [ cstruct-unix cmdliner fmt ];
+  checkInputs = [ cstruct-unix cmdliner fmt ];
 
   meta = with lib; {
     description = "SSH implementation in OCaml";
diff --git a/pkgs/development/ocaml-modules/awa/lwt.nix b/pkgs/development/ocaml-modules/awa/lwt.nix
index b155c1b6698c9..241df784ad59c 100644
--- a/pkgs/development/ocaml-modules/awa/lwt.nix
+++ b/pkgs/development/ocaml-modules/awa/lwt.nix
@@ -14,7 +14,8 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [ cstruct-unix ];
+  nativeCheckInputs = [ awa ];
+  checkInputs = [ cstruct-unix ];
 
   meta = awa.meta // { mainProgram = "awa_lwt_server"; };
 }
diff --git a/pkgs/development/ocaml-modules/bap/default.nix b/pkgs/development/ocaml-modules/bap/default.nix
index 4585f731e3c67..0d2b4247bd423 100644
--- a/pkgs/development/ocaml-modules/bap/default.nix
+++ b/pkgs/development/ocaml-modules/bap/default.nix
@@ -38,7 +38,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ which makeWrapper ocaml findlib ocamlbuild ocaml_oasis ];
 
-  buildInputs = [ linenoise
+  buildInputs = [ ocamlbuild
+                  linenoise
                   ounit
                   ppx_bitstring
                   z3
diff --git a/pkgs/development/ocaml-modules/base64/default.nix b/pkgs/development/ocaml-modules/base64/default.nix
index 9420d3c419b5d..db1a4e8564678 100644
--- a/pkgs/development/ocaml-modules/base64/default.nix
+++ b/pkgs/development/ocaml-modules/base64/default.nix
@@ -11,11 +11,11 @@ buildDunePackage rec {
     sha256 = "sha256-WJ3pwAV46/54QZismBjTWGxHSyMWts0+HEbMsfYq46Q=";
   };
 
-  propagatedBuildInputs = [ findlib ];
+  nativeBuildInputs = [ findlib ];
 
   # otherwise fmt breaks evaluation
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ alcotest bos rresult ];
+  checkInputs = [ alcotest bos rresult ];
 
   meta = {
     homepage = "https://github.com/mirage/ocaml-base64";
diff --git a/pkgs/development/ocaml-modules/benchmark/default.nix b/pkgs/development/ocaml-modules/benchmark/default.nix
index 0f5722a44acfb..6c579e127184c 100644
--- a/pkgs/development/ocaml-modules/benchmark/default.nix
+++ b/pkgs/development/ocaml-modules/benchmark/default.nix
@@ -9,11 +9,11 @@ stdenv.mkDerivation rec {
     sha256 = "16wi8ld7c3mq77ylpgbnj8qqqqimyzwxs47v06vyrwpma5pab5xa";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib ocamlbuild ];
   buildInputs = [ ocaml_pcre ];
 
-  strictDeps = true;
-
   createFindlibDestdir = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/bheap/default.nix b/pkgs/development/ocaml-modules/bheap/default.nix
index 7b23e23fdcea5..49e5c336d90bc 100644
--- a/pkgs/development/ocaml-modules/bheap/default.nix
+++ b/pkgs/development/ocaml-modules/bheap/default.nix
@@ -12,7 +12,7 @@ buildDunePackage rec {
   useDune2 = true;
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     stdlib-shims
   ];
 
diff --git a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
index 7d6bb8806d42b..80b61e2bdf3e9 100644
--- a/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
+++ b/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
@@ -14,12 +14,12 @@ buildDunePackage rec {
   minimumOCamlVersion = "4.07";
   useDune2 = true;
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   propagatedBuildInputs = [ bigarray-compat ];
 
   nativeBuildInputs = [ findlib pkg-config ];
-  nativeCheckInputs = [ alcotest astring fpath bos ];
+  checkInputs = [ alcotest astring fpath bos ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/bigstringaf/default.nix b/pkgs/development/ocaml-modules/bigstringaf/default.nix
index bd5d470e03f41..08f50ea53e19c 100644
--- a/pkgs/development/ocaml-modules/bigstringaf/default.nix
+++ b/pkgs/development/ocaml-modules/bigstringaf/default.nix
@@ -13,11 +13,8 @@ buildDunePackage rec {
     sha256 = "sha256-HXPjnE56auy2MI6HV2XuBX/VeqsO50HFzTul17lKEqE=";
   };
 
-  # This currently fails with dune
-  strictDeps = false;
-
   nativeBuildInputs = [ pkg-config ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/bindlib/default.nix b/pkgs/development/ocaml-modules/bindlib/default.nix
index 9f4cc91e22502..c0d8dd54a37bd 100644
--- a/pkgs/development/ocaml-modules/bindlib/default.nix
+++ b/pkgs/development/ocaml-modules/bindlib/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
     hash = "sha256-058yMbz9ExvgNG/kY9tPk70XSeVRSSKVg4n4F4fmPu4=";
   };
 
-  nativeCheckInputs = [ earley timed ];
+  checkInputs = [ earley timed ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/biocaml/default.nix b/pkgs/development/ocaml-modules/biocaml/default.nix
index 35b36bc944052..006316295e493 100644
--- a/pkgs/development/ocaml-modules/biocaml/default.nix
+++ b/pkgs/development/ocaml-modules/biocaml/default.nix
@@ -1,6 +1,7 @@
 { lib, buildDunePackage, fetchFromGitHub, fetchpatch
 , ounit, async, base64, camlzip, cfstream
-, core, ppx_jane, ppx_sexp_conv, rresult, uri, xmlm }:
+, core, ppx_jane, ppx_sexp_conv, rresult, uri, xmlm
+}:
 
 buildDunePackage rec {
   pname = "biocaml";
@@ -10,8 +11,8 @@ buildDunePackage rec {
 
   src = fetchFromGitHub {
     owner = "biocaml";
-    repo   = pname;
-    rev    = "v${version}";
+    repo = pname;
+    rev = "v${version}";
     sha256 = "01yw12yixs45ya1scpb9jy2f7dw1mbj7741xib2xpq3kkc1hc21s";
   };
 
@@ -21,7 +22,7 @@ buildDunePackage rec {
   };
 
   buildInputs = [ ppx_jane ppx_sexp_conv ];
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
   propagatedBuildInputs = [ async base64 camlzip cfstream core rresult uri xmlm ];
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/bitstring/ppx.nix b/pkgs/development/ocaml-modules/bitstring/ppx.nix
index 2b9cbca2085d6..9eb4c74f574c5 100644
--- a/pkgs/development/ocaml-modules/bitstring/ppx.nix
+++ b/pkgs/development/ocaml-modules/bitstring/ppx.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   buildInputs = [ bitstring ppxlib ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = bitstring.meta // {
     description = "Bitstrings and bitstring matching for OCaml - PPX extension";
diff --git a/pkgs/development/ocaml-modules/bls12-381-signature/default.nix b/pkgs/development/ocaml-modules/bls12-381-signature/default.nix
index 378af4109cb6a..db0a383f925ee 100644
--- a/pkgs/development/ocaml-modules/bls12-381-signature/default.nix
+++ b/pkgs/development/ocaml-modules/bls12-381-signature/default.nix
@@ -1,11 +1,11 @@
-{
-  lib,
-  fetchzip,
-  buildDunePackage,
-  bls12-381,
-  alcotest,
-  bisect_ppx,
-  integers_stubs_js,
+{ lib
+, fetchzip
+, buildDunePackage
+, bls12-381
+, alcotest
+, bisect_ppx
+, integers_stubs_js
+,
 }:
 
 buildDunePackage rec {
@@ -20,7 +20,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ bls12-381 ];
 
-  nativeCheckInputs = [alcotest bisect_ppx integers_stubs_js];
+  checkInputs = [ alcotest bisect_ppx integers_stubs_js ];
 
   doCheck = true;
 
@@ -28,6 +28,6 @@ buildDunePackage rec {
     description = "Implementation of BLS signatures for the pairing-friendly curve BLS12-381";
     license = lib.licenses.mit;
     homepage = "https://gitlab.com/nomadic-labs/cryptography/ocaml-bls12-381-signature";
-    maintainers = [lib.maintainers.ulrikstrid];
+    maintainers = [ lib.maintainers.ulrikstrid ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/bls12-381/default.nix b/pkgs/development/ocaml-modules/bls12-381/default.nix
index b30c1333dff09..6c1ff541c5f99 100644
--- a/pkgs/development/ocaml-modules/bls12-381/default.nix
+++ b/pkgs/development/ocaml-modules/bls12-381/default.nix
@@ -1,6 +1,7 @@
 { lib, buildDunePackage, fetchFromGitLab
 , ff-sig, zarith, zarith_stubs_js, integers_stubs_js, integers, hex
-, alcotest, ff-pbt }:
+, alcotest, ff-pbt
+}:
 
 buildDunePackage rec {
   pname = "bls12-381";
@@ -23,7 +24,7 @@ buildDunePackage rec {
     hex
   ];
 
-  nativeCheckInputs = [ alcotest ff-pbt ];
+  checkInputs = [ alcotest ff-pbt ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/bls12-381/legacy.nix b/pkgs/development/ocaml-modules/bls12-381/legacy.nix
index 1ae2add216587..c72157c677e72 100644
--- a/pkgs/development/ocaml-modules/bls12-381/legacy.nix
+++ b/pkgs/development/ocaml-modules/bls12-381/legacy.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
     zarith
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/bwd/default.nix b/pkgs/development/ocaml-modules/bwd/default.nix
index 0c5509e08de96..aa762502a5981 100644
--- a/pkgs/development/ocaml-modules/bwd/default.nix
+++ b/pkgs/development/ocaml-modules/bwd/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   };
 
   doCheck = true;
-  nativeCheckInputs = [ qcheck-core ];
+  checkInputs = [ qcheck-core ];
 
   meta = {
     description = "Backward Lists";
diff --git a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
index 73f6838501a63..1dab8e4911e03 100644
--- a/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
+++ b/pkgs/development/ocaml-modules/ca-certs-nss/default.nix
@@ -39,7 +39,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = with lib; {
     description = "X.509 trust anchors extracted from Mozilla's NSS";
diff --git a/pkgs/development/ocaml-modules/ca-certs/default.nix b/pkgs/development/ocaml-modules/ca-certs/default.nix
index 963989cb2236e..185944f412e67 100644
--- a/pkgs/development/ocaml-modules/ca-certs/default.nix
+++ b/pkgs/development/ocaml-modules/ca-certs/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ bos fpath ptime mirage-crypto x509 astring logs ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     cacert    # for /etc/ssl/certs/ca-bundle.crt
     alcotest
     fmt
diff --git a/pkgs/development/ocaml-modules/callipyge/default.nix b/pkgs/development/ocaml-modules/callipyge/default.nix
index 145bcedacbcbd..2004f8868caff 100644
--- a/pkgs/development/ocaml-modules/callipyge/default.nix
+++ b/pkgs/development/ocaml-modules/callipyge/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
 
   # alcotest isn't available for OCaml < 4.08 due to fmt
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     homepage = "https://github.com/oklm-wsh/Callipyge";
diff --git a/pkgs/development/ocaml-modules/camlimages/4.2.4.nix b/pkgs/development/ocaml-modules/camlimages/4.2.4.nix
index b44fd7db6b31f..53115c4ecb8ea 100644
--- a/pkgs/development/ocaml-modules/camlimages/4.2.4.nix
+++ b/pkgs/development/ocaml-modules/camlimages/4.2.4.nix
@@ -30,6 +30,8 @@ stdenv.mkDerivation rec {
     sha256 = "17hvsql5dml7ialjcags8wphs7w6z88b2rgjir1382bg8vn62bkr";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     omake
     ocaml
@@ -65,6 +67,8 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     # 4.2.5 requires OCaml >= 4.06
     branch = "4.2.4";
+    # incompatible with omake >= 0.10
+    broken = true;
     homepage = "https://gitlab.com/camlspotter/camlimages";
     description = "OCaml image processing library";
     license = licenses.lgpl2Only;
diff --git a/pkgs/development/ocaml-modules/caqti/default.nix b/pkgs/development/ocaml-modules/caqti/default.nix
index 0f37575d86d2e..18b55b9857efd 100644
--- a/pkgs/development/ocaml-modules/caqti/default.nix
+++ b/pkgs/development/ocaml-modules/caqti/default.nix
@@ -1,6 +1,7 @@
 { lib, fetchurl, buildDunePackage, ocaml
 , cppo, logs, ptime, uri, bigstringaf
-, re, cmdliner, alcotest }:
+, re, cmdliner, alcotest
+}:
 
 buildDunePackage rec {
   pname = "caqti";
@@ -15,7 +16,7 @@ buildDunePackage rec {
 
   nativeBuildInputs = [ cppo ];
   propagatedBuildInputs = [ logs ptime uri bigstringaf ];
-  nativeCheckInputs = [ re cmdliner alcotest ];
+  checkInputs = [ re cmdliner alcotest ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/carton/default.nix b/pkgs/development/ocaml-modules/carton/default.nix
index c3d7204f3635b..727d407ac5423 100644
--- a/pkgs/development/ocaml-modules/carton/default.nix
+++ b/pkgs/development/ocaml-modules/carton/default.nix
@@ -56,7 +56,7 @@ buildDunePackage rec {
   nativeBuildInputs = [
     findlib
   ];
-  nativeCheckInputs = [
+  checkInputs = [
     base64
     alcotest
     alcotest-lwt
diff --git a/pkgs/development/ocaml-modules/carton/lwt.nix b/pkgs/development/ocaml-modules/carton/lwt.nix
index 60e45823eb504..03333deff67a3 100644
--- a/pkgs/development/ocaml-modules/carton/lwt.nix
+++ b/pkgs/development/ocaml-modules/carton/lwt.nix
@@ -24,6 +24,8 @@ buildDunePackage {
   doCheck = true;
   nativeCheckInputs = [
     git-binary
+  ];
+  checkInputs = [
     alcotest
     alcotest-lwt
     cstruct
diff --git a/pkgs/development/ocaml-modules/chacha/default.nix b/pkgs/development/ocaml-modules/chacha/default.nix
index bad57cb9e9b40..ebd73b519f957 100644
--- a/pkgs/development/ocaml-modules/chacha/default.nix
+++ b/pkgs/development/ocaml-modules/chacha/default.nix
@@ -32,7 +32,7 @@ buildDunePackage rec {
 
   # alcotest isn't available for OCaml < 4.05 due to fmt
   doCheck = lib.versionAtLeast ocaml.version "4.05";
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     homepage = "https://github.com/abeaumont/ocaml-chacha";
diff --git a/pkgs/development/ocaml-modules/checkseum/default.nix b/pkgs/development/ocaml-modules/checkseum/default.nix
index faeb905e6a7f6..0b14aa57c749a 100644
--- a/pkgs/development/ocaml-modules/checkseum/default.nix
+++ b/pkgs/development/ocaml-modules/checkseum/default.nix
@@ -24,7 +24,7 @@ buildDunePackage rec {
     ocaml-freestanding
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     bos
     astring
diff --git a/pkgs/development/ocaml-modules/class_group_vdf/default.nix b/pkgs/development/ocaml-modules/class_group_vdf/default.nix
index 1290abaa23833..f59ad1448a9f6 100644
--- a/pkgs/development/ocaml-modules/class_group_vdf/default.nix
+++ b/pkgs/development/ocaml-modules/class_group_vdf/default.nix
@@ -1,7 +1,8 @@
 { stdenv, lib, fetchFromGitLab, buildDunePackage
 , gmp, pkg-config, dune-configurator
 , zarith, integers
-, alcotest, bisect_ppx }:
+, alcotest, bisect_ppx
+}:
 
 buildDunePackage rec {
   pname = "class_group_vdf";
@@ -23,12 +24,16 @@ buildDunePackage rec {
     dune-configurator
   ];
 
+  buildInputs = [
+    dune-configurator
+  ];
+
   propagatedBuildInputs = [
     zarith
     integers
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     bisect_ppx
   ];
diff --git a/pkgs/development/ocaml-modules/cohttp/async.nix b/pkgs/development/ocaml-modules/cohttp/async.nix
index bcc1c11459b2f..3e6ac4ae2d967 100644
--- a/pkgs/development/ocaml-modules/cohttp/async.nix
+++ b/pkgs/development/ocaml-modules/cohttp/async.nix
@@ -51,7 +51,7 @@ buildDunePackage {
 
   # Examples don't compile with core 0.15.  See https://github.com/mirage/ocaml-cohttp/pull/864.
   doCheck = false;
-  nativeCheckInputs = [
+  checkInputs = [
     ounit
     mirage-crypto
     core
diff --git a/pkgs/development/ocaml-modules/cohttp/default.nix b/pkgs/development/ocaml-modules/cohttp/default.nix
index 0cb9813687a37..fcbed191ad6f2 100644
--- a/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -21,7 +21,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ base64 re stringext uri-sexp ];
 
   doCheck = true;
-  nativeCheckInputs = [ fmt alcotest crowbar ];
+  checkInputs = [ fmt alcotest crowbar ];
 
   meta = {
     description = "HTTP(S) library for Lwt, Async and Mirage";
diff --git a/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix b/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
index 0ff6fb6920aa1..b360cf0e587ea 100644
--- a/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
@@ -14,13 +14,18 @@ buildDunePackage {
   buildInputs = [ cmdliner ppx_sexp_conv ];
 
   propagatedBuildInputs = [
-    cohttp-lwt conduit-lwt conduit-lwt-unix fmt logs magic-mime
+    cohttp-lwt
+    conduit-lwt
+    conduit-lwt-unix
+    fmt
+    logs
+    magic-mime
   ];
 
   # TODO(@sternenseemann): fail for unknown reason
   # https://github.com/mirage/ocaml-cohttp/issues/675#issuecomment-830692742
   doCheck = false;
-  nativeCheckInputs = [ ounit cacert ];
+  checkInputs = [ ounit cacert ];
 
   meta = cohttp-lwt.meta // {
     description = "CoHTTP implementation for Unix and Windows using Lwt";
diff --git a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
index 3f91d9b75365c..cb86ea5f4f06c 100644
--- a/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -23,7 +23,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     lwt_log
     ssl
   ];
diff --git a/pkgs/development/ocaml-modules/containers/data.nix b/pkgs/development/ocaml-modules/containers/data.nix
index 48478c963ef08..980984c6ec056 100644
--- a/pkgs/development/ocaml-modules/containers/data.nix
+++ b/pkgs/development/ocaml-modules/containers/data.nix
@@ -9,7 +9,7 @@ buildDunePackage {
   inherit (containers) src version doCheck;
 
   buildInputs = [ dune-configurator ];
-  nativeCheckInputs = [ gen iter qcheck-core ];
+  checkInputs = [ gen iter qcheck-core ];
 
   propagatedBuildInputs = [ containers ];
 
diff --git a/pkgs/development/ocaml-modules/containers/default.nix b/pkgs/development/ocaml-modules/containers/default.nix
index 2503ffbf08f09..4cd6413293e54 100644
--- a/pkgs/development/ocaml-modules/containers/default.nix
+++ b/pkgs/development/ocaml-modules/containers/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
   buildInputs = [ dune-configurator ];
   propagatedBuildInputs = [ either seq ];
 
-  nativeCheckInputs = [ gen iter qcheck-core uutf yojson ];
+  checkInputs = [ gen iter qcheck-core uutf yojson ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/cooltt/default.nix b/pkgs/development/ocaml-modules/cooltt/default.nix
index a3894f0cbf4f4..180a09e4d4a1c 100644
--- a/pkgs/development/ocaml-modules/cooltt/default.nix
+++ b/pkgs/development/ocaml-modules/cooltt/default.nix
@@ -13,6 +13,8 @@
 , uuseg
 , uutf
 , yuujinchou
+, ounit2
+, qcheck
 }:
 
 let
@@ -70,12 +72,13 @@ buildDunePackage {
   };
 
   nativeBuildInputs = [
-    cmdliner
     menhir
-    ppxlib
   ];
 
-  buildInputs = [ containers ];
+  buildInputs = [
+    cmdliner
+    ppxlib
+  ];
 
   propagatedBuildInputs = [
     bantorra
@@ -87,6 +90,12 @@ buildDunePackage {
     uuseg
     uutf
     yuujinchou
+    containers
+  ];
+
+  checkInputs = [
+    ounit2
+    qcheck
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/cow/default.nix b/pkgs/development/ocaml-modules/cow/default.nix
index 1c898f8e75f85..4688ec4ef328c 100644
--- a/pkgs/development/ocaml-modules/cow/default.nix
+++ b/pkgs/development/ocaml-modules/cow/default.nix
@@ -1,5 +1,6 @@
 { lib, fetchurl, buildDunePackage, ocaml, alcotest
-, uri, xmlm, omd, ezjsonm }:
+, uri, xmlm, omd, ezjsonm
+}:
 
 buildDunePackage rec {
   useDune2 = true;
@@ -14,7 +15,7 @@ buildDunePackage rec {
   };
 
   propagatedBuildInputs = [ xmlm uri ezjsonm omd ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/cpu/default.nix b/pkgs/development/ocaml-modules/cpu/default.nix
index 33702ca182964..a61a597b20939 100644
--- a/pkgs/development/ocaml-modules/cpu/default.nix
+++ b/pkgs/development/ocaml-modules/cpu/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
     autoheader
   '';
 
-  buildInputs = [ autoconf ];
+  nativeBuildInputs = [ autoconf ];
 
   hardeningDisable = lib.optional stdenv.isDarwin "strictoverflow";
 
diff --git a/pkgs/development/ocaml-modules/crowbar/default.nix b/pkgs/development/ocaml-modules/crowbar/default.nix
index da55cb1d78a8e..d321abfe9daa9 100644
--- a/pkgs/development/ocaml-modules/crowbar/default.nix
+++ b/pkgs/development/ocaml-modules/crowbar/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
   postPatch = "rm -rf examples/xmldiff";
 
   propagatedBuildInputs = [ ocplib-endian cmdliner afl-persistent ];
-  nativeCheckInputs = [ calendar fpath pprint uutf uunf uucp ];
+  checkInputs = [ calendar fpath pprint uutf uunf uucp ];
   # uunf is broken on aarch64
   doCheck = !stdenv.isAarch64;
 
diff --git a/pkgs/development/ocaml-modules/cstruct/default.nix b/pkgs/development/ocaml-modules/cstruct/default.nix
index 5ef3540a9a1e6..9efe75af70c9a 100644
--- a/pkgs/development/ocaml-modules/cstruct/default.nix
+++ b/pkgs/development/ocaml-modules/cstruct/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   buildInputs = [ fmt ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest crowbar ];
+  checkInputs = [ alcotest crowbar ];
 
   meta = {
     description = "Access C-like structures directly from OCaml";
diff --git a/pkgs/development/ocaml-modules/cstruct/ppx.nix b/pkgs/development/ocaml-modules/cstruct/ppx.nix
index c4518de9f9ee9..b640c9745f3b0 100644
--- a/pkgs/development/ocaml-modules/cstruct/ppx.nix
+++ b/pkgs/development/ocaml-modules/cstruct/ppx.nix
@@ -6,14 +6,15 @@ if lib.versionOlder (cstruct.version or "1") "3"
 then cstruct
 else
 
-buildDunePackage {
-  pname = "ppx_cstruct";
-  inherit (cstruct) version src meta;
+  buildDunePackage {
+    pname = "ppx_cstruct";
+    inherit (cstruct) version src meta;
 
-  minimalOCamlVersion = "4.08";
+    minimalOCamlVersion = "4.08";
 
-  propagatedBuildInputs = [ cstruct ppxlib sexplib stdlib-shims ];
+    propagatedBuildInputs = [ cstruct ppxlib sexplib stdlib-shims ];
 
-  doCheck = true;
-  nativeCheckInputs = [ ounit cppo ppx_sexp_conv cstruct-sexp cstruct-unix ];
-}
+    doCheck = true;
+    nativeCheckInputs = [ cppo ];
+    checkInputs = [ ounit ppx_sexp_conv cstruct-sexp cstruct-unix ];
+  }
diff --git a/pkgs/development/ocaml-modules/cstruct/sexp.nix b/pkgs/development/ocaml-modules/cstruct/sexp.nix
index 091a6ab4defae..a20911cbb299c 100644
--- a/pkgs/development/ocaml-modules/cstruct/sexp.nix
+++ b/pkgs/development/ocaml-modules/cstruct/sexp.nix
@@ -11,7 +11,7 @@ buildDunePackage rec {
   minimalOCamlVersion = "4.08";
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   propagatedBuildInputs = [ cstruct sexplib ];
 }
diff --git a/pkgs/development/ocaml-modules/ctypes_stubs_js/default.nix b/pkgs/development/ocaml-modules/ctypes_stubs_js/default.nix
index 6eb814ef7db9d..edb31f1836bf6 100644
--- a/pkgs/development/ocaml-modules/ctypes_stubs_js/default.nix
+++ b/pkgs/development/ocaml-modules/ctypes_stubs_js/default.nix
@@ -20,10 +20,12 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ integers_stubs_js ];
   nativeCheckInputs = [
-    ctypes
+    nodejs
     js_of_ocaml-compiler
+  ];
+  checkInputs = [
+    ctypes
     ppx_expect
-    nodejs
   ];
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/cudf/default.nix b/pkgs/development/ocaml-modules/cudf/default.nix
index 48a776669dc39..b4cd7e458a70e 100644
--- a/pkgs/development/ocaml-modules/cudf/default.nix
+++ b/pkgs/development/ocaml-modules/cudf/default.nix
@@ -1,6 +1,6 @@
 { lib, fetchurl, stdenv, ocaml, ocamlbuild, findlib, extlib, glib, perl, pkg-config, stdlib-shims, ounit }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "ocaml${ocaml.version}-cudf";
   version = "0.9";
 
@@ -13,15 +13,16 @@ stdenv.mkDerivation {
     "all"
     "opt"
   ];
+
   nativeBuildInputs = [
     findlib
     ocaml
     ocamlbuild
     pkg-config
+    perl
   ];
   buildInputs = [
     glib
-    perl
     stdlib-shims
   ];
   propagatedBuildInputs = [
@@ -32,7 +33,7 @@ stdenv.mkDerivation {
     "all"
     "test"
   ];
-  nativeCheckInputs = [
+  checkInputs = [
     ounit
   ];
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/curly/default.nix b/pkgs/development/ocaml-modules/curly/default.nix
index f82a6c237dcda..5f0e93f8f26d6 100644
--- a/pkgs/development/ocaml-modules/curly/default.nix
+++ b/pkgs/development/ocaml-modules/curly/default.nix
@@ -16,7 +16,8 @@ buildDunePackage rec {
   };
 
   propagatedBuildInputs = [ result ];
-  nativeCheckInputs = [ alcotest cohttp-lwt-unix cacert ];
+  nativeCheckInputs = [ cacert ];
+  checkInputs = [ alcotest cohttp-lwt-unix ];
   # test dependencies are only available for >= 4.08
   # https://github.com/mirage/ca-certs/issues/16
   doCheck = lib.versionAtLeast ocaml.version "4.08"
diff --git a/pkgs/development/ocaml-modules/curses/default.nix b/pkgs/development/ocaml-modules/curses/default.nix
index e72f4ce0e8b30..4c38d161ee61e 100644
--- a/pkgs/development/ocaml-modules/curses/default.nix
+++ b/pkgs/development/ocaml-modules/curses/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "0yy3wf8i7jgvzdc40bni7mvpkvclq97cgb5fw265mrjj0iqpkqpd";
   };
 
+  strictDeps = true;
+
   propagatedBuildInputs = [ ncurses ];
 
   nativeBuildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/ocaml-modules/data-encoding/default.nix b/pkgs/development/ocaml-modules/data-encoding/default.nix
index b5878a51ef7d8..7bd01ff831572 100644
--- a/pkgs/development/ocaml-modules/data-encoding/default.nix
+++ b/pkgs/development/ocaml-modules/data-encoding/default.nix
@@ -36,7 +36,7 @@ buildDunePackage {
     json-data-encoding-bson
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     crowbar
     ppx_expect
diff --git a/pkgs/development/ocaml-modules/decompress/default.nix b/pkgs/development/ocaml-modules/decompress/default.nix
index c67cfac5410af..3e15bd5bbcd18 100644
--- a/pkgs/development/ocaml-modules/decompress/default.nix
+++ b/pkgs/development/ocaml-modules/decompress/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
 
   buildInputs = [ cmdliner ];
   propagatedBuildInputs = [ optint checkseum ];
-  nativeCheckInputs = [ alcotest astring bigstringaf bos ctypes fmt camlzip base64 crowbar rresult ];
+  checkInputs = [ alcotest astring bigstringaf bos ctypes fmt camlzip base64 crowbar rresult ];
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/diet/default.nix b/pkgs/development/ocaml-modules/diet/default.nix
index dc4f5214208da..cd14d2a06af5e 100644
--- a/pkgs/development/ocaml-modules/diet/default.nix
+++ b/pkgs/development/ocaml-modules/diet/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ stdlib-shims ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = with lib; {
     homepage = "https://github.com/mirage/ocaml-diet";
diff --git a/pkgs/development/ocaml-modules/digestif/default.nix b/pkgs/development/ocaml-modules/digestif/default.nix
index cca890e997f0c..80ca209b9b12a 100644
--- a/pkgs/development/ocaml-modules/digestif/default.nix
+++ b/pkgs/development/ocaml-modules/digestif/default.nix
@@ -15,12 +15,13 @@ buildDunePackage rec {
     sha256 = "sha256-edNM5ROxFIV+OAqr328UcyGPGwXdflHQOJB3ntAbRmY=";
   };
 
-  nativeBuildInputs = [ findlib which ];
-  buildInputs = [ ocaml ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ findlib which ocaml pkg-config ];
 
   propagatedBuildInputs = [ eqaf ];
 
-  nativeCheckInputs = [ alcotest astring bos fpath ];
+  checkInputs = [ alcotest astring bos fpath ];
   doCheck = true;
 
   postCheck = ''
diff --git a/pkgs/development/ocaml-modules/dispatch/default.nix b/pkgs/development/ocaml-modules/dispatch/default.nix
index e6f6ffc864929..587f5a792dc7b 100644
--- a/pkgs/development/ocaml-modules/dispatch/default.nix
+++ b/pkgs/development/ocaml-modules/dispatch/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ result ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/dns/cli.nix b/pkgs/development/ocaml-modules/dns/cli.nix
index dd2a8445867e8..6e23eeecba975 100644
--- a/pkgs/development/ocaml-modules/dns/cli.nix
+++ b/pkgs/development/ocaml-modules/dns/cli.nix
@@ -39,7 +39,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/dns/client.nix b/pkgs/development/ocaml-modules/dns/client.nix
index 087c0a1efa1ae..e8bd210dcd8cb 100644
--- a/pkgs/development/ocaml-modules/dns/client.nix
+++ b/pkgs/development/ocaml-modules/dns/client.nix
@@ -12,11 +12,28 @@ buildDunePackage {
   inherit (dns) src version;
   duneVersion = "3";
 
-  propagatedBuildInputs = [ cstruct fmt logs dns randomconv domain-name ipaddr
-                            lwt mirage-random mirage-time mirage-clock
-                            ca-certs ca-certs-nss happy-eyeballs tcpip tls tls-mirage
-                            mtime mirage-crypto-rng ];
-  nativeCheckInputs = [ alcotest ];
+  propagatedBuildInputs = [
+    cstruct
+    fmt
+    logs
+    dns
+    randomconv
+    domain-name
+    ipaddr
+    lwt
+    mirage-random
+    mirage-time
+    mirage-clock
+    ca-certs
+    ca-certs-nss
+    happy-eyeballs
+    tcpip
+    tls
+    tls-mirage
+    mtime
+    mirage-crypto-rng
+  ];
+  checkInputs = [ alcotest ];
   doCheck = true;
 
   meta = dns.meta // {
diff --git a/pkgs/development/ocaml-modules/dns/default.nix b/pkgs/development/ocaml-modules/dns/default.nix
index e9ae3184b5a9e..81bc741d974b6 100644
--- a/pkgs/development/ocaml-modules/dns/default.nix
+++ b/pkgs/development/ocaml-modules/dns/default.nix
@@ -1,5 +1,17 @@
-{ lib, buildDunePackage, fetchurl, alcotest
-, cstruct, domain-name, duration, gmap, ipaddr, logs, lru, metrics, ptime, fmt
+{ lib
+, buildDunePackage
+, fetchurl
+, alcotest
+, cstruct
+, domain-name
+, duration
+, gmap
+, ipaddr
+, logs
+, lru
+, metrics
+, ptime
+, fmt
 , base64
 }:
 
@@ -18,7 +30,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ fmt logs ptime domain-name gmap cstruct ipaddr lru duration metrics base64 ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "An Domain Name System (DNS) library";
diff --git a/pkgs/development/ocaml-modules/dns/dnssec.nix b/pkgs/development/ocaml-modules/dns/dnssec.nix
index 3b2b0e2374ba4..de2a76052384f 100644
--- a/pkgs/development/ocaml-modules/dns/dnssec.nix
+++ b/pkgs/development/ocaml-modules/dns/dnssec.nix
@@ -1,6 +1,13 @@
-{ buildDunePackage, cstruct, dns, mirage-crypto, mirage-crypto-pk, mirage-crypto-ec
-, domain-name, logs
-, alcotest, base64
+{ buildDunePackage
+, cstruct
+, dns
+, mirage-crypto
+, mirage-crypto-pk
+, mirage-crypto-ec
+, domain-name
+, logs
+, alcotest
+, base64
 }:
 
 buildDunePackage {
@@ -20,7 +27,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     base64
   ];
diff --git a/pkgs/development/ocaml-modules/dns/resolver.nix b/pkgs/development/ocaml-modules/dns/resolver.nix
index fb598746bbbaa..dd46a1534ed38 100644
--- a/pkgs/development/ocaml-modules/dns/resolver.nix
+++ b/pkgs/development/ocaml-modules/dns/resolver.nix
@@ -1,6 +1,18 @@
-{ buildDunePackage, dns, dns-server, dns-mirage, lru, duration
-, randomconv, lwt, mirage-time, mirage-clock, mirage-random
-, tcpip, tls, tls-mirage, dnssec
+{ buildDunePackage
+, dns
+, dns-server
+, dns-mirage
+, lru
+, duration
+, randomconv
+, lwt
+, mirage-time
+, mirage-clock
+, mirage-random
+, tcpip
+, tls
+, tls-mirage
+, dnssec
 , alcotest
 }:
 
@@ -28,7 +40,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/dns/server.nix b/pkgs/development/ocaml-modules/dns/server.nix
index e10ec3830076c..049cf507e3acd 100644
--- a/pkgs/development/ocaml-modules/dns/server.nix
+++ b/pkgs/development/ocaml-modules/dns/server.nix
@@ -1,6 +1,16 @@
-{ buildDunePackage, dns, dns-mirage, randomconv, duration, lwt
-, mirage-time, mirage-clock, metrics
-, alcotest, mirage-crypto-rng, dns-tsig, base64
+{ buildDunePackage
+, dns
+, dns-mirage
+, randomconv
+, duration
+, lwt
+, mirage-time
+, mirage-clock
+, metrics
+, alcotest
+, mirage-crypto-rng
+, dns-tsig
+, base64
 }:
 
 buildDunePackage {
@@ -21,7 +31,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     mirage-crypto-rng
     dns-tsig
diff --git a/pkgs/development/ocaml-modules/dns/tsig.nix b/pkgs/development/ocaml-modules/dns/tsig.nix
index d544e51f36f0a..3ecc90d398531 100644
--- a/pkgs/development/ocaml-modules/dns/tsig.nix
+++ b/pkgs/development/ocaml-modules/dns/tsig.nix
@@ -13,7 +13,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/domain-name/default.nix b/pkgs/development/ocaml-modules/domain-name/default.nix
index f14172fcb5919..afbfbb66391b2 100644
--- a/pkgs/development/ocaml-modules/domain-name/default.nix
+++ b/pkgs/development/ocaml-modules/domain-name/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   minimalOCamlVersion = "4.04";
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/domainslib/default.nix b/pkgs/development/ocaml-modules/domainslib/default.nix
index 8da2ed538fd72..8a36285fe697a 100644
--- a/pkgs/development/ocaml-modules/domainslib/default.nix
+++ b/pkgs/development/ocaml-modules/domainslib/default.nix
@@ -1,4 +1,6 @@
-{ lib, fetchurl, buildDunePackage
+{ lib
+, fetchurl
+, buildDunePackage
 , lockfree
 , mirage-clock-unix
 }:
@@ -18,7 +20,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ lockfree ];
 
   doCheck = true;
-  nativeCheckInputs = [ mirage-clock-unix ];
+  checkInputs = [ mirage-clock-unix ];
 
   meta = {
     homepage = "https://github.com/ocaml-multicore/domainslib";
diff --git a/pkgs/development/ocaml-modules/dose3/default.nix b/pkgs/development/ocaml-modules/dose3/default.nix
index a59395971544f..1146da5d3067f 100644
--- a/pkgs/development/ocaml-modules/dose3/default.nix
+++ b/pkgs/development/ocaml-modules/dose3/default.nix
@@ -34,11 +34,13 @@ buildDunePackage rec {
   ];
 
   nativeCheckInputs = [
-    dpkg                      # Replaces: conf-dpkg
-    git
-    ounit
     python39                  # Replaces: conf-python-3
     python39Packages.pyyaml   # Replaces: conf-python3-yaml
+    git
+  ];
+  checkInputs = [
+    dpkg                      # Replaces: conf-dpkg
+    ounit
   ];
   doCheck = false; # Tests are failing.
                    # To enable tests use: lib.versionAtLeast ocaml.version "4.04";
diff --git a/pkgs/development/ocaml-modules/dtoa/default.nix b/pkgs/development/ocaml-modules/dtoa/default.nix
index 44bc5d7498bf0..ffcfb38c6bf1b 100644
--- a/pkgs/development/ocaml-modules/dtoa/default.nix
+++ b/pkgs/development/ocaml-modules/dtoa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, buildDunePackage }:
+{ stdenv, lib, fetchurl, buildDunePackage, ounit }:
 
 buildDunePackage rec {
   pname = "dtoa";
@@ -13,6 +13,10 @@ buildDunePackage rec {
     sha256 = "0zkhn0rdq82g6gamsv6nkx6i44s8104nh6jg5xydazl9jl1704xn";
   };
 
+  checkInputs = [ ounit ];
+
+  doCheck = true;
+
   hardeningDisable = lib.optional stdenv.cc.isClang "strictoverflow";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/duff/default.nix b/pkgs/development/ocaml-modules/duff/default.nix
index 2564d2ed07560..583949cf1da42 100644
--- a/pkgs/development/ocaml-modules/duff/default.nix
+++ b/pkgs/development/ocaml-modules/duff/default.nix
@@ -1,6 +1,12 @@
-{ lib, fetchurl, buildDunePackage, ocaml
+{ lib
+, fetchurl
+, buildDunePackage
+, ocaml
 , fmt
-, alcotest, hxd, crowbar, bigstringaf
+, alcotest
+, hxd
+, crowbar
+, bigstringaf
 }:
 
 buildDunePackage rec {
@@ -15,7 +21,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ fmt ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     crowbar
     hxd
diff --git a/pkgs/development/ocaml-modules/dune-build-info/default.nix b/pkgs/development/ocaml-modules/dune-build-info/default.nix
index 5d9f105782b49..9eb7afa2c408c 100644
--- a/pkgs/development/ocaml-modules/dune-build-info/default.nix
+++ b/pkgs/development/ocaml-modules/dune-build-info/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, dune_2 }:
+{ lib, buildDunePackage, dune_2, dune-action-plugin }:
 
 buildDunePackage rec {
   pname = "dune-build-info";
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   dontAddPrefix = true;
 
+  buildInputs = [ dune-action-plugin ];
+
   meta = with lib; {
     inherit (dune_2.meta) homepage;
     description = "Embed build information inside executables";
diff --git a/pkgs/development/ocaml-modules/duration/default.nix b/pkgs/development/ocaml-modules/duration/default.nix
index eeb974b135fbe..1a1f9b07769fe 100644
--- a/pkgs/development/ocaml-modules/duration/default.nix
+++ b/pkgs/development/ocaml-modules/duration/default.nix
@@ -12,7 +12,7 @@ buildDunePackage rec {
   };
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     homepage = "https://github.com/hannesm/duration";
diff --git a/pkgs/development/ocaml-modules/earlybird/default.nix b/pkgs/development/ocaml-modules/earlybird/default.nix
index 08c0a284fad2c..209bf30d2a61a 100644
--- a/pkgs/development/ocaml-modules/earlybird/default.nix
+++ b/pkgs/development/ocaml-modules/earlybird/default.nix
@@ -22,7 +22,9 @@ buildDunePackage rec {
     hash = "sha256-8JHZWsgpz2pzpDxST3bkMSmPHtj7MDzD5G3ujqMW+MU=";
   };
 
-  buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhir menhirLib path_glob ppx_deriving_yojson ];
+  nativeBuildInputs = [ menhir ];
+
+  buildInputs = [ cmdliner dap fmt iter logs lru lwt_ppx lwt_react menhirLib path_glob ppx_deriving_yojson ];
 
   passthru.updateScript = gitUpdater { };
 
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index cc53f25b578cc..1c60c963ed911 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -36,9 +36,12 @@ buildDunePackage rec {
 
   minimalOCamlVersion = "4.04";
 
-  buildInputs = [ perl ncurses ]
+  # atdgen is both a library and executable
+  nativeBuildInputs = [ perl camlp5 ]
   ++ lib.optional (lib.versionAtLeast version "1.15" || version == "dev") menhir
   ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen;
+  buildInputs = [ ncurses ]
+  ++ lib.optional (lib.versionAtLeast version "1.16" || version == "dev") atdgen;
 
   propagatedBuildInputs = [ re stdlib-shims ]
   ++ (if lib.versionAtLeast version "1.15" || version == "dev"
diff --git a/pkgs/development/ocaml-modules/emile/default.nix b/pkgs/development/ocaml-modules/emile/default.nix
index c76d79d5f81ba..f1c61ce27e8d4 100644
--- a/pkgs/development/ocaml-modules/emile/default.nix
+++ b/pkgs/development/ocaml-modules/emile/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildDunePackage, fetchurl, ocaml
-, angstrom, ipaddr, base64, pecu, uutf
-, alcotest, cmdliner
+{ lib
+, buildDunePackage
+, fetchurl
+, ocaml
+, angstrom
+, ipaddr
+, base64
+, pecu
+, uutf
+, alcotest
+, cmdliner
 }:
 
 buildDunePackage rec {
@@ -28,7 +36,7 @@ buildDunePackage rec {
   # and angstrom (fmt) are only available for >= 4.08. Disabling
   # tests for < 4.08 at least improves the error message
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = with lib; {
     description = "Parser of email address according RFC822";
diff --git a/pkgs/development/ocaml-modules/encore/default.nix b/pkgs/development/ocaml-modules/encore/default.nix
index 317446fc5ba41..7c15edabd589d 100644
--- a/pkgs/development/ocaml-modules/encore/default.nix
+++ b/pkgs/development/ocaml-modules/encore/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildDunePackage, fetchurl, ocaml
-, fmt, bigstringaf, angstrom, alcotest }:
+{ lib
+, buildDunePackage
+, fetchurl
+, ocaml
+, fmt
+, bigstringaf
+, angstrom
+, alcotest
+}:
 
 buildDunePackage rec {
   pname = "encore";
@@ -15,7 +22,7 @@ buildDunePackage rec {
   useDune2 = true;
 
   propagatedBuildInputs = [ angstrom fmt bigstringaf ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/ethernet/default.nix b/pkgs/development/ocaml-modules/ethernet/default.nix
index 59c581e128aed..6d76590c6ca96 100644
--- a/pkgs/development/ocaml-modules/ethernet/default.nix
+++ b/pkgs/development/ocaml-modules/ethernet/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
     sha256 = "0a898vp9dw42majsvzzvs8pc6x4ns01wlwhwbacixliv6vv78ng9";
   };
 
-  nativeBuildInputs = [
+  buildInputs = [
     ppx_cstruct
   ];
 
diff --git a/pkgs/development/ocaml-modules/faraday/default.nix b/pkgs/development/ocaml-modules/faraday/default.nix
index ff5ed12a998ae..0dcfd5ec02ded 100644
--- a/pkgs/development/ocaml-modules/faraday/default.nix
+++ b/pkgs/development/ocaml-modules/faraday/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
     sha256 = "sha256-wR4kDocR1t3OLRuudXH8IccYde552O6Gvo5BHNxRbAI=";
   };
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   propagatedBuildInputs = [ bigstringaf ];
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/ff/default.nix b/pkgs/development/ocaml-modules/ff/default.nix
index 4d9c69ace6198..5681b33cb7683 100644
--- a/pkgs/development/ocaml-modules/ff/default.nix
+++ b/pkgs/development/ocaml-modules/ff/default.nix
@@ -9,7 +9,7 @@ buildDunePackage rec {
     zarith
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     ff-pbt
   ];
diff --git a/pkgs/development/ocaml-modules/ff/pbt.nix b/pkgs/development/ocaml-modules/ff/pbt.nix
index 6c929e11b17ed..ffd78381127be 100644
--- a/pkgs/development/ocaml-modules/ff/pbt.nix
+++ b/pkgs/development/ocaml-modules/ff/pbt.nix
@@ -6,7 +6,7 @@ buildDunePackage {
 
   minimalOCamlVersion = "4.08";
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/fileutils/default.nix b/pkgs/development/ocaml-modules/fileutils/default.nix
index e2f5fdab4f44e..0431c733cb909 100644
--- a/pkgs/development/ocaml-modules/fileutils/default.nix
+++ b/pkgs/development/ocaml-modules/fileutils/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
     stdlib-shims
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     ounit2
   ];
   doCheck = lib.versionAtLeast ocaml.version "4.04";
diff --git a/pkgs/development/ocaml-modules/gapi-ocaml/default.nix b/pkgs/development/ocaml-modules/gapi-ocaml/default.nix
index 2fae764f5dd51..837a481cf1bdc 100644
--- a/pkgs/development/ocaml-modules/gapi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/gapi-ocaml/default.nix
@@ -20,7 +20,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ cryptokit ocamlnet ocurl yojson ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
 
   meta = {
     description = "OCaml client for google services";
diff --git a/pkgs/development/ocaml-modules/gen/default.nix b/pkgs/development/ocaml-modules/gen/default.nix
index 9242133ec236e..699af9f5f2048 100644
--- a/pkgs/development/ocaml-modules/gen/default.nix
+++ b/pkgs/development/ocaml-modules/gen/default.nix
@@ -16,9 +16,12 @@ buildDunePackage rec {
     hash = "sha256-YWoVcl2TQoMIgU1LoKL16ia31zJjwAMwuphtSXnhtvw=";
   };
 
+  strictDeps = true;
+
   buildInputs = [ dune-configurator ];
   propagatedBuildInputs = [ seq ];
   nativeCheckInputs = [ qcheck ounit2 ];
+  checkInputs = [ qcheck ounit2 ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/gg/default.nix b/pkgs/development/ocaml-modules/gg/default.nix
index ec8bbb31617dd..c3bf3a2ec938a 100644
--- a/pkgs/development/ocaml-modules/gg/default.nix
+++ b/pkgs/development/ocaml-modules/gg/default.nix
@@ -18,6 +18,8 @@ stdenv.mkDerivation {
     sha256 = "sha256:0j7bpj8k17csnz6v6frkz9aycywsb7xmznnb31g8rbfk3626f3ci";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
   buildInputs = [ topkg ];
 
diff --git a/pkgs/development/ocaml-modules/git/default.nix b/pkgs/development/ocaml-modules/git/default.nix
index b078ad973f229..957d53b39644a 100644
--- a/pkgs/development/ocaml-modules/git/default.nix
+++ b/pkgs/development/ocaml-modules/git/default.nix
@@ -32,7 +32,10 @@ buildDunePackage rec {
     domain-name emile mimic carton carton-lwt carton-git ipaddr psq hxd
   ];
   nativeCheckInputs = [
-    alcotest alcotest-lwt mirage-crypto-rng git-binary crowbar cmdliner
+    git-binary
+  ];
+  checkInputs = [
+    alcotest alcotest-lwt mirage-crypto-rng crowbar cmdliner
   ];
   doCheck = !stdenv.isAarch64;
 
diff --git a/pkgs/development/ocaml-modules/git/mirage.nix b/pkgs/development/ocaml-modules/git/mirage.nix
index b1e38c2ebfc91..28ce7c4a3f301 100644
--- a/pkgs/development/ocaml-modules/git/mirage.nix
+++ b/pkgs/development/ocaml-modules/git/mirage.nix
@@ -1,4 +1,5 @@
-{ lib, buildDunePackage
+{ lib
+, buildDunePackage
 , git
 , mimic
 , mimic-happy-eyeballs
@@ -82,7 +83,7 @@ buildDunePackage {
     result
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     alcotest-lwt
     bigstringaf
diff --git a/pkgs/development/ocaml-modules/git/unix.nix b/pkgs/development/ocaml-modules/git/unix.nix
index 65a4619ac5d8c..f5e8337382e41 100644
--- a/pkgs/development/ocaml-modules/git/unix.nix
+++ b/pkgs/development/ocaml-modules/git/unix.nix
@@ -18,8 +18,11 @@ buildDunePackage {
   duneVersion = "3";
 
   buildInputs = [
-    awa awa-mirage cmdliner
-    mirage-clock tcpip
+    awa
+    awa-mirage
+    cmdliner
+    mirage-clock
+    tcpip
   ];
   propagatedBuildInputs = [
     rresult result bigstringaf
@@ -30,12 +33,13 @@ buildDunePackage {
     tls tls-mirage git happy-eyeballs-lwt
     git-mirage mirage-clock-unix
   ];
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest alcotest-lwt base64 ke
-    mirage-crypto-rng git-binary
+    mirage-crypto-rng
     uri mtime
     cacert # sets up NIX_SSL_CERT_FILE
   ];
+  nativeCheckInputs = [ git-binary ];
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/gmap/default.nix b/pkgs/development/ocaml-modules/gmap/default.nix
index 7cdddfe101de8..ce13b0e1cee3d 100644
--- a/pkgs/development/ocaml-modules/gmap/default.nix
+++ b/pkgs/development/ocaml-modules/gmap/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, ocaml, fetchurl, alcotest }:
+{ lib, buildDunePackage, ocaml, fetchurl, alcotest, fmt }:
 
 buildDunePackage rec {
   pname = "gmap";
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.03";
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest fmt ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/graphql/cohttp.nix b/pkgs/development/ocaml-modules/graphql/cohttp.nix
index b4f836215de4f..b202d46abd533 100644
--- a/pkgs/development/ocaml-modules/graphql/cohttp.nix
+++ b/pkgs/development/ocaml-modules/graphql/cohttp.nix
@@ -1,6 +1,14 @@
-{ lib, buildDunePackage, ocaml-crunch
-, astring, cohttp, digestif, graphql, ocplib-endian
-, alcotest, cohttp-lwt-unix, graphql-lwt
+{ lib
+, buildDunePackage
+, ocaml-crunch
+, astring
+, cohttp
+, digestif
+, graphql
+, ocplib-endian
+, alcotest
+, cohttp-lwt-unix
+, graphql-lwt
 }:
 
 buildDunePackage rec {
@@ -13,7 +21,7 @@ buildDunePackage rec {
   nativeBuildInputs = [ ocaml-crunch ];
   propagatedBuildInputs = [ astring cohttp digestif graphql ocplib-endian ];
 
-  nativeCheckInputs = lib.optionals doCheck [ alcotest cohttp-lwt-unix graphql-lwt ];
+  checkInputs = lib.optionals doCheck [ alcotest cohttp-lwt-unix graphql-lwt ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/graphql/default.nix b/pkgs/development/ocaml-modules/graphql/default.nix
index b0426500b310a..679d89f44b10d 100644
--- a/pkgs/development/ocaml-modules/graphql/default.nix
+++ b/pkgs/development/ocaml-modules/graphql/default.nix
@@ -9,7 +9,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ graphql_parser rresult yojson ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/graphql/lwt.nix b/pkgs/development/ocaml-modules/graphql/lwt.nix
index 396de94bc2893..cbdcba64abb48 100644
--- a/pkgs/development/ocaml-modules/graphql/lwt.nix
+++ b/pkgs/development/ocaml-modules/graphql/lwt.nix
@@ -9,7 +9,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ graphql ocaml_lwt ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/graphql/parser.nix b/pkgs/development/ocaml-modules/graphql/parser.nix
index 25432d9ad8a58..4042e65772bc8 100644
--- a/pkgs/development/ocaml-modules/graphql/parser.nix
+++ b/pkgs/development/ocaml-modules/graphql/parser.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   nativeBuildInputs = [ menhir ];
   propagatedBuildInputs = [ fmt re ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/graphql_ppx/default.nix b/pkgs/development/ocaml-modules/graphql_ppx/default.nix
index 1c3351f791df6..003482ca08ab0 100644
--- a/pkgs/development/ocaml-modules/graphql_ppx/default.nix
+++ b/pkgs/development/ocaml-modules/graphql_ppx/default.nix
@@ -18,7 +18,11 @@ buildDunePackage rec {
     sha256 = "sha256-+WJhA2ixZHiSZBoX14dnQKk7JfVAIME4JooNSnhRp44=";
   };
 
-  buildInputs = [ ppxlib ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ reason ];
+
+  buildInputs = [ ppxlib reason ];
 
   propagatedBuildInputs = [
     reason
@@ -26,7 +30,7 @@ buildDunePackage rec {
     yojson
   ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/h2/default.nix b/pkgs/development/ocaml-modules/h2/default.nix
index 6f60330e40ccd..95272890e15ff 100644
--- a/pkgs/development/ocaml-modules/h2/default.nix
+++ b/pkgs/development/ocaml-modules/h2/default.nix
@@ -46,7 +46,7 @@ buildDunePackage rec {
   preCheck = ''
     ln -s "${http2-frame-test-case}" lib_test/http2-frame-test-case
   '';
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     yojson
     hex
diff --git a/pkgs/development/ocaml-modules/hkdf/default.nix b/pkgs/development/ocaml-modules/hkdf/default.nix
index 5921c6c9d3595..3df9ad5307c03 100644
--- a/pkgs/development/ocaml-modules/hkdf/default.nix
+++ b/pkgs/development/ocaml-modules/hkdf/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
   };
 
   propagatedBuildInputs = [ cstruct mirage-crypto ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/httpaf/default.nix b/pkgs/development/ocaml-modules/httpaf/default.nix
index 691e09a410e7d..508b2e4b7f76d 100644
--- a/pkgs/development/ocaml-modules/httpaf/default.nix
+++ b/pkgs/development/ocaml-modules/httpaf/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
     sha256 = "0zk78af3qyvf6w66mg8sxygr6ndayzqw5s3zfxibvn121xwni26z";
   };
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   propagatedBuildInputs = [ angstrom faraday ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/imagelib/default.nix b/pkgs/development/ocaml-modules/imagelib/default.nix
index 27ad2b5f0029b..10509f1e75007 100644
--- a/pkgs/development/ocaml-modules/imagelib/default.nix
+++ b/pkgs/development/ocaml-modules/imagelib/default.nix
@@ -1,5 +1,10 @@
-{ lib, fetchurl, buildDunePackage, ocaml
-, decompress, stdlib-shims, alcotest
+{ lib
+, fetchurl
+, buildDunePackage
+, ocaml
+, decompress
+, stdlib-shims
+, alcotest
 }:
 
 buildDunePackage rec {
@@ -17,7 +22,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ decompress stdlib-shims ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "Image formats such as PNG and PPM in OCaml";
diff --git a/pkgs/development/ocaml-modules/index/default.nix b/pkgs/development/ocaml-modules/index/default.nix
index f38d1f495f441..04373cbcce8d9 100644
--- a/pkgs/development/ocaml-modules/index/default.nix
+++ b/pkgs/development/ocaml-modules/index/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
     lru
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     crowbar
     re
diff --git a/pkgs/development/ocaml-modules/inotify/default.nix b/pkgs/development/ocaml-modules/inotify/default.nix
index 026985efcb6ea..8a2b0c4150729 100644
--- a/pkgs/development/ocaml-modules/inotify/default.nix
+++ b/pkgs/development/ocaml-modules/inotify/default.nix
@@ -15,10 +15,10 @@ buildDunePackage rec {
   };
 
   buildInputs = [ lwt ];
-  nativeCheckInputs = [ ounit2 fileutils ];
 
-  # Otherwise nativeCheckInputs can't be found
-  strictDeps = false;
+  checkInputs = [ ounit2 fileutils ];
+
+  strictDeps = true;
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/io-page/default.nix b/pkgs/development/ocaml-modules/io-page/default.nix
index 915bea6ff0467..b576282224053 100644
--- a/pkgs/development/ocaml-modules/io-page/default.nix
+++ b/pkgs/development/ocaml-modules/io-page/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, cstruct, bigarray-compat, ounit }:
+{ lib, fetchurl, buildDunePackage, pkg-config, cstruct, bigarray-compat, ounit }:
 
 buildDunePackage rec {
   pname = "io-page";
@@ -11,8 +11,9 @@ buildDunePackage rec {
     sha256 = "sha256-DjbKdNkFa6YQgJDLmLsuvyrweb4/TNvqAiggcj/3hu4=";
   };
 
+  nativeBuildInputs = [ pkg-config ];
   propagatedBuildInputs = [ cstruct bigarray-compat ];
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/ipaddr/default.nix b/pkgs/development/ocaml-modules/ipaddr/default.nix
index 5055aa7bbbd4e..c4eefb637fb58 100644
--- a/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -10,7 +10,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ macaddr domain-name stdlib-shims ];
 
-  nativeCheckInputs = [ ppx_sexp_conv ounit ];
+  checkInputs = [ ppx_sexp_conv ounit ];
   doCheck = true;
 
   meta = macaddr.meta // {
diff --git a/pkgs/development/ocaml-modules/ipaddr/sexp.nix b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
index 6f94382cf3a3a..373b5a87e495d 100644
--- a/pkgs/development/ocaml-modules/ipaddr/sexp.nix
+++ b/pkgs/development/ocaml-modules/ipaddr/sexp.nix
@@ -9,7 +9,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ ipaddr ];
 
-  nativeCheckInputs = [ ipaddr-cstruct ounit ppx_sexp_conv ];
+  checkInputs = [ ipaddr-cstruct ounit ppx_sexp_conv ];
   doCheck = true;
 
   meta = ipaddr.meta // {
diff --git a/pkgs/development/ocaml-modules/irmin/chunk.nix b/pkgs/development/ocaml-modules/irmin/chunk.nix
index 39ef6b00068fc..59bd81544945a 100644
--- a/pkgs/development/ocaml-modules/irmin/chunk.nix
+++ b/pkgs/development/ocaml-modules/irmin/chunk.nix
@@ -8,7 +8,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ irmin fmt logs lwt ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest irmin-test ];
+  checkInputs = [ alcotest irmin-test ];
 
   meta = irmin.meta // {
     description = "Irmin backend which allow to store values into chunks";
diff --git a/pkgs/development/ocaml-modules/irmin/containers.nix b/pkgs/development/ocaml-modules/irmin/containers.nix
index fe7eb3ffc569d..73cd25f3170dd 100644
--- a/pkgs/development/ocaml-modules/irmin/containers.nix
+++ b/pkgs/development/ocaml-modules/irmin/containers.nix
@@ -13,12 +13,18 @@ buildDunePackage {
   ];
 
   propagatedBuildInputs = [
-    irmin irmin-fs ppx_irmin lwt mtime
+    irmin
+    irmin-fs
+    ppx_irmin
+    lwt
+    mtime
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    alcotest alcotest-lwt cacert
+  checkInputs = [
+    alcotest
+    alcotest-lwt
+    cacert
   ];
 
   meta = ppx_irmin.meta // {
diff --git a/pkgs/development/ocaml-modules/irmin/default.nix b/pkgs/development/ocaml-modules/irmin/default.nix
index 13ae4109de069..66b572f576d62 100644
--- a/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/pkgs/development/ocaml-modules/irmin/default.nix
@@ -28,7 +28,7 @@ buildDunePackage {
     uutf
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     vector
     hex
     alcotest
diff --git a/pkgs/development/ocaml-modules/irmin/fs.nix b/pkgs/development/ocaml-modules/irmin/fs.nix
index 196f75ff26f03..1788cf1eda239 100644
--- a/pkgs/development/ocaml-modules/irmin/fs.nix
+++ b/pkgs/development/ocaml-modules/irmin/fs.nix
@@ -1,5 +1,6 @@
 { lib, buildDunePackage, irmin, astring, logs, lwt
-, alcotest, irmin-test, irmin-watcher }:
+, alcotest, irmin-test, irmin-watcher
+}:
 
 buildDunePackage rec {
 
@@ -9,7 +10,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ irmin astring logs lwt ];
 
-  nativeCheckInputs = [ alcotest irmin-test irmin-watcher ];
+  checkInputs = [ alcotest irmin-test irmin-watcher ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/irmin/git.nix b/pkgs/development/ocaml-modules/irmin/git.nix
index b3259372860b3..c489281591304 100644
--- a/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/pkgs/development/ocaml-modules/irmin/git.nix
@@ -30,7 +30,7 @@ buildDunePackage {
     cohttp-lwt-unix
   ];
 
-  nativeCheckInputs = [ mtime alcotest irmin-test cacert ];
+  checkInputs = [ mtime alcotest irmin-test cacert ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/irmin/graphql.nix b/pkgs/development/ocaml-modules/irmin/graphql.nix
index 21fe590c056b6..005bf25eb2d95 100644
--- a/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   doCheck = true;
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     alcotest-lwt
     logs
diff --git a/pkgs/development/ocaml-modules/irmin/http.nix b/pkgs/development/ocaml-modules/irmin/http.nix
index 5cf57fe047ccc..9a466928c64a2 100644
--- a/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/pkgs/development/ocaml-modules/irmin/http.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ astring cohttp-lwt cohttp-lwt-unix fmt jsonm logs lwt uri irmin webmachine ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     digestif git-unix irmin-git irmin-test irmin-fs cacert
   ];
 
diff --git a/pkgs/development/ocaml-modules/irmin/pack.nix b/pkgs/development/ocaml-modules/irmin/pack.nix
index 7056a2f63e6cd..a1a2974a4d748 100644
--- a/pkgs/development/ocaml-modules/irmin/pack.nix
+++ b/pkgs/development/ocaml-modules/irmin/pack.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ index irmin optint fmt logs lwt mtime cmdliner ];
 
-  nativeCheckInputs = [ astring alcotest alcotest-lwt irmin-test ];
+  checkInputs = [ astring alcotest alcotest-lwt irmin-test ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/irmin/test.nix b/pkgs/development/ocaml-modules/irmin/test.nix
index ee13bf426768f..942200bf429a0 100644
--- a/pkgs/development/ocaml-modules/irmin/test.nix
+++ b/pkgs/development/ocaml-modules/irmin/test.nix
@@ -27,7 +27,7 @@ buildDunePackage {
     metrics
   ];
 
-  nativeCheckInputs = [ hex vector ];
+  checkInputs = [ hex vector ];
 
   meta = irmin.meta // {
     description = "Irmin test suite";
diff --git a/pkgs/development/ocaml-modules/irmin/tezos.nix b/pkgs/development/ocaml-modules/irmin/tezos.nix
index 2549a783bde64..82a89daec3590 100644
--- a/pkgs/development/ocaml-modules/irmin/tezos.nix
+++ b/pkgs/development/ocaml-modules/irmin/tezos.nix
@@ -9,20 +9,20 @@ buildDunePackage rec {
   inherit (irmin) version src strictDeps;
 
   propagatedBuildInputs = [
-   irmin
-   irmin-pack
-   ppx_irmin
-   digestif
-   fmt
-   tezos-base58
+    irmin
+    irmin-pack
+    ppx_irmin
+    digestif
+    fmt
+    tezos-base58
   ];
 
   buildInputs = [
-   cmdliner
-   yojson
+    cmdliner
+    yojson
   ];
 
-  nativeCheckInputs = [ alcotest hex irmin-test fpath ];
+  checkInputs = [ alcotest hex irmin-test fpath ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/iter/default.nix b/pkgs/development/ocaml-modules/iter/default.nix
index 62ea8f78b45c4..26adaf06d1ee2 100644
--- a/pkgs/development/ocaml-modules/iter/default.nix
+++ b/pkgs/development/ocaml-modules/iter/default.nix
@@ -18,7 +18,8 @@ buildDunePackage rec {
   propagatedBuildInputs = [ result seq ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ mdx.bin ounit2 qcheck-core ];
+  nativeCheckInputs = [ mdx.bin ];
+  checkInputs = [ ounit2 qcheck-core ];
 
   meta = {
     homepage = "https://github.com/c-cube/sequence";
diff --git a/pkgs/development/ocaml-modules/janestreet/0.14.nix b/pkgs/development/ocaml-modules/janestreet/0.14.nix
index d32c2027df4f6..075f7c1f57d69 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.14.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.14.nix
@@ -155,7 +155,7 @@ with self;
     meta.description = "Full standard library replacement for OCaml";
     buildInputs = [ dune-configurator ];
     propagatedBuildInputs = [ sexplib0 ];
-    nativeCheckInputs = [ alcotest ];
+    checkInputs = [ alcotest ];
   };
 
   base_bigstring = janePackage {
@@ -205,9 +205,7 @@ with self;
     minimumOCamlVersion = "4.07";
     meta.description = "Trivial metaprogramming tool";
     propagatedBuildInputs = [ re ];
-    nativeCheckInputs = [ ppx_jane ];
-    # This currently fails with dune
-    strictDeps = false;
+    checkInputs = [ ppx_jane ];
   };
 
   core = janePackage {
@@ -782,9 +780,7 @@ with self;
     meta.description = "Yet another implementation of fork&exec and related functionality";
     buildInputs = [ jst-config ];
     propagatedBuildInputs = [ textutils ];
-    nativeCheckInputs = [ ounit ];
-    # This currently fails with dune
-    strictDeps = false;
+    checkInputs = [ ounit ];
   };
 
   shexp = janePackage {
diff --git a/pkgs/development/ocaml-modules/janestreet/0.15.nix b/pkgs/development/ocaml-modules/janestreet/0.15.nix
index af040a739478e..8bf230a182584 100644
--- a/pkgs/development/ocaml-modules/janestreet/0.15.nix
+++ b/pkgs/development/ocaml-modules/janestreet/0.15.nix
@@ -177,7 +177,7 @@ with self;
     meta.description = "Full standard library replacement for OCaml";
     buildInputs = [ dune-configurator ];
     propagatedBuildInputs = [ sexplib0 ];
-    nativeCheckInputs = [ alcotest ];
+    checkInputs = [ alcotest ];
   };
 
   base_bigstring = janePackage {
diff --git a/pkgs/development/ocaml-modules/jingoo/default.nix b/pkgs/development/ocaml-modules/jingoo/default.nix
index 3029f4084cfeb..5ee48d3ed2d64 100644
--- a/pkgs/development/ocaml-modules/jingoo/default.nix
+++ b/pkgs/development/ocaml-modules/jingoo/default.nix
@@ -1,5 +1,6 @@
 { lib, buildDunePackage, fetchFromGitHub
-, menhir, ppxlib, ppx_deriving, re, uutf, uucp, ounit2 }:
+, menhir, ppxlib, ppx_deriving, re, uutf, uucp, ounit2
+}:
 
 buildDunePackage rec {
   pname = "jingoo";
@@ -16,9 +17,9 @@ buildDunePackage rec {
     sha256 = "sha256-qIw69OE7wYyZYKnIc9QrmF8MzY5Fg5pBFyIpexmaYxA=";
   };
 
-  buildInputs = [ menhir ];
+  nativeBuildInputs = [ menhir ];
   propagatedBuildInputs = [ ppxlib ppx_deriving re uutf uucp ];
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
   doCheck = true;
 
 
diff --git a/pkgs/development/ocaml-modules/json-data-encoding/bson.nix b/pkgs/development/ocaml-modules/json-data-encoding/bson.nix
index a92c4839ab5d0..46810ab1566be 100644
--- a/pkgs/development/ocaml-modules/json-data-encoding/bson.nix
+++ b/pkgs/development/ocaml-modules/json-data-encoding/bson.nix
@@ -10,7 +10,7 @@ buildDunePackage {
     ocplib-endian
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     crowbar
     alcotest
   ];
diff --git a/pkgs/development/ocaml-modules/json-data-encoding/default.nix b/pkgs/development/ocaml-modules/json-data-encoding/default.nix
index ff3667bd79fc7..13b81d9c52718 100644
--- a/pkgs/development/ocaml-modules/json-data-encoding/default.nix
+++ b/pkgs/development/ocaml-modules/json-data-encoding/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
     uri
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     crowbar
     alcotest
   ];
diff --git a/pkgs/development/ocaml-modules/jwto/default.nix b/pkgs/development/ocaml-modules/jwto/default.nix
index f8ba36d9690b0..745f86dff52b0 100644
--- a/pkgs/development/ocaml-modules/jwto/default.nix
+++ b/pkgs/development/ocaml-modules/jwto/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
   propagatedBuildInputs =
     [ digestif fmt yojson base64 re ppx_deriving ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/ke/default.nix b/pkgs/development/ocaml-modules/ke/default.nix
index 519b0c1725c89..243824947983f 100644
--- a/pkgs/development/ocaml-modules/ke/default.nix
+++ b/pkgs/development/ocaml-modules/ke/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ fmt ];
 
-  nativeCheckInputs = [ alcotest bigstringaf ];
+  checkInputs = [ alcotest bigstringaf ];
   doCheck = true;
 
   minimalOCamlVersion = "4.08";
diff --git a/pkgs/development/ocaml-modules/lablgl/default.nix b/pkgs/development/ocaml-modules/lablgl/default.nix
index b010272b54b48..55dd88d7246b8 100644
--- a/pkgs/development/ocaml-modules/lablgl/default.nix
+++ b/pkgs/development/ocaml-modules/lablgl/default.nix
@@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256:141kc816iv59z96738i3vn9m9iw9g2zhi45hk4cchpwd99ar5l6k";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib ];
   buildInputs = [ freeglut ];
   propagatedBuildInputs = [ libGLU libGL ];
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
index bcf82e1c3842b..3d5135d7439a3 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/1.4.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "09fqxwdib7r9yxynknc9gv3jw2hnhj5cak7q5jngk6m8rzvmhfcc";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib camlp4 ];
   propagatedBuildInputs = [ config-file lablgtk xmlm ];
 
diff --git a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
index 75b3940a1d506..66728db655668 100644
--- a/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk-extras/default.nix
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     sha256 = "1bbdp5j18s582mmyd7qiaq1p08g2ag4gl7x65pmzahbhg719hjda";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib camlp4 ];
   propagatedBuildInputs = [ config-file lablgtk xmlm ];
 
diff --git a/pkgs/development/ocaml-modules/labltk/default.nix b/pkgs/development/ocaml-modules/labltk/default.nix
index 4d5c4ae303e89..465c82da12107 100644
--- a/pkgs/development/ocaml-modules/labltk/default.nix
+++ b/pkgs/development/ocaml-modules/labltk/default.nix
@@ -59,6 +59,8 @@ stdenv.mkDerivation rec {
   inherit (param) version src;
   pname = "ocaml${ocaml.version}-labltk";
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib makeWrapper ];
   buildInputs = [ tcl tk ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
diff --git a/pkgs/development/ocaml-modules/lambdapi/default.nix b/pkgs/development/ocaml-modules/lambdapi/default.nix
index f0509c243e124..1478687fe5e3a 100644
--- a/pkgs/development/ocaml-modules/lambdapi/default.nix
+++ b/pkgs/development/ocaml-modules/lambdapi/default.nix
@@ -33,8 +33,8 @@ buildDunePackage rec {
     bindlib camlp-streams cmdliner pratter sedlex stdlib-shims timed why3 yojson
   ];
 
-  nativeCheckInputs = [ alcotest dedukti ];
-  doCheck = false;  # anomaly: Sys_error("/homeless-shelter/.why3.conf: No such file or directory")
+  checkInputs = [ alcotest dedukti ];
+  doCheck = false; # anomaly: Sys_error("/homeless-shelter/.why3.conf: No such file or directory")
 
   meta = with lib; {
     homepage = "https://github.com/Deducteam/lambdapi";
diff --git a/pkgs/development/ocaml-modules/lambdasoup/default.nix b/pkgs/development/ocaml-modules/lambdasoup/default.nix
index ee3876d5da42d..d7d0028b2c159 100644
--- a/pkgs/development/ocaml-modules/lambdasoup/default.nix
+++ b/pkgs/development/ocaml-modules/lambdasoup/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ markup ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.04";
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
 
   meta = {
     description = "Functional HTML scraping and rewriting with CSS in OCaml";
diff --git a/pkgs/development/ocaml-modules/lens/default.nix b/pkgs/development/ocaml-modules/lens/default.nix
index efebb5309e464..c9cd5572bc7f6 100644
--- a/pkgs/development/ocaml-modules/lens/default.nix
+++ b/pkgs/development/ocaml-modules/lens/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   buildInputs = [ ppx_deriving ppxlib ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = with lib; {
     homepage = "https://github.com/pdonadeo/ocaml-lens";
diff --git a/pkgs/development/ocaml-modules/letsencrypt/default.nix b/pkgs/development/ocaml-modules/letsencrypt/default.nix
index 6f14af03e5c6c..13875147a4e54 100644
--- a/pkgs/development/ocaml-modules/letsencrypt/default.nix
+++ b/pkgs/development/ocaml-modules/letsencrypt/default.nix
@@ -52,7 +52,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = {
     description = "ACME implementation in OCaml";
diff --git a/pkgs/development/ocaml-modules/lockfree/default.nix b/pkgs/development/ocaml-modules/lockfree/default.nix
index 6a8e871bda41e..c3400d4583e04 100644
--- a/pkgs/development/ocaml-modules/lockfree/default.nix
+++ b/pkgs/development/ocaml-modules/lockfree/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ dscheck ];
 
   doCheck = true;
-  nativeCheckInputs = [ qcheck qcheck-alcotest ];
+  checkInputs = [ qcheck qcheck-alcotest ];
 
   meta = {
     description = "Lock-free data structures for multicore OCaml";
diff --git a/pkgs/development/ocaml-modules/lru/default.nix b/pkgs/development/ocaml-modules/lru/default.nix
index dfa765d564931..678023bb8f3d2 100644
--- a/pkgs/development/ocaml-modules/lru/default.nix
+++ b/pkgs/development/ocaml-modules/lru/default.nix
@@ -12,7 +12,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ psq ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ qcheck-alcotest ];
+  checkInputs = [ qcheck-alcotest ];
 
   meta = {
     homepage = "https://github.com/pqwy/lru";
diff --git a/pkgs/development/ocaml-modules/luv/default.nix b/pkgs/development/ocaml-modules/luv/default.nix
index e2df6f321fdcc..da7f9ba1808fa 100644
--- a/pkgs/development/ocaml-modules/luv/default.nix
+++ b/pkgs/development/ocaml-modules/luv/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
 
   nativeBuildInputs = [ file ];
   propagatedBuildInputs = [ ctypes result ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/lwt-dllist/default.nix b/pkgs/development/ocaml-modules/lwt-dllist/default.nix
index 12675eda9a1e3..b28981b1b7799 100644
--- a/pkgs/development/ocaml-modules/lwt-dllist/default.nix
+++ b/pkgs/development/ocaml-modules/lwt-dllist/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
     sha256 = "e86ce75e40f00d51514cf8b2e71e5184c4cb5dae96136be24613406cfc0dba6e";
   };
 
-  nativeCheckInputs = [
+  checkInputs = [
     lwt
   ];
   doCheck = lib.versionAtLeast ocaml.version "4.03";
diff --git a/pkgs/development/ocaml-modules/macaddr/default.nix b/pkgs/development/ocaml-modules/macaddr/default.nix
index 18bc15673bd94..7eb74ff064d02 100644
--- a/pkgs/development/ocaml-modules/macaddr/default.nix
+++ b/pkgs/development/ocaml-modules/macaddr/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
     sha256 = "0mdp38mkvk2f5h2q7nb9fc70a8hyssblnl7kam0d8r5lckgrx5rn";
   };
 
-  nativeCheckInputs = [ ppx_sexp_conv ounit ];
+  checkInputs = [ ppx_sexp_conv ounit ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/macaddr/sexp.nix b/pkgs/development/ocaml-modules/macaddr/sexp.nix
index 15d5602e7e035..1f03c1326a537 100644
--- a/pkgs/development/ocaml-modules/macaddr/sexp.nix
+++ b/pkgs/development/ocaml-modules/macaddr/sexp.nix
@@ -9,7 +9,7 @@ buildDunePackage {
 
   propagatedBuildInputs = [ ppx_sexp_conv ];
 
-  nativeCheckInputs = [ macaddr-cstruct ounit ];
+  checkInputs = [ macaddr-cstruct ounit ];
   doCheck = true;
 
   meta = macaddr.meta // {
diff --git a/pkgs/development/ocaml-modules/markup/default.nix b/pkgs/development/ocaml-modules/markup/default.nix
index 178232633552e..535557c0e8df3 100644
--- a/pkgs/development/ocaml-modules/markup/default.nix
+++ b/pkgs/development/ocaml-modules/markup/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ uchar uutf ];
 
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
   doCheck = lib.versionAtLeast ocaml.version "4.04";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/mdx/default.nix b/pkgs/development/ocaml-modules/mdx/default.nix
index 4affea99510b8..02ef06044457a 100644
--- a/pkgs/development/ocaml-modules/mdx/default.nix
+++ b/pkgs/development/ocaml-modules/mdx/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage, ocaml
+{ lib, fetchurl, buildDunePackage, ocaml, findlib
 , alcotest
 , astring, cppo, fmt, logs, ocaml-version, odoc-parser, lwt, re, csexp
 , gitUpdater
@@ -17,8 +17,8 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [ cppo ];
-  propagatedBuildInputs = [ astring fmt logs csexp ocaml-version odoc-parser re ];
-  nativeCheckInputs = [ alcotest lwt ];
+  propagatedBuildInputs = [ astring fmt logs csexp ocaml-version odoc-parser re findlib ];
+  checkInputs = [ alcotest lwt ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/mec/default.nix b/pkgs/development/ocaml-modules/mec/default.nix
index 312169acb6cf5..ddb610f5570b5 100644
--- a/pkgs/development/ocaml-modules/mec/default.nix
+++ b/pkgs/development/ocaml-modules/mec/default.nix
@@ -1,6 +1,7 @@
 { lib, fetchzip, buildDunePackage, ocaml
 , zarith, eqaf, bigarray-compat, hex, ff-sig, ff
-, alcotest, bisect_ppx }:
+, alcotest, bisect_ppx
+}:
 
 buildDunePackage rec {
   pname = "mec";
@@ -27,7 +28,7 @@ buildDunePackage rec {
     zarith
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     bisect_ppx
   ];
diff --git a/pkgs/development/ocaml-modules/metrics/default.nix b/pkgs/development/ocaml-modules/metrics/default.nix
index 837bf6c2dc965..5fcf7cf511085 100644
--- a/pkgs/development/ocaml-modules/metrics/default.nix
+++ b/pkgs/development/ocaml-modules/metrics/default.nix
@@ -13,7 +13,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ fmt ];
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/metrics/unix.nix b/pkgs/development/ocaml-modules/metrics/unix.nix
index ef32ed3159fd7..5df5e14982ccf 100644
--- a/pkgs/development/ocaml-modules/metrics/unix.nix
+++ b/pkgs/development/ocaml-modules/metrics/unix.nix
@@ -13,7 +13,8 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ gnuplot lwt metrics mtime uuidm ];
 
-  nativeCheckInputs = [ metrics-lwt ];
+  nativeCheckInputs = [ gnuplot ];
+  checkInputs = [ metrics-lwt ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/mimic/default.nix b/pkgs/development/ocaml-modules/mimic/default.nix
index 1522b2def3846..097ecb3135346 100644
--- a/pkgs/development/ocaml-modules/mimic/default.nix
+++ b/pkgs/development/ocaml-modules/mimic/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     alcotest-lwt
     bigstringaf
diff --git a/pkgs/development/ocaml-modules/mirage-block-unix/default.nix b/pkgs/development/ocaml-modules/mirage-block-unix/default.nix
index 940e9a779104a..0d0851536b38e 100644
--- a/pkgs/development/ocaml-modules/mirage-block-unix/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-block-unix/default.nix
@@ -1,5 +1,6 @@
 { lib, fetchurl, buildDunePackage, cstruct-lwt, diet, logs
-, mirage-block, ounit2, rresult, uri }:
+, mirage-block, ounit2, rresult, uri
+}:
 
 buildDunePackage rec {
   pname = "mirage-block-unix";
@@ -16,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ cstruct-lwt logs mirage-block rresult uri ];
 
   doCheck = true;
-  nativeCheckInputs = [ diet ounit2 ];
+  checkInputs = [ diet ounit2 ];
 
   meta = with lib; {
     description = "MirageOS disk block driver for Unix";
diff --git a/pkgs/development/ocaml-modules/mirage-channel/default.nix b/pkgs/development/ocaml-modules/mirage-channel/default.nix
index 7461ef91daee5..bdafeb4305498 100644
--- a/pkgs/development/ocaml-modules/mirage-channel/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-channel/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ cstruct logs lwt mirage-flow ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest mirage-flow-combinators ];
+  checkInputs = [ alcotest mirage-flow-combinators ];
 
   meta = {
     description = "Buffered channels for MirageOS FLOW types";
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index 5bbf5d0fcb317..ea2780a7ab67b 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   };
 
   doCheck = true;
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ dune-configurator  ];
@@ -25,7 +25,7 @@ buildDunePackage rec {
     ocaml-freestanding
   ];
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage-crypto";
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/ec.nix b/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
index 5a9de788a5d35..3afe582413f5a 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/ec.nix
@@ -26,7 +26,6 @@ buildDunePackage rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [
-    ocaml
     dune-configurator
   ];
   propagatedBuildInputs = [
@@ -37,10 +36,10 @@ buildDunePackage rec {
     ocaml-freestanding
   ];
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     hex
     alcotest
     asn1-combinators
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/pk.nix b/pkgs/development/ocaml-modules/mirage-crypto/pk.nix
index d10e51ea0e727..412eec1011b9a 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/pk.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/pk.nix
@@ -10,10 +10,10 @@ buildDunePackage rec {
   propagatedBuildInputs = [ cstruct mirage-crypto mirage-crypto-rng
                             zarith eqaf sexplib0 ];
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   doCheck = true;
-  nativeCheckInputs = [ ounit2 randomconv ];
+  checkInputs = [ ounit2 randomconv ];
 
   meta = mirage-crypto.meta // {
     description = "Simple public-key cryptography for the modern age";
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
index f9a244de36eb6..02eba14c31854 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
@@ -9,12 +9,12 @@ buildDunePackage rec {
   inherit (mirage-crypto-rng) version src;
 
   doCheck = true;
-  nativeCheckInputs = [ mirage-unix mirage-clock-unix mirage-time-unix ];
+  checkInputs = [ mirage-unix mirage-clock-unix mirage-time-unix ];
 
   propagatedBuildInputs = [ duration cstruct mirage-crypto-rng mirage-runtime
                             mirage-time mirage-clock logs lwt ];
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   meta = mirage-crypto-rng.meta // {
     description = "Entropy collection for a cryptographically secure PRNG";
diff --git a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
index eb7e0cf0e488d..044b8ed27b82e 100644
--- a/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
+++ b/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
@@ -7,12 +7,12 @@ buildDunePackage rec {
   inherit (mirage-crypto) version src;
 
   doCheck = true;
-  nativeCheckInputs = [ ounit2 randomconv ];
+  checkInputs = [ ounit2 randomconv ];
 
   buildInputs = [ dune-configurator ];
   propagatedBuildInputs = [ cstruct mirage-crypto duration logs mtime ocaml_lwt ];
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   meta = mirage-crypto.meta // {
     description = "A cryptographically secure PRNG";
diff --git a/pkgs/development/ocaml-modules/mirage-flow/unix.nix b/pkgs/development/ocaml-modules/mirage-flow/unix.nix
index 6a317ca34c934..023896447db19 100644
--- a/pkgs/development/ocaml-modules/mirage-flow/unix.nix
+++ b/pkgs/development/ocaml-modules/mirage-flow/unix.nix
@@ -1,5 +1,6 @@
 { buildDunePackage, fmt, logs, mirage-flow, ocaml_lwt, cstruct
-, alcotest, mirage-flow-combinators }:
+, alcotest, mirage-flow-combinators
+}:
 
 buildDunePackage {
   pname = "mirage-flow-unix";
@@ -14,7 +15,7 @@ buildDunePackage {
   propagatedBuildInputs = [ fmt logs mirage-flow ocaml_lwt cstruct ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest mirage-flow-combinators ];
+  checkInputs = [ alcotest mirage-flow-combinators ];
 
   meta = mirage-flow.meta // {
     description = "Flow implementations and combinators for MirageOS on Unix";
diff --git a/pkgs/development/ocaml-modules/mirage-kv/default.nix b/pkgs/development/ocaml-modules/mirage-kv/default.nix
index 771efcef2b7c3..20d83e1664184 100644
--- a/pkgs/development/ocaml-modules/mirage-kv/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-kv/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ fmt mirage-device ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "MirageOS signatures for key/value devices";
diff --git a/pkgs/development/ocaml-modules/mirage-logs/default.nix b/pkgs/development/ocaml-modules/mirage-logs/default.nix
index 133d49ddf9d96..7aabd51b819a7 100644
--- a/pkgs/development/ocaml-modules/mirage-logs/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-logs/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ logs lwt mirage-clock mirage-profile ptime stdlib-shims ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "A reporter for the Logs library that writes log messages to stderr, using a Mirage `CLOCK` to add timestamps";
diff --git a/pkgs/development/ocaml-modules/mirage-nat/default.nix b/pkgs/development/ocaml-modules/mirage-nat/default.nix
index 0fdc6d4fa95ad..fea1e712abd21 100644
--- a/pkgs/development/ocaml-modules/mirage-nat/default.nix
+++ b/pkgs/development/ocaml-modules/mirage-nat/default.nix
@@ -27,7 +27,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     mirage-clock-unix
   ];
diff --git a/pkgs/development/ocaml-modules/mirage/default.nix b/pkgs/development/ocaml-modules/mirage/default.nix
index 76f11cfd9055b..410475b6b5c00 100644
--- a/pkgs/development/ocaml-modules/mirage/default.nix
+++ b/pkgs/development/ocaml-modules/mirage/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
 
   # Tests need opam-monorepo
   doCheck = false;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/mirage/runtime.nix b/pkgs/development/ocaml-modules/mirage/runtime.nix
index 25062bcb0df15..8182b7b5ef53d 100644
--- a/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -10,7 +10,7 @@ buildDunePackage rec {
   minimalOCamlVersion = "4.08";
 
   propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs lwt ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/mrmime/default.nix b/pkgs/development/ocaml-modules/mrmime/default.nix
index 54f137aecd8f3..a2d118765616d 100644
--- a/pkgs/development/ocaml-modules/mrmime/default.nix
+++ b/pkgs/development/ocaml-modules/mrmime/default.nix
@@ -62,7 +62,7 @@ buildDunePackage rec {
     mirage-crypto-rng
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     jsonm
   ];
diff --git a/pkgs/development/ocaml-modules/multipart-form-data/default.nix b/pkgs/development/ocaml-modules/multipart-form-data/default.nix
index 8c9149c4af5a9..4d44f3b977635 100644
--- a/pkgs/development/ocaml-modules/multipart-form-data/default.nix
+++ b/pkgs/development/ocaml-modules/multipart-form-data/default.nix
@@ -13,13 +13,13 @@ buildDunePackage rec {
     hash = "sha256-3MYJDvVbPIv/JDiB9nKcLRFC5Qa0afyEfz7hk8MWRII=";
   };
 
-  nativeBuildInputs = [ lwt_ppx ];
+  buildInputs = [ lwt_ppx ];
   propagatedBuildInputs = [ lwt stringext ];
 
   duneVersion = "3";
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "Parser for multipart/form-data (RFC2388)";
diff --git a/pkgs/development/ocaml-modules/mustache/default.nix b/pkgs/development/ocaml-modules/mustache/default.nix
index 6fcf7757f2f91..5d4b39b21aa80 100644
--- a/pkgs/development/ocaml-modules/mustache/default.nix
+++ b/pkgs/development/ocaml-modules/mustache/default.nix
@@ -11,11 +11,12 @@ buildDunePackage rec {
     sha256 = "19v8rk8d8lkfm2rmhdawfgadji6wa267ir5dprh4w9l1sfj8a1py";
   };
 
-  buildInputs = [ ezjsonm menhir ];
+  nativeBuildInputs = [ menhir ];
+  buildInputs = [ ezjsonm ];
   propagatedBuildInputs = [ menhirLib ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = {
     description = "Mustache logic-less templates in OCaml";
diff --git a/pkgs/development/ocaml-modules/netchannel/default.nix b/pkgs/development/ocaml-modules/netchannel/default.nix
index 61e5c70edd445..ce859d366b03e 100644
--- a/pkgs/development/ocaml-modules/netchannel/default.nix
+++ b/pkgs/development/ocaml-modules/netchannel/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
     sha256 = "sha256-kYsAf6ntwWKUp26dMcp5BScdUOaGpM46050jVZe6gfs=";
   };
 
-  nativeBuildInputs = [
+  buildInputs = [
     ppx_cstruct
   ];
 
diff --git a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
index f0e70699ad883..2c2ffecf3dbae 100644
--- a/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-cairo/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./META.patch ];
 
+  strictDeps = true;
+
   nativeBuildInputs = [ pkg-config unzip ocaml automake gnum4 autoconf findlib ];
   buildInputs = [ freetype lablgtk cairo gdk-pixbuf gtk2 pango ];
 
diff --git a/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix b/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix
index 942d69e591946..3588495884f8b 100644
--- a/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-freestanding/default.nix
@@ -42,6 +42,8 @@ stdenv.mkDerivation rec {
     ./configurable-binding.patch
   ];
 
+  strictDeps = true;
+
   nativeBuildInputs = [
     ocaml
     pkg-config
diff --git a/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix b/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix
index f99a84cf6102d..e6a778194654e 100644
--- a/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix
+++ b/pkgs/development/ocaml-modules/ocaml-gettext/camomile.nix
@@ -7,9 +7,9 @@ buildDunePackage {
   propagatedBuildInputs = [ camomile ocaml_gettext ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit fileutils ];
+  checkInputs = [ ounit fileutils ];
 
-  meta = (builtins.removeAttrs ocaml_gettext.meta  [ "mainProgram" ]) // {
+  meta = (builtins.removeAttrs ocaml_gettext.meta [ "mainProgram" ]) // {
     description = "Internationalization library using camomile (i18n)";
   };
 
diff --git a/pkgs/development/ocaml-modules/ocaml-gettext/default.nix b/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
index bd887b4b9f56b..c65f506469746 100644
--- a/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
@@ -11,14 +11,14 @@ buildDunePackage rec {
     sha256 = "19ynsldb21r539fiwz1f43apsdnx7hj2a2d9qr9wg2hva9y2qrwb";
   };
 
-  buildInputs = [ cppo ];
+  nativeBuildInputs = [ cppo ];
 
   propagatedBuildInputs = [ gettext fileutils ];
 
   # Tests for version 0.4.2 are not compatible with OUnit 2.2.6
   doCheck = false;
 
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   dontStrip = true;
 
diff --git a/pkgs/development/ocaml-modules/ocaml-vdom/default.nix b/pkgs/development/ocaml-modules/ocaml-vdom/default.nix
index 6ae36252aa08a..72c1cb148c20b 100644
--- a/pkgs/development/ocaml-modules/ocaml-vdom/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-vdom/default.nix
@@ -11,6 +11,10 @@ buildDunePackage rec {
     sha256 = "sha256-FVR0WubW9VJBGVtVaXdJ+O/ghq0w5+BuItFWXkuVYL8=";
   };
 
+  nativeBuildInputs = [
+    gen_js_api
+  ];
+
   buildInputs = [
     gen_js_api
   ];
diff --git a/pkgs/development/ocaml-modules/ocaml-version/default.nix b/pkgs/development/ocaml-modules/ocaml-version/default.nix
index aeb9c9dc699ca..28f12046eaa3c 100644
--- a/pkgs/development/ocaml-modules/ocaml-version/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-version/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, buildDunePackage }:
+{ lib, fetchurl, buildDunePackage, alcotest }:
 
 buildDunePackage rec {
   pname = "ocaml-version";
@@ -9,6 +9,10 @@ buildDunePackage rec {
     sha256 = "sha256-2MG+tejY67dxC19DTOZqPsi3UrHk1rqHxP4nRSvbiiU=";
   };
 
+  checkInputs = [ alcotest ];
+
+  doCheck = true;
+
   minimumOCamlVersion = "4.07";
   useDune2 = true;
 
diff --git a/pkgs/development/ocaml-modules/ocamlnat/default.nix b/pkgs/development/ocaml-modules/ocamlnat/default.nix
index 0be4e7806630c..850c29c4dc024 100644
--- a/pkgs/development/ocaml-modules/ocamlnat/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlnat/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ocaml findlib ];
-  buildInputs = [ ounit];
+  checkInputs = [ ounit ];
 
   strictDeps = true;
 
diff --git a/pkgs/development/ocaml-modules/ocamlsdl/default.nix b/pkgs/development/ocaml-modules/ocamlsdl/default.nix
index 3482aa37e750b..2a33d8b17cccf 100644
--- a/pkgs/development/ocaml-modules/ocamlsdl/default.nix
+++ b/pkgs/development/ocaml-modules/ocamlsdl/default.nix
@@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
     sha256 = "abfb295b263dc11e97fffdd88ea1a28b46df8cc2b196777093e4fe7f509e4f8f";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ pkg-config ocaml findlib ];
   buildInputs = [ SDL SDL_image SDL_mixer SDL_ttf SDL_gfx lablgl ];
 
diff --git a/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 3ee300a5a964f..f4225c917dbda 100644
--- a/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildDunePackage, fetchFromGitHub, which, ocaml, lwt_react, ssl, lwt_ssl
+{ lib, buildDunePackage, fetchFromGitHub, which, ocaml, lwt_react, ssl, lwt_ssl, findlib
 , bigstringaf, lwt, cstruct, mirage-crypto, zarith, mirage-crypto-ec, ptime, mirage-crypto-rng, mtime, ca-certs
 , cohttp, cohttp-lwt-unix, hmap
 , lwt_log, ocaml_pcre, cryptokit, xml-light, ipaddr
@@ -31,7 +31,7 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [ makeWrapper which ];
-  buildInputs = [ lwt_react camlzip ];
+  buildInputs = [ lwt_react camlzip findlib ];
 
   propagatedBuildInputs = [ cohttp cohttp-lwt-unix cryptokit hmap ipaddr lwt_log lwt_ssl
     ocaml_pcre xml-light
diff --git a/pkgs/development/ocaml-modules/odoc/default.nix b/pkgs/development/ocaml-modules/odoc/default.nix
index 34f3e84304b71..924f643cc88db 100644
--- a/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/pkgs/development/ocaml-modules/odoc/default.nix
@@ -16,9 +16,11 @@ buildDunePackage rec {
   # dune 3 is required for tests to pass
   duneVersion = if doCheck then "3" else "2";
 
-  buildInputs = [ astring cmdliner cppo fpath result tyxml odoc-parser fmt ];
+  nativeBuildInputs = [ cppo ];
+  buildInputs = [ astring cmdliner fpath result tyxml odoc-parser fmt ];
 
-  nativeCheckInputs = [ markup yojson sexplib0 jq ppx_expect bash ];
+  nativeCheckInputs = [ bash jq ];
+  checkInputs = [ markup yojson sexplib0 jq ppx_expect ];
   doCheck = lib.versionAtLeast ocaml.version "4.08"
     && lib.versionOlder yojson.version "2.0";
 
diff --git a/pkgs/development/ocaml-modules/opium/default.nix b/pkgs/development/ocaml-modules/opium/default.nix
index 26632f37d2062..b98d892696ec4 100644
--- a/pkgs/development/ocaml-modules/opium/default.nix
+++ b/pkgs/development/ocaml-modules/opium/default.nix
@@ -49,7 +49,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest-lwt
   ];
 
diff --git a/pkgs/development/ocaml-modules/oseq/default.nix b/pkgs/development/ocaml-modules/oseq/default.nix
index f680c3794cafb..cbe02de2ef11f 100644
--- a/pkgs/development/ocaml-modules/oseq/default.nix
+++ b/pkgs/development/ocaml-modules/oseq/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   duneVersion = "3";
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     containers
     qcheck
   ];
diff --git a/pkgs/development/ocaml-modules/owl/default.nix b/pkgs/development/ocaml-modules/owl/default.nix
index b5f707446a583..6e77b6312fa41 100644
--- a/pkgs/development/ocaml-modules/owl/default.nix
+++ b/pkgs/development/ocaml-modules/owl/default.nix
@@ -16,11 +16,14 @@ buildDunePackage rec {
 
   inherit (owl-base) version src meta useDune2;
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   buildInputs = [ dune-configurator stdio ];
   propagatedBuildInputs = [
-    eigen openblasCompat owl-base npy
+    eigen
+    openblasCompat
+    owl-base
+    npy
   ];
 
-  doCheck = !stdenv.isDarwin;  # https://github.com/owlbarn/owl/issues/462
+  doCheck = !stdenv.isDarwin; # https://github.com/owlbarn/owl/issues/462
 }
diff --git a/pkgs/development/ocaml-modules/paf/cohttp.nix b/pkgs/development/ocaml-modules/paf/cohttp.nix
index 97396769fd05e..2f2891493061c 100644
--- a/pkgs/development/ocaml-modules/paf/cohttp.nix
+++ b/pkgs/development/ocaml-modules/paf/cohttp.nix
@@ -22,7 +22,7 @@ buildDunePackage {
   inherit (paf)
     version
     src
-  ;
+    ;
 
   duneVersion = "3";
 
@@ -35,7 +35,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest-lwt
     fmt
     logs
diff --git a/pkgs/development/ocaml-modules/paf/default.nix b/pkgs/development/ocaml-modules/paf/default.nix
index d172e73e13b29..e75efeb2ade7b 100644
--- a/pkgs/development/ocaml-modules/paf/default.nix
+++ b/pkgs/development/ocaml-modules/paf/default.nix
@@ -50,7 +50,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     lwt
     logs
     fmt
diff --git a/pkgs/development/ocaml-modules/parse-argv/default.nix b/pkgs/development/ocaml-modules/parse-argv/default.nix
index 79a6a541a5563..4bc409245eed6 100644
--- a/pkgs/development/ocaml-modules/parse-argv/default.nix
+++ b/pkgs/development/ocaml-modules/parse-argv/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ astring ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.04";
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = {
     description = "Process strings into sets of command-line arguments";
diff --git a/pkgs/development/ocaml-modules/pbkdf/default.nix b/pkgs/development/ocaml-modules/pbkdf/default.nix
index 5dedd200a825c..d6b9bdb7e7581 100644
--- a/pkgs/development/ocaml-modules/pbkdf/default.nix
+++ b/pkgs/development/ocaml-modules/pbkdf/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   minimalOCamlVersion = "4.08";
   propagatedBuildInputs = [ cstruct mirage-crypto ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = true;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/pcap-format/default.nix b/pkgs/development/ocaml-modules/pcap-format/default.nix
index aa65deff7412f..ffd183787793c 100644
--- a/pkgs/development/ocaml-modules/pcap-format/default.nix
+++ b/pkgs/development/ocaml-modules/pcap-format/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
     sha256 = "14c5rpgglyz41jic0fg0xa22d2w1syb86kva22y9fi7aqj9vm31f";
   };
 
-  nativeBuildInputs = [
+  buildInputs = [
     ppx_tools
     ppx_cstruct
   ];
@@ -28,7 +28,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     ounit
     mmap
   ];
diff --git a/pkgs/development/ocaml-modules/pecu/default.nix b/pkgs/development/ocaml-modules/pecu/default.nix
index cc2827ad533d8..22c1913635f8c 100644
--- a/pkgs/development/ocaml-modules/pecu/default.nix
+++ b/pkgs/development/ocaml-modules/pecu/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
 
   # crowbar availability
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ fmt alcotest crowbar astring ];
+  checkInputs = [ fmt alcotest crowbar astring ];
 
   meta = with lib; {
     description = "Encoder/Decoder of Quoted-Printable (RFC2045 & RFC2047)";
diff --git a/pkgs/development/ocaml-modules/phylogenetics/default.nix b/pkgs/development/ocaml-modules/phylogenetics/default.nix
index c8fbeb103aa40..e67429a6a45f4 100644
--- a/pkgs/development/ocaml-modules/phylogenetics/default.nix
+++ b/pkgs/development/ocaml-modules/phylogenetics/default.nix
@@ -27,8 +27,9 @@ buildDunePackage rec {
 
   minimalOCamlVersion = "4.08";
 
-  nativeCheckInputs = [ alcotest bppsuite ];
-  buildInputs = [ menhir ];
+  nativeCheckInputs = [ bppsuite ];
+  checkInputs = [ alcotest ];
+  nativeBuildInputs = [ menhir ];
   propagatedBuildInputs = [
     angstrom-unix
     biocaml
diff --git a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 653f86c03ac10..39ae5a86c5982 100644
--- a/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ ocaml findlib ];
   buildInputs = [ piqi stdlib-shims ];
 
-  nativeCheckInputs  = [ num ];
+  checkInputs = [ num ];
 
   strictDeps = true;
 
diff --git a/pkgs/development/ocaml-modules/postgresql/default.nix b/pkgs/development/ocaml-modules/postgresql/default.nix
index a63876ec5bb1d..d87f6b39efb8e 100644
--- a/pkgs/development/ocaml-modules/postgresql/default.nix
+++ b/pkgs/development/ocaml-modules/postgresql/default.nix
@@ -15,7 +15,8 @@ buildDunePackage rec {
     sha256 = "1i4pnh2v00i0s7s9pcwz1x6s4xcd77d08gjjkvy0fmda6mqq6ghn";
   };
 
-  buildInputs = [ dune-configurator postgresql ];
+  nativeBuildInputs = [ postgresql ];
+  buildInputs = [ dune-configurator ];
 
   meta = {
     description = "Bindings to the PostgreSQL library";
diff --git a/pkgs/development/ocaml-modules/pp/default.nix b/pkgs/development/ocaml-modules/pp/default.nix
index c53b5946556c7..7602d7024524d 100644
--- a/pkgs/development/ocaml-modules/pp/default.nix
+++ b/pkgs/development/ocaml-modules/pp/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   useDune2 = true;
   minimalOCamlVersion = "4.08";
 
-  nativeCheckInputs = [ ppx_expect ];
+  checkInputs = [ ppx_expect ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/ppx_blob/default.nix b/pkgs/development/ocaml-modules/ppx_blob/default.nix
index 9bf509801bbcf..6248e4e6a9456 100644
--- a/pkgs/development/ocaml-modules/ppx_blob/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_blob/default.nix
@@ -11,7 +11,7 @@ buildDunePackage rec {
     sha256 = "00haz1cmplk3j9ysh6j656zrldy60585fmlndmfhpd5332mxrfdw";
   };
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   propagatedBuildInputs = [ ppxlib ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index dba8ffc743dd2..e1c31c3ec28eb 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -39,8 +39,7 @@ buildDunePackage rec {
     inherit (params) sha256;
   };
 
-  # This currently fails with dune
-  strictDeps = false;
+  strictDeps = true;
 
   nativeBuildInputs = [ cppo ];
   buildInputs = [ ppxlib ];
@@ -53,7 +52,7 @@ buildDunePackage rec {
   ];
 
   doCheck = lib.versionOlder ocaml.version "5.0";
-  nativeCheckInputs = [
+  checkInputs = [
     (if lib.versionAtLeast version "5.2" then ounit2 else ounit)
   ];
 
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix
index 1b48c90e1d280..5bf70a0565073 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix
@@ -38,7 +38,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
   ];
 
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_rpc/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_rpc/default.nix
index ff7fc30e986c8..b7d1986c30d4e 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_rpc/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_rpc/default.nix
@@ -9,7 +9,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ ppxlib rpclib ppx_deriving ];
 
-  nativeCheckInputs = [ alcotest yojson ];
+  checkInputs = [ alcotest yojson ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
index 98872feb14f8a..c6a0f6d0af655 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yaml/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ ppxlib ppx_deriving yaml ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   meta = {
     description = "A YAML codec generator for OCaml";
diff --git a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
index 87784177ed44c..4fef3c0619f3f 100644
--- a/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ ppxlib ppx_deriving yojson ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = {
     description = "A Yojson codec generator for OCaml >= 4.04";
diff --git a/pkgs/development/ocaml-modules/pratter/default.nix b/pkgs/development/ocaml-modules/pratter/default.nix
index 339eac87beaeb..a44e815092ca0 100644
--- a/pkgs/development/ocaml-modules/pratter/default.nix
+++ b/pkgs/development/ocaml-modules/pratter/default.nix
@@ -22,7 +22,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ camlp-streams ];
 
-  nativeCheckInputs = [ alcotest qcheck qcheck-alcotest ];
+  checkInputs = [ alcotest qcheck qcheck-alcotest ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/prettym/default.nix b/pkgs/development/ocaml-modules/prettym/default.nix
index 7cdbc7b05bbed..d19233cf13c99 100644
--- a/pkgs/development/ocaml-modules/prettym/default.nix
+++ b/pkgs/development/ocaml-modules/prettym/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
     ke
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     ptime
     alcotest
     jsonm
diff --git a/pkgs/development/ocaml-modules/progress/default.nix b/pkgs/development/ocaml-modules/progress/default.nix
index 35c7ee9eb43c5..4c00ff98465ab 100644
--- a/pkgs/development/ocaml-modules/progress/default.nix
+++ b/pkgs/development/ocaml-modules/progress/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ fmt logs mtime optint terminal vector ];
 
   doCheck = true;
-  nativeCheckInputs = [ alcotest astring ];
+  checkInputs = [ alcotest astring ];
 
   meta = with lib; {
     description = "Progress bar library for OCaml";
diff --git a/pkgs/development/ocaml-modules/psq/default.nix b/pkgs/development/ocaml-modules/psq/default.nix
index 75b2344728497..ea9a0615b4149 100644
--- a/pkgs/development/ocaml-modules/psq/default.nix
+++ b/pkgs/development/ocaml-modules/psq/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ seq ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ qcheck-alcotest ];
+  checkInputs = [ qcheck-alcotest ];
 
   meta = {
     description = "Functional Priority Search Queues for OCaml";
diff --git a/pkgs/development/ocaml-modules/reason-native/refmterr.nix b/pkgs/development/ocaml-modules/reason-native/refmterr.nix
index b4d6708467f0d..3e517591b9e65 100644
--- a/pkgs/development/ocaml-modules/reason-native/refmterr.nix
+++ b/pkgs/development/ocaml-modules/reason-native/refmterr.nix
@@ -4,6 +4,7 @@
   pname = "refmterr";
 
   nativeBuildInputs = [
+    atdgen
     reason
   ];
 
diff --git a/pkgs/development/ocaml-modules/repr/ppx.nix b/pkgs/development/ocaml-modules/repr/ppx.nix
index eb96298f16ae1..1eb762563621e 100644
--- a/pkgs/development/ocaml-modules/repr/ppx.nix
+++ b/pkgs/development/ocaml-modules/repr/ppx.nix
@@ -12,7 +12,7 @@ buildDunePackage {
   ];
 
   doCheck = false; # tests fail with ppxlib >= 0.23.0
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     hex
   ];
diff --git a/pkgs/development/ocaml-modules/rfc7748/default.nix b/pkgs/development/ocaml-modules/rfc7748/default.nix
index 432636bcbb5f5..40356ec9aa5fc 100644
--- a/pkgs/development/ocaml-modules/rfc7748/default.nix
+++ b/pkgs/development/ocaml-modules/rfc7748/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
 
   # the tests fail for 4.05
   doCheck = lib.versionAtLeast ocaml.version "4.06";
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   meta = {
     homepage = "https://github.com/burgerdev/ocaml-rfc7748";
diff --git a/pkgs/development/ocaml-modules/rpclib/default.nix b/pkgs/development/ocaml-modules/rpclib/default.nix
index 34f62852a81ab..73d899eafa938 100644
--- a/pkgs/development/ocaml-modules/rpclib/default.nix
+++ b/pkgs/development/ocaml-modules/rpclib/default.nix
@@ -16,7 +16,7 @@ buildDunePackage rec {
 
   buildInputs = [ cmdliner yojson ];
   propagatedBuildInputs = [ base64 rresult xmlm ];
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
diff --git a/pkgs/development/ocaml-modules/rpclib/lwt.nix b/pkgs/development/ocaml-modules/rpclib/lwt.nix
index 69b2bf7499082..1f97d7ff52d27 100644
--- a/pkgs/development/ocaml-modules/rpclib/lwt.nix
+++ b/pkgs/development/ocaml-modules/rpclib/lwt.nix
@@ -1,6 +1,10 @@
-{ lib, buildDunePackage, rpclib
+{ lib
+, buildDunePackage
+, rpclib
 , lwt
-, alcotest-lwt, ppx_deriving_rpc, yojson
+, alcotest-lwt
+, ppx_deriving_rpc
+, yojson
 }:
 
 buildDunePackage {
@@ -9,7 +13,7 @@ buildDunePackage {
 
   propagatedBuildInputs = [ lwt rpclib ];
 
-  nativeCheckInputs = [ alcotest-lwt ppx_deriving_rpc yojson ];
+  checkInputs = [ alcotest-lwt ppx_deriving_rpc yojson ];
   doCheck = true;
 
   meta = rpclib.meta // {
diff --git a/pkgs/development/ocaml-modules/secp256k1-internal/default.nix b/pkgs/development/ocaml-modules/secp256k1-internal/default.nix
index f08f77c5282fa..4a9a761ab30c6 100644
--- a/pkgs/development/ocaml-modules/secp256k1-internal/default.nix
+++ b/pkgs/development/ocaml-modules/secp256k1-internal/default.nix
@@ -31,7 +31,7 @@ buildDunePackage rec {
     dune-configurator
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     hex
   ];
diff --git a/pkgs/development/ocaml-modules/sha/default.nix b/pkgs/development/ocaml-modules/sha/default.nix
index d809678838ab7..4d400d32844a5 100644
--- a/pkgs/development/ocaml-modules/sha/default.nix
+++ b/pkgs/development/ocaml-modules/sha/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     ounit2
   ];
 
diff --git a/pkgs/development/ocaml-modules/shared-memory-ring/default.nix b/pkgs/development/ocaml-modules/shared-memory-ring/default.nix
index 2e4b656e638ff..0b4974f910c9d 100644
--- a/pkgs/development/ocaml-modules/shared-memory-ring/default.nix
+++ b/pkgs/development/ocaml-modules/shared-memory-ring/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
     sha256 = "sha256-KW8grij/OAnFkdUdRRZF21X39DvqayzkTWeRKwF8uoU=";
   };
 
-  nativeBuildInputs = [
+  buildInputs = [
     ppx_cstruct
   ];
 
@@ -28,7 +28,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     ounit
   ];
 
diff --git a/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix b/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix
index 75d62dd15a79a..e3ae1ef2e3dc4 100644
--- a/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix
+++ b/pkgs/development/ocaml-modules/shared-memory-ring/lwt.nix
@@ -27,7 +27,7 @@ buildDunePackage {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     ounit
   ];
 
diff --git a/pkgs/development/ocaml-modules/ssl/default.nix b/pkgs/development/ocaml-modules/ssl/default.nix
index 7730a5a62bae9..7eca606f93fce 100644
--- a/pkgs/development/ocaml-modules/ssl/default.nix
+++ b/pkgs/development/ocaml-modules/ssl/default.nix
@@ -24,7 +24,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ openssl ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   preCheck = ''
     mkdir -p _build/default/tests/
     cp tests/digicert_certificate.pem _build/default/tests/
diff --git a/pkgs/development/ocaml-modules/stdint/default.nix b/pkgs/development/ocaml-modules/stdint/default.nix
index 5abcdc3dcfa2a..cec0ec8183002 100644
--- a/pkgs/development/ocaml-modules/stdint/default.nix
+++ b/pkgs/development/ocaml-modules/stdint/default.nix
@@ -26,7 +26,7 @@ buildDunePackage rec {
   '';
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ qcheck ];
+  checkInputs = [ qcheck ];
 
   meta = {
     description = "Various signed and unsigned integers for OCaml";
diff --git a/pkgs/development/ocaml-modules/stringext/default.nix b/pkgs/development/ocaml-modules/stringext/default.nix
index 95b01e5d8fed7..3d440cf48959e 100644
--- a/pkgs/development/ocaml-modules/stringext/default.nix
+++ b/pkgs/development/ocaml-modules/stringext/default.nix
@@ -14,7 +14,7 @@ buildDunePackage {
     sha256 = "1sh6nafi3i9773j5mlwwz3kxfzdjzsfqj2qibxhigawy5vazahfv";
   };
 
-  nativeCheckInputs = [ ounit qtest ];
+  checkInputs = [ ounit qtest ];
   inherit doCheck;
 
   meta = {
diff --git a/pkgs/development/ocaml-modules/syslog-message/default.nix b/pkgs/development/ocaml-modules/syslog-message/default.nix
index 4e5ab303f5c57..2c12415cdbb2e 100644
--- a/pkgs/development/ocaml-modules/syslog-message/default.nix
+++ b/pkgs/development/ocaml-modules/syslog-message/default.nix
@@ -23,7 +23,7 @@ buildDunePackage rec {
   ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [
+  checkInputs = [
     qcheck
   ];
 
diff --git a/pkgs/development/ocaml-modules/tcpip/default.nix b/pkgs/development/ocaml-modules/tcpip/default.nix
index a388bea4e8676..0cd57ba9c8ff7 100644
--- a/pkgs/development/ocaml-modules/tcpip/default.nix
+++ b/pkgs/development/ocaml-modules/tcpip/default.nix
@@ -23,12 +23,12 @@ buildDunePackage rec {
   };
 
   nativeBuildInputs = [
-    bisect_ppx
-    ppx_cstruct
     pkg-config
   ];
 
   propagatedBuildInputs = [
+    bisect_ppx
+    ppx_cstruct
     rresult
     cstruct
     cstruct-lwt
@@ -58,7 +58,7 @@ buildDunePackage rec {
   ];
 
   doCheck = false;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     mirage-flow
     mirage-vnetif
diff --git a/pkgs/development/ocaml-modules/terminal/default.nix b/pkgs/development/ocaml-modules/terminal/default.nix
index fa18ce2271552..e97fb223e4151 100644
--- a/pkgs/development/ocaml-modules/terminal/default.nix
+++ b/pkgs/development/ocaml-modules/terminal/default.nix
@@ -18,7 +18,7 @@ buildDunePackage rec {
   propagatedBuildInputs = [ stdlib-shims uutf uucp ];
 
   doCheck = lib.versionAtLeast ocaml.version "4.08";
-  nativeCheckInputs = [ alcotest fmt ];
+  checkInputs = [ alcotest fmt ];
 
   meta = with lib; {
     description = "Basic utilities for interacting with terminals";
diff --git a/pkgs/development/ocaml-modules/terminal_size/default.nix b/pkgs/development/ocaml-modules/terminal_size/default.nix
index 564b69505d7cd..fa6bd003eaec6 100644
--- a/pkgs/development/ocaml-modules/terminal_size/default.nix
+++ b/pkgs/development/ocaml-modules/terminal_size/default.nix
@@ -11,7 +11,7 @@ buildDunePackage rec {
     sha256 = "fdca1fee7d872c4a8e5ab003d9915b6782b272e2a3661ca877f2d78dd25371a7";
   };
 
-  nativeCheckInputs = [ alcotest ];
+  checkInputs = [ alcotest ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/default.nix b/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/default.nix
index 03c2ecca40523..47f9253e44734 100644
--- a/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/default.nix
+++ b/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/default.nix
@@ -1,14 +1,14 @@
-{
-  lib,
-  fetchFromGitLab,
-  buildDunePackage,
-  bls12-381,
-  data-encoding,
-  bigstringaf,
-  alcotest,
-  alcotest-lwt,
-  bisect_ppx,
-  qcheck-alcotest,
+{ lib
+, fetchFromGitLab
+, buildDunePackage
+, bls12-381
+, data-encoding
+, bigstringaf
+, alcotest
+, alcotest-lwt
+, bisect_ppx
+, qcheck-alcotest
+,
 }:
 
 buildDunePackage rec {
@@ -22,9 +22,9 @@ buildDunePackage rec {
     sha256 = "sha256-H1Wog3GItTIVsawr9JkyyKq+uGqbTQPTR1dacpmxLbs=";
   };
 
-  propagatedBuildInputs = [bls12-381 data-encoding bigstringaf];
+  propagatedBuildInputs = [ bls12-381 data-encoding bigstringaf ];
 
-  nativeCheckInputs = [alcotest alcotest-lwt bisect_ppx qcheck-alcotest];
+  checkInputs = [ alcotest alcotest-lwt bisect_ppx qcheck-alcotest ];
 
   doCheck = false; # circular dependencies
 
@@ -32,6 +32,6 @@ buildDunePackage rec {
     description = "Polynomials over BLS12-381 finite field";
     license = lib.licenses.mit;
     homepage = "https://gitlab.com/nomadic-labs/privacy-team";
-    maintainers = [lib.maintainers.ulrikstrid];
+    maintainers = [ lib.maintainers.ulrikstrid ];
   };
 }
diff --git a/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plompiler.nix b/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plompiler.nix
index 3eed3652e5f57..0f618f0d1e6b4 100644
--- a/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plompiler.nix
+++ b/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plompiler.nix
@@ -30,7 +30,7 @@ buildDunePackage rec {
     mec
   ];
 
-  nativeCheckInputs = [ alcotest qcheck-alcotest bisect_ppx ];
+  checkInputs = [ alcotest qcheck-alcotest bisect_ppx ];
 
   doCheck = false; # circular deps
 
diff --git a/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plonk.nix b/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plonk.nix
index c602e8a3b0e2e..f9b78e11d3329 100644
--- a/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plonk.nix
+++ b/pkgs/development/ocaml-modules/tezos-bls12-381-polynomial/plonk.nix
@@ -1,14 +1,14 @@
-{
-  lib,
-  buildDunePackage,
-  hacl-star,
-  bls12-381,
-  tezos-bls12-381-polynomial,
-  data-encoding,
-  tezos-plompiler,
-  alcotest,
-  qcheck-alcotest,
-  bisect_ppx,
+{ lib
+, buildDunePackage
+, hacl-star
+, bls12-381
+, tezos-bls12-381-polynomial
+, data-encoding
+, tezos-plompiler
+, alcotest
+, qcheck-alcotest
+, bisect_ppx
+,
 }:
 
 buildDunePackage rec {
@@ -25,7 +25,7 @@ buildDunePackage rec {
     tezos-plompiler
   ];
 
-  nativeCheckInputs = [ alcotest qcheck-alcotest bisect_ppx ];
+  checkInputs = [ alcotest qcheck-alcotest bisect_ppx ];
 
   doCheck = false; # broken
 
diff --git a/pkgs/development/ocaml-modules/tls/default.nix b/pkgs/development/ocaml-modules/tls/default.nix
index a0c22b5026b49..b68edba2728e8 100644
--- a/pkgs/development/ocaml-modules/tls/default.nix
+++ b/pkgs/development/ocaml-modules/tls/default.nix
@@ -38,7 +38,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     cstruct-unix
     ounit2
diff --git a/pkgs/development/ocaml-modules/tsdl/default.nix b/pkgs/development/ocaml-modules/tsdl/default.nix
index a7d1f573c69a5..354a8ca2098a9 100644
--- a/pkgs/development/ocaml-modules/tsdl/default.nix
+++ b/pkgs/development/ocaml-modules/tsdl/default.nix
@@ -19,6 +19,8 @@ stdenv.mkDerivation {
     sha256 = "sha256-GqFz+bYG2ESkAEJyP8DKud4JFfU5MGLulzJa5Z4sptQ=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ pkg-config ocaml findlib ocamlbuild topkg ];
   buildInputs = [ topkg ];
   propagatedBuildInputs = [ SDL2 ctypes ]
diff --git a/pkgs/development/ocaml-modules/uecc/default.nix b/pkgs/development/ocaml-modules/uecc/default.nix
index 11ee8eb6b5eb6..efb86d8624765 100644
--- a/pkgs/development/ocaml-modules/uecc/default.nix
+++ b/pkgs/development/ocaml-modules/uecc/default.nix
@@ -15,7 +15,7 @@ buildDunePackage rec {
     bigstring
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     cstruct
     hex
diff --git a/pkgs/development/ocaml-modules/unstrctrd/default.nix b/pkgs/development/ocaml-modules/unstrctrd/default.nix
index b3cb4933b9174..104cabfd0fae2 100644
--- a/pkgs/development/ocaml-modules/unstrctrd/default.nix
+++ b/pkgs/development/ocaml-modules/unstrctrd/default.nix
@@ -28,7 +28,7 @@ buildDunePackage rec {
     uutf
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest
     bigstringaf
     crowbar
diff --git a/pkgs/development/ocaml-modules/uri/default.nix b/pkgs/development/ocaml-modules/uri/default.nix
index fa659699cb705..f669a98c4defc 100644
--- a/pkgs/development/ocaml-modules/uri/default.nix
+++ b/pkgs/development/ocaml-modules/uri/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
     sha256 = "0szifda6yism5vn5jdizkha3ad0xk6zw4xgfl8g77dnv83ci7h65";
   };
 
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
   propagatedBuildInputs = [ angstrom stringext ];
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/uri/sexp.nix b/pkgs/development/ocaml-modules/uri/sexp.nix
index 9cb66139fb8eb..ba970b1d6c51e 100644
--- a/pkgs/development/ocaml-modules/uri/sexp.nix
+++ b/pkgs/development/ocaml-modules/uri/sexp.nix
@@ -8,7 +8,7 @@ buildDunePackage {
   pname = "uri-sexp";
   inherit (uri) version useDune2 src meta;
 
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
   propagatedBuildInputs = [ ppx_sexp_conv sexplib0 uri ];
   doCheck = lib.versionAtLeast ocaml.version "4.08";
 }
diff --git a/pkgs/development/ocaml-modules/uucp/default.nix b/pkgs/development/ocaml-modules/uucp/default.nix
index cfadc9e5fb379..476a4529f3fe9 100644
--- a/pkgs/development/ocaml-modules/uucp/default.nix
+++ b/pkgs/development/ocaml-modules/uucp/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
     ${topkg.run} test
     runHook postCheck
   '';
-  nativeCheckInputs = [ uucd ];
+  checkInputs = [ uucd ];
 
   meta = with lib; {
     description = "An OCaml library providing efficient access to a selection of character properties of the Unicode character database";
diff --git a/pkgs/development/ocaml-modules/uuidm/default.nix b/pkgs/development/ocaml-modules/uuidm/default.nix
index 0ead92d9c54b6..bece082f6418f 100644
--- a/pkgs/development/ocaml-modules/uuidm/default.nix
+++ b/pkgs/development/ocaml-modules/uuidm/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-/GZbkJVDQu1UY8SliK282kUWAVMfOnpQadUlRT/tJrM=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
   configurePlatforms = [];
   buildInputs = [ topkg cmdliner ];
diff --git a/pkgs/development/ocaml-modules/uuuu/default.nix b/pkgs/development/ocaml-modules/uuuu/default.nix
index 8f4b4eadaed18..e84addcac8ba7 100644
--- a/pkgs/development/ocaml-modules/uuuu/default.nix
+++ b/pkgs/development/ocaml-modules/uuuu/default.nix
@@ -25,7 +25,7 @@ buildDunePackage rec {
 
   buildInputs = [ angstrom ];
 
-  strictDeps = !doCheck;
+  strictDeps = true;
 
   nativeCheckInputs = [ re ];
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/vchan/default.nix b/pkgs/development/ocaml-modules/vchan/default.nix
index 703743250864a..872d11606ff67 100644
--- a/pkgs/development/ocaml-modules/vchan/default.nix
+++ b/pkgs/development/ocaml-modules/vchan/default.nix
@@ -15,11 +15,8 @@ buildDunePackage rec {
     sha256 = "sha256-5E7dITMVirYoxUkp8ZamRAolyhA6avXGJNAioxeBuV0=";
   };
 
-  nativeBuildInputs = [
-    ppx_cstruct
-  ];
-
   propagatedBuildInputs = [
+    ppx_cstruct
     ppx_sexp_conv
     lwt
     cstruct
@@ -31,7 +28,7 @@ buildDunePackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
+  checkInputs = [
     cmdliner
     ounit
   ];
diff --git a/pkgs/development/ocaml-modules/wayland/default.nix b/pkgs/development/ocaml-modules/wayland/default.nix
index 95c0c4a9dc42b..f7ade2ec80703 100644
--- a/pkgs/development/ocaml-modules/wayland/default.nix
+++ b/pkgs/development/ocaml-modules/wayland/default.nix
@@ -33,7 +33,7 @@ buildDunePackage rec {
     xmlm
   ];
 
-  nativeCheckInputs = [
+  checkInputs = [
     alcotest-lwt
   ];
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/webmachine/default.nix b/pkgs/development/ocaml-modules/webmachine/default.nix
index c6335ba8a939d..9f8749cac9fd3 100644
--- a/pkgs/development/ocaml-modules/webmachine/default.nix
+++ b/pkgs/development/ocaml-modules/webmachine/default.nix
@@ -19,7 +19,7 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ cohttp dispatch ptime ];
 
-  nativeCheckInputs = [ ounit ];
+  checkInputs = [ ounit ];
 
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/x509/default.nix b/pkgs/development/ocaml-modules/x509/default.nix
index 9bfe9489444c3..bd7a7a0fa47c6 100644
--- a/pkgs/development/ocaml-modules/x509/default.nix
+++ b/pkgs/development/ocaml-modules/x509/default.nix
@@ -17,7 +17,7 @@ buildDunePackage rec {
     hash = "sha256-Zf/ZZjUAkeWe04XLmqMKgbxN/qe/Z1mpKM82veXVf2I=";
   };
 
-  nativeCheckInputs = [ alcotest cstruct-unix ];
+  checkInputs = [ alcotest cstruct-unix ];
   propagatedBuildInputs = [ asn1-combinators domain-name fmt gmap mirage-crypto mirage-crypto-pk mirage-crypto-ec pbkdf logs base64 ipaddr ];
 
   doCheck = true;
diff --git a/pkgs/development/ocaml-modules/xenstore/default.nix b/pkgs/development/ocaml-modules/xenstore/default.nix
index a60341f569cef..a3f4e0abcdef5 100644
--- a/pkgs/development/ocaml-modules/xenstore/default.nix
+++ b/pkgs/development/ocaml-modules/xenstore/default.nix
@@ -13,11 +13,11 @@ buildDunePackage rec {
     hash = "sha256-1Mnqtt5zHeRdYJHvhdQNjN8d4yxUEKD2cpwtoc7DGC0=";
   };
 
-  nativeBuildInputs = [ ppx_cstruct ];
+  buildInputs = [ ppx_cstruct ];
   propagatedBuildInputs = [ cstruct lwt ];
 
   doCheck = true;
-  nativeCheckInputs = [ ounit2 ];
+  checkInputs = [ ounit2 ];
 
   meta = with lib; {
     description = "Xenstore protocol in pure OCaml";
diff --git a/pkgs/development/ocaml-modules/yaml/default.nix b/pkgs/development/ocaml-modules/yaml/default.nix
index 401b7ce1dcf4d..61a5a326395d6 100644
--- a/pkgs/development/ocaml-modules/yaml/default.nix
+++ b/pkgs/development/ocaml-modules/yaml/default.nix
@@ -19,7 +19,8 @@ buildDunePackage rec {
   propagatedBuildInputs = [ bos ctypes ];
 
   doCheck = true;
-  nativeCheckInputs = [ fmt logs mdx.bin alcotest crowbar junit_alcotest ezjsonm ];
+  nativeCheckInputs = [ mdx.bin ];
+  checkInputs = [ fmt logs alcotest crowbar junit_alcotest ezjsonm ];
 
   meta = {
     description = "Parse and generate YAML 1.1 files";
diff --git a/pkgs/development/ocaml-modules/yojson/default.nix b/pkgs/development/ocaml-modules/yojson/default.nix
index 38960dceb5e3d..d191892e67a19 100644
--- a/pkgs/development/ocaml-modules/yojson/default.nix
+++ b/pkgs/development/ocaml-modules/yojson/default.nix
@@ -9,6 +9,8 @@ buildDunePackage rec {
     sha256 = "sha256-h2u284r3OoSilDij2jXkhXxgoUVWpgZSWxSMb9vlRhs=";
   };
 
+  strictDeps = true;
+
   nativeBuildInputs = [ cppo ];
   propagatedBuildInputs = [ seq ];
 
diff --git a/pkgs/development/ocaml-modules/yuscii/default.nix b/pkgs/development/ocaml-modules/yuscii/default.nix
index 44f64361540e6..c0582fa2a2246 100644
--- a/pkgs/development/ocaml-modules/yuscii/default.nix
+++ b/pkgs/development/ocaml-modules/yuscii/default.nix
@@ -19,10 +19,10 @@ buildDunePackage rec {
     sha256 = "0idywlkw0fbakrxv65swnr5bj7f2vns9kpay7q03gzlv82p670hy";
   };
 
-  useDune2 = true;
-
   nativeCheckInputs = [
     gcc
+  ];
+  checkInputs = [
     alcotest
     fmt
     uutf
diff --git a/pkgs/development/ocaml-modules/yuujinchou/default.nix b/pkgs/development/ocaml-modules/yuujinchou/default.nix
index e156e8cbb3314..5a78809d9099f 100644
--- a/pkgs/development/ocaml-modules/yuujinchou/default.nix
+++ b/pkgs/development/ocaml-modules/yuujinchou/default.nix
@@ -14,7 +14,7 @@ buildDunePackage rec {
   };
 
   doCheck = true;
-  nativeCheckInputs = [ qcheck-alcotest ];
+  checkInputs = [ qcheck-alcotest ];
 
   meta = {
     description = "Name pattern combinators";
diff --git a/pkgs/development/tools/comby/default.nix b/pkgs/development/tools/comby/default.nix
index 60221444da0d8..ac2d36c92391f 100644
--- a/pkgs/development/tools/comby/default.nix
+++ b/pkgs/development/tools/comby/default.nix
@@ -28,12 +28,7 @@ let
 
       patches = [ ./comby.patch ];
 
-      nativeBuildInputs = [
-        ocamlPackages.ppx_deriving
-        ocamlPackages.ppx_deriving_yojson
-        ocamlPackages.ppx_sexp_conv
-        ocamlPackages.ppx_sexp_message
-      ] ++ extraNativeInputs;
+      nativeBuildInputs = extraNativeInputs;
 
       buildInputs = [
         ocamlPackages.core
@@ -42,6 +37,10 @@ let
         ocamlPackages.mparser
         ocamlPackages.mparser-pcre
         ocamlPackages.angstrom
+        ocamlPackages.ppx_deriving
+        ocamlPackages.ppx_deriving_yojson
+        ocamlPackages.ppx_sexp_conv
+        ocamlPackages.ppx_sexp_message
       ] ++ extraBuildInputs;
 
       nativeCheckInputs = [ cacert ];
@@ -87,6 +86,9 @@ mkCombyPackage {
     ocamlPackages.lwt_react
     ocamlPackages.tar-unix
     ocamlPackages.tls
+    ocamlPackages.ppx_jane
+    ocamlPackages.ppx_expect
+    ocamlPackages.dune-configurator
     combyKernel
     combySemantic
   ] ++ (if !stdenv.isAarch32 && !stdenv.isAarch64 then
@@ -97,9 +99,6 @@ mkCombyPackage {
   extraNativeInputs = [
     autoconf
     pkg-config
-    ocamlPackages.ppx_jane
-    ocamlPackages.ppx_expect
-    ocamlPackages.dune-configurator
   ];
 
 }
diff --git a/pkgs/development/tools/ocaml/camlp4/default.nix b/pkgs/development/tools/ocaml/camlp4/default.nix
index 471932ff83f7a..dd25dd864cee5 100644
--- a/pkgs/development/tools/ocaml/camlp4/default.nix
+++ b/pkgs/development/tools/ocaml/camlp4/default.nix
@@ -56,7 +56,9 @@ stdenv.mkDerivation rec {
     inherit (param) sha256;
   };
 
-  buildInputs = [ which ocaml ocamlbuild ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ which ocaml ocamlbuild ];
 
   # build fails otherwise
   enableParallelBuilding = false;
diff --git a/pkgs/development/tools/ocaml/camlp5/default.nix b/pkgs/development/tools/ocaml/camlp5/default.nix
index 65debca11c231..9d81c46e20c9f 100644
--- a/pkgs/development/tools/ocaml/camlp5/default.nix
+++ b/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
     sha256 = "1dd68bisbpqn5lq2pslm582hxglcxnbkgfkwhdz67z4w9d5nvr7w";
   };
 
-  buildInputs = [ ocaml perl ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml perl ];
 
   prefixKey = "-prefix ";
 
diff --git a/pkgs/development/tools/ocaml/cppo/default.nix b/pkgs/development/tools/ocaml/cppo/default.nix
index 753ef0a836b98..87db3baf0b0e3 100644
--- a/pkgs/development/tools/ocaml/cppo/default.nix
+++ b/pkgs/development/tools/ocaml/cppo/default.nix
@@ -52,7 +52,9 @@ stdenv.mkDerivation {
     sha256 = "1xqldjz9risndnabvadw41fdbi5sa2hl4fnqls7j9xfbby1izbg8";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml findlib ocamlbuild ];
 
   inherit meta;
 
diff --git a/pkgs/development/tools/ocaml/dune-release/default.nix b/pkgs/development/tools/ocaml/dune-release/default.nix
index 7e48203c091e3..7bc1f80c699f6 100644
--- a/pkgs/development/tools/ocaml/dune-release/default.nix
+++ b/pkgs/development/tools/ocaml/dune-release/default.nix
@@ -20,10 +20,11 @@ in buildDunePackage rec {
     sha256 = "sha256-oJ5SL7qNM5izoEpr+nTjbT+YmmNIoy7QgSNse3wNIA4=";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ] ++ runtimeInputs;
   buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core
                   rresult logs odoc bos yojson astring fpath ];
-  nativeCheckInputs = [ alcotest ] ++ runtimeInputs;
+  nativeCheckInputs = [ odoc ];
+  checkInputs = [ alcotest ] ++ runtimeInputs;
   doCheck = true;
 
   postPatch = ''
diff --git a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index cec91a02f2093..5faccab938ee8 100644
--- a/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,5 +1,5 @@
 { lib, fetchurl, buildDunePackage
-, cmdliner, yojson, ppxlib
+, cmdliner, yojson, ppxlib, findlib
 , menhir, menhirLib
 }:
 
@@ -17,7 +17,7 @@ buildDunePackage rec {
   buildInputs = [ cmdliner ppxlib ];
 
   configurePlatforms = [];
-  propagatedBuildInputs = [ menhirLib yojson ];
+  propagatedBuildInputs = [ menhirLib yojson findlib ];
 
   meta = {
     description = "Compiler from OCaml bytecode to Javascript";
diff --git a/pkgs/development/tools/ocaml/obuild/default.nix b/pkgs/development/tools/ocaml/obuild/default.nix
index 8a4dce3422315..4a0a87577cbff 100644
--- a/pkgs/development/tools/ocaml/obuild/default.nix
+++ b/pkgs/development/tools/ocaml/obuild/default.nix
@@ -11,7 +11,9 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-dqWP9rwWmr7i3O29v/kipJL01B3qQozaToOFCdfTWZU=";
   };
 
-  buildInputs = [ ocaml ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml ];
 
   buildPhase = ''
     patchShebangs ./bootstrap
diff --git a/pkgs/development/tools/ocaml/ocaml-top/default.nix b/pkgs/development/tools/ocaml/ocaml-top/default.nix
index f5853057d8e06..095af7769140e 100644
--- a/pkgs/development/tools/ocaml/ocaml-top/default.nix
+++ b/pkgs/development/tools/ocaml/ocaml-top/default.nix
@@ -11,7 +11,8 @@ with ocamlPackages; buildDunePackage rec {
     sha256 = "sha256-ZXnPnPvJmHshkTwYWeBojrgJYAF/R6vUo0XkvVMFSeQ=";
   };
 
-  buildInputs = [ ncurses ocp-build lablgtk3-sourceview3 ocp-index ];
+  nativeBuildInputs = [ ocp-build ];
+  buildInputs = [ ncurses lablgtk3-sourceview3 ocp-index ];
 
   configurePhase = ''
     export TERM=xterm
diff --git a/pkgs/development/tools/ocaml/ocamlify/default.nix b/pkgs/development/tools/ocaml/ocamlify/default.nix
index b40c8b42546b7..0ac69f86c90dd 100644
--- a/pkgs/development/tools/ocaml/ocamlify/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlify/default.nix
@@ -9,7 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "1f0fghvlbfryf5h3j4as7vcqrgfjb4c8abl5y0y5h069vs4kp5ii";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml findlib ocamlbuild ];
 
   configurePhase = ''
     substituteInPlace src/ocamlify.ml --replace 'OCamlifyConfig.version' '"0.0.2"'
diff --git a/pkgs/development/tools/ocaml/ocamlmod/default.nix b/pkgs/development/tools/ocaml/ocamlmod/default.nix
index 551a36adaed1b..5b4f7e8e44078 100644
--- a/pkgs/development/tools/ocaml/ocamlmod/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlmod/default.nix
@@ -14,7 +14,9 @@ stdenv.mkDerivation {
     sha256 = "0cgp9qqrq7ayyhddrmqmq1affvfqcn722qiakjq4dkywvp67h4aa";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
+  strictDeps = !doCheck;
+
+  nativeBuildInputs = [ ocaml findlib ocamlbuild ];
 
   configurePhase = "ocaml setup.ml -configure --prefix $out"
     + lib.optionalString doCheck " --enable-tests";
diff --git a/pkgs/development/tools/ocaml/ocamlscript/default.nix b/pkgs/development/tools/ocaml/ocamlscript/default.nix
index 48b7d840a4f2b..8277f4adb06dc 100644
--- a/pkgs/development/tools/ocaml/ocamlscript/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlscript/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256:10xz8jknlmcgnf233nahd04q98ijnxpijhpvb8hl7sv94dgkvpql";
   };
 
-  propagatedBuildInputs = [ ocaml findlib ];
+  nativeBuildInputs = [ ocaml findlib ];
 
   patches = [ ./Makefile.patch ];
 
diff --git a/pkgs/development/tools/ocaml/ocp-build/default.nix b/pkgs/development/tools/ocaml/ocp-build/default.nix
index feb787d24d5d2..de26536eb1c5c 100644
--- a/pkgs/development/tools/ocaml/ocp-build/default.nix
+++ b/pkgs/development/tools/ocaml/ocp-build/default.nix
@@ -19,7 +19,10 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ ocaml findlib cmdliner_1_0 re ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml findlib ];
+  buildInputs =  [ cmdliner_1_0 re ];
   propagatedBuildInputs = [ ncurses ];
   preInstall = "mkdir -p $out/bin";
 
diff --git a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
index 54e1ee55a7bff..fcb43938112d1 100644
--- a/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
+++ b/pkgs/development/tools/ocaml/ocsigen-i18n/default.nix
@@ -4,7 +4,10 @@ stdenv.mkDerivation rec {
   pname = "ocsigen-i18n";
   version = "3.7.0";
 
-  buildInputs = with ocamlPackages; [ ocaml findlib ppx_tools ];
+  strictDeps = true;
+
+  nativeBuildInputs = with ocamlPackages; [ ocaml findlib ];
+  buildInputs = with ocamlPackages; [ ppx_tools ];
 
   dontStrip = true;
 
diff --git a/pkgs/development/tools/ocaml/omake/default.nix b/pkgs/development/tools/ocaml/omake/default.nix
index f6c7955c68633..b7d670ce4a7e7 100644
--- a/pkgs/development/tools/ocaml/omake/default.nix
+++ b/pkgs/development/tools/ocaml/omake/default.nix
@@ -10,7 +10,10 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-VOFq2KLBbmZCRgHzfpD7p0iyF8yU1tTbyvTiOcpm98Q=";
   };
 
-  buildInputs = [ ocaml ncurses ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ ocaml ];
+  buildInputs = [ ncurses ];
 
   meta = {
     description = "A build system designed for scalability and portability";
diff --git a/pkgs/development/tools/ocaml/opam/1.2.2.nix b/pkgs/development/tools/ocaml/opam/1.2.2.nix
index 60804684ccbc8..23a73002e6fe1 100644
--- a/pkgs/development/tools/ocaml/opam/1.2.2.nix
+++ b/pkgs/development/tools/ocaml/opam/1.2.2.nix
@@ -47,8 +47,10 @@ in stdenv.mkDerivation {
   pname = "opam";
   version = "1.2.2";
 
-  nativeBuildInputs = [ makeWrapper unzip ];
-  buildInputs = [ curl ncurses ocaml ];
+  strictDeps = true;
+
+  nativeBuildInputs = [ makeWrapper unzip curl ocaml ];
+  buildInputs = [ ncurses ];
 
   src = srcs.opam;
 
diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix
index de831fde99f14..1db7ea151fabe 100644
--- a/pkgs/development/tools/ocaml/opam/default.nix
+++ b/pkgs/development/tools/ocaml/opam/default.nix
@@ -79,8 +79,10 @@ in stdenv.mkDerivation {
   pname = "opam";
   version = "2.1.4";
 
-  nativeBuildInputs = [ makeWrapper unzip ];
-  buildInputs = [ curl ncurses ocaml getconf ]
+  strictDeps = true;
+
+  nativeBuildInputs = [ makeWrapper unzip ocaml curl ];
+  buildInputs = [ ncurses getconf ]
     ++ lib.optionals stdenv.isLinux [ bubblewrap ]
     ++ lib.optionals stdenv.isDarwin [ Foundation ];
 
diff --git a/pkgs/development/tools/ocaml/opam/opam.nix.pl b/pkgs/development/tools/ocaml/opam/opam.nix.pl
index 8929afdef0aba..8b573039d7d87 100755
--- a/pkgs/development/tools/ocaml/opam/opam.nix.pl
+++ b/pkgs/development/tools/ocaml/opam/opam.nix.pl
@@ -68,8 +68,10 @@ in stdenv.mkDerivation {
   pname = "opam";
   version = "$OPAM_RELEASE";
 
-  nativeBuildInputs = [ makeWrapper unzip ];
-  buildInputs = [ curl ncurses ocaml getconf ]
+  strictDeps = true;
+
+  nativeBuildInputs = [ makeWrapper unzip ocaml curl ];
+  buildInputs = [ ncurses getconf ]
     ++ lib.optionals stdenv.isLinux [ bubblewrap ]
     ++ lib.optionals stdenv.isDarwin [ Foundation ];
 
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
index 5d500339ff679..0afaff2649470 100644
--- a/pkgs/development/tools/ocaml/utop/default.nix
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -11,7 +11,7 @@ let
         version = "2.10.0";
         sha256 = "sha256-R10WovnqYcYCrDJnPuIQx2zHaPchSYfXDAaVMsJ4LQA=";
         duneVersion = "3";
-        propagatedBuildInputs = [ lambda-term zed logs ];
+        propagatedBuildInputs = [ findlib lambda-term zed logs ];
       }
     else
       {
diff --git a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
index 3931fe9c3da04..7943457d38152 100644
--- a/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
+++ b/pkgs/tools/wayland/wayland-proxy-virtwl/default.nix
@@ -25,12 +25,12 @@ ocamlPackages.buildDunePackage rec {
 
   strictDeps = true;
   nativeBuildInputs = [
-    ocamlPackages.ppx_cstruct
     pkg-config
   ];
 
   buildInputs = [ libdrm ] ++ (with ocamlPackages; [
     dune-configurator
+    ppx_cstruct
     wayland
     cmdliner
     logs