about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries')
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/aubio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lilv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/ntk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/raul/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/suil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/4.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/5.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/6.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/fortify-headers/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/fortify-headers/restore-macros.patch283
-rw-r--r--nixpkgs/pkgs/development/libraries/fortify-headers/wchar-imports-skip.patch41
-rw-r--r--nixpkgs/pkgs/development/libraries/freetype/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/ganv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gpgme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/igraph/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix666
-rw-r--r--nixpkgs/pkgs/development/libraries/ldb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcef/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libinput/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libkcapi/default.nix53
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libwebp/CVE-2023-4863.patch361
-rw-r--r--nixpkgs/pkgs/development/libraries/libwebp/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libxml2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libyuv/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libyuv/yuv.pc13
-rw-r--r--nixpkgs/pkgs/development/libraries/llhttp/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mpfr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ndn-cxx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencomposite/default.nix59
-rw-r--r--nixpkgs/pkgs/development/libraries/opencomposite/helper.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/openexr/3.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/openexr/disable-iex-test.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/pdfhummus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/fastjet-contrib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/protolock/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/talloc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/tevent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix47
49 files changed, 1327 insertions, 441 deletions
diff --git a/nixpkgs/pkgs/development/libraries/SDL2/default.nix b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
index 4c8c7ed8f435..7b741b803de0 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
@@ -1,7 +1,8 @@
 { lib
 , stdenv
 , config
-, fetchurl
+, fetchFromGitHub
+, nix-update-script
 , pkg-config
 , libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
 , openglSupport ? libGLSupported
@@ -55,11 +56,13 @@
 
 stdenv.mkDerivation rec {
   pname = "SDL2";
-  version = "2.28.2";
+  version = "2.28.3";
 
-  src = fetchurl {
-    url = "https://www.libsdl.org/release/${pname}-${version}.tar.gz";
-    hash = "sha256-ZLEQL6Igk1FbAu8z3Yc53uG6V+nbumoJKUK4u+0aHF4=";
+  src = fetchFromGitHub {
+    owner = "libsdl-org";
+    repo = "SDL";
+    rev = "release-${version}";
+    hash = "sha256-/kQ2IyvAfmZ+zIUt1WuEIeX0nYPGXDlAQk2qDsQnFFs=";
   };
   dontDisableStatic = if withStatic then 1 else 0;
   outputs = [ "out" "dev" ];
@@ -165,7 +168,10 @@ stdenv.mkDerivation rec {
 
   setupHook = ./setup-hook.sh;
 
-  passthru = { inherit openglSupport; };
+  passthru = {
+    inherit openglSupport;
+    updateScript = nix-update-script { extraArgs = ["--version-regex" "release-(.*)"]; };
+  };
 
   meta = with lib; {
     description = "A cross-platform multimedia library";
diff --git a/nixpkgs/pkgs/development/libraries/aubio/default.nix b/nixpkgs/pkgs/development/libraries/aubio/default.nix
index 673064db7a5d..2e8bdc50ca63 100644
--- a/nixpkgs/pkgs/development/libraries/aubio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/aubio/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, alsa-lib, fftw, libjack2, libsamplerate
-, libsndfile, pkg-config, python3, waf
+, libsndfile, pkg-config, python3, wafHook
 }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "1npks71ljc48w6858l9bq30kaf5nph8z0v61jkfb70xb9np850nl";
   };
 
-  nativeBuildInputs = [ pkg-config python3 waf.hook ];
+  nativeBuildInputs = [ pkg-config python3 wafHook ];
   buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ];
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix b/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
index b51a608c9695..14b0d4c5e46f 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lilv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, lv2, pkg-config, python3, serd, sord, sratom, waf
+{ lib, stdenv, fetchurl, lv2, pkg-config, python3, serd, sord, sratom, wafHook
 
 # test derivations
 , pipewire
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   patches = [ ./lilv-pkgconfig.patch ];
 
-  nativeBuildInputs = [ pkg-config python3 waf.hook ];
+  nativeBuildInputs = [ pkg-config python3 wafHook ];
   buildInputs = [ serd sord sratom ];
   propagatedBuildInputs = [ lv2 ];
   dontAddWafCrossFlags = true;
diff --git a/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix b/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix
index af784d80a3aa..9822640f8d67 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lvtk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, boost, gtkmm2, lv2, pkg-config, python3, waf }:
+{ lib, stdenv, fetchFromGitHub, boost, gtkmm2, lv2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "lvtk";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-6IoyhBig3Nvc4Y8F0w8b1up6sn8O2RmoUVaBQ//+Aaw=";
   };
 
-  nativeBuildInputs = [ pkg-config python3 waf.hook ];
+  nativeBuildInputs = [ pkg-config python3 wafHook ];
   buildInputs = [ boost gtkmm2 lv2 ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/audio/ntk/default.nix b/nixpkgs/pkgs/development/libraries/audio/ntk/default.nix
index 3b8ecb807aa6..d101e2a960c6 100644
--- a/nixpkgs/pkgs/development/libraries/audio/ntk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/ntk/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkg-config, python3, waf }:
+{ lib, stdenv, fetchFromGitHub, cairo, libjpeg, libXft, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "ntk";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-NyEdg6e+9CI9V+TIgdpPyH1ei+Vq8pUxD3wPzWY5fEU=";
   };
 
-  nativeBuildInputs = [ pkg-config waf.hook ];
+  nativeBuildInputs = [ pkg-config wafHook ];
   buildInputs = [
     cairo libjpeg libXft python3
   ];
diff --git a/nixpkgs/pkgs/development/libraries/audio/raul/default.nix b/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
index b8e21e36bba4..c200d4ab79c5 100644
--- a/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/raul/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python3, waf }:
+{ lib, stdenv, fetchgit, boost, gtk2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "raul";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "1z37jb6ghc13b8nv8a8hcg669gl8vh4ni9djvfgga9vcz8rmcg8l";
   };
 
-  nativeBuildInputs = [ pkg-config waf.hook python3 ];
+  nativeBuildInputs = [ pkg-config wafHook python3 ];
   buildInputs = [ boost gtk2 ];
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/audio/suil/default.nix b/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
index f037b61e3bcf..3dc3bb5dacdc 100644
--- a/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/suil/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, gtk2, lv2, pkg-config, python3, serd, sord, sratom
-, waf
+, wafHook
 , withQt5 ? true, qt5 ? null
 }:
 
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     sha256 = "0z4v01pjw4wh65x38w6icn28wdwxz13ayl8hvn4p1g9kmamp1z06";
   };
 
-  nativeBuildInputs = [ pkg-config waf.hook python3 ];
+  nativeBuildInputs = [ pkg-config wafHook python3 ];
   buildInputs = [ gtk2 lv2 serd sord sratom ]
     ++ lib.optionals withQt5 (with qt5; [ qtbase qttools ]);
 
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
index 905e93de7a7f..6bd9a8b8f1ae 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
@@ -1,4 +1,4 @@
-import ./generic.nix rec {
+import ./generic.nix {
   version = "4.4.4";
   sha256 = "sha256-Q8bkuF/1uJfqttJJoObnnLX3BEduv+qxsvOrVhMvRjA=";
   extraPatches = [
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix
index dcfe033f040f..a3ff054f1e60 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/5.nix
@@ -1,4 +1,4 @@
-import ./generic.nix rec {
+import ./generic.nix {
   version = "5.1.3";
   sha256 = "sha256-twfJvANLQGO7TiyHPMPqApfHLFUlOGZTTIIGEnjyvuE=";
   extraPatches = [
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
index cf29526fbcb5..37bdf5b060f7 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/6.nix
@@ -1,4 +1,4 @@
-import ./generic.nix rec {
+import ./generic.nix {
   version = "6.0";
   sha256 = "sha256-RVbgsafIbeUUNXmUbDQ03ZN42oaUo0njqROo7KOQgv0=";
 }
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index a1ca20f9483c..6bde5aa776ba 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -1,4 +1,4 @@
-{ version, sha256, extraPatches ? [], knownVulnerabilities ? [] }:
+{ version, sha256, extraPatches ? [] }:
 
 { lib, stdenv, buildPackages, removeReferencesTo, addOpenGLRunpath, pkg-config, perl, texinfo, yasm
 
@@ -33,7 +33,6 @@
 , withBzlib ? withHeadlessDeps
 , withCaca ? withFullDeps # Textual display (ASCII art)
 , withCelt ? withFullDeps # CELT decoder
-, withCrystalhd ? withFullDeps
 , withCuda ? withFullDeps && (with stdenv; (!isDarwin && !hostPlatform.isAarch && !hostPlatform.isRiscV))
 , withCudaLLVM ? withFullDeps
 , withDav1d ? withHeadlessDeps # AV1 decoder (focused on speed and correctness)
@@ -49,7 +48,6 @@
 , withGnutls ? withHeadlessDeps
 , withGsm ? withFullDeps # GSM de/encoder
 , withIconv ? withHeadlessDeps
-, withIlbc ? withFullDeps
 , withJack ? withFullDeps && !stdenv.isDarwin # Jack audio
 , withLadspa ? withFullDeps # LADSPA audio filtering
 , withLibplacebo ? withFullDeps && !stdenv.isDarwin # libplacebo video processing library
@@ -79,7 +77,7 @@
 , withSrt ? withHeadlessDeps # Secure Reliable Transport (SRT) protocol
 , withSsh ? withHeadlessDeps # SFTP protocol
 , withSvg ? withFullDeps # SVG protocol
-, withSvtav1 ? withFullDeps && !stdenv.isAarch64 # AV1 encoder/decoder (focused on speed and correctness)
+, withSvtav1 ? withHeadlessDeps && !stdenv.isAarch64 # AV1 encoder/decoder (focused on speed and correctness)
 , withTensorflow ? false # Tensorflow dnn backend support
 , withTheora ? withHeadlessDeps # Theora encoder
 , withV4l2 ? withFullDeps && !stdenv.isDarwin # Video 4 Linux support
diff --git a/nixpkgs/pkgs/development/libraries/fortify-headers/default.nix b/nixpkgs/pkgs/development/libraries/fortify-headers/default.nix
index 2c24665456b7..1f418af7ae96 100644
--- a/nixpkgs/pkgs/development/libraries/fortify-headers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fortify-headers/default.nix
@@ -15,6 +15,11 @@ stdenv.mkDerivation {
     hash = "sha256-8A8JcKHIBgXpUuIP4zs3Q1yBs5jCGd5F3H2E8UN/S2g=";
   };
 
+  patches = [
+    ./wchar-imports-skip.patch
+    ./restore-macros.patch
+  ];
+
   installPhase = ''
     runHook preInstall
 
diff --git a/nixpkgs/pkgs/development/libraries/fortify-headers/restore-macros.patch b/nixpkgs/pkgs/development/libraries/fortify-headers/restore-macros.patch
new file mode 100644
index 000000000000..f7d31a329e35
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/fortify-headers/restore-macros.patch
@@ -0,0 +1,283 @@
+restore #undef'ed macro values after we're done
+
+some programs that define these miss them if removed
+
+push_macro and pop_macro pragmas allegedly well supported
+by gcc, clang and msvc
+
+--- a/include/fortify/poll.h
++++ b/include/fortify/poll.h
+@@ -29,6 +29,7 @@ __extension__
+ extern "C" {
+ #endif
+ 
++#pragma push_macro("poll")
+ #undef poll
+ 
+ _FORTIFY_FN(poll) int poll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n, int __s)
+@@ -40,6 +41,8 @@ _FORTIFY_FN(poll) int poll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n, int __
+ 	return __orig_poll(__f, __n, __s);
+ }
+ 
++#pragma pop_macro("poll")
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/include/fortify/stdio.h
++++ b/include/fortify/stdio.h
+@@ -29,12 +29,19 @@ __extension__
+ extern "C" {
+ #endif
+ 
++#pragma push_macro("fgets")
+ #undef fgets
++#pragma push_macro("fread")
+ #undef fread
++#pragma push_macro("fwrite")
+ #undef fwrite
++#pragma push_macro("vsprintf")
+ #undef vsprintf
++#pragma push_macro("vsnprintf")
+ #undef vsnprintf
++#pragma push_macro("snprintf")
+ #undef snprintf
++#pragma push_macro("sprintf")
+ #undef sprintf
+ 
+ _FORTIFY_FN(fgets) char *fgets(char * _FORTIFY_POS0 __s, int __n, FILE *__f)
+@@ -140,6 +147,14 @@ _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...)
+ #endif /* __has_builtin(__builtin_va_arg_pack) */
+ #endif /* defined(__has_builtin) */
+ 
++#pragma pop_macro("fgets")
++#pragma pop_macro("fread")
++#pragma pop_macro("fwrite")
++#pragma pop_macro("vsprintf")
++#pragma pop_macro("vsnprintf")
++#pragma pop_macro("snprintf")
++#pragma pop_macro("sprintf")
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/include/fortify/stdlib.h
++++ b/include/fortify/stdlib.h
+@@ -38,7 +38,10 @@ extern "C" {
+ 
+ /* FIXME clang */
+ #if (defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)) && !defined(__clang__)
++
++#pragma push_macro("realpath")
+ #undef realpath
++
+ _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r)
+ {
+ #ifndef PATH_MAX
+@@ -60,6 +63,9 @@ _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r)
+ 	return __orig_realpath(__p, __r);
+ #endif
+ }
++
++#pragma pop_macro("realpath")
++
+ #endif
+ 
+ #ifdef __cplusplus
+--- a/include/fortify/string.h
++++ b/include/fortify/string.h
+@@ -29,12 +29,19 @@ __extension__
+ extern "C" {
+ #endif
+ 
++#pragma push_macro("memcpy")
+ #undef memcpy
++#pragma push_macro("memmove")
+ #undef memmove
++#pragma push_macro("memset")
+ #undef memset
++#pragma push_macro("strcat")
+ #undef strcat
++#pragma push_macro("strcpy")
+ #undef strcpy
++#pragma push_macro("strncat")
+ #undef strncat
++#pragma push_macro("strncpy")
+ #undef strncpy
+ 
+ _FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od,
+@@ -183,6 +190,14 @@ _FORTIFY_FN(strlcpy) size_t strlcpy(char * _FORTIFY_POS0 __d,
+ }
+ #endif
+ 
++#pragma pop_macro("memcpy")
++#pragma pop_macro("memmove")
++#pragma pop_macro("memset")
++#pragma pop_macro("strcat")
++#pragma pop_macro("strcpy")
++#pragma pop_macro("strncat")
++#pragma pop_macro("strncpy")
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/include/fortify/strings.h
++++ b/include/fortify/strings.h
+@@ -29,8 +29,12 @@ extern "C" {
+ #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE) || defined(_POSIX_SOURCE) \
+  || (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE+0 < 200809L) \
+  || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
++
++#pragma push_macro("bcopy")
+ #undef bcopy
++#pragma push_macro("bzero")
+ #undef bzero
++
+ _FORTIFY_FN(bcopy) void bcopy(const void * _FORTIFY_POS0 __s,
+                               void * _FORTIFY_POS0 __d, size_t __n)
+ {
+@@ -52,6 +56,9 @@ _FORTIFY_FN(bzero) void bzero(void * _FORTIFY_POS0 __s, size_t __n)
+ }
+ #endif
+ 
++#pragma pop_macro("bcopy")
++#pragma pop_macro("bzero")
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/include/fortify/sys/socket.h
++++ b/include/fortify/sys/socket.h
+@@ -29,9 +29,13 @@ __extension__
+ extern "C" {
+ #endif
+ 
++#pragma push_macro("recv")
+ #undef recv
++#pragma push_macro("recvfrom")
+ #undef recvfrom
++#pragma push_macro("send")
+ #undef send
++#pragma push_macro("sendto")
+ #undef sendto
+ 
+ _FORTIFY_FN(recv) ssize_t recv(int __f, void * _FORTIFY_POS0 __s, size_t __n,
+@@ -76,6 +80,11 @@ _FORTIFY_FN(sendto) ssize_t sendto(int __f, const void * _FORTIFY_POS0 __s,
+ 	return __orig_sendto(__f, __s, __n, __fl, __a, __l);
+ }
+ 
++#pragma push_macro("recv")
++#pragma push_macro("recvfrom")
++#pragma push_macro("send")
++#pragma push_macro("sendto")
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/include/fortify/unistd.h
++++ b/include/fortify/unistd.h
+@@ -29,16 +29,27 @@ __extension__
+ extern "C" {
+ #endif
+ 
++#pragma push_macro("confstr")
+ #undef confstr
++#pragma push_macro("getcwd")
+ #undef getcwd
++#pragma push_macro("getgroups")
+ #undef getgroups
++#pragma push_macro("gethostname")
+ #undef gethostname
++#pragma push_macro("getlogin_r")
+ #undef getlogin_r
++#pragma push_macro("pread")
+ #undef pread
++#pragma push_macro("read")
+ #undef read
++#pragma push_macro("readlink")
+ #undef readlink
++#pragma push_macro("readlinkat")
+ #undef readlinkat
++#pragma push_macro("ttyname_r")
+ #undef ttyname_r
++#pragma push_macro("write")
+ #undef write
+ 
+ _FORTIFY_FN(confstr) size_t confstr(int __n, char * _FORTIFY_POS0 __s, size_t __l)
+@@ -158,6 +169,18 @@ _FORTIFY_FN(write) ssize_t write(int __f, const void * _FORTIFY_POS0 __s,
+ 	return __orig_write(__f, __s, __n);
+ }
+ 
++#pragma pop_macro("confstr")
++#pragma pop_macro("getcwd")
++#pragma pop_macro("getgroups")
++#pragma pop_macro("gethostname")
++#pragma pop_macro("getlogin_r")
++#pragma pop_macro("pread")
++#pragma pop_macro("read")
++#pragma pop_macro("readlink")
++#pragma pop_macro("readlinkat")
++#pragma pop_macro("ttyname_r")
++#pragma pop_macro("write")
++
+ #ifdef __cplusplus
+ }
+ #endif
+--- a/include/fortify/wchar.h
++++ b/include/fortify/wchar.h
+@@ -43,19 +43,33 @@ __extension__
+ extern "C" {
+ #endif
+ 
++#pragma push_macro("fgetws")
+ #undef fgetws
++#pragma push_macro("mbsrtowcs")
+ #undef mbsrtowcs
++#pragma push_macro("mbstowcs")
+ #undef mbstowcs
++#pragma push_macro("wcrtomb")
+ #undef wcrtomb
++#pragma push_macro("wcscat")
+ #undef wcscat
++#pragma push_macro("wcscpy")
+ #undef wcscpy
++#pragma push_macro("wcsncat")
+ #undef wcsncat
++#pragma push_macro("wcsncpy")
+ #undef wcsncpy
++#pragma push_macro("wcsrtombs")
+ #undef wcsrtombs
++#pragma push_macro("wcstombs")
+ #undef wcstombs
++#pragma push_macro("wctomb")
+ #undef wctomb
++#pragma push_macro("wmemcpy")
+ #undef wmemcpy
++#pragma push_macro("wmemmove")
+ #undef wmemmove
++#pragma push_macro("wmemset")
+ #undef wmemset
+ 
+ _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s,
+@@ -269,6 +283,21 @@ _FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s,
+ 	return __orig_wmemset(__s, __c, __n);
+ }
+ 
++#pragma pop_macro("fgetws")
++#pragma pop_macro("mbsrtowcs")
++#pragma pop_macro("mbstowcs")
++#pragma pop_macro("wcrtomb")
++#pragma pop_macro("wcscat")
++#pragma pop_macro("wcscpy")
++#pragma pop_macro("wcsncat")
++#pragma pop_macro("wcsncpy")
++#pragma pop_macro("wcsrtombs")
++#pragma pop_macro("wcstombs")
++#pragma pop_macro("wctomb")
++#pragma pop_macro("wmemcpy")
++#pragma pop_macro("wmemmove")
++#pragma pop_macro("wmemset")
++
+ #ifdef __cplusplus
+ }
+ #endif
diff --git a/nixpkgs/pkgs/development/libraries/fortify-headers/wchar-imports-skip.patch b/nixpkgs/pkgs/development/libraries/fortify-headers/wchar-imports-skip.patch
new file mode 100644
index 000000000000..255ceba9f099
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/fortify-headers/wchar-imports-skip.patch
@@ -0,0 +1,41 @@
+wchar.h: only include other headers if _FORTIFY_SOURCE is enabled
+
+unexpectedly including other headers can cause problems with
+sensitive/brittle code, particularly with alternative compilers
+(clang) which are already operating on the margins of what's
+supported/expected by some projects.
+
+having a way to almost entirely short-circuit these headers (by
+disabling _FORTIFY_SOURCE) is therefore important.
+
+--- a/include/fortify/wchar.h
++++ b/include/fortify/wchar.h
+@@ -20,21 +20,23 @@
+ #if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+-#include_next <limits.h>
++#include_next <wchar.h>
++
++#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
++
+ #if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+-#include_next <stdlib.h>
++#include_next <limits.h>
+ #if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+-#include_next <string.h>
++#include_next <stdlib.h>
+ #if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+-#include_next <wchar.h>
++#include_next <string.h>
+ 
+-#if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
+ #include "fortify-headers.h"
+ 
+ #ifdef __cplusplus
diff --git a/nixpkgs/pkgs/development/libraries/freetype/default.nix b/nixpkgs/pkgs/development/libraries/freetype/default.nix
index f4a81633f54b..6e6989d9304e 100644
--- a/nixpkgs/pkgs/development/libraries/freetype/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freetype/default.nix
@@ -55,7 +55,8 @@ stdenv.mkDerivation (finalAttrs: {
   CC_BUILD = "${buildPackages.stdenv.cc}/bin/cc";
 
   # The asm for armel is written with the 'asm' keyword.
-  CFLAGS = lib.optionalString stdenv.isAarch32 "-std=gnu99";
+  CFLAGS = lib.optionalString stdenv.isAarch32 "-std=gnu99"
+    + lib.optionalString stdenv.hostPlatform.is32bit " -D_FILE_OFFSET_BITS=64";
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/ganv/default.nix b/nixpkgs/pkgs/development/libraries/ganv/default.nix
index 9818afa9412a..d53206ca667b 100644
--- a/nixpkgs/pkgs/development/libraries/ganv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ganv/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkg-config, python3, waf }:
+{ lib, stdenv, fetchgit, graphviz, gtk2, gtkmm2, pkg-config, python3, wafHook }:
 
 stdenv.mkDerivation rec {
   pname = "ganv";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "01znnalirbqxpz62fbw2c14c8xn117jc92xv6dhb3hln92k9x37f";
   };
 
-  nativeBuildInputs = [ pkg-config waf.hook python3 gtk2 ];
+  nativeBuildInputs = [ pkg-config wafHook python3 gtk2 ];
   buildInputs = [ graphviz gtkmm2 ];
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/default.nix b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
index 6af608995c2f..b223f249f83c 100644
--- a/nixpkgs/pkgs/development/libraries/gpgme/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
@@ -26,11 +26,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gpgme";
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchurl {
     url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
-    hash = "sha256-QW4XThZXNNhIBiU/jJa9opk/0H8ljDqtXwU6bv1GPog=";
+    hash = "sha256-lVHjcIGtO96BAYoNJPJFw/ggaZBUlZj7Mal6aDgKe3E=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix
index 50c2308d0811..e0d324936dd0 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rs/default.nix
@@ -242,6 +242,14 @@ stdenv.mkDerivation rec {
     runHook postCheck
   '';
 
+  doInstallCheck = (lib.elem "webp" selectedPlugins) && !stdenv.hostPlatform.isStatic &&
+    stdenv.hostPlatform.parsed.kernel.execFormat == lib.systems.parse.execFormats.elf;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    readelf -a $out/lib/gstreamer-1.0/libgstrswebp.so | grep -F 'Shared library: [libwebpdemux.so'
+    runHook postInstallCheck
+  '';
+
   passthru.updateScript = nix-update-script {
     # use numbered releases rather than gstreamer-* releases
     extraArgs = [ "--version-regex" "([0-9.]+)" ];
diff --git a/nixpkgs/pkgs/development/libraries/igraph/default.nix b/nixpkgs/pkgs/development/libraries/igraph/default.nix
index 69f25fd79c83..dc49780b3290 100644
--- a/nixpkgs/pkgs/development/libraries/igraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/igraph/default.nix
@@ -26,13 +26,13 @@ assert (blas.isILP64 == lapack.isILP64 &&
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "igraph";
-  version = "0.10.6";
+  version = "0.10.7";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    hash = "sha256-HNc+xU7Gcv9BSpb2OgyG9tCbk/dfWw5Ix1c2gvFZklE=";
+    hash = "sha256-1ge5V9G2jmIWQE5TW7+6cXCV9viFkhcnjpYrLQVLrgg=";
   };
 
   postPatch = ''
@@ -92,6 +92,10 @@ stdenv.mkDerivation (finalAttrs: {
     install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libigraph.dylib
   '';
 
+  passthru.tests = {
+    python = python3.pkgs.igraph;
+  };
+
   meta = with lib; {
     description = "C library for complex network analysis and graph theory";
     homepage = "https://igraph.org/";
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/compress/default.nix
index bda8a4c0dd1f..87dbd16d86c4 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.23.0";
+  version = "1.24.0";
   pname = "commons-compress";
 
   src = fetchurl {
     url    = "mirror://apache/commons/compress/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-m+7cc7h9xVXKlLBTTr2L91AFWDTN+hNSycxDNO0oBAI=";
+    sha256 = "sha256-VQzXg16rnrghsRY2H3NnGJ+0HEbz8/Num7Xlm9pEqqw=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
index 9fb48b6829aa..c72caa6d585d 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.109/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.110/ -A '*.tar.xz' )
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
index 8bc39bd28451..1fd8a2ba15a0 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -1,670 +1,670 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks/
 { fetchurl, mirror }:
 
 {
   attica = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/attica-5.109.0.tar.xz";
-      sha256 = "1w80fkmwpg5s7k8vgl6p47yw4qw9yh49ngd6lq74r0gxminyqabk";
-      name = "attica-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/attica-5.110.0.tar.xz";
+      sha256 = "1lp7y0r3npv93kcw1fkgl8c2njbs6y4m8cg32b60pyjahfqspxd6";
+      name = "attica-5.110.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/baloo-5.109.0.tar.xz";
-      sha256 = "1rjv19r39wpjcvbsi0d6853l9zp710mxzf2yzzs26nmjgdcrcvwk";
-      name = "baloo-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/baloo-5.110.0.tar.xz";
+      sha256 = "0bg2nyp7zp1mka7ng8bwcd0hrbglrdiz7xw43r9q8wycr9qmva1n";
+      name = "baloo-5.110.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/bluez-qt-5.109.0.tar.xz";
-      sha256 = "173lm1qr0dhbyy2c2m9wz1zb5l095kh38l31akcqrjfzaa8kdhl9";
-      name = "bluez-qt-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/bluez-qt-5.110.0.tar.xz";
+      sha256 = "1xvr85i0lkdpca64dzd7wqasc7acpzvh2kawl9nrfkrn96vrm0cz";
+      name = "bluez-qt-5.110.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/breeze-icons-5.109.0.tar.xz";
-      sha256 = "1cjl1hw2b8srglagnqv9n4c9d066r6dbwfa341v7brjgbzl0nyp0";
-      name = "breeze-icons-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/breeze-icons-5.110.0.tar.xz";
+      sha256 = "1m5z8g7rvilvwfn65yazci51i83ixv7fc5sh2v5vgxrlmhbysg0s";
+      name = "breeze-icons-5.110.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/extra-cmake-modules-5.109.0.tar.xz";
-      sha256 = "1dvzid3kvm4p1h8n7f6z1gk1x38pg0aj9zripz9y864prxbva9hm";
-      name = "extra-cmake-modules-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/extra-cmake-modules-5.110.0.tar.xz";
+      sha256 = "0f347y8q3ckgfq4skh2q69n67v3w9k680db0br4f43i37vdzaikp";
+      name = "extra-cmake-modules-5.110.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/frameworkintegration-5.109.0.tar.xz";
-      sha256 = "09s4cbj2b8br1agwmdxizkg7yfb0iam7lbsl267hs48qdwdiykcx";
-      name = "frameworkintegration-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/frameworkintegration-5.110.0.tar.xz";
+      sha256 = "0ghl5p01g3jdj75wzyjwq4b0l0p98r0vkkf6zj6d3lbax207z0sq";
+      name = "frameworkintegration-5.110.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kactivities-5.109.0.tar.xz";
-      sha256 = "1wajk90vby4f590mjb3nn2lw3p0k58l16s7ci6pi5il7m1qyyzhw";
-      name = "kactivities-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kactivities-5.110.0.tar.xz";
+      sha256 = "1c1456jc3s7cl2l3kmkgprgngip0j9c7ssd0b0fvjd41dwhzhra5";
+      name = "kactivities-5.110.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kactivities-stats-5.109.0.tar.xz";
-      sha256 = "0w6j69xkjnrg44vlb7wnd8frc7ry4xyj7zkqqvhvqnh33731dl6v";
-      name = "kactivities-stats-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kactivities-stats-5.110.0.tar.xz";
+      sha256 = "1agqsdgbmglrzpg9w4df9qdg4hf8g1nnnkq7adp6cxsj3x8c8zx4";
+      name = "kactivities-stats-5.110.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kapidox-5.109.0.tar.xz";
-      sha256 = "1h1al4pm47nxh72z6p2d5vjzylpnbvz0pz01cyzs9mn4yl3vbk8v";
-      name = "kapidox-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kapidox-5.110.0.tar.xz";
+      sha256 = "1qi2mcslw0gsxc6p5q78lhg3if01j8dhxf0ypwb8njsfjcr45d24";
+      name = "kapidox-5.110.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/karchive-5.109.0.tar.xz";
-      sha256 = "0rn9pcdivvi53afdvzalham329vbrslam1yl07lj820rwk102jlw";
-      name = "karchive-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/karchive-5.110.0.tar.xz";
+      sha256 = "1pqc0j4xkhwc6gdgg1q7pl3hjnrscwz8vbdz8jbvpaz51cy5iipw";
+      name = "karchive-5.110.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kauth-5.109.0.tar.xz";
-      sha256 = "1bm0sy2yzikzs71nmlgyz4xmnr73rlb21rcam0366cy9rgy82z9z";
-      name = "kauth-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kauth-5.110.0.tar.xz";
+      sha256 = "1yymmyvhqgrwdpy5c2narh6d0ac41mw9ifrhckcyr22kdyrmgcz1";
+      name = "kauth-5.110.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kbookmarks-5.109.0.tar.xz";
-      sha256 = "01hzs023yzw9kxmi81qncikks25c5vc1widp9lmhzj044mmrp5sd";
-      name = "kbookmarks-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kbookmarks-5.110.0.tar.xz";
+      sha256 = "1k04mcfciv3gq4qw5gkpq7189wfxxlr427h4827m3hs3ysbgc4vh";
+      name = "kbookmarks-5.110.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcalendarcore-5.109.0.tar.xz";
-      sha256 = "1m6s9qjcmf6hmysvhw4fj0y5rj1l2b363yvnxb4f832lmkif10c5";
-      name = "kcalendarcore-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcalendarcore-5.110.0.tar.xz";
+      sha256 = "19zb1g4lbiqy4vcay6hbjx9ak5r00frfn1hahpc544q9l0dznl52";
+      name = "kcalendarcore-5.110.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcmutils-5.109.0.tar.xz";
-      sha256 = "0ihb05azlb9nkd6z2jqw8rzbr5kj1vhyrla00idk50v502dnp7h0";
-      name = "kcmutils-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcmutils-5.110.0.tar.xz";
+      sha256 = "0ccgrd757ww890nvajw1s9yvq6iikp316q123rfminrc0mlrpzaq";
+      name = "kcmutils-5.110.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcodecs-5.109.0.tar.xz";
-      sha256 = "19acjg4dk40f2a6gp8mspi4mddnpgzwy94903925a1rc482zwj4n";
-      name = "kcodecs-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcodecs-5.110.0.tar.xz";
+      sha256 = "1i15q8kg1dn72sxg9djvg9h4mhqh9rgvnsf3bz0pjd5jbwqqyv1v";
+      name = "kcodecs-5.110.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcompletion-5.109.0.tar.xz";
-      sha256 = "1wdalk1b1p999q4354k0anjqdvpvk9q6mlwc2dnz322bcq1adi3j";
-      name = "kcompletion-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcompletion-5.110.0.tar.xz";
+      sha256 = "0a9l6p9kfg074wxz0r9dn43baibrbzbh80x60rds2jaf3yjg212g";
+      name = "kcompletion-5.110.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kconfig-5.109.0.tar.xz";
-      sha256 = "1n3siz3iqbk6izfk5awqnrxsbjnfardp7hvbacfkwbb8zd8ibaav";
-      name = "kconfig-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kconfig-5.110.0.tar.xz";
+      sha256 = "1i9idh0rh8ryry5gf22wwgzd15y14jymxjdxbkgx13kqpfyqhaxd";
+      name = "kconfig-5.110.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kconfigwidgets-5.109.0.tar.xz";
-      sha256 = "1gqlsqnfdscr22zam2sxnwqq13a9g87bhq80h2vwx48sznaglrqy";
-      name = "kconfigwidgets-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kconfigwidgets-5.110.0.tar.xz";
+      sha256 = "04mlw41xdps7qgnmmccqgs7jc5iipx2vqp9bd91l3sz4p90wj3sg";
+      name = "kconfigwidgets-5.110.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcontacts-5.109.0.tar.xz";
-      sha256 = "1byfsmpfwrk1zmrasz38lmsbh5yr8ds3mshhmwf2m2v7s5kmf789";
-      name = "kcontacts-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcontacts-5.110.0.tar.xz";
+      sha256 = "0gib8nlis59kbhydqvf6alwxvy4db94r2p3vpbcdy48gc4i06344";
+      name = "kcontacts-5.110.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcoreaddons-5.109.0.tar.xz";
-      sha256 = "002ky4ixjhjcb9p2fzmygaxcg8gjf04aym0q4q7kfqnxsk0pyr7z";
-      name = "kcoreaddons-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcoreaddons-5.110.0.tar.xz";
+      sha256 = "0xcd2ph62a7kbm8camp1vnsxlaq1kmqm9hw9gyphcdh0rh6fi3bf";
+      name = "kcoreaddons-5.110.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kcrash-5.109.0.tar.xz";
-      sha256 = "1yvnnbsxq37q3rbghy4ynhd2578ld6zrxz5glgwv8krzh13x35if";
-      name = "kcrash-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kcrash-5.110.0.tar.xz";
+      sha256 = "15j70r6afc0lyg41047r27l089gkq8fh39w9iyvhv0h8hfxxah6g";
+      name = "kcrash-5.110.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kdav-5.109.0.tar.xz";
-      sha256 = "080nj1m9ds4h47vgacmg01kh44qbf7xlzvg0ax8sv517p8h9vdn8";
-      name = "kdav-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kdav-5.110.0.tar.xz";
+      sha256 = "0qz5iq9fi1vk1z7w4wdh7kxrc06vnyrvs7n0llyrjaprzjn8yx6a";
+      name = "kdav-5.110.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kdbusaddons-5.109.0.tar.xz";
-      sha256 = "0dghclcj5xakffj4567c9nfgcd009wnzass068d781h03ay7c615";
-      name = "kdbusaddons-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kdbusaddons-5.110.0.tar.xz";
+      sha256 = "0ilzk67h5cxrjf78hw505pvbqvd2lkjk3m0g188pcw0sdg10xb8h";
+      name = "kdbusaddons-5.110.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kdeclarative-5.109.0.tar.xz";
-      sha256 = "1qrp255wylmynhkha1vrswvqdzfamv4vwq4j1sk74bvc5sxla9d2";
-      name = "kdeclarative-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kdeclarative-5.110.0.tar.xz";
+      sha256 = "1vcqdi4lji97wm5vil2p1g7wi6rwrz0g6aiqf1nzi026fpsc8njj";
+      name = "kdeclarative-5.110.0.tar.xz";
     };
   };
   kded = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kded-5.109.0.tar.xz";
-      sha256 = "14v262f5rv1s504kj1g97brfya62vpvkx01qf5i7n71s29ymsfry";
-      name = "kded-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kded-5.110.0.tar.xz";
+      sha256 = "1n8hzkwhqrx4mb7ahqnkga01zslcp82ya22hppfapldy83bfrgyl";
+      name = "kded-5.110.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kdelibs4support-5.109.0.tar.xz";
-      sha256 = "06za54isyk6ygywy78s0b2zi09lcwv1ay5h69sz9vkri6b3856i0";
-      name = "kdelibs4support-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kdelibs4support-5.110.0.tar.xz";
+      sha256 = "119hhc0f862kzr5flrlpg9b8xlcl1qxa5xkccad0hpba76pk2af4";
+      name = "kdelibs4support-5.110.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kdesignerplugin-5.109.0.tar.xz";
-      sha256 = "0afbj0hkrw98xw6v9saim6gpckvmkzl6f1qlx6vsl54yghysih9d";
-      name = "kdesignerplugin-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kdesignerplugin-5.110.0.tar.xz";
+      sha256 = "146i8n9rrajh03x180z48qi8dn31dywsz052bhbn4yw61ag4w4nc";
+      name = "kdesignerplugin-5.110.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kdesu-5.109.0.tar.xz";
-      sha256 = "05fla14ar2418frvdw4ygp0zy6d00c50q9w8a3rw7qa91crh08zy";
-      name = "kdesu-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kdesu-5.110.0.tar.xz";
+      sha256 = "0ll5k4lpn1v4bc365w2ky0qszikfz2r589ni8iyk109qdqciyrr9";
+      name = "kdesu-5.110.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kdewebkit-5.109.0.tar.xz";
-      sha256 = "052mznnjhvpjvd5blrj7xiq6kqjabckwpixmfpv9km4rqpmc11wl";
-      name = "kdewebkit-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kdewebkit-5.110.0.tar.xz";
+      sha256 = "0p09lby7csx3j513lm91k247iwxby423cz7da51n20qncan8g65v";
+      name = "kdewebkit-5.110.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kdnssd-5.109.0.tar.xz";
-      sha256 = "0gc8wmxzv0k9p1cj1bri78b9f7fpd0zbiq4q6j8ad9xhyg3nlmrp";
-      name = "kdnssd-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kdnssd-5.110.0.tar.xz";
+      sha256 = "0xmahgn572ah8ji4d4afalcl7r2krn971ix5jwcqgrj57m5haj45";
+      name = "kdnssd-5.110.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kdoctools-5.109.0.tar.xz";
-      sha256 = "17g6a19ayy4p9xws1dp4336wp8c9x1r1cfdyvbcmfn5s09g5nkm4";
-      name = "kdoctools-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kdoctools-5.110.0.tar.xz";
+      sha256 = "1g05gppc6qzkag1x18anymbwdswpg32w6jh12x9jfj79vcp7wg4j";
+      name = "kdoctools-5.110.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kemoticons-5.109.0.tar.xz";
-      sha256 = "0sy86by8n6nhrv4vr1rydrzp4yif5iw5wrbq6wnk3wi1nva1v8ph";
-      name = "kemoticons-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kemoticons-5.110.0.tar.xz";
+      sha256 = "1r1d3kw6wzw63kq9wy4ic2b9hcnmm4rs7v9f1z9jhq9m1jp0zy12";
+      name = "kemoticons-5.110.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kfilemetadata-5.109.0.tar.xz";
-      sha256 = "1smlj047vsg1j505si8fxl5cr3245f8k07ng1bhdwsdvrf1dl95m";
-      name = "kfilemetadata-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kfilemetadata-5.110.0.tar.xz";
+      sha256 = "07ma48iq5vpnj391shm3s9an3rqhxskfziw6pksmzxxnga0whbl9";
+      name = "kfilemetadata-5.110.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kglobalaccel-5.109.0.tar.xz";
-      sha256 = "1qm9s7ibm4hq8i139d9hdrhdgcdf6r8r34z4rdb4v3v2nfkmx3m5";
-      name = "kglobalaccel-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kglobalaccel-5.110.0.tar.xz";
+      sha256 = "1iw22vyrk07pzcsh41cvfp8i8589jm1yqn1cx1ad5rmryzsjalzp";
+      name = "kglobalaccel-5.110.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kguiaddons-5.109.0.tar.xz";
-      sha256 = "1gbzrqvg7j534idy6sy5k8lziqv0pq4b9fmndhv0yqxjn71ncz90";
-      name = "kguiaddons-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kguiaddons-5.110.0.tar.xz";
+      sha256 = "0ajmxj8nhis6f4hwd64s9qfw3hbip80xrdy3d1wksykbq7g5b89c";
+      name = "kguiaddons-5.110.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kholidays-5.109.0.tar.xz";
-      sha256 = "0kbg7g1hd40zzjd261rzzpj408yg7dwkgmvcgcqpwy1wcniilnh2";
-      name = "kholidays-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kholidays-5.110.0.tar.xz";
+      sha256 = "0zikajmic93wqgy9865pf61sdlnsyzzf2jal7bj25is7a1mk8mjc";
+      name = "kholidays-5.110.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/khtml-5.109.0.tar.xz";
-      sha256 = "1rr54xx842dxbvf78srfmgylgc3j7c6lyk579j4x92i1hd2fgaar";
-      name = "khtml-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/khtml-5.110.0.tar.xz";
+      sha256 = "17d87vjim32mn0s1d9zl9342aamqg4xmi6xh6d8ghrgms3vqc7in";
+      name = "khtml-5.110.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/ki18n-5.109.0.tar.xz";
-      sha256 = "0ifzbj5w910q93dw0zm24bdjx64cn1f336a1aqp1wb089fwnr2yx";
-      name = "ki18n-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/ki18n-5.110.0.tar.xz";
+      sha256 = "03qks9kncvazq2wz3myrjgz5m0gjxm80m1ayv9vjndyyc74a9smw";
+      name = "ki18n-5.110.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kiconthemes-5.109.0.tar.xz";
-      sha256 = "0v76d17kaqvsfq7y2lpa6sqd579m4zzbg0q6d4i81q78vfrzn6fk";
-      name = "kiconthemes-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kiconthemes-5.110.0.tar.xz";
+      sha256 = "0bb6r7jaknjyhyjhdrlji320qgb7cgxshcgab0209zk8dl8a510d";
+      name = "kiconthemes-5.110.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kidletime-5.109.0.tar.xz";
-      sha256 = "1pra4a0wh3smgk31814dkd1rqfralzhccid0c9rpi1h3wyk1lfs4";
-      name = "kidletime-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kidletime-5.110.0.tar.xz";
+      sha256 = "0hc30778d1k0vm4qsp58cf3d5bnws328qxazm8d5a6kxdc7izz44";
+      name = "kidletime-5.110.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kimageformats-5.109.0.tar.xz";
-      sha256 = "11qnb7mh6c6jzh98l4frzzmrr2pk6nhqwjq9l06py67sl0dkwlqm";
-      name = "kimageformats-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kimageformats-5.110.0.tar.xz";
+      sha256 = "0ivks2c2kgd26pr0n0b4x3hb7dmmq52vlp7f6ny14qpvm3cgnscd";
+      name = "kimageformats-5.110.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kinit-5.109.0.tar.xz";
-      sha256 = "18p186bxn438v79ssgf8wlp9ds7silpvqjwgcbh9kjh2k17jv4ax";
-      name = "kinit-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kinit-5.110.0.tar.xz";
+      sha256 = "0ps2299hf02yvgs971cb4bljbmdbcvcmm2xqz6q0h8asjkpkilv5";
+      name = "kinit-5.110.0.tar.xz";
     };
   };
   kio = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kio-5.109.0.tar.xz";
-      sha256 = "0qhckh2a2823fh3dijzvfrja7ashn67gyqpny3234nbz2vpnjnpn";
-      name = "kio-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kio-5.110.0.tar.xz";
+      sha256 = "0sy91zlk60q5jligxp870srfc6fhd3fyk5yamkg266yfvyy9m3r2";
+      name = "kio-5.110.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kirigami2-5.109.0.tar.xz";
-      sha256 = "1zf0rz86y1lja47f0zv8q9dwghjlqxqqkv6val9h2qqqihc6p2yc";
-      name = "kirigami2-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kirigami2-5.110.0.tar.xz";
+      sha256 = "13j9z0nha3wq97apgkj43bayqijpgy6a2l7f9iryww054aqdjggx";
+      name = "kirigami2-5.110.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kitemmodels-5.109.0.tar.xz";
-      sha256 = "1w5h7asmgq8fmcm3329qjm113m7a9hpfdk4hvkmj919nfsdfbw0n";
-      name = "kitemmodels-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kitemmodels-5.110.0.tar.xz";
+      sha256 = "06gym33644npci4crhykyfyp2v74pya72kdzmqh4lkzp252pyfhj";
+      name = "kitemmodels-5.110.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kitemviews-5.109.0.tar.xz";
-      sha256 = "1af2v0a2abxjn60d2yd3xj2khhy37a76gxmb0k8sjdvpy2wznnad";
-      name = "kitemviews-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kitemviews-5.110.0.tar.xz";
+      sha256 = "1nqbypn0crbaqa8x19z0fh8mqbr8wbf8nc8wg0irzp32js9vcqyp";
+      name = "kitemviews-5.110.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kjobwidgets-5.109.0.tar.xz";
-      sha256 = "1dy2lx89v5hlvj37g1vc0bzbgya2sl1i17bwjpzl53461nwda3l6";
-      name = "kjobwidgets-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kjobwidgets-5.110.0.tar.xz";
+      sha256 = "1bl7igakmh1ipiamigs5s8fj6fy905b3j1dqgq9hxdxk59k1r1h2";
+      name = "kjobwidgets-5.110.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kjs-5.109.0.tar.xz";
-      sha256 = "0ghki0b8jh41kjgi7cj6gvjhr7kxdhygyzsfrxacbhb2av4bxx55";
-      name = "kjs-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kjs-5.110.0.tar.xz";
+      sha256 = "0xlkdi7qs75ipf87h8m7bvjn4l28y5qy20hvag1gc370fxz54v15";
+      name = "kjs-5.110.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kjsembed-5.109.0.tar.xz";
-      sha256 = "1pbqq0nybdmp5yphzr30ms772l4d0x24svr51dwg3pksnm8hpb9r";
-      name = "kjsembed-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kjsembed-5.110.0.tar.xz";
+      sha256 = "1ynmj8ac9g9amjz0ljz3wf7sjsrwmz1kfi26r36rpqlf9mmkzfqm";
+      name = "kjsembed-5.110.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kmediaplayer-5.109.0.tar.xz";
-      sha256 = "09snwxf551j5vg558fxjlrlz13zcvzxl5zj030znxb1jsdvsjqlc";
-      name = "kmediaplayer-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kmediaplayer-5.110.0.tar.xz";
+      sha256 = "1jhh3gsbibi2hrhswg1nz1mdxn2wir5p9cvqpcqv7k8vm6rb82z3";
+      name = "kmediaplayer-5.110.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/knewstuff-5.109.0.tar.xz";
-      sha256 = "0vh7l7pqhsb1nm5pcs86rgrf4i5c9ibfr58b9wnf054a3w6fgj1z";
-      name = "knewstuff-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/knewstuff-5.110.0.tar.xz";
+      sha256 = "0qld8ijy7z60qdlwa9vaq905xgzyvh5zw6ymngs00axl33m9bbbl";
+      name = "knewstuff-5.110.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/knotifications-5.109.0.tar.xz";
-      sha256 = "0gf19mh5qy2bxvn4bnj9hb5vbf13hcl827gz1kdcv7bkh0fb9c8j";
-      name = "knotifications-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/knotifications-5.110.0.tar.xz";
+      sha256 = "0zm3d36v9dgqb3pdwpj962wpngfhq08q9x9rj99f88g9dlnmy6gm";
+      name = "knotifications-5.110.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/knotifyconfig-5.109.0.tar.xz";
-      sha256 = "1la8xwfmngkbk6pnfi0imr5452d6w5pprki7cc5rkwa8cbyrx7ls";
-      name = "knotifyconfig-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/knotifyconfig-5.110.0.tar.xz";
+      sha256 = "1651rh0av8lqp8rmb3djizsb8ypihkabprgppla3af2xf446n7wp";
+      name = "knotifyconfig-5.110.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kpackage-5.109.0.tar.xz";
-      sha256 = "0fxzmmig1674rp81s4f214azf8np2ckdygn2z8zbn169c6zaqbbq";
-      name = "kpackage-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kpackage-5.110.0.tar.xz";
+      sha256 = "1jd85m7pxzah9d6b3zi2nswvsinx85brkiq142vic5l0rm6l89id";
+      name = "kpackage-5.110.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kparts-5.109.0.tar.xz";
-      sha256 = "17pp6ivhwzv7pcaka1sj25nrcapp01z7ddhyvblh88hcq3waa7bb";
-      name = "kparts-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kparts-5.110.0.tar.xz";
+      sha256 = "13av8v2kggbvyv8nxganjb88q38g3gbykbkwrigywc3767p838r3";
+      name = "kparts-5.110.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kpeople-5.109.0.tar.xz";
-      sha256 = "1gmryk89gac6krhfj68iq989zgjh0gpd4fj1p3jpqgxf688p2pix";
-      name = "kpeople-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kpeople-5.110.0.tar.xz";
+      sha256 = "10drcfjcw00qhdlsficxb07hnnsd93smcig8argznpgwd61f807p";
+      name = "kpeople-5.110.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kplotting-5.109.0.tar.xz";
-      sha256 = "0506wah3343l6wpncgarzsjl8jwy0av2xm8p6rmx1zvzph3m84fj";
-      name = "kplotting-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kplotting-5.110.0.tar.xz";
+      sha256 = "1fbzy9k0gx1468qsdd1c8fqaml3c01yy0m6n205y3ymkca78hdbk";
+      name = "kplotting-5.110.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kpty-5.109.0.tar.xz";
-      sha256 = "1w0w0ly7gc5vc2g7z73fmn3bq8cn06h6s214ydsn5byf0awn41lq";
-      name = "kpty-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kpty-5.110.0.tar.xz";
+      sha256 = "1cx9wszi9zlay0vb9wz9hgbmbq006xgssnzzrmby4q4s6bhb92ps";
+      name = "kpty-5.110.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kquickcharts-5.109.0.tar.xz";
-      sha256 = "1bd1v4yvmxp82j09wrb8vncyb61bq6j8zrhgiiq73darcgsqfcvl";
-      name = "kquickcharts-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kquickcharts-5.110.0.tar.xz";
+      sha256 = "0s8xnsmhx2m6wn7fmmddzwnwc2yr3kvy85vd65m3avfw073rgj5v";
+      name = "kquickcharts-5.110.0.tar.xz";
     };
   };
   kross = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kross-5.109.0.tar.xz";
-      sha256 = "1gzmfbzbj0r3znwlrpgrzpgrq7sgw8g3jx2rmqnm80si4cnq11hg";
-      name = "kross-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kross-5.110.0.tar.xz";
+      sha256 = "169zsxrmbdv5xn6s0wmf1l2a3qghn88hgl714i0cnymq5ixy25x5";
+      name = "kross-5.110.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/krunner-5.109.0.tar.xz";
-      sha256 = "0pzk8srglshniqi3z9j290zxfjxh817ki69j1xcicjk48p3s232w";
-      name = "krunner-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/krunner-5.110.0.tar.xz";
+      sha256 = "0q3jhq2cswnqj5rdkxhizlv06rsxsm38ipxhcsw6p8zqabi1i351";
+      name = "krunner-5.110.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kservice-5.109.0.tar.xz";
-      sha256 = "15b97bdr3sv3vfgb5zydqg1b8nljxx4rxh8bsvld520d11xfivsy";
-      name = "kservice-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kservice-5.110.0.tar.xz";
+      sha256 = "0rin6v96mcmw53dzw8sw56g7188623d1k4vs18bv44l86gixdhgg";
+      name = "kservice-5.110.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/ktexteditor-5.109.0.tar.xz";
-      sha256 = "1bgjj9wva884kzd0ywpx34k8wgzdpjnn28yfqjqynmkikr9br8fw";
-      name = "ktexteditor-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/ktexteditor-5.110.0.tar.xz";
+      sha256 = "0iwzw51km3mr8kdva14mxz9bvcfcf09v5igah2axkjaxazxyigla";
+      name = "ktexteditor-5.110.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/ktextwidgets-5.109.0.tar.xz";
-      sha256 = "180x3rblab5yk6lmbd2310552dhn3vfjalccraq3rqzgvvkh439q";
-      name = "ktextwidgets-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/ktextwidgets-5.110.0.tar.xz";
+      sha256 = "0cr7n58mak928dysyqhsr1pj0w90amikx9jav4gs4lzb4m4rjp7q";
+      name = "ktextwidgets-5.110.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kunitconversion-5.109.0.tar.xz";
-      sha256 = "1n46qj6am3mkg2apq9g5kvpxvgv0czzvr2a8jqv6rj677ii0kfhl";
-      name = "kunitconversion-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kunitconversion-5.110.0.tar.xz";
+      sha256 = "083w0gz157j2g8qzm03yq3qwq58wafcq26qcc2ly2fksyyxkzzda";
+      name = "kunitconversion-5.110.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kwallet-5.109.0.tar.xz";
-      sha256 = "1s34lwi42pkiqyd16mvy5w6khlrpk0dp5v3q37fysmc39q670s4c";
-      name = "kwallet-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kwallet-5.110.0.tar.xz";
+      sha256 = "0mg5y8cvzvs7w3yy5xnpsps2b6m476l5ilw5kvarrjjpq7ybnkqz";
+      name = "kwallet-5.110.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kwayland-5.109.0.tar.xz";
-      sha256 = "1pi515hszipy7f1fy4xaabcy9ifrynj0fk3zrnb0827d71ljd2yq";
-      name = "kwayland-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kwayland-5.110.0.tar.xz";
+      sha256 = "0ggxvywvqfhhhb5370n90dyw0mjwkp3i7rgv58nyqsmby0g08r85";
+      name = "kwayland-5.110.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kwidgetsaddons-5.109.0.tar.xz";
-      sha256 = "1qp2jab238gs88f12hp5h533x25nlsm5ca3gr04imdsiygwp506n";
-      name = "kwidgetsaddons-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kwidgetsaddons-5.110.0.tar.xz";
+      sha256 = "1cyphs0r5j2v93pwi9mbn6xd928lnhb0zmyfj5pywdx9n7lv0x6a";
+      name = "kwidgetsaddons-5.110.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kwindowsystem-5.109.0.tar.xz";
-      sha256 = "18n1g5k2dwwdkpyh5vsqfks4qym4z3f39pgcnr9mnyrnzz4pb008";
-      name = "kwindowsystem-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kwindowsystem-5.110.0.tar.xz";
+      sha256 = "0l3aknr3zqz9zwqlyhnr8n53bcfb22rm38vdiv0l5vpwjbjn0270";
+      name = "kwindowsystem-5.110.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/kxmlgui-5.109.0.tar.xz";
-      sha256 = "1vnsk8jq7s6hgxc9d1dbcdgd9qyf9s2bc3mc0rss10dkpwrls2dl";
-      name = "kxmlgui-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/kxmlgui-5.110.0.tar.xz";
+      sha256 = "1j8v52ix9sv7q76cvl2gnpjs602ri57kgfh21bvqd88gf2xnwxjq";
+      name = "kxmlgui-5.110.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/portingAids/kxmlrpcclient-5.109.0.tar.xz";
-      sha256 = "1d6hf53rrjql4yvlc35fxdra5zvjl06piaiahqbrg7dqkwl88xdj";
-      name = "kxmlrpcclient-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/portingAids/kxmlrpcclient-5.110.0.tar.xz";
+      sha256 = "0fzd9amj2j4bw54q8fbgczqf785s6siqr1a8wbqf56wyyhki5psx";
+      name = "kxmlrpcclient-5.110.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/modemmanager-qt-5.109.0.tar.xz";
-      sha256 = "1a2nmpl74r813xa3yqql91rh6cmp1sc1wh6627z3av04ir94x5zj";
-      name = "modemmanager-qt-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/modemmanager-qt-5.110.0.tar.xz";
+      sha256 = "08q43arx9q81rqwhczzcn4cyl5glalwzjncb120a2cihida2m71v";
+      name = "modemmanager-qt-5.110.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/networkmanager-qt-5.109.0.tar.xz";
-      sha256 = "0ggyv5ml2668vj0hgajmfvs7i95hi3asdb7sb6sciirg71vmshbz";
-      name = "networkmanager-qt-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/networkmanager-qt-5.110.0.tar.xz";
+      sha256 = "1bnlvpfhw6l64rgaxx9zkxd5wmwvyal5xmv31vxzf92ig6sgjdqq";
+      name = "networkmanager-qt-5.110.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/oxygen-icons5-5.109.0.tar.xz";
-      sha256 = "02f6flvgxnqggn7j638z7iny4nxgdvq5rqz4va1wvwj5ck0v9prb";
-      name = "oxygen-icons5-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/oxygen-icons5-5.110.0.tar.xz";
+      sha256 = "1dmig458gbl0ypb99kj514nwl5gbjpfvixw9lipgc2wwnn1nkia2";
+      name = "oxygen-icons5-5.110.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/plasma-framework-5.109.0.tar.xz";
-      sha256 = "138r00ya985n8ygi28yfmq1i32kai2y1r0h97i09m6zd6v0x23k1";
-      name = "plasma-framework-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/plasma-framework-5.110.0.tar.xz";
+      sha256 = "0jfln8lrzmcnkqhl8pij5w6mdj6g25rwc332f07g9465y9ap07cf";
+      name = "plasma-framework-5.110.0.tar.xz";
     };
   };
   prison = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/prison-5.109.0.tar.xz";
-      sha256 = "1pmwx1ch6jmq96xh778slmm3hd0gci8hn3wwmbj3amx2mpddf2c1";
-      name = "prison-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/prison-5.110.0.tar.xz";
+      sha256 = "019a3z18gq7nb3ahf5dd3b5fixzyfklg60dk2w4win2w19s70wb7";
+      name = "prison-5.110.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/purpose-5.109.0.tar.xz";
-      sha256 = "04nczmx08fxrazzsd45jjcvfmsbilvqz4rsf8zcdh0nmlcpmncri";
-      name = "purpose-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/purpose-5.110.0.tar.xz";
+      sha256 = "0nl6qh7j5c3ijnq0qw1a5jmj1x5nb9hlssjjn8fdvfr7q6z67rsc";
+      name = "purpose-5.110.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/qqc2-desktop-style-5.109.0.tar.xz";
-      sha256 = "0fqck5sck8zy70r2mls5g3sgjryvrzibhzls4lbw61yw3zgbl3kh";
-      name = "qqc2-desktop-style-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/qqc2-desktop-style-5.110.0.tar.xz";
+      sha256 = "04pyhlr89azw0kyjxfpx6phxljck8yiflcszd4xkgiw3n9rjyg3g";
+      name = "qqc2-desktop-style-5.110.0.tar.xz";
     };
   };
   solid = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/solid-5.109.0.tar.xz";
-      sha256 = "0sfm9c5r2bh766ws2y8zr9pshkbnxnc3dnsxfi41lwcj2xnznkdw";
-      name = "solid-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/solid-5.110.0.tar.xz";
+      sha256 = "1k64cqlws7nxki21cwg197avfnxsxpw3isry5p7bqyfmq45ydcvd";
+      name = "solid-5.110.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/sonnet-5.109.0.tar.xz";
-      sha256 = "1fpf8q0wx821zfm64kfmpsfyixd8d6rd0gzcbzwimxmmm1aacfsr";
-      name = "sonnet-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/sonnet-5.110.0.tar.xz";
+      sha256 = "16qk63yy1y03z4rlc08qzr7mmds1yz0k9x1ws2nzp47khkza250i";
+      name = "sonnet-5.110.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/syndication-5.109.0.tar.xz";
-      sha256 = "1jhmv39jv6h8yq9c3y6ikx6bykff6n9l522q7bp1prg1p03a4q95";
-      name = "syndication-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/syndication-5.110.0.tar.xz";
+      sha256 = "0dsd05ckfv9fdnrbgprriba7lbbfs2z9qv869pcr4n7pn7x778sd";
+      name = "syndication-5.110.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/syntax-highlighting-5.109.0.tar.xz";
-      sha256 = "1ixms1vcf9ydk6qgz42g61ac6bqkmbb313k51ymk7kidx7l7lqwy";
-      name = "syntax-highlighting-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/syntax-highlighting-5.110.0.tar.xz";
+      sha256 = "0gbmgan0cy4xhjcf10g0lffhwvkhhpcgbnk190xlzl4chnmpq9w5";
+      name = "syntax-highlighting-5.110.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.109.0";
+    version = "5.110.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.109/threadweaver-5.109.0.tar.xz";
-      sha256 = "1q6jqawfbwjcfqd57aryd2bw52adkr05lrbij98pix6482am4x3j";
-      name = "threadweaver-5.109.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.110/threadweaver-5.110.0.tar.xz";
+      sha256 = "085y4m7z0rybsvpqzl2sjwnf8yjm4lnc3n49idj2c0psm8v5ksm0";
+      name = "threadweaver-5.110.0.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/ldb/default.nix b/nixpkgs/pkgs/development/libraries/ldb/default.nix
index 753dee9e3f0c..95547fb6382a 100644
--- a/nixpkgs/pkgs/development/libraries/ldb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ldb/default.nix
@@ -11,7 +11,7 @@
 , docbook-xsl-nons
 , docbook_xml_dtd_42
 , cmocka
-, waf
+, wafHook
 , libxcrypt
 }:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkg-config
     python3
-    waf.hook
+    wafHook
     libxslt
     docbook-xsl-nons
     docbook_xml_dtd_42
diff --git a/nixpkgs/pkgs/development/libraries/libcef/default.nix b/nixpkgs/pkgs/development/libraries/libcef/default.nix
index 3863710f3c8c..c63ef6d2dc61 100644
--- a/nixpkgs/pkgs/development/libraries/libcef/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcef/default.nix
@@ -66,16 +66,16 @@ let
       projectArch = "x86_64";
     };
   };
-  platforms."aarch64-linux".sha256 = "0xzgcnh45x3sqg0jndp9g08zy9bvzvmvfz8imj12j55vkm6f7kl6";
-  platforms."x86_64-linux".sha256 = "1942mwlyrz5pxlx9kcnz85rqbz8q8slkivx0001z30l7a6pizgg5";
+  platforms."aarch64-linux".sha256 = "1d3ign2bhv1821k0jgmakzgqlpwy358iggrgxnbxswa42ckk9m6d";
+  platforms."x86_64-linux".sha256 = "188hd7b11963f23y9rb0n747ssffdc80cdr1hpgwn55cmwhd8gbj";
 
   platformInfo = builtins.getAttr stdenv.targetPlatform.system platforms;
 in
 stdenv.mkDerivation rec {
   pname = "cef-binary";
-  version = "116.0.20";
-  gitRevision = "d6abd3c";
-  chromiumVersion = "116.0.5845.180";
+  version = "116.0.21";
+  gitRevision = "9c7dc32";
+  chromiumVersion = "116.0.5845.181";
 
   src = fetchurl {
     url = "https://cef-builds.spotifycdn.com/cef_binary_${version}+g${gitRevision}+chromium-${chromiumVersion}_${platformInfo.platformStr}_minimal.tar.bz2";
diff --git a/nixpkgs/pkgs/development/libraries/libinput/default.nix b/nixpkgs/pkgs/development/libraries/libinput/default.nix
index c8e9efdfa770..a159a1fb5f62 100644
--- a/nixpkgs/pkgs/development/libraries/libinput/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinput/default.nix
@@ -45,7 +45,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "libinput";
-  version = "1.23.0";
+  version = "1.24.0";
 
   outputs = [ "bin" "out" "dev" ];
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     owner = "libinput";
     repo = "libinput";
     rev = version;
-    sha256 = "7Wxriy1fVsfAhcfhOhuvLehhmQYrQ2IgZTK53bt12HI=";
+    sha256 = "sha256-gTcgEZ7cs4jq8w5Genxtio9nVFy7y3n0nNXJ6SVtYHY=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libkcapi/default.nix b/nixpkgs/pkgs/development/libraries/libkcapi/default.nix
new file mode 100644
index 000000000000..bee1ac93598c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libkcapi/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, autoreconfHook
+, buildPackages
+  # libkcapi offers multiple tools. They can be disabled for minimization.
+, kcapi-test ? true
+, kcapi-speed ? true
+, kcapi-hasher ? true
+, kcapi-rngapp ? true
+, kcapi-encapp ? true
+, kcapi-dgstapp ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libkcapi";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "smuellerDD";
+    repo = "libkcapi";
+    rev = "v${version}";
+    hash = "sha256-G/4G8179Gc8RfQfQImOCsBC8WXKK7jQJfUSXm0hYLJ0=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  # libkcapi looks also for a host c compiler when cross-compiling
+  # otherwise you obtain following error message:
+  # "error: no acceptable C compiler found in $PATH"
+  depsBuildBuild = [
+    buildPackages.stdenv.cc
+  ];
+
+  enableParallelBuilding = true;
+
+  configureFlags =
+    lib.optional kcapi-test "--enable-kcapi-test" ++
+    lib.optional kcapi-speed "--enable-kcapi-speed" ++
+    lib.optional kcapi-hasher "--enable-kcapi-hasher" ++
+    lib.optional kcapi-rngapp "--enable-kcapi-rngapp" ++
+    lib.optional kcapi-encapp "--enable-kcapi-encapp" ++
+    lib.optional kcapi-dgstapp "--enable-kcapi-dgstapp"
+  ;
+
+  meta = {
+    homepage = "http://www.chronox.de/libkcapi.html";
+    description = "Linux Kernel Crypto API User Space Interface Library";
+    license = with lib.licenses; [ bsd3 gpl2Only ];
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ orichter thillux ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
index 9b63d4aa38e7..658a24b8d814 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
@@ -114,13 +114,13 @@ stdenv.mkDerivation rec {
   # NOTE: You must also bump:
   # <nixpkgs/pkgs/development/python-modules/libvirt/default.nix>
   # SysVirt in <nixpkgs/pkgs/top-level/perl-packages.nix>
-  version = "9.6.0";
+  version = "9.7.0";
 
   src = fetchFromGitLab {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-dQr6bUaZOX1MN+MZxbsPqbv3bsyyWBM0SBYlSnV04K0=";
+    sha256 = "sha256-7huo2UsbNG/HG2dpdVT5qcJuFmYZE6Jdave8Gb1kHME=";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libwebp/CVE-2023-4863.patch b/nixpkgs/pkgs/development/libraries/libwebp/CVE-2023-4863.patch
new file mode 100644
index 000000000000..c01b8a486675
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libwebp/CVE-2023-4863.patch
@@ -0,0 +1,361 @@
+From 4de93ac70c3292fc944e4587101a52a29f8b0c9c Mon Sep 17 00:00:00 2001
+From: Vincent Rabaud <vrabaud@google.com>
+Date: Thu, 7 Sep 2023 21:16:03 +0200
+Subject: [PATCH] Fix OOB write in BuildHuffmanTable.
+
+First, BuildHuffmanTable is called to check if the data is valid.
+If it is and the table is not big enough, more memory is allocated.
+
+This will make sure that valid (but unoptimized because of unbalanced
+codes) streams are still decodable.
+
+Bug: chromium:1479274
+Change-Id: I31c36dbf3aa78d35ecf38706b50464fd3d375741
+(cherry picked from commit 902bc9190331343b2017211debcec8d2ab87e17a)
+---
+ src/dec/vp8l_dec.c        | 46 ++++++++++---------
+ src/dec/vp8li_dec.h       |  2 +-
+ src/utils/huffman_utils.c | 97 +++++++++++++++++++++++++++++++--------
+ src/utils/huffman_utils.h | 27 +++++++++--
+ 4 files changed, 129 insertions(+), 43 deletions(-)
+
+diff --git a/src/dec/vp8l_dec.c b/src/dec/vp8l_dec.c
+index c0ea0181..7995313f 100644
+--- a/src/dec/vp8l_dec.c
++++ b/src/dec/vp8l_dec.c
+@@ -253,11 +253,11 @@ static int ReadHuffmanCodeLengths(
+   int symbol;
+   int max_symbol;
+   int prev_code_len = DEFAULT_CODE_LENGTH;
+-  HuffmanCode table[1 << LENGTHS_TABLE_BITS];
++  HuffmanTables tables;
+ 
+-  if (!VP8LBuildHuffmanTable(table, LENGTHS_TABLE_BITS,
+-                             code_length_code_lengths,
+-                             NUM_CODE_LENGTH_CODES)) {
++  if (!VP8LHuffmanTablesAllocate(1 << LENGTHS_TABLE_BITS, &tables) ||
++      !VP8LBuildHuffmanTable(&tables, LENGTHS_TABLE_BITS,
++                             code_length_code_lengths, NUM_CODE_LENGTH_CODES)) {
+     goto End;
+   }
+ 
+@@ -277,7 +277,7 @@ static int ReadHuffmanCodeLengths(
+     int code_len;
+     if (max_symbol-- == 0) break;
+     VP8LFillBitWindow(br);
+-    p = &table[VP8LPrefetchBits(br) & LENGTHS_TABLE_MASK];
++    p = &tables.curr_segment->start[VP8LPrefetchBits(br) & LENGTHS_TABLE_MASK];
+     VP8LSetBitPos(br, br->bit_pos_ + p->bits);
+     code_len = p->value;
+     if (code_len < kCodeLengthLiterals) {
+@@ -300,6 +300,7 @@ static int ReadHuffmanCodeLengths(
+   ok = 1;
+ 
+  End:
++  VP8LHuffmanTablesDeallocate(&tables);
+   if (!ok) dec->status_ = VP8_STATUS_BITSTREAM_ERROR;
+   return ok;
+ }
+@@ -307,7 +308,8 @@ static int ReadHuffmanCodeLengths(
+ // 'code_lengths' is pre-allocated temporary buffer, used for creating Huffman
+ // tree.
+ static int ReadHuffmanCode(int alphabet_size, VP8LDecoder* const dec,
+-                           int* const code_lengths, HuffmanCode* const table) {
++                           int* const code_lengths,
++                           HuffmanTables* const table) {
+   int ok = 0;
+   int size = 0;
+   VP8LBitReader* const br = &dec->br_;
+@@ -362,8 +364,7 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+   VP8LMetadata* const hdr = &dec->hdr_;
+   uint32_t* huffman_image = NULL;
+   HTreeGroup* htree_groups = NULL;
+-  HuffmanCode* huffman_tables = NULL;
+-  HuffmanCode* huffman_table = NULL;
++  HuffmanTables* huffman_tables = &hdr->huffman_tables_;
+   int num_htree_groups = 1;
+   int num_htree_groups_max = 1;
+   int max_alphabet_size = 0;
+@@ -372,6 +373,10 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+   int* mapping = NULL;
+   int ok = 0;
+ 
++  // Check the table has been 0 initialized (through InitMetadata).
++  assert(huffman_tables->root.start == NULL);
++  assert(huffman_tables->curr_segment == NULL);
++
+   if (allow_recursion && VP8LReadBits(br, 1)) {
+     // use meta Huffman codes.
+     const int huffman_precision = VP8LReadBits(br, 3) + 2;
+@@ -434,16 +439,15 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+ 
+   code_lengths = (int*)WebPSafeCalloc((uint64_t)max_alphabet_size,
+                                       sizeof(*code_lengths));
+-  huffman_tables = (HuffmanCode*)WebPSafeMalloc(num_htree_groups * table_size,
+-                                                sizeof(*huffman_tables));
+   htree_groups = VP8LHtreeGroupsNew(num_htree_groups);
+ 
+-  if (htree_groups == NULL || code_lengths == NULL || huffman_tables == NULL) {
++  if (htree_groups == NULL || code_lengths == NULL ||
++      !VP8LHuffmanTablesAllocate(num_htree_groups * table_size,
++                                 huffman_tables)) {
+     dec->status_ = VP8_STATUS_OUT_OF_MEMORY;
+     goto Error;
+   }
+ 
+-  huffman_table = huffman_tables;
+   for (i = 0; i < num_htree_groups_max; ++i) {
+     // If the index "i" is unused in the Huffman image, just make sure the
+     // coefficients are valid but do not store them.
+@@ -468,19 +472,20 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+       int max_bits = 0;
+       for (j = 0; j < HUFFMAN_CODES_PER_META_CODE; ++j) {
+         int alphabet_size = kAlphabetSize[j];
+-        htrees[j] = huffman_table;
+         if (j == 0 && color_cache_bits > 0) {
+           alphabet_size += (1 << color_cache_bits);
+         }
+-        size = ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_table);
++        size =
++            ReadHuffmanCode(alphabet_size, dec, code_lengths, huffman_tables);
++        htrees[j] = huffman_tables->curr_segment->curr_table;
+         if (size == 0) {
+           goto Error;
+         }
+         if (is_trivial_literal && kLiteralMap[j] == 1) {
+-          is_trivial_literal = (huffman_table->bits == 0);
++          is_trivial_literal = (htrees[j]->bits == 0);
+         }
+-        total_size += huffman_table->bits;
+-        huffman_table += size;
++        total_size += htrees[j]->bits;
++        huffman_tables->curr_segment->curr_table += size;
+         if (j <= ALPHA) {
+           int local_max_bits = code_lengths[0];
+           int k;
+@@ -515,14 +520,13 @@ static int ReadHuffmanCodes(VP8LDecoder* const dec, int xsize, int ysize,
+   hdr->huffman_image_ = huffman_image;
+   hdr->num_htree_groups_ = num_htree_groups;
+   hdr->htree_groups_ = htree_groups;
+-  hdr->huffman_tables_ = huffman_tables;
+ 
+  Error:
+   WebPSafeFree(code_lengths);
+   WebPSafeFree(mapping);
+   if (!ok) {
+     WebPSafeFree(huffman_image);
+-    WebPSafeFree(huffman_tables);
++    VP8LHuffmanTablesDeallocate(huffman_tables);
+     VP8LHtreeGroupsFree(htree_groups);
+   }
+   return ok;
+@@ -1358,7 +1362,7 @@ static void ClearMetadata(VP8LMetadata* const hdr) {
+   assert(hdr != NULL);
+ 
+   WebPSafeFree(hdr->huffman_image_);
+-  WebPSafeFree(hdr->huffman_tables_);
++  VP8LHuffmanTablesDeallocate(&hdr->huffman_tables_);
+   VP8LHtreeGroupsFree(hdr->htree_groups_);
+   VP8LColorCacheClear(&hdr->color_cache_);
+   VP8LColorCacheClear(&hdr->saved_color_cache_);
+@@ -1673,7 +1677,7 @@ int VP8LDecodeImage(VP8LDecoder* const dec) {
+ 
+   if (dec == NULL) return 0;
+ 
+-  assert(dec->hdr_.huffman_tables_ != NULL);
++  assert(dec->hdr_.huffman_tables_.root.start != NULL);
+   assert(dec->hdr_.htree_groups_ != NULL);
+   assert(dec->hdr_.num_htree_groups_ > 0);
+ 
+diff --git a/src/dec/vp8li_dec.h b/src/dec/vp8li_dec.h
+index 72b2e861..32540a4b 100644
+--- a/src/dec/vp8li_dec.h
++++ b/src/dec/vp8li_dec.h
+@@ -51,7 +51,7 @@ typedef struct {
+   uint32_t*       huffman_image_;
+   int             num_htree_groups_;
+   HTreeGroup*     htree_groups_;
+-  HuffmanCode*    huffman_tables_;
++  HuffmanTables   huffman_tables_;
+ } VP8LMetadata;
+ 
+ typedef struct VP8LDecoder VP8LDecoder;
+diff --git a/src/utils/huffman_utils.c b/src/utils/huffman_utils.c
+index 90c2fbf7..cf73abd4 100644
+--- a/src/utils/huffman_utils.c
++++ b/src/utils/huffman_utils.c
+@@ -177,21 +177,24 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
+       if (num_open < 0) {
+         return 0;
+       }
+-      if (root_table == NULL) continue;
+       for (; count[len] > 0; --count[len]) {
+         HuffmanCode code;
+         if ((key & mask) != low) {
+-          table += table_size;
++          if (root_table != NULL) table += table_size;
+           table_bits = NextTableBitSize(count, len, root_bits);
+           table_size = 1 << table_bits;
+           total_size += table_size;
+           low = key & mask;
+-          root_table[low].bits = (uint8_t)(table_bits + root_bits);
+-          root_table[low].value = (uint16_t)((table - root_table) - low);
++          if (root_table != NULL) {
++            root_table[low].bits = (uint8_t)(table_bits + root_bits);
++            root_table[low].value = (uint16_t)((table - root_table) - low);
++          }
++        }
++        if (root_table != NULL) {
++          code.bits = (uint8_t)(len - root_bits);
++          code.value = (uint16_t)sorted[symbol++];
++          ReplicateValue(&table[key >> root_bits], step, table_size, code);
+         }
+-        code.bits = (uint8_t)(len - root_bits);
+-        code.value = (uint16_t)sorted[symbol++];
+-        ReplicateValue(&table[key >> root_bits], step, table_size, code);
+         key = GetNextKey(key, len);
+       }
+     }
+@@ -211,25 +214,83 @@ static int BuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
+   ((1 << MAX_CACHE_BITS) + NUM_LITERAL_CODES + NUM_LENGTH_CODES)
+ // Cut-off value for switching between heap and stack allocation.
+ #define SORTED_SIZE_CUTOFF 512
+-int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
++int VP8LBuildHuffmanTable(HuffmanTables* const root_table, int root_bits,
+                           const int code_lengths[], int code_lengths_size) {
+-  int total_size;
++  const int total_size =
++      BuildHuffmanTable(NULL, root_bits, code_lengths, code_lengths_size, NULL);
+   assert(code_lengths_size <= MAX_CODE_LENGTHS_SIZE);
+-  if (root_table == NULL) {
+-    total_size = BuildHuffmanTable(NULL, root_bits,
+-                                   code_lengths, code_lengths_size, NULL);
+-  } else if (code_lengths_size <= SORTED_SIZE_CUTOFF) {
++  if (total_size == 0 || root_table == NULL) return total_size;
++
++  if (root_table->curr_segment->curr_table + total_size >=
++      root_table->curr_segment->start + root_table->curr_segment->size) {
++    // If 'root_table' does not have enough memory, allocate a new segment.
++    // The available part of root_table->curr_segment is left unused because we
++    // need a contiguous buffer.
++    const int segment_size = root_table->curr_segment->size;
++    struct HuffmanTablesSegment* next =
++        (HuffmanTablesSegment*)WebPSafeMalloc(1, sizeof(*next));
++    if (next == NULL) return 0;
++    // Fill the new segment.
++    // We need at least 'total_size' but if that value is small, it is better to
++    // allocate a big chunk to prevent more allocations later. 'segment_size' is
++    // therefore chosen (any other arbitrary value could be chosen).
++    next->size = total_size > segment_size ? total_size : segment_size;
++    next->start =
++        (HuffmanCode*)WebPSafeMalloc(next->size, sizeof(*next->start));
++    if (next->start == NULL) {
++      WebPSafeFree(next);
++      return 0;
++    }
++    next->curr_table = next->start;
++    next->next = NULL;
++    // Point to the new segment.
++    root_table->curr_segment->next = next;
++    root_table->curr_segment = next;
++  }
++  if (code_lengths_size <= SORTED_SIZE_CUTOFF) {
+     // use local stack-allocated array.
+     uint16_t sorted[SORTED_SIZE_CUTOFF];
+-    total_size = BuildHuffmanTable(root_table, root_bits,
+-                                   code_lengths, code_lengths_size, sorted);
+-  } else {   // rare case. Use heap allocation.
++    BuildHuffmanTable(root_table->curr_segment->curr_table, root_bits,
++                      code_lengths, code_lengths_size, sorted);
++  } else {  // rare case. Use heap allocation.
+     uint16_t* const sorted =
+         (uint16_t*)WebPSafeMalloc(code_lengths_size, sizeof(*sorted));
+     if (sorted == NULL) return 0;
+-    total_size = BuildHuffmanTable(root_table, root_bits,
+-                                   code_lengths, code_lengths_size, sorted);
++    BuildHuffmanTable(root_table->curr_segment->curr_table, root_bits,
++                      code_lengths, code_lengths_size, sorted);
+     WebPSafeFree(sorted);
+   }
+   return total_size;
+ }
++
++int VP8LHuffmanTablesAllocate(int size, HuffmanTables* huffman_tables) {
++  // Have 'segment' point to the first segment for now, 'root'.
++  HuffmanTablesSegment* const root = &huffman_tables->root;
++  huffman_tables->curr_segment = root;
++  // Allocate root.
++  root->start = (HuffmanCode*)WebPSafeMalloc(size, sizeof(*root->start));
++  if (root->start == NULL) return 0;
++  root->curr_table = root->start;
++  root->next = NULL;
++  root->size = size;
++  return 1;
++}
++
++void VP8LHuffmanTablesDeallocate(HuffmanTables* const huffman_tables) {
++  HuffmanTablesSegment *current, *next;
++  if (huffman_tables == NULL) return;
++  // Free the root node.
++  current = &huffman_tables->root;
++  next = current->next;
++  WebPSafeFree(current->start);
++  current->start = NULL;
++  current->next = NULL;
++  current = next;
++  // Free the following nodes.
++  while (current != NULL) {
++    next = current->next;
++    WebPSafeFree(current->start);
++    WebPSafeFree(current);
++    current = next;
++  }
++}
+diff --git a/src/utils/huffman_utils.h b/src/utils/huffman_utils.h
+index 13b7ad1a..98415c53 100644
+--- a/src/utils/huffman_utils.h
++++ b/src/utils/huffman_utils.h
+@@ -43,6 +43,29 @@ typedef struct {
+                     // or non-literal symbol otherwise
+ } HuffmanCode32;
+ 
++// Contiguous memory segment of HuffmanCodes.
++typedef struct HuffmanTablesSegment {
++  HuffmanCode* start;
++  // Pointer to where we are writing into the segment. Starts at 'start' and
++  // cannot go beyond 'start' + 'size'.
++  HuffmanCode* curr_table;
++  // Pointer to the next segment in the chain.
++  struct HuffmanTablesSegment* next;
++  int size;
++} HuffmanTablesSegment;
++
++// Chained memory segments of HuffmanCodes.
++typedef struct HuffmanTables {
++  HuffmanTablesSegment root;
++  // Currently processed segment. At first, this is 'root'.
++  HuffmanTablesSegment* curr_segment;
++} HuffmanTables;
++
++// Allocates a HuffmanTables with 'size' contiguous HuffmanCodes. Returns 0 on
++// memory allocation error, 1 otherwise.
++int VP8LHuffmanTablesAllocate(int size, HuffmanTables* huffman_tables);
++void VP8LHuffmanTablesDeallocate(HuffmanTables* const huffman_tables);
++
+ #define HUFFMAN_PACKED_BITS 6
+ #define HUFFMAN_PACKED_TABLE_SIZE (1u << HUFFMAN_PACKED_BITS)
+ 
+@@ -78,9 +101,7 @@ void VP8LHtreeGroupsFree(HTreeGroup* const htree_groups);
+ // the huffman table.
+ // Returns built table size or 0 in case of error (invalid tree or
+ // memory error).
+-// If root_table is NULL, it returns 0 if a lookup cannot be built, something
+-// > 0 otherwise (but not the table size).
+-int VP8LBuildHuffmanTable(HuffmanCode* const root_table, int root_bits,
++int VP8LBuildHuffmanTable(HuffmanTables* const root_table, int root_bits,
+                           const int code_lengths[], int code_lengths_size);
+ 
+ #ifdef __cplusplus
+-- 
+2.41.0
+
diff --git a/nixpkgs/pkgs/development/libraries/libwebp/default.nix b/nixpkgs/pkgs/development/libraries/libwebp/default.nix
index 39a7ab3ba45b..287c0b6b18be 100644
--- a/nixpkgs/pkgs/development/libraries/libwebp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwebp/default.nix
@@ -36,6 +36,14 @@ stdenv.mkDerivation rec {
     hash   = "sha256-Q94avvKjPdwdGt5ADo30cf2V4T7MCTubDHJxTtbG4xQ=";
   };
 
+  patches = [
+    # Commit 902bc919 from upstream, mangled slightly to apply onto 1.3.1.
+    # There is currently (2023-09-12) no confirmation that this is the fix for
+    # CVE-2023-4863, but it is linked to the right crbug, and matches the
+    # description of that (critical sev, exploited in the wild) CVE.
+    ./CVE-2023-4863.patch
+  ];
+
   configureFlags = [
     (lib.enableFeature threadingSupport "threading")
     (lib.enableFeature openglSupport "gl")
diff --git a/nixpkgs/pkgs/development/libraries/libxml2/default.nix b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
index 3f2f81183ca2..bc9e2c8c2c1d 100644
--- a/nixpkgs/pkgs/development/libraries/libxml2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
@@ -34,7 +34,7 @@ in
 let
 libxml = stdenv.mkDerivation rec {
   pname = "libxml2";
-  version = "2.11.4";
+  version = "2.11.5";
 
   outputs = [ "bin" "dev" "out" "doc" ]
     ++ lib.optional pythonSupport "py"
@@ -43,7 +43,7 @@ libxml = stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
-    sha256 = "c34df4qz8TlynKE6JJT9F78w3bS3pCfPM2JSyrV/V/c=";
+    sha256 = "NyeweMNg7Gn6hp3hS9b3XX7o02mHsHHmko1HIKKN86Y=";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/development/libraries/libyuv/default.nix b/nixpkgs/pkgs/development/libraries/libyuv/default.nix
index f4415b51f810..cc9f78ccae6f 100644
--- a/nixpkgs/pkgs/development/libraries/libyuv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libyuv/default.nix
@@ -28,6 +28,15 @@ stdenv.mkDerivation rec {
     ./link-library-against-libjpeg.patch
   ];
 
+  postPatch = ''
+    mkdir -p $out/lib/pkgconfig
+    cp ${./yuv.pc} $out/lib/pkgconfig/libyuv.pc
+
+    substituteInPlace $out/lib/pkgconfig/libyuv.pc \
+      --replace "@PREFIX@" "$out" \
+      --replace "@VERSION@" "$version"
+  '';
+
   meta = with lib; {
     homepage = "https://chromium.googlesource.com/libyuv/libyuv";
     description = "Open source project that includes YUV scaling and conversion functionality";
diff --git a/nixpkgs/pkgs/development/libraries/libyuv/yuv.pc b/nixpkgs/pkgs/development/libraries/libyuv/yuv.pc
new file mode 100644
index 000000000000..ecce62ed0efd
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libyuv/yuv.pc
@@ -0,0 +1,13 @@
+prefix=@PREFIX@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: yuv
+Description: WebM Project Yuv codec implementation
+Version: @VERSION@
+Requires:
+Conflicts:
+Libs: -L${libdir} -lyuv -lm
+Libs.private: -lm -lpthread
+Cflags: -I${includedir}
diff --git a/nixpkgs/pkgs/development/libraries/llhttp/default.nix b/nixpkgs/pkgs/development/libraries/llhttp/default.nix
index 413e70ee26af..8aac286c80ac 100644
--- a/nixpkgs/pkgs/development/libraries/llhttp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/llhttp/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake, testers }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "llhttp";
-  version = "9.0.1";
+  version = "9.1.2";
 
   src = fetchFromGitHub {
     owner = "nodejs";
     repo = "llhttp";
-    rev = "release/v${version}";
-    hash = "sha256-cXqc6/lQUhp9GV8msXsPokd6OGSczvz8uAXkM16GEE0=";
+    rev = "release/v${finalAttrs.version}";
+    hash = "sha256-kW6u9ETZJcJBh150chfE3SEwFpT7evZ0cqz8caM7fbQ=";
   };
 
   nativeBuildInputs = [
@@ -19,12 +19,17 @@ stdenv.mkDerivation rec {
     "-DBUILD_STATIC_LIBS=ON"
   ];
 
+  passthru.tests.pkg-config = testers.hasPkgConfigModules {
+    package = finalAttrs.finalPackage;
+  };
+
   meta = with lib; {
     description = "Port of http_parser to llparse";
     homepage = "https://llhttp.org/";
-    changelog = "https://github.com/nodejs/llhttp/releases/tag/${src.rev}";
+    changelog = "https://github.com/nodejs/llhttp/releases/tag/release/v${finalAttrs.version}";
     license = licenses.mit;
+    pkgConfigModules = [ "libllhttp" ];
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index 550cb7f673f8..b7bec7e8930c 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -86,8 +86,8 @@
 */
 
 let
-  version = "23.1.5";
-  hash = "sha256-PPiFdv3r8k/EBHBnk2ExyQy2VBwnNlmWt5tmHewfsVM=";
+  version = "23.1.7";
+  hash = "sha256-QJZB6t8O0cd5R5em9aCwGVtVgLKCFm5exWKca82mrNM=";
 
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
diff --git a/nixpkgs/pkgs/development/libraries/mpfr/default.nix b/nixpkgs/pkgs/development/libraries/mpfr/default.nix
index cf5035948cb5..dec33a63d155 100644
--- a/nixpkgs/pkgs/development/libraries/mpfr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpfr/default.nix
@@ -11,7 +11,7 @@
 # files.
 
 stdenv.mkDerivation rec {
-  version = "4.2.0";
+  version = "4.2.1";
   pname = "mpfr";
 
   src = fetchurl {
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
       "https://www.mpfr.org/${pname}-${version}/${pname}-${version}.tar.xz"
       "mirror://gnu/mpfr/${pname}-${version}.tar.xz"
     ];
-    hash = "sha256-BqN43xNQEkjBsttaqXeiyBJq6Emp2be+JUb7Spwm2ZM=";
+    hash = "sha256-J3gHNTpnJpeJlpRa8T5Sgp46vXqaW3+yeTiU4Y8fy7I=";
   };
 
   outputs = [ "out" "dev" "doc" "info" ];
diff --git a/nixpkgs/pkgs/development/libraries/ndn-cxx/default.nix b/nixpkgs/pkgs/development/libraries/ndn-cxx/default.nix
index 7ab607b01f4e..d7b31426c4f6 100644
--- a/nixpkgs/pkgs/development/libraries/ndn-cxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ndn-cxx/default.nix
@@ -5,7 +5,7 @@
 , pkg-config
 , python3
 , python3Packages
-, waf
+, wafHook
 , boost179
 , openssl
 , sqlite
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-nnnxlkYVTSRB6ZcuIUDFol999+amGtqegHXK+06ITK8=";
   };
 
-  nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx waf.hook ];
+  nativeBuildInputs = [ doxygen pkg-config python3 python3Packages.sphinx wafHook ];
 
   buildInputs = [ boost179 openssl sqlite ];
 
diff --git a/nixpkgs/pkgs/development/libraries/opencomposite/default.nix b/nixpkgs/pkgs/development/libraries/opencomposite/default.nix
new file mode 100644
index 000000000000..79b96bb9ae3d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opencomposite/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+
+, cmake
+
+, glm
+, libGL
+, openxr-loader
+, python3
+, vulkan-headers
+, vulkan-loader
+, xorg
+}:
+
+stdenv.mkDerivation {
+  pname = "opencomposite";
+  version = "unstable-2023-09-11";
+
+  src = fetchFromGitLab {
+    owner = "znixian";
+    repo = "OpenOVR";
+    rev = "cca18158a4b6921df54e84a3b23ff459f76a2bde";
+    hash = "sha256-VREApt4juz283aJVLZoBbqg01PNs4XBxmpr/UIMlaK8=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    glm
+    libGL
+    openxr-loader
+    python3
+    vulkan-headers
+    vulkan-loader
+    xorg.libX11
+  ];
+
+  cmakeFlags = [
+    "-DUSE_SYSTEM_OPENXR=ON"
+    "-DUSE_SYSTEM_GLM=ON"
+  ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/lib/opencomposite
+    cp -r bin/ $out/lib/opencomposite
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Reimplementation of OpenVR, translating calls to OpenXR";
+    homepage = "https://gitlab.com/znixian/OpenOVR";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ Scrumplex ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/opencomposite/helper.nix b/nixpkgs/pkgs/development/libraries/opencomposite/helper.nix
new file mode 100644
index 000000000000..f19f5e868139
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opencomposite/helper.nix
@@ -0,0 +1,18 @@
+{ writeShellApplication
+
+, monado
+, opencomposite
+}:
+writeShellApplication {
+  name = "opencomposite-helper";
+  text = ''
+    # Tell Proton to use OpenComposite instead of OpenVR
+    export VR_OVERRIDE=${opencomposite}/lib/opencomposite
+    # Help OpenComposite find the OpenXR runtime
+    export XR_RUNTIME_JSON=${monado}/share/openxr/1/openxr_monado.json
+    # Tell Steam Pressure Vessel to allow access to Monado
+    export PRESSURE_VESSEL_FILESYSTEMS_RW=$XDG_RUNTIME_DIR/monado_comp_ipc
+    exec "$@"
+  '';
+}
+
diff --git a/nixpkgs/pkgs/development/libraries/openexr/3.nix b/nixpkgs/pkgs/development/libraries/openexr/3.nix
index 1bd8e63d37f9..a5ce27e270e4 100644
--- a/nixpkgs/pkgs/development/libraries/openexr/3.nix
+++ b/nixpkgs/pkgs/development/libraries/openexr/3.nix
@@ -1,25 +1,31 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, zlib
 , cmake
 , imath
+, libdeflate
+, pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "openexr";
-  version = "3.1.10";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "openexr";
     rev = "v${version}";
-    sha256 = "sha256-8oV7Himk9AS2e2Z3OREE7KQgFIUysXwATlUN51dDe5M=";
+    hash = "sha256-cV+qgx3WzdotypgpZhVFxzdKAU2rNVw0KWSdkeN0gLk=";
   };
 
   outputs = [ "bin" "dev" "out" "doc" ];
 
+  patches =
+    # Disable broken test on musl libc
+    # https://github.com/AcademySoftwareFoundation/openexr/issues/1556
+    lib.optional stdenv.hostPlatform.isMusl ./disable-iex-test.patch
+  ;
+
   # tests are determined to use /var/tmp on unix
   postPatch = ''
     cat <(find . -name tmpDir.h) <(echo src/test/OpenEXRCoreTest/main.cpp) | while read -r f ; do
@@ -29,8 +35,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = lib.optional stdenv.hostPlatform.isStatic "-DCMAKE_SKIP_RPATH=ON";
 
-  nativeBuildInputs = [ cmake ];
-  propagatedBuildInputs = [ imath zlib ];
+  nativeBuildInputs = [ cmake pkg-config ];
+  propagatedBuildInputs = [ imath libdeflate ];
 
   # Without 'sse' enforcement tests fail on i686 as due to excessive precision as:
   #   error reading back channel B pixel 21,-76 got -nan expected -nan
diff --git a/nixpkgs/pkgs/development/libraries/openexr/disable-iex-test.patch b/nixpkgs/pkgs/development/libraries/openexr/disable-iex-test.patch
new file mode 100644
index 000000000000..f8fff65aceb4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/openexr/disable-iex-test.patch
@@ -0,0 +1,13 @@
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index 44d9185d..8ffcd2b2 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -4,7 +4,7 @@
+ # We require this to get object library link library support and
+ # combined python 2 + 3 support
+ 
+-add_subdirectory(IexTest)
++#add_subdirectory(IexTest)
+ add_subdirectory(OpenEXRCoreTest)
+ add_subdirectory(OpenEXRTest)
+ add_subdirectory(OpenEXRUtilTest)
diff --git a/nixpkgs/pkgs/development/libraries/pdfhummus/default.nix b/nixpkgs/pkgs/development/libraries/pdfhummus/default.nix
index a6d7ee3cdb16..e9d3c45ae8ba 100644
--- a/nixpkgs/pkgs/development/libraries/pdfhummus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pdfhummus/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfhummus";
-  version = "4.5.10";
+  version = "4.5.11";
 
   src = fetchFromGitHub {
     owner = "galkahana";
     repo = "PDF-Writer";
     rev = "v${version}";
-    hash = "sha256-dhbb/9+6ftjde+oh665ujA5CvY+Ume0pz/ghrohcaNE=";
+    hash = "sha256-nTLyFGnY07gDoahYe5YqSmU/URzdvRKQ1MsXt3164+c=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/physics/fastjet-contrib/default.nix b/nixpkgs/pkgs/development/libraries/physics/fastjet-contrib/default.nix
index 5310ffc279d3..b61db08457fd 100644
--- a/nixpkgs/pkgs/development/libraries/physics/fastjet-contrib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/fastjet-contrib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fastjet-contrib";
-  version = "1.049";
+  version = "1.052";
 
   src = fetchurl {
     url = "https://fastjet.hepforge.org/contrib/downloads/fjcontrib-${version}.tar.gz";
-    sha256 = "sha256-ri7WIGvGJ4tl6ZpPeN8O6ykR8wGij7V7UMVzwNWGmYc=";
+    sha256 = "sha256-veY8KMvfmSvt6k3e38PNUsn+wkGnZ8xFXdStEOghDDk=";
   };
 
   buildInputs = [ fastjet ];
diff --git a/nixpkgs/pkgs/development/libraries/protolock/default.nix b/nixpkgs/pkgs/development/libraries/protolock/default.nix
index 324c21df9288..8cb18252a2aa 100644
--- a/nixpkgs/pkgs/development/libraries/protolock/default.nix
+++ b/nixpkgs/pkgs/development/libraries/protolock/default.nix
@@ -11,7 +11,7 @@ buildGoModule rec {
     sha256 = "sha256-vWwRZVArmlTIGwD4zV3dEHN2kkoeCZuNIvjCBVAviPo=";
   };
 
-  vendorSha256 = "sha256-pYtP+Tkh2TcGsbk7zQNaoYLEQrqGOL0gkMG5dUkfpt4=";
+  vendorHash = "sha256-pYtP+Tkh2TcGsbk7zQNaoYLEQrqGOL0gkMG5dUkfpt4=";
 
   postInstall = ''
     rm $out/bin/plugin*
diff --git a/nixpkgs/pkgs/development/libraries/qtutilities/default.nix b/nixpkgs/pkgs/development/libraries/qtutilities/default.nix
index 93ecaa698f7a..a629e8a2ac12 100644
--- a/nixpkgs/pkgs/development/libraries/qtutilities/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtutilities/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtutilities";
-  version = "6.13.0";
+  version = "6.13.1";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gfGVVjtzpBGrPrp2k3fOIh54EAMSicyikF1CtaO74y8=";
+    hash = "sha256-ic1Xnle1fGZ5elf0yH0BF+3spAmIo9kP62WhXLmBVNc=";
   };
 
   buildInputs = [ qtbase cpp-utilities ];
diff --git a/nixpkgs/pkgs/development/libraries/talloc/default.nix b/nixpkgs/pkgs/development/libraries/talloc/default.nix
index 5fad3c1c5121..bfe38fd4719a 100644
--- a/nixpkgs/pkgs/development/libraries/talloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/talloc/default.nix
@@ -8,7 +8,7 @@
 , docbook-xsl-nons
 , docbook_xml_dtd_42
 , fixDarwinDylibNames
-, waf
+, wafHook
 }:
 
 stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     pkg-config
     python3
-    waf.hook
+    wafHook
     docbook-xsl-nons
     docbook_xml_dtd_42
   ] ++ lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/libraries/tdb/default.nix b/nixpkgs/pkgs/development/libraries/tdb/default.nix
index 562a422f91d6..13f55a2dc52b 100644
--- a/nixpkgs/pkgs/development/libraries/tdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tdb/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv
 , fetchurl
 , pkg-config
-, waf
+, wafHook
 , python3
 , readline
 , libxslt
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     python3
     pkg-config
-    waf.hook
+    wafHook
     libxslt
     docbook-xsl-nons
     docbook_xml_dtd_45
diff --git a/nixpkgs/pkgs/development/libraries/tevent/default.nix b/nixpkgs/pkgs/development/libraries/tevent/default.nix
index 7d0d40439e4a..c5d8d0fd3c49 100644
--- a/nixpkgs/pkgs/development/libraries/tevent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tevent/default.nix
@@ -9,7 +9,7 @@
 , docbook-xsl-nons
 , docbook_xml_dtd_42
 , which
-, waf
+, wafHook
 , libxcrypt
 }:
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     libxslt
     docbook-xsl-nons
     docbook_xml_dtd_42
-    waf.hook
+    wafHook
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/zlib/default.nix b/nixpkgs/pkgs/development/libraries/zlib/default.nix
index baef243cbdc6..9fccef25da17 100644
--- a/nixpkgs/pkgs/development/libraries/zlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zlib/default.nix
@@ -24,7 +24,7 @@ assert splitStaticOutput -> static;
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "zlib";
-  version = "1.2.13";
+  version = "1.3";
 
   src = let
     inherit (finalAttrs) version;
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
       # Stable archive path, but captcha can be encountered, causing hash mismatch.
       "https://www.zlib.net/fossils/zlib-${version}.tar.gz"
     ];
-    hash = "sha256-s6JN6XqP28g1uYMxaVAQMLiXcDG8tUs7OsE3QPhGqzA=";
+    hash = "sha256-/wukwpIBPbwnUws6geH5qBPNOd4Byl4Pi/NVcC76WT4=";
   };
 
   postPatch = lib.optionalString stdenv.hostPlatform.isDarwin ''
diff --git a/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix b/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix
index bcddfa96552f..9cd78b7b56a1 100644
--- a/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zxing-cpp/default.nix
@@ -1,20 +1,21 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, pkg-config
 , cmake
+, pkg-config
 , python3
+, gitUpdater
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "zxing-cpp";
-  version = "1.4.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
-    owner = "nu-book";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-MTu8tvJXpo6+Z0aSIZ27nmerNtNBOwnL/jDkGedIiM8=";
+    owner = "zxing-cpp";
+    repo = "zxing-cpp";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-B/jGsHImRfj0iEio2b6R6laWBI1LL3OI407O7sren8s=";
   };
 
   nativeBuildInputs = [
@@ -27,23 +28,17 @@ stdenv.mkDerivation rec {
     "-DBUILD_BLACKBOX_TESTS=OFF"
   ];
 
-  # https://github.com/nu-book/zxing-cpp/issues/335
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace 'configure_file(zxing.pc.in' \
-                'include(GNUInstallDirs)
-                 configure_file(zxing.pc.in'
-    substituteInPlace zxing.pc.in \
-      --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
-      --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@
-  '';
-
-  passthru.tests = {
-    inherit (python3.pkgs) zxing_cpp;
+  passthru = {
+    tests = {
+      inherit (python3.pkgs) zxing_cpp;
+    };
+    updateScript = gitUpdater {
+      rev-prefix = "v";
+    };
   };
 
-  meta = with lib; {
-    homepage = "https://github.com/nu-book/zxing-cpp";
+  meta = {
+    homepage = "https://github.com/zxing-cpp/zxing-cpp";
     description = "C++ port of zxing (a Java barcode image processing library)";
     longDescription = ''
       ZXing-C++ ("zebra crossing") is an open-source, multi-format 1D/2D barcode
@@ -54,8 +49,8 @@ stdenv.mkDerivation rec {
       and performance. It can both read and write barcodes in a number of
       formats.
     '';
-    license = licenses.asl20;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = with platforms; unix;
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ AndersonTorres lukegb ];
+    platforms = lib.platforms.unix;
   };
-}
+})