about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/strawberry/default.nix4
-rw-r--r--pkgs/applications/editors/bluefish/default.nix7
-rw-r--r--pkgs/applications/emulators/wine/sources.nix4
-rw-r--r--pkgs/applications/emulators/wine/staging.nix2
-rw-r--r--pkgs/applications/graphics/photoqt/default.nix4
-rw-r--r--pkgs/applications/misc/passky-desktop/default.nix103
-rw-r--r--pkgs/applications/misc/tui-journal/default.nix6
-rw-r--r--pkgs/applications/misc/workrave/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/lagrange/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/calico/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/linkerd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/terragrunt/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/tfupdate/default.nix6
-rw-r--r--pkgs/applications/terminal-emulators/rio/default.nix1
-rw-r--r--pkgs/applications/version-management/git-mit/default.nix6
-rw-r--r--pkgs/applications/video/filebot/default.nix6
-rw-r--r--pkgs/by-name/bi/bitmagnet/package.nix31
-rw-r--r--pkgs/by-name/dx/dxvk/package.nix (renamed from pkgs/misc/dxvk/default.nix)0
-rw-r--r--pkgs/by-name/dx/dxvk/setup_dxvk.sh (renamed from pkgs/misc/dxvk/setup_dxvk.sh)0
-rw-r--r--pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch (renamed from pkgs/misc/dxvk/darwin-dxvk-compat.patch)0
-rw-r--r--pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch (renamed from pkgs/misc/dxvk/darwin-thread-primitives.patch)0
-rw-r--r--pkgs/by-name/dx/dxvk_1/package.nix57
-rw-r--r--pkgs/by-name/dx/dxvk_2/package.nix77
-rw-r--r--pkgs/by-name/gb/gbar/package.nix58
-rw-r--r--pkgs/by-name/po/poethepoet/package.nix4
-rw-r--r--pkgs/by-name/se/searxng/package.nix (renamed from pkgs/servers/web-apps/searxng/default.nix)12
-rw-r--r--pkgs/by-name/ui/uiua/package.nix16
-rw-r--r--pkgs/data/fonts/iosevka/default.nix6
-rw-r--r--pkgs/development/compilers/openjdk/21.nix188
-rw-r--r--pkgs/development/compilers/openjdk/darwin/11.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/16.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/17.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/18.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/19.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/20.nix92
-rw-r--r--pkgs/development/compilers/openjdk/darwin/8.nix96
-rw-r--r--pkgs/development/compilers/openjdk/darwin/meta.nix4
-rw-r--r--pkgs/development/compilers/openjdk/fix-java-home-jdk21.patch14
-rw-r--r--pkgs/development/compilers/openjdk/openjfx/21.nix113
-rw-r--r--pkgs/development/compilers/zulu/11.nix42
-rw-r--r--pkgs/development/compilers/zulu/16.nix26
-rw-r--r--pkgs/development/compilers/zulu/17.nix42
-rw-r--r--pkgs/development/compilers/zulu/18.nix26
-rw-r--r--pkgs/development/compilers/zulu/19.nix26
-rw-r--r--pkgs/development/compilers/zulu/20.nix26
-rw-r--r--pkgs/development/compilers/zulu/21.nix42
-rw-r--r--pkgs/development/compilers/zulu/8.nix152
-rw-r--r--pkgs/development/compilers/zulu/common.nix159
-rw-r--r--pkgs/development/compilers/zulu/default.nix125
-rw-r--r--pkgs/development/interpreters/hugs/default.nix1
-rw-r--r--pkgs/development/interpreters/luau/default.nix4
-rw-r--r--pkgs/development/libraries/libaec/default.nix6
-rw-r--r--pkgs/development/libraries/liblinphone/backport-cpp17.patch98
-rw-r--r--pkgs/development/libraries/liblinphone/default.nix9
-rw-r--r--pkgs/development/libraries/the-foundation/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/pprint/default.nix4
-rw-r--r--pkgs/development/python-modules/ircrobots/default.nix6
-rw-r--r--pkgs/development/python-modules/ircstates/default.nix9
-rw-r--r--pkgs/development/python-modules/irctokens/default.nix4
-rw-r--r--pkgs/development/python-modules/jax/default.nix4
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix12
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix10
-rw-r--r--pkgs/development/python-modules/jupyter-server/default.nix5
-rw-r--r--pkgs/development/python-modules/pglast/default.nix11
-rw-r--r--pkgs/development/python-modules/pymc/default.nix10
-rw-r--r--pkgs/development/python-modules/python-hl7/default.nix36
-rw-r--r--pkgs/development/tools/analysis/flow/default.nix4
-rw-r--r--pkgs/development/tools/apktool/default.nix4
-rw-r--r--pkgs/development/tools/buf/default.nix6
-rw-r--r--pkgs/development/tools/darklua/default.nix13
-rw-r--r--pkgs/development/tools/frugal/default.nix6
-rw-r--r--pkgs/development/tools/fsautocomplete/default.nix4
-rw-r--r--pkgs/development/tools/java/visualvm/default.nix4
-rw-r--r--pkgs/development/tools/language-servers/ruff-lsp/default.nix3
-rw-r--r--pkgs/development/tools/misc/fzf-make/default.nix6
-rw-r--r--pkgs/development/tools/misc/rsonpath/default.nix6
-rw-r--r--pkgs/development/tools/misc/runme/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-binstall/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-guppy/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-hakari/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-modules/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-mutants/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-shuttle/Cargo.lock2
-rw-r--r--pkgs/development/tools/rust/cargo-shuttle/default.nix4
-rw-r--r--pkgs/development/tools/rust/leptosfmt/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-script/default.nix6
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/misc/dxvk/dxvk.nix114
-rw-r--r--pkgs/os-specific/darwin/ios-deploy/default.nix71
-rw-r--r--pkgs/os-specific/linux/eudev/default.nix4
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/default.nix26
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix140
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix136
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix71
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix2
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix5
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix8
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix6
-rw-r--r--pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix11
-rw-r--r--pkgs/servers/bililiverecorder/default.nix4
-rw-r--r--pkgs/servers/bird/default.nix4
-rw-r--r--pkgs/servers/geospatial/tegola/default.nix4
-rw-r--r--pkgs/servers/invidious/versions.json6
-rw-r--r--pkgs/servers/mattermost/default.nix8
-rw-r--r--pkgs/stdenv/darwin/make-bootstrap-tools.nix2
-rw-r--r--pkgs/tools/audio/whisper-ctranslate2/default.nix15
-rw-r--r--pkgs/tools/backup/pgbackrest/default.nix4
-rw-r--r--pkgs/tools/misc/hyperfine/default.nix6
-rw-r--r--pkgs/tools/networking/containerlab/default.nix6
-rw-r--r--pkgs/tools/nix/fh/default.nix6
-rw-r--r--pkgs/tools/text/gtree/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix18
-rw-r--r--pkgs/top-level/java-packages.nix25
-rw-r--r--pkgs/top-level/python-packages.nix2
-rw-r--r--pkgs/top-level/release.nix29
-rw-r--r--pkgs/top-level/ruby-packages.nix314
116 files changed, 2084 insertions, 1391 deletions
diff --git a/pkgs/applications/audio/strawberry/default.nix b/pkgs/applications/audio/strawberry/default.nix
index 25193d1b78e4..7933c7457173 100644
--- a/pkgs/applications/audio/strawberry/default.nix
+++ b/pkgs/applications/audio/strawberry/default.nix
@@ -42,13 +42,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "strawberry";
-  version = "1.0.18";
+  version = "1.0.20";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    hash = "sha256-vOay9xPSwgSYurFgL9f4OdBPzGJkV4t+7lJgeCeT0c4=";
+    hash = "sha256-/utd2uYoxPHQ4kQwA0tZW5HwmN90vXL23EiNFh3wXoE=";
   };
 
   # the big strawberry shown in the context menu is *very* much in your face, so use the grey version instead
diff --git a/pkgs/applications/editors/bluefish/default.nix b/pkgs/applications/editors/bluefish/default.nix
index 008ff8196d16..6a5d3cbd1f6a 100644
--- a/pkgs/applications/editors/bluefish/default.nix
+++ b/pkgs/applications/editors/bluefish/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, intltool
 , wrapGAppsHook
 , pkg-config
 , gtk
@@ -14,14 +13,14 @@
 
 stdenv.mkDerivation rec {
   pname = "bluefish";
-  version = "2.2.12";
+  version = "2.2.14";
 
   src = fetchurl {
     url = "mirror://sourceforge/bluefish/bluefish-${version}.tar.bz2";
-    sha256 = "0slyjx4b4l612505q02crk00pjg9d5wi8gm5gxvcs0f6l9dr1y8d";
+    sha256 = "sha256-IszfnOTlyWIQY+bPfXOr+wc2q3pyvOCG0Gxc9e4SXt4=";
   };
 
-  nativeBuildInputs = [ intltool pkg-config wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config wrapGAppsHook ];
   buildInputs = [
     gnome.adwaita-icon-theme
     gtk
diff --git a/pkgs/applications/emulators/wine/sources.nix b/pkgs/applications/emulators/wine/sources.nix
index ff3c8271a53b..813d032bf964 100644
--- a/pkgs/applications/emulators/wine/sources.nix
+++ b/pkgs/applications/emulators/wine/sources.nix
@@ -116,8 +116,8 @@ in rec {
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
-    inherit (unstable) version;
-    hash = "sha256-8uxXyt3zu+LuFJbTQD+bv+Zmnzb18Dhlo3ign1lFT2s=";
+    version = "8.17.1";
+    hash = "sha256-h36NDFYsI0y8TG41IH10IdF4QEuBkBewQ3knZ9iwDpg=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/applications/emulators/wine/staging.nix b/pkgs/applications/emulators/wine/staging.nix
index b36d4862a7f0..9e9a03ebfc59 100644
--- a/pkgs/applications/emulators/wine/staging.nix
+++ b/pkgs/applications/emulators/wine/staging.nix
@@ -5,7 +5,7 @@ with callPackage ./util.nix {};
 let patch = (callPackage ./sources.nix {}).staging;
     build-inputs = pkgNames: extra:
       (mkBuildInputs wineUnstable.pkgArches pkgNames) ++ extra;
-in assert lib.getVersion wineUnstable == patch.version;
+in assert lib.versions.majorMinor wineUnstable.version == lib.versions.majorMinor patch.version;
 
 (lib.overrideDerivation wineUnstable (self: {
   buildInputs = build-inputs [ "perl" "util-linux" "autoconf" "gitMinimal" ] self.buildInputs;
diff --git a/pkgs/applications/graphics/photoqt/default.nix b/pkgs/applications/graphics/photoqt/default.nix
index fed2c944e5c5..6a7a57fd25f2 100644
--- a/pkgs/applications/graphics/photoqt/default.nix
+++ b/pkgs/applications/graphics/photoqt/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "photoqt";
-  version = "3.3";
+  version = "3.4";
 
   src = fetchurl {
     url = "https://photoqt.org/pkgs/photoqt-${version}.tar.gz";
-    hash = "sha256-AD+Uww/tmXRiAkmeuHBBollE6Y9L7c+fB882ALVtSXQ=";
+    hash = "sha256-kVf9+zI9rtEMmS0N4qrN673T/1fnqfcV3hQPnMXMLas=";
   };
 
   # error: no member named 'setlocale' in namespace 'std'; did you mean simply 'setlocale'?
diff --git a/pkgs/applications/misc/passky-desktop/default.nix b/pkgs/applications/misc/passky-desktop/default.nix
index 97df6ba94dae..927035ed8167 100644
--- a/pkgs/applications/misc/passky-desktop/default.nix
+++ b/pkgs/applications/misc/passky-desktop/default.nix
@@ -1,59 +1,70 @@
-{ lib, stdenv, fetchurl, appimageTools, undmg }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, electron_22
+, makeWrapper
+, makeDesktopItem
+, copyDesktopItems
+}:
 
-let
+stdenv.mkDerivation rec {
   pname = "passky-desktop";
-  version = "7.1.0";
-
-  srcs = {
-    x86_64-linux = fetchurl {
-      url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.AppImage";
-      sha256 = "1xnhrmmm018mmyzjq05mhbf673f0n81fh1k3kbfarbgk2kbwpq6y";
-    };
-    x86_64-darwin = fetchurl {
-      url = "https://github.com/Rabbit-Company/Passky-Desktop/releases/download/v${version}/Passky-${version}.dmg";
-      sha256 = "0mm7hk4v7zvpjdqyw3nhk33x72j0gh3f59bx3q18azlm4dr61r2d";
-    };
-  };
-  src = srcs.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+  version = "8.1.1";
 
-  appimageContents = appimageTools.extract { inherit pname version src; };
-  meta = with lib; {
-    homepage = "https://passky.org";
-    downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ akkesm ];
-    platforms = builtins.attrNames srcs;
+  src = fetchFromGitHub {
+    owner = "Rabbit-Company";
+    repo = "Passky-Desktop";
+    rev = "refs/tags/v${version}";
+    sha256 = "1ma8s1bngjdzclcc4m5pcmavk38sidaskmz7dgfnv84y35si18dr";
   };
 
-  linux = appimageTools.wrapType2 {
-    inherit pname version src meta;
+  nativeBuildInputs = [ makeWrapper copyDesktopItems ];
 
-    extraInstallCommands = ''
-      mv $out/bin/${pname}-${version} $out/bin/${pname}
+  installPhase = ''
+    runHook preInstall
 
-      install -D ${appimageContents}/passky.desktop \
-        $out/share/applications/${pname}.desktop
+    mkdir -p $out/share/passky
+    cp -r "." "$out/share/passky/electron"
 
-      substituteInPlace $out/share/applications/${pname}.desktop \
-        --replace 'Exec=AppRun' 'Exec=${pname}'
+    local resolution
+    for icon in $out/share/passky/electron/images/icons/icon*.png; do
+      resolution=''${icon%".png"}
+      resolution=''${resolution##*/icon-}
+      mkdir -p "$out/share/icons/hicolor/''${resolution}/apps"
+      ln -s "$icon" "$out/share/icons/hicolor/''${resolution}/apps/passky.png"
+    done
 
-      cp -r ${appimageContents}/usr/share/icons $out/share
-    '';
-  };
+    mkdir "$out/share/applications"
+    makeWrapper ${electron_22}/bin/electron "$out/bin/passky" \
+      --add-flags "$out/share/passky/electron/" \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
 
-  darwin = stdenv.mkDerivation {
-    inherit pname version src meta;
+    runHook postInstall
+  '';
 
-    nativeBuildInputs = [ undmg ];
+  desktopItems = [
+    (
+      makeDesktopItem {
+        name = "Passky";
+        type = "Application";
+        desktopName = "passky";
+        comment = "Simple, modern, open source and secure password manager.";
+        icon = "passky";
+        exec = "passky %U";
+        categories = [ "Utility" ];
+        startupWMClass = "Passky";
+      }
+    )
+  ];
 
-    sourceRoot = ".";
-
-    installPhase = ''
-      mkdir -p $out/Applications
-      cp -r *.app $out/Applications
-    '';
+  meta = with lib; {
+    description = "A simple, modern, lightweight, open source and secure password manager";
+    homepage = "https://passky.org";
+    downloadPage = "https://github.com/Rabbit-Company/Passky-Desktop/releases";
+    changelog = "https://github.com/Rabbit-Company/Passky-Desktop/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ akkesm ];
+    mainProgram = "passky";
+    platforms = platforms.unix;
   };
-in
-if stdenv.isDarwin
-  then darwin
-  else linux
+}
diff --git a/pkgs/applications/misc/tui-journal/default.nix b/pkgs/applications/misc/tui-journal/default.nix
index 25e3058da9aa..39b674d4c3fe 100644
--- a/pkgs/applications/misc/tui-journal/default.nix
+++ b/pkgs/applications/misc/tui-journal/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tui-journal";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "AmmarAbouZor";
     repo = "tui-journal";
     rev = "v${version}";
-    hash = "sha256-ASozznbqtQc9bIzxbL94t2CHY2/PeXfR1DKfhTmsX74=";
+    hash = "sha256-UK9Pq+QNEk+AeG5/ohyCiL+lSpENQfiR/Qm0nQGJGrg=";
   };
 
-  cargoHash = "sha256-H+j/i0Gfk7O2TLdw5FYHOrLy/jfMSF4cpzMtQ2XJn2M=";
+  cargoHash = "sha256-TpNnb3usDkNlcejlSkXb5R1fgVlKNYBFAWi1fEn9uzI=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/misc/workrave/default.nix b/pkgs/applications/misc/workrave/default.nix
index c9bb4131c5b8..7d85f9c7a234 100644
--- a/pkgs/applications/misc/workrave/default.nix
+++ b/pkgs/applications/misc/workrave/default.nix
@@ -35,14 +35,14 @@
 
 stdenv.mkDerivation rec {
   pname = "workrave";
-  version = "1.10.51.1";
+  version = "1.10.52";
 
   src = fetchFromGitHub {
     repo = "workrave";
     owner = "rcaelers";
     rev = with lib;
       "v" + concatStringsSep "_" (splitVersion version);
-    sha256 = "sha256-rx3k4U5igRYxzuVke+x926K1Pso32iGob4Ccp0jdKds=";
+    sha256 = "sha256-U39zr8XGIDbyY480bla2yTaRQLP3wMrL8RLWjlTa5uY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/browsers/lagrange/default.nix b/pkgs/applications/networking/browsers/lagrange/default.nix
index 3957d4c2a0d7..342396c6a5aa 100644
--- a/pkgs/applications/networking/browsers/lagrange/default.nix
+++ b/pkgs/applications/networking/browsers/lagrange/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "lagrange";
-  version = "1.16.7";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "skyjake";
     repo = "lagrange";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-d9QmFXDDeYDR1KFtOyQKfaYvex8TFDiYJUrKEp7H5K8=";
+    hash = "sha256-UoyCsmZKpRkO4bQt6RwRAceu3+JPD8I8qSf9/uU5Vm4=";
   };
 
   nativeBuildInputs = [ cmake pkg-config zip ];
diff --git a/pkgs/applications/networking/cluster/calico/default.nix b/pkgs/applications/networking/cluster/calico/default.nix
index 17f1331e4612..29428d8360ea 100644
--- a/pkgs/applications/networking/cluster/calico/default.nix
+++ b/pkgs/applications/networking/cluster/calico/default.nix
@@ -2,16 +2,16 @@
 
 builtins.mapAttrs (pname: { doCheck ? true, mainProgram ? pname, subPackages }: buildGoModule rec {
   inherit pname;
-  version = "3.26.1";
+  version = "3.26.3";
 
   src = fetchFromGitHub {
     owner = "projectcalico";
     repo = "calico";
     rev = "v${version}";
-    hash = "sha256-QSebSc4V8DFSKufSB6M4YSuwDJ9rn/6IR6Fr38F8BBQ=";
+    hash = "sha256-KbtQ5oMZ1ygYwbaKpyAKTprPZ6+ikDbGLafwOShVd6w=";
   };
 
-  vendorHash = "sha256-SuV7OEt0ZlVt0i8L5rgQd0HJn63XuDHi7+pe+bq+6Yw=";
+  vendorHash = "sha256-1PBdDpc/cvI5uN6/msxXoMXbx7Osgq12W1VqtZ7XtGE=";
 
   inherit doCheck subPackages;
 
diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix
index ecc92bd07f18..a76317703445 100644
--- a/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "stable";
-  version = "2.14.0";
-  sha256 = "0j4qzmfhi286vsngf1j3s8zhk7xj2saqr27clmjy7ypjszlz5rvm";
-  vendorHash = "sha256-HxxekAipoWNxcLUSOSwUOXlrWMODw7gS8fcyTD3CMYE=";
+  version = "2.14.1";
+  sha256 = "1fxwy8c1zcjwnv055czn9ixalpvq710k0m82633n73a0ixnlmjbv";
+  vendorHash = "sha256-hOuvIndyGGvNWYmzE0rho/Y30/ilCzeBtL5GEvl9QqU=";
 }
diff --git a/pkgs/applications/networking/cluster/terragrunt/default.nix b/pkgs/applications/networking/cluster/terragrunt/default.nix
index f195f3e4cb27..b4e85d0cff5f 100644
--- a/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.51.7";
+  version = "0.52.0";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-CZKY4/XQsWWlp6Xgv292LstahueJ9iFhxjB//RxlQOo=";
+    hash = "sha256-7Qd3Eat133pRthoYZzL9UYmL/cqgCRRWKGuZj9kqfFo=";
   };
 
   vendorHash = "sha256-NSrZVLQ3Qbnp94qCV7NbrEav/7LCRbTov+B2vzbuvdM=";
diff --git a/pkgs/applications/networking/cluster/tfupdate/default.nix b/pkgs/applications/networking/cluster/tfupdate/default.nix
index 24f7e36049b0..1b9906856878 100644
--- a/pkgs/applications/networking/cluster/tfupdate/default.nix
+++ b/pkgs/applications/networking/cluster/tfupdate/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "tfupdate";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "minamijoyo";
     repo = "tfupdate";
     rev = "v${version}";
-    sha256 = "sha256-ii37Au/2jjGdQjc2LnBPkyNNBMbD5XPPo7i3krF33W0=";
+    sha256 = "sha256-HyDWye7xL0g5vDoGl8FYFXfuMKU4rxAlFawQ5ynqkmc=";
   };
 
-  vendorHash = "sha256-gtAenM1URr2wFfe2/zCIyNvG7echjIxSxG1hX2vq16g=";
+  vendorHash = "sha256-oPqAH+i9ryb1Ps1yCkxoPgMmf4RNtFBCeE94vZAEnuo=";
 
   # Tests start http servers which need to bind to local addresses:
   # panic: httptest: failed to listen on a port: listen tcp6 [::1]:0: bind: operation not permitted
diff --git a/pkgs/applications/terminal-emulators/rio/default.nix b/pkgs/applications/terminal-emulators/rio/default.nix
index f6f4ea919196..afd3205343e5 100644
--- a/pkgs/applications/terminal-emulators/rio/default.nix
+++ b/pkgs/applications/terminal-emulators/rio/default.nix
@@ -103,5 +103,6 @@ rustPlatform.buildRustPackage rec {
     maintainers = with lib.maintainers; [ otavio oluceps ];
     platforms = lib.platforms.unix;
     changelog = "https://github.com/raphamorim/rio/blob/v${version}/CHANGELOG.md";
+    mainProgram = "rio";
   };
 }
diff --git a/pkgs/applications/version-management/git-mit/default.nix b/pkgs/applications/version-management/git-mit/default.nix
index 7e7de848ecad..e2d185b97f29 100644
--- a/pkgs/applications/version-management/git-mit/default.nix
+++ b/pkgs/applications/version-management/git-mit/default.nix
@@ -10,7 +10,7 @@
 }:
 
 let
-  version = "5.12.155";
+  version = "5.12.156";
 in
 rustPlatform.buildRustPackage {
   pname = "git-mit";
@@ -20,10 +20,10 @@ rustPlatform.buildRustPackage {
     owner = "PurpleBooth";
     repo = "git-mit";
     rev = "v${version}";
-    hash = "sha256-Hz/FGPnrY3EqlVuSks82UO6/7uHGEgnGgTddFKnj3AQ=";
+    hash = "sha256-AY+1zJsH4KgMiOfGDuNGxn5XmmYrWARapqiEZhckako=";
   };
 
-  cargoHash = "sha256-SiYj05OMUWn0hpJeMLEz846QQLTJuv4dtiSG/ow2yHI=";
+  cargoHash = "sha256-Rz0bgSlvekay5c/TYCu8FJUN3xnXjVFMa0wcUB72nw8=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 524e081dc286..9fffd01019e8 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -10,11 +10,11 @@ let
   };
 in stdenv.mkDerivation (finalAttrs: {
   pname = "filebot";
-  version = "5.0.3";
+  version = "5.1.1";
 
   src = fetchurl {
-    url = "https://web.archive.org/web/20230418205553/https://get.filebot.net/filebot/FileBot_${finalAttrs.version}/FileBot_${finalAttrs.version}-portable.tar.xz";
-    hash = "sha256-8FTmR+ztR2ugPcgHvfwyh9yfxPiUJdeAVvjjl5cQCy0=";
+    url = "https://web.archive.org/web/20230917142929/https://get.filebot.net/filebot/FileBot_${finalAttrs.version}/FileBot_${finalAttrs.version}-portable.tar.xz";
+    hash = "sha256-BCsZBRtT2Ka7WZw7WFnagwoJwIO1L3qpFk/6nlGdpmQ=";
   };
 
   unpackPhase = "tar xvf $src";
diff --git a/pkgs/by-name/bi/bitmagnet/package.nix b/pkgs/by-name/bi/bitmagnet/package.nix
new file mode 100644
index 000000000000..a34802c5de1e
--- /dev/null
+++ b/pkgs/by-name/bi/bitmagnet/package.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "bitmagnet";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "bitmagnet-io";
+    repo = "bitmagnet";
+    rev = "v${version}";
+    hash = "sha256-+KAIHg8M2CM+GRRv+htmev8MFe/Y1sJ8p+um/c7kI7c=";
+  };
+
+  vendorHash = "sha256-ydiZ3KMEiVkmdzhHjYYLJ7wuiKmwlMEn4OWrKSOnaSo=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = {
+    description = "A self-hosted BitTorrent indexer, DHT crawler, and torrent search engine";
+    longDescription = ''
+      A self-hosted BitTorrent indexer, DHT crawler, content classifier and torrent search engine with web UI, GraphQL API and Servarr stack integration.
+    '';
+    homepage = "https://bitmagnet.io/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    mainProgram = "bitmagnet";
+  };
+}
diff --git a/pkgs/misc/dxvk/default.nix b/pkgs/by-name/dx/dxvk/package.nix
index 88b7e5b104fb..88b7e5b104fb 100644
--- a/pkgs/misc/dxvk/default.nix
+++ b/pkgs/by-name/dx/dxvk/package.nix
diff --git a/pkgs/misc/dxvk/setup_dxvk.sh b/pkgs/by-name/dx/dxvk/setup_dxvk.sh
index 4926acd3ba89..4926acd3ba89 100644
--- a/pkgs/misc/dxvk/setup_dxvk.sh
+++ b/pkgs/by-name/dx/dxvk/setup_dxvk.sh
diff --git a/pkgs/misc/dxvk/darwin-dxvk-compat.patch b/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch
index 99833a020cda..99833a020cda 100644
--- a/pkgs/misc/dxvk/darwin-dxvk-compat.patch
+++ b/pkgs/by-name/dx/dxvk_1/darwin-dxvk-compat.patch
diff --git a/pkgs/misc/dxvk/darwin-thread-primitives.patch b/pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch
index c008099407c5..c008099407c5 100644
--- a/pkgs/misc/dxvk/darwin-thread-primitives.patch
+++ b/pkgs/by-name/dx/dxvk_1/darwin-thread-primitives.patch
diff --git a/pkgs/by-name/dx/dxvk_1/package.nix b/pkgs/by-name/dx/dxvk_1/package.nix
new file mode 100644
index 000000000000..44a39eeaba25
--- /dev/null
+++ b/pkgs/by-name/dx/dxvk_1/package.nix
@@ -0,0 +1,57 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, glslang
+, meson
+, ninja
+, windows
+, pkgsBuildHost
+, enableMoltenVKCompat ? false
+}:
+
+let
+  isCross = stdenv.hostPlatform != stdenv.targetPlatform;
+in
+stdenv.mkDerivation (finalAttrs:  {
+  pname = "dxvk";
+  version = "1.10.3";
+
+  src = fetchFromGitHub {
+    owner = "doitsujin";
+    repo = "dxvk";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-T93ZylxzJGprrP+j6axZwl2d3hJowMCUOKNjIyNzkmE=";
+  };
+
+  # These patches are required when using DXVK with Wine on Darwin.
+  patches = lib.optionals enableMoltenVKCompat [
+    # Patch DXVK to work with MoltenVK even though it doesn’t support some required features.
+    # Some games work poorly (particularly Unreal Engine 4 games), but others work pretty well.
+    ./darwin-dxvk-compat.patch
+    # Use synchronization primitives from the C++ standard library to avoid deadlocks on Darwin.
+    # See: https://www.reddit.com/r/macgaming/comments/t8liua/comment/hzsuce9/
+    ./darwin-thread-primitives.patch
+  ];
+
+  nativeBuildInputs = [ glslang meson ninja ];
+  buildInputs = [ windows.pthreads ];
+
+  mesonFlags =
+    let
+      arch = if stdenv.is32bit then "32" else "64";
+    in
+    [
+      "--buildtype" "release"
+      "--prefix" "${placeholder "out"}"
+    ]
+    ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ];
+
+  meta = {
+    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
+    homepage = "https://github.com/doitsujin/dxvk";
+    changelog = "https://github.com/doitsujin/dxvk/releases";
+    maintainers = [ lib.maintainers.reckenrode ];
+    license = lib.licenses.zlib;
+    platforms = lib.platforms.windows;
+  };
+})
diff --git a/pkgs/by-name/dx/dxvk_2/package.nix b/pkgs/by-name/dx/dxvk_2/package.nix
new file mode 100644
index 000000000000..e1fa64ffee05
--- /dev/null
+++ b/pkgs/by-name/dx/dxvk_2/package.nix
@@ -0,0 +1,77 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkgsBuildHost
+, glslang
+, meson
+, ninja
+, windows
+, spirv-headers
+, vulkan-headers
+, SDL2
+, glfw
+, gitUpdater
+, sdl2Support ? true
+, glfwSupport ? false
+}:
+
+# SDL2 and GLFW support are mutually exclusive.
+assert !sdl2Support || !glfwSupport;
+
+let
+  isCross = stdenv.hostPlatform != stdenv.targetPlatform;
+  isWindows = stdenv.hostPlatform.uname.system == "Windows";
+in
+stdenv.mkDerivation (finalAttrs:  {
+  pname = "dxvk";
+  version = "2.3";
+
+  src = fetchFromGitHub {
+    owner = "doitsujin";
+    repo = "dxvk";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-RU+B0XfphD5HHW/vSzqHLUaGS3E31d5sOLp3lMmrCB8=";
+    fetchSubmodules = true; # Needed for the DirectX headers and libdisplay-info
+  };
+
+  postPatch = ''
+    substituteInPlace "subprojects/libdisplay-info/tool/gen-search-table.py" \
+      --replace "/usr/bin/env python3" "${lib.getBin pkgsBuildHost.python3}/bin/python3"
+  '';
+
+  nativeBuildInputs = [ glslang meson ninja ];
+  buildInputs = [ spirv-headers vulkan-headers ]
+    ++ lib.optionals (!isWindows && sdl2Support) [ SDL2 ]
+    ++ lib.optionals (!isWindows && glfwSupport) [ glfw ]
+    ++ lib.optionals isWindows [ windows.pthreads ];
+
+  # Build with the Vulkan SDK in nixpkgs.
+  preConfigure = ''
+    rm -rf include/spirv/include include/vulkan/include
+    mkdir -p include/spirv/include include/vulkan/include
+  '';
+
+  mesonFlags =
+    let
+      arch = if stdenv.is32bit then "32" else "64";
+    in
+    [
+      "--buildtype" "release"
+      "--prefix" "${placeholder "out"}"
+    ]
+    ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ]
+    ++ lib.optional glfwSupport "-Ddxvk_native_wsi=glfw";
+
+  doCheck = !isCross;
+
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
+
+  meta = {
+    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
+    homepage = "https://github.com/doitsujin/dxvk";
+    changelog = "https://github.com/doitsujin/dxvk/releases";
+    maintainers = [ lib.maintainers.reckenrode ];
+    license = lib.licenses.zlib;
+    platforms = lib.platforms.windows ++ lib.platforms.linux;
+  };
+})
diff --git a/pkgs/by-name/gb/gbar/package.nix b/pkgs/by-name/gb/gbar/package.nix
new file mode 100644
index 000000000000..faa930e9aee8
--- /dev/null
+++ b/pkgs/by-name/gb/gbar/package.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, cmake
+, pkg-config
+, libdbusmenu-gtk3
+, gtk-layer-shell
+, stb
+, wayland-protocols
+, wayland-scanner
+, bluez
+, gtk3
+, libpulseaudio
+, wayland
+}:
+
+stdenv.mkDerivation {
+  pname = "gbar";
+  version = "unstable-2023-09-21";
+
+  src = fetchFromGitHub {
+    owner = "scorpion-26";
+    repo = "gBar";
+    rev = "96485f408efe411f281fa27dceb6d86399ec7804";
+    hash = "sha256-4zPvo0JBQOV1qn2X2iI8/JWYEQjFf9sDEICIWSCeaWk=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    wayland
+    wayland-protocols
+    wayland-scanner
+    bluez
+    gtk3
+    gtk-layer-shell
+    libpulseaudio
+    stb
+    libdbusmenu-gtk3
+  ];
+
+  meta = with lib; {
+    description = "Blazingly fast status bar written with GTK";
+    homepage = "https://github.com/scorpion-26/gBar";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ocfox ];
+    mainProgram = "gBar";
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/po/poethepoet/package.nix b/pkgs/by-name/po/poethepoet/package.nix
index 7505fb4531d5..be4dc7159a3e 100644
--- a/pkgs/by-name/po/poethepoet/package.nix
+++ b/pkgs/by-name/po/poethepoet/package.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "poethepoet";
-  version = "0.24.0";
+  version = "0.24.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nat-n";
     repo = "poethepoet";
     rev = "v${version}";
-    hash = "sha256-fW457R8DvkHdgNcPatEf1nJNjMYTmliiRHrYyAAoZuo=";
+    hash = "sha256-cIIMwQF0jqGQhNyX2qDBeKZlUNvdC6sBTv5LCxk8MMQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/web-apps/searxng/default.nix b/pkgs/by-name/se/searxng/package.nix
index 37fd2317bb7c..db5c9f6b3419 100644
--- a/pkgs/servers/web-apps/searxng/default.nix
+++ b/pkgs/by-name/se/searxng/package.nix
@@ -3,15 +3,15 @@
 , fetchFromGitHub
 }:
 
-python3.pkgs.buildPythonApplication rec {
+python3.pkgs.toPythonModule (python3.pkgs.buildPythonApplication rec {
   pname = "searxng";
-  version = "unstable-2023-07-19";
+  version = "unstable-2023-10-01";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "a446dea1bb492eac417de9a900fae7cdf94aeec0";
-    sha256 = "sha256-iZDaKCkDlp3O3IixWdXVykNRIxas+irG0dWAOU4wycI=";
+    rev = "d56b31d67473e0970bc457469b0cbec2e35f8b10";
+    hash = "sha256-/lMjL2dl7UVYRjafFKmV3XsIH6QehUWCozCuBuxFgpQ=";
   };
 
   postPatch = ''
@@ -73,6 +73,6 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/searxng/searxng";
     description = "A fork of Searx, a privacy-respecting, hackable metasearch engine";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ SuperSandro2000 ];
+    maintainers = with maintainers; [ SuperSandro2000 _999eagle ];
   };
-}
+})
diff --git a/pkgs/by-name/ui/uiua/package.nix b/pkgs/by-name/ui/uiua/package.nix
index ab065fcf1303..e4c8fb1c0486 100644
--- a/pkgs/by-name/ui/uiua/package.nix
+++ b/pkgs/by-name/ui/uiua/package.nix
@@ -6,20 +6,24 @@
 , audioSupport ? true
 , darwin
 , alsa-lib
+
+# passthru.tests.run
+, runCommand
+, uiua
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "uiua";
-  version = "0.0.16";
+  version = "0.0.17";
 
   src = fetchFromGitHub {
     owner = "uiua-lang";
     repo = "uiua";
     rev = "refs/tags/${version}";
-    hash = "sha256-CMuCl4idoO5qIpXdkXBbglsZQBWVT8w9azbn2rRxviA=";
+    hash = "sha256-vZo3JKvvlL//4P+EqcsDXyamAMnCBARSF/H6OJTayF4=";
   };
 
-  cargoHash = "sha256-BLP9OGTnksM9NscfhtVWxE0/CqZgkqqlIMgRclCzEzs=";
+  cargoHash = "sha256-AkBcvFz7mrYUNTokcfoSXwWpw7SupI0+52GL4QXUu24=";
 
   nativeBuildInputs = lib.optionals stdenv.isDarwin [
     rustPlatform.bindgenHook
@@ -37,6 +41,12 @@ rustPlatform.buildRustPackage rec {
 
   buildFeatures = lib.optional audioSupport "audio";
 
+  passthru.tests.run = runCommand "uiua-test-run" {nativeBuildInputs = [uiua];} ''
+    uiua init;
+    diff -U3 --color=auto <(uiua run main.ua) <(echo '"Hello, World!"')
+    touch $out;
+  '';
+
   meta = with lib; {
     description = "A stack-oriented array programming language with a focus on simplicity, beauty, and tacit code";
     longDescription = ''
diff --git a/pkgs/data/fonts/iosevka/default.nix b/pkgs/data/fonts/iosevka/default.nix
index 0fa8bdb8f818..8630b13db7ac 100644
--- a/pkgs/data/fonts/iosevka/default.nix
+++ b/pkgs/data/fonts/iosevka/default.nix
@@ -55,16 +55,16 @@ assert (extraParameters != null) -> set != null;
 
 buildNpmPackage rec {
   pname = if set != null then "iosevka-${set}" else "iosevka";
-  version = "27.1.0";
+  version = "27.2.0";
 
   src = fetchFromGitHub {
     owner = "be5invis";
     repo = "iosevka";
     rev = "v${version}";
-    hash = "sha256-KXF+ePMEwEUh0fs0cOELRmxOp9hHibDLfRdbffLcZDs=";
+    hash = "sha256-jRUwXnsYzM4BH+tEM6xuoB3/MFqbnR0deT3Slgkemvs=";
   };
 
-  npmDepsHash = "sha256-NfR7OUVguMZVmeumf8oRaQK28G42zy6p6K+Hx4e1Kgw=";
+  npmDepsHash = "sha256-6ikjJScy6iL8lZ9eE2JBz7+egRCNli4XC9hnEalX408=";
 
   nativeBuildInputs = [
     remarshal
diff --git a/pkgs/development/compilers/openjdk/21.nix b/pkgs/development/compilers/openjdk/21.nix
new file mode 100644
index 000000000000..623ac281acf7
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/21.nix
@@ -0,0 +1,188 @@
+{ stdenv, lib, fetchurl, fetchpatch, fetchFromGitHub, bash, pkg-config, autoconf, cpio
+, file, which, unzip, zip, perl, cups, freetype, alsa-lib, libjpeg, giflib
+, libpng, zlib, lcms2, libX11, libICE, libXrender, libXext, libXt, libXtst
+, libXi, libXinerama, libXcursor, libXrandr, fontconfig, openjdk21-bootstrap
+, ensureNewerSourcesForZipFilesHook
+, setJavaClassPath
+# TODO(@sternenseemann): gtk3 fails to evaluate in pkgsCross.ghcjs.buildPackages
+# which should be fixable, this is a no-rebuild workaround for GHC.
+, headless ? stdenv.targetPlatform.isGhcjs
+, enableJavaFX ? false, openjfx
+, enableGnome2 ? true, gtk3, gnome_vfs, glib, GConf
+}:
+
+let
+  version = {
+    feature = "21";
+    interim = "";
+    build = "35";
+  };
+
+  # when building a headless jdk, also bootstrap it with a headless jdk
+  openjdk-bootstrap = openjdk21-bootstrap.override { gtkSupport = !headless; };
+
+  openjdk = stdenv.mkDerivation {
+    pname = "openjdk" + lib.optionalString headless "-headless";
+    version = "${version.feature}${version.interim}+${version.build}";
+
+    src = fetchFromGitHub {
+      owner = "openjdk";
+      repo = "jdk${version.feature}u";
+      rev = "jdk-${version.feature}${version.interim}+${version.build}";
+      hash = "sha256-fA8nRWBuTL87S8mwapmNfCPPQoI2aKHjbHJ6PDN3khs=";
+    };
+
+    nativeBuildInputs = [ pkg-config autoconf unzip ensureNewerSourcesForZipFilesHook ];
+    buildInputs = [
+      cpio file which zip perl zlib cups freetype alsa-lib libjpeg giflib
+      libpng zlib lcms2 libX11 libICE libXrender libXext libXtst libXt libXtst
+      libXi libXinerama libXcursor libXrandr fontconfig openjdk-bootstrap
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      gtk3 gnome_vfs GConf glib
+    ];
+
+    patches = [
+      ./fix-java-home-jdk21.patch
+      ./read-truststore-from-env-jdk10.patch
+      ./currency-date-range-jdk10.patch
+      ./increase-javadoc-heap-jdk13.patch
+      ./ignore-LegalNoticeFilePlugin-jdk18.patch
+
+      # -Wformat etc. are stricter in newer gccs, per
+      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79677
+      # so grab the work-around from
+      # https://src.fedoraproject.org/rpms/java-openjdk/pull-request/24
+      (fetchurl {
+        url = "https://src.fedoraproject.org/rpms/java-openjdk/raw/06c001c7d87f2e9fe4fedeef2d993bcd5d7afa2a/f/rh1673833-remove_removal_of_wformat_during_test_compilation.patch";
+        sha256 = "082lmc30x64x583vqq00c8y0wqih3y4r0mp1c4bqq36l22qv6b6r";
+      })
+
+      # Fix build for gnumake-4.4.1:
+      #   https://github.com/openjdk/jdk/pull/12992
+      (fetchpatch {
+        name = "gnumake-4.4.1";
+        url = "https://github.com/openjdk/jdk/commit/9341d135b855cc208d48e47d30cd90aafa354c36.patch";
+        hash = "sha256-Qcm3ZmGCOYLZcskNjj7DYR85R4v07vYvvavrVOYL8vg=";
+      })
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      ./swing-use-gtk-jdk13.patch
+    ];
+
+    postPatch = ''
+      chmod +x configure
+      patchShebangs --build configure
+    '';
+
+    # JDK's build system attempts to specifically detect
+    # and special-case WSL, and we don't want it to do that,
+    # so pass the correct platform names explicitly
+    configurePlatforms = ["build" "host"];
+
+    configureFlags = [
+      "--with-boot-jdk=${openjdk-bootstrap.home}"
+      "--with-version-build=${version.build}"
+      "--with-version-opt=nixos"
+      "--with-version-pre="
+      "--enable-unlimited-crypto"
+      "--with-native-debug-symbols=internal"
+      "--with-libjpeg=system"
+      "--with-giflib=system"
+      "--with-libpng=system"
+      "--with-zlib=system"
+      "--with-lcms=system"
+      "--with-stdc++lib=dynamic"
+    ] ++ lib.optional stdenv.isx86_64 "--with-jvm-features=zgc"
+      ++ lib.optional headless "--enable-headless-only"
+      ++ lib.optional (!headless && enableJavaFX) "--with-import-modules=${openjfx}";
+
+    separateDebugInfo = true;
+
+    env.NIX_CFLAGS_COMPILE = "-Wno-error";
+
+    NIX_LDFLAGS = toString (lib.optionals (!headless) [
+      "-lfontconfig" "-lcups" "-lXinerama" "-lXrandr" "-lmagic"
+    ] ++ lib.optionals (!headless && enableGnome2) [
+      "-lgtk-3" "-lgio-2.0" "-lgnomevfs-2" "-lgconf-2"
+    ]);
+
+    # -j flag is explicitly rejected by the build system:
+    #     Error: 'make -jN' is not supported, use 'make JOBS=N'
+    # Note: it does not make build sequential. Build system
+    # still runs in parallel.
+    enableParallelBuilding = false;
+
+    buildFlags = [ "images" ];
+
+    installPhase = ''
+      mkdir -p $out/lib
+
+      mv build/*/images/jdk $out/lib/openjdk
+
+      # Remove some broken manpages.
+      rm -rf $out/lib/openjdk/man/ja*
+
+      # Mirror some stuff in top-level.
+      mkdir -p $out/share
+      ln -s $out/lib/openjdk/include $out/include
+      ln -s $out/lib/openjdk/man $out/share/man
+
+      # IDEs use the provided src.zip to navigate the Java codebase (https://github.com/NixOS/nixpkgs/pull/95081)
+      ln -s $out/lib/openjdk/lib/src.zip $out/lib/src.zip
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/linux/*_md.h $out/include/
+
+      # Remove crap from the installation.
+      rm -rf $out/lib/openjdk/demo
+      ${lib.optionalString headless ''
+        rm $out/lib/openjdk/lib/{libjsound,libfontmanager}.so
+      ''}
+
+      ln -s $out/lib/openjdk/bin $out/bin
+    '';
+
+    preFixup = ''
+      # Propagate the setJavaClassPath setup hook so that any package
+      # that depends on the JDK has $CLASSPATH set up properly.
+      mkdir -p $out/nix-support
+      #TODO or printWords?  cf https://github.com/NixOS/nixpkgs/pull/27427#issuecomment-317293040
+      echo -n "${setJavaClassPath}" > $out/nix-support/propagated-build-inputs
+
+      # Set JAVA_HOME automatically.
+      mkdir -p $out/nix-support
+      cat <<EOF > $out/nix-support/setup-hook
+      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out/lib/openjdk; fi
+      EOF
+    '';
+
+    postFixup = ''
+      # Build the set of output library directories to rpath against
+      LIBDIRS=""
+      for output in $(getAllOutputNames); do
+        if [ "$output" = debug ]; then continue; fi
+        LIBDIRS="$(find $(eval echo \$$output) -name \*.so\* -exec dirname {} \+ | sort -u | tr '\n' ':'):$LIBDIRS"
+      done
+      # Add the local library paths to remove dependencies on the bootstrap
+      for output in $(getAllOutputNames); do
+        if [ "$output" = debug ]; then continue; fi
+        OUTPUTDIR=$(eval echo \$$output)
+        BINLIBS=$(find $OUTPUTDIR/bin/ -type f; find $OUTPUTDIR -name \*.so\*)
+        echo "$BINLIBS" | while read i; do
+          patchelf --set-rpath "$LIBDIRS:$(patchelf --print-rpath "$i")" "$i" || true
+          patchelf --shrink-rpath "$i" || true
+        done
+      done
+    '';
+
+    disallowedReferences = [ openjdk-bootstrap ];
+
+    pos = builtins.unsafeGetAttrPos "feature" version;
+    meta = import ./meta.nix lib version.feature;
+
+    passthru = {
+      architecture = "";
+      home = "${openjdk}/lib/openjdk";
+      inherit gtk3;
+    };
+  };
+in openjdk
diff --git a/pkgs/development/compilers/openjdk/darwin/11.nix b/pkgs/development/compilers/openjdk/darwin/11.nix
deleted file mode 100644
index 48de37679385..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/11.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-11-lts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = "11.66.15";
-      jdkVersion = "11.0.20";
-      hash =
-        if enableJavaFX then "sha256-pVgCJkgYTlFeL7nkkMWLeJ/J8ELhgvWb7gzf3erZP7Y="
-        else "sha256-vKqxHP5Yb651g8bZ0xHGQ4Q1T7JjjrmgEuykw/Gh2f0=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = "11.66.15";
-      jdkVersion = "11.0.20";
-      hash =
-        if enableJavaFX then "sha256-VoZo34SCUU+HHnTl6iLe0QBC+4VDkPP14N98oqSg9EQ="
-        else "sha256-djK8Kfikt9SSuT87x1p7YWMIlNuF0TZFYDWrKiTTiIU=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JDK so that
-      # any package that depends on the JDK has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-11.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/16.nix b/pkgs/development/compilers/openjdk/darwin/16.nix
deleted file mode 100644
index 657b3eeafeab..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/16.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-16-sts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = "16.32.15";
-      jdkVersion = "16.0.2";
-      hash =
-        if enableJavaFX then "sha256-6URaSBNHQWLauO//kCuKXb4Z7AqyshWnoeJEyVRKgaY="
-        else "sha256-NXgBj/KixTknaCYbo3B+rOo11NImH5CDUIU0LhTCtMo=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = "16.32.15";
-      jdkVersion = "16.0.2";
-      hash =
-        if enableJavaFX then "sha256-QuyhIAxUY3Vv1adGihW+LIsXtpDX2taCmFsMFj9o5vs="
-        else "sha256-3bUfDcLLyahLeURFAgLAVapBZHvqtam8GHbWTA6MQog=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JDK so that
-      # any package that depends on the JDK has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/17.nix b/pkgs/development/compilers/openjdk/darwin/17.nix
deleted file mode 100644
index 49b23b440e23..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/17.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-17-lts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = "17.44.53";
-      jdkVersion = "17.0.8.1";
-      hash =
-        if enableJavaFX then "sha256-9U0XYZRA+LZTQ7eHrT5SWhgcxv43ajC9n9Tj3qPPLWA="
-        else "sha256-ZART6K/o/+D7Tc60U1+1DbnCg8ZGZe67C6aLGeZfSx8=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = "17.44.53";
-      jdkVersion = "17.0.8.1";
-      hash =
-        if enableJavaFX then "sha256-udYW3nOADclWqVcVtS9dgjSY0w6xf2nsBpLzPmQCYlI="
-        else "sha256-MUsEVo7Arps2ugPJy9Qq3J4SZfdGeJI7GSl9ZuuE3Mo=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JDK so that
-      # any package that depends on the JDK has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/18.nix b/pkgs/development/compilers/openjdk/darwin/18.nix
deleted file mode 100644
index 30a61b4b1faa..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/18.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-18-sts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = "18.32.13";
-      jdkVersion = "18.0.2.1";
-      hash =
-        if enableJavaFX then "sha256-ZVZ1gbpJwxTduq2PPOCKqbSl+shq2NTFgqG++OXvFcg="
-        else "sha256-uHPcyOgxUdTgzmIVRp/awtwve9zSt+1TZNef7DUuoRg=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = "18.32.13";
-      jdkVersion = "18.0.2.1";
-      hash =
-        if enableJavaFX then "sha256-tNx0a1u9iamcN9VFOJ3eqDEA6C204dtIBJZvuAH2Vjk="
-        else "sha256-jAZDgxtWMq/74yKAxA69oOU0C9nXvKG5MjmZLsK04iM=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JDK so that
-      # any package that depends on the JDK has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/19.nix b/pkgs/development/compilers/openjdk/darwin/19.nix
deleted file mode 100644
index a087de1b5727..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/19.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-19-sts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13";
-      jdkVersion = "19.0.2";
-      hash =
-        if enableJavaFX then "sha256-AwLcIId0gH5D6DUU8CgJ3qnKVQm28LXYirBeXBHwPYE="
-        else "sha256-KARXWumsY+OcqpEOV2EL9SsPni1nGSipjRji/Mn2KsE=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13";
-      jdkVersion = "19.0.2";
-      hash =
-        if enableJavaFX then "sha256-/R2rrcBr64qPGEtvhruXBhPwnvurt/hiR1ICzZAdYxE="
-        else "sha256-F30FjZaLL756X/Xs6xjNwW9jds4pEATxoxOeeLL7Y5E=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JDK so that
-      # any package that depends on the JDK has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/20.nix b/pkgs/development/compilers/openjdk/darwin/20.nix
deleted file mode 100644
index b0c62aafd78d..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/20.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-19-sts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = "20.32.11";
-      jdkVersion = "20.0.2";
-      hash =
-        if enableJavaFX then "sha256-hyxQAivZAXtqMebe30L+EYa7p+TdSdKNYj7Rl/ZwRNQ="
-        else "sha256-Ev9KG6DvuBnsZrOguLsO1KQzudHCBcJNwKh45Inpnfo=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = "20.32.11";
-      jdkVersion = "20.0.2";
-      hash =
-        if enableJavaFX then "sha256-iPQzZS4CwaoqT8cSzg4kWCT1OyGBSJLq+NETcbucLo4="
-        else "sha256-15uNZ6uMfSASV3QU2q2oA/jBk2PCHOfSjn1GY7/7qIY=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JDK so that
-      # any package that depends on the JDK has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/8.nix b/pkgs/development/compilers/openjdk/darwin/8.nix
deleted file mode 100644
index 9bfd9a8db1a3..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/8.nix
+++ /dev/null
@@ -1,96 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, unzip
-, setJavaClassPath
-, enableJavaFX ? false
-}:
-let
-  # Details from https://www.azul.com/downloads/?version=java-8-lts&os=macos&package=jdk
-  # Note that the latest build may differ by platform
-  dist = {
-    x86_64-darwin = {
-      arch = "x64";
-      zuluVersion = "8.72.0.17";
-      jdkVersion = "8.0.382";
-      hash =
-        if enableJavaFX then "sha256-/x8FqygivzddXsOwIV8aj/u+LPXMmokgu97vLAVEv80="
-        else "sha256-3dTPIPGUeT6nb3gncNvEa4VTRyQIBJpp8oZadrT2ToE=";
-    };
-
-    aarch64-darwin = {
-      arch = "aarch64";
-      zuluVersion = "8.72.0.17";
-      jdkVersion = "8.0.382";
-      hash =
-        if enableJavaFX then "sha256-FkQ+0MzSZWUzc/HmiDVZEHGOrdKAVCdK5pm9wXXzzaU="
-        else "sha256-rN5AI4xAWppE4kJlzMod0JmGyHdHjTXYtx8/wOW6CFk=";
-    };
-  }."${stdenv.hostPlatform.system}";
-
-  jce-policies = fetchurl {
-    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
-    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
-  };
-
-  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
-
-  jdk = stdenv.mkDerivation rec {
-    # @hlolli: Later version than 1.8.0_202 throws error when building jvmci.
-    # dyld: lazy symbol binding failed: Symbol not found: _JVM_BeforeHalt
-    # Referenced from: ../libjava.dylib Expected in: .../libjvm.dylib
-    pname = "zulu${dist.zuluVersion}-${javaPackage}";
-    version = dist.jdkVersion;
-
-    src = fetchurl {
-      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-macosx_${dist.arch}.tar.gz";
-      inherit (dist) hash;
-      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
-    };
-
-    nativeBuildInputs = [ unzip ];
-
-    installPhase = ''
-      mkdir -p $out
-      mv * $out
-
-      unzip ${jce-policies}
-      mv -f ZuluJCEPolicies/*.jar $out/jre/lib/security/
-
-      # jni.h expects jni_md.h to be in the header search path.
-      ln -s $out/include/darwin/*_md.h $out/include/
-
-      if [ -f $out/LICENSE ]; then
-        install -D $out/LICENSE $out/share/zulu/LICENSE
-        rm $out/LICENSE
-      fi
-    '';
-
-    preFixup = ''
-      # Propagate the setJavaClassPath setup hook from the JRE so that
-      # any package that depends on the JRE has $CLASSPATH set up
-      # properly.
-      mkdir -p $out/nix-support
-      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-      # Set JAVA_HOME automatically.
-      cat <<EOF >> $out/nix-support/setup-hook
-      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-      EOF
-    '';
-
-    # fixupPhase is moving the man to share/man which breaks it because it's a
-    # relative symlink.
-    postFixup = ''
-      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
-    '';
-
-    passthru = {
-      jre = jdk;
-      home = jdk;
-    };
-
-    meta = import ./meta.nix lib version;
-  };
-in
-jdk
diff --git a/pkgs/development/compilers/openjdk/darwin/meta.nix b/pkgs/development/compilers/openjdk/darwin/meta.nix
deleted file mode 100644
index f07a7f38a45b..000000000000
--- a/pkgs/development/compilers/openjdk/darwin/meta.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-lib: version: (removeAttrs (import ../meta.nix lib version) [ "maintainers" ]) // {
-  platforms = lib.platforms.darwin;
-  homepage = "https://www.azul.com/";
-}
diff --git a/pkgs/development/compilers/openjdk/fix-java-home-jdk21.patch b/pkgs/development/compilers/openjdk/fix-java-home-jdk21.patch
new file mode 100644
index 000000000000..ede201ed1ada
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/fix-java-home-jdk21.patch
@@ -0,0 +1,14 @@
+--- a/src/hotspot/os/linux/os_linux.cpp	2017-07-04 23:09:02.533972226 -0400
++++ b/src/hotspot/os/linux/os_linux.cpp	2017-07-04 23:07:52.118338845 -0400
+@@ -2270,8 +2270,5 @@
+   assert(ret, "cannot locate libjvm");
+   char *rp = nullptr;
+   if (ret && dli_fname[0] != '\0') {
+-    rp = os::Posix::realpath(dli_fname, buf, buflen);
+-  }
+-  if (rp == nullptr) {
+-    return;
++    snprintf(buf, buflen, "%s", dli_fname);
+   }
+
+   if (Arguments::sun_java_launcher_is_altjvm()) {
diff --git a/pkgs/development/compilers/openjdk/openjfx/21.nix b/pkgs/development/compilers/openjdk/openjfx/21.nix
new file mode 100644
index 000000000000..4b178736854d
--- /dev/null
+++ b/pkgs/development/compilers/openjdk/openjfx/21.nix
@@ -0,0 +1,113 @@
+{ stdenv, lib, fetchFromGitHub, fetchpatch, writeText, openjdk17_headless
+, openjdk19_headless, gradle_7, pkg-config, perl, cmake, gperf, gtk2, gtk3, libXtst
+, libXxf86vm, glib, alsa-lib, ffmpeg_4, python3, ruby, icu68
+, withMedia ? true
+, withWebKit ? false
+}:
+
+let
+  major = "21";
+  update = "";
+  build = "-ga";
+  repover = "${major}${update}${build}";
+  gradle_ = (gradle_7.override {
+    # note: gradle does not yet support running on 19
+    java = openjdk17_headless;
+  });
+
+  makePackage = args: stdenv.mkDerivation ({
+    version = "${major}${update}${build}";
+
+    src = fetchFromGitHub {
+      owner = "openjdk";
+      repo = "jfx";
+      rev = repover;
+      hash = "sha256-deNAGfnA6gwcAa64l0AWdkX+vJd3ZOfIgAifSl+/m+s=";
+    };
+
+    buildInputs = [ gtk2 gtk3 libXtst libXxf86vm glib alsa-lib ffmpeg_4 icu68 ];
+    nativeBuildInputs = [ gradle_ perl pkg-config cmake gperf python3 ruby ];
+
+    dontUseCmakeConfigure = true;
+
+    config = writeText "gradle.properties" (''
+      CONF = Release
+      JDK_HOME = ${openjdk19_headless.home}
+    '' + args.gradleProperties or "");
+
+    buildPhase = ''
+      runHook preBuild
+
+      export GRADLE_USER_HOME=$(mktemp -d)
+      ln -s $config gradle.properties
+      export NIX_CFLAGS_COMPILE="$(pkg-config --cflags glib-2.0) $NIX_CFLAGS_COMPILE"
+      gradle --no-daemon $gradleFlags sdk
+
+      runHook postBuild
+    '';
+  } // args);
+
+  # Fake build to pre-download deps into fixed-output derivation.
+  # We run nearly full build because I see no other way to download everything that's needed.
+  # Anyone who knows a better way?
+  deps = makePackage {
+    pname = "openjfx-deps";
+
+    # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
+    installPhase = ''
+      find $GRADLE_USER_HOME -type f -regex '.*/modules.*\.\(jar\|pom\)' \
+        | perl -pe 's#(.*/([^/]+)/([^/]+)/([^/]+)/[0-9a-f]{30,40}/([^/\s]+))$# ($x = $2) =~ tr|\.|/|; "install -Dm444 $1 \$out/$x/$3/$4/$5" #e' \
+        | sh
+      rm -rf $out/tmp
+    '';
+
+    outputHashAlgo = "sha256";
+    outputHashMode = "recursive";
+    # suspiciously the same as for openjfx 17 ...
+    # could they really not have changed any of their dependencies?
+    # or did we miss changing another upstream hash when copy-pasting?
+    outputHash = "sha256-dV7/U5GpFxhI13smZ587C6cVE4FRNPY0zexZkYK4Yqo=";
+  };
+
+in makePackage {
+  pname = "openjfx-modular-sdk";
+
+  gradleProperties = ''
+    COMPILE_MEDIA = ${lib.boolToString withMedia}
+    COMPILE_WEBKIT = ${lib.boolToString withWebKit}
+  '';
+
+  preBuild = ''
+    swtJar="$(find ${deps} -name org.eclipse.swt\*.jar)"
+    substituteInPlace build.gradle \
+      --replace 'mavenCentral()' 'mavenLocal(); maven { url uri("${deps}") }' \
+      --replace 'name: SWT_FILE_NAME' "files('$swtJar')"
+  '';
+
+  installPhase = ''
+    cp -r build/modular-sdk $out
+  '';
+
+  stripDebugList = [ "." ];
+
+  postFixup = ''
+    # Remove references to bootstrap.
+    export openjdkOutPath='${openjdk19_headless.outPath}'
+    find "$out" -name \*.so | while read lib; do
+      new_refs="$(patchelf --print-rpath "$lib" | perl -pe 's,:?\Q$ENV{openjdkOutPath}\E[^:]*,,')"
+      patchelf --set-rpath "$new_refs" "$lib"
+    done
+  '';
+
+  disallowedReferences = [ openjdk17_headless openjdk19_headless ];
+
+  passthru.deps = deps;
+
+  meta = with lib; {
+    homepage = "https://openjdk.org/projects/openjfx/";
+    license = licenses.gpl2Classpath;
+    description = "The next-generation Java client toolkit";
+    maintainers = with maintainers; [ abbradar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/compilers/zulu/11.nix b/pkgs/development/compilers/zulu/11.nix
new file mode 100644
index 000000000000..9272dc75c3e8
--- /dev/null
+++ b/pkgs/development/compilers/zulu/11.nix
@@ -0,0 +1,42 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-11-lts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-linux = {
+      zuluVersion = "11.66.15";
+      jdkVersion = "11.0.20";
+      hash =
+        if enableJavaFX then "sha256-CjWtqnirEDrpF61WXm/Yi372IzhpTpi+/AfEqirlZnc="
+        else "sha256-o0tAT4egimEUizjhQW2DcYnh33oEDZSedDYz2vRpWjw=";
+    };
+
+    aarch64-linux = {
+      zuluVersion = "11.66.15";
+      jdkVersion = "11.0.20";
+      hash =
+        if enableJavaFX then throw "JavaFX is not available for aarch64-linux"
+        else "sha256-VBdEOfKz/d0R8QSMOX/nu0XUydZtRS1oibAT0E0hxN4=";
+    };
+
+    x86_64-darwin = {
+      zuluVersion = "11.66.15";
+      jdkVersion = "11.0.20";
+      hash =
+        if enableJavaFX then "sha256-pVgCJkgYTlFeL7nkkMWLeJ/J8ELhgvWb7gzf3erZP7Y="
+        else "sha256-vKqxHP5Yb651g8bZ0xHGQ4Q1T7JjjrmgEuykw/Gh2f0=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "11.66.15";
+      jdkVersion = "11.0.20";
+      hash =
+        if enableJavaFX then "sha256-VoZo34SCUU+HHnTl6iLe0QBC+4VDkPP14N98oqSg9EQ="
+        else "sha256-djK8Kfikt9SSuT87x1p7YWMIlNuF0TZFYDWrKiTTiIU=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/16.nix b/pkgs/development/compilers/zulu/16.nix
new file mode 100644
index 000000000000..941a7e8d64f9
--- /dev/null
+++ b/pkgs/development/compilers/zulu/16.nix
@@ -0,0 +1,26 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-16-sts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-darwin = {
+      zuluVersion = "16.32.15";
+      jdkVersion = "16.0.2";
+      hash =
+        if enableJavaFX then "sha256-6URaSBNHQWLauO//kCuKXb4Z7AqyshWnoeJEyVRKgaY="
+        else "sha256-NXgBj/KixTknaCYbo3B+rOo11NImH5CDUIU0LhTCtMo=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "16.32.15";
+      jdkVersion = "16.0.2";
+      hash =
+        if enableJavaFX then "sha256-QuyhIAxUY3Vv1adGihW+LIsXtpDX2taCmFsMFj9o5vs="
+        else "sha256-3bUfDcLLyahLeURFAgLAVapBZHvqtam8GHbWTA6MQog=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/17.nix b/pkgs/development/compilers/zulu/17.nix
new file mode 100644
index 000000000000..fcfe39af10ac
--- /dev/null
+++ b/pkgs/development/compilers/zulu/17.nix
@@ -0,0 +1,42 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-17-lts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-linux = {
+      zuluVersion = "17.44.53";
+      jdkVersion = "17.0.8.1";
+      hash =
+        if enableJavaFX then "sha256-R6VJcSjpKFfsO3l32+8s+wlcuAVoXcSsW5Dg2M/hjpI="
+        else "sha256-uUgvIwShpophTfrN3PKVaacvD6wy5sdPg9wbmhV7g0A=";
+    };
+
+    aarch64-linux = {
+      zuluVersion = "17.44.53";
+      jdkVersion = "17.0.8.1";
+      hash =
+        if enableJavaFX then throw "JavaFX is not available for aarch64-linux"
+        else "sha256-ZTHO9h5BbVp7aRVVyM8r3/aJIBuKAB/0WrZ0AGK0QxM=";
+    };
+
+    x86_64-darwin = {
+      zuluVersion = "17.44.53";
+      jdkVersion = "17.0.8.1";
+      hash =
+        if enableJavaFX then "sha256-9U0XYZRA+LZTQ7eHrT5SWhgcxv43ajC9n9Tj3qPPLWA="
+        else "sha256-ZART6K/o/+D7Tc60U1+1DbnCg8ZGZe67C6aLGeZfSx8=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "17.44.53";
+      jdkVersion = "17.0.8.1";
+      hash =
+        if enableJavaFX then "sha256-udYW3nOADclWqVcVtS9dgjSY0w6xf2nsBpLzPmQCYlI="
+        else "sha256-MUsEVo7Arps2ugPJy9Qq3J4SZfdGeJI7GSl9ZuuE3Mo=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/18.nix b/pkgs/development/compilers/zulu/18.nix
new file mode 100644
index 000000000000..cbee8ac6e5bd
--- /dev/null
+++ b/pkgs/development/compilers/zulu/18.nix
@@ -0,0 +1,26 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-18-sts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-darwin = {
+      zuluVersion = "18.32.13";
+      jdkVersion = "18.0.2.1";
+      hash =
+        if enableJavaFX then "sha256-ZVZ1gbpJwxTduq2PPOCKqbSl+shq2NTFgqG++OXvFcg="
+        else "sha256-uHPcyOgxUdTgzmIVRp/awtwve9zSt+1TZNef7DUuoRg=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "18.32.13";
+      jdkVersion = "18.0.2.1";
+      hash =
+        if enableJavaFX then "sha256-tNx0a1u9iamcN9VFOJ3eqDEA6C204dtIBJZvuAH2Vjk="
+        else "sha256-jAZDgxtWMq/74yKAxA69oOU0C9nXvKG5MjmZLsK04iM=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/19.nix b/pkgs/development/compilers/zulu/19.nix
new file mode 100644
index 000000000000..28dbf5887616
--- /dev/null
+++ b/pkgs/development/compilers/zulu/19.nix
@@ -0,0 +1,26 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-19-sts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-darwin = {
+      zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13";
+      jdkVersion = "19.0.2";
+      hash =
+        if enableJavaFX then "sha256-AwLcIId0gH5D6DUU8CgJ3qnKVQm28LXYirBeXBHwPYE="
+        else "sha256-KARXWumsY+OcqpEOV2EL9SsPni1nGSipjRji/Mn2KsE=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = if enableJavaFX then "19.32.15" else "19.32.13";
+      jdkVersion = "19.0.2";
+      hash =
+        if enableJavaFX then "sha256-/R2rrcBr64qPGEtvhruXBhPwnvurt/hiR1ICzZAdYxE="
+        else "sha256-F30FjZaLL756X/Xs6xjNwW9jds4pEATxoxOeeLL7Y5E=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/20.nix b/pkgs/development/compilers/zulu/20.nix
new file mode 100644
index 000000000000..38083a881f51
--- /dev/null
+++ b/pkgs/development/compilers/zulu/20.nix
@@ -0,0 +1,26 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-20-sts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-darwin = {
+      zuluVersion = "20.32.11";
+      jdkVersion = "20.0.2";
+      hash =
+        if enableJavaFX then "sha256-hyxQAivZAXtqMebe30L+EYa7p+TdSdKNYj7Rl/ZwRNQ="
+        else "sha256-Ev9KG6DvuBnsZrOguLsO1KQzudHCBcJNwKh45Inpnfo=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "20.32.11";
+      jdkVersion = "20.0.2";
+      hash =
+        if enableJavaFX then "sha256-iPQzZS4CwaoqT8cSzg4kWCT1OyGBSJLq+NETcbucLo4="
+        else "sha256-15uNZ6uMfSASV3QU2q2oA/jBk2PCHOfSjn1GY7/7qIY=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/21.nix b/pkgs/development/compilers/zulu/21.nix
new file mode 100644
index 000000000000..09b420d533a2
--- /dev/null
+++ b/pkgs/development/compilers/zulu/21.nix
@@ -0,0 +1,42 @@
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-21-lts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-linux = {
+      zuluVersion = "21.28.85";
+      jdkVersion = "21.0.0";
+      hash =
+        if enableJavaFX then "sha256-ew/tgSdkrPdk1CTguk9nyl30w7se+YZYqyqOTaeketk="
+        else "sha256-DA6t+9xHp8pkrqtRucBh9xtuTSXS2HZ0US6bY4fp46Y=";
+    };
+
+    aarch64-linux = {
+      zuluVersion = "21.28.85";
+      jdkVersion = "21.0.0";
+      hash =
+        if enableJavaFX then throw "JavaFX is not available for aarch64-linux"
+        else "sha256-H7ZLgDbF1GPYq1mvBr9bawBoEeYBLjsOtrzPV/HFWDU=";
+    };
+
+    x86_64-darwin = {
+      zuluVersion = "21.28.85";
+      jdkVersion = "21.0.0";
+      hash =
+        if enableJavaFX then "sha256-QrgEpLaNGc2aNFF38z2ckUTCpweKnuALYLOWATZFJPA="
+        else "sha256-ljm4fbWG0MifepiSrkf0IeRCxkuXuuvf8xeI++IyZb0=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "21.28.85";
+      jdkVersion = "21.0.0";
+      hash =
+        if enableJavaFX then "sha256-PUVB/R1K1dLTi1FsOYIvcI76M6EYYeMG1Bm+oMno//Y="
+        else "sha256-KnqZo+omPb2NMqZ9Hm42O6iyXGRcgm9eFnoCu6+v8fo=";
+    };
+  };
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/8.nix b/pkgs/development/compilers/zulu/8.nix
index ed4d529ebd51..91aaaf06cd13 100644
--- a/pkgs/development/compilers/zulu/8.nix
+++ b/pkgs/development/compilers/zulu/8.nix
@@ -1,120 +1,34 @@
-{ stdenv
-, lib
-, fetchurl
-, autoPatchelfHook
-, unzip
-, makeWrapper
-, setJavaClassPath
-, zulu
-# minimum dependencies
-, alsa-lib
-, fontconfig
-, freetype
-, xorg
-# runtime dependencies
-, cups
-# runtime dependencies for GTK+ Look and Feel
-, gtkSupport ? stdenv.isLinux
-, cairo
-, glib
-, gtk3
-}:
-
-let
-  version = "8.68.0.19";
-  openjdk = "8.0.362";
-
-  sha256_linux = "sha256-jNty0iJoXG+sp7v2fGCrwZWCSZfQ4tkYe8ERixQMKL0=";
-  sha256_darwin = "sha256-3/P3puM6a7tCHP5eZM6IzbdPrqnhY1dTa7QWss9M08M=";
-
-  platform = if stdenv.isDarwin then "macosx" else "linux";
-  hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
-  extension = if stdenv.isDarwin then "zip" else "tar.gz";
-
-  runtimeDependencies = [
-    cups
-  ] ++ lib.optionals gtkSupport [
-    cairo glib gtk3
-  ];
-  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
-
-in stdenv.mkDerivation {
-  inherit version openjdk platform hash extension;
-
-  pname = "zulu";
-
-  src = fetchurl {
-    url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_x64.${extension}";
-    sha256 = hash;
-  };
-
-  buildInputs = lib.optionals stdenv.isLinux [
-    alsa-lib # libasound.so wanted by lib/libjsound.so
-    fontconfig
-    freetype
-    stdenv.cc.cc # libstdc++.so.6
-    xorg.libX11
-    xorg.libXext
-    xorg.libXi
-    xorg.libXrender
-    xorg.libXtst
-  ];
-
-  nativeBuildInputs = [
-    makeWrapper
-  ] ++ lib.optionals stdenv.isLinux [
-    autoPatchelfHook
-  ] ++ lib.optionals stdenv.isDarwin [
-    unzip
-  ];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-    cp -r ./* "$out/"
-  '' + lib.optionalString stdenv.isLinux ''
-    # jni.h expects jni_md.h to be in the header search path.
-    ln -s $out/include/linux/*_md.h $out/include/
-  '' + ''
-    mkdir -p $out/nix-support
-    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-    # Set JAVA_HOME automatically.
-    cat <<EOF >> $out/nix-support/setup-hook
-    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-    EOF
-  '' + lib.optionalString stdenv.isLinux ''
-    # We cannot use -exec since wrapProgram is a function but not a command.
-    for bin in $( find "$out" -executable -type f ); do
-      if patchelf --print-interpreter "$bin" &> /dev/null; then
-        wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
-      fi
-    done
-  '' + ''
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    find "$out" -name libfontmanager.so -exec \
-      patchelf --add-needed libfontconfig.so {} \;
-  '';
-
-  passthru = {
-    home = zulu;
-  };
-
-  meta = with lib; {
-    homepage = "https://www.azul.com/products/zulu/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode binaryNativeCode ];
-    license = licenses.gpl2;
-    description = "Certified builds of OpenJDK";
-    longDescription = ''
-      Certified builds of OpenJDK that can be deployed across multiple
-      operating systems, containers, hypervisors and Cloud platforms.
-    '';
-    maintainers = with maintainers; [ ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    mainProgram = "java";
+{ callPackage
+, enableJavaFX ? false
+, ...
+}@args:
+
+callPackage ./common.nix ({
+  # Details from https://www.azul.com/downloads/?version=java-8-lts&package=jdk
+  # Note that the latest build may differ by platform
+  dists = {
+    x86_64-linux = {
+      zuluVersion = "8.72.0.17";
+      jdkVersion = "8.0.382";
+      hash =
+        if enableJavaFX then "sha256-mIPCFESU7hy2naYur2jvFBtVn/LZQRcFiyiG61buCYs="
+        else "sha256-exWlbyrgBb7aD4daJps9qtFP+hKWkwbMdFR4OFslupY=";
+    };
+
+    x86_64-darwin = {
+      zuluVersion = "8.72.0.17";
+      jdkVersion = "8.0.382";
+      hash =
+        if enableJavaFX then "sha256-/x8FqygivzddXsOwIV8aj/u+LPXMmokgu97vLAVEv80="
+        else "sha256-3dTPIPGUeT6nb3gncNvEa4VTRyQIBJpp8oZadrT2ToE=";
+    };
+
+    aarch64-darwin = {
+      zuluVersion = "8.72.0.17";
+      jdkVersion = "8.0.382";
+      hash =
+        if enableJavaFX then "sha256-FkQ+0MzSZWUzc/HmiDVZEHGOrdKAVCdK5pm9wXXzzaU="
+        else "sha256-rN5AI4xAWppE4kJlzMod0JmGyHdHjTXYtx8/wOW6CFk=";
+    };
   };
-}
+} // builtins.removeAttrs args [ "callPackage" ])
diff --git a/pkgs/development/compilers/zulu/common.nix b/pkgs/development/compilers/zulu/common.nix
new file mode 100644
index 000000000000..d09555b00c9c
--- /dev/null
+++ b/pkgs/development/compilers/zulu/common.nix
@@ -0,0 +1,159 @@
+{ lib
+, stdenv
+, fetchurl
+, setJavaClassPath
+, enableJavaFX ? false
+, dists
+  # minimum dependencies
+, unzip
+, autoPatchelfHook
+, makeWrapper
+, alsa-lib
+, fontconfig
+, freetype
+, zlib
+, xorg
+  # runtime dependencies
+, cups
+  # runtime dependencies for GTK+ Look and Feel
+, gtkSupport ? stdenv.isLinux
+, cairo
+, glib
+, gtk3
+}:
+let
+  dist = dists.${stdenv.hostPlatform.system}
+    or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
+
+  arch = {
+    "aarch64" = "aarch64";
+    "x86_64" = "x64";
+  }.${stdenv.hostPlatform.parsed.cpu.name}
+    or (throw "Unsupported architecture: ${stdenv.hostPlatform.parsed.cpu.name}");
+
+  platform = {
+    "darwin" = "macosx";
+    "linux" = "linux";
+  }.${stdenv.hostPlatform.parsed.kernel.name}
+    or (throw "Unsupported platform: ${stdenv.hostPlatform.parsed.kernel.name}");
+
+  runtimeDependencies = [
+    cups
+  ] ++ lib.optionals gtkSupport [
+    cairo
+    glib
+    gtk3
+  ];
+
+  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
+
+  jce-policies = fetchurl {
+    url = "https://web.archive.org/web/20211126120343/http://cdn.azul.com/zcek/bin/ZuluJCEPolicies.zip";
+    hash = "sha256-gCGii4ysQbRPFCH9IQoKCCL8r4jWLS5wo1sv9iioZ1o=";
+  };
+
+  javaPackage = if enableJavaFX then "ca-fx-jdk" else "ca-jdk";
+
+  isJdk8 = lib.versions.major dist.jdkVersion == "8";
+
+  jdk = stdenv.mkDerivation rec {
+    pname = "zulu${dist.zuluVersion}-${javaPackage}";
+    version = dist.jdkVersion;
+
+    src = fetchurl {
+      url = "https://cdn.azul.com/zulu/bin/zulu${dist.zuluVersion}-${javaPackage}${dist.jdkVersion}-${platform}_${arch}.tar.gz";
+      inherit (dist) hash;
+      curlOpts = "-H Referer:https://www.azul.com/downloads/zulu/";
+    };
+
+    nativeBuildInputs = [
+      unzip
+    ] ++ lib.optionals stdenv.isLinux [
+      autoPatchelfHook
+      makeWrapper
+    ];
+
+    buildInputs = lib.optionals stdenv.isLinux [
+      alsa-lib # libasound.so wanted by lib/libjsound.so
+      fontconfig
+      freetype
+      stdenv.cc.cc # libstdc++.so.6
+      xorg.libX11
+      xorg.libXext
+      xorg.libXi
+      xorg.libXrender
+      xorg.libXtst
+      zlib
+    ];
+
+    installPhase = ''
+      mkdir -p $out
+      mv * $out
+
+      unzip ${jce-policies}
+      mv -f ZuluJCEPolicies/*.jar $out/${lib.optionalString isJdk8 "jre/"}lib/security/
+
+      # jni.h expects jni_md.h to be in the header search path.
+      ln -s $out/include/${stdenv.hostPlatform.parsed.kernel.name}/*_md.h $out/include/
+
+      if [ -f $out/LICENSE ]; then
+        install -D $out/LICENSE $out/share/zulu/LICENSE
+        rm $out/LICENSE
+      fi
+    '';
+
+    preFixup = ''
+      # Propagate the setJavaClassPath setup hook from the ${if isJdk8 then "JRE" else "JDK"} so that
+      # any package that depends on the ${if isJdk8 then "JRE" else "JDK"} has $CLASSPATH set up
+      # properly.
+      mkdir -p $out/nix-support
+      printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+      # Set JAVA_HOME automatically.
+      cat <<EOF >> $out/nix-support/setup-hook
+      if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+      EOF
+    '' + lib.optionalString stdenv.isLinux ''
+      # We cannot use -exec since wrapProgram is a function but not a command.
+      #
+      # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it
+      # breaks building OpenJDK (#114495).
+      for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
+        if patchelf --print-interpreter "$bin" &> /dev/null; then
+          wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
+        fi
+      done
+    ''
+    # FIXME: move all of the above to installPhase.
+    + lib.optionalString stdenv.isLinux ''
+      find "$out" -name libfontmanager.so -exec \
+        patchelf --add-needed libfontconfig.so {} \;
+    '';
+
+    # fixupPhase is moving the man to share/man which breaks it because it's a
+    # relative symlink.
+    postFixup = lib.optionalString stdenv.isDarwin ''
+      ln -nsf ../zulu-${lib.versions.major version}.jdk/Contents/Home/man $out/share/man
+    '';
+
+    passthru = (lib.optionalAttrs isJdk8 {
+      jre = jdk;
+    }) // {
+      home = jdk;
+    };
+
+    meta = (import ../openjdk/meta.nix lib version) // {
+      description = "Certified builds of OpenJDK";
+      longDescription = ''
+        Certified builds of OpenJDK that can be deployed across multiple
+        operating systems, containers, hypervisors and Cloud platforms.
+      '';
+      homepage = "https://www.azul.com/products/zulu/";
+      mainProgram = "java";
+      maintainers = [ ];
+      platforms = builtins.attrNames dists;
+      sourceProvenance = with lib.sourceTypes; [ binaryBytecode binaryNativeCode ];
+    };
+  };
+in
+jdk
diff --git a/pkgs/development/compilers/zulu/default.nix b/pkgs/development/compilers/zulu/default.nix
deleted file mode 100644
index 045aa4e5abae..000000000000
--- a/pkgs/development/compilers/zulu/default.nix
+++ /dev/null
@@ -1,125 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, autoPatchelfHook
-, unzip
-, makeWrapper
-, setJavaClassPath
-, zulu
-# minimum dependencies
-, alsa-lib
-, fontconfig
-, freetype
-, zlib
-, xorg
-# runtime dependencies
-, cups
-# runtime dependencies for GTK+ Look and Feel
-, gtkSupport ? stdenv.isLinux
-, cairo
-, glib
-, gtk3
-}:
-
-let
-  version = "11.62.17";
-  openjdk = "11.0.18";
-
-  sha256_x64_linux = "sha256-b65oEbDzrrsUw+WaX94USBz/QS74yiMiGZPxqzMmmqs=";
-  sha256_x64_darwin = "sha256-nRRWTWiog8bRblmmPIPE5YibA34St3ZrJpZN91qEDUg=";
-  sha256_aarch64_darwin = "sha256-TBTrBxOfGo6MV+Md49P3sDfqVG1e+NraqfVbw9WTppk=";
-
-  platform = if stdenv.isDarwin then "macosx" else "linux";
-  hash = if stdenv.isAarch64 && stdenv.isDarwin then sha256_aarch64_darwin else if stdenv.isDarwin then sha256_x64_darwin else sha256_x64_linux;
-  extension = if stdenv.isDarwin then "zip" else "tar.gz";
-  architecture = if stdenv.isAarch64 then "aarch64" else "x64";
-
-  runtimeDependencies = [
-    cups
-  ] ++ lib.optionals gtkSupport [
-    cairo glib gtk3
-  ];
-  runtimeLibraryPath = lib.makeLibraryPath runtimeDependencies;
-
-in stdenv.mkDerivation {
-  inherit version openjdk platform hash extension;
-
-  pname = "zulu";
-
-  src = fetchurl {
-    url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_${architecture}.${extension}";
-    sha256 = hash;
-  };
-
-  buildInputs = lib.optionals stdenv.isLinux [
-    alsa-lib # libasound.so wanted by lib/libjsound.so
-    fontconfig
-    freetype
-    stdenv.cc.cc # libstdc++.so.6
-    xorg.libX11
-    xorg.libXext
-    xorg.libXi
-    xorg.libXrender
-    xorg.libXtst
-    zlib
-  ];
-
-  nativeBuildInputs = [
-    makeWrapper
-  ] ++ lib.optionals stdenv.isLinux [
-    autoPatchelfHook
-  ] ++ lib.optionals stdenv.isDarwin [
-    unzip
-  ];
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out
-    cp -r ./* "$out/"
-  '' + lib.optionalString stdenv.isLinux ''
-    # jni.h expects jni_md.h to be in the header search path.
-    ln -s $out/include/linux/*_md.h $out/include/
-  '' + ''
-    mkdir -p $out/nix-support
-    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
-
-    # Set JAVA_HOME automatically.
-    cat <<EOF >> $out/nix-support/setup-hook
-    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
-    EOF
-  '' + lib.optionalString stdenv.isLinux ''
-    # We cannot use -exec since wrapProgram is a function but not a command.
-    #
-    # jspawnhelper is executed from JVM, so it doesn't need to wrap it, and it
-    # breaks building OpenJDK (#114495).
-    for bin in $( find "$out" -executable -type f -not -name jspawnhelper ); do
-      wrapProgram "$bin" --prefix LD_LIBRARY_PATH : "${runtimeLibraryPath}"
-    done
-  '' + ''
-    runHook postInstall
-  '';
-
-  preFixup = ''
-    find "$out" -name libfontmanager.so -exec \
-      patchelf --add-needed libfontconfig.so {} \;
-  '';
-
-  passthru = {
-    home = zulu;
-  };
-
-  meta = with lib; {
-    homepage = "https://www.azul.com/products/zulu/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode binaryNativeCode ];
-    license = licenses.gpl2;
-    description = "Certified builds of OpenJDK";
-    longDescription = ''
-      Certified builds of OpenJDK that can be deployed across multiple
-      operating systems, containers, hypervisors and Cloud platforms.
-    '';
-    maintainers = with maintainers; [ ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
-    mainProgram = "java";
-  };
-}
diff --git a/pkgs/development/interpreters/hugs/default.nix b/pkgs/development/interpreters/hugs/default.nix
index ed02b41b7668..d8ee5726ef33 100644
--- a/pkgs/development/interpreters/hugs/default.nix
+++ b/pkgs/development/interpreters/hugs/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
+    mainProgram = "hugs";
     homepage = "https://www.haskell.org/hugs";
     description = "Haskell interpreter";
     maintainers = with maintainers; [ joachifm ];
diff --git a/pkgs/development/interpreters/luau/default.nix b/pkgs/development/interpreters/luau/default.nix
index 153f56d8633d..93aece038980 100644
--- a/pkgs/development/interpreters/luau/default.nix
+++ b/pkgs/development/interpreters/luau/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luau";
-  version = "0.596";
+  version = "0.598";
 
   src = fetchFromGitHub {
     owner = "Roblox";
     repo = "luau";
     rev = version;
-    hash = "sha256-25SMgBW5Uqh0dGM8A9qCTcUPPP7wzH8wCGk4w+0wp/c=";
+    hash = "sha256-B3ggPrhvq1kYmclmuomi6PhXIwN8GKBzbKRLIjH0pac=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libaec/default.nix b/pkgs/development/libraries/libaec/default.nix
index 58d7150a2346..e9e5c19f777c 100644
--- a/pkgs/development/libraries/libaec/default.nix
+++ b/pkgs/development/libraries/libaec/default.nix
@@ -4,20 +4,22 @@
 
 stdenv.mkDerivation rec {
   pname = "libaec";
-  version  = "1.0.6";
+  version  = "1.1.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.dkrz.de";
     owner = "k202009";
     repo = "libaec";
     rev = "v${version}";
-    sha256 = "sha256-N0YwJuVqv8jv/uSbpn/eJBTMhlHDcY/74+anH2vNvpI=";
+    sha256 = "sha256-5nsJrbJVqjXNb3exYgEvSGUq8ccy9HG+gwmBZvjnupc=";
   };
 
   nativeBuildInputs = [
     cmake
   ];
 
+  doCheck = true;
+
   meta = with lib; {
     homepage = "https://gitlab.dkrz.de/k202009/libaec";
     description = "Adaptive Entropy Coding library";
diff --git a/pkgs/development/libraries/liblinphone/backport-cpp17.patch b/pkgs/development/libraries/liblinphone/backport-cpp17.patch
new file mode 100644
index 000000000000..d9eb75fa2768
--- /dev/null
+++ b/pkgs/development/libraries/liblinphone/backport-cpp17.patch
@@ -0,0 +1,98 @@
+From 9ece6e77dcf6545c3b8104068302c6243e3a5e88 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micka=C3=ABl=20Turnel?=
+ <mickael.turnel@belledonne-communications.com>
+Date: Wed, 1 Mar 2023 09:14:53 +0100
+Subject: [PATCH] Set c++ version 17 and fix compilation errors
+
+Backported-by: Lorenz Brun <lorenz@brun.one>
+
+---
+ CMakeLists.txt                           |  2 +-
+ daemon/daemon.cc                         |  2 +-
+ libxsd/xsd/cxx/config.hxx                |  2 +-
+ src/conference/session/streams-group.cpp | 10 +++++-----
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 475ff16a8..a771e4595 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -92,7 +92,7 @@ cmake_dependent_option(ENABLE_QRCODE "Enable QRCode support" YES "ENABLE_VIDEO"
+ # * DISABLE_BC_PACKAGE_SEARCH: skip find_package() for every BC package (bctoolbox, ortp, etc.)
+ # * DISABLE_SOCI_PACKAGE_SEARCH: skip find_package() for Soci.
+ 
+-set(CMAKE_CXX_STANDARD 14)
++set(CMAKE_CXX_STANDARD 17)
+ set(CMAKE_CXX_EXTENSIONS NO)
+ 
+ if(NOT CMAKE_BUILD_TYPE)
+diff --git a/daemon/daemon.cc b/daemon/daemon.cc
+index 197fc22ef..fd09edb26 100644
+--- a/daemon/daemon.cc
++++ b/daemon/daemon.cc
+@@ -628,7 +628,7 @@ void Daemon::execCommand(const string &command) {
+ 	ist.get(argsbuf);
+ 	string args = argsbuf.str();
+ 	if (!args.empty() && (args[0] == ' ')) args.erase(0, 1);
+-	list<DaemonCommand*>::iterator it = find_if(mCommands.begin(), mCommands.end(), bind2nd(mem_fun(&DaemonCommand::matches), name));
++	list<DaemonCommand*>::iterator it = find_if(mCommands.begin(), mCommands.end(), [&name](const DaemonCommand *dc) { return dc->matches(name); });
+ 	if (it != mCommands.end()) {
+ 		ms_mutex_lock(&mMutex);
+ 		(*it)->exec(this, args);
+diff --git a/libxsd/xsd/cxx/config.hxx b/libxsd/xsd/cxx/config.hxx
+index 076b107f5..385841731 100644
+--- a/libxsd/xsd/cxx/config.hxx
++++ b/libxsd/xsd/cxx/config.hxx
+@@ -19,7 +19,7 @@
+ #  endif
+ #else
+ #  if defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
+-#    ifdef __GNUC__
++#    if defined(__GNUC__) && !defined(__clang__)
+ #      if (__GNUC__ == 4 && __GNUC_MINOR__ >= 6) || __GNUC__ > 4
+ #        define XSD_CXX11_NULLPTR
+ #      endif
+diff --git a/src/conference/session/streams-group.cpp b/src/conference/session/streams-group.cpp
+index bff739dda..84277a6b7 100644
+--- a/src/conference/session/streams-group.cpp
++++ b/src/conference/session/streams-group.cpp
+@@ -447,11 +447,11 @@ float StreamsGroup::computeOverallQuality(_functor func){
+ }
+ 
+ float StreamsGroup::getAverageQuality(){
+-	return computeOverallQuality(mem_fun(&Stream::getAverageQuality));
++	return computeOverallQuality(mem_fn(&Stream::getAverageQuality));
+ }
+ 
+ float StreamsGroup::getCurrentQuality(){
+-	return computeOverallQuality(mem_fun(&Stream::getCurrentQuality));
++	return computeOverallQuality(mem_fn(&Stream::getCurrentQuality));
+ }
+ 
+ int StreamsGroup::getAvpfRrInterval()const{
+@@ -481,11 +481,11 @@ bool StreamsGroup::avpfEnabled() const{
+ }
+ 
+ void StreamsGroup::refreshSockets(){
+-	forEach<Stream>(mem_fun(&Stream::refreshSockets));
++	forEach<Stream>(mem_fn(&Stream::refreshSockets));
+ }
+ 
+ void StreamsGroup::computeAndReportBandwidth(){
+-	forEach<Stream>(mem_fun(&Stream::updateBandwidthReports));
++	forEach<Stream>(mem_fn(&Stream::updateBandwidthReports));
+ 	
+ 	if (!bctbx_log_level_enabled(BCTBX_LOG_DOMAIN, BCTBX_LOG_MESSAGE)) return;
+ 	
+@@ -540,7 +540,7 @@ void StreamsGroup::finish(){
+ 	mIceService->finish(); // finish ICE first, as it has actions on the streams.
+ 	for (auto & ss : mSharedServices) ss.second->checkDestroy();
+ 	mSharedServices.clear();
+-	forEach<Stream>(mem_fun(&Stream::finish));
++	forEach<Stream>(mem_fn(&Stream::finish));
+ 	mFinished = true;
+ }
+ 
+-- 
+2.41.0
+
diff --git a/pkgs/development/libraries/liblinphone/default.nix b/pkgs/development/libraries/liblinphone/default.nix
index 53c56fa36385..c4b792e673fc 100644
--- a/pkgs/development/libraries/liblinphone/default.nix
+++ b/pkgs/development/libraries/liblinphone/default.nix
@@ -13,6 +13,7 @@
 , sqlite
 , stdenv
 , xercesc
+, zxing-cpp
 }:
 
 stdenv.mkDerivation rec {
@@ -28,6 +29,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-kQZePMa7MTaSJLEObM8khfSFYLqhlgTcVyKfTPLwKYU=";
   };
 
+  patches = [
+    # zxing-cpp 2.0+ requires C++ 17
+    # Manual backport as upstream ran formatters in the meantime
+    ./backport-cpp17.patch
+  ];
+
   postPatch = ''
     substituteInPlace src/CMakeLists.txt \
       --replace "jsoncpp_object" "jsoncpp" \
@@ -38,7 +45,6 @@ stdenv.mkDerivation rec {
     "-DENABLE_STATIC=NO" # Do not build static libraries
     "-DENABLE_UNIT_TESTS=NO" # Do not build test executables
     "-DENABLE_STRICT=NO" # Do not build with -Werror
-    "-DENABLE_QRCODE=NO" # Does not build with zxing-cpp 2
   ];
 
   buildInputs = [
@@ -56,6 +62,7 @@ stdenv.mkDerivation rec {
     (python3.withPackages (ps: [ ps.pystache ps.six ]))
     sqlite
     xercesc
+    zxing-cpp
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/the-foundation/default.nix b/pkgs/development/libraries/the-foundation/default.nix
index 69d88f508dac..9b0fe4de9e44 100644
--- a/pkgs/development/libraries/the-foundation/default.nix
+++ b/pkgs/development/libraries/the-foundation/default.nix
@@ -12,14 +12,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "the-foundation";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitea {
     domain = "git.skyjake.fi";
     owner = "skyjake";
     repo = "the_Foundation";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-GOvdnmutSQcsNT57tADLSkJAUX0JDVsualII+y21a+I=";
+    hash = "sha256-6bEd8KzOfBse5sQ2zp+cZtEAu8xIl3GqrpxSZ7h/edI=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/development/ocaml-modules/pprint/default.nix b/pkgs/development/ocaml-modules/pprint/default.nix
index e0c5c269767b..1ffb3e4e2d66 100644
--- a/pkgs/development/ocaml-modules/pprint/default.nix
+++ b/pkgs/development/ocaml-modules/pprint/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "pprint";
-  version = "20220103";
+  version = "20230830";
 
   useDune2 = true;
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner = "fpottier";
     repo = pname;
     rev = version;
-    sha256 = "sha256:09y6nwnjldifm47406q1r9987njlk77g4ifqg6qs54dckhr64vax";
+    sha256 = "sha256-avf71vAgCL1MU8O7Q3FNN3wEdCDtbNZP0ipETnn8AqA=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ircrobots/default.nix b/pkgs/development/python-modules/ircrobots/default.nix
index 51de0c11bfe2..ef09e41c2361 100644
--- a/pkgs/development/python-modules/ircrobots/default.nix
+++ b/pkgs/development/python-modules/ircrobots/default.nix
@@ -13,21 +13,19 @@
 
 buildPythonPackage rec {
   pname = "ircrobots";
-  version = "0.4.6";
+  version = "0.6.6";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jesopo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+BrS1+ZkgwT/qvqD0PwRZi2LF+31biS738SzKH1dy7w=";
+    hash = "sha256-mIh3tERwHtGH9eA0AT8Lcnwp1Wn9lQhKkUjuZcOXO/c=";
   };
 
   postPatch = ''
     # too specific pins https://github.com/jesopo/ircrobots/issues/3
     sed -iE 's/anyio.*/anyio/' requirements.txt
-    sed -iE 's/ircstates.*/ircstates/' requirements.txt
-    sed -iE 's/async_timeout.*/async_timeout/' requirements.txt
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ircstates/default.nix b/pkgs/development/python-modules/ircstates/default.nix
index 49ddb8c0614e..4ccaea6e6f24 100644
--- a/pkgs/development/python-modules/ircstates/default.nix
+++ b/pkgs/development/python-modules/ircstates/default.nix
@@ -4,19 +4,20 @@
 , pythonOlder
 , irctokens
 , pendulum
+, freezegun
 , python
 }:
 
 buildPythonPackage rec {
   pname = "ircstates";
-  version = "0.11.8";
+  version = "0.12.1";
   disabled = pythonOlder "3.6";  # f-strings
 
   src = fetchFromGitHub {
     owner = "jesopo";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0scxqcgby4vzh2q937r0wy2mb46aghjf47q3z6fp6di1b6hlj7zh";
+    hash = "sha256-F9yOY3YBacyoUzNTvPs7pxp6yNx08tiq1jWQKhGiagc=";
   };
 
   propagatedBuildInputs = [
@@ -24,6 +25,10 @@ buildPythonPackage rec {
     pendulum
   ];
 
+  nativeCheckInputs = [
+    freezegun
+  ];
+
   checkPhase = ''
     ${python.interpreter} -m unittest test
   '';
diff --git a/pkgs/development/python-modules/irctokens/default.nix b/pkgs/development/python-modules/irctokens/default.nix
index 9f40a88dd352..b2b35a7a926b 100644
--- a/pkgs/development/python-modules/irctokens/default.nix
+++ b/pkgs/development/python-modules/irctokens/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "irctokens";
-  version = "2.0.1";
+  version = "2.0.2";
   disabled = pythonOlder "3.6";  # f-strings
 
   src = fetchFromGitHub {
     owner = "jesopo";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-FgcLngS11U9eBNV/8jllwdrm89tCmthA1sUaFDovk6U=";
+    hash = "sha256-Y9NBqxGUkt48hnXxsmfydHkJmWWb+sRrElV8C7l9bpw=";
   };
 
   nativeCheckInputs = [ pyyaml ];
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index 4f8235bac578..9453ba1c0c6c 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -27,7 +27,7 @@ let
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.4.17";
+  version = "0.4.18";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     repo = pname;
     # google/jax contains tags for jax and jaxlib. Only use jax tags!
     rev = "refs/tags/${pname}-v${version}";
-    hash = "sha256-Lxi/lBBq7VlsT6CgnXPFcwbRU+T8630rBdm693E2jok=";
+    hash = "sha256-rDvWHa8jYCAA9iKbWaFUXdE/9L7AepFiNzmqOcc/090=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index ae1b10aab0f5..68a1275246aa 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -39,7 +39,7 @@ in
 assert cudaSupport -> lib.versionAtLeast cudatoolkit.version "11.1" && lib.versionAtLeast cudnn.version "8.2" && stdenv.isLinux;
 
 let
-  version = "0.4.17";
+  version = "0.4.18";
 
   inherit (python) pythonVersion;
 
@@ -60,15 +60,15 @@ let
     {
       "x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
-        hash = "sha256-Fg/OaLgqeabFImUujdmhCqycANFZnLfhZmca2QmqE54=";
+        hash = "sha256-MpNomovvSVx4N6gsowOLksTyEgTK261vSXMGxYqlVOE=";
       };
       "aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
-        hash = "sha256-OSx3n5AsQ+Ggr0kVna/++bWvlSq6ABRj+Yz5WlnvF/8=";
+        hash = "sha256-if/5O5DQVHFdsLw9O1creZBx5j8ftE7fsWMMX1NjHP0=";
       };
       "x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
-        hash = "sha256-1L4axL8b4a4c2PX02kFKbQ3o3jbPLv/bV1jU1neJYHg=";
+        hash = "sha256-4NeHA/0SGdmHXyDGxpK7oJc7dE1meR4LPjzbIwxloqU=";
       };
     };
 
@@ -77,8 +77,8 @@ let
   # When upgrading, you can get these hashes from prefetch.sh. See
   # https://github.com/google/jax/issues/12879 as to why this specific URL is the correct index.
   gpuSrc = fetchurl {
-    url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp310-cp310-manylinux2014_x86_64.whl";
-    hash = "sha256-Ctdlr8mvlMcTnBSiyjEEvle5AGr+o1v6OI7XIqcTENM=";
+    url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl";
+    hash = "sha256-p6BNvhhRzVDQdpEoIRau5JovC+eDjlW3bXrahtsGvmI=";
   };
 
 in
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index 36b8f25ec555..35d56ff1a1eb 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -54,7 +54,7 @@ let
   inherit (cudaPackages) backendStdenv cudatoolkit cudaFlags cudnn nccl;
 
   pname = "jaxlib";
-  version = "0.4.17";
+  version = "0.4.18";
 
   meta = with lib; {
     description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
@@ -151,7 +151,7 @@ let
       repo = "jax";
       # google/jax contains tags for jax and jaxlib. Only use jaxlib tags!
       rev = "refs/tags/${pname}-v${version}";
-      hash = "sha256-Lxi/lBBq7VlsT6CgnXPFcwbRU+T8630rBdm693E2jok=";
+      hash = "sha256-rDvWHa8jYCAA9iKbWaFUXdE/9L7AepFiNzmqOcc/090=";
     };
 
     nativeBuildInputs = [
@@ -264,10 +264,10 @@ let
       ];
 
       sha256 = (if cudaSupport then {
-        x86_64-linux = "sha256-nRvvFAuP/9D8BWWVPjuZijVtk+F9IrBBHsNc5Daluy4=";
+        x86_64-linux = "sha256-0CfGWlwKsUFP1DHUN6+6wX3cHr5x3TE6NbqYlV5me1E=";
       } else {
-        x86_64-linux = "sha256-pPIJOELN62GqUuaKpcpaqHu7wbJHiZgtb2PVUPRr1Ek=";
-        aarch64-linux = "sha256-Q0PYZkOkUYUHVtSHZDlWitslDZbjNq6yRZv/ZkhTmyc=";
+        x86_64-linux = "sha256-sljmyIligXC7d9fdlpqR32xyMR0UslWs04gXJBD8FTA=";
+        aarch64-linux = "sha256-eJ4KIkHdcA2EVvyBoNum2cOPcHPFoBOtUTAGufO8FJA=";
       }).${stdenv.system} or (throw "jaxlib: unsupported system: ${stdenv.system}");
     };
 
diff --git a/pkgs/development/python-modules/jupyter-server/default.nix b/pkgs/development/python-modules/jupyter-server/default.nix
index 0c3d704711d1..fbb9f0cacd83 100644
--- a/pkgs/development/python-modules/jupyter-server/default.nix
+++ b/pkgs/development/python-modules/jupyter-server/default.nix
@@ -5,12 +5,10 @@
 , pythonOlder
 , hatch-jupyter-builder
 , hatchling
-, pandoc
 , pytestCheckHook
 , pytest-console-scripts
 , pytest-jupyter
 , pytest-timeout
-, pytest-tornasync
 , argon2-cffi
 , jinja2
 , tornado
@@ -102,7 +100,8 @@ buildPythonPackage rec {
     "test_authorized_requests"
     # Insufficient access privileges for operation
     "test_regression_is_hidden"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+  ] ++ lib.optionals stdenv.isLinux [
+    # Failed: DID NOT RAISE <class 'tornado.web.HTTPError'>
     "test_copy_big_dir"
   ];
 
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index 61022edb9f22..4edaa22bb16d 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "5.4";
+  version = "5.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fyLvgaYHmTh9OaWXkuenKmNTHCVYFln/FbN+5u2a9+8=";
+    hash = "sha256-yz6Q+Vt7ZuT9NaxuQQA+BH7U6Efaim7No6GJmnOQo1o=";
   };
 
   propagatedBuildInputs = [
@@ -37,10 +37,15 @@ buildPythonPackage rec {
     pytest
   '';
 
+  pythonImportsCheck = [
+    "pglast"
+    "pglast.parser"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/lelit/pglast";
     description = "PostgreSQL Languages AST and statements prettifier";
-    changelog = "https://github.com/lelit/pglast/raw/v${version}/CHANGES.rst";
+    changelog = "https://github.com/lelit/pglast/blob/v${version}/CHANGES.rst";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marsam ];
     mainProgram = "pgpp";
diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix
index 98e41acc392f..3120a5a844e9 100644
--- a/pkgs/development/python-modules/pymc/default.nix
+++ b/pkgs/development/python-modules/pymc/default.nix
@@ -14,16 +14,16 @@
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "5.8.1";
-  format = "setuptools";
+  version = "5.9.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "pymc-devs";
-    repo = pname;
+    repo = "pymc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GufQIVV8OXlsUmk/FQZhrJ84P28He5Qc3pz67nLhppU=";
+    hash = "sha256-iaX1+SHGAJ9V2Jv76as5BcL5DcxURwX3aGa+R9YVtXY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/python-hl7/default.nix b/pkgs/development/python-modules/python-hl7/default.nix
new file mode 100644
index 000000000000..98a73c8252ba
--- /dev/null
+++ b/pkgs/development/python-modules/python-hl7/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "python-hl7";
+  version = "0.4.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "johnpaulett";
+    repo = "python-hl7";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9uFdyL4+9KSWXflyOMOeUudZTv4NwYPa0ADNTmuVbqo=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "hl7" ];
+
+  meta = with lib; {
+    description = "A simple library for parsing messages of Health Level 7 (HL7) version 2.x into Python objects";
+    homepage = "https://python-hl7.readthedocs.org";
+    changelog = "https://python-hl7.readthedocs.io/en/latest/changelog.html";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/tools/analysis/flow/default.nix b/pkgs/development/tools/analysis/flow/default.nix
index 47b28f3b019c..b647eb851e12 100644
--- a/pkgs/development/tools/analysis/flow/default.nix
+++ b/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.217.2";
+  version = "0.218.0";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "flow";
     rev = "v${version}";
-    sha256 = "sha256-0Zu4uPxNDUUeyOLrjdQaCdiRbngtCtHx1qIqtLBmCdA=";
+    sha256 = "sha256-QmC1K2msiIN7bBwlrsQ8in3YGUoVqf2w21HbiLULWhM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/tools/apktool/default.nix b/pkgs/development/tools/apktool/default.nix
index 99ee4d101b29..01ec94b850a7 100644
--- a/pkgs/development/tools/apktool/default.nix
+++ b/pkgs/development/tools/apktool/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "apktool";
-  version = "2.8.1";
+  version = "2.9.0";
 
   src = fetchurl {
     urls = [
       "https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_${version}.jar"
       "https://github.com/iBotPeaches/Apktool/releases/download/v${version}/apktool_${version}.jar"
     ];
-    hash = "sha256-e0qOFwPiKNIG2ylkS3EUFofYoRG1WwObCLAt+kQ6sPk=";
+    hash = "sha256-5ez3WSl7hFvmSjpRRczDctuQWxWoAaIuocke4DxMemU=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index c0545a7d25e1..5a1a1508b42e 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.26.1";
+  version = "1.27.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-e00o3G66GCJyA3flqRa+J1yQVBVusBrEOJrL9viKtlM=";
+    hash = "sha256-QBU04/w7Z8yaTzDqhiVcxC8xEuDpDJs7rNRpOtwodGg=";
   };
 
-  vendorHash = "sha256-7RVYD0r3nqb0yLmKu9zzpQNiVDVBJGG1BiVb6J+VR9k=";
+  vendorHash = "sha256-4JSmn/TUojZjCQMZCgJic0y84VMP26J7uBybB5/BCoE=";
 
   patches = [
     # Skip a test that requires networking to be available to work.
diff --git a/pkgs/development/tools/darklua/default.nix b/pkgs/development/tools/darklua/default.nix
index 18fbafe3b555..d10ef137a378 100644
--- a/pkgs/development/tools/darklua/default.nix
+++ b/pkgs/development/tools/darklua/default.nix
@@ -1,20 +1,27 @@
 { lib
+, stdenv
+, darwin
 , rustPlatform
 , fetchFromGitHub
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "darklua";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "seaofvoices";
     repo = "darklua";
     rev = "v${version}";
-    hash = "sha256-lZKf+05+qpQe21tMclYYUB9QBI6lC0vhNtsM4O3Jde4=";
+    hash = "sha256-OgQOsc6upMJveUUJSGqvopsyoKs7ALd6pVYxCi5fmS8=";
   };
 
-  cargoHash = "sha256-NnMjvi1H3VQGtklzXKPnZX1dOq3kCSiW8MnSvymtZ68=";
+  cargoHash = "sha256-qq42K4cPrWu/92P4dpegZ/0Wv2ndCb5d5+DgEKzdhbw=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreServices
+  ];
+
 
   # error: linker `aarch64-linux-gnu-gcc` not found
   postPatch = ''
diff --git a/pkgs/development/tools/frugal/default.nix b/pkgs/development/tools/frugal/default.nix
index edc2d6e2c3ad..4ce0ab171898 100644
--- a/pkgs/development/tools/frugal/default.nix
+++ b/pkgs/development/tools/frugal/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "frugal";
-  version = "3.17.0";
+  version = "3.17.2";
 
   src = fetchFromGitHub {
     owner = "Workiva";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-r7/ZcqabSmpvhr3JKgCXaSD5378q2JOEmZyOfeLN3Nw=";
+    sha256 = "sha256-7+8wjWxePU3OrIf9SLYzu6jAaaeB3MUzZ/H6tdFn3ts=";
   };
 
   subPackages = [ "." ];
 
-  vendorHash = "sha256-2+7GQ54AHEF8ukvn/xUAD1eGESo8jO6TlRFPwlEvZ6A=";
+  vendorHash = "sha256-vES8WGaurEW5X9PX+ILN4XUGoSEtayq7UAes+1URKzg=";
 
   meta = with lib; {
     description = "Thrift improved";
diff --git a/pkgs/development/tools/fsautocomplete/default.nix b/pkgs/development/tools/fsautocomplete/default.nix
index 8b5d14779196..caba7da6411c 100644
--- a/pkgs/development/tools/fsautocomplete/default.nix
+++ b/pkgs/development/tools/fsautocomplete/default.nix
@@ -5,13 +5,13 @@ let
 in
 buildDotnetModule rec {
   pname = "fsautocomplete";
-  version = "0.64.0";
+  version = "0.64.1";
 
   src = fetchFromGitHub {
     owner = "fsharp";
     repo = "FsAutoComplete";
     rev = "v${version}";
-    sha256 = "sha256-C01CsGHRy0/FFEofEN8xLM/QgnMI8aq2tr4qkEbxlsQ=";
+    sha256 = "sha256-/1XJ09NKOlTjBLe3PvAceIIhk1AiSXenBOFjERKDZko=";
   };
 
   nugetDeps = ./deps.nix;
diff --git a/pkgs/development/tools/java/visualvm/default.nix b/pkgs/development/tools/java/visualvm/default.nix
index 6ea8e876a33e..04b74bc52570 100644
--- a/pkgs/development/tools/java/visualvm/default.nix
+++ b/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "2.1.6";
+  version = "2.1.7";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "sha256-RqQEeYMYpBlqla+VmrxOUNyrlIGVL4YjZadg2Gq+f8k=";
+    sha256 = "sha256-k9DnbLfpCQimRueHquDSuBDhn/w8ZyUKZzZ5o35YCNA=";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/development/tools/language-servers/ruff-lsp/default.nix b/pkgs/development/tools/language-servers/ruff-lsp/default.nix
index 0676305659d3..3740472e2c70 100644
--- a/pkgs/development/tools/language-servers/ruff-lsp/default.nix
+++ b/pkgs/development/tools/language-servers/ruff-lsp/default.nix
@@ -3,12 +3,12 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
-, fetchpatch
 , ruff
 , pygls
 , lsprotocol
 , hatchling
 , typing-extensions
+, packaging
 , pytestCheckHook
 , python-lsp-jsonrpc
 , pytest-asyncio
@@ -37,6 +37,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    packaging
     pygls
     lsprotocol
     typing-extensions
diff --git a/pkgs/development/tools/misc/fzf-make/default.nix b/pkgs/development/tools/misc/fzf-make/default.nix
index fdd13e3a2190..0ea3e9505e6a 100644
--- a/pkgs/development/tools/misc/fzf-make/default.nix
+++ b/pkgs/development/tools/misc/fzf-make/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fzf-make";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "kyu08";
     repo = "fzf-make";
     rev = "v${version}";
-    hash = "sha256-QxEYa8+sY7fQVvoXkUJOJkbumus2tYM6T1GmkJRnUHY=";
+    hash = "sha256-VDPkucvp12pdnJkUxSTfU73X9CMvP/UU1ypBnN0Jp80=";
   };
 
-  cargoHash = "sha256-EpFSZlzzoZ+Wzsvj5pSk5UhesbftcTFn6t1ZUOHdZsk=";
+  cargoHash = "sha256-mLbGV0hj571SiM1ZPiHnADYYICgP8ZfgnMTjo2npIgk=";
 
   nativeBuildInputs = [
     makeBinaryWrapper
diff --git a/pkgs/development/tools/misc/rsonpath/default.nix b/pkgs/development/tools/misc/rsonpath/default.nix
index 30f04fe95987..fc9b48793faf 100644
--- a/pkgs/development/tools/misc/rsonpath/default.nix
+++ b/pkgs/development/tools/misc/rsonpath/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rsonpath";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "v0ldek";
     repo = "rsonpath";
     rev = "v${version}";
-    hash = "sha256-3/xhYfo23aps3UjjUEcuLYg8JALfIpbCf6LO0F2IS20=";
+    hash = "sha256-gAoxWdczeaN4VqeQY0qJeLK8aABGhuwXf41QFKUxAG0=";
   };
 
-  cargoHash = "sha256-2HVPqSkQU90ZAFG0tPbysCVIkd433fpTtTO1y4+ZUTU=";
+  cargoHash = "sha256-UXPVqc4RNIFKx0f/BPCfkJxilioXbRZSAgqQv1MzK7k=";
 
   cargoBuildFlags = [ "-p=rsonpath" ];
   cargoTestFlags = cargoBuildFlags;
diff --git a/pkgs/development/tools/misc/runme/default.nix b/pkgs/development/tools/misc/runme/default.nix
index 00d3c115c3e2..b11573355aef 100644
--- a/pkgs/development/tools/misc/runme/default.nix
+++ b/pkgs/development/tools/misc/runme/default.nix
@@ -11,16 +11,16 @@
 
 buildGo121Module rec {
   pname = "runme";
-  version = "1.7.5";
+  version = "1.7.6";
 
   src = fetchFromGitHub {
     owner = "stateful";
     repo = "runme";
     rev = "v${version}";
-    hash = "sha256-cy4IUsCMh0sFpHLFce3DW4KAMYT2/BtvKBHKPpkCggQ=";
+    hash = "sha256-gYaC1ROvW4wFrOKt1Wjl/ExhWX0ZQXHW6n6N70tXa+E=";
   };
 
-  vendorHash = "sha256-vfLLL/sV8Jg/QE4oT45XLXAwvlLep3ehtPwXbpwo5PQ=";
+  vendorHash = "sha256-/eofPpXmfpc7Vjz97hjKXH/Fl/EAk0zrnI279iit7MI=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/rust/cargo-binstall/default.nix b/pkgs/development/tools/rust/cargo-binstall/default.nix
index 177029648f12..ea860cc0896b 100644
--- a/pkgs/development/tools/rust/cargo-binstall/default.nix
+++ b/pkgs/development/tools/rust/cargo-binstall/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-binstall";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "cargo-bins";
     repo = "cargo-binstall";
     rev = "v${version}";
-    hash = "sha256-x+fjngKdSS3ujWs2FbdcRSLi99wEuhi3f7uf7wEAvY8=";
+    hash = "sha256-z69uGnXyzV4spa3pNMwZrqOX1i0RYCgo8dwfZ86MBlA=";
   };
 
-  cargoHash = "sha256-p/O8v08GjccJGMTvSdAFgOZAMG9jjXmvlJykzyne84w=";
+  cargoHash = "sha256-/eXdbHDVzM4hHRfP/gw+IXZVDuZcergGyotnvQEKEiw=";
 
   nativeBuildInputs = [
     pkg-config
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
     xz
     zstd
   ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
   ];
 
   buildNoDefaultFeatures = true;
diff --git a/pkgs/development/tools/rust/cargo-guppy/default.nix b/pkgs/development/tools/rust/cargo-guppy/default.nix
index 4596b93b32a1..e62a0a9925fd 100644
--- a/pkgs/development/tools/rust/cargo-guppy/default.nix
+++ b/pkgs/development/tools/rust/cargo-guppy/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-guppy";
-  version = "unstable-2023-07-29";
+  version = "unstable-2023-10-04";
 
   src = fetchFromGitHub {
     owner = "guppy-rs";
     repo = "guppy";
-    rev = "7c7f352d9d2dea1007b4475d4a76f86f061b6ba9";
-    sha256 = "sha256-H2vU7qax0P8Ulh1/DHnlmGRqSqzLuRy9TZOvikSLONw=";
+    rev = "837d0ae762b9ae79cc8ca5d629842e5ca34293b4";
+    sha256 = "sha256-LWU1yAD/f9w5m522vcKP9D2JusGkwzvfGSGstvFGUpk=";
   };
 
-  cargoSha256 = "sha256-lr7N/qqB1AwhNA+mbEAJFSp/rDxGp3qIGSKP9B3JAls=";
+  cargoSha256 = "sha256-IyU5fJSFzef8P5v8ILufGcTP3+5Gm0PH4Cox2G5saHw=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/development/tools/rust/cargo-hakari/default.nix b/pkgs/development/tools/rust/cargo-hakari/default.nix
index 842ea1a1915d..e58bf32863a8 100644
--- a/pkgs/development/tools/rust/cargo-hakari/default.nix
+++ b/pkgs/development/tools/rust/cargo-hakari/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-hakari";
-  version = "0.9.27";
+  version = "0.9.28";
 
   src = fetchFromGitHub {
     owner = "guppy-rs";
     repo = "guppy";
     rev = "cargo-hakari-${version}";
-    sha256 = "sha256-H2vU7qax0P8Ulh1/DHnlmGRqSqzLuRy9TZOvikSLONw=";
+    sha256 = "sha256-mTemccM/C9M2kso9PNpd0UGEZJd/tBd1PjCpbDFFtNo=";
   };
 
-  cargoHash = "sha256-fRaGtQc9CA5A6fQ1yj5zsg1Qv42yIi8ZlIcp4o5cNBU=";
+  cargoHash = "sha256-UaSW9PZMUhqjvRM0/URHaOfofG5Ap3bvKgAHa+H+MFw=";
 
   cargoBuildFlags = [ "-p" "cargo-hakari" ];
   cargoTestFlags = [ "-p" "cargo-hakari" ];
diff --git a/pkgs/development/tools/rust/cargo-modules/default.nix b/pkgs/development/tools/rust/cargo-modules/default.nix
index cbab6f02fce6..8b902499bf73 100644
--- a/pkgs/development/tools/rust/cargo-modules/default.nix
+++ b/pkgs/development/tools/rust/cargo-modules/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-modules";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchFromGitHub {
     owner = "regexident";
     repo = pname;
     rev = version;
-    hash = "sha256-GbBPIJh2TnIpzpuSLZlrxEVN5hWFakeERKNeTcYbjSY=";
+    hash = "sha256-BFASEf9WUVJHsakujjeBBxfxPYlsuzonqFuDLXmLgwc=";
   };
 
-  cargoHash = "sha256-g8Edt2rmOSfoJ3UsZIUyTOIxXgf6iQD+TueK89d18CQ=";
+  cargoHash = "sha256-FojpC4RMrW0hZ0jvXxznxR6rKDDxrNMPoLoHEscOPEo=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.CoreServices
diff --git a/pkgs/development/tools/rust/cargo-mutants/default.nix b/pkgs/development/tools/rust/cargo-mutants/default.nix
index c56ac2dcbe15..fefa6bb21fba 100644
--- a/pkgs/development/tools/rust/cargo-mutants/default.nix
+++ b/pkgs/development/tools/rust/cargo-mutants/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-mutants";
-  version = "23.9.1";
+  version = "23.10.0";
 
   src = fetchFromGitHub {
     owner = "sourcefrog";
     repo = "cargo-mutants";
-    rev = "cargo-mutants-${version}";
-    hash = "sha256-VFlnCzaWy8IDuCkr1aHKhJThS3Sde9I2mRj8hKKdXOk=";
+    rev = "v${version}";
+    hash = "sha256-AJcteYaEm1pJ2tn1mydZAhrhqoMtEVJUrfGY/Vt71Ks=";
   };
 
-  cargoHash = "sha256-C7ikZZrTw+KjY+kjgEZGZ7lC8irLw+uXl+T+6Grq7UY=";
+  cargoHash = "sha256-0NLP8KtzeX3jjWjSXBKku4c1LzKmoJce1RPUB+aO804=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.SystemConfiguration
diff --git a/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock b/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
index 69c75963f3a1..48304081a7f6 100644
--- a/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
+++ b/pkgs/development/tools/rust/cargo-shuttle/Cargo.lock
@@ -1086,7 +1086,7 @@ dependencies = [
 
 [[package]]
 name = "cargo-shuttle"
-version = "0.28.0"
+version = "0.28.1"
 dependencies = [
  "anyhow",
  "assert_cmd",
diff --git a/pkgs/development/tools/rust/cargo-shuttle/default.nix b/pkgs/development/tools/rust/cargo-shuttle/default.nix
index b8d5cf527046..93cd93d4d624 100644
--- a/pkgs/development/tools/rust/cargo-shuttle/default.nix
+++ b/pkgs/development/tools/rust/cargo-shuttle/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-shuttle";
-  version = "0.28.0";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "shuttle-hq";
     repo = "shuttle";
     rev = "v${version}";
-    hash = "sha256-iBUd42MEfDFMhHXBrgrJaihUeYTRpVt4jFQaKCKhNlc=";
+    hash = "sha256-j4YFCvBvNJbzxaOwguhczWQt1CzCAMQsxZAVgJoLgUs=";
   };
 
   cargoLock = {
diff --git a/pkgs/development/tools/rust/leptosfmt/default.nix b/pkgs/development/tools/rust/leptosfmt/default.nix
index 315b90dddd7b..3bf083932dec 100644
--- a/pkgs/development/tools/rust/leptosfmt/default.nix
+++ b/pkgs/development/tools/rust/leptosfmt/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "leptosfmt";
-  version = "0.1.14";
+  version = "0.1.15";
 
   src = fetchFromGitHub {
     owner = "bram209";
     repo = "leptosfmt";
     rev = version;
-    hash = "sha256-Dj58p//g6sCpZMmTbROrGxs8fiQm4y1WSYqNjQ5K3Oo=";
+    hash = "sha256-LbF/j6yKcH/OmrcYAvTN8L2XFYnULAAh9hCGsG/JkFg=";
   };
 
-  cargoHash = "sha256-epCLbr9Z3o/G0rEiYri0CswZYzjOZkb4UVIO4/vD6ko=";
+  cargoHash = "sha256-92sRJt6d96BoinXlw432Fyn2EjsuSUdOwyFtqj0iUXw=";
 
   meta = with lib; {
     description = "A formatter for the leptos view! macro";
diff --git a/pkgs/development/tools/rust/rust-script/default.nix b/pkgs/development/tools/rust/rust-script/default.nix
index 6551c838e3d8..417b173935f5 100644
--- a/pkgs/development/tools/rust/rust-script/default.nix
+++ b/pkgs/development/tools/rust/rust-script/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-script";
-  version = "0.32.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "fornwall";
     repo = pname;
     rev = version;
-    sha256 = "sha256-VyiVa1aeJslH1Vkg0TvON7VDiJVMIIbrlmx2FRDz75o=";
+    sha256 = "sha256-a9VWPN/mTz159xKgN2RNflrcuutWXVdEFzbTIZJKgdY=";
   };
 
-  cargoSha256 = "sha256-K7wT5Og1nx+UcsehLbpUx0NlvoaicMDd02SkUoAncwI=";
+  cargoHash = "sha256-dawNgQtF9zVhlwIZzP+c5fHzcLJbCLOZx3kgIRAktTk=";
 
   # tests require network access
   doCheck = false;
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 1fb8dc031e13..249be524add5 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.1.102";
+  version = "0.1.104";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    hash = "sha256-OIqAX/Cgh+jpHbjIg7wApTlKGChYx82oq8oUGguDsrE=";
+    hash = "sha256-iTizgA3MtcG6YN7aHaZF4UXT6jBKodsMxXG61UgDNaQ=";
   };
 
-  vendorHash = "sha256-XECl5evFO9ml28sILdWS2sQfNDf8ixsvQhiTShOcKKQ=";
+  vendorHash = "sha256-5Nu9XpYjlZHGazWTK7LmfnEGgewKa017PLHtV9HycD0=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/misc/dxvk/dxvk.nix b/pkgs/misc/dxvk/dxvk.nix
deleted file mode 100644
index 129090faaf47..000000000000
--- a/pkgs/misc/dxvk/dxvk.nix
+++ /dev/null
@@ -1,114 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, glslang
-, meson
-, ninja
-, windows
-, dxvkVersion ? "default"
-, spirv-headers
-, vulkan-headers
-, SDL2
-, glfw
-, pkgsBuildHost
-, gitUpdater
-, sdl2Support ? true
-, glfwSupport ? false
-, enableMoltenVKCompat ? false
-}:
-
-# SDL2 and GLFW support are mutually exclusive.
-assert !sdl2Support || !glfwSupport;
-
-let
-  # DXVK 2.0+ no longer vendors certain dependencies. This derivation also needs to build on Darwin,
-  # which does not currently support DXVK 2.0, so adapt conditionally for this situation.
-  isDxvk2 = lib.versionAtLeast (srcs.${dxvkVersion}.version) "2.0";
-
-  # DXVK has effectively the same build script regardless of platform.
-  srcs = {
-    "1.10" = rec {
-      version = "1.10.3";
-      src = fetchFromGitHub {
-        owner = "doitsujin";
-        repo = "dxvk";
-        rev = "v${version}";
-        hash = "sha256-T93ZylxzJGprrP+j6axZwl2d3hJowMCUOKNjIyNzkmE=";
-      };
-      # These patches are required when using DXVK with Wine on Darwin.
-      patches = lib.optionals enableMoltenVKCompat [
-        # Patch DXVK to work with MoltenVK even though it doesn’t support some required features.
-        # Some games work poorly (particularly Unreal Engine 4 games), but others work pretty well.
-        ./darwin-dxvk-compat.patch
-        # Use synchronization primitives from the C++ standard library to avoid deadlocks on Darwin.
-        # See: https://www.reddit.com/r/macgaming/comments/t8liua/comment/hzsuce9/
-        ./darwin-thread-primitives.patch
-      ];
-    };
-    "default" = rec {
-      version = "2.3";
-      src = fetchFromGitHub {
-        owner = "doitsujin";
-        repo = "dxvk";
-        rev = "v${version}";
-        hash = "sha256-RU+B0XfphD5HHW/vSzqHLUaGS3E31d5sOLp3lMmrCB8=";
-        fetchSubmodules = true; # Needed for the DirectX headers and libdisplay-info
-      };
-      patches = [ ];
-    };
-  };
-
-  isWindows = stdenv.targetPlatform.uname.system == "Windows";
-  isCross = stdenv.hostPlatform != stdenv.targetPlatform;
-in
-stdenv.mkDerivation (finalAttrs:  {
-  pname = "dxvk";
-  inherit (srcs.${dxvkVersion}) version src patches;
-
-  nativeBuildInputs = [ glslang meson ninja ];
-  buildInputs = lib.optionals isWindows [ windows.pthreads ]
-    ++ lib.optionals isDxvk2 (
-      [ spirv-headers vulkan-headers ]
-      ++ lib.optional (!isWindows && sdl2Support) SDL2
-      ++ lib.optional (!isWindows && glfwSupport) glfw
-    );
-
-  postPatch = lib.optionalString isDxvk2 ''
-    substituteInPlace "subprojects/libdisplay-info/tool/gen-search-table.py" \
-      --replace "/usr/bin/env python3" "${lib.getBin pkgsBuildHost.python3}/bin/python3"
-  '';
-
-  # Build with the Vulkan SDK in nixpkgs.
-  preConfigure = ''
-    rm -rf include/spirv/include include/vulkan/include
-    mkdir -p include/spirv/include include/vulkan/include
-  '';
-
-  mesonFlags =
-    let
-      arch = if stdenv.is32bit then "32" else "64";
-    in
-    [
-      "--buildtype" "release"
-      "--prefix" "${placeholder "out"}"
-    ]
-    ++ lib.optionals isCross [ "--cross-file" "build-win${arch}.txt" ]
-    ++ lib.optional glfwSupport "-Ddxvk_native_wsi=glfw";
-
-  doCheck = isDxvk2 && !isCross;
-
-  passthru = lib.optionalAttrs (lib.versionAtLeast finalAttrs.version "2.0") {
-    updateScript = gitUpdater {
-      rev-prefix = "v";
-    };
-  };
-
-  meta = {
-    description = "A Vulkan-based translation layer for Direct3D 9/10/11";
-    homepage = "https://github.com/doitsujin/dxvk";
-    changelog = "https://github.com/doitsujin/dxvk/releases";
-    maintainers = [ lib.maintainers.reckenrode ];
-    license = lib.licenses.zlib;
-    platforms = lib.platforms.windows ++ lib.optionals isDxvk2 lib.platforms.linux;
-  };
-})
diff --git a/pkgs/os-specific/darwin/ios-deploy/default.nix b/pkgs/os-specific/darwin/ios-deploy/default.nix
index 6567093700df..c405ac8e1c8b 100644
--- a/pkgs/os-specific/darwin/ios-deploy/default.nix
+++ b/pkgs/os-specific/darwin/ios-deploy/default.nix
@@ -1,35 +1,62 @@
-{ lib, stdenvNoCC, rsync, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, darwin
+, testers
+}:
 
-# Note this is impure, using system XCode to build ios-deploy. We
-# should have a special flag for users to enable this.
-
-let version = "1.11.0";
-in stdenvNoCC.mkDerivation {
+let
+  privateFrameworks = "/Library/Apple/System/Library/PrivateFrameworks";
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "ios-deploy";
-  inherit version;
+  version = "1.12.2";
+
   src = fetchFromGitHub {
     owner = "ios-control";
     repo = "ios-deploy";
-    rev = version;
-    sha256 = "0hqwikdrcnslx4kkw9b0n7n443gzn2gbrw15pp2fnkcw5s0698sc";
+    rev = finalAttrs.version;
+    hash = "sha256-TVGC+f+1ow3b93CK3PhIL70le5SZxxb2ug5OkIg8XCA=";
   };
-  nativeBuildInputs = [ rsync ];
+
+  buildInputs = [
+    darwin.apple_sdk.frameworks.Foundation
+  ];
+
   buildPhase = ''
-    LD=$CC
-    tmp=$(mktemp -d)
-    ln -s /usr/bin/xcodebuild $tmp
-    export PATH="$PATH:$tmp"
-    xcodebuild -configuration Release SYMROOT=build OBJROOT=$tmp
-  '';
-  checkPhase = ''
-    xcodebuild test -scheme ios-deploy-tests -configuration Release SYMROOT=build
+    runHook preBuild
+
+    awk '{ print "\""$0"\\n\""}' src/scripts/lldb.py >> src/ios-deploy/lldb.py.h
+    clang src/ios-deploy/ios-deploy.m \
+      -framework Foundation \
+      -F${privateFrameworks} -framework MobileDevice \
+      -o ios-deploy
+
+    runHook postBuild
   '';
+
   installPhase = ''
-    install -D build/Release/ios-deploy $out/bin/ios-deploy
+    runHook preInstall
+
+    install -Dm755 ios-deploy $out/bin/ios-deploy
+
+    runHook postInstall
   '';
+
+  __impureHostDeps = [
+    privateFrameworks
+  ];
+
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+  };
+
   meta = {
+    description = "Install and debug iPhone apps from the command line, without using Xcode";
+    homepage = "https://github.com/ios-control/ios-deploy";
+    license = lib.licenses.gpl3Plus;
+    mainProgram = "ios-deploy";
+    maintainers = with lib.maintainers; [ wegank ];
     platforms = lib.platforms.darwin;
-    description = "Install and debug iOS apps from the command line. Designed to work on un-jailbroken devices";
-    license = lib.licenses.gpl3;
   };
-}
+})
diff --git a/pkgs/os-specific/linux/eudev/default.nix b/pkgs/os-specific/linux/eudev/default.nix
index 4d3c9e785229..9195c1a44276 100644
--- a/pkgs/os-specific/linux/eudev/default.nix
+++ b/pkgs/os-specific/linux/eudev/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eudev";
-  version = "3.2.12";
+  version = "3.2.14";
 
   src = fetchFromGitHub {
     owner = "eudev-project";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-x9l+W8zuFYwG0m9JOIDbEf1x6yeBW36HnJws/buc7HI=";
+    hash = "sha256-v/szzqrBedQPRGYkZ0lV9rslCH//uqGp4PHEF0/51Lg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/default.nix b/pkgs/os-specific/linux/minimal-bootstrap/default.nix
index 2e48c91ca3d8..0725e3808c2c 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/default.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/default.nix
@@ -99,6 +99,22 @@ lib.makeScope
       gawk = gawk-mes;
     };
 
+    gcc8 = callPackage ./gcc/8.nix {
+      gcc = gcc46-cxx;
+      gnumake = gnumake-musl;
+      gnutar = gnutar-latest;
+      # FIXME: not sure why new gawk doesn't work
+      gawk = gawk-mes;
+    };
+
+    gcc-latest = callPackage ./gcc/latest.nix {
+      gcc = gcc8;
+      gnumake = gnumake-musl;
+      gnutar = gnutar-latest;
+      # FIXME: not sure why new gawk doesn't work
+      gawk = gawk-mes;
+    };
+
     inherit (callPackage ./glibc {
       bash = bash_2_05;
       gnused = gnused-mes;
@@ -142,6 +158,13 @@ lib.makeScope
       gnused = gnused-mes;
     };
 
+    # FIXME: better package naming scheme
+    gnutar-latest = callPackage ./gnutar/latest.nix {
+      gcc = gcc46;
+      gnumake = gnumake-musl;
+      gnutarBoot = gnutar-musl;
+    };
+
     gzip = callPackage ./gzip {
       bash = bash_2_05;
       tinycc = tinycc-mes;
@@ -207,11 +230,14 @@ lib.makeScope
       echo ${gcc2-mes.tests.get-version}
       echo ${gcc46.tests.get-version}
       echo ${gcc46-cxx.tests.hello-world}
+      echo ${gcc8.tests.hello-world}
+      echo ${gcc-latest.tests.hello-world}
       echo ${gnugrep.tests.get-version}
       echo ${gnused.tests.get-version}
       echo ${gnused-mes.tests.get-version}
       echo ${gnutar.tests.get-version}
       echo ${gnutar-musl.tests.get-version}
+      echo ${gnutar-latest.tests.get-version}
       echo ${gzip.tests.get-version}
       echo ${heirloom.tests.get-version}
       echo ${mes.compiler.tests.get-version}
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix
new file mode 100644
index 000000000000..d6a6560e01e7
--- /dev/null
+++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/8.nix
@@ -0,0 +1,140 @@
+{ lib
+, buildPlatform
+, hostPlatform
+, fetchurl
+, bash
+, coreutils
+, gcc
+, musl
+, binutils
+, gnumake
+, gnused
+, gnugrep
+, gawk
+, diffutils
+, findutils
+, gnutar
+, gzip
+, bzip2
+, xz
+}:
+let
+  pname = "gcc";
+  version = "8.5.0";
+
+  src = fetchurl {
+    url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
+    hash = "sha256-0wiEGlEbuDCmEAOXsAQtskzhH2Qtq26m7kSELlMl7VA=";
+  };
+
+  # last version to compile with gcc 4.6
+  gmpVersion = "6.2.1";
+  gmp = fetchurl {
+    url = "mirror://gnu/gmp/gmp-${gmpVersion}.tar.xz";
+    hash = "sha256-/UgpkSzd0S+EGBw0Ucx1K+IkZD6H+sSXtp7d2txJtPI=";
+  };
+
+  mpfrVersion = "4.2.1";
+  mpfr = fetchurl {
+    url = "mirror://gnu/mpfr/mpfr-${mpfrVersion}.tar.xz";
+    hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I=";
+  };
+
+  mpcVersion = "1.3.1";
+  mpc = fetchurl {
+    url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz";
+    hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg=";
+  };
+
+  islVersion = "0.24";
+  isl = fetchurl {
+    url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2";
+    hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA=";
+  };
+in
+bash.runCommand "${pname}-${version}" {
+  inherit pname version;
+
+  nativeBuildInputs = [
+    gcc
+    binutils
+    gnumake
+    gnused
+    gnugrep
+    gawk
+    diffutils
+    findutils
+    gnutar
+    gzip
+    bzip2
+    xz
+  ];
+
+  passthru.tests.hello-world = result:
+    bash.runCommand "${pname}-simple-program-${version}" {
+        nativeBuildInputs = [ binutils musl result ];
+      } ''
+        cat <<EOF >> test.c
+        #include <stdio.h>
+        int main() {
+          printf("Hello World!\n");
+          return 0;
+        }
+        EOF
+        musl-gcc -o test test.c
+        ./test
+        mkdir $out
+      '';
+
+  meta = with lib; {
+    description = "GNU Compiler Collection, version ${version}";
+    homepage = "https://gcc.gnu.org";
+    license = licenses.gpl3Plus;
+    maintainers = teams.minimal-bootstrap.members;
+    platforms = platforms.unix;
+  };
+} ''
+  # Unpack
+  tar xf ${src}
+  tar xf ${gmp}
+  tar xf ${mpfr}
+  tar xf ${mpc}
+  tar xf ${isl}
+  cd gcc-${version}
+
+  ln -s ../gmp-${gmpVersion} gmp
+  ln -s ../mpfr-${mpfrVersion} mpfr
+  ln -s ../mpc-${mpcVersion} mpc
+  ln -s ../isl-${islVersion} isl
+
+  # Patch
+  # doesn't recognise musl
+  sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host
+
+  # Configure
+  export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so"
+  export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so"
+  export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so"
+  export C_INCLUDE_PATH="${musl}/include"
+  export CPLUS_INCLUDE_PATH="$C_INCLUDE_PATH"
+  export LIBRARY_PATH="${musl}/lib"
+
+  bash ./configure \
+    --prefix=$out \
+    --build=${buildPlatform.config} \
+    --host=${hostPlatform.config} \
+    --with-native-system-header-dir=/include \
+    --with-sysroot=${musl} \
+    --enable-languages=c,c++ \
+    --disable-bootstrap \
+    --disable-libmpx \
+    --disable-libsanitizer \
+    --disable-lto \
+    --disable-multilib
+
+  # Build
+  make -j $NIX_BUILD_CORES
+
+  # Install
+  make -j $NIX_BUILD_CORES install
+''
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix
new file mode 100644
index 000000000000..f8a7d2126b8d
--- /dev/null
+++ b/pkgs/os-specific/linux/minimal-bootstrap/gcc/latest.nix
@@ -0,0 +1,136 @@
+{ lib
+, buildPlatform
+, hostPlatform
+, fetchurl
+, bash
+, coreutils
+, gcc
+, musl
+, binutils
+, gnumake
+, gnused
+, gnugrep
+, gawk
+, diffutils
+, findutils
+, gnutar
+, gzip
+, bzip2
+, xz
+}:
+let
+  pname = "gcc";
+  version = "13.2.0";
+
+  src = fetchurl {
+    url = "mirror://gnu/gcc/gcc-${version}/gcc-${version}.tar.xz";
+    hash = "sha256-4nXnZEKmBnNBon8Exca4PYYTFEAEwEE1KIY9xrXHQ9o=";
+  };
+
+  gmpVersion = "6.3.0";
+  gmp = fetchurl {
+    url = "mirror://gnu/gmp/gmp-${gmpVersion}.tar.xz";
+    hash = "sha256-o8K4AgG4nmhhb0rTC8Zq7kknw85Q4zkpyoGdXENTiJg=";
+  };
+
+  mpfrVersion = "4.2.1";
+  mpfr = fetchurl {
+    url = "mirror://gnu/mpfr/mpfr-${mpfrVersion}.tar.xz";
+    hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I=";
+  };
+
+  mpcVersion = "1.3.1";
+  mpc = fetchurl {
+    url = "mirror://gnu/mpc/mpc-${mpcVersion}.tar.gz";
+    hash = "sha256-q2QkkvXPiCt0qgy3MM1BCoHtzb7IlRg86TDnBsHHWbg=";
+  };
+
+  islVersion = "0.24";
+  isl = fetchurl {
+    url = "https://gcc.gnu.org/pub/gcc/infrastructure/isl-${islVersion}.tar.bz2";
+    hash = "sha256-/PeN2WVsEOuM+fvV9ZoLawE4YgX+GTSzsoegoYmBRcA=";
+  };
+in
+bash.runCommand "${pname}-${version}" {
+  inherit pname version;
+
+  nativeBuildInputs = [
+    gcc
+    binutils
+    gnumake
+    gnused
+    gnugrep
+    gawk
+    diffutils
+    findutils
+    gnutar
+    gzip
+    bzip2
+    xz
+  ];
+
+  passthru.tests.hello-world = result:
+    bash.runCommand "${pname}-simple-program-${version}" {
+        nativeBuildInputs = [ binutils musl result ];
+      } ''
+        cat <<EOF >> test.c
+        #include <stdio.h>
+        int main() {
+          printf("Hello World!\n");
+          return 0;
+        }
+        EOF
+        musl-gcc -o test test.c
+        ./test
+        mkdir $out
+      '';
+
+  meta = with lib; {
+    description = "GNU Compiler Collection, version ${version}";
+    homepage = "https://gcc.gnu.org";
+    license = licenses.gpl3Plus;
+    maintainers = teams.minimal-bootstrap.members;
+    platforms = platforms.unix;
+  };
+} ''
+  # Unpack
+  tar xf ${src}
+  tar xf ${gmp}
+  tar xf ${mpfr}
+  tar xf ${mpc}
+  tar xf ${isl}
+  cd gcc-${version}
+
+  ln -s ../gmp-${gmpVersion} gmp
+  ln -s ../mpfr-${mpfrVersion} mpfr
+  ln -s ../mpc-${mpcVersion} mpc
+  ln -s ../isl-${islVersion} isl
+
+  # Patch
+  # force musl even if host triple is gnu
+  sed -i 's|"os/gnu-linux"|"os/generic"|' libstdc++-v3/configure.host
+
+  # Configure
+  export CC="gcc -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so"
+  export CXX="g++ -Wl,-dynamic-linker -Wl,${musl}/lib/libc.so"
+  export CFLAGS_FOR_TARGET="-Wl,-dynamic-linker -Wl,${musl}/lib/libc.so"
+  export LIBRARY_PATH="${musl}/lib"
+
+  bash ./configure \
+    --prefix=$out \
+    --build=${buildPlatform.config} \
+    --host=${hostPlatform.config} \
+    --with-native-system-header-dir=/include \
+    --with-sysroot=${musl} \
+    --enable-languages=c,c++ \
+    --disable-bootstrap \
+    --disable-libsanitizer \
+    --disable-lto \
+    --disable-multilib
+
+  # Build
+  make -j $NIX_BUILD_CORES
+
+  # Install
+  make -j $NIX_BUILD_CORES install
+''
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix
new file mode 100644
index 000000000000..717ea9868fd9
--- /dev/null
+++ b/pkgs/os-specific/linux/minimal-bootstrap/gnutar/latest.nix
@@ -0,0 +1,71 @@
+{ lib
+, buildPlatform
+, hostPlatform
+, fetchurl
+, bash
+, gcc
+, musl
+, binutils
+, gnumake
+, gnused
+, gnugrep
+, gawk
+, gzip
+, gnutarBoot
+}:
+let
+  pname = "gnutar";
+  version = "1.35";
+
+  src = fetchurl {
+    url = "mirror://gnu/tar/tar-${version}.tar.gz";
+    hash = "sha256-FNVeMgY+qVJuBX+/Nfyr1TN452l4fv95GcN1WwLStX4=";
+  };
+in
+bash.runCommand "${pname}-${version}" {
+  inherit pname version;
+
+  nativeBuildInputs = [
+    gcc
+    musl
+    binutils
+    gnumake
+    gnused
+    gnugrep
+    gawk
+    gzip
+    gnutarBoot
+  ];
+
+  passthru.tests.get-version = result:
+    bash.runCommand "${pname}-get-version-${version}" {} ''
+      ${result}/bin/tar --version
+      mkdir $out
+    '';
+
+  meta = with lib; {
+    description = "GNU implementation of the `tar' archiver";
+    homepage = "https://www.gnu.org/software/tar";
+    license = licenses.gpl3Plus;
+    maintainers = teams.minimal-bootstrap.members;
+    mainProgram = "tar";
+    platforms = platforms.unix;
+  };
+} ''
+  # Unpack
+  tar xzf ${src}
+  cd tar-${version}
+
+  # Configure
+  bash ./configure \
+    --prefix=$out \
+    --build=${buildPlatform.config} \
+    --host=${hostPlatform.config} \
+    CC=musl-gcc
+
+  # Build
+  make -j $NIX_BUILD_CORES
+
+  # Install
+  make -j $NIX_BUILD_CORES install
+''
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix
index 203b480326e9..a0663c9dbe4f 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/bootstrap-sources.nix
@@ -7,7 +7,7 @@ rec {
   version = "unstable-2023-05-02";
   rev = "3189b5f325b7ef8b88e3edec7c1cde4fce73c76c";
   outputHashAlgo = "sha256";
-  outputHash = "sha256-FpMp7z+B3cR3LkQ+PooH/b1/NlxH8NHVJNWifaPWt4U=";
+  outputHash = "sha256-7Y9+csTwZIQp0WGbagX+Q4f2zavN7AUk1TSBp/H5Xks=";
 
   /*
   Since `make-minimal-bootstrap-sources` requires nixpkgs and nix it
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix
index 996f2f33ea35..9808e25711c1 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/hex0.nix
@@ -9,8 +9,9 @@
 
 let
   hash = {
-    "x86"   = "sha256-QU3RPGy51W7M2xnfFY1IqruKzusrSLU+L190ztN6JW8=";
-    "AMD64" = "sha256-RCgK9oZRDQUiWLVkcIBSR2HeoB+Bh0czthrpjFEkCaY=";
+    "AArch64" = "sha256-XTPsoKeI6wTZAF0UwEJPzuHelWOJe//wXg4HYO0dEJo=";
+    "AMD64"   = "sha256-RCgK9oZRDQUiWLVkcIBSR2HeoB+Bh0czthrpjFEkCaY=";
+    "x86"     = "sha256-QU3RPGy51W7M2xnfFY1IqruKzusrSLU+L190ztN6JW8=";
   }.${stage0Arch} or (throw "Unsupported system: ${hostPlatform.system}");
 
   # Pinned from https://github.com/oriansj/stage0-posix/commit/3189b5f325b7ef8b88e3edec7c1cde4fce73c76c
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix
index 2675d055aec6..381902cd2c12 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/make-bootstrap-sources.nix
@@ -13,6 +13,7 @@
 
 { lib
 , fetchFromGitHub
+, fetchpatch
 }:
 
 let
@@ -37,6 +38,13 @@ fetchFromGitHub {
       $out/M2-Planet/M2libc \
       $out/mescc-tools/M2libc \
       $out/mescc-tools-extra/M2libc
+
+    # aarch64: syscall: mkdir -> mkdirat
+    # https://github.com/oriansj/M2libc/pull/17
+    patch -Np1 -d $out/M2libc -i ${(fetchpatch {
+      url = "https://github.com/oriansj/M2libc/commit/ff7c3023b3ab6cfcffc5364620b25f8d0279e96b.patch";
+      hash = "sha256-QAKddv4TixIQHpFa9SVu9fAkeKbzhQaxjaWzW2yJy7A=";
+    })}
   '';
 
   meta = with lib; {
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix
index 65f0fb4c2ff1..2114ffc707b1 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/mescc-tools-boot.nix
@@ -83,7 +83,11 @@ rec {
   # Phase-2b Build catm from hex2 #
   #################################
 
-  catm = run "catm" hex2-0 ["${src}/${stage0Arch}/catm_${stage0Arch}.hex2" out];
+  catm =
+    if hostPlatform.isAarch64 then
+      run "catm" hex1 ["${src}/${stage0Arch}/catm_${stage0Arch}.hex1" out]
+    else
+      run "catm" hex2-0 ["${src}/${stage0Arch}/catm_${stage0Arch}.hex2" out];
 
   # catm removes the need for cat or shell support for redirection by providing
   # equivalent functionality via catm output_file input1 input2 ... inputN
diff --git a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix
index c68f7630f3db..53147df33444 100644
--- a/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix
+++ b/pkgs/os-specific/linux/minimal-bootstrap/stage0-posix/platforms.nix
@@ -6,14 +6,16 @@
 rec {
   # meta.platforms
   platforms = [
+    "aarch64-linux"
     "i686-linux"
     "x86_64-linux"
   ];
 
   # system arch as used within the stage0 project
   stage0Arch = {
-    "i686-linux"   = "x86";
-    "x86_64-linux" = "AMD64";
+    "aarch64-linux" = "AArch64";
+    "i686-linux"    = "x86";
+    "x86_64-linux"  = "AMD64";
   }.${hostPlatform.system} or (throw "Unsupported system: ${hostPlatform.system}");
 
   # lower-case form is widely used by m2libc
@@ -23,7 +25,8 @@ rec {
   m2libcOS = if hostPlatform.isLinux then "linux" else throw "Unsupported system: ${hostPlatform.system}";
 
   baseAddress = {
-    "i686-linux"   = "0x08048000";
-    "x86_64-linux" = "0x00600000";
+    "aarch64-linux" = "0x00600000";
+    "i686-linux"    = "0x08048000";
+    "x86_64-linux"  = "0x00600000";
   }.${hostPlatform.system} or (throw "Unsupported system: ${hostPlatform.system}");
 }
diff --git a/pkgs/servers/bililiverecorder/default.nix b/pkgs/servers/bililiverecorder/default.nix
index 0bf34196a1d8..98cdd42dde86 100644
--- a/pkgs/servers/bililiverecorder/default.nix
+++ b/pkgs/servers/bililiverecorder/default.nix
@@ -13,8 +13,8 @@ let
     aspnetcore_6_0
   ];
 
-  version = "2.9.0";
-  hash = "sha256-8lEHo2ZEx4kkT/tLgbSmjFx9qHyAQIaha75ISIHj3hA=";
+  version = "2.9.1";
+  hash = "sha256-jAjUrEYfaihMuyL/sLDzdPfq0sKoEglCfRFz0sAtx3g=";
 
 in
 stdenv.mkDerivation {
diff --git a/pkgs/servers/bird/default.nix b/pkgs/servers/bird/default.nix
index 0c1b366178f1..ecc400e32066 100644
--- a/pkgs/servers/bird/default.nix
+++ b/pkgs/servers/bird/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bird";
-  version = "2.13.1";
+  version = "2.14";
 
   src = fetchurl {
     url = "ftp://bird.network.cz/pub/bird/${pname}-${version}.tar.gz";
-    hash = "sha256-l7uNV76bxQg+K1ZkFtJ+MUFihWoSynx34gLkZ9INQIA=";
+    hash = "sha256-sLn2+FZlQbm+SvHwysZ1xaN4VgGlVmen7D194pc1p4Y=";
   };
 
   nativeBuildInputs = [ flex bison ];
diff --git a/pkgs/servers/geospatial/tegola/default.nix b/pkgs/servers/geospatial/tegola/default.nix
index 1c7e0697dac9..3a3c40c2b20c 100644
--- a/pkgs/servers/geospatial/tegola/default.nix
+++ b/pkgs/servers/geospatial/tegola/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tegola";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "go-spatial";
     repo = "tegola";
     rev = "v${version}";
-    sha256 = "sha256-lrFRPD16AFavc+ghpKoxwQJsfJLe5jxTQVK/0a6SIIs=";
+    sha256 = "sha256-Z72QANnkAOg0le6p0lFJUhlgE/U32Ao+M/yog00gSF4=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/invidious/versions.json b/pkgs/servers/invidious/versions.json
index 61dc6fe3dd1f..75285e94405e 100644
--- a/pkgs/servers/invidious/versions.json
+++ b/pkgs/servers/invidious/versions.json
@@ -4,9 +4,9 @@
     "sha256": "sha256-EU6T9yQCdOLx98Io8o01rEsgxDFF/Xoy42LgPopD2/A="
   },
   "invidious": {
-    "rev": "bb14f794969f62582917a39c2dd57bf92fa146a7",
-    "sha256": "sha256-UX66SBscxvjl0rUHmJko12HXo5+ckKvoOfNtCIVrjXY=",
-    "version": "unstable-2023-09-18"
+    "rev": "60fae015d8b5e4b0bfac8306065db07f93c4c661",
+    "sha256": "sha256-yYTkDlQl6osvIC+k2mCXXsF8/33TB34vqOcZXPV1z/8=",
+    "version": "unstable-2023-10-07"
   },
   "lsquic": {
     "sha256": "sha256-hG8cUvhbCNeMOsKkaJlgGpzUrIx47E/WhmPIdI5F3qM=",
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 942297b5cdcb..a876a0b9bb73 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -8,21 +8,21 @@
 
 buildGoModule rec {
   pname = "mattermost";
-  version = "8.1.2";
+  version = "8.1.3";
 
   src = fetchFromGitHub {
     owner = "mattermost";
     repo = "mattermost";
     rev = "v${version}";
-    hash = "sha256-hOt3xqrCs7akWyCv/6keiZN0ReF2adwiQNVibKFG3mk=";
+    hash = "sha256-Xcg24hnQqrq/hW+tlzpdNUmvrC/3zIXzyi2ZkU1a96U=";
   } + "/server";
 
   webapp = fetchurl {
     url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-    hash = "sha256-cIfUIGp51dyfmY3LnV+1F9CX+y5XyTCez6R8TLLz9fo=";
+    hash = "sha256-FXc0W3W05Hx8jdNHHjRXTcfKw8j6rRZbn2TTEKx/UfU=";
   };
 
-  vendorHash = "sha256-3OZUWg4e2h7g15FXxiFKk2EXceHP4phBTpyy/uY2Ni4=";
+  vendorHash = "sha256-uHKd8shLDVd+zjRhEJcxAn+H9e9jqEM8XXqYx7B4hiQ=";
 
   subPackages = [ "cmd/mattermost" ];
 
diff --git a/pkgs/stdenv/darwin/make-bootstrap-tools.nix b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
index 46ba25f8603b..448d6ecd9f17 100644
--- a/pkgs/stdenv/darwin/make-bootstrap-tools.nix
+++ b/pkgs/stdenv/darwin/make-bootstrap-tools.nix
@@ -211,7 +211,7 @@ in rec {
   };
 
   bootstrapTools = derivation {
-    inherit (localSystem) system;
+    inherit (stdenv.hostPlatform) system;
 
     name = "bootstrap-tools";
     builder = "${bootstrapFiles.tools}/bin/bash";
diff --git a/pkgs/tools/audio/whisper-ctranslate2/default.nix b/pkgs/tools/audio/whisper-ctranslate2/default.nix
index 6ca3226bf67a..7238a5493245 100644
--- a/pkgs/tools/audio/whisper-ctranslate2/default.nix
+++ b/pkgs/tools/audio/whisper-ctranslate2/default.nix
@@ -1,11 +1,11 @@
 { lib
+, python3
 , fetchFromGitHub
 , nix-update-script
-, python3
 }:
 let
   pname = "whisper-ctranslate2";
-  version = "0.2.7";
+  version = "0.3.1";
 in
 python3.pkgs.buildPythonApplication {
   inherit pname version;
@@ -15,7 +15,7 @@ python3.pkgs.buildPythonApplication {
 
   src = fetchFromGitHub {
     owner = "Softcatala";
-    repo = pname;
+    repo = "whisper-ctranslate2";
     rev = version;
     hash = "sha256-dUmQNKgH+SIlLhUEiaEGXUHZQDr3fidsAU2vATJiXBU=";
   };
@@ -30,6 +30,15 @@ python3.pkgs.buildPythonApplication {
 
   passthru.updateScript = nix-update-script { };
 
+  nativeCheckInputs = with python3.pkgs; [
+    nose2
+  ];
+
+  checkPhase = ''
+    # Note: we are not running the `e2e-tests` because they require downloading models from the internet.
+    ${python3.interpreter} -m nose2 -s tests
+  '';
+
   meta = with lib; {
     description = "Whisper command line client compatible with original OpenAI client based on CTranslate2";
     homepage = "https://github.com/Softcatala/whisper-ctranslate2";
diff --git a/pkgs/tools/backup/pgbackrest/default.nix b/pkgs/tools/backup/pgbackrest/default.nix
index 5adf07df325d..f4c9fba781fa 100644
--- a/pkgs/tools/backup/pgbackrest/default.nix
+++ b/pkgs/tools/backup/pgbackrest/default.nix
@@ -13,13 +13,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "pgbackrest";
-  version = "2.47";
+  version = "2.48";
 
   src = fetchFromGitHub {
     owner = "pgbackrest";
     repo = "pgbackrest";
     rev = "release/${version}";
-    sha256 = "sha256-HKmJA/WlMR6Epu5WuD8pABDh5gaN+T98lc4ejgoD8LM=";
+    sha256 = "sha256-RaNF5ufQafZjE2MfOlFOXkot/JEJCQOuiuIYgJolkbU=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/misc/hyperfine/default.nix b/pkgs/tools/misc/hyperfine/default.nix
index e37033839c83..420d1ae04eda 100644
--- a/pkgs/tools/misc/hyperfine/default.nix
+++ b/pkgs/tools/misc/hyperfine/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "hyperfine";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = "hyperfine";
     rev = "v${version}";
-    hash = "sha256-IUjOklkEiy/U2HjjMt1X1uSpIkTAYOPiPQ+70xvvxKA=";
+    hash = "sha256-9YfnCHiG9TDOsEAcrrb0GOxdq39Q+TiltWKwnr3ObAQ=";
   };
 
-  cargoHash = "sha256-VjkcQueBODEADHdWOts2f3Zjar43hi0UXzVhvkK4o8I=";
+  cargoHash = "sha256-E2y/hQNcpW6b/ZJBlsp+2RDH2OgpX4kbn36aBHA5X6U=";
 
   nativeBuildInputs = [ installShellFiles ];
   buildInputs = lib.optional stdenv.isDarwin Security;
diff --git a/pkgs/tools/networking/containerlab/default.nix b/pkgs/tools/networking/containerlab/default.nix
index fe59d72397bb..39982a6ab886 100644
--- a/pkgs/tools/networking/containerlab/default.nix
+++ b/pkgs/tools/networking/containerlab/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "containerlab";
-  version = "0.45.1";
+  version = "0.46.0";
 
   src = fetchFromGitHub {
     owner = "srl-labs";
     repo = "containerlab";
     rev = "v${version}";
-    hash = "sha256-SjB00hTbY28EsLHAnq5PwtHD9Y2cYTNqu/nSF6smQfE=";
+    hash = "sha256-uBT9whv1qL3yfO6VoeW2SqLIzG11mk+SU09c/xqboM8=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
 
-  vendorHash = "sha256-Tkm0BUn1KEFp1EyZu44dueSQlKIbUUrxGK7iT+aTmaQ=";
+  vendorHash = "sha256-mkQR0lZXYe6Dz4PngxF7d7Bkr4R3HmL/imQDLridmlA=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/nix/fh/default.nix b/pkgs/tools/nix/fh/default.nix
index 9ee82ba6aa12..1cb74a60dcfa 100644
--- a/pkgs/tools/nix/fh/default.nix
+++ b/pkgs/tools/nix/fh/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fh";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "DeterminateSystems";
     repo = "fh";
     rev = "v${version}";
-    hash = "sha256-DWuGtjwz3cIR1IxJV8Kwm7vn2LijGGuPX8TOcwFvWXc=";
+    hash = "sha256-Pbw1yggqIzmY23DuxrmSSf9IbOy5olAqVWectq97j20=";
   };
 
-  cargoHash = "sha256-vZJRDVraDMSzBpZ8W6EENySJz44dkWdejSuvaYTFs6Q=";
+  cargoHash = "sha256-vr5M2TAty9z/n9wdA/ANnRp7Hq5S3Hpa4dE7mA59Keg=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/text/gtree/default.nix b/pkgs/tools/text/gtree/default.nix
index 951bbf4258cc..022ed0b0f0b6 100644
--- a/pkgs/tools/text/gtree/default.nix
+++ b/pkgs/tools/text/gtree/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gtree";
-  version = "1.9.11";
+  version = "1.9.12";
 
   src = fetchFromGitHub {
     owner = "ddddddO";
     repo = "gtree";
     rev = "v${version}";
-    hash = "sha256-mB/Wftq6YB1aZFJaulNfSXEPYjiznA5rc9hsoCehc5A=";
+    hash = "sha256-N4gw2SaNAcQULNxE+v4I+UhfziLH7zLs0cIP5mHGUx0=";
   };
 
-  vendorHash = "sha256-Td2DOMXA/E2ynsAKv+CLuS53pI9Bd4GkWcWBMqHrQ5o=";
+  vendorHash = "sha256-3VNcis7G0k/WTt8APvFaVBoYTo+RhjpnT1cGWhQhXK0=";
 
   subPackages = [
     "cmd/gtree"
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index d0c10512c61f..31c17fecc42b 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -16426,7 +16426,7 @@ with pkgs;
 
   hugs = callPackage ../development/interpreters/hugs { };
 
-  inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20;
+  inherit (javaPackages) openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21;
   openjfx = openjfx17;
 
   openjdk8-bootstrap = javaPackages.compiler.openjdk8-bootstrap;
@@ -16461,6 +16461,11 @@ with pkgs;
   jdk20 = openjdk20;
   jdk20_headless = openjdk20_headless;
 
+  openjdk21 = javaPackages.compiler.openjdk21;
+  openjdk21_headless = javaPackages.compiler.openjdk21.headless;
+  jdk21 = openjdk21;
+  jdk21_headless = openjdk21_headless;
+
   /* default JDK */
   jdk = jdk19;
   jdk_headless = jdk19_headless;
@@ -17690,7 +17695,10 @@ with pkgs;
   zulip-term = callPackage ../applications/networking/instant-messengers/zulip-term { };
 
   zulu8 = callPackage ../development/compilers/zulu/8.nix { };
-  zulu = callPackage ../development/compilers/zulu { };
+  zulu11 = callPackage ../development/compilers/zulu/11.nix { };
+  zulu17 = callPackage ../development/compilers/zulu/17.nix { };
+  zulu21 = callPackage ../development/compilers/zulu/21.nix { };
+  zulu = zulu11;
 
   ### DEVELOPMENT / INTERPRETERS
 
@@ -27603,8 +27611,6 @@ with pkgs;
 
   searx = callPackage ../servers/web-apps/searx { };
 
-  searxng = python3Packages.toPythonModule (callPackage ../servers/web-apps/searxng { });
-
   selfoss = callPackage ../servers/web-apps/selfoss { };
 
   shaarli = callPackage ../servers/web-apps/shaarli { };
@@ -40474,10 +40480,6 @@ with pkgs;
 
   dump = callPackage ../tools/backup/dump { };
 
-  dxvk = callPackage ../misc/dxvk { };
-  dxvk_1 = callPackage ../misc/dxvk/dxvk.nix { dxvkVersion = "1.10"; };
-  dxvk_2 = callPackage ../misc/dxvk/dxvk.nix { };
-
   ec2stepshell = callPackage ../tools/security/ec2stepshell { };
 
   ecdsatool = callPackage ../tools/security/ecdsatool { };
diff --git a/pkgs/top-level/java-packages.nix b/pkgs/top-level/java-packages.nix
index 5d938a12e829..85383eca38e5 100644
--- a/pkgs/top-level/java-packages.nix
+++ b/pkgs/top-level/java-packages.nix
@@ -8,11 +8,12 @@ let
   openjfx17 = callPackage ../development/compilers/openjdk/openjfx/17.nix { };
   openjfx19 = callPackage ../development/compilers/openjdk/openjfx/19.nix { };
   openjfx20 = callPackage ../development/compilers/openjdk/openjfx/20.nix { };
+  openjfx21 = callPackage ../development/compilers/openjdk/openjfx/21.nix { };
 
   mavenfod = pkgs.maven.buildMavenPackage;
 
 in {
-  inherit mavenfod openjfx11 openjfx15 openjfx17 openjfx19 openjfx20;
+  inherit mavenfod openjfx11 openjfx15 openjfx17 openjfx19 openjfx20 openjfx21;
 
   compiler = let
 
@@ -141,12 +142,12 @@ in {
 
     openjdk8 = mkOpenjdk
       ../development/compilers/openjdk/8.nix
-      ../development/compilers/openjdk/darwin/8.nix
+      ../development/compilers/zulu/8.nix
       { };
 
     openjdk11 = mkOpenjdk
       ../development/compilers/openjdk/11.nix
-      ../development/compilers/openjdk/darwin/11.nix
+      ../development/compilers/zulu/11.nix
       { openjfx = openjfx11; };
 
     openjdk12 = mkOpenjdkLinuxOnly ../development/compilers/openjdk/12.nix {
@@ -172,7 +173,7 @@ in {
 
     openjdk16 = mkOpenjdk
       ../development/compilers/openjdk/16.nix
-      ../development/compilers/openjdk/darwin/16.nix
+      ../development/compilers/zulu/16.nix
       {
         inherit openjdk16-bootstrap;
         openjfx = openjfx15;
@@ -180,7 +181,7 @@ in {
 
     openjdk17 = mkOpenjdk
       ../development/compilers/openjdk/17.nix
-      ../development/compilers/openjdk/darwin/17.nix
+      ../development/compilers/zulu/17.nix
       {
         inherit openjdk17-bootstrap;
         openjfx = openjfx17;
@@ -188,7 +189,7 @@ in {
 
     openjdk18 = mkOpenjdk
       ../development/compilers/openjdk/18.nix
-      ../development/compilers/openjdk/darwin/18.nix
+      ../development/compilers/zulu/18.nix
       {
         inherit openjdk18-bootstrap;
         openjfx = openjfx17;
@@ -196,7 +197,7 @@ in {
 
     openjdk19 = mkOpenjdk
       ../development/compilers/openjdk/19.nix
-      ../development/compilers/openjdk/darwin/19.nix
+      ../development/compilers/zulu/19.nix
       {
         openjdk19-bootstrap = temurin-bin.jdk-19;
         openjfx = openjfx19;
@@ -204,12 +205,20 @@ in {
 
     openjdk20 = mkOpenjdk
       ../development/compilers/openjdk/20.nix
-      ../development/compilers/openjdk/darwin/20.nix
+      ../development/compilers/zulu/20.nix
       {
         openjdk20-bootstrap = temurin-bin.jdk-20;
         openjfx = openjfx20;
       };
 
+    openjdk21 = mkOpenjdk
+      ../development/compilers/openjdk/21.nix
+      ../development/compilers/zulu/21.nix
+      {
+        openjdk21-bootstrap = temurin-bin.jdk-20;
+        openjfx = openjfx21;
+      };
+
     temurin-bin = recurseIntoAttrs (callPackage (
       if stdenv.isLinux
       then ../development/compilers/temurin-bin/jdk-linux.nix
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 4f76f654ae01..225979989af9 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -9199,6 +9199,8 @@ self: super: with self; {
 
   python-heatclient = callPackage ../development/python-modules/python-heatclient { };
 
+  python-hl7 = callPackage ../development/python-modules/python-hl7 { };
+
   python-ipmi = callPackage ../development/python-modules/python-ipmi { };
 
   python-ipware = callPackage ../development/python-modules/python-ipware { };
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index ad5f351b9c87..6f9db1f5769b 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -10,9 +10,18 @@
 */
 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
 , officialRelease ? false
-  # The platforms for which we build Nixpkgs.
+  # The platform doubles for which we build Nixpkgs.
 , supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]
-, limitedSupportedSystems ? [ "i686-linux" ]
+  # The platform triples for which we build bootstrap tools.
+, bootstrapConfigs ? [
+    "aarch64-apple-darwin"
+    "aarch64-unknown-linux-gnu"
+    "aarch64-unknown-linux-musl"
+    "i686-unknown-linux-gnu"
+    "x86_64-apple-darwin"
+    "x86_64-unknown-linux-gnu"
+    "x86_64-unknown-linux-musl"
+  ]
   # Strip most of attributes when evaluating to spare memory usage
 , scrubJobs ? true
   # Attributes passed to nixpkgs. Don't build packages marked as unfree.
@@ -35,12 +44,10 @@ with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs;
 
 let
 
-  systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems;
-
   supportDarwin = lib.genAttrs [
     "x86_64"
     "aarch64"
-  ] (arch: builtins.elem "${arch}-darwin" systemsWithAnySupport);
+  ] (arch: builtins.elem "${arch}-darwin" supportedSystems);
 
   nonPackageJobs =
     { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease supportedSystems; };
@@ -177,21 +184,21 @@ let
         };
 
       stdenvBootstrapTools = with lib;
-        genAttrs systemsWithAnySupport (system:
-          if hasSuffix "-linux" system then
+        genAttrs bootstrapConfigs (config:
+          if hasInfix "-linux-" config then
             let
               bootstrap = import ../stdenv/linux/make-bootstrap-tools.nix {
                 pkgs = import ../.. {
-                  localSystem = { inherit system; };
+                  localSystem = { inherit config; };
                 };
               };
             in {
               inherit (bootstrap) dist test;
             }
-          else if hasSuffix "-darwin" system then
+          else if hasSuffix "-darwin" config then
             let
               bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
-                localSystem = { inherit system; };
+                localSystem = { inherit config; };
               };
             in {
               # Lightweight distribution and test
@@ -201,7 +208,7 @@ let
               #inherit (bootstrap.test-pkgs) stdenv;
             }
           else
-            abort "No bootstrap implementation for system: ${system}"
+            abort "No bootstrap implementation for system: ${config}"
         );
     };
 
diff --git a/pkgs/top-level/ruby-packages.nix b/pkgs/top-level/ruby-packages.nix
index 540610bccbd5..247cbfc21e6c 100644
--- a/pkgs/top-level/ruby-packages.nix
+++ b/pkgs/top-level/ruby-packages.nix
@@ -1,14 +1,14 @@
 {
   actioncable = {
-    dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver"];
+    dependencies = ["actionpack" "activesupport" "nio4r" "websocket-driver" "zeitwerk"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "117vxic67jnw6q637kmsb3ryj0x485295pz9a9y4z8xn9bdlsl0z";
+      sha256 = "04byz5614vjb7mzzn8l4ff121m7d7jnr0wa8fl47i3ax8a4hrmrb";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   actionmailbox = {
     dependencies = ["actionpack" "activejob" "activerecord" "activestorage" "activesupport" "mail" "net-imap" "net-pop" "net-smtp"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1r8ldj2giaz8cn49qkdqn5zc29gbsr5ky4fg6r7ali0yh1xh684l";
+      sha256 = "0kf2zd0m9p8im4f8176qywgacbi33ri517v52qr2qd8gk731knx2";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   actionmailer = {
     dependencies = ["actionpack" "actionview" "activejob" "activesupport" "mail" "net-imap" "net-pop" "net-smtp" "rails-dom-testing"];
@@ -27,21 +27,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w6gvj7ybniq89834hqww9rj2xypz9l91f8niwaws2yq1qklymr2";
+      sha256 = "0abw1z8a1rpdkd3mwjsm0x207hvy0kqrp7d23rldvwk9ff5p9g5c";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   actionpack = {
-    dependencies = ["actionview" "activesupport" "rack" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
+    dependencies = ["actionview" "activesupport" "nokogiri" "rack" "rack-session" "rack-test" "rails-dom-testing" "rails-html-sanitizer"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l319p0gipfgq8bp8dvbv97qqb72rad9zcqn5snhgv20cmpqr69b";
+      sha256 = "0hdcq6d55vs5cdj1rgr13vn10mfwdkphsahiiz4i2j9f3wz8rp7g";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   actiontext = {
     dependencies = ["actionpack" "activerecord" "activestorage" "activesupport" "globalid" "nokogiri"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i47r3n2m8qm002gx7c0lx1pv15pr2zy57dm8j38x960rsb655pp";
+      sha256 = "0q6c3jpr8av62bgb1pc8f7xh11kwd41dysi0aychx260glw80llp";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   actionview = {
     dependencies = ["activesupport" "builder" "erubi" "rails-dom-testing" "rails-html-sanitizer"];
@@ -60,10 +60,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xnpdwj1d8m6c2d90jp9cs50ggiz0jj02ls2h9lg68k4k8mnjbd2";
+      sha256 = "1c6k5d7agz4svnvycdharcffkd5zwrwrl8cmyqn9lrral3lhkiy2";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   activejob = {
     dependencies = ["activesupport" "globalid"];
@@ -71,10 +71,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1cn1ic7ml75jm0c10s7cm5mvcgfnafj0kjvvjavpjcxgz6lxcqyb";
+      sha256 = "02sawsi5r7pwvg0kmx9i2l9n69nqs406wsxlypbh8cpj8h0aawlk";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   activemodel = {
     dependencies = ["activesupport"];
@@ -82,43 +82,43 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "004w8zaz2g3y6lnrsvlcmljll0m3ndqpgwf0wfscgq6iysibiglm";
+      sha256 = "01jrk2i6vp8jcll65d03mqmp1ibxa0ip7bdg5157fkm5syblzsqw";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   activerecord = {
-    dependencies = ["activemodel" "activesupport"];
+    dependencies = ["activemodel" "activesupport" "timeout"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04wavps80q3pvhvfbmi4gs102y1p6mxbg8xylzvib35b6m92adpj";
+      sha256 = "1lpcbgqbrb3yfk3i66mnxa5i36r0ig9dwzksjbm15i30rndr27p5";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   activestorage = {
-    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel" "mini_mime"];
+    dependencies = ["actionpack" "activejob" "activerecord" "activesupport" "marcel"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d6vm6alsp0g6f3548b615zxbz8l2wrmaikwgsf8kv11wf6swb4c";
+      sha256 = "1g4ic06i3lkinziq6amhczdw0swq54cglb35by2lmfm8g5wkn0cb";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   activesupport = {
-    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    dependencies = ["base64" "bigdecimal" "concurrent-ruby" "connection_pool" "drb" "i18n" "minitest" "mutex_m" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "188kbwkn1lbhz40ala8ykp20jzqphgc68g3d8flin8cqa2xid0s5";
+      sha256 = "1xpwx7hw7mgmjk3w3g8bkz5jfapixhgn3ihly0xkpyvgp1shp8h1";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -373,10 +373,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c25gpi6vrv4fvhwfqscjq5pqqg3g3s3vjm6z8xmgbi9bl9m7ws8";
+      sha256 = "1mwcdg1i4126jf2qcsp4mhd1vqzqd8ck08wpyassz1sg0a8yxw4j";
       type = "gem";
     };
-    version = "1.12.1";
+    version = "1.13.0";
   };
   cocoapods-acknowledgements = {
     dependencies = ["cocoapods" "redcarpet" "xcodeproj"];
@@ -394,10 +394,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yi4dgl6w6fs35szsxb4z24d7svmqgxyr4ma4hsrcsb2pv4qk3xj";
+      sha256 = "1qxwlsqwg6wa2aa3acf4jvgi3vpxlpdj8qq35jyhkyl16n4hrr1b";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   cocoapods-browser = {
     dependencies = ["cocoapods"];
@@ -436,10 +436,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "03hz6i56603j3zlxy9is74bgs88isrnj9y7xc6wakr4c0m238hv9";
+      sha256 = "1g944vch2mllh8lijbfgl0c2kn9gi5vsg9y9v67x0qca5b1bx4id";
       type = "gem";
     };
-    version = "1.12.1";
+    version = "1.13.0";
   };
   cocoapods-coverage = {
     dependencies = ["cocoapods-testing" "slather"];
@@ -529,10 +529,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06rvrsb5p4j9pwqg7xzx8kv0v4x3wwjbiw6y2i905qhyqxqrww2l";
+      sha256 = "0216rwc4r0z0a1gvckphn7x9qk7zn00ivc49kv0hgafmrmaf2wy3";
       type = "gem";
     };
-    version = "2.2.4";
+    version = "2.2.5";
   };
   cocoapods-git_url_rewriter = {
     groups = ["default"];
@@ -917,6 +917,17 @@
     };
     version = "2.8.1";
   };
+  drb = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0h9c2qiam82y3caapa2x157j1lkk9954hrjg3p22hxcsk8fli3vb";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
   e2mmap = {
     groups = ["default"];
     platforms = [];
@@ -1006,31 +1017,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mbkyyadz9vw7mzixi9dks6i6iw033yn2hzwfvnfdvgqq6ywqs4g";
+      sha256 = "104vrqqy6bszbhpvabgz9ra7dm6lnb5jwzwqm2fks0ka44spknyl";
       type = "gem";
     };
-    version = "0.102.0";
+    version = "0.104.0";
   };
   execjs = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "121h6af4i6wr3wxvv84y53jcyw2sk71j5wsncm6wq6yqrwcrk4vd";
+      sha256 = "1yywajqlpjhrj1m43s3lfg3i4lkb6pxwccmwps7qw37ndmphdzg8";
       type = "gem";
     };
-    version = "2.8.1";
+    version = "2.9.1";
   };
   faraday = {
-    dependencies = ["faraday-net_http" "ruby2_keywords"];
+    dependencies = ["base64" "faraday-net_http" "ruby2_keywords"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "187clqhp9mv5mnqmjlfdp57svhsg1bggz84ak8v333j9skrnrgh9";
+      sha256 = "0vn7jwss2v6jhnxvjsiwbs3irjwhbx9zxn4l6fhd4rkcfyxzdnw5";
       type = "gem";
     };
-    version = "2.7.10";
+    version = "2.7.11";
   };
   faraday-net_http = {
     groups = ["default"];
@@ -1047,10 +1058,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1862ydmclzy1a0cjbvm8dz7847d9rch495ib0zb64y84d3xd4bkg";
+      sha256 = "1yvii03hcgqj30maavddqamqy50h7y6xcn2wcyq72wn823zl4ckd";
       type = "gem";
     };
-    version = "1.15.5";
+    version = "1.16.3";
   };
   ffi-compiler = {
     dependencies = ["ffi" "rake"];
@@ -1302,10 +1313,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "154svzqlkdq7gslv3p8mfih28gbw4gsj4pd8wr1wpwz6nyzmhh8m";
+      sha256 = "1i6xmglna30galqdsq7iq0pwxxwyrs57ymwmxhash4jhnsk7wk7z";
       type = "gem";
     };
-    version = "6.1.2";
+    version = "6.2.3";
   };
   hashie = {
     groups = ["default"];
@@ -1482,6 +1493,27 @@
     };
     version = "8.0.0";
   };
+  io-console = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dikardh14c72gd9ypwh8dim41wvqmzfzf35mincaj5yals9m7ff";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  irb = {
+    dependencies = ["rdoc" "reline"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17p6arsklbzh2hvwwr8i4cfrpa7vhk8q88fhickhwmn7m80lxdw7";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
   jaro_winkler = {
     groups = ["default"];
     platforms = [];
@@ -2229,10 +2261,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "17zdim7kzrh5j8c97vjqp4xp78wbyz7smdp4hi5iyzk0s9imdn5a";
+      sha256 = "0yjv0apysnrhbc70ralinfpcqn9382lxr643swp7a5sdwpa9cyqg";
       type = "gem";
     };
-    version = "3.2023.0808";
+    version = "3.2023.1003";
   };
   mini_magick = {
     groups = ["default"];
@@ -2326,6 +2358,16 @@
     };
     version = "3.0.0";
   };
+  mutex_m = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1pkxnp7p44kvs460bbbgjarr7xy1j8kjjmhwkg1kypj9wgmwb6qa";
+      type = "gem";
+    };
+    version = "0.1.2";
+  };
   mysql2 = {
     groups = ["default"];
     platforms = [];
@@ -2382,10 +2424,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lf7wqg7czhaj51qsnmn28j7jmcxhkh3m28rl1cjrqsgjxhwj7r3";
+      sha256 = "129h6qs08iyl976zzs96pqbigd82rz89jn3fd71xi0s82q7sl0h0";
       type = "gem";
     };
-    version = "0.3.7";
+    version = "0.4.0";
   };
   net-pop = {
     dependencies = ["net-protocol"];
@@ -2426,10 +2468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1c6md06hm5bf6rv53sk54dl2vg038pg8kglwv3rayx0vk2mdql9x";
+      sha256 = "1rx3758w0bmbr21s2nsc6llflsrnp50fwdnly3ixra4v53gbhzid";
       type = "gem";
     };
-    version = "0.3.3";
+    version = "0.4.0";
   };
   net-ssh = {
     groups = ["default"];
@@ -2510,10 +2552,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c649921vg2l939z5cc3jwd8p1v49099pdhxfk7sb9qqx5wi5873";
+      sha256 = "054d6ybgjdzxw567m7rbnd46yp6gkdbc5ihr536vxd3p15vbhjrw";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.2.0";
   };
   optimist = {
     groups = ["default"];
@@ -2553,10 +2595,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hi3jcm9s7hkv35gzgdh3nxs0s9h7kkqwv1x6kalww15msk60fxd";
+      sha256 = "1rqjqv5gk89xdyva8i6lak5hsd97mcrsk4l6bdg94ig98ac55as5";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "1.1.1";
   };
   pango = {
     dependencies = ["cairo-gobject" "gobject-introspection"];
@@ -2585,10 +2627,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1swigds85jddb5gshll1g8lkmbcgbcp9bi1d4nigwvxki8smys0h";
+      sha256 = "0r69dbh6h6j4d54isany2ir4ni4gf2ysvk3k44awi6amz18nggpd";
       type = "gem";
     };
-    version = "3.2.2.3";
+    version = "3.2.2.4";
   };
   paru = {
     groups = ["default"];
@@ -2726,6 +2768,17 @@
     };
     version = "1.4.0";
   };
+  psych = {
+    dependencies = ["stringio"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1msambb54r3d1sg6smyj4k2pj9h9lz8jq4jamip7ivcyv32a85vz";
+      type = "gem";
+    };
+    version = "5.1.0";
+  };
   public_suffix = {
     groups = ["default"];
     platforms = [];
@@ -2742,10 +2795,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x4dwx2shx0p7lsms97r85r7ji7zv57bjy3i1kmcpxc8bxvrr67c";
+      sha256 = "1y8jcw80zcxvdq0id329lzmp5pzx7hpac227d7sgjkblc89s3pfm";
       type = "gem";
     };
-    version = "6.3.1";
+    version = "6.4.0";
   };
   pwntools = {
     dependencies = ["crabstone" "dentaku" "elftools" "keystone-engine" "method_source" "one_gadget" "rainbow" "ruby2ruby" "rubyserial"];
@@ -2789,6 +2842,17 @@
     };
     version = "3.1.0";
   };
+  rack-session = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11w6yd60n8ng1ncs1ajlv42dg08yks09drlsgriydgpcjwz21d40";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   rack-test = {
     dependencies = ["rack"];
     groups = ["default"];
@@ -2800,16 +2864,27 @@
     };
     version = "2.1.0";
   };
+  rackup = {
+    dependencies = ["rack" "webrick"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wbr03334ba9ilcq25wh9913xciwj0j117zs60vsqm0zgwdkwpp9";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
   rails = {
     dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rsqin156dawz7gzpy1ijs02afqcr4704vqj56s6yxng3a9ayhwf";
+      sha256 = "0bzzryklzna9lsmf34sj52x1wvb81wxwaiwa95hblan11wng43jk";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   rails-dom-testing = {
     dependencies = ["activesupport" "minitest" "nokogiri"];
@@ -2834,15 +2909,15 @@
     version = "1.6.0";
   };
   railties = {
-    dependencies = ["actionpack" "activesupport" "method_source" "rake" "thor" "zeitwerk"];
+    dependencies = ["actionpack" "activesupport" "irb" "rackup" "rake" "thor" "zeitwerk"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sfc16zrcn4jgf5xczb08n6prhmqqgg9f0b4mn73zlzg6cwmqchj";
+      sha256 = "0iyjy761sfk238by4br38j5a24bwvfhsr3wjm5yqf4gjw1srr7rx";
       type = "gem";
     };
-    version = "7.0.8";
+    version = "7.1.0";
   };
   rainbow = {
     groups = ["default"];
@@ -2926,15 +3001,27 @@
     };
     version = "1.8.0";
   };
+  rdoc = {
+    dependencies = ["psych"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "05r2cxscapr9saqjw8dlp89as7jvc2mlz1h5kssrmkbz105qmfcm";
+      type = "gem";
+    };
+    version = "6.5.0";
+  };
   re2 = {
+    dependencies = ["mini_portile2"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "00yryimbkm1k85n99f81n7cripkmh14459c9pmb7prl9nbiikkqc";
+      sha256 = "13xfrx1wwq7n2qsw449fq8h611n05v400i9dz9k6pdia019hp8q3";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "2.1.3";
   };
   red-colors = {
     dependencies = ["matrix"];
@@ -2996,10 +3083,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i426w3yqd43xi877c1qqkrrr5s1zx2h46g8n738lx1g21sfd684";
+      sha256 = "17mhr1g3lmacrgjndbmrklngy32g55165n53111q70kykx7qjn7j";
       type = "gem";
     };
-    version = "1.9.2";
+    version = "1.10.0";
   };
   regexp_parser = {
     groups = ["default"];
@@ -3011,6 +3098,17 @@
     };
     version = "2.8.1";
   };
+  reline = {
+    dependencies = ["io-console"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0187pj9k7d8kdvzjk6r6mf7z7wy18saxxhn7x7pqc840w6h4s0ja";
+      type = "gem";
+    };
+    version = "0.3.9";
+  };
   rest-client = {
     dependencies = ["http-accept" "http-cookie" "mime-types" "netrc"];
     groups = ["default"];
@@ -3134,10 +3232,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hr8g9pqw3w87a83kqcxpayrx4jmsziharrg4vqw0gr9kksx2dfv";
+      sha256 = "0wgnf17sq22f4f79r44hxbd1w0ivvl89mbjshpzqzd4zk199y8wq";
       type = "gem";
     };
-    version = "1.56.2";
+    version = "1.56.4";
   };
   rubocop-ast = {
     dependencies = ["parser"];
@@ -3156,10 +3254,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v3a2g3wk3aqa0k0zzla10qkxlc625zkj3yf4zcsybs86r5bm4xn";
+      sha256 = "1pzsrnjmrachdjxzl9jpw47cydicn3408vgdg3a4bss4v5r42rjj";
       type = "gem";
     };
-    version = "1.19.0";
+    version = "1.19.1";
   };
   ruby-graphviz = {
     dependencies = ["rexml"];
@@ -3194,15 +3292,15 @@
     version = "0.8.0";
   };
   ruby-lsp = {
-    dependencies = ["language_server-protocol" "sorbet-runtime" "syntax_tree" "yarp"];
+    dependencies = ["language_server-protocol" "sorbet-runtime" "yarp"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1310xzjad432d18w882q6j9xgwim6fslgrmh78v49xc8py7rszyk";
+      sha256 = "0drw0zbymw9bb2jln5arqk8vw1w0h68bk8h87ppws72695z5r6vb";
       type = "gem";
     };
-    version = "0.9.4";
+    version = "0.11.1";
   };
   ruby-lxc = {
     groups = ["default"];
@@ -3399,10 +3497,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12vybpvczsd7sybvz44h35n5yzwsbp1d3qn743qw5gs6p362f2av";
+      sha256 = "0xxdnal3qh53kvp72ykf6jbcv7m69bjg61h59awp3xbzmdqli7q5";
       type = "gem";
     };
-    version = "5.72.0";
+    version = "5.73.0";
   };
   sequel_pg = {
     dependencies = ["pg" "sequel"];
@@ -3484,10 +3582,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0kdigir21jinkkj4q3cjsswix26lmff1rmnwjz2ywc6y9d8ib9ak";
+      sha256 = "1zw9iqvg6a0cri1v1pwymsxw5cjic4vcmi0ziss123d3g175fi3w";
       type = "gem";
     };
-    version = "2.7.4";
+    version = "2.7.5";
   };
   slop = {
     groups = ["default"];
@@ -3535,10 +3633,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dz1h8sjb1rv52673ji0ji95zfy7vfbl6id52p2f3046xk0snjib";
+      sha256 = "12jxz8xwy1mr4yfrdfs2zhf3pigli8bk0pdc5lnf82vdk8vadpmy";
       type = "gem";
     };
-    version = "0.5.11011";
+    version = "0.5.11064";
   };
   sqlite3 = {
     dependencies = ["mini_portile2"];
@@ -3546,10 +3644,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kpxfxpjv5h1is0s9zj7d6grh4bsvr0cf6b976mpamdrc39gw9pv";
+      sha256 = "15415lmz69jbzl6nch4q5l2jxv054676nk6y0vgy0g3iklmjrxvc";
       type = "gem";
     };
-    version = "1.6.5";
+    version = "1.6.6";
+  };
+  stringio = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ix96dxbjqlpymdigb4diwrifr0bq7qhsrng95fkkp18av326nqk";
+      type = "gem";
+    };
+    version = "3.0.8";
   };
   syntax_tree = {
     dependencies = ["prettier_print"];
@@ -3557,10 +3665,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "162m5xhbiq315bncp49ziddws537dv09pqsgrzsrmhhsymhgy0zb";
+      sha256 = "0g9l9acknjr2yz8ynfxbcrwx2ws3wh96pfzdb31g66k08v1022m5";
       type = "gem";
     };
-    version = "6.1.1";
+    version = "6.2.0";
   };
   syntax_tree-haml = {
     dependencies = ["haml" "prettier_print" "syntax_tree"];
@@ -3599,10 +3707,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09p32vp94sa1mbr0if0adf02yzc4ns00lsmpwns2xbkncwpzrqm4";
+      sha256 = "0fwia5hvc1xz9w7vprzjnsym3v9j5l9ggdvy70jixbvpcpz4acfz";
       type = "gem";
     };
-    version = "0.10.2";
+    version = "0.10.3";
   };
   terminal-table = {
     groups = ["default"];
@@ -3639,10 +3747,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bmjgbv8158klwp2r3klxjwaj93nh1sbl4xvj9wsha0ic478avz7";
+      sha256 = "0p3l7v619hwfi781l3r7ypyv1l8hivp09r18kmkn6g11c4yr1pc2";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.3.0";
   };
   timeout = {
     groups = ["default"];
@@ -3765,10 +3873,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1gi82k102q7bkmfi7ggn9ciypn897ylln1jk9q67kjhr39fj043a";
+      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
       type = "gem";
     };
-    version = "2.4.2";
+    version = "2.5.0";
   };
   uuid4r = {
     groups = ["default"];
@@ -3791,6 +3899,16 @@
     };
     version = "7.0.0";
   };
+  webrick = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13qm7s0gr2pmfcl7dxrmq38asaza4w0i2n9my4yzs499j731wh8r";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
   websocket-driver = {
     dependencies = ["websocket-extensions"];
     groups = ["default"];
@@ -3828,10 +3946,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1s7hxaqd1fi4rlmm2jbrglyvka1r95frlxan61vfcnd8n6pxynpi";
+      sha256 = "176ndahc5fssyx04q176vy6wngs1av4vrsdrkdpjij700hqll8hn";
       type = "gem";
     };
-    version = "1.22.0";
+    version = "1.23.0";
   };
   xctasks = {
     groups = ["default"];
@@ -3858,20 +3976,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bz9lkbcj0q1njggin5g9gi4v15x8qj3dma5vmwibfnf5mzznvx5";
+      sha256 = "1nqmiw4477afgk2n9ily1gvk78hvg7zj24cdah10m8m8va21r9ir";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.12.0";
   };
   zeitwerk = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1mwdd445w63khz13hpv17m2br5xngyjl3jdj08xizjbm78i2zrxd";
+      sha256 = "1gir0if4nryl1jhwi28669gjwhxb7gzrm1fcc8xzsch3bnbi47jn";
       type = "gem";
     };
-    version = "2.6.11";
+    version = "2.6.12";
   };
   zookeeper = {
     groups = ["default"];