about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2024-02-26 16:20:28 +0100
committerAlyssa Ross <hi@alyssa.is>2024-02-26 16:20:28 +0100
commit647438344bfc1f77791391e2b4f98eef865c63dc (patch)
treeef580867fc6cc413940e4330d939cf1afda082cb /nixpkgs/pkgs/development/libraries
parentb084c6a0fab7f32c904c5c8e8db8dddcefbe507f (diff)
parente3474e1d1e53b70e2b2af73ea26d6340e82f6b8b (diff)
downloadnixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar
nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.gz
nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.bz2
nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.lz
nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.xz
nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.tar.zst
nixlib-647438344bfc1f77791391e2b4f98eef865c63dc.zip
Merge commit 'e3474e1d1e53'
Diffstat (limited to 'nixpkgs/pkgs/development/libraries')
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ada/gnatcoll/bindings.nix89
-rw-r--r--nixpkgs/pkgs/development/libraries/ada/gnatcoll/core.nix47
-rw-r--r--nixpkgs/pkgs/development/libraries/ada/gnatcoll/db.nix107
-rw-r--r--nixpkgs/pkgs/development/libraries/ada/spark2014/default.nix67
-rw-r--r--nixpkgs/pkgs/development/libraries/ada/xmlada/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-c-compression/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/aws-checksums/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/c-ares/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/chromaprint/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/clipper2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/collada-dom/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/cxxopts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/double-conversion/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/dqlite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/easyloggingpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/edencommon/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/eigen/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/enchant/2.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/expat/2.6.0-fix-tests-flakiness.patch252
-rw-r--r--nixpkgs/pkgs/development/libraries/expat/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/fastcdr/0001-Do-not-require-wget-and-unzip.patch34
-rw-r--r--nixpkgs/pkgs/development/libraries/fastcdr/default.nix64
-rw-r--r--nixpkgs/pkgs/development/libraries/fb303/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/fbthrift/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/6.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/fizz/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/folly/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/freeimage/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/fribidi/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/functionalplus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/tests.nix58
-rw-r--r--nixpkgs/pkgs/development/libraries/gjs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/glfw/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gnutls/default.nix82
-rw-r--r--nixpkgs/pkgs/development/libraries/gpgme/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/gpgme/python-310-312-remove-distutils.patch647
-rw-r--r--nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch273
-rw-r--r--nixpkgs/pkgs/development/libraries/graphene/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/grpc/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/gssdp/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtest/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch48
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/4.x.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/patches/4.0-fix-darwin-build.patch31
-rw-r--r--nixpkgs/pkgs/development/libraries/harfbuzz/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/hspell/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/hspell/dicts.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/hspell/remove-shared-library-checks.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/58.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/60.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/63.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/64.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/66.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/67.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/68.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/69.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/70.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/71.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/72.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/73.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/default.nix77
-rw-r--r--nixpkgs/pkgs/development/libraries/icu/make-icu.nix (renamed from nixpkgs/pkgs/development/libraries/icu/base.nix)25
-rw-r--r--nixpkgs/pkgs/development/libraries/imath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/imgui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/inih/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/iso-codes/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/jffi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--nixpkgs/pkgs/development/libraries/kerberos/krb5.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/leatherman/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lib3mf/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/lib3mf/upgrade-to-cpp-14.patch18
-rw-r--r--nixpkgs/pkgs/development/libraries/libadwaita/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libavif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libbsd/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/libdeflate/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/libei/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libepoxy/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/libffi/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libfive/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libgit2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libinput/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libosmium/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libpaper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libpsl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libqtdbusmock/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch9
-rw-r--r--nixpkgs/pkgs/development/libraries/libsass/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libsecret/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libtiff/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libunwind/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libuv/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libwacom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/libxml2/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/lightning/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/llhttp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/backports/0001-dri-added-build-dependencies-for-systems-using-non-s.patch56
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/backports/0002-util-Update-util-libdrm.h-stubs-to-allow-loader.c-to.patch103
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/backports/0003-glx-fix-automatic-zink-fallback-loading-between-hw-a.patch53
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix93
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/musl.patch59
-rw-r--r--nixpkgs/pkgs/development/libraries/mpdecimal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mps/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/mvfst/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/nco/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/nss/esr.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ocl-icd/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/onnxruntime/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/openbabel/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/opencl-headers/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/opencolorio/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/opencolorio/line-numbers.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/4.x.nix202
-rw-r--r--nixpkgs/pkgs/development/libraries/openexr/3.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/openh264/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/openscenegraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pango/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/pdal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/rivet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/yoda/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pixman/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/protozero/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs-generated.json8
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialport.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtspeech.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qttools.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebengine.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebview.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-6/qtModule.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/rapidjson/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/re2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/6.3.nix68
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/android.patch16
-rw-r--r--nixpkgs/pkgs/development/libraries/readline/readline-6.3-patches.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tracker/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/wangle/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/wayland/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/yajl/cmake-shared-static-fix.patch89
-rw-r--r--nixpkgs/pkgs/development/libraries/yajl/default.nix11
175 files changed, 2415 insertions, 2341 deletions
diff --git a/nixpkgs/pkgs/development/libraries/SDL2/default.nix b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
index 2532bab798bc..167f0cbe7638 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
@@ -58,13 +58,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "SDL2";
-  version = "2.28.5";
+  version = "2.30.0";
 
   src = fetchFromGitHub {
     owner = "libsdl-org";
     repo = "SDL";
     rev = "release-${finalAttrs.version}";
-    hash = "sha256-YcM7bfLo+KkWx8LdtG4z2UwJvzlEkvIkm+M5aMSztwU=";
+    hash = "sha256-uKL9/T6vCEqMqmD3Q3rCMtKPRJZ4fRYVUr+4628/Ajg=";
   };
   dontDisableStatic = if withStatic then 1 else 0;
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/ada/gnatcoll/bindings.nix b/nixpkgs/pkgs/development/libraries/ada/gnatcoll/bindings.nix
deleted file mode 100644
index c8896c14c32f..000000000000
--- a/nixpkgs/pkgs/development/libraries/ada/gnatcoll/bindings.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, gnat
-, gprbuild
-, gnatcoll-core
-, component
-# component dependencies
-, gmp
-, libiconv
-, xz
-, gcc-unwrapped
-, readline
-, zlib
-, python3
-, ncurses
-, darwin
-}:
-
-let
-  # omit python (2.7), no need to introduce a
-  # dependency on an EOL package for no reason
-  libsFor = {
-    iconv = [ libiconv ];
-    gmp = [ gmp ];
-    lzma = [ xz ];
-    readline = [ readline ];
-    python3 = [ python3 ncurses ];
-    syslog = [ ];
-    zlib = [ zlib ];
-  };
-in
-
-
-stdenv.mkDerivation rec {
-  pname = "gnatcoll-${component}";
-  version = "24.0.0";
-
-  src = fetchFromGitHub {
-    owner = "AdaCore";
-    repo = "gnatcoll-bindings";
-    rev = "v${version}";
-    sha256 = "00aakpmr67r72l1h3jpkaw83p1a2mjjvfk635yy5c1nss3ji1qjm";
-  };
-
-  nativeBuildInputs = [
-    gprbuild
-    gnat
-    python3
-  ];
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.CoreFoundation
-  ];
-
-  # propagate since gprbuild needs to find referenced .gpr files
-  # and all dependency C libraries when statically linking a
-  # downstream executable.
-  propagatedBuildInputs = [
-    gnatcoll-core
-  ] ++ libsFor."${component}" or [];
-
-  # explicit flag for GPL acceptance because upstreams
-  # allows a gcc runtime exception for all bindings
-  # except for readline (since it is GPL w/o exceptions)
-  buildFlags = lib.optionals (component == "readline") [
-    "--accept-gpl"
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-    ${python3.interpreter} ${component}/setup.py build --prefix $out $buildFlags
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-    ${python3.interpreter} ${component}/setup.py install --prefix $out
-    runHook postInstall
-  '';
-
-  meta = with lib; {
-    description = "GNAT Components Collection - Bindings to C libraries";
-    homepage = "https://github.com/AdaCore/gnatcoll-bindings";
-    license = licenses.gpl3Plus;
-    platforms = platforms.all;
-    maintainers = [ maintainers.sternenseemann ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/ada/gnatcoll/core.nix b/nixpkgs/pkgs/development/libraries/ada/gnatcoll/core.nix
deleted file mode 100644
index 7fdd4e99d550..000000000000
--- a/nixpkgs/pkgs/development/libraries/ada/gnatcoll/core.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv
-, lib
-, gnat
-, gprbuild
-, fetchFromGitHub
-, xmlada
-, which
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gnatcoll-core";
-  version = "24.0.0";
-
-  src = fetchFromGitHub {
-    owner = "AdaCore";
-    repo = "gnatcoll-core";
-    rev = "v${version}";
-    sha256 = "1cks2w0inj9hvamsdxjriwxnx1igmx2khhr6kwxshsl30rs8nzvb";
-  };
-
-  nativeBuildInputs = [
-    gprbuild
-    which
-    gnat
-  ];
-
-  # propagate since gprbuild needs to find
-  # referenced GPR project definitions
-  propagatedBuildInputs = [
-    gprbuild # libgpr
-  ];
-
-  makeFlags = [
-    "prefix=${placeholder "out"}"
-    "PROCESSORS=$(NIX_BUILD_CORES)"
-    # confusingly, for gprbuild --target is autoconf --host
-    "TARGET=${stdenv.hostPlatform.config}"
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/AdaCore/gnatcoll-core";
-    description = "GNAT Components Collection - Core packages";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.sternenseemann ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/ada/gnatcoll/db.nix b/nixpkgs/pkgs/development/libraries/ada/gnatcoll/db.nix
deleted file mode 100644
index 6eacff1ddb82..000000000000
--- a/nixpkgs/pkgs/development/libraries/ada/gnatcoll/db.nix
+++ /dev/null
@@ -1,107 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, gnat
-, gprbuild
-, which
-, gnatcoll-core
-, xmlada
-, component
-# components built by this derivation other components depend on
-, gnatcoll-sql
-, gnatcoll-sqlite
-, gnatcoll-xref
-# component specific extra dependencies
-, gnatcoll-iconv
-, gnatcoll-readline
-, sqlite
-, postgresql
-}:
-
-let
-  libsFor = {
-    gnatcoll_db2ada = [
-      gnatcoll-sql
-    ];
-    gnatinspect = [
-      gnatcoll-sqlite
-      gnatcoll-readline
-      gnatcoll-xref
-    ];
-    postgres = [
-      gnatcoll-sql
-      postgresql
-    ];
-    sqlite = [
-      gnatcoll-sql
-      sqlite
-    ];
-    xref = [
-      gnatcoll-iconv
-      gnatcoll-sqlite
-    ];
-  };
-
-  # These components are just tools and don't install a library
-  onlyExecutable = builtins.elem component [
-    "gnatcoll_db2ada"
-    "gnatinspect"
-  ];
-in
-
-stdenv.mkDerivation rec {
-  # executables don't adhere to the string gnatcoll-* scheme
-  pname =
-    if onlyExecutable
-    then builtins.replaceStrings [ "_" ] [ "-" ] component
-    else "gnatcoll-${component}";
-  version = "24.0.0";
-
-  src = fetchFromGitHub {
-    owner = "AdaCore";
-    repo = "gnatcoll-db";
-    rev = "v${version}";
-    sha256 = "0jq76s4s7q2x93jh8la6r0i3jkpvgsfj12vbbaqabh410xccyr3p";
-  };
-
-  # Link executables dynamically unless specified by the platform,
-  # as we usually do in nixpkgs where possible
-  postPatch = lib.optionalString (!stdenv.hostPlatform.isStatic) ''
-    for f in gnatcoll_db2ada/Makefile gnatinspect/Makefile; do
-      substituteInPlace "$f" --replace "=static" "=relocatable"
-    done
-  '';
-
-  nativeBuildInputs = [
-    gnat
-    gprbuild
-    which
-  ];
-
-  # Propagate since GPRbuild needs to find referenced .gpr files
-  # and other libraries to link against when static linking is used.
-  # For executables this is of course not relevant and we can reduce
-  # the closure size dramatically
-  ${if onlyExecutable then "buildInputs" else "propagatedBuildInputs"} = [
-    gnatcoll-core
-  ] ++ libsFor."${component}" or [];
-
-  makeFlags = [
-    "-C" component
-    "PROCESSORS=$(NIX_BUILD_CORES)"
-    # confusingly, for gprbuild --target is autoconf --host
-    "TARGET=${stdenv.hostPlatform.config}"
-    "prefix=${placeholder "out"}"
-  ] ++ lib.optionals (component == "sqlite") [
-    # link against packaged, not vendored libsqlite3
-    "GNATCOLL_SQLITE=external"
-  ];
-
-  meta = with lib; {
-    description = "GNAT Components Collection - Database packages";
-    homepage = "https://github.com/AdaCore/gnatcoll-db";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.sternenseemann ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/ada/spark2014/default.nix b/nixpkgs/pkgs/development/libraries/ada/spark2014/default.nix
deleted file mode 100644
index a52a5ac63f71..000000000000
--- a/nixpkgs/pkgs/development/libraries/ada/spark2014/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, gnat12
-, gnatcoll-core
-, gprbuild
-, python3
-, ocamlPackages
-, makeWrapper
-}:
-
-stdenv.mkDerivation rec {
-  pname = "spark2014";
-  version = "unstable-2022-05-25";
-
-  src = fetchFromGitHub {
-    owner = "AdaCore";
-    repo = "spark2014";
-    # commit on fsf-12 branch
-    rev = "ab34e07080a769b63beacc141707b5885c49d375";
-    sha256 = "sha256-7pe3eWitpxmqzjW6qEIEuN0qr2IR+kJ7Ssc9pTBcCD8=";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [
-    gnat12
-    gprbuild
-    python3
-    ocamlPackages.ocaml
-    makeWrapper
-  ];
-
-  buildInputs = [
-    gnatcoll-core
-    ocamlPackages.camlzip
-    ocamlPackages.findlib
-    ocamlPackages.menhir
-    ocamlPackages.menhirLib
-    ocamlPackages.num
-    ocamlPackages.yojson
-    ocamlPackages.zarith
-  ];
-
-  postPatch = ''
-    # gnat2why/gnat_src points to the GNAT sources
-    tar xf ${gnat12.cc.src} gcc-${gnat12.cc.version}/gcc/ada
-    mv gcc-${gnat12.cc.version}/gcc/ada gnat2why/gnat_src
-  '';
-
-  configurePhase = ''
-    make setup
-  '';
-
-  installPhase = ''
-    make install-all
-    cp -a ./install/. $out
-  '';
-
-  meta = with lib; {
-    description = "a software development technology specifically designed for engineering high-reliability applications";
-    homepage = "https://github.com/AdaCore/spark2014";
-    maintainers = [ maintainers.jiegec ];
-    license = licenses.gpl3;
-    platforms = platforms.all;
-  };
-}
-
diff --git a/nixpkgs/pkgs/development/libraries/ada/xmlada/default.nix b/nixpkgs/pkgs/development/libraries/ada/xmlada/default.nix
deleted file mode 100644
index 77e8094277a7..000000000000
--- a/nixpkgs/pkgs/development/libraries/ada/xmlada/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, gnat
-# use gprbuild-boot since gprbuild proper depends
-# on this xmlada derivation.
-, gprbuild-boot
-}:
-
-stdenv.mkDerivation rec {
-  pname = "xmlada";
-  version = "24.0.0";
-
-  src = fetchFromGitHub {
-    name = "xmlada-${version}-src";
-    owner = "AdaCore";
-    repo = "xmlada";
-    rev = "v${version}";
-    sha256 = "sha256-vvM7bdf3dAa3zKgxbGeAGlBT6fvafzmleimJHyRdlvc=";
-  };
-
-  nativeBuildInputs = [
-    gnat
-    gprbuild-boot
-  ];
-
-  meta = with lib; {
-    description = "XML/Ada: An XML parser for Ada";
-    homepage = "https://github.com/AdaCore/xmlada";
-    maintainers = [ maintainers.sternenseemann ];
-    license = licenses.gpl3Plus;
-    platforms = platforms.all;
-  };
-}
-
diff --git a/nixpkgs/pkgs/development/libraries/appstream/default.nix b/nixpkgs/pkgs/development/libraries/appstream/default.nix
index c5fb2036d324..ff953b621635 100644
--- a/nixpkgs/pkgs/development/libraries/appstream/default.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream/default.nix
@@ -25,10 +25,11 @@
 , curl
 , systemd
 , nixosTests
+, testers
 , withSystemd ? lib.meta.availableOn stdenv.hostPlatform systemd
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "appstream";
   version = "1.0.1";
 
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "ximion";
     repo = "appstream";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-ULqRHepWVuAluXsXJUoqxqJfrN168MGlwdVkoLLwSN0=";
   };
 
@@ -97,9 +98,10 @@ stdenv.mkDerivation rec {
     "-Dsystemd=false"
   ];
 
-  passthru = {
-    tests = {
-      installed-tests = nixosTests.installed-tests.appstream;
+  passthru.tests = {
+    installed-tests = nixosTests.installed-tests.appstream;
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
     };
   };
 
@@ -115,5 +117,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     mainProgram = "appstreamcli";
     platforms = platforms.unix;
+    pkgConfigModules = [ "appstream" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix b/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix
index ea8a2133c82b..ba5b3d6ddd51 100644
--- a/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix
@@ -103,8 +103,9 @@ let
         homepage = "http://ftp.gnu.org/gnu/aspell/dict/0index.html";
       } // (args.meta or {});
 
-    } // lib.optionalAttrs (stdenv.isDarwin && lib.elem language [ "is" "nb" ]) {
-      # tar: Cannot open: Illegal byte sequence
+    } // lib.optionalAttrs (lib.elem language [ "is" "nb" ]) {
+      # These have Windows-1251 encoded non-ASCII characters,
+      # so need some special handling.
       unpackPhase = ''
         runHook preUnpack
 
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
index 6340545e3667..68c575312d49 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-cal/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-cal";
-  version = "0.6.9";
+  version = "0.6.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-m/RwGXeSjYOJQwCxfPyL4TdJ3gV66zHgVkWd3bpSaJE=";
+    sha256 = "sha256-rzJypIf0DrKI/2Wt5vFop34dL+KYTeCfWC0RflZpiMo=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/aws-c-compression/default.nix b/nixpkgs/pkgs/development/libraries/aws-c-compression/default.nix
index cc486bc3e6d7..e38279ff060a 100644
--- a/nixpkgs/pkgs/development/libraries/aws-c-compression/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-c-compression/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-compression";
-  version = "0.2.17";
+  version = "0.2.18";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-compression";
     rev = "v${version}";
-    sha256 = "sha256-XtmSThfz4Cu7CygYrLNQifDCQ6l/c/0OR0lX+OxCYJM=";
+    sha256 = "sha256-Cf3MvoRWGAy+vlE59JSpTGOBl07dI4mbIaL1HIiLN/I=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/aws-checksums/default.nix b/nixpkgs/pkgs/development/libraries/aws-checksums/default.nix
index 722c77f32de6..41da5e247e94 100644
--- a/nixpkgs/pkgs/development/libraries/aws-checksums/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aws-checksums/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-checksums";
-  version = "0.1.17";
+  version = "0.1.18";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OoEwubEEkLJmlqmQR4/rp4+b1WYJEbcjYDSdXXHleZQ=";
+    sha256 = "sha256-EhIVa8/IK4evGt4vYECunLpxrCMSOsr1RZ/8hFbRi9M=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/c-ares/default.nix b/nixpkgs/pkgs/development/libraries/c-ares/default.nix
index 60578f79ea57..e18f56fc2f48 100644
--- a/nixpkgs/pkgs/development/libraries/c-ares/default.nix
+++ b/nixpkgs/pkgs/development/libraries/c-ares/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "c-ares";
-  version = "1.19.1";
+  version = "1.26.0";
 
   src = fetchurl {
     url = "https://c-ares.org/download/${pname}-${version}.tar.gz";
-    sha256 = "sha256-MhcAOZty7Q4DfQB0xinndB9rLsLdqSlWq+PpZx0+Jo4=";
+    hash = "sha256-vtWMTwKwCQgOvabCRnukaXIqxq679El9xEqD2MYZTlA=";
   };
 
   outputs = [ "out" "dev" "man" ];
diff --git a/nixpkgs/pkgs/development/libraries/chromaprint/default.nix b/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
index 3a169de590bb..189154da8c4e 100644
--- a/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
@@ -1,4 +1,12 @@
-{ lib, stdenv, fetchurl, cmake, boost, ffmpeg_4, darwin, zlib }:
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, cmake
+, ffmpeg_6
+, darwin
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "chromaprint";
@@ -9,10 +17,26 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-oarY+juLGLeNN1Wzdn+v+au2ckLgG0eOyaZOGQ8zXhw=";
   };
 
+  patches = [
+    # Use FFmpeg 5.x
+    # https://github.com/acoustid/chromaprint/pull/120
+    (fetchpatch {
+      url = "https://github.com/acoustid/chromaprint/commit/8ccad6937177b1b92e40ab8f4447ea27bac009a7.patch";
+      hash = "sha256-yO2iWmU9s2p0uJfwIdmk3jZ5HXBIQZ/NyOqG+Y5EHdg=";
+      excludes = [ "package/build.sh" ];
+    })
+    # ffmpeg5 fix for issue #122
+    # https://github.com/acoustid/chromaprint/pull/125
+    (fetchpatch {
+      url = "https://github.com/acoustid/chromaprint/commit/aa67c95b9e486884a6d3ee8b0c91207d8c2b0551.patch";
+      hash = "sha256-dLY8FBzBqJehAofE924ayZK0HA/aKiuFhEFxL7dg6rY=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ ffmpeg_4 ] ++ lib.optionals stdenv.isDarwin
-    (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo zlib]);
+  buildInputs = [ ffmpeg_6 ] ++ lib.optionals stdenv.isDarwin
+    (with darwin.apple_sdk.frameworks; [ Accelerate CoreGraphics CoreVideo zlib ]);
 
   cmakeFlags = [ "-DBUILD_EXAMPLES=ON" "-DBUILD_TOOLS=ON" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/clipper2/default.nix b/nixpkgs/pkgs/development/libraries/clipper2/default.nix
index f7bb635e63d0..4f4dee29ec98 100644
--- a/nixpkgs/pkgs/development/libraries/clipper2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/clipper2/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clipper2";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "AngusJohnson";
     repo = "Clipper2";
     rev = "Clipper2_${version}";
-    sha256 = "sha256-u/4GG1A2PAlk8VEWgJX8+EnZ5hpGhu1QbvHwct58sF4=";
+    sha256 = "sha256-3TKhb48cABl0QcbeG12xlA1taQ/8/RdUUHSp0Qh85eE=";
   };
 
   sourceRoot = "${src.name}/CPP";
diff --git a/nixpkgs/pkgs/development/libraries/collada-dom/default.nix b/nixpkgs/pkgs/development/libraries/collada-dom/default.nix
deleted file mode 100644
index 1cb5c4853969..000000000000
--- a/nixpkgs/pkgs/development/libraries/collada-dom/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, cmake, boost, libxml2, minizip, readline }:
-
-stdenv.mkDerivation {
-  pname = "collada-dom";
-  version = "unstable-2020-01-03";
-
-  src = fetchFromGitHub {
-    owner = "rdiankov";
-    repo = "collada-dom";
-    rev = "c1e20b7d6ff806237030fe82f126cb86d661f063";
-    sha256 = "sha256-A1ne/D6S0shwCzb9spd1MoSt/238HWA8dvgd+DC9cXc=";
-  };
-
-  postInstall = ''
-    chmod +w -R $out
-    ln -s $out/include/*/* $out/include
-  '';
-
-  nativeBuildInputs = [ cmake ];
-
-  buildInputs = [
-    boost
-    libxml2
-    minizip
-    readline
-  ];
-
-  meta = with lib; {
-    description = "Lightweight version of collada-dom, with only the parser.";
-    homepage = "https://github.com/rdiankov/collada-dom";
-    license = licenses.mit;
-    maintainers = with maintainers; [ marius851000 ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/cxxopts/default.nix b/nixpkgs/pkgs/development/libraries/cxxopts/default.nix
index f587cf33308d..89276c7a0b44 100644
--- a/nixpkgs/pkgs/development/libraries/cxxopts/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cxxopts/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cxxopts";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "jarro2783";
     repo = "cxxopts";
     rev = "v${version}";
-    sha256 = "sha256-tOO0YCIG3MxSJZhurNcDR1pWIUEO/Har9mrCrZs3iVk=";
+    sha256 = "sha256-aOF3owz7SIV4trJY0PnMtIcwqoUpDbB3tNxZcsl9dzM=";
   };
 
   buildInputs = lib.optionals enableUnicodeHelp [ icu.dev ];
diff --git a/nixpkgs/pkgs/development/libraries/double-conversion/default.nix b/nixpkgs/pkgs/development/libraries/double-conversion/default.nix
index 9ba75c771662..cdca8c574fff 100644
--- a/nixpkgs/pkgs/development/libraries/double-conversion/default.nix
+++ b/nixpkgs/pkgs/development/libraries/double-conversion/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Binary-decimal and decimal-binary routines for IEEE doubles";
     homepage = "https://github.com/google/double-conversion";
     license = licenses.bsd3;
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/dqlite/default.nix b/nixpkgs/pkgs/development/libraries/dqlite/default.nix
index 2ed5417c8026..2746c53e6a01 100644
--- a/nixpkgs/pkgs/development/libraries/dqlite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dqlite/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dqlite";
-  version = "1.16.2";
+  version = "1.16.4";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-rzKZvVybKLQKT9ZiGT/9LgU7hxI6knVXkPawNhbW/DQ=";
+    hash = "sha256-Q90wVqb6321+SWW5j52fb6mVRf25nExqgN/+s6OwoMk=";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/easyloggingpp/default.nix b/nixpkgs/pkgs/development/libraries/easyloggingpp/default.nix
index 3aa6024fc3d1..0923d2b450bc 100644
--- a/nixpkgs/pkgs/development/libraries/easyloggingpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/easyloggingpp/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [cmake];
   buildInputs = [gtest];
   cmakeFlags = [ "-Dtest=ON" ];
-  env.NIX_CFLAGS_COMPILE = "-std=c++11" +
+  env.NIX_CFLAGS_COMPILE = "-std=c++14" +
     lib.optionalString stdenv.isLinux " -pthread";
   postInstall = ''
     mkdir -p $out/include
diff --git a/nixpkgs/pkgs/development/libraries/edencommon/default.nix b/nixpkgs/pkgs/development/libraries/edencommon/default.nix
index 022cecc27a61..68d6e5529157 100644
--- a/nixpkgs/pkgs/development/libraries/edencommon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/edencommon/default.nix
@@ -1,14 +1,23 @@
-{ stdenv, lib, cmake, fetchFromGitHub, glog, folly, fmt_8, boost, gtest }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, boost
+, cmake
+, fmt_8
+, folly
+, glog
+, gtest
+}:
 
 stdenv.mkDerivation rec {
   pname = "edencommon";
-  version = "2023.03.06.00";
+  version = "2024.01.22.00";
 
   src = fetchFromGitHub {
     owner = "facebookexperimental";
     repo = "edencommon";
     rev = "v${version}";
-    sha256 = "sha256-m54TaxThWe6bUa6Q1t+e99CLFOvut9vq9RSmimTNuaU=";
+    sha256 = "sha256-KY0vXptzOEJLDjHvGd3T5oiCCvggND2bPBzvll+YBo4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/eigen/default.nix b/nixpkgs/pkgs/development/libraries/eigen/default.nix
index 18fe7450d508..4befab1e7b7f 100644
--- a/nixpkgs/pkgs/development/libraries/eigen/default.nix
+++ b/nixpkgs/pkgs/development/libraries/eigen/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , cmake
 }:
 
@@ -17,6 +18,20 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./include-dir.patch
+
+    # Fixes e.g. onnxruntime on aarch64-darwin:
+    # https://hydra.nixos.org/build/248915128/nixlog/1,
+    # originally suggested in https://github.com/NixOS/nixpkgs/pull/258392.
+    #
+    # The patch is from
+    # ["Fix vectorized reductions for Eigen::half"](https://gitlab.com/libeigen/eigen/-/merge_requests/699)
+    # which is two years old,
+    # but Eigen hasn't had a release in two years either:
+    # https://gitlab.com/libeigen/eigen/-/issues/2699.
+    (fetchpatch {
+      url = "https://gitlab.com/libeigen/eigen/-/commit/d0e3791b1a0e2db9edd5f1d1befdb2ac5a40efe0.patch";
+      hash = "sha256-8qiNpuYehnoiGiqy0c3Mcb45pwrmc6W4rzCxoLDSvj0=";
+    })
   ];
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/enchant/2.x.nix b/nixpkgs/pkgs/development/libraries/enchant/2.x.nix
index 10d9a4106bb9..fd79b8d7e97f 100644
--- a/nixpkgs/pkgs/development/libraries/enchant/2.x.nix
+++ b/nixpkgs/pkgs/development/libraries/enchant/2.x.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "enchant";
-  version = "2.6.5";
+  version = "2.6.7";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-no/SjLZae22jVFh4pcL1KhXwPASTOl/0jbif6GhFco4=";
+    hash = "sha256-ocLltZrMoAC7+ySBCvShFlcz1AfyFUeGWI4HbIzVe/w=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/expat/2.6.0-fix-tests-flakiness.patch b/nixpkgs/pkgs/development/libraries/expat/2.6.0-fix-tests-flakiness.patch
new file mode 100644
index 000000000000..9817b1833627
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/expat/2.6.0-fix-tests-flakiness.patch
@@ -0,0 +1,252 @@
+diff --git a/lib/internal.h b/lib/internal.h
+index cce71e4c..a217b3f9 100644
+--- a/lib/internal.h
++++ b/lib/internal.h
+@@ -31,7 +31,7 @@
+    Copyright (c) 2016-2023 Sebastian Pipping <sebastian@pipping.org>
+    Copyright (c) 2018      Yury Gribov <tetra2005@gmail.com>
+    Copyright (c) 2019      David Loffredo <loffredo@steptools.com>
+-   Copyright (c) 2023      Sony Corporation / Snild Dolkow <snild@sony.com>
++   Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow <snild@sony.com>
+    Licensed under the MIT license:
+ 
+    Permission is  hereby granted,  free of charge,  to any  person obtaining
+@@ -162,7 +162,7 @@ const char *unsignedCharToPrintable(unsigned char c);
+ #endif
+ 
+ extern XML_Bool g_reparseDeferralEnabledDefault; // written ONLY in runtests.c
+-extern unsigned int g_parseAttempts;             // used for testing only
++extern unsigned int g_bytesScanned;              // used for testing only
+ 
+ #ifdef __cplusplus
+ }
+diff --git a/lib/xmlparse.c b/lib/xmlparse.c
+index aaf0fa9c..6de99d99 100644
+--- a/lib/xmlparse.c
++++ b/lib/xmlparse.c
+@@ -38,7 +38,7 @@
+    Copyright (c) 2022      Jann Horn <jannh@google.com>
+    Copyright (c) 2022      Sean McBride <sean@rogue-research.com>
+    Copyright (c) 2023      Owain Davies <owaind@bath.edu>
+-   Copyright (c) 2023      Sony Corporation / Snild Dolkow <snild@sony.com>
++   Copyright (c) 2023-2024 Sony Corporation / Snild Dolkow <snild@sony.com>
+    Licensed under the MIT license:
+ 
+    Permission is  hereby granted,  free of charge,  to any  person obtaining
+@@ -630,7 +630,7 @@ static unsigned long getDebugLevel(const char *variableName,
+        : ((*((pool)->ptr)++ = c), 1))
+ 
+ XML_Bool g_reparseDeferralEnabledDefault = XML_TRUE; // write ONLY in runtests.c
+-unsigned int g_parseAttempts = 0;                    // used for testing only
++unsigned int g_bytesScanned = 0;                     // used for testing only
+ 
+ struct XML_ParserStruct {
+   /* The first member must be m_userData so that the XML_GetUserData
+@@ -1017,7 +1017,7 @@ callProcessor(XML_Parser parser, const char *start, const char *end,
+       return XML_ERROR_NONE;
+     }
+   }
+-  g_parseAttempts += 1;
++  g_bytesScanned += (unsigned)have_now;
+   const enum XML_Error ret = parser->m_processor(parser, start, end, endPtr);
+   if (ret == XML_ERROR_NONE) {
+     // if we consumed nothing, remember what we had on this parse attempt.
+diff --git a/tests/basic_tests.c b/tests/basic_tests.c
+index 7112a440..a9cc3861 100644
+--- a/tests/basic_tests.c
++++ b/tests/basic_tests.c
+@@ -5202,13 +5202,7 @@ START_TEST(test_nested_entity_suspend) {
+ END_TEST
+ 
+ /* Regression test for quadratic parsing on large tokens */
+-START_TEST(test_big_tokens_take_linear_time) {
+-  const char *const too_slow_failure_message
+-      = "Compared to the baseline runtime of the first test, this test has a "
+-        "slowdown of more than <max_slowdown>. "
+-        "Please keep increasing the value by 1 until it reliably passes the "
+-        "test on your hardware and open a bug sharing that number with us. "
+-        "Thanks in advance!";
++START_TEST(test_big_tokens_scale_linearly) {
+   const struct {
+     const char *pre;
+     const char *post;
+@@ -5220,65 +5214,57 @@ START_TEST(test_big_tokens_take_linear_time) {
+       {"<e><", "/></e>"},                   // big elem name, used to be O(N²)
+   };
+   const int num_cases = sizeof(text) / sizeof(text[0]);
+-  // For the test we need a <max_slowdown> value that is:
+-  // (1) big enough that the test passes reliably (avoiding flaky tests), and
+-  // (2) small enough that the test actually catches regressions.
+-  const int max_slowdown = 15;
+   char aaaaaa[4096];
+   const int fillsize = (int)sizeof(aaaaaa);
+   const int fillcount = 100;
++  const unsigned approx_bytes = fillsize * fillcount; // ignore pre/post.
++  const unsigned max_factor = 4;
++  const unsigned max_scanned = max_factor * approx_bytes;
+ 
+   memset(aaaaaa, 'a', fillsize);
+ 
+   if (! g_reparseDeferralEnabledDefault) {
+     return; // heuristic is disabled; we would get O(n^2) and fail.
+   }
+-#if ! defined(__linux__)
+-  if (CLOCKS_PER_SEC < 100000) {
+-    // Skip this test if clock() doesn't have reasonably good resolution.
+-    // This workaround is primarily targeting Windows and FreeBSD, since
+-    // XSI requires the value to be 1.000.000 (10x the condition here), and
+-    // we want to be very sure that at least one platform in CI can catch
+-    // regressions (through a failing test).
+-    return;
+-  }
+-#endif
+ 
+-  clock_t baseline = 0;
+   for (int i = 0; i < num_cases; ++i) {
+     XML_Parser parser = XML_ParserCreate(NULL);
+     assert_true(parser != NULL);
+     enum XML_Status status;
+-    set_subtest("max_slowdown=%d text=\"%saaaaaa%s\"", max_slowdown,
+-                text[i].pre, text[i].post);
+-    const clock_t start = clock();
++    set_subtest("text=\"%saaaaaa%s\"", text[i].pre, text[i].post);
+ 
+     // parse the start text
++    g_bytesScanned = 0;
+     status = _XML_Parse_SINGLE_BYTES(parser, text[i].pre,
+                                      (int)strlen(text[i].pre), XML_FALSE);
+     if (status != XML_STATUS_OK) {
+       xml_failure(parser);
+     }
++
+     // parse lots of 'a', failing the test early if it takes too long
++    unsigned past_max_count = 0;
+     for (int f = 0; f < fillcount; ++f) {
+       status = _XML_Parse_SINGLE_BYTES(parser, aaaaaa, fillsize, XML_FALSE);
+       if (status != XML_STATUS_OK) {
+         xml_failure(parser);
+       }
+-      // i == 0 means we're still calculating the baseline value
+-      if (i > 0) {
+-        const clock_t now = clock();
+-        const clock_t clocks_so_far = now - start;
+-        const int slowdown = clocks_so_far / baseline;
+-        if (slowdown >= max_slowdown) {
+-          fprintf(
+-              stderr,
+-              "fill#%d: clocks_so_far=%d baseline=%d slowdown=%d max_slowdown=%d\n",
+-              f, (int)clocks_so_far, (int)baseline, slowdown, max_slowdown);
+-          fail(too_slow_failure_message);
+-        }
++      if (g_bytesScanned > max_scanned) {
++        // We're not done, and have already passed the limit -- the test will
++        // definitely fail. This block allows us to save time by failing early.
++        const unsigned pushed
++            = (unsigned)strlen(text[i].pre) + (f + 1) * fillsize;
++        fprintf(
++            stderr,
++            "after %d/%d loops: pushed=%u scanned=%u (factor ~%.2f) max_scanned: %u (factor ~%u)\n",
++            f + 1, fillcount, pushed, g_bytesScanned,
++            g_bytesScanned / (double)pushed, max_scanned, max_factor);
++        past_max_count++;
++        // We are failing, but allow a few log prints first. If we don't reach
++        // a count of five, the test will fail after the loop instead.
++        assert_true(past_max_count < 5);
+       }
+     }
++
+     // parse the end text
+     status = _XML_Parse_SINGLE_BYTES(parser, text[i].post,
+                                      (int)strlen(text[i].post), XML_TRUE);
+@@ -5286,18 +5272,14 @@ START_TEST(test_big_tokens_take_linear_time) {
+       xml_failure(parser);
+     }
+ 
+-    // how long did it take in total?
+-    const clock_t end = clock();
+-    const clock_t taken = end - start;
+-    if (i == 0) {
+-      assert_true(taken > 0); // just to make sure we don't div-by-0 later
+-      baseline = taken;
+-    }
+-    const int slowdown = taken / baseline;
+-    if (slowdown >= max_slowdown) {
+-      fprintf(stderr, "taken=%d baseline=%d slowdown=%d max_slowdown=%d\n",
+-              (int)taken, (int)baseline, slowdown, max_slowdown);
+-      fail(too_slow_failure_message);
++    assert_true(g_bytesScanned > approx_bytes); // or the counter isn't working
++    if (g_bytesScanned > max_scanned) {
++      fprintf(
++          stderr,
++          "after all input: scanned=%u (factor ~%.2f) max_scanned: %u (factor ~%u)\n",
++          g_bytesScanned, g_bytesScanned / (double)approx_bytes, max_scanned,
++          max_factor);
++      fail("scanned too many bytes");
+     }
+ 
+     XML_ParserFree(parser);
+@@ -5774,19 +5756,17 @@ START_TEST(test_varying_buffer_fills) {
+                 fillsize[2], fillsize[3]);
+     XML_Parser parser = XML_ParserCreate(NULL);
+     assert_true(parser != NULL);
+-    g_parseAttempts = 0;
+ 
+     CharData storage;
+     CharData_Init(&storage);
+     XML_SetUserData(parser, &storage);
+     XML_SetStartElementHandler(parser, start_element_event_handler);
+ 
++    g_bytesScanned = 0;
+     int worstcase_bytes = 0; // sum of (buffered bytes at each XML_Parse call)
+-    int scanned_bytes = 0;   // sum of (buffered bytes at each actual parse)
+     int offset = 0;
+     while (*fillsize >= 0) {
+       assert_true(offset + *fillsize <= document_length); // or test is invalid
+-      const unsigned attempts_before = g_parseAttempts;
+       const enum XML_Status status
+           = XML_Parse(parser, &document[offset], *fillsize, XML_FALSE);
+       if (status != XML_STATUS_OK) {
+@@ -5796,28 +5776,20 @@ START_TEST(test_varying_buffer_fills) {
+       fillsize++;
+       assert_true(offset <= INT_MAX - worstcase_bytes); // avoid overflow
+       worstcase_bytes += offset; // we might've tried to parse all pending bytes
+-      if (g_parseAttempts != attempts_before) {
+-        assert_true(g_parseAttempts == attempts_before + 1); // max 1/XML_Parse
+-        assert_true(offset <= INT_MAX - scanned_bytes);      // avoid overflow
+-        scanned_bytes += offset; // we *did* try to parse all pending bytes
+-      }
+     }
+     assert_true(storage.count == 1); // the big token should've been parsed
+-    assert_true(scanned_bytes > 0);  // test-the-test: does our counter work?
++    assert_true(g_bytesScanned > 0); // test-the-test: does our counter work?
+     if (g_reparseDeferralEnabledDefault) {
+       // heuristic is enabled; some XML_Parse calls may have deferred reparsing
+-      const int max_bytes_scanned = -*fillsize;
+-      if (scanned_bytes > max_bytes_scanned) {
++      const unsigned max_bytes_scanned = -*fillsize;
++      if (g_bytesScanned > max_bytes_scanned) {
+         fprintf(stderr,
+-                "bytes scanned in parse attempts: actual=%d limit=%d \n",
+-                scanned_bytes, max_bytes_scanned);
++                "bytes scanned in parse attempts: actual=%u limit=%u \n",
++                g_bytesScanned, max_bytes_scanned);
+         fail("too many bytes scanned in parse attempts");
+       }
+-      assert_true(scanned_bytes <= worstcase_bytes);
+-    } else {
+-      // heuristic is disabled; every XML_Parse() will have reparsed
+-      assert_true(scanned_bytes == worstcase_bytes);
+     }
++    assert_true(g_bytesScanned <= (unsigned)worstcase_bytes);
+ 
+     XML_ParserFree(parser);
+   }
+@@ -6065,7 +6037,7 @@ make_basic_test_case(Suite *s) {
+   tcase_add_test__ifdef_xml_dtd(tc_basic,
+                                 test_pool_integrity_with_unfinished_attr);
+   tcase_add_test__if_xml_ge(tc_basic, test_nested_entity_suspend);
+-  tcase_add_test(tc_basic, test_big_tokens_take_linear_time);
++  tcase_add_test(tc_basic, test_big_tokens_scale_linearly);
+   tcase_add_test(tc_basic, test_set_reparse_deferral);
+   tcase_add_test(tc_basic, test_reparse_deferral_is_inherited);
+   tcase_add_test(tc_basic, test_set_reparse_deferral_on_null_parser);
diff --git a/nixpkgs/pkgs/development/libraries/expat/default.nix b/nixpkgs/pkgs/development/libraries/expat/default.nix
index 248e3774f4cd..27cbd38c0286 100644
--- a/nixpkgs/pkgs/development/libraries/expat/default.nix
+++ b/nixpkgs/pkgs/development/libraries/expat/default.nix
@@ -7,6 +7,7 @@
 , haskellPackages
 , luaPackages
 , ocamlPackages
+, testers
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -14,15 +15,24 @@
 # cgit) that are needed here should be included directly in Nixpkgs as
 # files.
 
-stdenv.mkDerivation rec {
+let
+  version = "2.6.0";
+  tag = "R_${lib.replaceStrings ["."] ["_"] version}";
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "expat";
-  version = "2.5.0";
+  inherit version;
 
   src = fetchurl {
-    url = "https://github.com/libexpat/libexpat/releases/download/R_${lib.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.xz";
-    sha256 = "1gnwihpfz4x18rwd6cbrdggmfqjzwsdfh1gpmc0ph21c4gq2097g";
+    url = with finalAttrs; "https://github.com/libexpat/libexpat/releases/download/${tag}/${pname}-${version}.tar.xz";
+    hash = "sha256-y19ajqIR4cq9Wb4KkzpS48Aswyboak04fY0hjn7kej4=";
   };
 
+  patches = [
+    # Fix tests flakiness on some platforms (like aarch64-darwin), should be released in 2.6.1
+    ./2.6.0-fix-tests-flakiness.patch
+  ];
+
   strictDeps = true;
 
   outputs = [ "out" "dev" ]; # TODO: fix referrers
@@ -43,7 +53,7 @@ stdenv.mkDerivation rec {
   # CMake files incorrectly calculate library path from dev prefix
   # https://github.com/libexpat/libexpat/issues/501
   postFixup = ''
-    substituteInPlace $dev/lib/cmake/expat-${version}/expat-noconfig.cmake \
+    substituteInPlace $dev/lib/cmake/expat-${finalAttrs.version}/expat-noconfig.cmake \
       --replace "$"'{_IMPORT_PREFIX}' $out
   '';
 
@@ -54,12 +64,17 @@ stdenv.mkDerivation rec {
     inherit (perlPackages) XMLSAXExpat XMLParser;
     inherit (luaPackages) luaexpat;
     inherit (ocamlPackages) ocaml_expat;
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
   };
 
   meta = with lib; {
+    changelog = "https://github.com/libexpat/libexpat/blob/${tag}/expat/Changes";
     homepage = "https://libexpat.github.io/";
     description = "A stream-oriented XML parser library written in C";
     platforms = platforms.all;
     license = licenses.mit; # expat version
+    pkgConfigModules = [ "expat" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/fastcdr/0001-Do-not-require-wget-and-unzip.patch b/nixpkgs/pkgs/development/libraries/fastcdr/0001-Do-not-require-wget-and-unzip.patch
deleted file mode 100644
index 8908beb08240..000000000000
--- a/nixpkgs/pkgs/development/libraries/fastcdr/0001-Do-not-require-wget-and-unzip.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-Date: Sat, 5 Jun 2021 14:50:26 +0200
-Subject: [PATCH] Do not require wget and unzip
-
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 2261fe7..ce8edad 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -243,21 +243,6 @@ if(BUILD_DOCUMENTATION)
-         set(DOXYFILE_MAKE make.bat)
-     endif()
- 
--    if(NOT CHECK_DOCUMENTATION)
--        find_program(WGET_EXE wget)
--        if(WGET_EXE)
--            message(STATUS "Found WGet: ${WGET_EXE}")
--        else()
--            message(FATAL_ERROR "wget is needed to build the documentation. Please install it correctly")
--        endif()
--        find_program(UNZIP_EXE unzip)
--        if(UNZIP_EXE)
--            message(STATUS "Found Unzip: ${UNZIP_EXE}")
--        else()
--            message(FATAL_ERROR "unzip is needed to build the documentation. Please install it correctly")
--        endif()
--    endif()
--
-     # Target to create documentation directories
-     add_custom_target(docdirs
-         COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/doc
--- 
-2.40.1
-
diff --git a/nixpkgs/pkgs/development/libraries/fastcdr/default.nix b/nixpkgs/pkgs/development/libraries/fastcdr/default.nix
deleted file mode 100644
index a5f87ec7b312..000000000000
--- a/nixpkgs/pkgs/development/libraries/fastcdr/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, cmake
-, gtest
-, withDocs ? true
-, doxygen
-, graphviz-nox
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "fastcdr";
-  version = "2.1.3";
-
-  src = fetchFromGitHub {
-    owner = "eProsima";
-    repo = "Fast-CDR";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-eSf6LNTVsGEBXjTmTBjjWKBqs68pbnVcw1p2bi1Asgg=";
-  };
-
-  patches = [
-    ./0001-Do-not-require-wget-and-unzip.patch
-  ];
-
-  # Fix doc generation error with doxygen >= 1.10.0
-  # see https://github.com/eProsima/Fast-CDR/issues/193
-  postPatch = ''
-    substituteInPlace ./doxyfile.in --replace \
-      "WARN_AS_ERROR          = YES" \
-      "WARN_AS_ERROR          = NO"
-  '';
-
-  cmakeFlags = lib.optional (stdenv.hostPlatform.isStatic) "-DBUILD_SHARED_LIBS=OFF"
-  # upstream turns BUILD_TESTING=OFF by default and doesn't honor cmake's default (=ON)
-  ++ lib.optional (finalAttrs.finalPackage.doCheck) "-DBUILD_TESTING=ON"
-  ++ lib.optional withDocs "-DBUILD_DOCUMENTATION=ON";
-
-  outputs = [ "out" ] ++ lib.optional withDocs "doc";
-
-  nativeBuildInputs = [
-    cmake
-  ] ++ lib.optionals withDocs [
-    doxygen
-    graphviz-nox
-  ];
-
-  doCheck = true;
-
-  checkInputs = [ gtest ];
-
-  meta = with lib; {
-    homepage = "https://github.com/eProsima/Fast-CDR";
-    description = "Serialization library for OMG's Common Data Representation (CDR)";
-    longDescription = ''
-      A C++ library that provides two serialization mechanisms. One is the
-      standard CDR serialization mechanism, while the other is a faster
-      implementation that modifies the standard.
-    '';
-    license = licenses.asl20;
-    maintainers = with maintainers; [ panicgh ];
-    platforms = platforms.unix;
-  };
-})
diff --git a/nixpkgs/pkgs/development/libraries/fb303/default.nix b/nixpkgs/pkgs/development/libraries/fb303/default.nix
index aad545ca602f..d1de187ec2c4 100644
--- a/nixpkgs/pkgs/development/libraries/fb303/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fb303/default.nix
@@ -2,27 +2,26 @@
 , lib
 , fetchFromGitHub
 , cmake
-, glog
-, folly
-, fmt_8
-, boost
 , fbthrift
-, zlib
 , fizz
+, folly
+, glog
 , libsodium
-, wangle
+, mvfst
 , python3
+, wangle
+, zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "fb303";
-  version = "2023.06.12.00";
+  version = "2024.01.22.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "fb303";
     rev = "v${version}";
-    sha256 = "sha256-nUOPYb5/tLyHjaZDvKuq0vdu4L7XOmO8R9nNLGAzeLI=";
+    sha256 = "sha256-EQpe0REGWUpYg+llsCo4x6vJ7UPdWXk3uPM3b8b9Uf0=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -33,16 +32,17 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
-    glog
-    folly
-    fmt_8
-    boost
     fbthrift
-    zlib
     fizz
+    folly
+    folly.boost
+    folly.fmt
+    glog
     libsodium
-    wangle
+    mvfst
     python3
+    wangle
+    zlib
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/fbthrift/default.nix b/nixpkgs/pkgs/development/libraries/fbthrift/default.nix
index 6b660a491f23..a483fb1644a2 100644
--- a/nixpkgs/pkgs/development/libraries/fbthrift/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fbthrift/default.nix
@@ -13,6 +13,7 @@
 , glog
 , gflags
 , libiberty
+, mvfst
 , openssl
 , lib
 , wangle
@@ -22,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fbthrift";
-  version = "2023.03.20.00";
+  version = "2024.01.22.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "fbthrift";
     rev = "v${version}";
-    sha256 = "sha256-jCgdo7jE5QlRK5f2S6XEVM4+TPWI//4DKG/fDMFzgzg=";
+    sha256 = "sha256-vIYXX4NOs2JdhrAJKmIhf4+hQEXHue2Ok7e4cw6yups=";
   };
 
   nativeBuildInputs = [
@@ -51,6 +52,7 @@ stdenv.mkDerivation rec {
     gflags
     libevent
     libiberty
+    mvfst
     openssl
     wangle
     zlib
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
index 62d3919c0646..cebf17e071e9 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
@@ -1,4 +1,11 @@
 import ./generic.nix {
   version = "6.1";
   hash = "sha256-NzhD2D16bCVCyCXo0TRwZYp3Ta5eFSfoQPa+iRkeNZg=";
+  extraPatches = [
+    {
+      name = "avcodec-decode-validate-hw-frames-ctx.patch";
+      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/e9c93009fc34ca9dfcf0c6f2ed90ef1df298abf7";
+      hash = "sha256-aE9WN7a2INbss7oRys+AC9d9+yBzlJdeBRcwSDpG0Qw=";
+    }
+  ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index 89893d32ef5d..a44501fea081 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -49,6 +49,7 @@
 , withGme ? withFullDeps # Game Music Emulator
 , withGnutls ? withHeadlessDeps
 , withGsm ? withFullDeps # GSM de/encoder
+, withHarfbuzz ? withHeadlessDeps && lib.versionAtLeast version "6.1" # Needed for drawtext filter
 , withIconv ? withHeadlessDeps
 , withJack ? withFullDeps && !stdenv.isDarwin # Jack audio
 , withLadspa ? withFullDeps # LADSPA audio filtering
@@ -201,6 +202,7 @@
 , game-music-emu
 , gnutls
 , gsm
+, harfbuzz
 , intel-media-sdk
 , ladspaH
 , lame
@@ -482,6 +484,9 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withGme "libgme")
     (enableFeature withGnutls "gnutls")
     (enableFeature withGsm "libgsm")
+  ] ++ optionals (versionAtLeast finalAttrs.version "6.1") [
+    (enableFeature withHarfbuzz "libharfbuzz")
+  ] ++ [
     (enableFeature withIconv "iconv")
     (enableFeature withJack "libjack")
     (enableFeature withLadspa "ladspa")
@@ -598,6 +603,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withGme [ game-music-emu ]
   ++ optionals withGnutls [ gnutls ]
   ++ optionals withGsm [ gsm ]
+  ++ optionals withHarfbuzz [ harfbuzz ]
   ++ optionals withIconv [ libiconv ] # On Linux this should be in libc, do we really need it?
   ++ optionals withJack [ libjack2 ]
   ++ optionals withLadspa [ ladspaH ]
diff --git a/nixpkgs/pkgs/development/libraries/fizz/default.nix b/nixpkgs/pkgs/development/libraries/fizz/default.nix
index bdf7a68ffbe3..282400948769 100644
--- a/nixpkgs/pkgs/development/libraries/fizz/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fizz/default.nix
@@ -17,23 +17,25 @@
 , zlib
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "fizz";
-  version = "2023.03.20.00";
+  version = "2024.01.22.00";
 
   src = fetchFromGitHub {
     owner = "facebookincubator";
     repo = "fizz";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-oBdTj7IPlmtF5rEgDVN/wwa0ZxkN6h2QMN3PQB0nCgQ=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-17EELvRrWhUprxvm1Ur0FYNimvY1qgK0YH8ehxtLpxM=";
   };
 
   nativeBuildInputs = [ cmake ];
 
   cmakeDir = "../fizz";
 
-  cmakeFlags = [ "-Wno-dev" ]
-    ++ lib.optionals stdenv.isDarwin [
+  cmakeFlags = [
+    "-Wno-dev"
+    (lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
+  ] ++ lib.optionals stdenv.isDarwin [
     "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
   ];
 
@@ -46,7 +48,6 @@ stdenv.mkDerivation rec {
     folly
     glog
     gflags
-    gtest
     libevent
     libiberty
     libsodium
@@ -55,6 +56,24 @@ stdenv.mkDerivation rec {
     zstd
   ];
 
+  doCheck = true;
+  checkInputs = [
+    gtest
+  ];
+  preCheck = let
+    disabledTests = [
+      # these don't work with openssl 3.x probably due to
+      # https://github.com/openssl/openssl/issues/13283
+      "DefaultCertificateVerifierTest.TestVerifySuccess"
+      "DefaultCertificateVerifierTest.TestVerifyWithIntermediates"
+
+      # timing-related & flaky
+      "SlidingBloomReplayCacheTest.TestTimeBucketing"
+    ];
+  in ''
+    export GTEST_FILTER="-${lib.concatStringsSep ":" disabledTests}"
+  '';
+
   meta = with lib; {
     description = "C++14 implementation of the TLS-1.3 standard";
     homepage = "https://github.com/facebookincubator/fizz";
@@ -63,4 +82,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ pierreis kylesferrazza ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/folly/default.nix b/nixpkgs/pkgs/development/libraries/folly/default.nix
index 22d395785434..eb0372a40aff 100644
--- a/nixpkgs/pkgs/development/libraries/folly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/folly/default.nix
@@ -18,17 +18,21 @@
 , zstd
 , jemalloc
 , follyMobile ? false
+
+# for passthru.tests
+, python3
+, watchman
 }:
 
 stdenv.mkDerivation rec {
   pname = "folly";
-  version = "2023.02.27.00";
+  version = "2024.01.22.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "sha256-DfZiVxncpKSPn9BN25d8o0/tC27+HhSG/t53WgzAT/s=";
+    sha256 = "sha256-+z1wuEOgr7CMHFnOn5gLm9mtVH7mVURLstOoDqzxKbk=";
   };
 
   nativeBuildInputs = [
@@ -80,11 +84,16 @@ stdenv.mkDerivation rec {
       --replace '$'{_IMPORT_PREFIX}/lib/ $out/lib/
   '';
 
-  # folly-config.cmake, will `find_package` these, thus there should be
-  # a way to ensure abi compatibility.
   passthru = {
+    # folly-config.cmake, will `find_package` these, thus there should be
+    # a way to ensure abi compatibility.
     inherit boost;
     fmt = fmt_8;
+
+    tests = {
+      inherit watchman;
+      inherit (python3.pkgs) django pywatchman;
+    };
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/default.nix b/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
index 9ff72c202193..669c2dec851c 100644
--- a/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
@@ -10,16 +10,17 @@
 , dejavu_fonts
 , autoreconfHook
 , CoreFoundation
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "fontconfig";
   version = "2.15.0";
 
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
 
   src = fetchurl {
-    url = "https://www.freedesktop.org/software/fontconfig/release/${pname}-${version}.tar.xz";
+    url = with finalAttrs; "https://www.freedesktop.org/software/fontconfig/release/${pname}-${version}.tar.xz";
     hash = "sha256-Y6BljQ4G4PqIYQZFK1jvBPIfWCAuoCqUw53g0zNdfA4=";
   };
 
@@ -77,11 +78,18 @@ stdenv.mkDerivation rec {
     rm -r $bin/share/man/man3
   '';
 
+  passthru.tests = {
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "A library for font customization and configuration";
     homepage = "http://fontconfig.org/";
     license = licenses.bsd2; # custom but very bsd-like
     platforms = platforms.all;
     maintainers = with maintainers; teams.freedesktop.members ++ [ ];
+    pkgConfigModules = [ "fontconfig" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/freeimage/default.nix b/nixpkgs/pkgs/development/libraries/freeimage/default.nix
index de1b616fc20a..245ea93f63e4 100644
--- a/nixpkgs/pkgs/development/libraries/freeimage/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freeimage/default.nix
@@ -72,6 +72,20 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Open Source library for accessing popular graphics image file formats";
     homepage = "http://freeimage.sourceforge.net/";
     license = "GPL";
+    knownVulnerabilities = [
+      "CVE-2021-33367"
+      "CVE-2021-40262"
+      "CVE-2021-40263"
+      "CVE-2021-40264"
+      "CVE-2021-40265"
+      "CVE-2021-40266"
+
+      "CVE-2023-47992"
+      "CVE-2023-47993"
+      "CVE-2023-47994"
+      "CVE-2023-47995"
+      "CVE-2023-47996"
+    ];
     maintainers = with lib.maintainers; [viric l-as];
     platforms = with lib.platforms; unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/fribidi/default.nix b/nixpkgs/pkgs/development/libraries/fribidi/default.nix
index 613725a2672e..5672ff5375bb 100644
--- a/nixpkgs/pkgs/development/libraries/fribidi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fribidi/default.nix
@@ -6,9 +6,10 @@
 , pkg-config
 , fixDarwinDylibNames
 , python3
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "fribidi";
   version = "1.0.13";
 
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
 
   # NOTE: Only URL tarball has "Have pre-generated man pages: true", which works-around upstream usage of some rare ancient `c2man` fossil application.
   src = fetchurl {
-    url = "https://github.com/fribidi/fribidi/releases/download/v${version}/${pname}-${version}.tar.xz";
+    url = with finalAttrs; "https://github.com/fribidi/fribidi/releases/download/v${version}/${pname}-${version}.tar.xz";
     sha256 = "sha256-f6FsgMgb1iL3sZjTE1baE5zDGKY/x3YSF69BMJA/VKI=";
   };
 
@@ -32,10 +33,17 @@ stdenv.mkDerivation rec {
   doCheck = true;
   nativeCheckInputs = [ python3 ];
 
+  passthru.tests = {
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/fribidi/fribidi";
     description = "GNU implementation of the Unicode Bidirectional Algorithm (bidi)";
     license = licenses.lgpl21;
     platforms = platforms.unix;
+    pkgConfigModules = [ "fribidi" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/functionalplus/default.nix b/nixpkgs/pkgs/development/libraries/functionalplus/default.nix
index af25030ab560..6d3092e53c35 100644
--- a/nixpkgs/pkgs/development/libraries/functionalplus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/functionalplus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "functionalplus";
-  version = "0.2.22";
+  version = "0.2.23";
 
   src = fetchFromGitHub {
     owner = "Dobiasd";
     repo = "FunctionalPlus";
     rev = "v${version}";
-    sha256 = "sha256-y0IRmgG9lhWO4IR4G9/VP2a3B+ORTnF7MCf4FU5EuMk=";
+    sha256 = "sha256-WDufVO0vQyu7O3w9tq+19JioRUFgYlnTbO/AQzg0FnM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/gdal/default.nix b/nixpkgs/pkgs/development/libraries/gdal/default.nix
index 64801dd5b714..5d0fc7a65706 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/default.nix
@@ -270,9 +270,7 @@ stdenv.mkDerivation (finalAttrs: {
     popd # autotest
   '';
 
-  passthru.tests = {
-    gdal = callPackage ./tests.nix { gdal = finalAttrs.finalPackage; };
-  };
+  passthru.tests = callPackage ./tests.nix { gdal = finalAttrs.finalPackage; };
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/gdal/tests.nix b/nixpkgs/pkgs/development/libraries/gdal/tests.nix
index 87fbff2d5fa5..e6d767301403 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/tests.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/tests.nix
@@ -1,34 +1,40 @@
-{ runCommand, gdal, jdk }:
+{ runCommand, gdal, jdk, lib, testers }:
 
 let
   inherit (gdal) pname version;
 
 in
-runCommand "${pname}-tests" { meta.timeout = 60; }
-  ''
-    # test version
-    ${gdal}/bin/ogrinfo --version \
-      | grep 'GDAL ${version}'
-
-    ${gdal}/bin/gdalinfo --version \
-      | grep 'GDAL ${version}'
-
-
-    # test formats
-    ${gdal}/bin/ogrinfo --formats \
+{
+  ogrinfo-version = testers.testVersion {
+    package = gdal;
+    command = "ogrinfo --version";
+  };
+
+  gdalinfo-version = testers.testVersion {
+    package = gdal;
+    command = "gdalinfo --version";
+  };
+
+  ogrinfo-format-geopackage = runCommand "${pname}-ogrinfo-format-geopackage" { } ''
+    ${lib.getExe' gdal "ogrinfo"} --formats \
       | grep 'GPKG.*GeoPackage'
+    touch $out
+  '';
 
-    ${gdal}/bin/gdalinfo --formats \
+  gdalinfo-format-geotiff = runCommand "${pname}-gdalinfo-format-geotiff" { } ''
+    ${lib.getExe' gdal "gdalinfo"} --formats \
       | grep 'GTiff.*GeoTIFF'
+    touch $out
+  '';
 
-
-    # test vector file
+  vector-file = runCommand "${pname}-vector-file" { } ''
     echo -e "Latitude,Longitude,Name\n48.1,0.25,'Test point'" > test.csv
-    ${gdal}/bin/ogrinfo ./test.csv
-
+    ${lib.getExe' gdal "ogrinfo"} ./test.csv
+    touch $out
+  '';
 
-    # test raster file
-    ${gdal}/bin/gdal_create \
+  raster-file = runCommand "${pname}-raster-file" { } ''
+    ${lib.getExe' gdal "gdal_create"} \
       -a_srs "EPSG:4326" \
       -of GTiff \
       -ot UInt16 \
@@ -38,9 +44,11 @@ runCommand "${pname}-tests" { meta.timeout = 60; }
       -co COMPRESS=LZW \
       test.tif
 
-    ${gdal}/bin/gdalinfo ./test.tif
+    ${lib.getExe' gdal "gdalinfo"} ./test.tif
+    touch $out
+  '';
 
-    # test java bindings
+  java-bindings = runCommand "${pname}-java-bindings" { } ''
     cat <<EOF > main.java
     import org.gdal.gdal.gdal;
     class Main {
@@ -49,7 +57,7 @@ runCommand "${pname}-tests" { meta.timeout = 60; }
       }
     }
     EOF
-    ${jdk}/bin/java -Djava.library.path=${gdal}/lib/ -cp ${gdal}/share/java/gdal-${version}.jar main.java
-
+    ${lib.getExe jdk} -Djava.library.path=${gdal}/lib/ -cp ${gdal}/share/java/gdal-${version}.jar main.java
     touch $out
-  ''
+  '';
+}
diff --git a/nixpkgs/pkgs/development/libraries/gjs/default.nix b/nixpkgs/pkgs/development/libraries/gjs/default.nix
index 1c1c1d5ff407..dc5f5e46975d 100644
--- a/nixpkgs/pkgs/development/libraries/gjs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gjs/default.nix
@@ -32,13 +32,13 @@ let
   ];
 in stdenv.mkDerivation (finalAttrs: {
   pname = "gjs";
-  version = "1.78.3";
+  version = "1.78.4";
 
   outputs = [ "out" "dev" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${lib.versions.majorMinor finalAttrs.version}/gjs-${finalAttrs.version}.tar.xz";
-    hash = "sha256-QtUDZMql15LHZzT+W7zEudu0iBnaIKQGAGHouVJhNKQ=";
+    hash = "sha256-mux6uHLCBQQEkHrpTwrnq+yKVL2ciU3bXC0PUekyuaE=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
index 01db789a60bd..014e5f7e9f0e 100644
--- a/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/glfw/3.x.nix
@@ -6,14 +6,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.3.9";
+  version = "3.3.10";
   pname = "glfw";
 
   src = fetchFromGitHub {
     owner = "glfw";
     repo = "GLFW";
     rev = version;
-    sha256 = "sha256-DlPRNGCBr6XF9Jn8kWs5lCRTyjPeDt/69PNDzBDhoyg=";
+    sha256 = "sha256-kTRXsfQ+9PFurG3ffz0lwnITAYAXtNl3h/3O6FSny5o=";
   };
 
   # Fix linkage issues on X11 (https://github.com/NixOS/nixpkgs/issues/142583)
diff --git a/nixpkgs/pkgs/development/libraries/gnutls/default.nix b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
index b8c95653e366..86b22eb7cfd7 100644
--- a/nixpkgs/pkgs/development/libraries/gnutls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnutls/default.nix
@@ -1,14 +1,36 @@
-{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip
-, perl, gmp, autoconf, automake, libidn2, libiconv
+{ config
+, lib
+, stdenv
+, fetchurl
+, zlib
+, lzo
+, libtasn1
+, nettle
+, pkg-config
+, lzip
+, perl
+, gmp
+, autoconf
+, automake
+, libidn2
+, libiconv
 , texinfo
-, unbound, dns-root-data, gettext, util-linux
+, unbound
+, dns-root-data
+, gettext
+, util-linux
 , cxxBindings ? !stdenv.hostPlatform.isStatic # tries to link libstdc++.so
-, tpmSupport ? false, trousers, which, nettools, libunistring
-, withP11-kit ? !stdenv.hostPlatform.isStatic, p11-kit
+, tpmSupport ? false
+, trousers
+, which
+, nettools
+, libunistring
+, withP11-kit ? !stdenv.hostPlatform.isStatic
+, p11-kit
 , Security  # darwin Security.framework
-# certificate compression - only zlib now, more possible: zstd, brotli
+  # certificate compression - only zlib now, more possible: zstd, brotli
 
-# for passthru.tests
+  # for passthru.tests
 , curlWithGnuTls
 , emacs
 , ffmpeg
@@ -28,7 +50,7 @@ let
   # XXX: Gnulib's `test-select' fails on FreeBSD:
   # https://hydra.nixos.org/build/2962084/nixlog/1/raw .
   doCheck = !stdenv.isFreeBSD && !stdenv.isDarwin
-      && stdenv.buildPlatform == stdenv.hostPlatform;
+    && stdenv.buildPlatform == stdenv.hostPlatform;
 
   inherit (stdenv.hostPlatform) isDarwin;
 in
@@ -42,10 +64,12 @@ stdenv.mkDerivation rec {
     hash = "sha256-90/FlUsn1Oxt+7Ed6ph4iLWxJCiaNwOvytoO5SD0Fz4=";
   };
 
-  outputs = [ "bin" "dev" "out" "man" "devdoc" ];
+  outputs = [ "bin" "dev" "out" ]
+    ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [ "man" "devdoc" ];
+
   # Not normally useful docs.
   outputInfo = "devdoc";
-  outputDoc  = "devdoc";
+  outputDoc = "devdoc";
 
   patches = [
     ./nix-ssl-cert-file.patch
@@ -68,15 +92,17 @@ stdenv.mkDerivation rec {
   preConfigure = "patchShebangs .";
   configureFlags =
     lib.optionals withP11-kit [
-    "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
-    "--with-default-trust-store-pkcs11=pkcs11:"
-  ] ++ [
-    "--disable-dependency-tracking"
-    "--enable-fast-install"
-    "--with-unbound-root-key-file=${dns-root-data}/root.key"
-    (lib.withFeature withP11-kit "p11-kit")
-    (lib.enableFeature cxxBindings "cxx")
-  ];
+      "--with-default-trust-store-file=/etc/ssl/certs/ca-certificates.crt"
+      "--with-default-trust-store-pkcs11=pkcs11:"
+    ] ++ [
+      "--disable-dependency-tracking"
+      "--enable-fast-install"
+      "--with-unbound-root-key-file=${dns-root-data}/root.key"
+      (lib.withFeature withP11-kit "p11-kit")
+      (lib.enableFeature cxxBindings "cxx")
+    ] ++ lib.optionals (stdenv.hostPlatform.isMinGW) [
+      "--disable-doc"
+    ];
 
   enableParallelBuilding = true;
 
@@ -121,17 +147,17 @@ stdenv.mkDerivation rec {
     description = "The GNU Transport Layer Security Library";
 
     longDescription = ''
-       GnuTLS is a project that aims to develop a library which
-       provides a secure layer, over a reliable transport
-       layer. Currently the GnuTLS library implements the proposed standards by
-       the IETF's TLS working group.
+      GnuTLS is a project that aims to develop a library which
+      provides a secure layer, over a reliable transport
+      layer. Currently the GnuTLS library implements the proposed standards by
+      the IETF's TLS working group.
 
-       Quoting from the TLS protocol specification:
+      Quoting from the TLS protocol specification:
 
-       "The TLS protocol provides communications privacy over the
-       Internet. The protocol allows client/server applications to
-       communicate in a way that is designed to prevent eavesdropping,
-       tampering, or message forgery."
+      "The TLS protocol provides communications privacy over the
+      Internet. The protocol allows client/server applications to
+      communicate in a way that is designed to prevent eavesdropping,
+      tampering, or message forgery."
     '';
 
     homepage = "https://gnutls.org/";
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/default.nix b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
index ca359fcc912b..c712b5195dc5 100644
--- a/nixpkgs/pkgs/development/libraries/gpgme/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , autoreconfHook
 , libgpg-error
 , gnupg
@@ -9,7 +8,6 @@
 , glib
 , pth
 , libassuan
-, file
 , which
 , ncurses
 , texinfo
@@ -22,28 +20,34 @@
 , qt6Packages
 , python3
 }:
-let
-  inherit (stdenv.hostPlatform) system;
-in
+
 stdenv.mkDerivation rec {
   pname = "gpgme";
   version = "1.23.2";
+  pyproject = true;
+
+  outputs = [ "out" "dev" "info" ];
+
+  outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
 
   src = fetchurl {
-    url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
+    url = "mirror://gnupg/gpgme/gpgme-${version}.tar.bz2";
     hash = "sha256-lJnosfM8zLaBVSehvBYEnTWmGYpsX64BhfK9VhvOUiQ=";
   };
 
   patches = [
-    # Support Python 3.10 version detection without distutils, https://dev.gnupg.org/D545
-    ./python-310-detection-without-distutils.patch
+    # Support Python 3.10-3.12, remove distutils, https://dev.gnupg.org/D545
+    ./python-310-312-remove-distutils.patch
     # Fix a test after disallowing compressed signatures in gpg (PR #180336)
     ./test_t-verify_double-plaintext.patch
   ];
 
-  outputs = [ "out" "dev" "info" ];
-
-  outputBin = "dev"; # gpgme-config; not so sure about gpgme-tool
+  postPatch = ''
+    # autoconf's beta detection requires a git repo to work
+    # and otherwise appends -unknown to the version number used in the python package which pip stumbles upon
+    substituteInPlace autogen.sh \
+      --replace-fail 'tmp="-unknown"' 'tmp=""'
+  '';
 
   nativeBuildInputs = [
     autoreconfHook
@@ -52,6 +56,9 @@ stdenv.mkDerivation rec {
     texinfo
   ] ++ lib.optionals pythonSupport [
     python3.pythonOnBuildForHost
+    python3.pkgs.pip
+    python3.pkgs.setuptools
+    python3.pkgs.wheel
     ncurses
     swig2
     which
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/python-310-312-remove-distutils.patch b/nixpkgs/pkgs/development/libraries/gpgme/python-310-312-remove-distutils.patch
new file mode 100644
index 000000000000..774188aee89c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gpgme/python-310-312-remove-distutils.patch
@@ -0,0 +1,647 @@
+diff --git a/lang/python/Makefile.am b/lang/python/Makefile.am
+--- a/lang/python/Makefile.am
++++ b/lang/python/Makefile.am
+@@ -34,8 +34,8 @@
+ .PHONY: prepare
+ prepare: copystamp
+ 
+-# For VPATH builds we need to copy some files because Python's
+-# distutils are not VPATH-aware.
++# For VPATH builds we need to copy some files because Python
++# is not VPATH-aware.
+ copystamp:
+ 	ln -sf "$(top_srcdir)/src/data.h" .
+ 	ln -sf "$(top_builddir)/conf/config.h" .
+@@ -48,7 +48,7 @@
+ 	  CFLAGS="$(CFLAGS)" \
+ 	  srcdir="$(srcdir)" \
+ 	  top_builddir="$(top_builddir)" \
+-	    $$PYTHON setup.py build --verbose --build-base="$$(basename "$${PYTHON}")-gpg" ; \
++	    $$PYTHON -m pip --verbose install --no-index --no-build-isolation --root="$$(basename "$${PYTHON}")-gpg" ${srcdir} ; \
+ 	done
+ 
+ python$(PYTHON_VERSION)-gpg/dist/gpg-$(VERSION).tar.gz.asc: copystamp
+@@ -57,8 +57,7 @@
+ 	CFLAGS="$(CFLAGS)" \
+ 	srcdir="$(srcdir)" \
+ 	top_builddir="$(top_builddir)" \
+-	  $(PYTHON) setup.py sdist --verbose --dist-dir=python$(PYTHON_VERSION)-gpg-dist \
+-		--manifest=python$(PYTHON_VERSION)-gpg-dist/MANIFEST
++	  $(PYTHON) -m build --sdist --outdir=python$(PYTHON_VERSION)-gpg-dist
+ 	gpgbin=gpgconf --list-components | grep OpenPGP | sed -e 's/gpg:OpenPGP://g'
+ 	$(gpgbin) --detach-sign --armor python$(PYTHON_VERSION)-gpg-dist/gpg-$(VERSION).tar.gz
+ 
+@@ -92,17 +91,16 @@
+ 	  CFLAGS="$(CFLAGS)" \
+ 	  srcdir="$(srcdir)" \
+ 	  top_builddir="$(top_builddir)" \
+-	  $$PYTHON setup.py \
+-	  build \
+-	  --build-base="$$(basename "$${PYTHON}")-gpg" \
++	  $$PYTHON -m pip --verbose \
+ 	  install \
++	  --no-index --no-build-isolation \
+ 	  --prefix "$(DESTDIR)$(prefix)" \
+-	  --verbose ; \
++	  ${srcdir} ; \
+ 	done
+ 
+ uninstall-local:
+ 	set -x; GV=$$(echo $(VERSION) | tr - _); for PYTHON in $(PYTHONS); do \
+ 	  PLATLIB="$(prefix)/$$("$${PYTHON}" -c 'import sysconfig, os; print(os.path.relpath(sysconfig.get_path("platlib", scheme="posix_prefix"), sysconfig.get_config_var("prefix")))')" ; \
+ 	  rm -rf -- "$(DESTDIR)$${PLATLIB}/gpg" \
+-		"$(DESTDIR)$${PLATLIB}"/gpg-$$GV-py*.egg-info ; \
++		"$(DESTDIR)$${PLATLIB}"/gpg-$$GV.dist-info ; \
+ 	done
+diff --git a/lang/python/doc/src/gpgme-python-howto.org b/lang/python/doc/src/gpgme-python-howto.org
+--- a/lang/python/doc/src/gpgme-python-howto.org
++++ b/lang/python/doc/src/gpgme-python-howto.org
+@@ -2945,7 +2945,7 @@
+ =setup.py= file which contains this:
+ 
+ #+BEGIN_SRC python -i
+-from distutils.core import setup
++from setuptools import setup
+ from Cython.Build import cythonize
+ 
+ setup(
+diff --git a/lang/python/examples/howto/advanced/cython/setup.py b/lang/python/examples/howto/advanced/cython/setup.py
+--- a/lang/python/examples/howto/advanced/cython/setup.py
++++ b/lang/python/examples/howto/advanced/cython/setup.py
+@@ -1,4 +1,4 @@
+-from distutils.core import setup
++from setuptools import setup
+ from Cython.Build import cythonize
+ 
+ setup(
+diff --git a/lang/python/setup.py.in b/lang/python/setup.py.in
+--- a/lang/python/setup.py.in
++++ b/lang/python/setup.py.in
+@@ -18,8 +18,8 @@
+ #    License along with this library; if not, write to the Free Software
+ #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307  USA
+ 
+-from distutils.core import setup, Extension
+-from distutils.command.build import build
++from setuptools import setup, Extension
++from setuptools.command.build import build
+ 
+ import glob
+ import os
+@@ -225,9 +225,8 @@
+         build.run(self)
+ 
+ 
+-py3 = [] if sys.version_info.major < 3 else ['-py3']
+ swig_sources = []
+-swig_opts = ['-threads'] + py3 + extra_swig_opts
++swig_opts = ['-threads'] + extra_swig_opts
+ swige = Extension(
+     'gpg._gpgme',
+     sources=swig_sources,
+diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
+--- a/m4/ax_python_devel.m4
++++ b/m4/ax_python_devel.m4
+@@ -1,10 +1,10 @@
+ # ===========================================================================
+-#      https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
++#     https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
+ # ===========================================================================
+ #
+ # SYNOPSIS
+ #
+-#   AX_PYTHON_DEVEL([version])
++#   AX_PYTHON_DEVEL([version[,optional]])
+ #
+ # DESCRIPTION
+ #
+@@ -12,8 +12,8 @@
+ #   in your configure.ac.
+ #
+ #   This macro checks for Python and tries to get the include path to
+-#   'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
+-#   output variables. It also exports $(PYTHON_EXTRA_LIBS) and
++#   'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
++#   variables. It also exports $(PYTHON_EXTRA_LIBS) and
+ #   $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
+ #
+ #   You can search for some particular version of Python by passing a
+@@ -23,6 +23,11 @@
+ #   version number. Don't use "PYTHON_VERSION" for this: that environment
+ #   variable is declared as precious and thus reserved for the end-user.
+ #
++#   By default this will fail if it does not detect a development version of
++#   python.  If you want it to continue, set optional to true, like
++#   AX_PYTHON_DEVEL([], [true]).  The ax_python_devel_found variable will be
++#   "no" if it fails.
++#
+ #   This macro should work for all versions of Python >= 2.1.0. As an end
+ #   user, you can disable the check for the python version by setting the
+ #   PYTHON_NOVERSIONCHECK environment variable to something else than the
+@@ -67,10 +72,18 @@
+ #   modified version of the Autoconf Macro, you may extend this special
+ #   exception to the GPL to apply to your modified version as well.
+ 
+-#serial 17
++#serial 36
+ 
+ AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
+ AC_DEFUN([AX_PYTHON_DEVEL],[
++	# Get whether it's optional
++	if test -z "$2"; then
++	   ax_python_devel_optional=false
++	else
++	   ax_python_devel_optional=$2
++	fi
++	ax_python_devel_found=yes
++
+ 	#
+ 	# Allow the use of a (user set) custom python version
+ 	#
+@@ -81,81 +94,147 @@
+ 
+ 	AC_PATH_PROG([PYTHON],[python[$PYTHON_VERSION]])
+ 	if test -z "$PYTHON"; then
+-	   AC_MSG_ERROR([Cannot find python$PYTHON_VERSION in your system path])
++	   AC_MSG_WARN([Cannot find python$PYTHON_VERSION in your system path])
++	   if ! $ax_python_devel_optional; then
++	      AC_MSG_ERROR([Giving up, python development not available])
++	   fi
++	   ax_python_devel_found=no
+ 	   PYTHON_VERSION=""
+ 	fi
+ 
+-	#
+-	# Check for a version of Python >= 2.1.0
+-	#
+-	AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
+-	ac_supports_python_ver=`$PYTHON -c "import sys; \
++	if test $ax_python_devel_found = yes; then
++	   #
++	   # Check for a version of Python >= 2.1.0
++	   #
++	   AC_MSG_CHECKING([for a version of Python >= '2.1.0'])
++	   ac_supports_python_ver=`$PYTHON -c "import sys; \
+ 		ver = sys.version.split ()[[0]]; \
+ 		print (ver >= '2.1.0')"`
+-	if test "$ac_supports_python_ver" != "True"; then
++	   if test "$ac_supports_python_ver" != "True"; then
+ 		if test -z "$PYTHON_NOVERSIONCHECK"; then
+ 			AC_MSG_RESULT([no])
+-			AC_MSG_FAILURE([
++			AC_MSG_WARN([
+ This version of the AC@&t@_PYTHON_DEVEL macro
+ doesn't work properly with versions of Python before
+ 2.1.0. You may need to re-run configure, setting the
+-variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
++variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
+ PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
+ Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
+ to something else than an empty string.
+ ])
++			if ! $ax_python_devel_optional; then
++			   AC_MSG_FAILURE([Giving up])
++			fi
++			ax_python_devel_found=no
++			PYTHON_VERSION=""
+ 		else
+ 			AC_MSG_RESULT([skip at user request])
+ 		fi
+-	else
++	   else
+ 		AC_MSG_RESULT([yes])
++	   fi
+ 	fi
+ 
+-	#
+-	# if the macro parameter ``version'' is set, honour it
+-	#
+-	if test -n "$1"; then
++	if test $ax_python_devel_found = yes; then
++	   #
++	   # If the macro parameter ``version'' is set, honour it.
++	   # A Python shim class, VPy, is used to implement correct version comparisons via
++	   # string expressions, since e.g. a naive textual ">= 2.7.3" won't work for
++	   # Python 2.7.10 (the ".1" being evaluated as less than ".3").
++	   #
++	   if test -n "$1"; then
+ 		AC_MSG_CHECKING([for a version of Python $1])
+-		ac_supports_python_ver=`$PYTHON -c "import sys; \
+-			ver = sys.version.split ()[[0]]; \
++                cat << EOF > ax_python_devel_vpy.py
++class VPy:
++    def vtup(self, s):
++        return tuple(map(int, s.strip().replace("rc", ".").split(".")))
++    def __init__(self):
++        import sys
++        self.vpy = tuple(sys.version_info)[[:3]]
++    def __eq__(self, s):
++        return self.vpy == self.vtup(s)
++    def __ne__(self, s):
++        return self.vpy != self.vtup(s)
++    def __lt__(self, s):
++        return self.vpy < self.vtup(s)
++    def __gt__(self, s):
++        return self.vpy > self.vtup(s)
++    def __le__(self, s):
++        return self.vpy <= self.vtup(s)
++    def __ge__(self, s):
++        return self.vpy >= self.vtup(s)
++EOF
++		ac_supports_python_ver=`$PYTHON -c "import ax_python_devel_vpy; \
++                        ver = ax_python_devel_vpy.VPy(); \
+ 			print (ver $1)"`
++                rm -rf ax_python_devel_vpy*.py* __pycache__/ax_python_devel_vpy*.py*
+ 		if test "$ac_supports_python_ver" = "True"; then
+-		   AC_MSG_RESULT([yes])
++			AC_MSG_RESULT([yes])
+ 		else
+ 			AC_MSG_RESULT([no])
+-			AC_MSG_ERROR([this package requires Python $1.
++			AC_MSG_WARN([this package requires Python $1.
+ If you have it installed, but it isn't the default Python
+ interpreter in your system path, please pass the PYTHON_VERSION
+ variable to configure. See ``configure --help'' for reference.
+ ])
++			if ! $ax_python_devel_optional; then
++			   AC_MSG_ERROR([Giving up])
++			fi
++			ax_python_devel_found=no
+ 			PYTHON_VERSION=""
+ 		fi
++	   fi
+ 	fi
+ 
+-	#
+-	# Check if you have distutils, else fail
+-	#
+-	AC_MSG_CHECKING([for the distutils Python package])
+-	ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
+-	if test -z "$ac_distutils_result"; then
++	if test $ax_python_devel_found = yes; then
++	   #
++	   # Check if you have distutils, else fail
++	   #
++	   AC_MSG_CHECKING([for the sysconfig Python package])
++	   ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
++	   if test $? -eq 0; then
+ 		AC_MSG_RESULT([yes])
+-	else
++		IMPORT_SYSCONFIG="import sysconfig"
++	   else
+ 		AC_MSG_RESULT([no])
+-		AC_MSG_ERROR([cannot import Python module "distutils".
++
++		AC_MSG_CHECKING([for the distutils Python package])
++		ac_sysconfig_result=`$PYTHON -c "from distutils import sysconfig" 2>&1`
++		if test $? -eq 0; then
++			AC_MSG_RESULT([yes])
++			IMPORT_SYSCONFIG="from distutils import sysconfig"
++		else
++			AC_MSG_WARN([cannot import Python module "distutils".
+ Please check your Python installation. The error was:
+-$ac_distutils_result])
+-		PYTHON_VERSION=""
++$ac_sysconfig_result])
++			if ! $ax_python_devel_optional; then
++			   AC_MSG_ERROR([Giving up])
++			fi
++			ax_python_devel_found=no
++			PYTHON_VERSION=""
++		fi
++	   fi
+ 	fi
+ 
+-	#
+-	# Check for Python include path
+-	#
+-	AC_MSG_CHECKING([for Python include path])
+-	if test -z "$PYTHON_CPPFLAGS"; then
+-		python_path=`$PYTHON -c "import distutils.sysconfig; \
+-			print (distutils.sysconfig.get_python_inc ());"`
+-		plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
+-			print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
++	if test $ax_python_devel_found = yes; then
++	   #
++	   # Check for Python include path
++	   #
++	   AC_MSG_CHECKING([for Python include path])
++	   if test -z "$PYTHON_CPPFLAGS"; then
++		if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
++			# sysconfig module has different functions
++			python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++				print (sysconfig.get_path ('include'));"`
++			plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++				print (sysconfig.get_path ('platinclude'));"`
++		else
++			# old distutils way
++			python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++				print (sysconfig.get_python_inc ());"`
++			plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++				print (sysconfig.get_python_inc (plat_specific=1));"`
++		fi
+ 		if test -n "${python_path}"; then
+ 			if test "${plat_python_path}" != "${python_path}"; then
+ 				python_path="-I$python_path -I$plat_python_path"
+@@ -164,22 +243,22 @@
+ 			fi
+ 		fi
+ 		PYTHON_CPPFLAGS=$python_path
+-	fi
+-	AC_MSG_RESULT([$PYTHON_CPPFLAGS])
+-	AC_SUBST([PYTHON_CPPFLAGS])
++	   fi
++	   AC_MSG_RESULT([$PYTHON_CPPFLAGS])
++	   AC_SUBST([PYTHON_CPPFLAGS])
+ 
+-	#
+-	# Check for Python library path
+-	#
+-	AC_MSG_CHECKING([for Python library path])
+-	if test -z "$PYTHON_LDFLAGS"; then
++	   #
++	   # Check for Python library path
++	   #
++	   AC_MSG_CHECKING([for Python library path])
++	   if test -z "$PYTHON_LIBS"; then
+ 		# (makes two attempts to ensure we've got a version number
+ 		# from the interpreter)
+ 		ac_python_version=`cat<<EOD | $PYTHON -
+ 
+ # join all versioning strings, on some systems
+ # major/minor numbers could be in different list elements
+-from distutils.sysconfig import *
++from sysconfig import *
+ e = get_config_var('VERSION')
+ if e is not None:
+ 	print(e)
+@@ -190,7 +269,7 @@
+ 				ac_python_version=$PYTHON_VERSION
+ 			else
+ 				ac_python_version=`$PYTHON -c "import sys; \
+-					print (sys.version[[:3]])"`
++					print ("%d.%d" % sys.version_info[[:2]])"`
+ 			fi
+ 		fi
+ 
+@@ -205,8 +284,8 @@
+ 		ac_python_libdir=`cat<<EOD | $PYTHON -
+ 
+ # There should be only one
+-import distutils.sysconfig
+-e = distutils.sysconfig.get_config_var('LIBDIR')
++$IMPORT_SYSCONFIG
++e = sysconfig.get_config_var('LIBDIR')
+ if e is not None:
+ 	print (e)
+ EOD`
+@@ -214,8 +293,8 @@
+ 		# Now, for the library:
+ 		ac_python_library=`cat<<EOD | $PYTHON -
+ 
+-import distutils.sysconfig
+-c = distutils.sysconfig.get_config_vars()
++$IMPORT_SYSCONFIG
++c = sysconfig.get_config_vars()
+ if 'LDVERSION' in c:
+ 	print ('python'+c[['LDVERSION']])
+ else:
+@@ -230,97 +309,163 @@
+ 		then
+ 			# use the official shared library
+ 			ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
+-			PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
++			PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
+ 		else
+ 			# old way: use libpython from python_configdir
+ 			ac_python_libdir=`$PYTHON -c \
+-			  "from distutils.sysconfig import get_python_lib as f; \
++			  "from sysconfig import get_python_lib as f; \
+ 			  import os; \
+ 			  print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
+-			PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
++			PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
+ 		fi
+ 
+-		if test -z "PYTHON_LDFLAGS"; then
+-			AC_MSG_ERROR([
++		if test -z "PYTHON_LIBS"; then
++			AC_MSG_WARN([
+   Cannot determine location of your Python DSO. Please check it was installed with
+-  dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
++  dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
+ 			])
++			if ! $ax_python_devel_optional; then
++			   AC_MSG_ERROR([Giving up])
++			fi
++			ax_python_devel_found=no
++			PYTHON_VERSION=""
+ 		fi
++	   fi
+ 	fi
+-	AC_MSG_RESULT([$PYTHON_LDFLAGS])
+-	AC_SUBST([PYTHON_LDFLAGS])
+ 
+-	#
+-	# Check for site packages
+-	#
+-	AC_MSG_CHECKING([for Python site-packages path])
+-	if test -z "$PYTHON_SITE_PKG"; then
+-		PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
+-			print (distutils.sysconfig.get_python_lib(0,0));"`
+-	fi
+-	AC_MSG_RESULT([$PYTHON_SITE_PKG])
+-	AC_SUBST([PYTHON_SITE_PKG])
++	if test $ax_python_devel_found = yes; then
++	   AC_MSG_RESULT([$PYTHON_LIBS])
++	   AC_SUBST([PYTHON_LIBS])
+ 
+-	#
+-	# libraries which must be linked in when embedding
+-	#
+-	AC_MSG_CHECKING(python extra libraries)
+-	if test -z "$PYTHON_EXTRA_LIBS"; then
+-	   PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
+-                conf = distutils.sysconfig.get_config_var; \
++	   #
++	   # Check for site packages
++	   #
++	   AC_MSG_CHECKING([for Python site-packages path])
++	   if test -z "$PYTHON_SITE_PKG"; then
++		if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
++			PYTHON_SITE_PKG=`$PYTHON -c "
++$IMPORT_SYSCONFIG;
++if hasattr(sysconfig, 'get_default_scheme'):
++    scheme = sysconfig.get_default_scheme()
++else:
++    scheme = sysconfig._get_default_scheme()
++if scheme == 'posix_local':
++    # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/
++    scheme = 'posix_prefix'
++prefix = '$prefix'
++if prefix == 'NONE':
++    prefix = '$ac_default_prefix'
++sitedir = sysconfig.get_path('purelib', scheme, vars={'base': prefix})
++print(sitedir)"`
++		else
++			# distutils.sysconfig way
++			PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++				print (sysconfig.get_python_lib(0,0));"`
++		fi
++	   fi
++	   AC_MSG_RESULT([$PYTHON_SITE_PKG])
++	   AC_SUBST([PYTHON_SITE_PKG])
++
++	   #
++	   # Check for platform-specific site packages
++	   #
++	   AC_MSG_CHECKING([for Python platform specific site-packages path])
++	   if test -z "$PYTHON_PLATFORM_SITE_PKG"; then
++		if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
++			PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "
++$IMPORT_SYSCONFIG;
++if hasattr(sysconfig, 'get_default_scheme'):
++    scheme = sysconfig.get_default_scheme()
++else:
++    scheme = sysconfig._get_default_scheme()
++if scheme == 'posix_local':
++    # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/
++    scheme = 'posix_prefix'
++prefix = '$prefix'
++if prefix == 'NONE':
++    prefix = '$ac_default_prefix'
++sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase': prefix})
++print(sitedir)"`
++		else
++			# distutils.sysconfig way
++			PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++				print (sysconfig.get_python_lib(1,0));"`
++		fi
++	   fi
++	   AC_MSG_RESULT([$PYTHON_PLATFORM_SITE_PKG])
++	   AC_SUBST([PYTHON_PLATFORM_SITE_PKG])
++
++	   #
++	   # libraries which must be linked in when embedding
++	   #
++	   AC_MSG_CHECKING(python extra libraries)
++	   if test -z "$PYTHON_EXTRA_LIBS"; then
++	      PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++                conf = sysconfig.get_config_var; \
+                 print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
+-	fi
+-	AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
+-	AC_SUBST(PYTHON_EXTRA_LIBS)
++	   fi
++	   AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
++	   AC_SUBST(PYTHON_EXTRA_LIBS)
+ 
+-	#
+-	# linking flags needed when embedding
+-	#
+-	AC_MSG_CHECKING(python extra linking flags)
+-	if test -z "$PYTHON_EXTRA_LDFLAGS"; then
+-		PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
+-			conf = distutils.sysconfig.get_config_var; \
++	   #
++	   # linking flags needed when embedding
++	   #
++	   AC_MSG_CHECKING(python extra linking flags)
++	   if test -z "$PYTHON_EXTRA_LDFLAGS"; then
++		PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
++			conf = sysconfig.get_config_var; \
+ 			print (conf('LINKFORSHARED'))"`
+-	fi
+-	AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
+-	AC_SUBST(PYTHON_EXTRA_LDFLAGS)
++		# Hack for macos, it sticks this in here.
++		PYTHON_EXTRA_LDFLAGS=`echo $PYTHON_EXTRA_LDFLAGS | sed 's/CoreFoundation.*$/CoreFoundation/'`
++	   fi
++	   AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
++	   AC_SUBST(PYTHON_EXTRA_LDFLAGS)
+ 
+-	#
+-	# final check to see if everything compiles alright
+-	#
+-	AC_MSG_CHECKING([consistency of all components of python development environment])
+-	# save current global flags
+-	ac_save_LIBS="$LIBS"
+-	ac_save_CPPFLAGS="$CPPFLAGS"
+-	LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
+-	CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
+-	AC_LANG_PUSH([C])
+-	AC_LINK_IFELSE([
++	   #
++	   # final check to see if everything compiles alright
++	   #
++	   AC_MSG_CHECKING([consistency of all components of python development environment])
++	   # save current global flags
++	   ac_save_LIBS="$LIBS"
++	   ac_save_LDFLAGS="$LDFLAGS"
++	   ac_save_CPPFLAGS="$CPPFLAGS"
++	   LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS"
++	   LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
++	   CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
++	   AC_LANG_PUSH([C])
++	   AC_LINK_IFELSE([
+ 		AC_LANG_PROGRAM([[#include <Python.h>]],
+ 				[[Py_Initialize();]])
+ 		],[pythonexists=yes],[pythonexists=no])
+-	AC_LANG_POP([C])
+-	# turn back to default flags
+-	CPPFLAGS="$ac_save_CPPFLAGS"
+-	LIBS="$ac_save_LIBS"
++	   AC_LANG_POP([C])
++	   # turn back to default flags
++	   CPPFLAGS="$ac_save_CPPFLAGS"
++	   LIBS="$ac_save_LIBS"
++	   LDFLAGS="$ac_save_LDFLAGS"
+ 
+-	AC_MSG_RESULT([$pythonexists])
++	   AC_MSG_RESULT([$pythonexists])
+ 
+-        if test ! "x$pythonexists" = "xyes"; then
+-	   AC_MSG_WARN([
++	   if test ! "x$pythonexists" = "xyes"; then
++	      AC_MSG_WARN([
+   Could not link test program to Python. Maybe the main Python library has been
+   installed in some non-standard library path. If so, pass it to configure,
+-  via the LDFLAGS environment variable.
+-  Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
++  via the LIBS environment variable.
++  Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
+   ============================================================================
++   ERROR!
+    You probably have to install the development version of the Python package
+    for your distribution.  The exact name of this package varies among them.
+   ============================================================================
+-	   ])
+-	  PYTHON_VERSION=""
++	      ])
++	      if ! $ax_python_devel_optional; then
++		 AC_MSG_ERROR([Giving up])
++	      fi
++	      ax_python_devel_found=no
++	      PYTHON_VERSION=""
++	   fi
+ 	fi
+ 
+ 	#
+ 	# all done!
+ 	#
+-])
++])
+\ No newline at end of file
+diff --git a/m4/python.m4 b/m4/python.m4
+--- a/m4/python.m4
++++ b/m4/python.m4
+@@ -41,7 +41,7 @@
+   m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
+ [python2 python2.7 dnl
+  python dnl
+- python3 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4
++ python3 python3.12 python3.11 python3.10 python3.9 python3.8 python3.7 python3.6 python3.5 python3.4
+  ])
+ 
+   AC_ARG_VAR([PYTHON], [the Python interpreter])
+
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch b/nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch
deleted file mode 100644
index e0eea9ff0429..000000000000
--- a/nixpkgs/pkgs/development/libraries/gpgme/python-310-detection-without-distutils.patch
+++ /dev/null
@@ -1,273 +0,0 @@
-diff --git a/m4/ax_python_devel.m4 b/m4/ax_python_devel.m4
---- a/m4/ax_python_devel.m4
-+++ b/m4/ax_python_devel.m4
-@@ -1,5 +1,5 @@
- # ===========================================================================
--#      https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
-+#     https://www.gnu.org/software/autoconf-archive/ax_python_devel.html
- # ===========================================================================
- #
- # SYNOPSIS
-@@ -12,8 +12,8 @@
- #   in your configure.ac.
- #
- #   This macro checks for Python and tries to get the include path to
--#   'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LDFLAGS)
--#   output variables. It also exports $(PYTHON_EXTRA_LIBS) and
-+#   'Python.h'. It provides the $(PYTHON_CPPFLAGS) and $(PYTHON_LIBS) output
-+#   variables. It also exports $(PYTHON_EXTRA_LIBS) and
- #   $(PYTHON_EXTRA_LDFLAGS) for embedding Python in your code.
- #
- #   You can search for some particular version of Python by passing a
-@@ -67,7 +67,7 @@
- #   modified version of the Autoconf Macro, you may extend this special
- #   exception to the GPL to apply to your modified version as well.
- 
--#serial 17
-+#serial 23
- 
- AU_ALIAS([AC_PYTHON_DEVEL], [AX_PYTHON_DEVEL])
- AC_DEFUN([AX_PYTHON_DEVEL],[
-@@ -99,7 +99,7 @@
- This version of the AC@&t@_PYTHON_DEVEL macro
- doesn't work properly with versions of Python before
- 2.1.0. You may need to re-run configure, setting the
--variables PYTHON_CPPFLAGS, PYTHON_LDFLAGS, PYTHON_SITE_PKG,
-+variables PYTHON_CPPFLAGS, PYTHON_LIBS, PYTHON_SITE_PKG,
- PYTHON_EXTRA_LIBS and PYTHON_EXTRA_LDFLAGS by hand.
- Moreover, to disable this check, set PYTHON_NOVERSIONCHECK
- to something else than an empty string.
-@@ -135,16 +135,25 @@
- 	#
- 	# Check if you have distutils, else fail
- 	#
--	AC_MSG_CHECKING([for the distutils Python package])
--	ac_distutils_result=`$PYTHON -c "import distutils" 2>&1`
--	if test -z "$ac_distutils_result"; then
-+	AC_MSG_CHECKING([for the sysconfig Python package])
-+	ac_sysconfig_result=`$PYTHON -c "import sysconfig" 2>&1`
-+	if test $? -eq 0; then
- 		AC_MSG_RESULT([yes])
-+		IMPORT_SYSCONFIG="import sysconfig"
- 	else
- 		AC_MSG_RESULT([no])
--		AC_MSG_ERROR([cannot import Python module "distutils".
-+
-+		AC_MSG_CHECKING([for the distutils Python package])
-+		ac_sysconfig_result=`$PYTHON -c "from distutils import sysconfig" 2>&1`
-+		if test $? -eq 0; then
-+			AC_MSG_RESULT([yes])
-+			IMPORT_SYSCONFIG="from distutils import sysconfig"
-+		else
-+			AC_MSG_ERROR([cannot import Python module "distutils".
- Please check your Python installation. The error was:
--$ac_distutils_result])
--		PYTHON_VERSION=""
-+$ac_sysconfig_result])
-+			PYTHON_VERSION=""
-+		fi
- 	fi
- 
- 	#
-@@ -152,10 +161,19 @@
- 	#
- 	AC_MSG_CHECKING([for Python include path])
- 	if test -z "$PYTHON_CPPFLAGS"; then
--		python_path=`$PYTHON -c "import distutils.sysconfig; \
--			print (distutils.sysconfig.get_python_inc ());"`
--		plat_python_path=`$PYTHON -c "import distutils.sysconfig; \
--			print (distutils.sysconfig.get_python_inc (plat_specific=1));"`
-+		if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
-+			# sysconfig module has different functions
-+			python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_path ('include'));"`
-+			plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_path ('platinclude'));"`
-+		else
-+			# old distutils way
-+			python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_python_inc ());"`
-+			plat_python_path=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_python_inc (plat_specific=1));"`
-+		fi
- 		if test -n "${python_path}"; then
- 			if test "${plat_python_path}" != "${python_path}"; then
- 				python_path="-I$python_path -I$plat_python_path"
-@@ -172,14 +190,14 @@
- 	# Check for Python library path
- 	#
- 	AC_MSG_CHECKING([for Python library path])
--	if test -z "$PYTHON_LDFLAGS"; then
-+	if test -z "$PYTHON_LIBS"; then
- 		# (makes two attempts to ensure we've got a version number
- 		# from the interpreter)
- 		ac_python_version=`cat<<EOD | $PYTHON -
- 
- # join all versioning strings, on some systems
- # major/minor numbers could be in different list elements
--from distutils.sysconfig import *
-+from sysconfig import *
- e = get_config_var('VERSION')
- if e is not None:
- 	print(e)
-@@ -197,7 +215,7 @@
- 		# Make the versioning information available to the compiler
- 
- 		# JW: We don't need it and it interferes with the hack
--		# to detect multiple Pyhton versions
-+		# to detect multiple Python versions
- 		#AC_DEFINE_UNQUOTED([HAVE_PYTHON], ["$ac_python_version"],
-                 #                  [If available, contains the Python version number currently in use.])
- 
-@@ -205,8 +223,8 @@
- 		ac_python_libdir=`cat<<EOD | $PYTHON -
- 
- # There should be only one
--import distutils.sysconfig
--e = distutils.sysconfig.get_config_var('LIBDIR')
-+$IMPORT_SYSCONFIG
-+e = sysconfig.get_config_var('LIBDIR')
- if e is not None:
- 	print (e)
- EOD`
-@@ -214,8 +232,8 @@
- 		# Now, for the library:
- 		ac_python_library=`cat<<EOD | $PYTHON -
- 
--import distutils.sysconfig
--c = distutils.sysconfig.get_config_vars()
-+$IMPORT_SYSCONFIG
-+c = sysconfig.get_config_vars()
- if 'LDVERSION' in c:
- 	print ('python'+c[['LDVERSION']])
- else:
-@@ -230,44 +248,67 @@
- 		then
- 			# use the official shared library
- 			ac_python_library=`echo "$ac_python_library" | sed "s/^lib//"`
--			PYTHON_LDFLAGS="-L$ac_python_libdir -l$ac_python_library"
-+			PYTHON_LIBS="-L$ac_python_libdir -l$ac_python_library"
- 		else
- 			# old way: use libpython from python_configdir
- 			ac_python_libdir=`$PYTHON -c \
--			  "from distutils.sysconfig import get_python_lib as f; \
-+			  "from sysconfig import get_python_lib as f; \
- 			  import os; \
- 			  print (os.path.join(f(plat_specific=1, standard_lib=1), 'config'));"`
--			PYTHON_LDFLAGS="-L$ac_python_libdir -lpython$ac_python_version"
-+			PYTHON_LIBS="-L$ac_python_libdir -lpython$ac_python_version"
- 		fi
- 
--		if test -z "PYTHON_LDFLAGS"; then
-+		if test -z "PYTHON_LIBS"; then
- 			AC_MSG_ERROR([
-   Cannot determine location of your Python DSO. Please check it was installed with
--  dynamic libraries enabled, or try setting PYTHON_LDFLAGS by hand.
-+  dynamic libraries enabled, or try setting PYTHON_LIBS by hand.
- 			])
- 		fi
- 	fi
--	AC_MSG_RESULT([$PYTHON_LDFLAGS])
--	AC_SUBST([PYTHON_LDFLAGS])
-+	AC_MSG_RESULT([$PYTHON_LIBS])
-+	AC_SUBST([PYTHON_LIBS])
- 
- 	#
- 	# Check for site packages
- 	#
- 	AC_MSG_CHECKING([for Python site-packages path])
- 	if test -z "$PYTHON_SITE_PKG"; then
--		PYTHON_SITE_PKG=`$PYTHON -c "import distutils.sysconfig; \
--			print (distutils.sysconfig.get_python_lib(0,0));"`
-+		if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
-+			PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_path('purelib'));"`
-+		else
-+			# distutils.sysconfig way
-+			PYTHON_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_python_lib(0,0));"`
-+		fi
- 	fi
- 	AC_MSG_RESULT([$PYTHON_SITE_PKG])
- 	AC_SUBST([PYTHON_SITE_PKG])
- 
-+	#
-+	# Check for platform-specific site packages
-+	#
-+	AC_MSG_CHECKING([for Python platform specific site-packages path])
-+	if test -z "$PYTHON_SITE_PKG"; then
-+		if test "$IMPORT_SYSCONFIG" = "import sysconfig"; then
-+			PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_path('platlib'));"`
-+		else
-+			# distutils.sysconfig way
-+			PYTHON_PLATFORM_SITE_PKG=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+				print (sysconfig.get_python_lib(1,0));"`
-+		fi
-+	fi
-+	AC_MSG_RESULT([$PYTHON_PLATFORM_SITE_PKG])
-+	AC_SUBST([PYTHON_PLATFORM_SITE_PKG])
-+
- 	#
- 	# libraries which must be linked in when embedding
- 	#
- 	AC_MSG_CHECKING(python extra libraries)
- 	if test -z "$PYTHON_EXTRA_LIBS"; then
--	   PYTHON_EXTRA_LIBS=`$PYTHON -c "import distutils.sysconfig; \
--                conf = distutils.sysconfig.get_config_var; \
-+	   PYTHON_EXTRA_LIBS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+                conf = sysconfig.get_config_var; \
-                 print (conf('LIBS') + ' ' + conf('SYSLIBS'))"`
- 	fi
- 	AC_MSG_RESULT([$PYTHON_EXTRA_LIBS])
-@@ -278,8 +319,8 @@
- 	#
- 	AC_MSG_CHECKING(python extra linking flags)
- 	if test -z "$PYTHON_EXTRA_LDFLAGS"; then
--		PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "import distutils.sysconfig; \
--			conf = distutils.sysconfig.get_config_var; \
-+		PYTHON_EXTRA_LDFLAGS=`$PYTHON -c "$IMPORT_SYSCONFIG; \
-+			conf = sysconfig.get_config_var; \
- 			print (conf('LINKFORSHARED'))"`
- 	fi
- 	AC_MSG_RESULT([$PYTHON_EXTRA_LDFLAGS])
-@@ -291,8 +332,10 @@
- 	AC_MSG_CHECKING([consistency of all components of python development environment])
- 	# save current global flags
- 	ac_save_LIBS="$LIBS"
-+	ac_save_LDFLAGS="$LDFLAGS"
- 	ac_save_CPPFLAGS="$CPPFLAGS"
--	LIBS="$ac_save_LIBS $PYTHON_LDFLAGS $PYTHON_EXTRA_LDFLAGS $PYTHON_EXTRA_LIBS"
-+	LIBS="$ac_save_LIBS $PYTHON_LIBS $PYTHON_EXTRA_LIBS $PYTHON_EXTRA_LIBS"
-+	LDFLAGS="$ac_save_LDFLAGS $PYTHON_EXTRA_LDFLAGS"
- 	CPPFLAGS="$ac_save_CPPFLAGS $PYTHON_CPPFLAGS"
- 	AC_LANG_PUSH([C])
- 	AC_LINK_IFELSE([
-@@ -303,15 +346,17 @@
- 	# turn back to default flags
- 	CPPFLAGS="$ac_save_CPPFLAGS"
- 	LIBS="$ac_save_LIBS"
-+	LDFLAGS="$ac_save_LDFLAGS"
- 
- 	AC_MSG_RESULT([$pythonexists])
- 
-         if test ! "x$pythonexists" = "xyes"; then
-+        # gpgme: only warn here, no error, as we are looking for multiple versions
- 	   AC_MSG_WARN([
-   Could not link test program to Python. Maybe the main Python library has been
-   installed in some non-standard library path. If so, pass it to configure,
--  via the LDFLAGS environment variable.
--  Example: ./configure LDFLAGS="-L/usr/non-standard-path/python/lib"
-+  via the LIBS environment variable.
-+  Example: ./configure LIBS="-L/usr/non-standard-path/python/lib"
-   ============================================================================
-    You probably have to install the development version of the Python package
-    for your distribution.  The exact name of this package varies among them.
-@@ -323,4 +368,4 @@
- 	#
- 	# all done!
- 	#
--])
-+])
-\ No newline at end of file
-
diff --git a/nixpkgs/pkgs/development/libraries/graphene/default.nix b/nixpkgs/pkgs/development/libraries/graphene/default.nix
index 23b617d4a610..e5dfba0aa4f5 100644
--- a/nixpkgs/pkgs/development/libraries/graphene/default.nix
+++ b/nixpkgs/pkgs/development/libraries/graphene/default.nix
@@ -19,9 +19,10 @@
 , gobject-introspection
 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
 , makeWrapper
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "graphene";
   version = "1.10.8";
 
@@ -31,8 +32,8 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "ebassi";
-    repo = pname;
-    rev = version;
+    repo = finalAttrs.pname;
+    rev = finalAttrs.version;
     sha256 = "P6JQhSktzvyMHatP/iojNGXPmcsxsFxdYerXzS23ojI=";
   };
 
@@ -109,6 +110,9 @@ stdenv.mkDerivation rec {
   passthru = {
     tests = {
       installedTests = nixosTests.installed-tests.graphene;
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
     };
 
     updateScript = nix-update-script { };
@@ -120,5 +124,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = teams.gnome.members ++ (with maintainers; [ ]);
     platforms = platforms.unix;
+    pkgConfigModules = [ "graphene-1.0" "graphene-gobject-1.0" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/grpc/default.nix b/nixpkgs/pkgs/development/libraries/grpc/default.nix
index 1110764575e3..f6dec8b7b1b4 100644
--- a/nixpkgs/pkgs/development/libraries/grpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grpc/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc";
-  version = "1.61.0"; # N.B: if you change this, please update:
+  version = "1.61.1"; # N.B: if you change this, please update:
     # pythonPackages.grpcio-tools
     # pythonPackages.grpcio-status
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-NLxcGFQ1F5RLoSFC0XYMjvGXkSWc/vLzgtk5qsOndEo=";
+    hash = "sha256-vrLkiNnsW6IpZNGhs6iZgEhdlV9Qpg8PLMDG2BKY2wo=";
     fetchSubmodules = true;
   };
 
@@ -40,12 +40,6 @@ stdenv.mkDerivation rec {
       url = "https://github.com/lopsided98/grpc/commit/a9b917666234f5665c347123d699055d8c2537b2.patch";
       hash = "sha256-Lm0GQsz/UjBbXXEE14lT0dcRzVmCKycrlrdBJj+KLu8=";
     })
-    (fetchpatch {
-      # Fix compatibility with Abseil 202401. Remove with the next release.
-      url = "https://github.com/grpc/grpc/commit/bc044174401a0842b36b8682936fc93b5041cf88.patch";
-      hash = "sha256-VKAuPtLqsR2dmrpKuFXq2HIhuDxPJVSH2w1G00N07RI=";
-      excludes = [ "src/core/lib/transport/message.cc" ];
-    })
   ];
 
   nativeBuildInputs = [ cmake pkg-config ]
diff --git a/nixpkgs/pkgs/development/libraries/gssdp/default.nix b/nixpkgs/pkgs/development/libraries/gssdp/default.nix
index 14bac6c2fec2..939fb0e7b426 100644
--- a/nixpkgs/pkgs/development/libraries/gssdp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gssdp/default.nix
@@ -26,6 +26,12 @@ stdenv.mkDerivation rec {
     sha256 = "VySWVDV9PVGxQDFRaaJMBnHeeqUsb3XIxcmr1Ao1JSk=";
   };
 
+  strictDeps = true;
+
+  depsBuildBuild = [
+    pkg-config
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
index 7706975ca056..bee80e03289c 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -109,13 +109,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
-  version = "1.22.8";
+  version = "1.22.9";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-RYeD+CNgaJkePilu3Wccjt24vm+skzwcLhUDRihk6g8=";
+    hash = "sha256-G8ZdD9X1OjY2Vk79P88xjD7c3sOcQQmlA8H8ggOECh0=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
index c68693681ee1..066ffbc1308e 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/base/default.nix
@@ -45,7 +45,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gst-plugins-base";
-  version = "1.22.8";
+  version = "1.22.9";
 
   outputs = [ "out" "dev" ];
 
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-62eS5cc8be+5FZw26m5LeKL4r2USZ4tL07AsjS1JKs8=";
+    hash = "sha256-+sPg3S2Ok3A4izS/jCG4nV9jvDz8Es1/3I/GwcugMzQ=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
index 9979184b089a..68a6acdc83b1 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gstreamer";
-  version = "1.22.8";
+  version = "1.22.9";
 
   outputs = [
     "bin"
@@ -36,7 +36,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-rU49sXcRObHbF7Gvp8BdsIOuAQC9TaJEtx8WLczkG/w=";
+    hash = "sha256-HnEk00fozcgPCOwdNwwgG+UTACrxECuyDoPFJ5y0jr0=";
   };
 
   depsBuildBuild = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
index 6ce4723b5a32..343f161cc3d4 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-devtools";
-  version = "1.22.8";
+  version = "1.22.9";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-zWNAVvyxbQNbPfWVPsha6L1Wxo8pkgtyDvkgynHqdqc=";
+    hash = "sha256-AuKUALROnMYDqmRE3uVya1ftq+9kVebQkh/+1vE4QO4=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
index 317fc4e53728..bf5dddf5a732 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-editing-services";
-  version = "1.22.8";
+  version = "1.22.9";
 
   outputs = [
     "out"
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-0dXnXhkOsL4/1JQJ5Bo6qOaM+03qpzU0iFVGdJVs0d8=";
+    hash = "sha256-NVOtOALczeDA7xRhiBrNm1W934rfdR3ky1G3+MtQRA0=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
index 6bea24314695..1935061e3c4b 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/good/default.nix
@@ -54,13 +54,13 @@ assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch32);
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.22.8";
+  version = "1.22.9";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-4wW58H9SdDykgdoKTgx2w179YK2vGwaU6zuwIeITfjk=";
+    hash = "sha256-JpWfz+v/9jfU6gjvQDFrrzG2G7dymCCwaE6ADDoUeLY=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
index f3dfac82c799..ae54995a1c3e 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.22.8";
+  version = "1.22.9";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-vjk0m8B6tM29ml/W6phIxgHHVguloFd61SALg71CSYE=";
+    hash = "sha256-GS99J9IcHnxywzmiZHqbDCR/7cYupQKRFfjD4i67h9g=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index 6b0dfcc8598f..b49da94955e3 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.22.8";
+  version = "1.22.9";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-cFF3BRwimXbxca3Nerl2Kua8xLt33DCKC9gKY9psM38=";
+    hash = "sha256-gIrxSPiUBP90hQ+MpScr7Uv+Z/liAjHcRRT9B+sm0KQ=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
index cc78a6ec0f80..d64fcae68965 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.22.8";
+  version = "1.22.9";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-B2HZa6UI4BwCcYgbJoKMK//X2K/VCHIhnwiPdVslLKc=";
+    hash = "sha256-C/aF1mAVoB3T/BZxtkocissyHdnUq54Fopqxl4KqYjY=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
index b3a7142edae9..1a6358839707 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.22.8";
+  version = "1.22.9";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-Epi6NHpwxCuIzev5G2Wf6gKxu3Jp6r+OKePAvVgniSg=";
+    hash = "sha256-i6INqMTL9bKVPbqQRnLEJ10AU+FSj5f9+OWZQseIPKg=";
   };
 
   outputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gtest/default.nix b/nixpkgs/pkgs/development/libraries/gtest/default.nix
index 80013e3613d0..51e0c685a43d 100644
--- a/nixpkgs/pkgs/development/libraries/gtest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtest/default.nix
@@ -8,15 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "gtest";
-  version = "1.12.1";
+  version = "1.14.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "googletest";
-    rev = "release-${version}";
-    hash = "sha256-W+OxRTVtemt2esw4P7IyGWXOonUN5ZuscjvzqkYvZbM=";
+    rev = "v${version}";
+    hash = "sha256-t0RchAHTJbuI5YW4uyBPykTvcjy90JW9AOPNjIhwh6U=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch b/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch
index 573884fdcbcd..6d29e04b2568 100644
--- a/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch
+++ b/nixpkgs/pkgs/development/libraries/gtest/fix-cmake-config-includedir.patch
@@ -1,34 +1,34 @@
 diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
-index 5c1f0daf..ed8aae58 100644
+index 428bd9f8..04b84539 100644
 --- a/googlemock/CMakeLists.txt
 +++ b/googlemock/CMakeLists.txt
-@@ -108,10 +108,10 @@ if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11")
-   string(REPLACE ";" "$<SEMICOLON>" dirs "${gmock_build_include_dirs}")
-   target_include_directories(gmock SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
-   target_include_directories(gmock_main SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
- endif()
+@@ -104,10 +104,10 @@ endif()
+ string(REPLACE ";" "$<SEMICOLON>" dirs "${gmock_build_include_dirs}")
+ target_include_directories(gmock SYSTEM INTERFACE
+   "$<BUILD_INTERFACE:${dirs}>"
+-  "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
++  "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
+ target_include_directories(gmock_main SYSTEM INTERFACE
+   "$<BUILD_INTERFACE:${dirs}>"
+-  "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
++  "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
  
  ########################################################################
+ #
 diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt
-index aa00a5f3..50434fed 100644
+index 51a67c91..fb09e978 100644
 --- a/googletest/CMakeLists.txt
 +++ b/googletest/CMakeLists.txt
-@@ -134,10 +134,10 @@ if (DEFINED CMAKE_VERSION AND NOT "${CMAKE_VERSION}" VERSION_LESS "2.8.11")
-   string(REPLACE ";" "$<SEMICOLON>" dirs "${gtest_build_include_dirs}")
-   target_include_directories(gtest SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
-   target_include_directories(gtest_main SYSTEM INTERFACE
-     "$<BUILD_INTERFACE:${dirs}>"
--    "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
-+    "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
- endif()
+@@ -143,10 +143,10 @@ set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
+ string(REPLACE ";" "$<SEMICOLON>" dirs "${gtest_build_include_dirs}")
+ target_include_directories(gtest SYSTEM INTERFACE
+   "$<BUILD_INTERFACE:${dirs}>"
+-  "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
++  "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
+ target_include_directories(gtest_main SYSTEM INTERFACE
+   "$<BUILD_INTERFACE:${dirs}>"
+-  "$<INSTALL_INTERFACE:$<INSTALL_PREFIX>/${CMAKE_INSTALL_INCLUDEDIR}>")
++  "$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>")
  if(CMAKE_SYSTEM_NAME MATCHES "QNX")
    target_link_libraries(gtest PUBLIC regex)
+ endif()
diff --git a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
index c244414c5508..4692bbc97126 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
@@ -64,7 +64,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk+3";
-  version = "3.24.39";
+  version = "3.24.41";
 
   outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
   outputBin = "dev";
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) version;
   in fetchurl {
     url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "sha256-HKw+VmubLzZTpFjAjC3N/cqfkIA3rAPJ2FZLQpV3jXk=";
+    sha256 = "sha256-R9phSHrzCHqUvEkpb9AlygvAL5bvBsVW58iYi9ZRtvo=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gtk/4.x.nix b/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
index 2d14823accf4..036d1ab0d49d 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/4.x.nix
@@ -54,6 +54,7 @@
 , Cocoa
 , libexecinfo
 , broadwaySupport ? true
+, testers
 }:
 
 let
@@ -66,9 +67,9 @@ let
 
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gtk4";
-  version = "4.12.4";
+  version = "4.12.5";
 
   outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
   outputBin = "dev";
@@ -79,15 +80,10 @@ stdenv.mkDerivation rec {
   ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    sha256 = "umfGSY5Vmfko7a+54IoyCt+qUKsvDab8arIlL8LVdSA=";
+    url = with finalAttrs; "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
+    sha256 = "KLNW1ZDuaO9ibi75ggst0hRBSEqaBCpaPwxA6d/E9Pg=";
   };
 
-  patches = [
-    # https://github.com/NixOS/nixpkgs/pull/218143#issuecomment-1501059486
-    ./patches/4.0-fix-darwin-build.patch
-  ];
-
   depsBuildBuild = [
     pkg-config
   ];
@@ -109,7 +105,7 @@ stdenv.mkDerivation rec {
     wayland-scanner
   ] ++ lib.optionals vulkanSupport [
     shaderc # for glslc
-  ] ++ setupHooks;
+  ] ++ finalAttrs.setupHooks;
 
   buildInputs = [
     libxkbcommon
@@ -245,7 +241,7 @@ stdenv.mkDerivation rec {
 
     for program in ''${demos[@]}; do
       wrapProgram $dev/bin/$program \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${pname}-${version}"
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${finalAttrs.pname}-${finalAttrs.version}"
     done
   '' + lib.optionalString x11Support ''
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
@@ -258,6 +254,11 @@ stdenv.mkDerivation rec {
       versionPolicy = "odd-unstable";
       attrPath = "gtk4";
     };
+    tests = {
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
+    };
   };
 
   meta = with lib; {
@@ -276,6 +277,13 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ raskin ]);
     platforms = platforms.all;
-    changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${version}/NEWS";
+    changelog = "https://gitlab.gnome.org/GNOME/gtk/-/raw/${finalAttrs.version}/NEWS";
+    pkgConfigModules = [
+      "gtk4"
+      "gtk4-broadway"
+      "gtk4-unix-print"
+      "gtk4-wayland"
+      "gtk4-x11"
+    ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/gtk/patches/4.0-fix-darwin-build.patch b/nixpkgs/pkgs/development/libraries/gtk/patches/4.0-fix-darwin-build.patch
deleted file mode 100644
index 01f4377aa0a7..000000000000
--- a/nixpkgs/pkgs/development/libraries/gtk/patches/4.0-fix-darwin-build.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/gdk/macos/gdkmacospasteboard-private.h b/gdk/macos/gdkmacospasteboard-private.h
-index fdeb936..c4b8666 100644
---- a/gdk/macos/gdkmacospasteboard-private.h
-+++ b/gdk/macos/gdkmacospasteboard-private.h
-@@ -27,6 +27,10 @@
- 
- G_BEGIN_DECLS
- 
-+#ifndef AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
-+typedef NSString *NSPasteboardType;
-+#endif
-+
- @interface GdkMacosPasteboardItemDataProvider : NSObject <NSPasteboardItemDataProvider>
- {
-   GdkContentProvider *_contentProvider;
-diff --git a/gdk/macos/gdkmacospasteboard.c b/gdk/macos/gdkmacospasteboard.c
-index 66b3c9f..b9e0d8a 100644
---- a/gdk/macos/gdkmacospasteboard.c
-+++ b/gdk/macos/gdkmacospasteboard.c
-@@ -400,7 +400,11 @@ _gdk_macos_pasteboard_register_drag_types (NSWindow *window)
-       gdk_content_formats_get_gtypes (formats, &n_gtypes);
- 
-       if (n_gtypes)
-+#ifdef AVAILABLE_MAC_OS_X_VERSION_10_13_AND_LATER
-         [ret addObject:NSPasteboardTypeURL];
-+#else
-+        [ret addObject:[[NSString alloc] initWithUTF8String:"public.url"]];
-+#endif
- 
-       gdk_content_formats_unref (formats);
-     }
diff --git a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
index 993fca591e84..814b6042544c 100644
--- a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
+++ b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,11 +1,9 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , glib
 , freetype
-, fontconfig
 , libintl
 , meson
 , ninja
@@ -35,11 +33,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "harfbuzz${lib.optionalString withIcu "-icu"}";
-  version = "7.3.0";
+  version = "8.3.0";
 
   src = fetchurl {
     url = "https://github.com/harfbuzz/harfbuzz/releases/download/${finalAttrs.version}/harfbuzz-${finalAttrs.version}.tar.xz";
-    hash = "sha256-IHcHiXSaybqEbfM5g9vaItuDbHDZ9dBQy5qlNHCUqPs=";
+    hash = "sha256-EJUB6uuL3j6tsl+rQWTpk/us4pw9d1vKocHlji8V+Ec=";
   };
 
   postPatch = ''
@@ -65,6 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
     (lib.mesonEnable "graphite" withGraphite2)
     (lib.mesonEnable "icu" withIcu)
     (lib.mesonEnable "introspection" withIntrospection)
+    (lib.mesonOption "cmakepackagedir" "${placeholder "dev"}/lib/cmake")
   ];
 
   depsBuildBuild = [
diff --git a/nixpkgs/pkgs/development/libraries/hspell/default.nix b/nixpkgs/pkgs/development/libraries/hspell/default.nix
index 2a65afad809a..4d35bb34b91d 100644
--- a/nixpkgs/pkgs/development/libraries/hspell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hspell/default.nix
@@ -5,17 +5,18 @@ stdenv.mkDerivation rec {
 
   passthru = {
     pname = "hspell";
-    version = "1.1";
+    version = "1.4";
   };
 
   PERL_USE_UNSAFE_INC = "1";
 
   src = fetchurl {
     url = "${meta.homepage}${name}.tar.gz";
-    sha256 = "08x7rigq5pa1pfpl30qp353hbdkpadr1zc49slpczhsn0sg36pd6";
+    hash = "sha256-cxD11YdA0h1tIVwReWWGAu99qXqBa8FJfIdkvpeqvqM=";
   };
 
-  patchPhase = "patchShebangs .";
+  patches = [./remove-shared-library-checks.patch];
+  postPatch = "patchShebangs .";
   preBuild = lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
     make CC=${buildPackages.stdenv.cc}/bin/cc find_sizes
     mv find_sizes find_sizes_build
diff --git a/nixpkgs/pkgs/development/libraries/hspell/dicts.nix b/nixpkgs/pkgs/development/libraries/hspell/dicts.nix
index e11cbbce3336..8b629d9b6194 100644
--- a/nixpkgs/pkgs/development/libraries/hspell/dicts.nix
+++ b/nixpkgs/pkgs/development/libraries/hspell/dicts.nix
@@ -2,7 +2,7 @@
 
 let
   dict = variant: a: stdenv.mkDerivation ({
-    inherit (hspell) version src patchPhase nativeBuildInputs;
+    inherit (hspell) version src patches postPatch nativeBuildInputs;
     buildFlags = [ variant ];
 
     meta = hspell.meta // {
diff --git a/nixpkgs/pkgs/development/libraries/hspell/remove-shared-library-checks.patch b/nixpkgs/pkgs/development/libraries/hspell/remove-shared-library-checks.patch
new file mode 100644
index 000000000000..b1f2fbe37147
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/hspell/remove-shared-library-checks.patch
@@ -0,0 +1,12 @@
+--- a/Makefile.in	2017-06-22 22:32:50.000000000 +0100
++++ a/Makefile.in.patched	2024-01-20 21:41:59.135013186 +0000
+@@ -142,9 +142,6 @@
+ 	test -d $(DESTDIR)$(INCLUDEDIR) || mkdir -m 755 -p $(DESTDIR)$(INCLUDEDIR)
+ 	cp hspell.h linginfo.h $(DESTDIR)$(INCLUDEDIR)/
+ 	chmod 644 $(DESTDIR)$(INCLUDEDIR)/hspell.h $(DESTDIR)$(INCLUDEDIR)/linginfo.h
+-	test -f libhspell.so.0 && cp libhspell.so.0 $(DESTDIR)$(LIBDIR)/
+-	test -f libhspell.so.0 && chmod 755 $(DESTDIR)$(LIBDIR)/libhspell.so.0
+-	test -f libhspell.so.0 && ln -sf libhspell.so.0 $(DESTDIR)$(LIBDIR)/libhspell.so
+ 
+ 
+ ################################################
diff --git a/nixpkgs/pkgs/development/libraries/icu/58.nix b/nixpkgs/pkgs/development/libraries/icu/58.nix
deleted file mode 100644
index e53e4e3737ed..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/58.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-fetchurl:
-let
-  keywordFix = fetchurl {
-    url = "http://bugs.icu-project.org/trac/changeset/39484?format=diff";
-    name = "icu-changeset-39484.diff";
-    sha256 = "0hxhpgydalyxacaaxlmaddc1sjwh65rsnpmg0j414mnblq74vmm8";
-  };
-in
-import ./base.nix {
-  version = "58.2";
-  sha256 = "036shcb3f8bm1lynhlsb4kpjm9s9c2vdiir01vg216rs2l8482ib";
-  patches = [ keywordFix ];
-  patchFlags = [ "-p4" ];
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/60.nix b/nixpkgs/pkgs/development/libraries/icu/60.nix
deleted file mode 100644
index e56135b15c62..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/60.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "60.2";
-  sha256 = "065l3n0q9wqaw8dz20x82srshhm6i987fr9ync5xf9mr6n7ylwzh";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/63.nix b/nixpkgs/pkgs/development/libraries/icu/63.nix
deleted file mode 100644
index a83e2cd5f5eb..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/63.nix
+++ /dev/null
@@ -1,16 +0,0 @@
-{ stdenv, lib, fetchurl, fetchpatch, fixDarwinDylibNames, nativeBuildRoot, testers
-, buildRootOnly ? false
-}:
-
-import ./base.nix {
-  version = "63.1";
-  sha256 = "17fbk0lm2clsxbmjzvyp245ayx0n4chji3ky1f3fbz2ljjv91i05";
-  patches = [
-    # https://bugzilla.mozilla.org/show_bug.cgi?id=1499398
-    (fetchpatch {
-      url = "https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01.patch";
-      sha256 = "1awfa98ljcf95a85cssahw6bvdnpbq5brf1kgspy14w4mlmhd0jb";
-    })
-  ];
-  patchFlags = [ "-p3" ];
-} { inherit stdenv lib fetchurl fixDarwinDylibNames nativeBuildRoot testers buildRootOnly; }
diff --git a/nixpkgs/pkgs/development/libraries/icu/64.nix b/nixpkgs/pkgs/development/libraries/icu/64.nix
deleted file mode 100644
index c7bdd22c1793..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/64.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "64.2";
-  sha256 = "0v0xsf14xwlj125y9fd8lrhsaych4d8liv8gr746zng6g225szb2";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/66.nix b/nixpkgs/pkgs/development/libraries/icu/66.nix
deleted file mode 100644
index 5dfad945d291..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/66.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "66.1";
-  sha256 = "0bharwzc9nzkbrcf405z2nb3h7q0711z450arz0mjmdrk8hg58sj";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/67.nix b/nixpkgs/pkgs/development/libraries/icu/67.nix
deleted file mode 100644
index 23a1069ea14f..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/67.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "67.1";
-  sha256 = "1p6mhvxl0xr2n0g6xdps3mwzwlv6mjsz3xlpm793p9aiybb0ra4l";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/68.nix b/nixpkgs/pkgs/development/libraries/icu/68.nix
deleted file mode 100644
index 5aeba0f2628c..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/68.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "68.2";
-  sha256 = "09fng7a80xj8d5r1cgbgq8r47dsw5jsr6si9p2cj2ylhwgg974f7";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/69.nix b/nixpkgs/pkgs/development/libraries/icu/69.nix
deleted file mode 100644
index 8cea41daadb9..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/69.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "69.1";
-  sha256 = "0icps0avkwy5df3wwc5kybxcg63hcgk4phdh9g244g0xrmx7pfjc";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/70.nix b/nixpkgs/pkgs/development/libraries/icu/70.nix
deleted file mode 100644
index 955bbcac02f8..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/70.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "70.1";
-  sha256 = "1m9zgkaf5lyh65nyc6n0n5bs2f5k53nnj1ih6nskpwbvq4l5884d";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/71.nix b/nixpkgs/pkgs/development/libraries/icu/71.nix
deleted file mode 100644
index 456dffc322a4..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/71.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "71.1";
-  sha256 = "sha256-Z6fm5R9h+vEwa2k1Mz4TssSKvY2m0vRs5q3KJLHiHr8=";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/72.nix b/nixpkgs/pkgs/development/libraries/icu/72.nix
deleted file mode 100644
index 8eeb10138d12..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/72.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "72.1";
-  sha256 = "sha256-otLTghcJKn7VZjXjRGf5L5drNw4gGCrTJe3qZoGnHWg=";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/73.nix b/nixpkgs/pkgs/development/libraries/icu/73.nix
deleted file mode 100644
index dfbdf1403adc..000000000000
--- a/nixpkgs/pkgs/development/libraries/icu/73.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-import ./base.nix {
-  version = "73.2";
-  sha256 = "sha256-gYqAcS7TyqzZtlIwXgGvx/oWfm8ulJltpEuQwqtgTOE=";
-}
diff --git a/nixpkgs/pkgs/development/libraries/icu/default.nix b/nixpkgs/pkgs/development/libraries/icu/default.nix
new file mode 100644
index 000000000000..bf595108baaf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/icu/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, lib, fetchurl, fetchpatch, fixDarwinDylibNames, testers, buildPackages }:
+
+let
+  make-icu = (import ./make-icu.nix) {
+    inherit stdenv lib buildPackages fetchurl fixDarwinDylibNames testers;
+  };
+in
+{
+  icu74 = make-icu {
+    version = "74.2";
+    hash = "sha256-aNsIIhKpbW9T411g9H04uWLp+dIHp0z6x4Apro/14Iw=";
+  };
+  icu73 = make-icu {
+    version = "73.2";
+    hash = "sha256-gYqAcS7TyqzZtlIwXgGvx/oWfm8ulJltpEuQwqtgTOE=";
+  };
+  icu72 = make-icu {
+    version = "72.1";
+    hash = "sha256-otLTghcJKn7VZjXjRGf5L5drNw4gGCrTJe3qZoGnHWg=";
+  };
+  icu71 = make-icu {
+    version = "71.1";
+    hash = "sha256-Z6fm5R9h+vEwa2k1Mz4TssSKvY2m0vRs5q3KJLHiHr8=";
+  };
+  icu70 = make-icu {
+    version = "70.1";
+    hash = "sha256-jSBUKMF78Tu1NTAGae0oszihV7HAGuZtMdDT4tR8P9U=";
+  };
+  icu69 = make-icu {
+    version = "69.1";
+    hash = "sha256-TLp7es0dPELES7DBS+ZjcJjH+vKzMM6Ha8XzuRXQl0U=";
+  };
+  icu68 = make-icu {
+    version = "68.2";
+    hash = "sha256-x5GT3uOQeiGZuClqk7UsXLdDMsJvPRZyaUh2gNR51iU=";
+  };
+  icu67 = make-icu {
+    version = "67.1";
+    hash = "sha256-lKgM1vJRpTvSqZf28bWsZlP+eR36tm4esCJ3QPuG1dw=";
+  };
+  icu66 = make-icu {
+    version = "66.1";
+    hash = "sha256-UqPyIJq5VVnBzwoU8kM4AB84lhW/AOJYXvPbxD7PCi4=";
+  };
+  icu64 = make-icu {
+    version = "64.2";
+    hash = "sha256-Yn1dhHjm2W/IyQ/tSFEjkHmlYaaoueSLCJLyToLTHWw=";
+  };
+  icu63 = make-icu {
+    version = "63.1";
+    hash = "sha256-BcSQtpRU/OWGC36OKCEjFnSvChHX7y/r6poyUSmYy50=";
+    patches = [
+      # https://bugzilla.mozilla.org/show_bug.cgi?id=1499398
+      (fetchpatch {
+        url = "https://github.com/unicode-org/icu/commit/8baff8f03e07d8e02304d0c888d0bb21ad2eeb01.patch";
+        sha256 = "1awfa98ljcf95a85cssahw6bvdnpbq5brf1kgspy14w4mlmhd0jb";
+      })
+    ];
+    patchFlags = [ "-p3" ];
+  };
+  icu60 = make-icu {
+    version = "60.2";
+    hash = "sha256-8HPqjzW5JtcLsz5ld1CKpkKosxaoA/Eb4grzhIEdtBg=";
+  };
+  icu58 = make-icu {
+    version = "58.2";
+    hash = "sha256-KwpEEBU6myDeDiDH2LZgSacq7yRLU2g9DXUhNxaD2gw=";
+    patches = [
+      (fetchurl {
+        url = "http://bugs.icu-project.org/trac/changeset/39484?format=diff";
+        name = "icu-changeset-39484.diff";
+        sha256 = "0hxhpgydalyxacaaxlmaddc1sjwh65rsnpmg0j414mnblq74vmm8";
+      })
+    ];
+    patchFlags = [ "-p4" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/icu/base.nix b/nixpkgs/pkgs/development/libraries/icu/make-icu.nix
index c5e46fa4530d..836a7e3c73a6 100644
--- a/nixpkgs/pkgs/development/libraries/icu/base.nix
+++ b/nixpkgs/pkgs/development/libraries/icu/make-icu.nix
@@ -1,17 +1,17 @@
-{ version, sha256, patches ? [], patchFlags ? [] }:
-{ stdenv, lib, fetchurl, fixDarwinDylibNames
-  # Cross-compiled icu4c requires a build-root of a native compile
-, buildRootOnly ? false, nativeBuildRoot
-, testers
-}:
+{ stdenv, lib, buildPackages, fetchurl, fixDarwinDylibNames, testers }:
+
+{ version, hash, patches ? [], patchFlags ? [] }:
 
 let
+  # Cross-compiled icu4c requires a build-root of a native compile
+  nativeBuildRoot = buildPackages."icu${lib.versions.major version}".buildRootOnly;
+
   pname = "icu4c";
 
   baseAttrs = {
     src = fetchurl {
       url = "https://github.com/unicode-org/icu/releases/download/release-${lib.replaceStrings [ "." ] [ "-" ] version}/icu4c-${lib.replaceStrings [ "." ] [ "_" ] version}-src.tgz";
-      inherit sha256;
+      inherit hash;
     };
 
     postUnpack = ''
@@ -99,10 +99,9 @@ let
     '';
   };
 
-  attrs = if buildRootOnly
-            then buildRootOnlyAttrs
-          else realAttrs;
+  mkWithAttrs = attrs: stdenv.mkDerivation (finalAttrs: attrs // {
+    passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    passthru.buildRootOnly = mkWithAttrs buildRootOnlyAttrs;
+  });
 in
-stdenv.mkDerivation (finalAttrs: attrs // {
-  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
-})
+  mkWithAttrs realAttrs
diff --git a/nixpkgs/pkgs/development/libraries/imath/default.nix b/nixpkgs/pkgs/development/libraries/imath/default.nix
index 17d5f57c76c1..79b91afcd529 100644
--- a/nixpkgs/pkgs/development/libraries/imath/default.nix
+++ b/nixpkgs/pkgs/development/libraries/imath/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "imath";
-  version = "3.1.9";
+  version = "3.1.10";
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "imath";
     rev = "v${version}";
-    sha256 = "sha256-NcGiYz7jbxLyVd80lOIyN3zXcC4mHh+dcFEY4Kqw9BY=";
+    sha256 = "sha256-Of/F2FfSvVnhrafRqAyV/2VZpRtDN5Pg5AnUAgL3wiM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/imgui/default.nix b/nixpkgs/pkgs/development/libraries/imgui/default.nix
index 244a3570c031..a9ce7358447d 100644
--- a/nixpkgs/pkgs/development/libraries/imgui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/imgui/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "imgui";
-  version = "1.90.2";
+  version = "1.90.3";
 
   src = fetchFromGitHub {
     owner = "ocornut";
     repo = "imgui";
     rev = "v${version}";
-    sha256 = "sha256-0sqV1TgidSuZQLihRTUCd46jKIgwcOJlKjRyOvopqlo=";
+    sha256 = "sha256-dmCQ7p9gpQiBb2hPhzX+/Y0ZiYX01cRNQYXC1KTRYck=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/development/libraries/imlib2/default.nix b/nixpkgs/pkgs/development/libraries/imlib2/default.nix
index ab237d9dca00..cc1f6b544048 100644
--- a/nixpkgs/pkgs/development/libraries/imlib2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/imlib2/default.nix
@@ -31,11 +31,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "imlib2";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
-    hash = "sha256-jCTS0YnE1a5gLb8vwPuxF6qSPqtsiDBB8P7spOjGd04=";
+    hash = "sha256-zEmTGiBWCWioZIycoHkIWXYIXqltWaAbHhfLVa8P/kI=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/inih/default.nix b/nixpkgs/pkgs/development/libraries/inih/default.nix
index 61bca95d9b2e..91d27fbc675c 100644
--- a/nixpkgs/pkgs/development/libraries/inih/default.nix
+++ b/nixpkgs/pkgs/development/libraries/inih/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "inih";
-  version = "57";
+  version = "58";
 
   src = fetchFromGitHub {
     owner = "benhoyt";
     repo = pname;
     rev = "r${version}";
-    hash = "sha256-a4nvhJSmZGqu2sdZSPNPjdnkzZ9dSKocL/XG2aDyFw4=";
+    hash = "sha256-b2f6hQvkmWgni/zdfv3I1b9ypd7zSyEBv/JVBA6K7/w=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/development/libraries/iso-codes/default.nix b/nixpkgs/pkgs/development/libraries/iso-codes/default.nix
index 5539a97f0ce6..0b9b316f4433 100644
--- a/nixpkgs/pkgs/development/libraries/iso-codes/default.nix
+++ b/nixpkgs/pkgs/development/libraries/iso-codes/default.nix
@@ -1,11 +1,11 @@
-{ lib, stdenv, fetchurl, gettext, python3 }:
+{ lib, stdenv, fetchurl, gettext, python3, testers }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "iso-codes";
   version = "4.16.0";
 
   src = fetchurl {
-    url = "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v${version}/${pname}-v${version}.tar.gz";
+    url = with finalAttrs; "https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v${version}/${pname}-v${version}.tar.gz";
     sha256 = "sha256-fJkPw5oFl1vtsBdeP/Cfw4MEiBX2i0Yqu/BVqAMuZsw=";
   };
 
@@ -13,10 +13,17 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     homepage = "https://salsa.debian.org/iso-codes-team/iso-codes";
     description = "Various ISO codes packaged as XML files";
     license = licenses.lgpl21;
     platforms = platforms.all;
+    pkgConfigModules = [ "iso-codes" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
index 53265baaf8fe..7827c1788dca 100644
--- a/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "1.25.0";
+  version = "1.26.0";
   pname = "commons-compress";
 
   src = fetchurl {
     url    = "mirror://apache/commons/compress/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-isxV/gTOjVQW3716cr8ZrlLnOn8YWWr6p1SHYlwhdvA=";
+    sha256 = "sha256-AXdkqMrzTtURpPXKOmXxo0RnfFtflcDf6mmVmqVFz5k=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/jffi/default.nix b/nixpkgs/pkgs/development/libraries/java/jffi/default.nix
index b4351f4e9df9..3ba336aa18e9 100644
--- a/nixpkgs/pkgs/development/libraries/java/jffi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/jffi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jffi";
-  version = "1.3.12";
+  version = "1.3.13";
 
   src = fetchFromGitHub {
     owner = "jnr";
     repo = "jffi";
     rev = "jffi-${version}";
-    sha256 = "sha256-U0pBoKewZEen7aH3rIvZ8dKKeXKE1+Z5WtfM0HK6/LQ=";
+    sha256 = "sha256-aBQkkZyXZkaJc4sr/jHnIRaJYP116u4Jqsr9XXzfOBA=";
   };
 
   nativeBuildInputs = [ jdk ant texinfo pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
index a6797786ee53..358803e37355 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.114/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.115/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
index d51c74cc4e64..713e43920e7c 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/attica-5.114.0.tar.xz";
-      sha256 = "0gkdsm1vyyyxxyl4rni9s2bdz5w6zphzjl58fddjl899da06hqfq";
-      name = "attica-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/attica-5.115.0.tar.xz";
+      sha256 = "0n54m7sx2nagplr6ps9b3cvwy6cg0yqrba5xl90j1gg4ya14j1db";
+      name = "attica-5.115.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/baloo-5.114.0.tar.xz";
-      sha256 = "19sib1y0m5h2gnnpr9rfk810p6pdfm4zzxlm0a44r7910llp8i50";
-      name = "baloo-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/baloo-5.115.0.tar.xz";
+      sha256 = "0261a7c81pavnq27ww5q5z8acpl18zr2nnfm2wx2zcy4xww21jwm";
+      name = "baloo-5.115.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/bluez-qt-5.114.0.tar.xz";
-      sha256 = "1ni50jwnb5ww8mkql0p3q8660c0srj8p0ik27lvxakwdq4wf6l9s";
-      name = "bluez-qt-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/bluez-qt-5.115.0.tar.xz";
+      sha256 = "18b4pjjgr9fbmdyacz8p078j6wm5vk5lkx18jikhrgkm84ad6zxx";
+      name = "bluez-qt-5.115.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/breeze-icons-5.114.0.tar.xz";
-      sha256 = "0z5cpv10jyjdwjfkm7nj6hyp4vj29apm476hvbpb4gan27jyb91y";
-      name = "breeze-icons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/breeze-icons-5.115.0.tar.xz";
+      sha256 = "1f89dw05mfmlir8dvabnvxwszq1wqnrrgb7yw54wh7cnxah8gz64";
+      name = "breeze-icons-5.115.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/extra-cmake-modules-5.114.0.tar.xz";
-      sha256 = "0z4nqravsfzlsgvkg5rha2d0qxfr3pfncw7z2fxzzqvzj7mfk6im";
-      name = "extra-cmake-modules-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/extra-cmake-modules-5.115.0.tar.xz";
+      sha256 = "1vj5rsq029qjp1by9cal715yza180lcxv1m0jn4nnljplbv3agpf";
+      name = "extra-cmake-modules-5.115.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/frameworkintegration-5.114.0.tar.xz";
-      sha256 = "1dqgzhhh8gnvl8jsvh2i6pjn935d61avh63b4z9kpllhvp9a2lnd";
-      name = "frameworkintegration-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/frameworkintegration-5.115.0.tar.xz";
+      sha256 = "0vk3j6ivwk2y9jik54jxa4wm1c9179yrapia979a48zi5ibrlabf";
+      name = "frameworkintegration-5.115.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kactivities-5.114.0.tar.xz";
-      sha256 = "10pyynqz8c22la9aqms080iqlisj3irbi1kwnn3s0vg5dsjxr1p3";
-      name = "kactivities-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kactivities-5.115.0.tar.xz";
+      sha256 = "06wxmg085czrx2cyds7gwgdksvy5nchyshkgr2lxck20asjgn5p0";
+      name = "kactivities-5.115.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kactivities-stats-5.114.0.tar.xz";
-      sha256 = "1zhrs2p3c831rwx7ww87i82k5i236vfywdxv7zhz93k3vffyqby7";
-      name = "kactivities-stats-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kactivities-stats-5.115.0.tar.xz";
+      sha256 = "0rp6j4nr4y5ijf4khsha98pvp8zy6fzjzhdjyj9z67jjpb045sd4";
+      name = "kactivities-stats-5.115.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kapidox-5.114.0.tar.xz";
-      sha256 = "0xxw3lvipyax8r1af3ypwjj6waarbp2z9n11fjb4kvyigsypglmb";
-      name = "kapidox-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kapidox-5.115.0.tar.xz";
+      sha256 = "0kp1z0cz60d6sb2wcqa3wawvqqijjyndyn21l2lrrdfz256m5fil";
+      name = "kapidox-5.115.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/karchive-5.114.0.tar.xz";
-      sha256 = "015gc1zarny8r478p7g9m6r67l5dk3r0vcp28ilmfmznxy0k0hda";
-      name = "karchive-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/karchive-5.115.0.tar.xz";
+      sha256 = "0xdlsqkxsn3jjkbklhyys8sbbygg5f5qnfls5f0gk8gcig2m36g8";
+      name = "karchive-5.115.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kauth-5.114.0.tar.xz";
-      sha256 = "1rkf9mc9718wn8pzd3d3wcg3lsn0vkr9a2cqnz86rbg3cf2qdbir";
-      name = "kauth-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kauth-5.115.0.tar.xz";
+      sha256 = "18jsygwkd4irdsz2lpdmsnjpj3dcz9fzajknl5z4csn6xxmzbaak";
+      name = "kauth-5.115.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kbookmarks-5.114.0.tar.xz";
-      sha256 = "06lnsyjhh80mdcqjww40glinmrjydbmkhv27a267vf34r7kam9rc";
-      name = "kbookmarks-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kbookmarks-5.115.0.tar.xz";
+      sha256 = "1h6yihcc0jczi51imw4a3zvyglvvzaksc1yjam44via84nli2kqn";
+      name = "kbookmarks-5.115.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcalendarcore-5.114.0.tar.xz";
-      sha256 = "0aimda01zqw4fz5ldvz4vh767bi10r00kvm62n89nxhsq46wlk7p";
-      name = "kcalendarcore-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcalendarcore-5.115.0.tar.xz";
+      sha256 = "18sl7yg8xsnba6aar7q1w31jsxsmhz9d4hv67m1w86qv8wn8gn2r";
+      name = "kcalendarcore-5.115.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcmutils-5.114.0.tar.xz";
-      sha256 = "1pblf3c60m0gn3vhdprw28f8y54kij02jwz91r2vnmng8d1xkrp9";
-      name = "kcmutils-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcmutils-5.115.0.tar.xz";
+      sha256 = "07jx2yc820d9xj5pcywx7nwccm5f1r7wjgqvjr6l3d9irjpm54q3";
+      name = "kcmutils-5.115.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcodecs-5.114.0.tar.xz";
-      sha256 = "080zvcqd8iq05p5x3qaf3rryx75lg2l2j1dr18sp50ir50zfwh2w";
-      name = "kcodecs-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcodecs-5.115.0.tar.xz";
+      sha256 = "1gq4335w4bxz0al7diql5mlam7vgvvwdvm0iy3hqr6czk135wf4l";
+      name = "kcodecs-5.115.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcompletion-5.114.0.tar.xz";
-      sha256 = "0qvdxqlh1dklkbmqfjg5gc3dkdicgzn6q5lgvyf8cv46dinj6mwc";
-      name = "kcompletion-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcompletion-5.115.0.tar.xz";
+      sha256 = "1iqdf67mcmf1vq0z2c13gzvrssywrp8nqa4lwshwi2amag4sad5i";
+      name = "kcompletion-5.115.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kconfig-5.114.0.tar.xz";
-      sha256 = "0hghdh4p6cq9ckp4g5jdgd8w47pdsxxvzimrdfjrs71lmy8ydiy2";
-      name = "kconfig-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kconfig-5.115.0.tar.xz";
+      sha256 = "04l6g2qy2qc3ykwvx2gbikgsh9n3rnz05m72n47lmianvwm2nsdx";
+      name = "kconfig-5.115.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kconfigwidgets-5.114.0.tar.xz";
-      sha256 = "16layydkcwfbvzxqjzprkq8bbxifn0z0wm7mc9bzwrfxy761rjnj";
-      name = "kconfigwidgets-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kconfigwidgets-5.115.0.tar.xz";
+      sha256 = "0nwmgva1zwfbr36slhziq4a84nhh4swckm6ajcg6imksv41k5nwd";
+      name = "kconfigwidgets-5.115.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcontacts-5.114.0.tar.xz";
-      sha256 = "0lyqvbs216p5zpssaf4pyccph7nbwkbvhpmhbi32y2rm23cmxlwf";
-      name = "kcontacts-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcontacts-5.115.0.tar.xz";
+      sha256 = "1xwp77nzcjxrk97mqzyfc5b1zvv9s76fvhv6fb8wnmm80l21w7r7";
+      name = "kcontacts-5.115.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcoreaddons-5.114.0.tar.xz";
-      sha256 = "1wv3s3xsiii96k17nzs2fb0ih2lyg52krf58v44nlk9wfi4wmnqx";
-      name = "kcoreaddons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcoreaddons-5.115.0.tar.xz";
+      sha256 = "1jcriqndsbi1jpvb3pn2hs9cnq66v9qgpilsa7lqvnp9wg9y3l4c";
+      name = "kcoreaddons-5.115.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kcrash-5.114.0.tar.xz";
-      sha256 = "1avi4yd3kpjqxrvci1nicxbh9mjafj1w2vgfmqanq66b76s4kxj1";
-      name = "kcrash-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kcrash-5.115.0.tar.xz";
+      sha256 = "1b83dvmflvjiqhjz6i1b007ah4sg85d57mmz3m9zdyjicfygbsmj";
+      name = "kcrash-5.115.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kdav-5.114.0.tar.xz";
-      sha256 = "11959fxz24snk2l31kw8w96wah0s2fjimimrxh6xhppiy5qp2fp2";
-      name = "kdav-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kdav-5.115.0.tar.xz";
+      sha256 = "02aqs24q4skh6ngm7bhkqqa3l1xf9bgxdr95v9mgc20hyavy22pv";
+      name = "kdav-5.115.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kdbusaddons-5.114.0.tar.xz";
-      sha256 = "0pzzznyxhi48z5hhdsdxz3vaaihrdshpx65ha2v2nn2gh3ww7ikm";
-      name = "kdbusaddons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kdbusaddons-5.115.0.tar.xz";
+      sha256 = "0x4vsw43irxy00mvda7kah0d3nrs1vgbimz6d9d2a8rzkf61vizc";
+      name = "kdbusaddons-5.115.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kdeclarative-5.114.0.tar.xz";
-      sha256 = "0w98pj8acxb4m9645963rzq5vja1fbih5czz24mf9zdqlg2dkz8g";
-      name = "kdeclarative-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kdeclarative-5.115.0.tar.xz";
+      sha256 = "0i530dij27g0w8rcqq81bml2dpacgd2czsjcx1dzf9i2x83arv36";
+      name = "kdeclarative-5.115.0.tar.xz";
     };
   };
   kded = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kded-5.114.0.tar.xz";
-      sha256 = "00n4isc4ahii0ldrg761lkmnq27kmrfqs9zkmpvmgbg57259mvc3";
-      name = "kded-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kded-5.115.0.tar.xz";
+      sha256 = "1cr3mx5lkhp4zsr85n0cl5m9p1zgmwlvapdpyb161z5k6402mhla";
+      name = "kded-5.115.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kdelibs4support-5.114.0.tar.xz";
-      sha256 = "17473him2fjfcw5f88diarqac815wsakfyb9fka82a4qqh9l41mc";
-      name = "kdelibs4support-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kdelibs4support-5.115.0.tar.xz";
+      sha256 = "051ga7jn18nwiybvvrkkfrw9csgi35g9wd4gajkzykq4r4bgm8kj";
+      name = "kdelibs4support-5.115.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kdesignerplugin-5.114.0.tar.xz";
-      sha256 = "0zlvkayv6zl5rp1076bscmdzyw93y7sxqb5848w11vs0g9amcj9n";
-      name = "kdesignerplugin-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kdesignerplugin-5.115.0.tar.xz";
+      sha256 = "1s788wz6i3ngk44a0fy9cp0vvidgp5f4yid470v85jfkpm1nxv50";
+      name = "kdesignerplugin-5.115.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kdesu-5.114.0.tar.xz";
-      sha256 = "14dcf32izn4lxr8vx372rfznflc1rcxwanx06phkd8mx9zyg4jxr";
-      name = "kdesu-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kdesu-5.115.0.tar.xz";
+      sha256 = "0qlbd7q69pdqc46ydpmn63sxac1lf9v0rllkj5ir49607fbbgqh3";
+      name = "kdesu-5.115.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kdewebkit-5.114.0.tar.xz";
-      sha256 = "04zc2qs13k04gsn124mnh6sqi3pax8c014jcb0qdh3h2r2y72bz3";
-      name = "kdewebkit-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kdewebkit-5.115.0.tar.xz";
+      sha256 = "039wcylnz1wx26r4d5bppzx51gknv3fj2xvw1mb5d29036dp9q1h";
+      name = "kdewebkit-5.115.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kdnssd-5.114.0.tar.xz";
-      sha256 = "1zw5rkprr54j05ic8zljk57zahp2v6333slr253r3n1679zqlv64";
-      name = "kdnssd-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kdnssd-5.115.0.tar.xz";
+      sha256 = "1psjrvxnaw2r9fh2kikpbw71scch0b7vjdiwv0a8mhyr6g163qxj";
+      name = "kdnssd-5.115.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kdoctools-5.114.0.tar.xz";
-      sha256 = "15s58r2zvdckw30x9q9ir8h1i8q2ncfgjn9h4jnmylwm79z3z27v";
-      name = "kdoctools-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kdoctools-5.115.0.tar.xz";
+      sha256 = "0hz25yfz64qabmd9gw8344ljzi8658483a3194rlbbswyw80ksai";
+      name = "kdoctools-5.115.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kemoticons-5.114.0.tar.xz";
-      sha256 = "0w87prkhdmba7y8ylbycdpwdzd2djmp7hvv5ljb9s4aqqhnn3vw4";
-      name = "kemoticons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kemoticons-5.115.0.tar.xz";
+      sha256 = "163p3mbmhzd0pzggh13kj0qrl7bid84pabb8p59w42f3rhzdv3fb";
+      name = "kemoticons-5.115.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kfilemetadata-5.114.0.tar.xz";
-      sha256 = "15va29chlsrxii02w1ax718hp1b14ym59lcfyzh7w30zlf681560";
-      name = "kfilemetadata-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kfilemetadata-5.115.0.tar.xz";
+      sha256 = "03694d8sn0c5629llw6ikpcs0x7gj4nd08c6jh4zca4g0v3hxzgy";
+      name = "kfilemetadata-5.115.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kglobalaccel-5.114.0.tar.xz";
-      sha256 = "19mmav055fnzyl760fyhf0pdvaidd5i1h04l2hcnpin4p1jnpfap";
-      name = "kglobalaccel-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kglobalaccel-5.115.0.tar.xz";
+      sha256 = "1hxcd6pbymmq7z8bwbhyykgd3r54gkwzlvg896ix9phdgm2dacy5";
+      name = "kglobalaccel-5.115.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kguiaddons-5.114.0.tar.xz";
-      sha256 = "0riya9plcz9c1ndhdbsradssndshbm12705swn7vf7am17n7f947";
-      name = "kguiaddons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kguiaddons-5.115.0.tar.xz";
+      sha256 = "0qpj7yvvxv8dswmg8m4jgd6hk2r5m3702cvhgagqyb0qx8vdlvag";
+      name = "kguiaddons-5.115.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kholidays-5.114.0.tar.xz";
-      sha256 = "19r8dxglz5ll6iyvigsccil3ikvcsnyy5nwcpjvjr1c0brigcjmy";
-      name = "kholidays-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kholidays-5.115.0.tar.xz";
+      sha256 = "1921nr4k758v4ci7rz1napsg6y2spv8z00qqjrqmka0grwrdgw6d";
+      name = "kholidays-5.115.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/khtml-5.114.0.tar.xz";
-      sha256 = "1mf84zs9hjvmi74f8rgqzrfkqjq597f9k64dn1bqcj13v0w10vry";
-      name = "khtml-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/khtml-5.115.0.tar.xz";
+      sha256 = "0q6gx0xwq98cdqby4k4cgfqm4m7n915mfanf5vlhalld01jrjakl";
+      name = "khtml-5.115.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.114.0";
+    version = "5.115.1";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/ki18n-5.114.0.tar.xz";
-      sha256 = "1yg03awcx5ay6lgbgwv91i0ankrm94z9m0wky4v03gnwnvw8pa0v";
-      name = "ki18n-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/ki18n-5.115.1.tar.xz";
+      sha256 = "0x40z8jkr7bvn4fjnqrdqf0914286zbxpcn7bdqg2rqr982ksdvy";
+      name = "ki18n-5.115.1.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kiconthemes-5.114.0.tar.xz";
-      sha256 = "0ndiqmcs1ybj4acc6k3p9jwq09slqc4nj12ifqvlxrfj3ak6sb28";
-      name = "kiconthemes-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kiconthemes-5.115.0.tar.xz";
+      sha256 = "0bwxf4491hi0qz000ymajshhzxnqvq4a1bdb7mmvzf3byx5i69b9";
+      name = "kiconthemes-5.115.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kidletime-5.114.0.tar.xz";
-      sha256 = "06sc9w54g4n7s5gjkqz08rgcz6v3pr0bdgx3gbjgzass6l4m8w7p";
-      name = "kidletime-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kidletime-5.115.0.tar.xz";
+      sha256 = "0mmf6ybs4ajhkphdxwxnwyf3d3skjz88g2cqwvgbq3bldam2k04x";
+      name = "kidletime-5.115.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kimageformats-5.114.0.tar.xz";
-      sha256 = "1nfzpgnrbwncx9zp9cwa169jlfv7i85p00a07d4jc5hrdyvvkn0w";
-      name = "kimageformats-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kimageformats-5.115.0.tar.xz";
+      sha256 = "10vjmbhy6p4vks5wmrn91vjdi3sykjil4kp1ph88nszqcq6h4qcz";
+      name = "kimageformats-5.115.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kinit-5.114.0.tar.xz";
-      sha256 = "0b6z9gq05vz20hm5y9ai3sbqq3gxwm3a3z88dkvi7dywk7vbqcph";
-      name = "kinit-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kinit-5.115.0.tar.xz";
+      sha256 = "1bbxcbd6g1jhh5c2i127xzn77q3a4ia2180kymc6wyiqa3z7vj3q";
+      name = "kinit-5.115.0.tar.xz";
     };
   };
   kio = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kio-5.114.0.tar.xz";
-      sha256 = "0nwmxbfhvfw69q07vxvflri7rkdczyc89xv4ll3nrzrhgf15kb2z";
-      name = "kio-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kio-5.115.0.tar.xz";
+      sha256 = "02zrixb73ranj08xk14m5pa198w54h3c3dqhvgrwwgw8b9xkhlqg";
+      name = "kio-5.115.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kirigami2-5.114.0.tar.xz";
-      sha256 = "1bd232gs4394fa3aq31mjqrn8f3vjsghx7817szi7ryvnn6fnqkw";
-      name = "kirigami2-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kirigami2-5.115.0.tar.xz";
+      sha256 = "1fd2q08a40xy5rv297q7084hbkgfkyq05k8y9gpk77460px45qhm";
+      name = "kirigami2-5.115.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kitemmodels-5.114.0.tar.xz";
-      sha256 = "1bfmcrbcbrvp2rcaf32vzvarqwp41gn6s4xpf56hnxbwf9kgk1fl";
-      name = "kitemmodels-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kitemmodels-5.115.0.tar.xz";
+      sha256 = "037gd15y93m4rcjxc6r4y5l3mgalyg6ryib837jcv0dv825x3ypz";
+      name = "kitemmodels-5.115.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kitemviews-5.114.0.tar.xz";
-      sha256 = "00vl2ck0pq0sqcxvhlr2pimgr27hd9v7y9dz6w4arb5smi5q1ixg";
-      name = "kitemviews-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kitemviews-5.115.0.tar.xz";
+      sha256 = "1nb58pz1xhg7nyxjb22w6j60cjf34qpwqbg5ycy6n4n5wp15nbkf";
+      name = "kitemviews-5.115.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kjobwidgets-5.114.0.tar.xz";
-      sha256 = "1ymlqi5cqcs79nj1vff8pqwgvy0dxj5vv7l529w3a3n315hkrny8";
-      name = "kjobwidgets-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kjobwidgets-5.115.0.tar.xz";
+      sha256 = "0q9h9sz7xwv0zdvszqmfwq3zv0w12gci88jprwp5gk09sgl7pqyf";
+      name = "kjobwidgets-5.115.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kjs-5.114.0.tar.xz";
-      sha256 = "08nh6yr6bqifpb5s9a4wbjwmwnm7zp5k8hcdmyb6mlcbam9qp6j7";
-      name = "kjs-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kjs-5.115.0.tar.xz";
+      sha256 = "0ch42gwl9py7bcrx8liryp2w2sz6c46c7r6m44xg8sjqf00f1x4w";
+      name = "kjs-5.115.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kjsembed-5.114.0.tar.xz";
-      sha256 = "1xglisxv7nfsbj9lgpvc4c5ql4f6m7n71vf7vih5ff3aqybrkgxa";
-      name = "kjsembed-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kjsembed-5.115.0.tar.xz";
+      sha256 = "0l9i7rjjbdllzbcxb1wmg8vspcjy5jiai87kkqhy873yrhfsrbpn";
+      name = "kjsembed-5.115.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kmediaplayer-5.114.0.tar.xz";
-      sha256 = "092yvzvrkvr8xxncw7h5ghfd2bggzxsqfj67c2vhymhfw4i0c54x";
-      name = "kmediaplayer-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kmediaplayer-5.115.0.tar.xz";
+      sha256 = "1ydadms12xhjxkm5c7shk7ssw327nkv3qlg5rn9bbzq35nc79llm";
+      name = "kmediaplayer-5.115.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/knewstuff-5.114.0.tar.xz";
-      sha256 = "15xmx7rnnrsz2cj044aviyr4hi9h8r0nnva9qzcjcq2hkkgj7wjj";
-      name = "knewstuff-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/knewstuff-5.115.0.tar.xz";
+      sha256 = "1zqwblssr03kdk9swsc4jqmzgfyixrhby05mb0df07hdh29938cb";
+      name = "knewstuff-5.115.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/knotifications-5.114.0.tar.xz";
-      sha256 = "0cjd5ml9hyzprjgmrc132cmp7g9hnl0h5swlxw2ifqnxxyfkg72b";
-      name = "knotifications-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/knotifications-5.115.0.tar.xz";
+      sha256 = "0hh6ay8nfm1ak6w74wdhwixxjdpywg7qrckf694hjmxvpgzp30pv";
+      name = "knotifications-5.115.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/knotifyconfig-5.114.0.tar.xz";
-      sha256 = "049n64qlr69zv1dc1dhgbsca37179hp06xfsxnhg97lblz3p3gds";
-      name = "knotifyconfig-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/knotifyconfig-5.115.0.tar.xz";
+      sha256 = "1mh8phfixddi1h06kd42xfmdxgd2g9cqq8d1h9kp2vw5g4i9hiq5";
+      name = "knotifyconfig-5.115.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kpackage-5.114.0.tar.xz";
-      sha256 = "0v165az3k5lfszxy0kl2464573y0dcq92fyfiklwnkkcjsvba69d";
-      name = "kpackage-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kpackage-5.115.0.tar.xz";
+      sha256 = "0zbw8akrhx4g8sdlbh02qjwbxg0mzk7nbs5isrhi3s34xhzqg03y";
+      name = "kpackage-5.115.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kparts-5.114.0.tar.xz";
-      sha256 = "1rrf765p554r7l8j23gx5zxdq6wimh0v91qdkwz7ilm2qr16vd5v";
-      name = "kparts-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kparts-5.115.0.tar.xz";
+      sha256 = "153xrci1fp7y4iby8d8izx70572h2rj8psf3xbpx6hqqsxwk7bd2";
+      name = "kparts-5.115.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kpeople-5.114.0.tar.xz";
-      sha256 = "04v0s3amn6lbb16qvp1r6figckva6xk8z7djk8jda8fbnx8dx2r1";
-      name = "kpeople-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kpeople-5.115.0.tar.xz";
+      sha256 = "0bvijsd14r153x2fjjk8slznwdxlxb4s3vwdfbimhp8vxln83hdq";
+      name = "kpeople-5.115.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kplotting-5.114.0.tar.xz";
-      sha256 = "17x58pplln0plqiyhjpzdiqxngylxq5gkc5gk7b91xzm783x2k0n";
-      name = "kplotting-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kplotting-5.115.0.tar.xz";
+      sha256 = "1wz1y32y2lfhjbwz9lz721w1rdlwqb19qfg2zkj15j64m5s5qvl3";
+      name = "kplotting-5.115.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kpty-5.114.0.tar.xz";
-      sha256 = "0fm7bfp89kvg1a64q8piiyal71p6vjnqcm13zak6r9fbfwcm0gs9";
-      name = "kpty-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kpty-5.115.0.tar.xz";
+      sha256 = "06alh2i1j2k07rdxdm6rx1ajvd1355sz4nh1ba0a0vr6ic306k44";
+      name = "kpty-5.115.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kquickcharts-5.114.0.tar.xz";
-      sha256 = "1f91x92qdzxp31z7ixx9jn41hq9f3w9hjia94pab9vsnaz8prbd1";
-      name = "kquickcharts-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kquickcharts-5.115.0.tar.xz";
+      sha256 = "1fv64m86s5srcdqf37blhz3fdf7zx1z4l3xm0cc6f0xgwhfdhy5a";
+      name = "kquickcharts-5.115.0.tar.xz";
     };
   };
   kross = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kross-5.114.0.tar.xz";
-      sha256 = "0bbpi63lxbb4ylx2jd172a2bqyxkd606n7w8zrvcjy466lkv3sz4";
-      name = "kross-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kross-5.115.0.tar.xz";
+      sha256 = "0vqb4kbxlncj90n93akz4m3svhbx4p16mpzaxb9xsc8y8bl2fvz2";
+      name = "kross-5.115.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/krunner-5.114.0.tar.xz";
-      sha256 = "1rjs9b87bi4f6pdm9fwnha2sj2mrq260l80iz2jq1zah83p546sw";
-      name = "krunner-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/krunner-5.115.0.tar.xz";
+      sha256 = "0agsqs3x218jwmn1237bh70w50l99xyxn1w75md31v6sxszkkqhm";
+      name = "krunner-5.115.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kservice-5.114.0.tar.xz";
-      sha256 = "0jdvlplnsb9w628wh3ip6awxvhgyc097zh7ls9614ymkbnpc9xca";
-      name = "kservice-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kservice-5.115.0.tar.xz";
+      sha256 = "1zayvj1f95azan48l1mhs9zm8rm7f4s20gpn61qqfn5abvxq7jwv";
+      name = "kservice-5.115.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/ktexteditor-5.114.0.tar.xz";
-      sha256 = "06amzk6290imi2gj3v1k3f56zdlad7zbz4wwlf34v4iibj9mfgw8";
-      name = "ktexteditor-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/ktexteditor-5.115.0.tar.xz";
+      sha256 = "1hxnwbpwf0bsfxn0g0yd6d2n5i0rf60871n9yyzxn6i7hzbprxll";
+      name = "ktexteditor-5.115.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/ktextwidgets-5.114.0.tar.xz";
-      sha256 = "0w1wwyd3fy351rmkhf3i55is5031j2zxvswm0b1sb3pd159v888v";
-      name = "ktextwidgets-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/ktextwidgets-5.115.0.tar.xz";
+      sha256 = "13lxlc8g6hjk9vnyan12z9fjgzgj50ddf2bz6d2p18y01j68hj33";
+      name = "ktextwidgets-5.115.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kunitconversion-5.114.0.tar.xz";
-      sha256 = "1qyqvl8fy105zwma5nrkz9zg5932w2f33daw0azhj322iffrm39n";
-      name = "kunitconversion-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kunitconversion-5.115.0.tar.xz";
+      sha256 = "0x4fjsh4ms1qnlrsyrlhrkkl56wdmbcq6sqc2pldzxks6f5yp2cz";
+      name = "kunitconversion-5.115.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kwallet-5.114.0.tar.xz";
-      sha256 = "1cji8bvy5m77zljyrrgipsw8pxcds1sgikxlq3sdfxymcsw2wr36";
-      name = "kwallet-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kwallet-5.115.0.tar.xz";
+      sha256 = "0gggxbhck1s7sqrhq1px22jiyikprf5rm4h30wlwjh4lr0hzrczj";
+      name = "kwallet-5.115.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kwayland-5.114.0.tar.xz";
-      sha256 = "1lzmlbv5vl656cigjj07hbc0gj6g1i2xqanvnhxj360109kzilf1";
-      name = "kwayland-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kwayland-5.115.0.tar.xz";
+      sha256 = "0g34nihnim0a20fbsc0fxnpp4wxm8dhw5h8kdp6cm8airvci5d87";
+      name = "kwayland-5.115.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kwidgetsaddons-5.114.0.tar.xz";
-      sha256 = "1cc8lsk9v0cp2wiy1q26mlkf8np0yj01sq8a7w13ga5s6hv4sh2n";
-      name = "kwidgetsaddons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kwidgetsaddons-5.115.0.tar.xz";
+      sha256 = "0mdfp15iv2mqrkwbq2b3g653y4k5gs2s2mx2xg822bnfcx2q8ng3";
+      name = "kwidgetsaddons-5.115.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kwindowsystem-5.114.0.tar.xz";
-      sha256 = "03xbsf1pmswd2kpn3pdszp4vndclsh7j02fp22npxaxllmfr4va9";
-      name = "kwindowsystem-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kwindowsystem-5.115.0.tar.xz";
+      sha256 = "0lsz6pxmkgvpmq76a30wg4p4bj8id6wivnsxncsfag7vnlcnp870";
+      name = "kwindowsystem-5.115.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/kxmlgui-5.114.0.tar.xz";
-      sha256 = "0gvjf32ssc0r0bdpb1912ldsr5rjls8vrscwy5gm9g5gw504hmmr";
-      name = "kxmlgui-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/kxmlgui-5.115.0.tar.xz";
+      sha256 = "0gbqndnc1w0fjkpazg5p565izb9p5dwsgnhi6n00y8a4shi2swbb";
+      name = "kxmlgui-5.115.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/portingAids/kxmlrpcclient-5.114.0.tar.xz";
-      sha256 = "1fgjai3vj3yk67ynhd7blilyrdhdn5nvma3v3j1sbdg98pr7qzar";
-      name = "kxmlrpcclient-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/portingAids/kxmlrpcclient-5.115.0.tar.xz";
+      sha256 = "021j52d62z2lc1hqqw8dhcn7acxmrzn1m643586m06bi2rfgsx40";
+      name = "kxmlrpcclient-5.115.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/modemmanager-qt-5.114.0.tar.xz";
-      sha256 = "16jqhmcpsffl9a7c0bb4hwjy3bw5rakdsnc5n6y8djc6237jl9pi";
-      name = "modemmanager-qt-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/modemmanager-qt-5.115.0.tar.xz";
+      sha256 = "14ahzp2vn7xdhk9wcxfccn80a3ca6a652g1y0whp0szy0pnpajx0";
+      name = "modemmanager-qt-5.115.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/networkmanager-qt-5.114.0.tar.xz";
-      sha256 = "10anjsnrzawrfjlznjvvl2sbxrajl2ddnq2kgl314b5dk7z3yk4n";
-      name = "networkmanager-qt-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/networkmanager-qt-5.115.0.tar.xz";
+      sha256 = "0ygbvbdrxrb1nblgddkwsmvskg48y7ri816w9hbi3wxhjniag4hx";
+      name = "networkmanager-qt-5.115.0.tar.xz";
     };
   };
   oxygen-icons = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/oxygen-icons-5.114.0.tar.xz";
-      sha256 = "0f6hv5g8y2ggagrq9x9b78bqxqg6bqcpm1xxhf69ybgjikrqdf2r";
-      name = "oxygen-icons-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/oxygen-icons-5.115.0.tar.xz";
+      sha256 = "1f54wqz2ypi9qca9rrac3d0rnzzxay1x8cl2zdar2lk4qas304qj";
+      name = "oxygen-icons-5.115.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/plasma-framework-5.114.0.tar.xz";
-      sha256 = "058hl76q35bw3rzmv348azk1lmhkpgmfrxr3jd9s1hphijr8sgcx";
-      name = "plasma-framework-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/plasma-framework-5.115.0.tar.xz";
+      sha256 = "1xqijqn7a92abp4zk1f8glbrhk4y3jpzblildxq6nix626xk0vrc";
+      name = "plasma-framework-5.115.0.tar.xz";
     };
   };
   prison = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/prison-5.114.0.tar.xz";
-      sha256 = "1wbr1lryxmrx65ilq1bhqsdhhikrih977nhpb02fq0cqnvv7v9i7";
-      name = "prison-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/prison-5.115.0.tar.xz";
+      sha256 = "1pkk8azcwadiqcmd3g61v076f928dz2037gf5kb46dibpa8gqr49";
+      name = "prison-5.115.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/purpose-5.114.0.tar.xz";
-      sha256 = "1lj67f0x4gvbh9by3c3crbbwwnx7b9ifjna9ggziya4m6zj0m4z1";
-      name = "purpose-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/purpose-5.115.0.tar.xz";
+      sha256 = "03z0vq8h2244mmsj1nkjwkk71dhsisx7aw497i09y7hypggaa1ms";
+      name = "purpose-5.115.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/qqc2-desktop-style-5.114.0.tar.xz";
-      sha256 = "1y5g91vybjvhwmzpfwrc70q5j7jxf5b972f9fh2vzb930jir6c8g";
-      name = "qqc2-desktop-style-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/qqc2-desktop-style-5.115.0.tar.xz";
+      sha256 = "001pnzchm5h73h10p4nbv11gp71n9wnkvr2mxn96qmqw3976aisq";
+      name = "qqc2-desktop-style-5.115.0.tar.xz";
     };
   };
   solid = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/solid-5.114.0.tar.xz";
-      sha256 = "1slxlj5jhp8g745l328932934633nl81sq3n8fd73h655hymsk4s";
-      name = "solid-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/solid-5.115.0.tar.xz";
+      sha256 = "0yrxfzj2qgm8pc7jqgpxdkbc2p7c2zm6fg3mwdvbh9zgl3vcd8d7";
+      name = "solid-5.115.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/sonnet-5.114.0.tar.xz";
-      sha256 = "0zxi96i3gfpx759qc1nyz7jqlswg5ivgr1w9gbbsm1x5fi9ikadx";
-      name = "sonnet-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/sonnet-5.115.0.tar.xz";
+      sha256 = "054ra5kvmwv6f21cf3fd7x4z0sfar7hm4vi33rn6hzsh0b7q4qfy";
+      name = "sonnet-5.115.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/syndication-5.114.0.tar.xz";
-      sha256 = "13rjb1zm9yd8vbm9h7avqih5v0rr2srqwglm29l7mcnankqlh4n7";
-      name = "syndication-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/syndication-5.115.0.tar.xz";
+      sha256 = "0imr1n0jc0lc0jr5r2r7yzbniq6wbmzlsf8l85d8sinb2d1wgdhv";
+      name = "syndication-5.115.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/syntax-highlighting-5.114.0.tar.xz";
-      sha256 = "1skblg2m0sar63qrgkjsg0w9scixggm5qj7lp4gzjn4hwq6m3n63";
-      name = "syntax-highlighting-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/syntax-highlighting-5.115.0.tar.xz";
+      sha256 = "02nyyb9x53mnzc2bxdwswz3cjsn6alf2k4hmgaw26c14mhcsf8h6";
+      name = "syntax-highlighting-5.115.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.114.0";
+    version = "5.115.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.114/threadweaver-5.114.0.tar.xz";
-      sha256 = "1y07g58w6z3i11y3djg3aaxanhp9hzaciq61l4dn1gqwghn09xgh";
-      name = "threadweaver-5.114.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.115/threadweaver-5.115.0.tar.xz";
+      sha256 = "1f2fs946scr34kvrb5qrw5mg2id25lwysd3q45wkigxmymc8dl4z";
+      name = "threadweaver-5.115.0.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix b/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
index fdf01c195af5..bfa2974bdc5b 100644
--- a/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
+++ b/nixpkgs/pkgs/development/libraries/kerberos/krb5.nix
@@ -14,6 +14,7 @@
 # This is called "staticOnly" because krb5 does not support
 # builting both static and shared, see below.
 , staticOnly ? false
+, withLdap ? false
 , withVerto ? false
 }:
 
@@ -25,6 +26,9 @@
 let
   libOnly = type == "lib";
 in
+
+assert withLdap -> !libOnly;
+
 stdenv.mkDerivation rec {
   pname = "${type}krb5";
   version = "1.21.2";
@@ -40,6 +44,7 @@ stdenv.mkDerivation rec {
     # krb5's ./configure does not allow passing --enable-shared and --enable-static at the same time.
     # See https://bbs.archlinux.org/viewtopic.php?pid=1576737#p1576737
     ++ lib.optionals staticOnly [ "--enable-static" "--disable-shared" ]
+    ++ lib.optional withLdap "--with-ldap"
     ++ lib.optional withVerto "--with-system-verto"
     ++ lib.optional stdenv.isFreeBSD ''WARN_CFLAGS=""''
     ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform)
@@ -55,7 +60,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ openssl ]
     ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.libc != "bionic" && !(stdenv.hostPlatform.useLLVM or false)) [ keyutils ]
-    ++ lib.optionals (!libOnly) [ openldap libedit ]
+    ++ lib.optionals (!libOnly) [ libedit ]
+    ++ lib.optionals withLdap [ openldap ]
     ++ lib.optionals withVerto [ libverto ];
 
   propagatedBuildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk; [
diff --git a/nixpkgs/pkgs/development/libraries/leatherman/default.nix b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
index 47bdd0ffb480..06b528ff8cf7 100644
--- a/nixpkgs/pkgs/development/libraries/leatherman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.11";
+  version = "1.12.12";
 
   src = fetchFromGitHub {
-    sha256 = "sha256-XB5qIXPe1Tu+cfxuL+HAfR9QQNiUY/noO51CVEz9hsU=";
+    sha256 = "sha256-V/AMdJ3ldlgBaO8gS0FOqb5tTdRGGW/+3LZq/TKkdog=";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
diff --git a/nixpkgs/pkgs/development/libraries/lib3mf/default.nix b/nixpkgs/pkgs/development/libraries/lib3mf/default.nix
index 0da54cd61c07..2436fbc00287 100644
--- a/nixpkgs/pkgs/development/libraries/lib3mf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lib3mf/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-WMTTYYgpCIM86a6Jw8iah/YVXN9T5youzEieWL/d+Bc=";
   };
 
+  patches = [ ./upgrade-to-cpp-14.patch ];
+
   nativeBuildInputs = [ cmake ninja pkg-config ];
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/lib3mf/upgrade-to-cpp-14.patch b/nixpkgs/pkgs/development/libraries/lib3mf/upgrade-to-cpp-14.patch
new file mode 100644
index 000000000000..a453571838d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/lib3mf/upgrade-to-cpp-14.patch
@@ -0,0 +1,18 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9f719beb7..a20f84eb8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,12 +34,12 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+   # using GCC
+   add_definitions(-DBUILD_DLL)
+   add_compile_options(-Wall)
+-  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2")
++  SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O2")
+ elseif ("${CMAKE_SYSTEM_NAME}" MATCHES "Darwin")
+   # using GCC
+   add_definitions(-DBUILD_DLL)
+   add_compile_options(-Wall) 
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O2")
++  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -O2")
+   set(CMAKE_MACOSX_RPATH ON)
+ endif()
diff --git a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
index 40ff3f9b807f..c46d69efbdc8 100644
--- a/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libadwaita/default.nix
@@ -17,9 +17,10 @@
 , xvfb-run
 , AppKit
 , Foundation
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libadwaita";
   version = "1.4.3";
 
@@ -30,7 +31,7 @@ stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "libadwaita";
-    rev = version;
+    rev = finalAttrs.version;
     hash = "sha256-ctHAN0SY6k68jaBpmIpMm8DngC9DPiL1vAmGhECpNic=";
   };
 
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [
     "-Dgtk_doc=true"
-  ] ++ lib.optionals (!doCheck) [
+  ] ++ lib.optionals (!finalAttrs.doCheck) [
     "-Dtests=false"
   ];
 
@@ -106,16 +107,20 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = finalAttrs.pname;
+    };
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
     };
   };
 
   meta = with lib; {
-    changelog = "https://gitlab.gnome.org/GNOME/libadwaita/-/blob/${src.rev}/NEWS";
+    changelog = "https://gitlab.gnome.org/GNOME/libadwaita/-/blob/${finalAttrs.src.rev}/NEWS";
     description = "Library to help with developing UI for mobile devices using GTK/GNOME";
     homepage = "https://gitlab.gnome.org/GNOME/libadwaita";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members ++ (with maintainers; [ dotlambda ]);
     platforms = platforms.unix;
+    pkgConfigModules = [ "libadwaita-1" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libavif/default.nix b/nixpkgs/pkgs/development/libraries/libavif/default.nix
index 2cb7920cb5f9..6df341d68eb8 100644
--- a/nixpkgs/pkgs/development/libraries/libavif/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libavif/default.nix
@@ -19,13 +19,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "libavif";
-  version = "1.0.3";
+  version = "1.0.4";
 
   src = fetchFromGitHub {
     owner = "AOMediaCodec";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-0MLr9wdIs3c4pOAF4rlC8QNQXlrK3YGXILS9foVKfVM=";
+    hash = "sha256-9YP4Zq6dehIJanNkpAJK1aYwSOAueqonF8k2t/3B4kw=";
   };
 
   # reco: encode libaom slowest but best, decode dav1d fastest
diff --git a/nixpkgs/pkgs/development/libraries/libbsd/default.nix b/nixpkgs/pkgs/development/libraries/libbsd/default.nix
index 4f06eb7f8624..9e80d17b8a03 100644
--- a/nixpkgs/pkgs/development/libraries/libbsd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libbsd/default.nix
@@ -1,25 +1,18 @@
 { lib
 , stdenv
-, fetchFromGitLab
-, fetchpatch
+, fetchurl
 , autoreconfHook
 , libmd
 , gitUpdater
 }:
 
-# Run `./get-version` for the new value when bumping the Git revision.
-let gitVersion = "0.11.7-55-g73b2"; in
-
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "libbsd";
-  version = "unstable-2023-04-29";
+  version = "0.11.8";
 
-  src = fetchFromGitLab {
-    domain = "gitlab.freedesktop.org";
-    owner = "libbsd";
-    repo = "libbsd";
-    rev = "73b25a8f871b3a20f6ff76679358540f95d7dbfd";
-    hash = "sha256-LS28taIMjRCl6xqg75eYOIrTDl8PzSa+OvrdiEOP1+U=";
+  src = fetchurl {
+    url = "https://libbsd.freedesktop.org/releases/${pname}-${version}.tar.xz";
+    hash = "sha256-Vf36Jpb7TVWlkvqa0Uqd+JfHsACN2zswxBmRSEH4XzM=";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -31,24 +24,12 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ autoreconfHook ];
   propagatedBuildInputs = [ libmd ];
 
-  patches = [
-    # Fix `{get,set}progname(3bsd)` conditionalization
-    # https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/24
-    (fetchpatch {
-      url = "https://github.com/emilazy/libbsd/commit/0381f8d92873c5a19ced3ff861ee8ffe7825953e.patch";
-      hash = "sha256-+RMg5eHLgC4gyX9zXM0ttNf7rd9E3UzJX/7UVCYGXx4=";
-    })
-  ] ++ lib.optionals stdenv.isDarwin [
+  patches = lib.optionals stdenv.isDarwin [
     # Temporary build system hack from upstream maintainer
     # https://gitlab.freedesktop.org/libbsd/libbsd/-/issues/19#note_2017684
     ./darwin-fix-libbsd.sym.patch
   ];
 
-  postPatch = ''
-    substituteInPlace configure.ac \
-      --replace 'm4_esyscmd([./get-version])' '[${gitVersion}]'
-  '';
-
   passthru.updateScript = gitUpdater {
     # No nicer place to find latest release.
     url = "https://gitlab.freedesktop.org/libbsd/libbsd.git";
diff --git a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
index 3bbf449d89aa..7aa0cef5a81d 100644
--- a/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdeflate/default.nix
@@ -4,15 +4,17 @@
 , fixDarwinDylibNames
 , pkgsStatic
 , cmake
+, testers
 }:
-stdenv.mkDerivation rec {
+
+stdenv.mkDerivation (finalAttrs: {
   pname = "libdeflate";
   version = "1.19";
 
   src = fetchFromGitHub {
     owner = "ebiggers";
     repo = "libdeflate";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     sha256 = "sha256-HgZ2an1PCPhiLsd3ZA7tgZ1wVTOdHzDr8FHrqJhEbQw=";
   };
 
@@ -21,14 +23,20 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ]
     ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
-  passthru.tests.static = pkgsStatic.libdeflate;
+  passthru.tests = {
+    static = pkgsStatic.libdeflate;
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
 
   meta = with lib; {
     description = "Fast DEFLATE/zlib/gzip compressor and decompressor";
     license = licenses.mit;
     homepage = "https://github.com/ebiggers/libdeflate";
-    changelog = "https://github.com/ebiggers/libdeflate/blob/v${version}/NEWS.md";
+    changelog = "https://github.com/ebiggers/libdeflate/blob/v${finalAttrs.version}/NEWS.md";
     platforms = platforms.unix;
     maintainers = with maintainers; [ orivej kaction ];
+    pkgConfigModules = [ "libdeflate" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libei/default.nix b/nixpkgs/pkgs/development/libraries/libei/default.nix
index 18bf680ca840..688d0448861c 100644
--- a/nixpkgs/pkgs/development/libraries/libei/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libei/default.nix
@@ -23,14 +23,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libei";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "libinput";
     repo = "libei";
     rev = version;
-    hash = "sha256-MHPWEBMtxoEJ8j3LyDPD+m3DsO9u8nE+/pPtRHHXEXA=";
+    hash = "sha256-8n/C0rBlyhY8SaxkwU+tDskwSQObLRrR+utk4Ktgb7U=";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libepoxy/default.nix b/nixpkgs/pkgs/development/libraries/libepoxy/default.nix
index cd98e2229fe2..9fab4c72947e 100644
--- a/nixpkgs/pkgs/development/libraries/libepoxy/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libepoxy/default.nix
@@ -11,13 +11,14 @@
 , Carbon
 , OpenGL
 , x11Support ? !stdenv.isDarwin
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libepoxy";
   version = "1.5.10";
 
-  src = fetchFromGitHub {
+  src = with finalAttrs; fetchFromGitHub {
     owner = "anholt";
     repo = pname;
     rev = version;
@@ -58,7 +59,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Degl=${if (x11Support && !stdenv.isDarwin) then "yes" else "no"}"
     "-Dglx=${if x11Support then "yes" else "no"}"
-    "-Dtests=${lib.boolToString doCheck}"
+    "-Dtests=${lib.boolToString finalAttrs.doCheck}"
     "-Dx11=${lib.boolToString x11Support}"
   ];
 
@@ -66,6 +67,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests = {
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "A library for handling OpenGL function pointer management";
     homepage = "https://github.com/anholt/libepoxy";
@@ -74,4 +81,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     pkgConfigModules = [ "epoxy" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libffi/default.nix b/nixpkgs/pkgs/development/libraries/libffi/default.nix
index 6394a35d782d..ac910dc3d649 100644
--- a/nixpkgs/pkgs/development/libraries/libffi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libffi/default.nix
@@ -6,14 +6,15 @@
 , doCheck ? !(stdenv.hostPlatform.isStatic)
 , dejagnu
 , nix-update-script
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libffi";
   version = "3.4.4";
 
   src = fetchurl {
-    url = "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz";
+    url = with finalAttrs; "https://github.com/libffi/libffi/releases/download/v${version}/${pname}-${version}.tar.gz";
     sha256 = "sha256-1mxWrSWags8qnfxAizK/XaUjcVALhHRff7i2RXEt9nY=";
   };
 
@@ -53,6 +54,11 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = nix-update-script { };
+    tests = {
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
+    };
   };
 
   meta = with lib; {
@@ -75,5 +81,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.all;
+    pkgConfigModules = [ "libffi" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libfive/default.nix b/nixpkgs/pkgs/development/libraries/libfive/default.nix
index 1d8f57a817c3..3f3c7f753c70 100644
--- a/nixpkgs/pkgs/development/libraries/libfive/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfive/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , wrapQtAppsHook
 , fetchFromGitHub
+, unstableGitUpdater
 , cmake
 , ninja
 , pkg-config
@@ -17,7 +18,7 @@
 
 stdenv.mkDerivation {
   pname = "libfive";
-  version = "unstable-2023-06-07";
+  version = "0-unstable-2024-02-14";
 
   src = fetchFromGitHub {
     owner = "libfive";
@@ -95,6 +96,8 @@ stdenv.mkDerivation {
     "libfive.stdlib"
   ];
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "Infrastructure for solid modeling with F-Reps in C, C++, and Guile";
     homepage = "https://libfive.com/";
diff --git a/nixpkgs/pkgs/development/libraries/libgit2/default.nix b/nixpkgs/pkgs/development/libraries/libgit2/default.nix
index 957a146ce2a0..a554f0dd45b7 100644
--- a/nixpkgs/pkgs/development/libraries/libgit2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgit2/default.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libgit2";
-  version = "1.7.1";
+  version = "1.7.2";
   # also check the following packages for updates: python3Packages.pygit2 and libgit2-glib
 
   outputs = ["lib" "dev" "out"];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "libgit2";
     repo = "libgit2";
     rev = "v${version}";
-    hash = "sha256-3W0/i6Pu7I7D1zMQhmEqJVsa7PZpKOqU1+udNENSBvM=";
+    hash = "sha256-fVPY/byE2/rxmv/bUykcAbmUFMlF3UZogVuTzjOXJUU=";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/libinput/default.nix b/nixpkgs/pkgs/development/libraries/libinput/default.nix
index 16193e5e5148..2a1c2f8b45a9 100644
--- a/nixpkgs/pkgs/development/libraries/libinput/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinput/default.nix
@@ -130,7 +130,7 @@ stdenv.mkDerivation rec {
     description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
     homepage = "https://www.freedesktop.org/wiki/Software/libinput/";
     license = licenses.mit;
-    platforms = platforms.unix;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ codyopel ] ++ teams.freedesktop.members;
     changelog = "https://gitlab.freedesktop.org/libinput/libinput/-/releases/${version}";
   };
diff --git a/nixpkgs/pkgs/development/libraries/libks/default.nix b/nixpkgs/pkgs/development/libraries/libks/default.nix
index d3279bbe991a..0b1135f8522b 100644
--- a/nixpkgs/pkgs/development/libraries/libks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libks/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libks";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "signalwire";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-iAgiGo/PMG0L4S/ZqSPL7Hl8akCNyva4JhaOkcHit8w=";
+    sha256 = "sha256-G2ZsTm7qyEhkys+3lcuq1VsKTz3RpfodDekecRRk++w=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libosmium/default.nix b/nixpkgs/pkgs/development/libraries/libosmium/default.nix
index 63aab4c0bfb1..211ca0559b9a 100644
--- a/nixpkgs/pkgs/development/libraries/libosmium/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libosmium/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
       "https://github.com/osmcode/libosmium/releases/tag/v${version}"
       "https://github.com/osmcode/libosmium/blob/v${version}/CHANGELOG.md"
     ];
-    maintainers = with maintainers; [ das-g ];
+    maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libpaper/default.nix b/nixpkgs/pkgs/development/libraries/libpaper/default.nix
index b9372ba1d407..9e36812e7e89 100644
--- a/nixpkgs/pkgs/development/libraries/libpaper/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpaper/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.28";
+  version = "1.1.29";
   pname = "libpaper";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/libp/libpaper/libpaper_${version}.tar.gz";
-    sha256 = "sha256-yLuUbsk9PCxyu7HXJX6QFyoipEoHoH+2uAKluyyV/dw=";
+    hash = "sha256-JjMOIemjEkZY1RX9hQsM3lRv9C2JsllqUmTF8Wd/BUc=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/development/libraries/libpsl/default.nix b/nixpkgs/pkgs/development/libraries/libpsl/default.nix
index 3d0a3f208714..f4f6375cb419 100644
--- a/nixpkgs/pkgs/development/libraries/libpsl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpsl/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.c0bw3b ];
     mainProgram = "psl";
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     pkgConfigModules = [ "libpsl" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libqtdbusmock/default.nix b/nixpkgs/pkgs/development/libraries/libqtdbusmock/default.nix
index d9993947b553..44532a0b9dae 100644
--- a/nixpkgs/pkgs/development/libraries/libqtdbusmock/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqtdbusmock/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchbzr
+, fetchFromGitLab
 , testers
 , cmake
 , cmake-extras
@@ -17,19 +17,16 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libqtdbusmock";
-  version = "unstable-2017-03-16";
+  version = "0.9.1";
 
-  src = fetchbzr {
-    url = "lp:libqtdbusmock";
-    rev = "49";
-    sha256 = "sha256-q3jL8yGLgcNxXHPh9M9cTVtUvonrBUPNxuPJIvu7Q/s=";
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/libqtdbusmock";
+    rev = finalAttrs.version;
+    hash = "sha256-hVw2HnIHlA7vvt0Sr6F2qVhvBZ33aCeqb9vgbu3rgBo=";
   };
 
   postPatch = ''
-    # Look for the new(?) name
-    substituteInPlace CMakeLists.txt \
-      --replace 'NetworkManager' 'libnm'
-
     # Workaround for "error: expected unqualified-id before 'public'" on "**signals"
     sed -i -e '/add_definitions/a -DQT_NO_KEYWORDS' CMakeLists.txt
   '' + lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
diff --git a/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix b/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix
index fe6a3e041798..ab07a6577b83 100644
--- a/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqtdbustest/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchbzr
+, fetchFromGitLab
 , fetchpatch
 , testers
 , cmake
@@ -16,12 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libqtdbustest";
-  version = "unstable-2017-01-06";
+  version = "0.3.2";
 
-  src = fetchbzr {
-    url = "lp:libqtdbustest";
-    rev = "42";
-    sha256 = "sha256-5MQdGGtEVE/pM9u0B0xFXyITiRln9p+8/MLtrrCZqi8=";
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/libqtdbustest";
+    rev = finalAttrs.version;
+    hash = "sha256-yqqyKxsbqiVTrkas79YoPMi28dKFNntiE7+dx1v+Qh4=";
   };
 
   patches = [
@@ -31,13 +32,13 @@ stdenv.mkDerivation (finalAttrs: {
 
     # Disable QProcess start timeout
     (fetchpatch {
-      url = "https://salsa.debian.org/debian-ayatana-team/libqtdbustest/-/raw/0788df10bc6f2aa47c2b73fc1df944686a9ace1e/debian/patches/1003_no-QProcess-waitForstarted-timeout.patch";
+      url = "https://salsa.debian.org/ubports-team/libqtdbustest/-/raw/debian/0.3.2-3/debian/patches/1003_no-QProcess-waitForstarted-timeout.patch";
       hash = "sha256-ThDbn6URvkj5ARDMj+xO0fb1Qh2YQRzVy24O03KglHI=";
     })
 
     # More robust dbus address reading
     (fetchpatch {
-      url = "https://salsa.debian.org/debian-ayatana-team/libqtdbustest/-/raw/7e55c79cd032c702b30d834c1fb0b65661fc6eeb/debian/patches/1004_make-reading-address-from-dbus-daemon-more-robust.patch";
+      url = "https://salsa.debian.org/ubports-team/libqtdbustest/-/raw/debian/0.3.2-3/debian/patches/1004_make-reading-address-from-dbus-daemon-more-robust.patch";
       hash = "sha256-hq8pdducp/udxoGWGt1dgL/7VHcbJO/oT1dOY1zew8M=";
     })
   ];
diff --git a/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch b/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch
index b50fc5d1e476..dc8bcd7763f9 100644
--- a/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch
+++ b/nixpkgs/pkgs/development/libraries/libqtdbustest/less-pedantic-process-finding.patch
@@ -74,12 +74,13 @@ diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestQProcessDBusSe
 diff '--color=auto' -ur '--color=never' a/tests/libqtdbustest/TestSuicidalProcess.cpp b/tests/libqtdbustest/TestSuicidalProcess.cpp
 --- a/tests/libqtdbustest/TestSuicidalProcess.cpp	2023-01-20 21:36:16.948292559 +0100
 +++ b/tests/libqtdbustest/TestSuicidalProcess.cpp	2023-01-20 21:55:07.219951081 +0100
-@@ -51,8 +51,7 @@
+@@ -51,9 +51,7 @@
  	pgrep.waitForFinished();
  	pgrep.waitForReadyRead();
- 
--	EXPECT_EQ("sleep 5",
--			QString::fromUtf8(pgrep.readAll().trimmed()).toStdString());
+
+-	EXPECT_TRUE(QString::fromUtf8(pgrep.readAll().trimmed())
+-                .toStdString()
+-                .find("sleep 5") != std::string::npos);
 +	EXPECT_TRUE(pgrep.readAll().contains("sleep 5"));
  }
  
diff --git a/nixpkgs/pkgs/development/libraries/libsass/default.nix b/nixpkgs/pkgs/development/libraries/libsass/default.nix
index 57e58adb8c7e..005e74289df7 100644
--- a/nixpkgs/pkgs/development/libraries/libsass/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsass/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
 , testers
 
@@ -13,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libsass";
-  version = "3.6.5"; # also check sassc for updates
+  version = "3.6.6"; # also check sassc for updates
 
   src = fetchFromGitHub {
     owner = "sass";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    sha256 = "1cxj6r85d5f3qxdwzxrmkx8z875hig4cr8zsi30w6vj23cyds3l2";
+    hash = "sha256-FkLL3OAJXDptRQY6ZkYbss2pcc40f/wasIvEIyHRQFo=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
@@ -27,14 +26,6 @@ stdenv.mkDerivation (finalAttrs: {
     '';
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2022-26592.CVE-2022-43357.CVE-2022-43358.patch";
-      url = "https://github.com/sass/libsass/pull/3184/commits/5bb0ea0c4b2ebebe542933f788ffacba459a717a.patch";
-      hash = "sha256-DR6pKFWL70uJt//drzq34LeTzT8rUqgUTpgfUHpD2s4=";
-    })
-  ];
-
   preConfigure = ''
     export LIBSASS_VERSION=${finalAttrs.version}
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libsecret/default.nix b/nixpkgs/pkgs/development/libraries/libsecret/default.nix
index 733fcafaf290..3c5b5c489c07 100644
--- a/nixpkgs/pkgs/development/libraries/libsecret/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsecret/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libsecret";
-  version = "0.21.2";
+  version = "0.21.3";
 
   outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-5KNBSWoIFeZMjTuPq6sz17rn796rd7hDZpcx1bGB3O4=";
+    hash = "sha256-mj4lcfEEgDXYAjj1LIdgEliEpDuvilgP7bclDBrQqec=";
   };
 
   depsBuildBuild = [
diff --git a/nixpkgs/pkgs/development/libraries/libtiff/default.nix b/nixpkgs/pkgs/development/libraries/libtiff/default.nix
index 8e735369e076..af9e10a6b8f5 100644
--- a/nixpkgs/pkgs/development/libraries/libtiff/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtiff/default.nix
@@ -20,9 +20,10 @@
 , gdal
 , openimageio
 , freeimage
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libtiff";
   version = "4.6.0";
 
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitLab {
     owner = "libtiff";
     repo = "libtiff";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-qCg5qjsPPynCHIg0JsPJldwVdcYkI68zYmyNAKUCoyw=";
   };
 
@@ -77,6 +78,9 @@ stdenv.mkDerivation rec {
     tests = {
       inherit libgeotiff imagemagick graphicsmagick gdal openimageio freeimage;
       inherit (python3Packages) pillow imread;
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
     };
     updateScript = nix-update-script { };
   };
@@ -84,8 +88,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Library and utilities for working with the TIFF image file format";
     homepage = "https://libtiff.gitlab.io/libtiff";
-    changelog = "https://libtiff.gitlab.io/libtiff/v${version}.html";
+    changelog = "https://libtiff.gitlab.io/libtiff/v${finalAttrs.version}.html";
     license = licenses.libtiff;
     platforms = platforms.unix;
+    pkgConfigModules = [ "libtiff-4" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libunwind/default.nix b/nixpkgs/pkgs/development/libraries/libunwind/default.nix
index 19d6f0f6cd02..90054b8ff7b9 100644
--- a/nixpkgs/pkgs/development/libraries/libunwind/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunwind/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
-  version = "1.7.2";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "libunwind";
     repo = "libunwind";
     rev = "v${version}";
-    hash = "sha256-z5YCue0zadQnMEbGFniFvDjXNy6dSHQDQnXRXS6Uh/Y=";
+    hash = "sha256-u33JAgxNy45yhIFL5QDsfa7EtLLKWmCv1kO4BxYYuwM=";
   };
 
   postPatch = if (stdenv.cc.isClang || stdenv.hostPlatform.isStatic) then ''
diff --git a/nixpkgs/pkgs/development/libraries/libuv/default.nix b/nixpkgs/pkgs/development/libraries/libuv/default.nix
index a150bddc626d..52e1de20327d 100644
--- a/nixpkgs/pkgs/development/libraries/libuv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libuv/default.nix
@@ -22,14 +22,14 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "1.47.0";
+  version = "1.48.0";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = "libuv";
     repo = "libuv";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-J6qvq///A/tr+/vNRVCwCc80/VHKWQTYF6Mt1I+dBCU=";
+    hash = "sha256-U68BmIQNpmIy3prS7LkYl+wvDJQNikoeFiKh50yQFoA=";
   };
 
   outputs = [ "out" "dev" ];
@@ -48,6 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
       # Assertion failed in test/test-tcp-bind6-error.c on line 60: r == UV_EADDRINUSE
       # Assertion failed in test/test-tcp-bind-error.c on line 99: r == UV_EADDRINUSE
       "tcp_bind6_error_addrinuse" "tcp_bind_error_addrinuse_listen"
+      # https://github.com/libuv/libuv/pull/4075#issuecomment-1935572237
+      "thread_priority"
     ] ++ lib.optionals stdenv.isDarwin [
         # Sometimes: timeout (no output), failed uv_listen. Someone
         # should report these failures to libuv team. There tests should
diff --git a/nixpkgs/pkgs/development/libraries/libwacom/default.nix b/nixpkgs/pkgs/development/libraries/libwacom/default.nix
index ed5413464e1d..8e9840325bb9 100644
--- a/nixpkgs/pkgs/development/libraries/libwacom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwacom/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libwacom";
-  version = "2.9.0";
+  version = "2.10.0";
 
   outputs = [ "out" "dev" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    hash = "sha256-oM3dd22hQaAXdNoO2Q2JvO2lJCkmfw8f0NWxYcVT3lA=";
+    hash = "sha256-mH0aBDXeaz0tZLwNPSWUepHu52DnlvPyQFw3EByIwys=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix b/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
index b4683f673fba..03064a7e7b2a 100644
--- a/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxkbcommon/default.nix
@@ -17,14 +17,15 @@
 , wayland
 , wayland-protocols
 , wayland-scanner
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libxkbcommon";
   version = "1.5.0";
 
   src = fetchurl {
-    url = "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
+    url = with finalAttrs; "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
     sha256 = "sha256-Vg8RxLu8oQ9JXz7306aqTKYrT4+wtS59RZ0Yom5G4Bc=";
   };
 
@@ -49,6 +50,12 @@ stdenv.mkDerivation rec {
     patchShebangs ../test/
   '';
 
+  passthru = {
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "A library to handle keyboard descriptions";
     longDescription = ''
@@ -58,7 +65,7 @@ stdenv.mkDerivation rec {
       and dead keys.
     ''; # and a separate library for listing available keyboard layouts.
     homepage = "https://xkbcommon.org";
-    changelog = "https://github.com/xkbcommon/libxkbcommon/blob/xkbcommon-${version}/NEWS";
+    changelog = "https://github.com/xkbcommon/libxkbcommon/blob/xkbcommon-${finalAttrs.version}/NEWS";
     license = licenses.mit;
     maintainers = with maintainers; [ primeos ttuegel ];
     mainProgram = "xkbcli";
@@ -69,4 +76,4 @@ stdenv.mkDerivation rec {
       "xkbregistry"
     ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/libxml2/default.nix b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
index ce7e51c04f48..78c5d09889aa 100644
--- a/nixpkgs/pkgs/development/libraries/libxml2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
@@ -20,6 +20,7 @@
 , enableShared ? !stdenv.hostPlatform.isMinGW && !stdenv.hostPlatform.isStatic
 , enableStatic ? !enableShared
 , gnome
+, testers
 }:
 
 let
@@ -32,9 +33,9 @@ in
   assert oldVer -> stdenv.isDarwin; # reduce likelihood of using old libxml2 unintentionally
 
 let
-libxml = stdenv.mkDerivation rec {
+libxml = stdenv.mkDerivation (finalAttrs: rec {
   pname = "libxml2";
-  version = "2.12.4";
+  version = "2.12.5";
 
   outputs = [ "bin" "dev" "out" "doc" ]
     ++ lib.optional pythonSupport "py"
@@ -43,7 +44,7 @@ libxml = stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
-    hash = "sha256-SXNg5CPPC9merNt8YhXeqS5tbonulAOTwrrg53y5t9A=";
+    hash = "sha256-qXJ5Zpav04Bz4PWcKDw6L1pWC1JotLq8ORsoYWZSayE=";
   };
 
   strictDeps = true;
@@ -123,6 +124,11 @@ libxml = stdenv.mkDerivation rec {
       packageName = pname;
       versionPolicy = "none";
     };
+    tests = {
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
+    };
   };
 
   meta = with lib; {
@@ -131,8 +137,9 @@ libxml = stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ eelco jtojnar ];
+    pkgConfigModules = [ "libxml-2.0" ];
   };
-};
+});
 in
 if oldVer then
   libxml.overrideAttrs (attrs: rec {
diff --git a/nixpkgs/pkgs/development/libraries/lightning/default.nix b/nixpkgs/pkgs/development/libraries/lightning/default.nix
deleted file mode 100644
index c7a3b31a9032..000000000000
--- a/nixpkgs/pkgs/development/libraries/lightning/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, libopcodes
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "lightning";
-  version = "2.2.2";
-
-  src = fetchurl {
-    url = "mirror://gnu/lightning/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    hash = "sha256-CsqCQt6tF9YhF7z8sHjmqeqFbMgXQoE8noOUvM5zs+I=";
-  };
-
-  nativeCheckInputs = [ libopcodes ];
-
-  doCheck = true;
-
-  meta = with lib; {
-    homepage = "https://www.gnu.org/software/lightning/";
-    description = "Run-time code generation library";
-    longDescription = ''
-      GNU lightning is a library that generates assembly language code at
-      run-time; it is very fast, making it ideal for Just-In-Time compilers, and
-      it abstracts over the target CPU, as it exposes to the clients a
-      standardized RISC instruction set inspired by the MIPS and SPARC chips.
-    '';
-    maintainers = with maintainers; [ AndersonTorres ];
-    license = licenses.lgpl3Plus;
-    platforms = platforms.unix;
-    broken = stdenv.isDarwin; # failing tests
-  };
-})
diff --git a/nixpkgs/pkgs/development/libraries/llhttp/default.nix b/nixpkgs/pkgs/development/libraries/llhttp/default.nix
index fbf7198f1d55..15b548af70b3 100644
--- a/nixpkgs/pkgs/development/libraries/llhttp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/llhttp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "llhttp";
-  version = "9.1.3";
+  version = "9.2.0";
 
   src = fetchFromGitHub {
     owner = "nodejs";
     repo = "llhttp";
     rev = "release/v${finalAttrs.version}";
-    hash = "sha256-QacjukWkRCuQA4qzUq45521YOBLPuOSKNR1pVxgxe9o=";
+    hash = "sha256-DX/CuTyvc2OfAVWvlJr6wVHwSuqWmqQt34vM1FEazwE=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/mesa/backports/0001-dri-added-build-dependencies-for-systems-using-non-s.patch b/nixpkgs/pkgs/development/libraries/mesa/backports/0001-dri-added-build-dependencies-for-systems-using-non-s.patch
deleted file mode 100644
index c0b239c92598..000000000000
--- a/nixpkgs/pkgs/development/libraries/mesa/backports/0001-dri-added-build-dependencies-for-systems-using-non-s.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "duncan.hopkins" <duncan.hopkins@foundry.com>
-Date: Tue, 17 Oct 2023 09:34:31 +0100
-Subject: [PATCH] dri: added build dependencies for systems using non-standard
- prefixed X11 libs.
-
-To get MacOS to build, some extra dependencies need to be added to a couple of build targets.
-This mainly shows up when not installing the dependencies in the default prefix locations.
-On MacOS, this happens when using a custom build of brew to install the dependencies to 'odd' locations.
-
-Reviewed-by: Adam Jackson <ajax@redhat.com>
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992>
----
- src/gallium/targets/dri/meson.build | 2 +-
- src/glx/meson.build                 | 2 +-
- src/loader/meson.build              | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/gallium/targets/dri/meson.build b/src/gallium/targets/dri/meson.build
-index 66619bba0db..6d3ef197e74 100644
---- a/src/gallium/targets/dri/meson.build
-+++ b/src/gallium/targets/dri/meson.build
-@@ -49,7 +49,7 @@ libgallium_dri = shared_library(
-   link_depends : gallium_dri_link_depends,
-   link_with : [
-     libdri, libmesa, libgalliumvl,
--    libgallium, libglapi, libpipe_loader_static, libws_null, libwsw, libswdri,
-+    libgallium, libglapi, libloader, libpipe_loader_static, libws_null, libwsw, libswdri,
-     libswkmsdri,
-   ],
-   dependencies : [
-diff --git a/src/glx/meson.build b/src/glx/meson.build
-index 7ec3e3e0d88..1a5e9833956 100644
---- a/src/glx/meson.build
-+++ b/src/glx/meson.build
-@@ -136,7 +136,7 @@ libglx = static_library(
-   ],
-   dependencies : [
-     idep_mesautil, idep_xmlconfig,
--    dep_libdrm, dep_dri2proto, dep_glproto, dep_x11, dep_glvnd, dep_xxf86vm, dep_xshmfence
-+    dep_libdrm, dep_dri2proto, dep_glproto, dep_x11, dep_xext, dep_glvnd, dep_xxf86vm, dep_xshmfence
-   ],
- )
- 
-diff --git a/src/loader/meson.build b/src/loader/meson.build
-index 35f9991ba2f..043cc852112 100644
---- a/src/loader/meson.build
-+++ b/src/loader/meson.build
-@@ -47,6 +47,6 @@ libloader = static_library(
-   c_args : loader_c_args,
-   gnu_symbol_visibility : 'hidden',
-   include_directories : [inc_include, inc_src, inc_util],
--  dependencies : [dep_libdrm, dep_thread, dep_xcb_xrandr],
-+  dependencies : [dep_libdrm, dep_thread, dep_xcb, dep_xcb_xrandr],
-   build_by_default : false,
- )
diff --git a/nixpkgs/pkgs/development/libraries/mesa/backports/0002-util-Update-util-libdrm.h-stubs-to-allow-loader.c-to.patch b/nixpkgs/pkgs/development/libraries/mesa/backports/0002-util-Update-util-libdrm.h-stubs-to-allow-loader.c-to.patch
deleted file mode 100644
index 5a48ace8fbbc..000000000000
--- a/nixpkgs/pkgs/development/libraries/mesa/backports/0002-util-Update-util-libdrm.h-stubs-to-allow-loader.c-to.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "duncan.hopkins" <duncan.hopkins@foundry.com>
-Date: Tue, 17 Oct 2023 14:36:39 +0100
-Subject: [PATCH] util: Update util/libdrm.h stubs to allow loader.c to compile
- on MacOS.
-
-MacOS does not have the libdrm libraries so is missing xf86drm.h.
-util/libdrm.h already has a collection of stubs for systems that do not support the libraries.
-
-A compile on MacOS will fail with the source that uses newer drm functions and structures.
-Update adds in missing items that MacOS code needs to compile and run.
-New code is copied from the public repository: https://gitlab.freedesktop.org/mesa/drm/-/blob/main/xf86drm.h
-
-Reviewed-by: Adam Jackson <ajax@redhat.com>
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992>
----
- src/util/libdrm.h | 57 +++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 57 insertions(+)
-
-diff --git a/src/util/libdrm.h b/src/util/libdrm.h
-index cc153cf88ab..e3af494b8d1 100644
---- a/src/util/libdrm.h
-+++ b/src/util/libdrm.h
-@@ -44,22 +44,79 @@
- #define DRM_BUS_PLATFORM  2
- #define DRM_BUS_HOST1X    3
- 
-+typedef struct _drmPciDeviceInfo {
-+    uint16_t vendor_id;
-+    uint16_t device_id;
-+    uint16_t subvendor_id;
-+    uint16_t subdevice_id;
-+    uint8_t revision_id;
-+} drmPciDeviceInfo, *drmPciDeviceInfoPtr;
-+
-+#define DRM_PLATFORM_DEVICE_NAME_LEN 512
-+
-+typedef struct _drmPlatformBusInfo {
-+    char fullname[DRM_PLATFORM_DEVICE_NAME_LEN];
-+} drmPlatformBusInfo, *drmPlatformBusInfoPtr;
-+
-+typedef struct _drmPlatformDeviceInfo {
-+    char **compatible; /* NULL terminated list of compatible strings */
-+} drmPlatformDeviceInfo, *drmPlatformDeviceInfoPtr;
-+
-+#define DRM_HOST1X_DEVICE_NAME_LEN 512
-+
-+typedef struct _drmHost1xBusInfo {
-+    char fullname[DRM_HOST1X_DEVICE_NAME_LEN];
-+} drmHost1xBusInfo, *drmHost1xBusInfoPtr;
-+
-+typedef struct _drmPciBusInfo {
-+   uint16_t domain;
-+   uint8_t bus;
-+   uint8_t dev;
-+   uint8_t func;
-+} drmPciBusInfo, *drmPciBusInfoPtr;
-+
- typedef struct _drmDevice {
-     char **nodes; /* DRM_NODE_MAX sized array */
-     int available_nodes; /* DRM_NODE_* bitmask */
-     int bustype;
-+    union {
-+       drmPciBusInfoPtr pci;
-+       drmPlatformBusInfoPtr platform;
-+       drmHost1xBusInfoPtr host1x;
-+    } businfo;
-+    union {
-+        drmPciDeviceInfoPtr pci;
-+    } deviceinfo;
-     /* ... */
- } drmDevice, *drmDevicePtr;
- 
-+static inline int
-+drmGetDevice2(int fd, uint32_t flags, drmDevicePtr *device)
-+{
-+   return -ENOENT;
-+}
-+
- static inline int
- drmGetDevices2(uint32_t flags, drmDevicePtr devices[], int max_devices)
- {
-    return -ENOENT;
- }
- 
-+static inline int
-+drmGetDeviceFromDevId(dev_t dev_id, uint32_t flags, drmDevicePtr *device)
-+{
-+   return -ENOENT;
-+}
-+
-+static inline void
-+drmFreeDevice(drmDevicePtr *device) {}
-+
- static inline void
- drmFreeDevices(drmDevicePtr devices[], int count) {}
- 
-+static inline char*
-+drmGetDeviceNameFromFd2(int fd) { return NULL;}
-+
- typedef struct _drmVersion {
-     int     version_major;        /**< Major version */
-     int     version_minor;        /**< Minor version */
diff --git a/nixpkgs/pkgs/development/libraries/mesa/backports/0003-glx-fix-automatic-zink-fallback-loading-between-hw-a.patch b/nixpkgs/pkgs/development/libraries/mesa/backports/0003-glx-fix-automatic-zink-fallback-loading-between-hw-a.patch
deleted file mode 100644
index c7bde6411d8e..000000000000
--- a/nixpkgs/pkgs/development/libraries/mesa/backports/0003-glx-fix-automatic-zink-fallback-loading-between-hw-a.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: "duncan.hopkins" <duncan.hopkins@foundry.com>
-Date: Wed, 1 Nov 2023 11:31:13 +0000
-Subject: [PATCH] glx: fix automatic zink fallback loading between hw and sw
- drivers on MacOS
-
-The combination of defines used when compile the code on MacOS is hiding variables.
-Patch allows basic MacOS build to compile and run.
-
-Reviewed-by: Adam Jackson <ajax@redhat.com>
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25992>
----
- src/glx/glxext.c | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/src/glx/glxext.c b/src/glx/glxext.c
-index 7712e54c1d6..454f2c36a77 100644
---- a/src/glx/glxext.c
-+++ b/src/glx/glxext.c
-@@ -878,12 +878,16 @@ __glXInitialize(Display * dpy)
- 
-    dpyPriv->glXDrawHash = __glxHashCreate();
- 
-+   Bool zink = False;
-+   Bool try_zink = False;
-+
- #if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
-    Bool glx_direct = !debug_get_bool_option("LIBGL_ALWAYS_INDIRECT", false);
-    Bool glx_accel = !debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false);
-    const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
--   Bool zink = env && !strcmp(env, "zink");
--   Bool try_zink = False;
-+
-+   zink = env && !strcmp(env, "zink");
-+   try_zink = False;
- 
-    dpyPriv->drawHash = __glxHashCreate();
- 
-@@ -928,12 +932,14 @@ __glXInitialize(Display * dpy)
- 
-    if (!AllocAndFetchScreenConfigs(dpy, dpyPriv, zink | try_zink)) {
-       Bool fail = True;
-+#if defined(GLX_DIRECT_RENDERING) && !defined(GLX_USE_APPLEGL)
-       if (try_zink) {
-          free(dpyPriv->screens);
-          dpyPriv->driswDisplay->destroyDisplay(dpyPriv->driswDisplay);
-          dpyPriv->driswDisplay = driswCreateDisplay(dpy, false);
-          fail = !AllocAndFetchScreenConfigs(dpy, dpyPriv, False);
-       }
-+#endif
-       if (fail) {
-          free(dpyPriv);
-          return NULL;
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index 38b73f56cab6..dff2f0021d46 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch, buildPackages
+{ stdenv, lib, fetchurl, fetchpatch, fetchCrate, buildPackages
 , meson, pkg-config, ninja
 , intltool, bison, flex, file, python3Packages, wayland-scanner
 , expat, libdrm, xorg, wayland, wayland-protocols, openssl
@@ -10,6 +10,7 @@
   if stdenv.isLinux then
     [
       "d3d12" # WSL emulated GPU (aka Dozen)
+      "kmsro" # special "render only" driver for GPUs without a display controller
       "nouveau" # Nvidia
       "radeonsi" # new AMD (GCN+)
       "r300" # very old AMD
@@ -38,6 +39,7 @@
     [
       "amd" # AMD (aka RADV)
       "microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen)
+      "nouveau-experimental" # Nouveau (aka NVK)
       "swrast" # software renderer (aka Lavapipe)
     ]
     ++ lib.optionals (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") [
@@ -66,6 +68,7 @@
 , enableOpenCL ? stdenv.isLinux && stdenv.isx86_64
 , enablePatentEncumberedCodecs ? true
 , jdupes
+, rustPlatform
 , rust-bindgen
 , rustc
 , spirv-llvm-translator
@@ -74,20 +77,12 @@
 , udev
 }:
 
-/** Packaging design:
-  - The basic mesa ($out) contains headers and libraries (GLU is in libGLU now).
-    This or the mesa attribute (which also contains GLU) are small (~ 2 MB, mostly headers)
-    and are designed to be the buildInput of other packages.
-  - DRI drivers are compiled into $drivers output, which is much bigger and
-    depends on LLVM. These should be searched at runtime in
-    "/run/opengl-driver{,-32}/lib/*" and so are kind-of impure (given by NixOS).
-    (I suppose on non-NixOS one would create the appropriate symlinks from there.)
-  - libOSMesa is in $osmesa (~4 MB)
-*/
+# When updating this package, please verify at least these build (assuming x86_64-linux):
+# nix build .#mesa .#pkgsi686Linux.mesa .#pkgsCross.aarch64-multiplatform.mesa .#pkgsMusl.mesa
 
 let
-  version = "23.3.5";
-  hash = "sha256-acyxJ4ZB/1utccoPhmGIrrGpKq3E27nTX1CuvsW4tQ8=";
+  version = "24.0.1";
+  hash = "sha256-84cZKwjEccVFWQ3RIjCio0MkSAS1/oZv7GrqAuq1dhM=";
 
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
@@ -98,6 +93,37 @@ let
   haveWayland = lib.elem "wayland" eglPlatforms;
   haveZink = lib.elem "zink" galliumDrivers;
   haveDozen = (lib.elem "d3d12" galliumDrivers) || (lib.elem "microsoft-experimental" vulkanDrivers);
+
+  rustDeps = [
+    {
+      pname = "proc-macro2";
+      version = "1.0.70";
+      hash = "sha256-e4ZgyZUTu5nAtaH5QVkLelqJQX/XPj/rWkzf/g2c+1g=";
+    }
+    {
+      pname = "quote";
+      version = "1.0.33";
+      hash = "sha256-VWRCZJO0/DJbNu0/V9TLaqlwMot65YjInWT9VWg57DY=";
+    }
+    {
+    pname = "syn";
+      version = "2.0.39";
+      hash = "sha256-Mjen2L/omhVbhU/+Ao65mogs3BP3fY+Bodab3uU63EI=";
+    }
+    {
+      pname = "unicode-ident";
+      version = "1.0.12";
+      hash = "sha256-KX8NqYYw6+rGsoR9mdZx8eT1HIPEUUyxErdk2H/Rlj8=";
+    }
+  ];
+
+  copyRustDep = dep: ''
+    cp -R --no-preserve=mode,ownership ${fetchCrate dep} subprojects/${dep.pname}-${dep.version}
+    cp -R subprojects/packagefiles/${dep.pname}/* subprojects/${dep.pname}-${dep.version}/
+  '';
+
+  copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps);
+
 self = stdenv.mkDerivation {
   pname = "mesa";
   inherit version;
@@ -113,22 +139,8 @@ self = stdenv.mkDerivation {
     inherit hash;
   };
 
-  # TODO:
-  #  revive ./dricore-gallium.patch when it gets ported (from Ubuntu), as it saved
-  #  ~35 MB in $drivers; watch https://launchpad.net/ubuntu/+source/mesa/+changelog
   patches = [
-    # fixes pkgsMusl.mesa build
-    ./musl.patch
-
     ./opencl.patch
-
-    # Backports to fix build
-    # FIXME: remove when applied upstream
-
-    # Fix build on macOS
-    ./backports/0001-dri-added-build-dependencies-for-systems-using-non-s.patch
-    ./backports/0002-util-Update-util-libdrm.h-stubs-to-allow-loader.c-to.patch
-    ./backports/0003-glx-fix-automatic-zink-fallback-loading-between-hw-a.patch
   ];
 
   postPatch = ''
@@ -141,6 +153,8 @@ self = stdenv.mkDerivation {
       "get_option('datadir')" "'${placeholder "out"}/share'"
     substituteInPlace src/amd/vulkan/meson.build --replace \
       "get_option('datadir')" "'${placeholder "out"}/share'"
+
+    ${copyRustDeps}
   '';
 
   outputs = [ "out" "dev" "drivers" ]
@@ -152,15 +166,15 @@ self = stdenv.mkDerivation {
     # in case anything wants to use it at some point
     ++ lib.optional haveDozen "spirv2dxil";
 
-  # FIXME: this fixes rusticl/iris segfaulting on startup, _somehow_.
-  # Needs more investigating.
+  # Keep build-ids so drivers can use them for caching, etc.
+  # Also some drivers segfault without this.
   separateDebugInfo = true;
 
+  # Needed to discover llvm-config for cross
   preConfigure = ''
     PATH=${llvmPackages.libllvm.dev}/bin:$PATH
   '';
 
-  # TODO: Figure out how to enable opencl without having a runtime dependency on clang
   mesonFlags = [
     "--sysconfdir=/etc"
     "--datadir=${placeholder "drivers"}/share" # Vendor files
@@ -212,21 +226,23 @@ self = stdenv.mkDerivation {
     "-Dopencl-spirv=true"
 
     # Rusticl, new OpenCL frontend
-    "-Dgallium-rusticl=true" "-Drust_std=2021"
+    "-Dgallium-rusticl=true"
     "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib"
   ]  ++ lib.optionals (!withValgrind) [
     "-Dvalgrind=disabled"
   ]  ++ lib.optionals (!withLibunwind) [
     "-Dlibunwind=disabled"
   ] ++ lib.optional enablePatentEncumberedCodecs
-    "-Dvideo-codecs=h264dec,h264enc,h265dec,h265enc,vc1dec"
+    "-Dvideo-codecs=all"
   ++ lib.optional (vulkanLayers != []) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}";
 
+  strictDeps = true;
+
   buildInputs = with xorg; [
     expat glslang llvmPackages.libllvm libglvnd xorgproto
     libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr
     libffi libvdpau libelf libXvMC
-    libpthreadstubs openssl /*or another sha1 provider*/
+    libpthreadstubs openssl
     zstd
   ] ++ lib.optionals withLibunwind [
     libunwind
@@ -240,15 +256,20 @@ self = stdenv.mkDerivation {
     ++ lib.optional haveDozen directx-headers;
 
   depsBuildBuild = [ pkg-config ]
-    ++ lib.optional enableOpenCL buildPackages.stdenv.cc;
+    # Adding this unconditionally makes x86_64-darwin pick up an older toolchain, as
+    # we explicitly call Mesa with 11.0 stdenv, but buildPackages is still 10.something,
+    # and Mesa can't build with that.
+    # FIXME: figure this out, or figure out how to get rid of Mesa on Darwin,
+    # whichever is easier.
+    ++ lib.optional (!stdenv.isDarwin) buildPackages.stdenv.cc;
 
   nativeBuildInputs = [
     meson pkg-config ninja
     intltool bison flex file
     python3Packages.python python3Packages.mako python3Packages.ply
     jdupes glslang
-  ] ++ lib.optionals enableOpenCL [ rust-bindgen rustc ]
-    ++ lib.optional haveWayland wayland-scanner;
+    rustc rust-bindgen rustPlatform.bindgenHook
+  ] ++ lib.optional haveWayland wayland-scanner;
 
   propagatedBuildInputs = with xorg; [
     libXdamage libXxf86vm
diff --git a/nixpkgs/pkgs/development/libraries/mesa/musl.patch b/nixpkgs/pkgs/development/libraries/mesa/musl.patch
deleted file mode 100644
index 687a159c1788..000000000000
--- a/nixpkgs/pkgs/development/libraries/mesa/musl.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
-index 06ca90564f0..bb244f8f358 100644
---- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
-+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
-@@ -30,6 +30,7 @@
- 
- #include <amdgpu.h>
- #include <pthread.h>
-+#include <sys/types.h>
- #include "util/list.h"
- #include "util/rwlock.h"
- #include "ac_gpu_info.h"
-diff --git a/src/gallium/drivers/freedreno/freedreno_util.h b/src/gallium/drivers/freedreno/freedreno_util.h
-index 22f99c41909..2f3195926be 100644
---- a/src/gallium/drivers/freedreno/freedreno_util.h
-+++ b/src/gallium/drivers/freedreno/freedreno_util.h
-@@ -108,6 +108,8 @@ extern bool fd_binning_enabled;
- #include <sys/types.h>
- #include <sys/syscall.h>
- 
-+#define gettid() ((pid_t)syscall(SYS_gettid))
-+
- #define DBG(fmt, ...)                                                          \
-    do {                                                                        \
-       if (FD_DBG(MSGS))                                                        \
-diff --git a/src/gallium/frontends/nine/nine_debug.c b/src/gallium/frontends/nine/nine_debug.c
-index f3a6a945025..f4a6c41a612 100644
---- a/src/gallium/frontends/nine/nine_debug.c
-+++ b/src/gallium/frontends/nine/nine_debug.c
-@@ -65,7 +65,7 @@ _nine_debug_printf( unsigned long flag,
- {
-     static boolean first = TRUE;
-     static unsigned long dbg_flags = DBG_ERROR | DBG_WARN;
--    unsigned long tid = 0;
-+    pthread_t tid = 0;
- 
-     if (first) {
-         first = FALSE;
-@@ -74,7 +74,7 @@ _nine_debug_printf( unsigned long flag,
- 
- #if defined(HAVE_PTHREAD)
-     if (dbg_flags & DBG_TID)
--        tid = (unsigned long)pthread_self();
-+        tid = pthread_self();
- #endif
- 
-     if (dbg_flags & flag) {
-diff --git a/src/util/rand_xor.c b/src/util/rand_xor.c
-index 81b64f1ea71..56ebd2eccdf 100644
---- a/src/util/rand_xor.c
-+++ b/src/util/rand_xor.c
-@@ -28,6 +28,7 @@
- #if defined(HAVE_GETRANDOM)
- #include <sys/random.h>
- #endif
-+#include <sys/types.h>         /* size_t, ssize_t */
- #include <unistd.h>
- #include <fcntl.h>
- #endif
diff --git a/nixpkgs/pkgs/development/libraries/mpdecimal/default.nix b/nixpkgs/pkgs/development/libraries/mpdecimal/default.nix
index 3a2e4b1fe7d0..514c61ffcb0c 100644
--- a/nixpkgs/pkgs/development/libraries/mpdecimal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpdecimal/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "mpdecimal";
-  version = "2.5.1";
+  version = "4.0.0";
   outputs = [ "out" "cxx" "doc" "dev" ];
 
   src = fetchurl {
     url = "https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-${version}.tar.gz";
-    hash = "sha256-n5zUwEH5m1xJ/7e1nZ8S2VtoPYhYVgiqVqYwdmeysh8=";
+    hash = "sha256-lCRFwyRbInMP1Bpnp8XCMdEcsbmTa5wPdjNPt9C0Row=";
   };
 
   configureFlags = [ "LD=${stdenv.cc.targetPrefix}cc" ];
diff --git a/nixpkgs/pkgs/development/libraries/mps/default.nix b/nixpkgs/pkgs/development/libraries/mps/default.nix
index 3cc6d9ce3510..fd6e5d60bf7b 100644
--- a/nixpkgs/pkgs/development/libraries/mps/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mps/default.nix
@@ -16,17 +16,17 @@ stdenv.mkDerivation rec {
     hash = "sha256-3ql3jWLccgnQHKf23B1en+nJ9rxqmHcWd7aBr93YER0=";
   };
 
+  postPatch = ''
+    # Disable -Werror to avoid biuld failure on fresh toolchains like
+    # gcc-13.
+    substituteInPlace code/gc.gmk --replace-fail '-Werror ' ' '
+    substituteInPlace code/gp.gmk --replace-fail '-Werror ' ' '
+    substituteInPlace code/ll.gmk --replace-fail '-Werror ' ' '
+  '';
+
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ sqlite ];
 
-  # needed for 1.116.0 to build with gcc7
-  env.NIX_CFLAGS_COMPILE = toString [
-    "-Wno-implicit-fallthrough"
-    "-Wno-error=clobbered"
-    "-Wno-error=cast-function-type"
-  ];
-
-
   meta = {
     description = "A flexible memory management and garbage collection library";
     homepage    = "https://www.ravenbrook.com/project/mps";
diff --git a/nixpkgs/pkgs/development/libraries/mvfst/default.nix b/nixpkgs/pkgs/development/libraries/mvfst/default.nix
new file mode 100644
index 000000000000..6b6e2d9c9e57
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mvfst/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, fizz
+, folly
+, gflags
+, glog
+, libsodium
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mvfst";
+  version = "2024.01.22.00";
+
+  src = fetchFromGitHub {
+    owner = "facebook";
+    repo = "mvfst";
+    rev = "v${version}";
+    sha256 = "sha256-vhLwxA91v+vt5PQejhPOaj9YSkulg86hTD9GkpQKB24=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = lib.optionals stdenv.isDarwin [
+    "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
+  ];
+
+  buildInputs = [
+    fizz
+    folly
+    folly.boost
+    folly.fmt
+    gflags
+    glog
+    libsodium
+    zlib
+  ];
+
+  meta = with lib; {
+    description = "An implementation of the QUIC transport protocol";
+    homepage = "https://github.com/facebook/mvfst";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/nco/default.nix b/nixpkgs/pkgs/development/libraries/nco/default.nix
index 87f0b8b3a031..74f6c21d86e9 100644
--- a/nixpkgs/pkgs/development/libraries/nco/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nco/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "nco";
-  version = "5.2.0";
+  version = "5.2.1";
 
   src = fetchFromGitHub {
     owner = "nco";
     repo = "nco";
     rev = finalAttrs.version;
-    hash = "sha256-eYGGIf7OXaLFu4XleCMw1Y4rCjGkWhOnvqixGExk1kk=";
+    hash = "sha256-6j9gBvhNTww9nOKMcCvOxoLJwU/3RtS6OvofjrpZhmk=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/nss/esr.nix b/nixpkgs/pkgs/development/libraries/nss/esr.nix
index 63308f385036..95c9aa0e1997 100644
--- a/nixpkgs/pkgs/development/libraries/nss/esr.nix
+++ b/nixpkgs/pkgs/development/libraries/nss/esr.nix
@@ -1,4 +1,4 @@
 import ./generic.nix {
-  version = "3.90.1";
-  hash = "sha256-5Fx0p2WP/LbGIqfhm6+zEab71UZPWBubCUGBEKQIsX8=";
+  version = "3.90.2";
+  hash = "sha256-4r/LhKilkSeEhw/rl2IRAn5xMJ74W5ACg7fX0e4GQxA=";
 }
diff --git a/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix b/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix
index dfacf433b77f..1b7caf2b9c84 100644
--- a/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ocl-icd/default.nix
@@ -5,6 +5,7 @@
 , opencl-headers
 , addOpenGLRunpath
 , autoreconfHook
+, windows
 }:
 
 stdenv.mkDerivation rec {
@@ -23,17 +24,21 @@ stdenv.mkDerivation rec {
     ruby
   ];
 
-  buildInputs = [ opencl-headers ];
+  buildInputs = [ opencl-headers ]
+    ++ lib.optionals stdenv.hostPlatform.isWindows [ windows.dlfcn ];
 
   configureFlags = [
     "--enable-custom-vendordir=/run/opengl-driver/etc/OpenCL/vendors"
   ];
 
+  # fixes: can't build x86_64-w64-mingw32 shared library unless -no-undefined is specified
+  makeFlags = lib.optionals stdenv.hostPlatform.isWindows [ "LDFLAGS=-no-undefined" ];
+
   meta = with lib; {
     description = "OpenCL ICD Loader for ${opencl-headers.name}";
     homepage    = "https://github.com/OCL-dev/ocl-icd";
     license     = licenses.bsd2;
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     maintainers = with maintainers; [ r-burns ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
index af4d061d015b..f804dcdc1d4b 100644
--- a/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
@@ -70,16 +70,6 @@ let
     hash = "sha256-L1B5Y/c897Jg9fGwT2J3+vaXsZ+lfXnskp8Gto1p/Tg=";
   };
 
-  gtest' = gtest.overrideAttrs (oldAttrs: rec {
-    version = "1.13.0";
-    src = fetchFromGitHub {
-      owner = "google";
-      repo = "googletest";
-      rev = "v${version}";
-      hash = "sha256-LVLEn+e7c8013pwiLzJiiIObyrlbBHYaioO/SWbItPQ=";
-    };
-  });
-
   onnx = fetchFromGitHub {
     owner = "onnx";
     repo = "onnx";
@@ -143,7 +133,7 @@ effectiveStdenv.mkDerivation rec {
     nlohmann_json
     microsoft-gsl
   ] ++ lib.optionals pythonSupport (with python3Packages; [
-    gtest'
+    gtest
     numpy
     pybind11
     packaging
diff --git a/nixpkgs/pkgs/development/libraries/openbabel/default.nix b/nixpkgs/pkgs/development/libraries/openbabel/default.nix
index fe12bbffa531..f472f7b06364 100644
--- a/nixpkgs/pkgs/development/libraries/openbabel/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openbabel/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, lib, fetchFromGitHub, cmake, zlib, libxml2, eigen, python, cairo, pcre, pkg-config, swig, rapidjson }:
+{ stdenv, lib, fetchFromGitHub, cmake, perl, zlib, libxml2, eigen, python, cairo, pcre, pkg-config, swig, rapidjson }:
 
 stdenv.mkDerivation rec {
   pname = "openbabel";
-  version = "3.1.1";
+  version = "unstable-06-12-23";
 
   src = fetchFromGitHub {
     owner = "openbabel";
-    repo = "openbabel";
-    rev = "openbabel-${lib.replaceStrings ["."] ["-"] version}";
-    sha256 = "sha256-wQpgdfCyBAoh4pmj9j7wPTlMtraJ62w/EShxi/olVMY=";
+    repo = pname;
+    rev = "32cf131444c1555c749b356dab44fb9fe275271f";
+    hash = "sha256-V0wrZVrojCZ9Knc5H6cPzPoYWVosRZ6Sn4PX+UFEfHY=";
   };
 
   postPatch = ''
     sed '1i#include <ctime>' -i include/openbabel/obutil.h # gcc12
   '';
 
-  buildInputs = [ zlib libxml2 eigen python cairo pcre swig rapidjson ];
+  buildInputs = [ perl zlib libxml2 eigen python cairo pcre swig rapidjson ];
 
   nativeBuildInputs = [ cmake pkg-config ];
 
@@ -26,13 +26,15 @@ stdenv.mkDerivation rec {
     "-DPYTHON_BINDINGS=ON"
   ];
 
+  # Setuptools only accepts PEP 440 version strings. The "unstable" identifier
+  # can not be used. Instead we pretend to be the 3.2 beta release.
   postFixup = ''
     cat <<EOF > $out/lib/python$pythonMajorMinor/site-packages/setup.py
     from distutils.core import setup
 
     setup(
         name = 'pyopenbabel',
-        version = '${version}',
+        version = '3.2b1',
         packages = ['openbabel'],
         package_data = {'openbabel' : ['_openbabel.so']}
     )
diff --git a/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix b/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
index 6a00c86105a8..b13dc2bb8dd7 100644
--- a/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Khronos OpenCL headers version ${finalAttrs.version}";
     homepage = "https://www.khronos.org/registry/cl/";
     license = licenses.asl20;
-    platforms = platforms.unix;
+    platforms = platforms.unix ++ platforms.windows;
     maintainers = [ ];
   };
 })
diff --git a/nixpkgs/pkgs/development/libraries/opencolorio/default.nix b/nixpkgs/pkgs/development/libraries/opencolorio/default.nix
index 21f50a6fe8a3..a5661d6e44e6 100644
--- a/nixpkgs/pkgs/development/libraries/opencolorio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencolorio/default.nix
@@ -45,6 +45,8 @@ stdenv.mkDerivation rec {
     # Workaround for https://gitlab.kitware.com/cmake/cmake/-/issues/25200.
     # Needed for zlib >= 1.3 && cmake < 3.27.4.
     ./broken-cmake-zlib-version.patch
+    # Fix incorrect line number in test
+    ./line-numbers.patch
   ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/libraries/opencolorio/line-numbers.patch b/nixpkgs/pkgs/development/libraries/opencolorio/line-numbers.patch
new file mode 100644
index 000000000000..21b6820b4f86
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opencolorio/line-numbers.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/cpu/fileformats/FileFormatCTF_tests.cpp b/tests/cpu/fileformats/FileFormatCTF_tests.cpp
+index 7a7ab67b..18c1f55e 100644
+--- a/tests/cpu/fileformats/FileFormatCTF_tests.cpp
++++ b/tests/cpu/fileformats/FileFormatCTF_tests.cpp
+@@ -1416,7 +1416,7 @@ OCIO_ADD_TEST(FileFormatCTF, difficult_xml_unknown_elements)
+             "(37): Unrecognized element 'just_ignore' where its parent is 'ProcessList' (8): Unknown element",
+             "(69): Unrecognized element 'just_ignore' where its parent is 'Description' (66)",
+             "(70): Unrecognized element 'just_ignore' where its parent is 'just_ignore' (69)",
+-            "(75): Unrecognized element 'Matrix' where its parent is 'LUT1D' (43): 'Matrix' not allowed in this element",
++            "(75): Unrecognized element 'Matrix' where its parent is 'LUT1D' (46): 'Matrix' not allowed in this element",
+             "(76): Unrecognized element 'Description' where its parent is 'Matrix' (75)",
+             "(77): Unrecognized element 'Array' where its parent is 'Matrix' (75)"
+         };
diff --git a/nixpkgs/pkgs/development/libraries/opencv/4.x.nix b/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
index 7bb2649ff894..2f24d984c062 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
@@ -2,14 +2,14 @@
 , stdenv
 , fetchurl
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , unzip
 , zlib
-, pcre
+, pcre2
 , hdf5
 , boost
+, glib
 , gflags
 , protobuf_21
 , config
@@ -35,6 +35,8 @@
 , eigen
 , enableBlas ? true
 , blas
+, enableVA ? !stdenv.isDarwin
+, libva
 , enableContrib ? true
 
 , enableCuda ? config.cudaSupport
@@ -58,7 +60,11 @@
 , enableFfmpeg ? true
 , ffmpeg
 , enableGStreamer ? true
+, elfutils
 , gst_all_1
+, orc
+, libunwind
+, zstd
 , enableTesseract ? false
 , tesseract
 , leptonica
@@ -85,7 +91,7 @@
 }@inputs:
 
 let
-  version = "4.7.0";
+  version = "4.9.0";
 
   # It's necessary to consistently use backendStdenv when building with CUDA
   # support, otherwise we get libstdc++ errors downstream
@@ -96,21 +102,21 @@ let
     owner = "opencv";
     repo = "opencv";
     rev = version;
-    sha256 = "sha256-jUeGsu8+jzzCnIFbVMCW8DcUeGv/t1yCY/WXyW+uGDI=";
+    hash = "sha256-3qqu4xlRyMbPKHHTIT+iRRGtpFlcv0NU8GNZpgjdi6k=";
   };
 
   contribSrc = fetchFromGitHub {
     owner = "opencv";
     repo = "opencv_contrib";
     rev = version;
-    sha256 = "sha256-meya0J3RdOIeMM46e/6IOVwrKn3t/c0rhwP2WQaybkE=";
+    hash = "sha256-K74Ghk4uDqj4OWEzDxT2R3ERi+jkAWZszzezRenfuZ8=";
   };
 
   testDataSrc = fetchFromGitHub {
     owner = "opencv";
     repo = "opencv_extra";
     rev = version;
-    sha256 = "sha256-6hAdJdaUgtRGQanQKuY/q6fcXWXFZ3K/oLbGxvksry0=";
+    hash = "sha256-pActKi7aN5EOZq2Fpf5mALnZq71c037/R3Q6wJ4uCfQ=";
   };
 
   # Contrib must be built in order to enable Tesseract support:
@@ -121,16 +127,16 @@ let
     src = fetchFromGitHub {
       owner = "opencv";
       repo = "opencv_3rdparty";
-      rev = "a56b6ac6f030c312b2dce17430eef13aed9af274";
-      sha256 = "1msbkc3zixx61rcg6a04i1bcfhw1phgsrh93glq1n80hgsk3nbjq";
+      rev = "0cc4aa06bf2bef4b05d237c69a5a96b9cd0cb85a";
+      hash = "sha256-/kHivOgCkY9YdcRRaVgytXal3ChE9xFfGAB0CfFO5ec=";
     } + "/ippicv";
-    files = let name = platform: "ippicv_2019_${platform}_general_20180723.tgz"; in
+    files = let name = platform: "ippicv_2021.10.0_${platform}_20230919_general.tgz"; in
       if effectiveStdenv.hostPlatform.system == "x86_64-linux" then
-        { ${name "lnx_intel64"} = "c0bd78adb4156bbf552c1dfe90599607"; }
+        { ${name "lnx_intel64"} = "606a19b207ebedfe42d59fd916cc4850"; }
       else if effectiveStdenv.hostPlatform.system == "i686-linux" then
-        { ${name "lnx_ia32"} = "4f38432c30bfd6423164b7a24bbc98a0"; }
+        { ${name "lnx_ia32"} = "ea08487b810baad2f68aca87b74a2db9"; }
       else if effectiveStdenv.hostPlatform.system == "x86_64-darwin" then
-        { ${name "mac_intel64"} = "fe6b2bb75ae0e3f19ad3ae1a31dfa4a2"; }
+        { ${name "mac_intel64"} = "14f01c5a4780bfae9dde9b0aaf5e56fc"; }
       else
         throw "ICV is not available for this platform (or not yet supported by this package)";
     dst = ".cache/ippicv";
@@ -142,7 +148,7 @@ let
       owner = "opencv";
       repo = "opencv_3rdparty";
       rev = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d";
-      sha256 = "0r9fam8dplyqqsd3qgpnnfgf9l7lj44di19rxwbm8mxiw0rlcdvy";
+      hash = "sha256-fjdGM+CxV1QX7zmF2AiR9NDknrP2PjyaxtjT21BVLmU=";
     };
     files = {
       "vgg_generated_48.i" = "e8d0dcd54d1bcfdc29203d011a797179";
@@ -179,7 +185,7 @@ let
       owner = "opencv";
       repo = "opencv_3rdparty";
       rev = "8afa57abc8229d611c4937165d20e2a2d9fc5a12";
-      sha256 = "061lsvqdidq9xa2hwrcvwi9ixflr2c2lfpc8drr159g68zi8bp4v";
+      hash = "sha256-m9yF4kfmpRJybohdRwUTmboeU+SbZQ6F6gm32PDWNBg=";
     };
     files = {
       "face_landmark_model.dat" = "7505c44ca4eb54b4ab1e4777cb96ac05";
@@ -191,10 +197,10 @@ let
   ade = rec {
     src = fetchurl {
       url = "https://github.com/opencv/ade/archive/${name}";
-      sha256 = "sha256-TjLRbFbC7MDY9PxIy560ryviBI58cbQwqgc7A7uOHkg=";
+      hash = "sha256-WG/GudVpkO10kOJhoKXFMj672kggvyRYCIpezal3wcE=";
     };
-    name = "v0.1.2a.zip";
-    md5 = "fa4b3e25167319cb0fa9432ef8281945";
+    name = "v0.1.2d.zip";
+    md5 = "dbb095a8bf3008e91edbbf45d8d34885";
     dst = ".cache/ade";
   };
 
@@ -204,7 +210,7 @@ let
       owner = "opencv";
       repo = "opencv_3rdparty";
       rev = "a8b69ccc738421293254aec5ddb38bd523503252";
-      sha256 = "sha256-/n6zHwf0Rdc4v9o4rmETzow/HTv+81DnHP+nL56XiTY=";
+      hash = "sha256-/n6zHwf0Rdc4v9o4rmETzow/HTv+81DnHP+nL56XiTY=";
     };
     files = {
       "detect.caffemodel" = "238e2b2d6f3c18d6c3a30de0c31e23cf";
@@ -260,20 +266,6 @@ effectiveStdenv.mkDerivation {
   patches = [
     ./cmake-don-t-use-OpenCVFindOpenEXR.patch
   ] ++ lib.optionals enableContrib [
-    (fetchpatch {
-      name = "CVE-2023-2617.patch";
-      url = "https://github.com/opencv/opencv_contrib/commit/ccc277247ac1a7aef0a90353edcdec35fbc5903c.patch";
-      stripLen = 2;
-      extraPrefix = [ "opencv_contrib/" ];
-      sha256 = "sha256-drZ+DVn+Pk4zAZJ+LgX5u3Tz7MU0AEI/73EVvxDP3AU=";
-    })
-    (fetchpatch {
-      name = "CVE-2023-2618.patch";
-      url = "https://github.com/opencv/opencv_contrib/commit/ec406fa4748fb4b0630c1b986469e7918d5e8953.patch";
-      stripLen = 2;
-      extraPrefix = [ "opencv_contrib/" ];
-      sha256 = "sha256-cB5Tsh2fDOsc0BNtSzd6U/QoCjkd9yMW1QutUU69JJ0=";
-    })
   ] ++ lib.optional enableCuda ./cuda_opt_flow.patch;
 
   # This prevents cmake from using libraries in impure paths (which
@@ -300,60 +292,104 @@ effectiveStdenv.mkDerivation {
     echo '"(build info elided)"' > modules/core/version_string.inc
   '';
 
-  buildInputs = [ zlib pcre boost gflags protobuf_21 ]
-    ++ lib.optional enablePython pythonPackages.python
-    ++ lib.optional (effectiveStdenv.buildPlatform == effectiveStdenv.hostPlatform) hdf5
-    ++ lib.optional enableGtk2 gtk2
-    ++ lib.optional enableGtk3 gtk3
-    ++ lib.optional enableVtk vtk
-    ++ lib.optional enableJPEG libjpeg
-    ++ lib.optional enablePNG libpng
-    ++ lib.optional enableTIFF libtiff
-    ++ lib.optional enableWebP libwebp
-    ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableJPEG2000 openjpeg
-    ++ lib.optional enableFfmpeg ffmpeg
-    ++ lib.optionals (enableFfmpeg && effectiveStdenv.isDarwin)
-      [ VideoDecodeAcceleration bzip2 ]
-    ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good ])
-    ++ lib.optional enableOvis ogre
-    ++ lib.optional enableGPhoto2 libgphoto2
-    ++ lib.optional enableDC1394 libdc1394
-    ++ lib.optional enableEigen eigen
-    ++ lib.optional enableBlas blas.provider
+  buildInputs = [
+    boost
+    gflags
+    glib
+    pcre2
+    protobuf_21
+    zlib
+  ] ++ lib.optionals enablePython [
+    pythonPackages.python
+  ] ++ lib.optionals (effectiveStdenv.buildPlatform == effectiveStdenv.hostPlatform) [
+    hdf5
+  ] ++ lib.optionals enableGtk2 [
+    gtk2
+  ] ++ lib.optionals enableGtk3 [
+    gtk3
+  ] ++ lib.optionals enableVtk [
+    vtk
+  ] ++ lib.optionals enableJPEG [
+    libjpeg
+  ] ++ lib.optionals enablePNG [
+    libpng
+  ] ++ lib.optionals enableTIFF [
+    libtiff
+  ] ++ lib.optionals enableWebP [
+    libwebp
+  ] ++ lib.optionals enableEXR [
+    openexr
+    ilmbase
+  ] ++ lib.optionals enableJPEG2000 [
+    openjpeg
+  ] ++ lib.optionals enableFfmpeg [
+    ffmpeg
+  ] ++ lib.optionals (enableFfmpeg && effectiveStdenv.isDarwin) [
+    bzip2
+    VideoDecodeAcceleration
+  ] ++ lib.optionals (enableGStreamer && effectiveStdenv.isLinux) (with gst_all_1; [
+    elfutils
+    gst-plugins-base
+    gst-plugins-good
+    gstreamer
+    libunwind
+    orc
+    zstd
+  ]) ++ lib.optionals enableOvis [
+    ogre
+  ] ++ lib.optionals enableGPhoto2 [
+    libgphoto2
+  ] ++ lib.optionals enableDC1394 [
+    libdc1394
+  ] ++ lib.optionals enableEigen [
+    eigen
+  ] ++ lib.optionals enableVA [
+    libva
+  ] ++ lib.optionals enableBlas [
+    blas.provider
+  ] ++ lib.optionals enableTesseract [
     # There is seemingly no compile-time flag for Tesseract.  It's
     # simply enabled automatically if contrib is built, and it detects
     # tesseract & leptonica.
-    ++ lib.optionals enableTesseract [ tesseract leptonica ]
-    ++ lib.optional enableTbb tbb
-    ++ lib.optionals effectiveStdenv.isDarwin [
-      bzip2 AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox Accelerate
-    ]
-    ++ lib.optionals enableDocs [ doxygen graphviz-nox ]
-    ++ lib.optionals enableCuda (with cudaPackages; [
-      cuda_cudart.lib
-      cuda_cudart.dev
-      cuda_cccl.dev # <thrust/*>
-      libnpp.dev # npp.h
-      libnpp.lib
-      libnpp.static
-      nvidia-optical-flow-sdk
-    ] ++ lib.optionals enableCublas [
-      # May start using the default $out instead once
-      # https://github.com/NixOS/nixpkgs/issues/271792
-      # has been addressed
-      libcublas.static
-      libcublas.lib
-      libcublas.dev # cublas_v2.h
-    ] ++ lib.optionals enableCudnn [
-      cudnn.dev # cudnn.h
-      cudnn.lib
-      cudnn.static
-    ] ++ lib.optionals enableCufft [
-      libcufft.dev # cufft.h
-      libcufft.lib
-      libcufft.static
-    ]);
+    tesseract
+    leptonica
+  ] ++ lib.optionals enableTbb [
+    tbb
+  ] ++ lib.optionals effectiveStdenv.isDarwin [
+    bzip2
+    AVFoundation
+    Cocoa
+    VideoDecodeAcceleration
+    CoreMedia
+    MediaToolbox
+    Accelerate
+  ] ++ lib.optionals enableDocs [
+    doxygen
+    graphviz-nox
+  ] ++ lib.optionals enableCuda (with cudaPackages; [
+    cuda_cudart.lib
+    cuda_cudart.dev
+    cuda_cccl.dev # <thrust/*>
+    libnpp.dev # npp.h
+    libnpp.lib
+    libnpp.static
+    nvidia-optical-flow-sdk
+  ] ++ lib.optionals enableCublas [
+    # May start using the default $out instead once
+    # https://github.com/NixOS/nixpkgs/issues/271792
+    # has been addressed
+    libcublas.static
+    libcublas.lib
+    libcublas.dev # cublas_v2.h
+  ] ++ lib.optionals enableCudnn [
+    cudnn.dev # cudnn.h
+    cudnn.lib
+    cudnn.static
+  ] ++ lib.optionals enableCufft [
+    libcufft.dev # cufft.h
+    libcufft.lib
+    libcufft.static
+  ]);
 
   propagatedBuildInputs = lib.optionals enablePython [ pythonPackages.numpy ];
 
diff --git a/nixpkgs/pkgs/development/libraries/openexr/3.nix b/nixpkgs/pkgs/development/libraries/openexr/3.nix
index 826c7b2c854f..a59c9795b223 100644
--- a/nixpkgs/pkgs/development/libraries/openexr/3.nix
+++ b/nixpkgs/pkgs/development/libraries/openexr/3.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openexr";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "openexr";
     rev = "v${version}";
-    hash = "sha256-ycn2RbHM/vIDUGGGnfNZ0Zm0qjjKRRNhkMD11PkpGF0=";
+    hash = "sha256-7KBjZpImSaW4GiK0ZCpMcjBPQ9aMmN5LW+/m6lkGK68=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/openh264/default.nix b/nixpkgs/pkgs/development/libraries/openh264/default.nix
deleted file mode 100644
index c250b31ecd71..000000000000
--- a/nixpkgs/pkgs/development/libraries/openh264/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, nasm, windows }:
-
-stdenv.mkDerivation rec {
-  pname = "openh264";
-  version = "2.4.0";
-
-  src = fetchFromGitHub {
-    owner = "cisco";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-vPVHXATsSWmqKOAj09WRR5jCi2NU2lq0j4K15KBzARY=";
-  };
-
-  nativeBuildInputs = [ nasm ];
-
-  buildInputs = lib.optional stdenv.hostPlatform.isWindows windows.pthreads;
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "ARCH=${stdenv.hostPlatform.linuxArch}"
-  ] ++ lib.optional stdenv.hostPlatform.isWindows "OS=mingw_nt";
-
-  enableParallelBuilding = true;
-
-  hardeningDisable = lib.optional stdenv.hostPlatform.isWindows "stackprotector";
-
-  meta = with lib; {
-    description = "A codec library which supports H.264 encoding and decoding";
-    homepage = "https://www.openh264.org";
-    license = licenses.bsd2;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
index 62f45de2bebf..05a559103576 100644
--- a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
@@ -10,7 +10,7 @@
   tiffSupport ? true, libtiff,
   gdalSupport ? false, gdal,
   curlSupport ? true, curl,
-  colladaSupport ? false, collada-dom,
+  colladaSupport ? false, opencollada,
   opencascadeSupport ? false, opencascade-occt,
   ffmpegSupport ? false, ffmpeg,
   nvttSupport ? false, nvidia-texture-tools,
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional tiffSupport libtiff
     ++ lib.optional gdalSupport gdal
     ++ lib.optional curlSupport curl
-    ++ lib.optional colladaSupport collada-dom
+    ++ lib.optional colladaSupport opencollada
     ++ lib.optional opencascadeSupport opencascade-occt
     ++ lib.optional ffmpegSupport ffmpeg
     ++ lib.optional nvttSupport nvidia-texture-tools
diff --git a/nixpkgs/pkgs/development/libraries/pango/default.nix b/nixpkgs/pkgs/development/libraries/pango/default.nix
index 0fae50cdbfed..fc722257a9c1 100644
--- a/nixpkgs/pkgs/development/libraries/pango/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pango/default.nix
@@ -19,16 +19,17 @@
 , x11Support? !stdenv.isDarwin, libXft
 , withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
 , buildPackages, gobject-introspection
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "pango";
   version = "1.51.0";
 
   outputs = [ "bin" "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "dO/BCa5vkDu+avd+qirGCUuO4kWi4j8TKnqPCGLRqfU=";
   };
 
@@ -93,10 +94,15 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = finalAttrs.pname;
       # 1.90 is alpha for API 2.
       freeze = "1.90.0";
     };
+    tests = {
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
+    };
   };
 
   meta = with lib; {
@@ -125,4 +131,4 @@ stdenv.mkDerivation rec {
       "pangoxft"
     ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/pdal/default.nix b/nixpkgs/pkgs/development/libraries/pdal/default.nix
index edb2c866bdc1..83d451080c20 100644
--- a/nixpkgs/pkgs/development/libraries/pdal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pdal/default.nix
@@ -28,13 +28,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pdal";
-  version = "2.6.2";
+  version = "2.6.3";
 
   src = fetchFromGitHub {
     owner = "PDAL";
     repo = "PDAL";
     rev = finalAttrs.version;
-    sha256 = "sha256-bYTSmrel8MLza+OxO+aOSsnkahjjqRRqUiVwAk23Gxk=";
+    sha256 = "sha256-wrgEbCYOGW1yrVxyX+UDa5jcUqab3letEGuvWnYvtac=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
index 76a4d71b38e4..a59b34147a9f 100644
--- a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rivet";
-  version = "3.1.9";
+  version = "3.1.10";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/rivet/Rivet-${version}.tar.bz2";
-    hash = "sha256-9lMgRdph7rKtwgqavEFmtLLUGrLByltQDNYWuxuS57E=";
+    hash = "sha256-RYuODfHec46ZctJLJg6qCH3xLJnU/p3uU3fUfqakmRk=";
   };
 
   latex = texliveBasic.withPackages (ps: with ps; [
diff --git a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
index 68f4e3714e09..a6ad9cbd9274 100644
--- a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yoda";
-  version = "1.9.9";
+  version = "1.9.10";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/yoda/YODA-${version}.tar.bz2";
-    hash = "sha256-68rVU2mhztzuOi3gWUB8hRZSukRJURP1wJ2MLlf1Fqo=";
+    hash = "sha256-CnCO6dcElF0zh8xDexX/3fOCxw/lurOe0r2/g8LCjG8=";
   };
 
   nativeBuildInputs = with python.pkgs; [
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index 4cfcf9b3a6d8..7b470f836756 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -18,6 +18,7 @@
 , libusb1
 , udev
 , libsndfile
+, vulkanSupport ? true
 , vulkan-headers
 , vulkan-loader
 , webrtc-audio-processing
@@ -125,8 +126,6 @@ stdenv.mkDerivation(finalAttrs: {
     ncurses
     readline
     udev
-    vulkan-headers
-    vulkan-loader
     tinycompress
   ] ++ (if enableSystemd then [ systemd ] else [ eudev ])
   ++ (if lib.meta.availableOn stdenv.hostPlatform webrtc-audio-processing_1 then [ webrtc-audio-processing_1 ] else [ webrtc-audio-processing ])
@@ -140,6 +139,7 @@ stdenv.mkDerivation(finalAttrs: {
   ++ lib.optional zeroconfSupport avahi
   ++ lib.optional raopSupport openssl
   ++ lib.optional rocSupport roc-toolkit
+  ++ lib.optionals vulkanSupport [ vulkan-headers vulkan-loader ]
   ++ lib.optionals x11Support [ libcanberra xorg.libX11 xorg.libXfixes ]
   ++ lib.optional mysofaSupport libmysofa
   ++ lib.optional ffadoSupport ffado;
@@ -175,7 +175,7 @@ stdenv.mkDerivation(finalAttrs: {
     (lib.mesonOption "sysconfdir" "/etc")
     (lib.mesonEnable "raop" raopSupport)
     (lib.mesonOption "session-managers" "")
-    (lib.mesonEnable "vulkan" true)
+    (lib.mesonEnable "vulkan" vulkanSupport)
     (lib.mesonEnable "x11" x11Support)
     (lib.mesonEnable "x11-xfixes" x11Support)
     (lib.mesonEnable "libcanberra" x11Support)
diff --git a/nixpkgs/pkgs/development/libraries/pixman/default.nix b/nixpkgs/pkgs/development/libraries/pixman/default.nix
index 1b5aaaaa06d4..0a15876db963 100644
--- a/nixpkgs/pkgs/development/libraries/pixman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pixman/default.nix
@@ -16,14 +16,15 @@
 , xwayland
 
 , gitUpdater
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "pixman";
   version = "0.43.2";
 
   src = fetchurl {
-    urls = [
+    urls = with finalAttrs; [
       "mirror://xorg/individual/lib/${pname}-${version}.tar.gz"
       "https://cairographics.org/releases/${pname}-${version}.tar.gz"
     ];
@@ -60,6 +61,9 @@ stdenv.mkDerivation rec {
   passthru = {
     tests = {
       inherit cairo qemu scribus tigervnc wlroots xwayland;
+      pkg-config = testers.hasPkgConfigModules {
+        package = finalAttrs.finalPackage;
+      };
     };
     updateScript = gitUpdater {
       url = "https://gitlab.freedesktop.org/pixman/pixman.git";
@@ -72,5 +76,6 @@ stdenv.mkDerivation rec {
     description = "A low-level library for pixel manipulation";
     license = licenses.mit;
     platforms = platforms.all;
+    pkgConfigModules = [ "pixman-1" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/protozero/default.nix b/nixpkgs/pkgs/development/libraries/protozero/default.nix
index 1e35ab700a08..ed3e67fdeed1 100644
--- a/nixpkgs/pkgs/development/libraries/protozero/default.nix
+++ b/nixpkgs/pkgs/development/libraries/protozero/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
       "https://github.com/mapbox/protozero/releases/tag/v${version}"
       "https://github.com/mapbox/protozero/blob/v${version}/CHANGELOG.md"
     ];
-    maintainers = with maintainers; [ das-g ];
+    maintainers = with maintainers; teams.geospatial.members ++ [ das-g ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs-generated.json b/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
index 55ff3497baba..63a284be6c80 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
@@ -16,8 +16,8 @@
   },
   "qtbase": {
     "url": "https://invent.kde.org/qt/qt/qtbase.git",
-    "rev": "8907dedc858cc344d770a2e826d6acc516429540",
-    "sha256": "185fmglzb3blfpk6vjd716xr4cx4grxpbqji5idddl4887w18s91"
+    "rev": "a43df98d037ad07cf096ef2f775958ceba743613",
+    "sha256": "01bjkfb7ql1f168q67d5jr2xjfrn8bvh1ggiba0algkgll8alad4"
   },
   "qtcharts": {
     "url": "https://invent.kde.org/qt/qt/qtcharts.git",
@@ -161,8 +161,8 @@
   },
   "qtwayland": {
     "url": "https://invent.kde.org/qt/qt/qtwayland.git",
-    "rev": "c84d171fa84065fb3b4b6b3d33e7707676d87e47",
-    "sha256": "0vxqp5577xig4m0x9pmc04svjy58pi5f0wvc1b4sk61jhj8vib23"
+    "rev": "c8b37a1bda9b8f29d56775ed6556d56ac5d3ea1d",
+    "sha256": "15spjyc6gq1r5vdryhm21mhaim1iw24y80p0srp58qm9jwqg9dys"
   },
   "qtwebchannel": {
     "url": "https://invent.kde.org/qt/qt/qtwebchannel.git",
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/default.nix b/nixpkgs/pkgs/development/libraries/qt-6/default.nix
index 3f1cf19c29ab..8acc044894bc 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/default.nix
@@ -32,7 +32,7 @@ let
       callPackage = self.newScope ({
         inherit (self) qtModule;
         inherit srcs python3;
-        stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+        stdenv = if stdenv.hostPlatform.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
       });
     in
     {
@@ -109,7 +109,7 @@ let
         qtwebengine
         qtwebsockets
         qtwebview
-      ] ++ lib.optionals (!stdenv.isDarwin) [ qtwayland libglvnd ])) { };
+      ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwayland libglvnd ])) { };
 
       qt3d = callPackage ./modules/qt3d.nix { };
       qt5compat = callPackage ./modules/qt5compat.nix { };
@@ -163,7 +163,7 @@ let
           MediaAccessibility MediaPlayer MetalKit Network OpenDirectory Quartz
           ReplayKit SecurityInterface Vision;
         qtModule = callPackage ({ qtModule }: qtModule.override {
-          stdenv = if stdenv.isDarwin
+          stdenv = if stdenv.hostPlatform.isDarwin
             then overrideSDK stdenv { darwinMinVersion = "10.13"; darwinSdkVersion = "11.0"; }
             else stdenv;
         }) { };
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix
index 4b541ca6fec2..26fdeceda61f 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtbase.nix
@@ -21,7 +21,7 @@
 , double-conversion
 , util-linux
 , systemd
-, systemdSupport ? stdenv.isLinux
+, systemdSupport ? stdenv.hostPlatform.isLinux
 , libb2
 , md4c
 , mtdev
@@ -87,7 +87,7 @@
 , dconf
 , gtk3
   # options
-, libGLSupported ? stdenv.isLinux
+, libGLSupported ? stdenv.hostPlatform.isLinux
 , libGL
 , debug ? false
 , developerBuild ? false
@@ -132,7 +132,7 @@ stdenv.mkDerivation rec {
     unixODBCDrivers.mariadb
   ] ++ lib.optionals systemdSupport [
     systemd
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
     util-linux
     mtdev
     lksctp-tools
@@ -165,7 +165,7 @@ stdenv.mkDerivation rec {
     xorg.libXtst
     xorg.xcbutilcursor
     libepoxy
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     AGL
     AVFoundation
     AppKit
@@ -178,9 +178,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     at-spi2-core
-  ] ++ lib.optionals (!stdenv.isDarwin) [
+  ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
     libinput
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64) [
     AppKit
     CoreBluetooth
   ]
@@ -191,7 +191,7 @@ stdenv.mkDerivation rec {
   ++ lib.optional (postgresql != null) postgresql;
 
   nativeBuildInputs = [ bison flex gperf lndir perl pkg-config which cmake xmlstarlet ninja ]
-    ++ lib.optionals stdenv.isDarwin [ moveBuildTree ];
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
 
   propagatedNativeBuildInputs = [ lndir ];
 
@@ -204,7 +204,7 @@ stdenv.mkDerivation rec {
   # https://bugreports.qt.io/browse/QTBUG-97568
   postPatch = ''
     substituteInPlace src/corelib/CMakeLists.txt --replace-fail "/bin/ls" "${coreutils}/bin/ls"
-  '' + lib.optionalString stdenv.isDarwin ''
+  '' + lib.optionalString stdenv.hostPlatform.isDarwin ''
     substituteInPlace cmake/QtPublicAppleHelpers.cmake --replace-fail "/usr/bin/xcrun" "${xcbuild}/bin/xcrun"
   '';
 
@@ -225,16 +225,16 @@ stdenv.mkDerivation rec {
     "-DQT_FEATURE_libproxy=ON"
     "-DQT_FEATURE_system_sqlite=ON"
     "-DQT_FEATURE_openssl_linked=ON"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
+  ] ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
     "-DQT_FEATURE_sctp=ON"
     "-DQT_FEATURE_journald=${if systemdSupport then "ON" else "OFF"}"
     "-DQT_FEATURE_vulkan=ON"
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     # error: 'path' is unavailable: introduced in macOS 10.15
     "-DQT_FEATURE_cxx17_filesystem=OFF"
   ] ++ lib.optional (qttranslations != null) "-DINSTALL_TRANSLATIONSDIR=${qttranslations}/translations";
 
-  env.NIX_LDFLAGS = toString (lib.optionals stdenv.isDarwin [
+  env.NIX_LDFLAGS = toString (lib.optionals stdenv.hostPlatform.isDarwin [
     # Undefined symbols for architecture arm64: "___gss_c_nt_hostbased_service_oid_desc"
     "-framework GSS"
   ]);
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix
index 46d8f925beb0..126920dd5051 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtconnectivity.nix
@@ -12,11 +12,11 @@
 qtModule {
   pname = "qtconnectivity";
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = lib.optionals stdenv.isLinux [ bluez ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ bluez ];
   propagatedBuildInputs = [
     qtbase
     qtdeclarative
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     IOBluetooth
     PCSC
   ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
index f77fdac059ce..5c9a0e58a82c 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
@@ -28,15 +28,15 @@ qtModule {
   pname = "qtmultimedia";
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libunwind orc ffmpeg_6 ]
-    ++ lib.optionals stdenv.isLinux [ libpulseaudio elfutils alsa-lib wayland libXrandr libva ];
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ libpulseaudio elfutils alsa-lib wayland libXrandr libva ];
   propagatedBuildInputs = [ qtbase qtdeclarative qtsvg qtshadertools qtquick3d ]
-    ++ lib.optionals stdenv.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ]
-    ++ lib.optionals stdenv.isDarwin [ VideoToolbox ];
+    ++ lib.optionals stdenv.hostPlatform.isLinux [ gstreamer gst-plugins-base gst-plugins-good gst-libav gst-vaapi ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ VideoToolbox ];
 
   cmakeFlags = [ "-DENABLE_DYNAMIC_RESOLVE_VAAPI_SYMBOLS=0" ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin
+  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isDarwin
     "-include AudioToolbox/AudioToolbox.h";
-  NIX_LDFLAGS = lib.optionalString stdenv.isDarwin
+  NIX_LDFLAGS = lib.optionalString stdenv.hostPlatform.isDarwin
     "-framework AudioToolbox";
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix
index 05d121cd9b78..92d676f7c8e2 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtquick3dphysics.nix
@@ -8,6 +8,6 @@
 qtModule {
   pname = "qtquick3dphysics";
   propagatedBuildInputs = [ qtbase qtquick3d ];
-  env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isx86_64)
+  env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64)
     "-faligned-allocation";
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialport.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialport.nix
index 27b9eb9c1915..00f668ef5631 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialport.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtserialport.nix
@@ -9,5 +9,5 @@
 qtModule {
   pname = "qtserialport";
   nativeBuildInputs = [ pkg-config ];
-  propagatedBuildInputs = [ qtbase ] ++ lib.optionals stdenv.isLinux [ udev ];
+  propagatedBuildInputs = [ qtbase ] ++ lib.optionals stdenv.hostPlatform.isLinux [ udev ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtspeech.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtspeech.nix
index 77c08fa91951..15672de8b980 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtspeech.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtspeech.nix
@@ -13,7 +13,7 @@
 qtModule {
   pname = "qtspeech";
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = lib.optionals stdenv.isLinux [ flite alsa-lib speechd ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isLinux [ flite alsa-lib speechd ];
   propagatedBuildInputs = [ qtbase qtmultimedia ]
-    ++ lib.optionals stdenv.isDarwin [ Cocoa ];
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ Cocoa ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qttools.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qttools.nix
index a1aa1026e57b..f13500d65464 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qttools.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qttools.nix
@@ -16,7 +16,7 @@ qtModule {
     llvmPackages.llvm
   ];
   propagatedBuildInputs = [ qtbase qtdeclarative ]
-    ++ lib.optionals stdenv.isDarwin [ cups ];
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ cups ];
   patches = [
     ../patches/qttools-paths.patch
   ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index 64b5b9738caa..f07aeefa0be0 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -105,9 +105,9 @@ qtModule {
     which
     gn
     nodejs
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64) [
     autoSignDarwinBinariesHook
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     bootstrap_cmds
     cctools
     xcbuild
@@ -158,14 +158,14 @@ qtModule {
       --replace "QLibraryInfo::path(QLibraryInfo::TranslationsPath)" "\"$out/translations\"" \
       --replace "QLibraryInfo::path(QLibraryInfo::LibraryExecutablesPath)" "\"$out/libexec\""
   ''
-  + lib.optionalString stdenv.isLinux ''
+  + lib.optionalString stdenv.hostPlatform.isLinux ''
     sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
       src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
 
     sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
       src/3rdparty/chromium/gpu/config/gpu_info_collector_linux.cc
   ''
-  + lib.optionalString stdenv.isDarwin ''
+  + lib.optionalString stdenv.hostPlatform.isDarwin ''
     substituteInPlace configure.cmake src/gn/CMakeLists.txt \
       --replace "AppleClang" "Clang"
     substituteInPlace cmake/Functions.cmake \
@@ -190,7 +190,7 @@ qtModule {
     # "-DQT_FEATURE_webengine_native_spellchecker=ON"
     "-DQT_FEATURE_webengine_sanitizer=ON"
     "-DQT_FEATURE_webengine_kerberos=ON"
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
     "-DQT_FEATURE_webengine_system_libxml=ON"
     "-DQT_FEATURE_webengine_webrtc_pipewire=ON"
 
@@ -199,7 +199,7 @@ qtModule {
     "-DQT_FEATURE_webengine_system_icu=ON"
   ] ++ lib.optionals enableProprietaryCodecs [
     "-DQT_FEATURE_webengine_proprietary_codecs=ON"
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     "-DCMAKE_OSX_DEPLOYMENT_TARGET=${stdenv.hostPlatform.darwinSdkVersion}"
   ];
 
@@ -232,7 +232,7 @@ qtModule {
 
     libevent
     ffmpeg_4
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
     dbus
     zlib
     minizip
@@ -275,7 +275,7 @@ qtModule {
 
     libkrb5
     mesa
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     AGL
     AVFoundation
     Accelerate
@@ -302,7 +302,7 @@ qtModule {
 
   buildInputs = [
     cups
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
     libpm
     sandbox
   ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebview.nix b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebview.nix
index e8ebea932f03..dfc2da1df555 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebview.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/modules/qtwebview.nix
@@ -9,6 +9,6 @@
 qtModule {
   pname = "qtwebview";
   propagatedBuildInputs = [ qtdeclarative ]
-    ++ lib.optionals (!stdenv.isDarwin) [ qtwebengine ]
-    ++ lib.optionals stdenv.isDarwin [ WebKit ];
+    ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [ qtwebengine ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ WebKit ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-6/qtModule.nix b/nixpkgs/pkgs/development/libraries/qt-6/qtModule.nix
index 5434be84fa59..eb85f9d606cc 100644
--- a/nixpkgs/pkgs/development/libraries/qt-6/qtModule.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-6/qtModule.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (args // {
 
   buildInputs = args.buildInputs or [ ];
   nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ cmake ninja perl ]
-    ++ lib.optionals stdenv.isDarwin [ moveBuildTree ];
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ moveBuildTree ];
   propagatedBuildInputs =
     (lib.warnIf (args ? qtInputs) "qt6.qtModule's qtInputs argument is deprecated" args.qtInputs or []) ++
     (args.propagatedBuildInputs or []);
diff --git a/nixpkgs/pkgs/development/libraries/rapidjson/default.nix b/nixpkgs/pkgs/development/libraries/rapidjson/default.nix
index b200193aa211..edd427da725d 100644
--- a/nixpkgs/pkgs/development/libraries/rapidjson/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rapidjson/default.nix
@@ -43,7 +43,14 @@ stdenv.mkDerivation rec {
   # for tests, adding gtest to checkInputs does not work
   # https://github.com/NixOS/nixpkgs/pull/212200
   buildInputs = [ gtest ];
-  cmakeFlags = [ "-DGTEST_SOURCE_DIR=${gtest.dev}/include" ];
+  cmakeFlags = [
+    "-DGTEST_SOURCE_DIR=${gtest.dev}/include"
+
+    # Build rapidjson with std=c++17 so gtest 1.13.0+ works
+    # https://github.com/NixOS/nixpkgs/pull/282245#issuecomment-1951796902
+    "-DRAPIDJSON_BUILD_CXX11=OFF"
+    "-DRAPIDJSON_BUILD_CXX17=ON"
+  ];
 
   nativeCheckInputs = [ valgrind ];
   doCheck = !stdenv.hostPlatform.isStatic && !stdenv.isDarwin;
diff --git a/nixpkgs/pkgs/development/libraries/re2/default.nix b/nixpkgs/pkgs/development/libraries/re2/default.nix
index a1a22fb38e42..feb565076326 100644
--- a/nixpkgs/pkgs/development/libraries/re2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/re2/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "re2";
-  version = "2023-11-01";
+  version = "2024-02-01";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "re2";
     rev = version;
-    hash = "sha256-cKXe8r5MUag/z+seem4Zg/gmqIQjaCY7DBxiKlrnXPs=";
+    hash = "sha256-a6yo0zLgb193TDL8akselJuZfYqCjPwQ/FJ7+KexuLE=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/readline/6.3.nix b/nixpkgs/pkgs/development/libraries/readline/6.3.nix
deleted file mode 100644
index aff16c3e4184..000000000000
--- a/nixpkgs/pkgs/development/libraries/readline/6.3.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ fetchurl, lib, stdenv, ncurses }:
-
-stdenv.mkDerivation {
-  pname = "readline";
-  version = "6.3p08";
-
-  src = fetchurl {
-    url = "mirror://gnu/readline/readline-6.3.tar.gz";
-    sha256 = "0hzxr9jxqqx5sxsv9vmlxdnvlr9vi4ih1avjb869hbs6p5qn1fjn";
-  };
-
-  outputs = [ "out" "dev" "man" "doc" "info" ];
-
-  strictDeps = true;
-  propagatedBuildInputs = [ ncurses ];
-
-  patchFlags = [ "-p0" ];
-
-  configureFlags = lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
-    # This test requires running host code
-    "bash_cv_wcwidth_broken=no";
-
-  patches =
-    [ ./link-against-ncurses.patch
-      ./no-arch_only-6.3.patch
-    ] ++ lib.optional stdenv.hostPlatform.useAndroidPrebuilt ./android.patch
-    ++
-    (let
-       patch = nr: sha256:
-         fetchurl {
-           url = "mirror://gnu/readline/readline-6.3-patches/readline63-${nr}";
-           inherit sha256;
-         };
-     in
-       import ./readline-6.3-patches.nix patch);
-
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
-  };
-
-  meta = with lib; {
-    description = "Library for interactive line editing";
-
-    longDescription = ''
-      The GNU Readline library provides a set of functions for use by
-      applications that allow users to edit command lines as they are
-      typed in.  Both Emacs and vi editing modes are available.  The
-      Readline library includes additional functions to maintain a
-      list of previously-entered command lines, to recall and perhaps
-      reedit those lines, and perform csh-like history expansion on
-      previous commands.
-
-      The history facilities are also placed into a separate library,
-      the History library, as part of the build process.  The History
-      library may be used without Readline in applications which
-      desire its capabilities.
-    '';
-
-    homepage = "https://savannah.gnu.org/projects/readline/";
-
-    license = licenses.gpl3Plus;
-
-    maintainers = [ ];
-
-    platforms = platforms.unix;
-    branch = "6.3";
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/readline/android.patch b/nixpkgs/pkgs/development/libraries/readline/android.patch
deleted file mode 100644
index 7e81774be369..000000000000
--- a/nixpkgs/pkgs/development/libraries/readline/android.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git histlib.h histlib.h
-index c938a10..925ab72 100644
---- histlib.h
-+++ histlib.h
-@@ -51,9 +51,9 @@
- #endif
- 
- #ifndef member
--#  ifndef strchr
-+#  if !defined (strchr) && !defined (__STDC__)
- extern char *strchr ();
--#  endif
-+#  endif /* !strchr && !__STDC__ */
- #define member(c, s) ((c) ? ((char *)strchr ((s), (c)) != (char *)NULL) : 0)
- #endif
- 
diff --git a/nixpkgs/pkgs/development/libraries/readline/readline-6.3-patches.nix b/nixpkgs/pkgs/development/libraries/readline/readline-6.3-patches.nix
deleted file mode 100644
index d0aaaf38f706..000000000000
--- a/nixpkgs/pkgs/development/libraries/readline/readline-6.3-patches.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# Automatically generated by `update-patch-set.sh'; do not edit.
-
-patch: [
-(patch "001" "0vqlj22mkbn3x42qx2iqir7capx462dhagbzdw6hwxgfxavbny8s")
-(patch "002" "19g0l6vlfcqzwfwjj1slkmxzndjp4543hwrf26g8z216lp3h9qrr")
-(patch "003" "0bx53k876w8vwf4h2s6brr1i46ym87gi71bh8zl89n0gn3cbshgc")
-(patch "004" "1k2m8dg1awmjhmivdbx1c25866gfbpg0fy4845n8cw15zc3bjis5")
-(patch "005" "0jr7c28bzn882as5i54l53bhi723s1nkvzmwlh3rj6ld4bwqhxw7")
-(patch "006" "0mp5zgx50792gigkmjap3d0zpdv5qanii8djab7j6z69qsrpl8sw")
-(patch "007" "1sjv9w0mglh395i6hlq3ck7wdxvi2wyddlyb2j0jwg7cmnibayad")
-(patch "008" "11rpqhsxd132gc8455v51ma3a5zshznb0mh2p0zc5skcab7r7h1v")
-]
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix b/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix
index 7966cd4be5f6..e50bde243e85 100644
--- a/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cmake, zlib, eigen, libGL, doxygen, spglib
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, eigen, libGL, doxygen, spglib
 , mmtf-cpp, glew, python3, libarchive, libmsym, msgpack, qttools, wrapQtAppsHook
 }:
 
@@ -18,26 +18,43 @@ let
     rev = "1.0.1";
     sha256 = "sH/WuvLaYu6akOc3ssAKhnxD8KNoDxuafDSozHqJZC4=";
   };
+  fragmentsRepo = fetchFromGitHub {
+    owner = "OpenChemistry";
+    repo = "fragments";
+    rev = "8dc711a59d016604b3e9b6d59dec178b8e6ccd36";
+    hash = "sha256-Valc5zwlaZ//eDupFouCfWCeID7/4ObU1SDLFJ/mo/g=";
+  };
 
 in stdenv.mkDerivation rec {
   pname = "avogadrolibs";
-  version = "1.98.1";
+  version = "1.99.0";
 
   src = fetchFromGitHub {
     owner = "OpenChemistry";
     repo = pname;
     rev = version;
-    hash = "sha256-BuBMWW7N5Cu9tw5Vpwk+aoIaMWwHViRzLtIG7XDWjN4=";
+    hash = "sha256-3jUbzEd7tUeHlVFAO9KJ+LOQlkLzJQvwmHp8gOriZRI=";
   };
 
   postUnpack = ''
     cp -r ${moleculesRepo} molecules
     cp -r ${crystalsRepo} crystals
+    cp -r ${fragmentsRepo} fragments
   '';
 
+  patches = [
+    # Fix a Cmake error when searching the fragments directory.
+    # Can be removed upon next release
+    (fetchpatch {
+      url = "https://github.com/OpenChemistry/avogadrolibs/commit/6e2e84dbb088a40d69117c1836f4306792f57acd.patch";
+      hash = "sha256-0tY9kHh6e5IDZQ8cWPgTpwIBhfZQlgUEZbPHOmtOVUQ=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     wrapQtAppsHook
+    pythonWP
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch b/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch
new file mode 100644
index 000000000000..0f886a8a63a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch
@@ -0,0 +1,13 @@
+diff --git a/avogadro/qtplugins/templatetool/CMakeLists.txt b/avogadro/qtplugins/templatetool/CMakeLists.txt
+index 3f68e6dd..822de4e5 100644
+--- a/avogadro/qtplugins/templatetool/CMakeLists.txt
++++ b/avogadro/qtplugins/templatetool/CMakeLists.txt
+@@ -24,7 +24,7 @@ avogadro_plugin(TemplateTool
+ )
+ 
+ # Install the fragments
+-set(_fragments "${AvogadroLibs_SOURCE_DIR}/../fragments")
++set(_fragments "${AvogadroLibs_SOURCE_DIR}/fragments")
+ 
+ # Look in parallel directory for the molecule fragment repository
+ if(NOT EXISTS "${_fragments}")
diff --git a/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix b/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
index b5e2f4b80d3b..639497bb1f8c 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = [
-    "-DCMAKE_CXX_FLAGS=-std=c++11"
+    "-DCMAKE_CXX_FLAGS=-std=c++14"
     "-DBLAS_FOUND:BOOL=TRUE"
     "-DBLAS_LIBRARIES:STRING=${blas}/lib/libblas.so"
     "-DLAPACK_FOUND:BOOL=TRUE"
diff --git a/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix b/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix
index 7c1f7c0d3b40..03926aebbcea 100644
--- a/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix
+++ b/nixpkgs/pkgs/development/libraries/silgraphite/graphite2.nix
@@ -5,15 +5,15 @@
 , freetype
 , cmake
 , static ? stdenv.hostPlatform.isStatic
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   version = "1.3.14";
   pname = "graphite2";
 
   src = fetchurl {
-    url = "https://github.com/silnrsi/graphite/releases/download/"
-      + "${version}/graphite2-${version}.tgz";
+    url = with finalAttrs; "https://github.com/silnrsi/graphite/releases/download/${version}/${pname}-${version}.tgz";
     sha256 = "1790ajyhk0ax8xxamnrk176gc9gvhadzy78qia4rd8jzm89ir7gr";
   };
 
@@ -46,12 +46,19 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests = {
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "An advanced font engine";
     homepage = "https://graphite.sil.org/";
     license = licenses.lgpl21;
     maintainers = [ maintainers.raskin ];
+    pkgConfigModules = [ "graphite2" ];
     mainProgram = "gr2fonttest";
     platforms = platforms.unix ++ platforms.windows;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/simdjson/default.nix b/nixpkgs/pkgs/development/libraries/simdjson/default.nix
index 768587534778..cf56180551fd 100644
--- a/nixpkgs/pkgs/development/libraries/simdjson/default.nix
+++ b/nixpkgs/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "3.6.4";
+  version = "3.7.0";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-yIZKlKp4p1HJBAdba+57sGl0ri0gGtjSgZQ16/vDE34=";
+    sha256 = "sha256-0fizP+j06NAp4CJynjzHG25OBmTa7wjkLZ2MBs1NxG4=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/tracker/default.nix b/nixpkgs/pkgs/development/libraries/tracker/default.nix
index c349379648db..db9f7f1cfbf5 100644
--- a/nixpkgs/pkgs/development/libraries/tracker/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tracker/default.nix
@@ -28,16 +28,17 @@
 , systemd
 , dbus
 , writeText
+, testers
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "tracker";
   version = "3.6.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "Ulks/hm6/9FtvkdHW+fadQ29C2Mz/XrLYPqp2lvEDfI=";
   };
 
@@ -162,7 +163,10 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = finalAttrs.pname;
+    };
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
     };
   };
 
@@ -172,5 +176,6 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
+    pkgConfigModules = [ "tracker-sparql-3.0" "tracker-testutils-3.0" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix b/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
index 958cc2dadc7b..8b0f236acf4e 100644
--- a/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
@@ -1,14 +1,15 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, libX11, libxcb
-, libXrandr, wayland, moltenvk, vulkan-headers, addOpenGLRunpath }:
+, libXrandr, wayland, moltenvk, vulkan-headers, addOpenGLRunpath
+, testers }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-loader";
   version = "1.3.275.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Loader";
-    rev = "vulkan-sdk-${version}";
+    rev = "vulkan-sdk-${finalAttrs.version}";
     hash = "sha256-53PUXAWiK38ciV6oMvD7ZHdXi4RU4r0RmDWUUHU3mE0=";
   };
 
@@ -34,12 +35,19 @@ stdenv.mkDerivation rec {
     }
   '';
 
+  passthru = {
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
+
   meta = with lib; {
     description = "LunarG Vulkan loader";
     homepage    = "https://www.lunarg.com";
     platforms   = platforms.unix ++ platforms.windows;
     license     = licenses.asl20;
     maintainers = [ maintainers.ralith ];
-    broken = (version != vulkan-headers.version);
+    broken = finalAttrs.version != vulkan-headers.version;
+    pkgConfigModules = [ "vulkan" ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/wangle/default.nix b/nixpkgs/pkgs/development/libraries/wangle/default.nix
index 4afbb38094e2..d30389d97259 100644
--- a/nixpkgs/pkgs/development/libraries/wangle/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wangle/default.nix
@@ -16,15 +16,15 @@
 , zlib
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "wangle";
-  version = "2023.04.03.00";
+  version = "2024.01.22.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "wangle";
-    rev = "v${version}";
-    sha256 = "sha256-ISf/ezcJKCNv5UEGSf+OmHjV+QkanbTNoAm2ci1qy0o=";
+    rev = "v${finalAttrs.version}";
+    sha256 = "sha256-pXcJszncYWvtwT4guEl69rOAIXZzgF7I6qh8PqLbxdA=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -33,8 +33,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-Wno-dev"
+    (lib.cmakeBool "BUILD_TESTS" finalAttrs.finalPackage.doCheck)
   ] ++ lib.optionals stdenv.isDarwin [
-    "-DBUILD_TESTS=off" # Tests fail on Darwin due to missing utimensat
     "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.14" # For aligned allocation
   ];
 
@@ -46,13 +46,33 @@ stdenv.mkDerivation rec {
     double-conversion
     fizz
     folly
-    gtest
     glog
     gflags
     libevent
     openssl
   ];
 
+  doCheck = true;
+  checkInputs = [
+    gtest
+  ];
+  preCheck = let
+    disabledTests = [
+      # these depend on example pem files from the folly source tree (?)
+      "SSLContextManagerTest.TestSingleClientCAFileSet"
+      "SSLContextManagerTest.TestMultipleClientCAsSet"
+
+      # https://github.com/facebook/wangle/issues/206
+      "SSLContextManagerTest.TestSessionContextCertRemoval"
+    ] ++ lib.optionals stdenv.isDarwin [
+      # flaky
+      "BroadcastPoolTest.ThreadLocalPool"
+      "Bootstrap.UDPClientServerTest"
+    ];
+  in ''
+    export GTEST_FILTER="-${lib.concatStringsSep ":" disabledTests}"
+  '';
+
   meta = with lib; {
     description = "An open-source C++ networking library";
     longDescription = ''
@@ -65,4 +85,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ pierreis kylesferrazza ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/wayland/default.nix b/nixpkgs/pkgs/development/libraries/wayland/default.nix
index 52a1d9db3d28..b4e203f5ed26 100644
--- a/nixpkgs/pkgs/development/libraries/wayland/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wayland/default.nix
@@ -20,6 +20,7 @@
 , docbook_xsl
 , docbook_xml_dtd_45
 , docbook_xml_dtd_42
+, testers
 }:
 
 # Documentation is only built when building libraries.
@@ -31,12 +32,12 @@ assert withTests -> withLibraries;
 let
   isCross = stdenv.buildPlatform != stdenv.hostPlatform;
 in
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "wayland";
   version = "1.22.0";
 
   src = fetchurl {
-    url = "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
+    url = with finalAttrs; "https://gitlab.freedesktop.org/wayland/wayland/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
     hash = "sha256-FUCvHqaYpHHC2OnSiDMsfg/TYMjx0Sk267fny8JCWEI=";
   };
 
@@ -102,11 +103,16 @@ stdenv.mkDerivation rec {
 
     Name: Wayland Scanner
     Description: Wayland scanner
-    Version: ${version}
+    Version: ${finalAttrs.version}
     EOF
   '';
 
-  passthru = { inherit withLibraries; };
+  passthru = {
+    inherit withLibraries;
+    tests.pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+    };
+  };
 
   meta = with lib; {
     description = "Core Wayland window system code and protocol";
@@ -122,5 +128,14 @@ stdenv.mkDerivation rec {
     license = licenses.mit; # Expat version
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos codyopel qyliss ];
+    pkgConfigModules = [
+      "wayland-scanner"
+    ] ++ lib.optionals withLibraries [
+      "wayland-client"
+      "wayland-cursor"
+      "wayland-egl"
+      "wayland-egl-backend"
+      "wayland-server"
+    ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/yajl/cmake-shared-static-fix.patch b/nixpkgs/pkgs/development/libraries/yajl/cmake-shared-static-fix.patch
deleted file mode 100644
index 05c8f19dacbc..000000000000
--- a/nixpkgs/pkgs/development/libraries/yajl/cmake-shared-static-fix.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 768be8b9f98e30a8bd2d51576be9dfcf2cb838ea Mon Sep 17 00:00:00 2001
-From: Kiskae <Kiskae@users.noreply.github.com>
-Date: Tue, 26 Sep 2023 20:53:00 +0200
-Subject: [PATCH] simplify compilation of static/shared with cmake
-
-Signed-off-by: Kiskae <Kiskae@users.noreply.github.com>
----
- CMakeLists.txt              | 2 ++
- example/CMakeLists.txt      | 2 +-
- perf/CMakeLists.txt         | 2 +-
- src/CMakeLists.txt          | 7 ++-----
- test/parsing/CMakeLists.txt | 2 +-
- 5 files changed, 7 insertions(+), 8 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 471eee13..9af25203 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -16,6 +16,8 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
- 
- PROJECT(YetAnotherJSONParser C)
- 
-+option(BUILD_SHARED_LIBS "Build using shared libraries" ON)
-+
- SET (YAJL_MAJOR 2)
- SET (YAJL_MINOR 1)
- SET (YAJL_MICRO 1)
-diff --git a/example/CMakeLists.txt b/example/CMakeLists.txt
-index 0a7f6220..62ddf14c 100644
---- a/example/CMakeLists.txt
-+++ b/example/CMakeLists.txt
-@@ -20,4 +20,4 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
- 
- ADD_EXECUTABLE(parse_config ${SRCS})
- 
--TARGET_LINK_LIBRARIES(parse_config yajl_s)
-+TARGET_LINK_LIBRARIES(parse_config yajl)
-diff --git a/perf/CMakeLists.txt b/perf/CMakeLists.txt
-index b438d7a1..924a2681 100644
---- a/perf/CMakeLists.txt
-+++ b/perf/CMakeLists.txt
-@@ -20,4 +20,4 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib)
- 
- ADD_EXECUTABLE(perftest ${SRCS})
- 
--TARGET_LINK_LIBRARIES(perftest yajl_s)
-+TARGET_LINK_LIBRARIES(perftest yajl)
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 789ddf99..78875032 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -35,9 +35,7 @@ SET (pkgconfigDir ${CMAKE_CURRENT_BINARY_DIR}/../${YAJL_DIST_NAME}/lib/pkgconfig
- # set the output path for libraries
- SET(LIBRARY_OUTPUT_PATH ${libDir})
- 
--ADD_LIBRARY(yajl_s STATIC ${SRCS} ${HDRS} ${PUB_HDRS})
--
--ADD_LIBRARY(yajl SHARED ${SRCS} ${HDRS} ${PUB_HDRS})
-+ADD_LIBRARY(yajl ${SRCS} ${HDRS} ${PUB_HDRS})
- 
- #### setup shared library version number
- SET_TARGET_PROPERTIES(yajl PROPERTIES
-@@ -69,7 +67,7 @@ FOREACH (header ${PUB_HDRS})
- 
-   EXEC_PROGRAM(${CMAKE_COMMAND} ARGS -E copy_if_different ${header} ${incDir})
- 
--  ADD_CUSTOM_COMMAND(TARGET yajl_s POST_BUILD
-+  ADD_CUSTOM_COMMAND(TARGET yajl POST_BUILD
-       COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header} ${incDir})
- ENDFOREACH (header ${PUB_HDRS})
- 
-@@ -81,7 +79,6 @@ INSTALL(TARGETS yajl
-         RUNTIME DESTINATION lib${LIB_SUFFIX}
-         LIBRARY DESTINATION lib${LIB_SUFFIX}
-         ARCHIVE DESTINATION lib${LIB_SUFFIX})
--INSTALL(TARGETS yajl_s ARCHIVE DESTINATION lib${LIB_SUFFIX})
- INSTALL(FILES ${PUB_HDRS} DESTINATION include/yajl)
- INSTALL(FILES ${incDir}/yajl_version.h DESTINATION include/yajl)
- INSTALL(FILES ${pkgconfigDir}/yajl.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
-diff --git a/test/parsing/CMakeLists.txt b/test/parsing/CMakeLists.txt
-index c22a3887..f445920d 100644
---- a/test/parsing/CMakeLists.txt
-+++ b/test/parsing/CMakeLists.txt
-@@ -20,4 +20,4 @@ LINK_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/../../${YAJL_DIST_NAME}/lib)
- 
- ADD_EXECUTABLE(yajl_test ${SRCS})
- 
--TARGET_LINK_LIBRARIES(yajl_test yajl_s)
-+TARGET_LINK_LIBRARIES(yajl_test yajl)
diff --git a/nixpkgs/pkgs/development/libraries/yajl/default.nix b/nixpkgs/pkgs/development/libraries/yajl/default.nix
index dad884c24842..83aedce31ff8 100644
--- a/nixpkgs/pkgs/development/libraries/yajl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/yajl/default.nix
@@ -2,20 +2,15 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "yajl";
-  version = "unstable-2022-04-20";
+  version = "2.1.0-unstable-2024-02-01";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "yajl";
-    rev = "49923ccb2143e36850bcdeb781e2bcdf5ce22f15";
-    hash = "sha256-9bMPA5FpyBp8fvG/kkT/MnhYtdqg3QzOnmDFXKwJVW0=";
+    rev = "6bc5219389fd2752631682b0a8368e6d8218a8c5";
+    hash = "sha256-vY0tqCkz6PN00Qbip5ViO64L3C06fJ4JjFuIk0TWgCo=";
   };
 
-  patches = [
-    # https://github.com/containers/yajl/pull/1
-    ./cmake-shared-static-fix.patch
-  ];
-
   nativeBuildInputs = [ cmake ];
 
   doCheck = true;