diff --git a/nix/frama-c-checkers-shell.nix b/nix/frama-c-checkers-shell.nix
index 356f25ed92e76e4dbf3920f7376a23a7958e6531..10523bd941bdd1ce7c40f89d07741fcb1ed13190 100644
--- a/nix/frama-c-checkers-shell.nix
+++ b/nix/frama-c-checkers-shell.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , black
-, clang_11
+, clang_12
 , combinetura
 , frama-c-hdrck
 , frama-c-lint
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   name = "frama-c-checkers-shell";
   buildInputs = [
     black
-    clang_11
+    clang_12
     combinetura
     frama-c-hdrck
     frama-c-lint
diff --git a/nix/odoc-parser.nix b/nix/odoc-parser.nix
deleted file mode 100644
index 805d7ce87c36fa388e41dde9bdf45c57d3a55978..0000000000000000000000000000000000000000
--- a/nix/odoc-parser.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, fetchurl, buildDunePackage, ocaml, astring, result, camlp-streams }:
-
-buildDunePackage rec {
-  pname = "odoc-parser";
-  version = "2.4.1";
-
-  minimalOCamlVersion = "4.02";
-
-  src = fetchurl {
-    url = "https://github.com/ocaml/odoc/releases/download/${version}/odoc-${version}.tbz";
-    sha256 = "sha256-uBSguQILUD62fxfR2alp0FK2PYzcfN+l+3k7E3VYzts=";
-  };
-
-  propagatedBuildInputs = [ astring result camlp-streams ];
-
-  meta = {
-    description = "Parser for Ocaml documentation comments";
-    license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.marsam ];
-    homepage = "https://github.com/ocaml-doc/odoc-parser";
-    changelog = "https://github.com/ocaml-doc/odoc-parser/raw/${version}/CHANGES.md";
-  };
-}
diff --git a/nix/odoc.nix b/nix/odoc.nix
deleted file mode 100644
index 88cb8669a4b0a073e4e1416cfc091cbf5bfc99c7..0000000000000000000000000000000000000000
--- a/nix/odoc.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, fetchurl, buildDunePackage, ocaml
-, astring, cmdliner, cppo, fpath, result, tyxml
-, odoc-parser, fmt, crunch
-}:
-
-buildDunePackage rec {
-  pname = "odoc";
-  version = "2.4.1";
-
-  src = fetchurl {
-    url = "https://github.com/ocaml/odoc/releases/download/${version}/odoc-${version}.tbz";
-    sha256 = "sha256-uBSguQILUD62fxfR2alp0FK2PYzcfN+l+3k7E3VYzts=";
-  };
-
-  nativeBuildInputs = [ cppo crunch ];
-  buildInputs = [ astring cmdliner fpath result tyxml odoc-parser fmt ];
-
-  doCheck = false;
-
-  meta = {
-    description = "A documentation generator for OCaml";
-    license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
-    homepage = "https://github.com/ocaml/odoc";
-    changelog = "https://github.com/ocaml/odoc/blob/${version}/CHANGES.md";
-  };
-}
diff --git a/nix/pkgs.nix b/nix/pkgs.nix
index 977fcbd283bc3a0ca1ba4335057263a593613931..f55744624c448731d8208c857f306b7d68b9d74b 100644
--- a/nix/pkgs.nix
+++ b/nix/pkgs.nix
@@ -5,9 +5,6 @@ let
     alt-ergo = oself.callPackage ./alt-ergo.nix {};
     combinetura = oself.callPackage ./combinetura.nix {};
     mlmpfr = oself.callPackage ./mlmpfr.nix {};
-    odoc = oself.callPackage ./odoc.nix {};
-    odoc-parser = oself.callPackage ./odoc-parser.nix {};
-    ppxlib = oself.callPackage ./ppxlib.nix {};
     why3 = oself.callPackage ./why3.nix {};
 
     # Helpers
diff --git a/nix/plugin-checkers-shell.nix b/nix/plugin-checkers-shell.nix
index cc1d340f645b600ff7866b883cbbf6927d686804..91b34d8b034d18d4bb32d554997d1b0a376e2712 100644
--- a/nix/plugin-checkers-shell.nix
+++ b/nix/plugin-checkers-shell.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, clang_11
+, clang_12
 , frama-c
 , frama-c-hdrck
 , frama-c-lint
@@ -12,7 +12,7 @@
 stdenv.mkDerivation rec {
   name = "plugin-checkers-shell";
   buildInputs = [
-    clang_11
+    clang_12
     frama-c
     frama-c-hdrck
     frama-c-lint
diff --git a/nix/ppxlib.nix b/nix/ppxlib.nix
deleted file mode 100644
index 03b1aaee58165d13e3345b84e772466a36ca0094..0000000000000000000000000000000000000000
--- a/nix/ppxlib.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, fetchurl, buildDunePackage, ocaml,
-  stdlib-shims, ocaml-compiler-libs, ppx_derivers, stdio
-}:
-
-buildDunePackage rec {
-  pname = "ppxlib";
-  version = "0.32.0";
-
-  duneVersion = "3";
-
-  src = fetchurl {
-    url = "https://github.com/ocaml-ppx/ppxlib/releases/download/${version}/ppxlib-${version}.tbz";
-    sha256 = "sha256-UHzHPM+JXyLutSV6IkODjBijigkQX8/1Xu75FIVVQis=";
-  };
-
-  propagatedBuildInputs = [
-    ocaml-compiler-libs
-    ppx_derivers
-    stdio
-    stdlib-shims
-  ];
-
-  meta = {
-    description = "Comprehensive ppx tool set";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.vbgl ];
-    homepage = "https://github.com/ocaml-ppx/ppxlib";
-  };
-}
diff --git a/nix/sources.json b/nix/sources.json
index d275678e16f0c46962f2bde899f3f4a7c71b7804..3d640c20e46d13e80d31ba0d238595e2bcd1babe 100644
--- a/nix/sources.json
+++ b/nix/sources.json
@@ -1,4 +1,11 @@
 {
+    "combinetura": {
+        "branch": "master",
+        "repo": "git@git.frama-c.com:dev/combinetura.git",
+        "rev": "91918a91271d38df3b5223fa40898ca329779407",
+        "type": "git",
+        "version": "0.0"
+    },
     "gitignore.nix": {
         "branch": "master",
         "description": "Nix functions for filtering local git sources",
@@ -29,10 +36,10 @@
         "homepage": "https://github.com/NixOS/nixpkgs",
         "owner": "NixOS",
         "repo": "nixpkgs",
-        "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34",
-        "sha256": "0v5q4zadnmdiv8hwcsx804l8radx562aqdw0r5nld127c8f7jzz8",
+        "rev": "80e3c2c5d0d2138fad54896a19dc64260a066304",
+        "sha256": "00nxxwiscc4nbl94d66989hyfkvir2flk8r8rgfm8m8qqx78dcsb",
         "type": "tarball",
-        "url": "https://github.com/NixOS/nixpkgs/archive/3030f185ba6a4bf4f18b87f345f104e6a6961f34.tar.gz",
+        "url": "https://github.com/NixOS/nixpkgs/archive/80e3c2c5d0d2138fad54896a19dc64260a066304.tar.gz",
         "url_template": "https://github.com/<owner>/<repo>/archive/<rev>.tar.gz"
     },
     "why3": {
@@ -41,12 +48,5 @@
         "rev": "ee474fdf493de18a702f9c503e104cea58dc22af",
         "type": "git",
         "version": "1.7.1"
-    },
-    "combinetura": {
-        "branch": "master",
-        "repo": "git@git.frama-c.com:dev/combinetura.git",
-        "rev": "91918a91271d38df3b5223fa40898ca329779407",
-        "type": "git",
-        "version": "0.0"
     }
 }
diff --git a/nix/why3.nix b/nix/why3.nix
index b230ca26fab68fee5933be738704deab77f77b55..9b6c883a15b63f0f9a10d606071b8a4c04542239 100644
--- a/nix/why3.nix
+++ b/nix/why3.nix
@@ -19,7 +19,6 @@
 , re
 , num
 , lablgtk3-sourceview3
-, coqPackages
 , rubber
 , hevea
 , emacs
@@ -55,9 +54,6 @@ stdenv.mkDerivation rec {
     # S-expression output for why3pp
     ppx_deriving
     ppx_sexp_conv
-    # Coq Support
-    coqPackages.coq
-    coqPackages.flocq
   ];
 
   propagatedBuildInputs = [ camlzip num re sexplib ];
diff --git a/tools/lint/lint.ml b/tools/lint/lint.ml
index 80de79e8b2da49df1ed88ab92561c01acbdbb642..90afb1ea7a62b277fef9e36ee292540c22dc9f9f 100644
--- a/tools/lint/lint.ml
+++ b/tools/lint/lint.ml
@@ -51,7 +51,7 @@ let external_formatters = [
     available_cmd = "black --version > /dev/null 2> /dev/null";
     check_cmd = "black --quiet --line-length 100 --check" ;
     update_cmd = "black --quiet --line-length 100" ;
-    version_cmd  = "black --version | grep black | grep -E '23\\.[0-9]+\\.[0-9]+' > /dev/null 2> /dev/null"
+    version_cmd  = "black --version | grep black | grep -E '24\\.[0-9]+\\.[0-9]+' > /dev/null 2> /dev/null"
   }
 ]