about summary refs log tree commit diff
path: root/pkgs/development/libraries
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries')
-rw-r--r--pkgs/development/libraries/CoinMP/default.nix26
-rw-r--r--pkgs/development/libraries/LASzip/LASzip2.nix23
-rw-r--r--pkgs/development/libraries/LASzip/default.nix33
-rw-r--r--pkgs/development/libraries/SDL/default.nix6
-rw-r--r--pkgs/development/libraries/SDL2/default.nix6
-rw-r--r--pkgs/development/libraries/SDL2_gfx/default.nix51
-rw-r--r--pkgs/development/libraries/SDL2_mixer/2_0.nix34
-rw-r--r--pkgs/development/libraries/SDL2_mixer/SDL_mixer-2.0-incompatible-pointer-comparison-fix.patch26
-rw-r--r--pkgs/development/libraries/SDL2_mixer/default.nix74
-rw-r--r--pkgs/development/libraries/SDL2_net/default.nix30
-rw-r--r--pkgs/development/libraries/SDL2_sound/default.nix49
-rw-r--r--pkgs/development/libraries/SDL2_ttf/default.nix32
-rw-r--r--pkgs/development/libraries/SDL_Pango/default.nix33
-rw-r--r--pkgs/development/libraries/SDL_Pango/fixes.patch148
-rw-r--r--pkgs/development/libraries/SDL_audiolib/default.nix53
-rw-r--r--pkgs/development/libraries/SDL_compat/default.nix2
-rw-r--r--pkgs/development/libraries/SDL_gfx/default.nix46
-rw-r--r--pkgs/development/libraries/SDL_gpu/default.nix36
-rw-r--r--pkgs/development/libraries/SDL_image/default.nix38
-rw-r--r--pkgs/development/libraries/SDL_mixer/default.nix68
-rw-r--r--pkgs/development/libraries/SDL_net/default.nix23
-rw-r--r--pkgs/development/libraries/SDL_sixel/default.nix27
-rw-r--r--pkgs/development/libraries/SDL_sound/default.nix22
-rw-r--r--pkgs/development/libraries/SDL_stretch/default.nix20
-rw-r--r--pkgs/development/libraries/SDL_ttf/default.nix33
-rw-r--r--pkgs/development/libraries/abseil-cpp/202103.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202111.nix3
-rw-r--r--pkgs/development/libraries/abseil-cpp/202206.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202301.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202308.nix2
-rw-r--r--pkgs/development/libraries/abseil-cpp/202401.nix2
-rw-r--r--pkgs/development/libraries/accounts-qt/default.nix2
-rw-r--r--pkgs/development/libraries/aften/default.nix2
-rw-r--r--pkgs/development/libraries/agda/agda-categories/default.nix2
-rw-r--r--pkgs/development/libraries/agda/standard-library/default.nix2
-rw-r--r--pkgs/development/libraries/alembic/default.nix2
-rw-r--r--pkgs/development/libraries/alglib/default.nix4
-rw-r--r--pkgs/development/libraries/allegro/5.nix3
-rw-r--r--pkgs/development/libraries/allegro/default.nix2
-rw-r--r--pkgs/development/libraries/alure/default.nix2
-rw-r--r--pkgs/development/libraries/alure2/default.nix2
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix9
-rw-r--r--pkgs/development/libraries/antic/default.nix2
-rw-r--r--pkgs/development/libraries/apr-util/default.nix2
-rw-r--r--pkgs/development/libraries/apr/default.nix4
-rw-r--r--pkgs/development/libraries/aqbanking/default.nix2
-rw-r--r--pkgs/development/libraries/aravis/default.nix6
-rw-r--r--pkgs/development/libraries/arb/default.nix2
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/arrayfire/default.nix2
-rw-r--r--pkgs/development/libraries/arrow-glib/default.nix1
-rw-r--r--pkgs/development/libraries/aspell/dictionaries.nix134
-rw-r--r--pkgs/development/libraries/assimp/default.nix6
-rw-r--r--pkgs/development/libraries/at-spi2-core/default.nix11
-rw-r--r--pkgs/development/libraries/aubio/default.nix1
-rw-r--r--pkgs/development/libraries/audiality2/default.nix2
-rw-r--r--pkgs/development/libraries/audio/game-music-emu/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libopenmpt-modplug/default.nix2
-rw-r--r--pkgs/development/libraries/audio/libopenmpt/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libsmf/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lilv/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lv2/default.nix2
-rw-r--r--pkgs/development/libraries/audio/lvtk/default.nix2
-rw-r--r--pkgs/development/libraries/audio/qm-dsp/default.nix2
-rw-r--r--pkgs/development/libraries/audio/raul/default.nix2
-rw-r--r--pkgs/development/libraries/audio/roc-toolkit/default.nix12
-rw-r--r--pkgs/development/libraries/audio/rtaudio/default.nix2
-rw-r--r--pkgs/development/libraries/audio/rtmidi/default.nix2
-rw-r--r--pkgs/development/libraries/audio/sratom/default.nix2
-rw-r--r--pkgs/development/libraries/audio/suil/default.nix2
-rw-r--r--pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix2
-rw-r--r--pkgs/development/libraries/audio/zix/default.nix2
-rw-r--r--pkgs/development/libraries/avro-c++/default.nix2
-rw-r--r--pkgs/development/libraries/avro-c/default.nix2
-rw-r--r--pkgs/development/libraries/aws-c-auth/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-cal/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-common/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-http/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-io/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-mqtt/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-s3/default.nix4
-rw-r--r--pkgs/development/libraries/aws-c-sdkutils/default.nix4
-rw-r--r--pkgs/development/libraries/aws-crt-cpp/default.nix4
-rw-r--r--pkgs/development/libraries/aws-sdk-cpp/default.nix6
-rw-r--r--pkgs/development/libraries/bamf/default.nix4
-rw-r--r--pkgs/development/libraries/bashup-events/generic.nix2
-rw-r--r--pkgs/development/libraries/basu/default.nix2
-rw-r--r--pkgs/development/libraries/bc-decaf/default.nix2
-rw-r--r--pkgs/development/libraries/bearssl/default.nix2
-rw-r--r--pkgs/development/libraries/belcard/default.nix2
-rw-r--r--pkgs/development/libraries/belle-sip/default.nix2
-rw-r--r--pkgs/development/libraries/belr/default.nix2
-rw-r--r--pkgs/development/libraries/bencode/default.nix2
-rw-r--r--pkgs/development/libraries/biblesync/default.nix2
-rw-r--r--pkgs/development/libraries/blst/default.nix4
-rw-r--r--pkgs/development/libraries/boca/default.nix2
-rw-r--r--pkgs/development/libraries/boost-process/default.nix32
-rw-r--r--pkgs/development/libraries/boost/1.75.nix2
-rw-r--r--pkgs/development/libraries/boost/1.77.nix2
-rw-r--r--pkgs/development/libraries/boost/1.78.nix2
-rw-r--r--pkgs/development/libraries/boost/1.79.nix2
-rw-r--r--pkgs/development/libraries/boost/1.80.nix2
-rw-r--r--pkgs/development/libraries/boost/1.81.nix2
-rw-r--r--pkgs/development/libraries/boost/1.82.nix2
-rw-r--r--pkgs/development/libraries/boost/1.83.nix2
-rw-r--r--pkgs/development/libraries/boost/1.84.nix2
-rw-r--r--pkgs/development/libraries/boost/1.85.nix2
-rw-r--r--pkgs/development/libraries/botan/2.0.nix4
-rw-r--r--pkgs/development/libraries/bullet/default.nix2
-rw-r--r--pkgs/development/libraries/bullet/roboschool-fork.nix2
-rw-r--r--pkgs/development/libraries/bzrtp/default.nix2
-rw-r--r--pkgs/development/libraries/c-ares/default.nix9
-rw-r--r--pkgs/development/libraries/c-blosc/1.nix2
-rw-r--r--pkgs/development/libraries/c-blosc/2.nix6
-rw-r--r--pkgs/development/libraries/caf/default.nix2
-rw-r--r--pkgs/development/libraries/cairo/default.nix4
-rw-r--r--pkgs/development/libraries/calcium/default.nix2
-rw-r--r--pkgs/development/libraries/catboost/default.nix4
-rw-r--r--pkgs/development/libraries/catch/default.nix2
-rw-r--r--pkgs/development/libraries/catch2/3.nix5
-rw-r--r--pkgs/development/libraries/catch2/default.nix2
-rw-r--r--pkgs/development/libraries/ccrtp/default.nix2
-rw-r--r--pkgs/development/libraries/cddlib/default.nix2
-rw-r--r--pkgs/development/libraries/cegui/default.nix9
-rw-r--r--pkgs/development/libraries/cereal/1.3.0.nix2
-rw-r--r--pkgs/development/libraries/cereal/1.3.2.nix3
-rw-r--r--pkgs/development/libraries/ceres-solver/default.nix1
-rw-r--r--pkgs/development/libraries/cgreen/default.nix2
-rw-r--r--pkgs/development/libraries/cgui/default.nix2
-rw-r--r--pkgs/development/libraries/charls/default.nix2
-rw-r--r--pkgs/development/libraries/chipmunk/default.nix2
-rw-r--r--pkgs/development/libraries/chmlib/default.nix2
-rw-r--r--pkgs/development/libraries/cista/default.nix2
-rw-r--r--pkgs/development/libraries/cjson/default.nix4
-rw-r--r--pkgs/development/libraries/clanlib/default.nix2
-rw-r--r--pkgs/development/libraries/clap/default.nix4
-rw-r--r--pkgs/development/libraries/classads/default.nix2
-rw-r--r--pkgs/development/libraries/clipper/default.nix2
-rw-r--r--pkgs/development/libraries/cminpack/default.nix1
-rw-r--r--pkgs/development/libraries/cmocka/default.nix2
-rw-r--r--pkgs/development/libraries/coeurl/default.nix2
-rw-r--r--pkgs/development/libraries/cogl/default.nix3
-rw-r--r--pkgs/development/libraries/coin3d/default.nix11
-rw-r--r--pkgs/development/libraries/comedilib/default.nix2
-rw-r--r--pkgs/development/libraries/console-bridge/default.nix2
-rw-r--r--pkgs/development/libraries/coost/default.nix46
-rw-r--r--pkgs/development/libraries/cpp-hocon/default.nix2
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix8
-rw-r--r--pkgs/development/libraries/cracklib/default.nix2
-rw-r--r--pkgs/development/libraries/criterion/default.nix50
-rw-r--r--pkgs/development/libraries/croaring/default.nix32
-rw-r--r--pkgs/development/libraries/croaring/fix-pkg-config.patch14
-rw-r--r--pkgs/development/libraries/crocoddyl/default.nix8
-rw-r--r--pkgs/development/libraries/crossguid/default.nix6
-rw-r--r--pkgs/development/libraries/crypto++/default.nix2
-rw-r--r--pkgs/development/libraries/ctpp2/default.nix2
-rw-r--r--pkgs/development/libraries/ctranslate2/default.nix4
-rw-r--r--pkgs/development/libraries/ctre/default.nix4
-rw-r--r--pkgs/development/libraries/ctypes_sh/default.nix2
-rw-r--r--pkgs/development/libraries/cyclonedds/default.nix4
-rw-r--r--pkgs/development/libraries/dav1d/default.nix2
-rw-r--r--pkgs/development/libraries/db/db-4.8.nix6
-rw-r--r--pkgs/development/libraries/db/generic.nix5
-rw-r--r--pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--pkgs/development/libraries/dee/default.nix2
-rw-r--r--pkgs/development/libraries/directfb/default.nix7
-rw-r--r--pkgs/development/libraries/directx-headers/default.nix4
-rw-r--r--pkgs/development/libraries/discord-gamesdk/default.nix46
-rw-r--r--pkgs/development/libraries/dleyna-connector-dbus/default.nix2
-rw-r--r--pkgs/development/libraries/dleyna-core/default.nix5
-rw-r--r--pkgs/development/libraries/dlib/default.nix8
-rw-r--r--pkgs/development/libraries/doctest/default.nix2
-rw-r--r--pkgs/development/libraries/dotconf/default.nix6
-rw-r--r--pkgs/development/libraries/drogon/default.nix6
-rw-r--r--pkgs/development/libraries/dssi/default.nix2
-rw-r--r--pkgs/development/libraries/duckdb/default.nix2
-rw-r--r--pkgs/development/libraries/duckdb/versions.json6
-rw-r--r--pkgs/development/libraries/eccodes/default.nix4
-rw-r--r--pkgs/development/libraries/edencommon/default.nix2
-rw-r--r--pkgs/development/libraries/editline/default.nix4
-rw-r--r--pkgs/development/libraries/egl-wayland/default.nix3
-rw-r--r--pkgs/development/libraries/eglexternalplatform/default.nix2
-rw-r--r--pkgs/development/libraries/elf-header/default.nix2
-rw-r--r--pkgs/development/libraries/enchant/2.x.nix4
-rw-r--r--pkgs/development/libraries/enet/default.nix4
-rw-r--r--pkgs/development/libraries/entt/default.nix2
-rw-r--r--pkgs/development/libraries/epoll-shim/default.nix38
-rw-r--r--pkgs/development/libraries/example-robot-data/default.nix13
-rw-r--r--pkgs/development/libraries/exempi/default.nix2
-rw-r--r--pkgs/development/libraries/exiv2/default.nix3
-rw-r--r--pkgs/development/libraries/expat/default.nix4
-rw-r--r--pkgs/development/libraries/expected-lite/default.nix4
-rw-r--r--pkgs/development/libraries/exprtk/default.nix2
-rw-r--r--pkgs/development/libraries/faac/default.nix11
-rw-r--r--pkgs/development/libraries/faad2/default.nix2
-rw-r--r--pkgs/development/libraries/fast-cpp-csv-parser/default.nix2
-rw-r--r--pkgs/development/libraries/fastjson/default.nix2
-rw-r--r--pkgs/development/libraries/fastpbkdf2/default.nix2
-rw-r--r--pkgs/development/libraries/faudio/default.nix4
-rw-r--r--pkgs/development/libraries/fb303/default.nix2
-rw-r--r--pkgs/development/libraries/fbjni/default.nix2
-rw-r--r--pkgs/development/libraries/fcgi/default.nix4
-rw-r--r--pkgs/development/libraries/fcl/default.nix2
-rw-r--r--pkgs/development/libraries/fdk-aac/default.nix2
-rw-r--r--pkgs/development/libraries/ffmpeg/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg/generic.nix50
-rw-r--r--pkgs/development/libraries/ffmpegthumbnailer/default.nix44
-rw-r--r--pkgs/development/libraries/ffms/default.nix10
-rw-r--r--pkgs/development/libraries/flatpak/binary-path.patch29
-rw-r--r--pkgs/development/libraries/flatpak/default.nix211
-rw-r--r--pkgs/development/libraries/flatpak/fix-fonts-icons.patch87
-rw-r--r--pkgs/development/libraries/flatpak/fix-icon-validation.patch31
-rw-r--r--pkgs/development/libraries/flatpak/fix-paths.patch22
-rw-r--r--pkgs/development/libraries/flatpak/fix-test-paths.patch212
-rw-r--r--pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch15
-rw-r--r--pkgs/development/libraries/flatpak/unset-env-vars.patch12
-rw-r--r--pkgs/development/libraries/flite/default.nix2
-rw-r--r--pkgs/development/libraries/fltk/common.nix2
-rw-r--r--pkgs/development/libraries/fmt/default.nix2
-rw-r--r--pkgs/development/libraries/folks/default.nix16
-rw-r--r--pkgs/development/libraries/folly/default.nix2
-rw-r--r--pkgs/development/libraries/fontconfig/default.nix2
-rw-r--r--pkgs/development/libraries/forge/default.nix2
-rw-r--r--pkgs/development/libraries/fox/default.nix1
-rw-r--r--pkgs/development/libraries/fox/fox-1.6.nix2
-rw-r--r--pkgs/development/libraries/freetds/default.nix4
-rw-r--r--pkgs/development/libraries/freetype/default.nix2
-rw-r--r--pkgs/development/libraries/freexl/default.nix2
-rw-r--r--pkgs/development/libraries/functionalplus/default.nix4
-rw-r--r--pkgs/development/libraries/fuzzylite/default.nix3
-rw-r--r--pkgs/development/libraries/g2o/default.nix2
-rw-r--r--pkgs/development/libraries/gamin/default.nix6
-rw-r--r--pkgs/development/libraries/ganv/default.nix2
-rw-r--r--pkgs/development/libraries/gbenchmark/default.nix2
-rw-r--r--pkgs/development/libraries/gcr/4.nix4
-rw-r--r--pkgs/development/libraries/gcr/default.nix4
-rw-r--r--pkgs/development/libraries/gd/default.nix2
-rw-r--r--pkgs/development/libraries/gdal/default.nix16
-rw-r--r--pkgs/development/libraries/gdbm/default.nix4
-rw-r--r--pkgs/development/libraries/gdcm/default.nix9
-rw-r--r--pkgs/development/libraries/gdk-pixbuf/default.nix10
-rw-r--r--pkgs/development/libraries/gegl/default.nix6
-rw-r--r--pkgs/development/libraries/geis/default.nix6
-rw-r--r--pkgs/development/libraries/gensio/default.nix4
-rw-r--r--pkgs/development/libraries/geoclue/default.nix5
-rw-r--r--pkgs/development/libraries/geocode-glib/default.nix2
-rw-r--r--pkgs/development/libraries/geoip/default.nix2
-rw-r--r--pkgs/development/libraries/geos/3.11.nix5
-rw-r--r--pkgs/development/libraries/getdns/default.nix4
-rw-r--r--pkgs/development/libraries/gettext/default.nix7
-rw-r--r--pkgs/development/libraries/gflags/default.nix2
-rw-r--r--pkgs/development/libraries/giflib/default.nix14
-rw-r--r--pkgs/development/libraries/givaro/3.7.nix2
-rw-r--r--pkgs/development/libraries/givaro/3.nix2
-rw-r--r--pkgs/development/libraries/givaro/default.nix2
-rw-r--r--pkgs/development/libraries/gjs/default.nix8
-rw-r--r--pkgs/development/libraries/gjs/disable-introspection-test.patch12
-rw-r--r--pkgs/development/libraries/gl2ps/default.nix2
-rw-r--r--pkgs/development/libraries/gl3w/default.nix2
-rw-r--r--pkgs/development/libraries/glbinding/default.nix2
-rw-r--r--pkgs/development/libraries/glew/1.10.nix4
-rw-r--r--pkgs/development/libraries/glew/default.nix2
-rw-r--r--pkgs/development/libraries/glfw/3.x.nix5
-rw-r--r--pkgs/development/libraries/glib-networking/default.nix4
-rw-r--r--pkgs/development/libraries/glib/default.nix129
-rw-r--r--pkgs/development/libraries/glib/elementary-terminal-support.patch4
-rw-r--r--pkgs/development/libraries/glib/glib-appinfo-watch.patch26
-rw-r--r--pkgs/development/libraries/glib/schema-override-variable.patch4
-rw-r--r--pkgs/development/libraries/glib/skip-timer-test.patch17
-rw-r--r--pkgs/development/libraries/glib/split-dev-programs.patch34
-rw-r--r--pkgs/development/libraries/glibc/2.39-master.patch10307
-rw-r--r--pkgs/development/libraries/glibc/common.nix19
-rw-r--r--pkgs/development/libraries/glibc/default.nix5
-rw-r--r--pkgs/development/libraries/glibc/mtrace.nix2
-rw-r--r--pkgs/development/libraries/glibmm/2.68.nix4
-rw-r--r--pkgs/development/libraries/glibmm/default.nix4
-rw-r--r--pkgs/development/libraries/globalarrays/default.nix2
-rw-r--r--pkgs/development/libraries/gloox/default.nix2
-rw-r--r--pkgs/development/libraries/glpk/default.nix2
-rw-r--r--pkgs/development/libraries/glui/default.nix2
-rw-r--r--pkgs/development/libraries/gmime/2.nix2
-rw-r--r--pkgs/development/libraries/gmime/3.nix84
-rw-r--r--pkgs/development/libraries/gnet/default.nix2
-rw-r--r--pkgs/development/libraries/gnome-online-accounts/default.nix27
-rw-r--r--pkgs/development/libraries/gnome-video-effects/default.nix2
-rw-r--r--pkgs/development/libraries/gnu-config/default.nix8
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix23
-rw-r--r--pkgs/development/libraries/gnutls/default.nix29
-rw-r--r--pkgs/development/libraries/gobject-introspection/default.nix12
-rw-r--r--pkgs/development/libraries/goffice/default.nix2
-rw-r--r--pkgs/development/libraries/gom/default.nix2
-rw-r--r--pkgs/development/libraries/gr-framework/Use-the-module-mode-to-search-for-the-LibXml2-package.patch25
-rw-r--r--pkgs/development/libraries/gr-framework/default.nix71
-rw-r--r--pkgs/development/libraries/graphene/default.nix2
-rw-r--r--pkgs/development/libraries/grilo-plugins/default.nix2
-rw-r--r--pkgs/development/libraries/grpc/default.nix2
-rw-r--r--pkgs/development/libraries/gsettings-desktop-schemas/default.nix4
-rw-r--r--pkgs/development/libraries/gsl/default.nix2
-rw-r--r--pkgs/development/libraries/gspell/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix34
-rw-r--r--pkgs/development/libraries/gstreamer/bad/fix-paths.patch26
-rw-r--r--pkgs/development/libraries/gstreamer/base/default.nix9
-rw-r--r--pkgs/development/libraries/gstreamer/core/default.nix9
-rw-r--r--pkgs/development/libraries/gstreamer/default.nix3
-rw-r--r--pkgs/development/libraries/gstreamer/devtools/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ges/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/good/default.nix10
-rw-r--r--pkgs/development/libraries/gstreamer/icamerasrc/default.nix2
-rw-r--r--pkgs/development/libraries/gstreamer/libav/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/rs/Cargo.lock3194
-rw-r--r--pkgs/development/libraries/gstreamer/rs/default.nix58
-rw-r--r--pkgs/development/libraries/gstreamer/rtsp-server/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/ugly/default.nix6
-rw-r--r--pkgs/development/libraries/gstreamer/vaapi/default.nix4
-rw-r--r--pkgs/development/libraries/gstreamer/viperfx/default.nix4
-rw-r--r--pkgs/development/libraries/gtest/default.nix24
-rw-r--r--pkgs/development/libraries/gtk-engine-murrine/default.nix2
-rw-r--r--pkgs/development/libraries/gtk-frdp/default.nix14
-rw-r--r--pkgs/development/libraries/gtk-layer-shell/default.nix2
-rw-r--r--pkgs/development/libraries/gtk-sharp/2.0.nix4
-rw-r--r--pkgs/development/libraries/gtk/2.x.nix2
-rw-r--r--pkgs/development/libraries/gtk/3.x.nix6
-rw-r--r--pkgs/development/libraries/gtk/4.x.nix29
-rw-r--r--pkgs/development/libraries/gtk4-layer-shell/default.nix2
-rw-r--r--pkgs/development/libraries/gtkextra/default.nix2
-rw-r--r--pkgs/development/libraries/gtkmm/4.x.nix4
-rw-r--r--pkgs/development/libraries/gtksourceview/5.x.nix14
-rw-r--r--pkgs/development/libraries/gupnp-av/default.nix2
-rw-r--r--pkgs/development/libraries/gupnp/1.6.nix2
-rw-r--r--pkgs/development/libraries/gupnp/default.nix2
-rw-r--r--pkgs/development/libraries/gvfs/default.nix27
-rw-r--r--pkgs/development/libraries/harfbuzz/default.nix2
-rw-r--r--pkgs/development/libraries/hax11/default.nix2
-rw-r--r--pkgs/development/libraries/herqq/default.nix2
-rw-r--r--pkgs/development/libraries/hiredis-vip/default.nix2
-rw-r--r--pkgs/development/libraries/hmat-oss/default.nix2
-rw-r--r--pkgs/development/libraries/howard-hinnant-date/default.nix2
-rw-r--r--pkgs/development/libraries/hpp-fcl/default.nix3
-rw-r--r--pkgs/development/libraries/hpx/default.nix4
-rw-r--r--pkgs/development/libraries/htmlcxx/default.nix2
-rw-r--r--pkgs/development/libraries/http-parser/default.nix2
-rw-r--r--pkgs/development/libraries/httplib/default.nix6
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix54
-rw-r--r--pkgs/development/libraries/hyena/default.nix2
-rw-r--r--pkgs/development/libraries/hyphen/default.nix2
-rw-r--r--pkgs/development/libraries/icu/make-icu.nix16
-rw-r--r--pkgs/development/libraries/igraph/default.nix4
-rw-r--r--pkgs/development/libraries/imgui/default.nix143
-rw-r--r--pkgs/development/libraries/imgui/demo/CMakeLists.txt11
-rw-r--r--pkgs/development/libraries/imgui/demo/default.nix29
-rw-r--r--pkgs/development/libraries/impy/default.nix2
-rw-r--r--pkgs/development/libraries/imtui/default.nix7
-rw-r--r--pkgs/development/libraries/iniparser/default.nix94
-rw-r--r--pkgs/development/libraries/iniparser/iniparser.pc.in12
-rw-r--r--pkgs/development/libraries/iniparser/no-usr.patch13
-rw-r--r--pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch17
-rw-r--r--pkgs/development/libraries/intel-gmmlib/default.nix4
-rw-r--r--pkgs/development/libraries/intel-media-sdk/default.nix5
-rw-r--r--pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch45
-rw-r--r--pkgs/development/libraries/ipu6-camera-hal/default.nix2
-rw-r--r--pkgs/development/libraries/isa-l/default.nix2
-rw-r--r--pkgs/development/libraries/isl/generic.nix2
-rw-r--r--pkgs/development/libraries/itk/5.x.nix6
-rw-r--r--pkgs/development/libraries/itk/generic.nix2
-rw-r--r--pkgs/development/libraries/jabcode/default.nix2
-rw-r--r--pkgs/development/libraries/java/commons/bcel/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/compress/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/daemon/default.nix2
-rw-r--r--pkgs/development/libraries/java/commons/fileupload/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/io/default.nix6
-rw-r--r--pkgs/development/libraries/java/commons/logging/default.nix4
-rw-r--r--pkgs/development/libraries/java/commons/math/default.nix2
-rw-r--r--pkgs/development/libraries/java/hsqldb/default.nix2
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix2
-rw-r--r--pkgs/development/libraries/java/rhino/default.nix2
-rw-r--r--pkgs/development/libraries/java/smack/default.nix2
-rw-r--r--pkgs/development/libraries/jbigkit/default.nix2
-rw-r--r--pkgs/development/libraries/jellyfin-ffmpeg/default.nix13
-rw-r--r--pkgs/development/libraries/jemalloc/default.nix6
-rw-r--r--pkgs/development/libraries/jitterentropy/default.nix4
-rw-r--r--pkgs/development/libraries/jose/default.nix4
-rw-r--r--pkgs/development/libraries/json-c/default.nix2
-rw-r--r--pkgs/development/libraries/json-fortran/default.nix4
-rw-r--r--pkgs/development/libraries/json-glib/default.nix2
-rw-r--r--pkgs/development/libraries/jsoncpp/default.nix2
-rw-r--r--pkgs/development/libraries/jsonrpc-glib/default.nix2
-rw-r--r--pkgs/development/libraries/kcp/default.nix2
-rw-r--r--pkgs/development/libraries/kdb/default.nix2
-rw-r--r--pkgs/development/libraries/kddockwidgets/default.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/baloo.nix1
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/kded.nix4
-rw-r--r--pkgs/development/libraries/kde-frameworks/knewstuff/default.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/krunner.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/purpose.nix2
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--pkgs/development/libraries/kdsoap/default.nix2
-rw-r--r--pkgs/development/libraries/kerberos/heimdal.nix4
-rw-r--r--pkgs/development/libraries/kerberos/krb5.nix7
-rw-r--r--pkgs/development/libraries/kirigami-addons/default.nix2
-rw-r--r--pkgs/development/libraries/kissfft/default.nix2
-rw-r--r--pkgs/development/libraries/kproperty/default.nix2
-rw-r--r--pkgs/development/libraries/kreport/default.nix2
-rw-r--r--pkgs/development/libraries/kweathercore/default.nix2
-rw-r--r--pkgs/development/libraries/kyotocabinet/default.nix2
-rw-r--r--pkgs/development/libraries/lame/default.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/frog.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/libfolia.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/ticcutils.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/ucto.nix2
-rw-r--r--pkgs/development/libraries/languagemachines/uctodata.nix2
-rw-r--r--pkgs/development/libraries/lcrq/default.nix4
-rw-r--r--pkgs/development/libraries/ldb/default.nix6
-rw-r--r--pkgs/development/libraries/ldutils/default.nix32
-rw-r--r--pkgs/development/libraries/leatherman/default.nix2
-rw-r--r--pkgs/development/libraries/lensfun/default.nix33
-rw-r--r--pkgs/development/libraries/lesstif/default.nix2
-rw-r--r--pkgs/development/libraries/level-zero/default.nix22
-rw-r--r--pkgs/development/libraries/level-zero/system-spdlog.diff66
-rw-r--r--pkgs/development/libraries/libAfterImage/default.nix98
-rw-r--r--pkgs/development/libraries/libLAS/default.nix6
-rw-r--r--pkgs/development/libraries/libaccounts-glib/default.nix2
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix11
-rw-r--r--pkgs/development/libraries/libagar/libagar_test.nix2
-rw-r--r--pkgs/development/libraries/libajantv2/default.nix15
-rw-r--r--pkgs/development/libraries/libaom/default.nix16
-rw-r--r--pkgs/development/libraries/libappindicator/default.nix2
-rw-r--r--pkgs/development/libraries/libarchive-qt/default.nix2
-rw-r--r--pkgs/development/libraries/libarchive/default.nix30
-rw-r--r--pkgs/development/libraries/libargon2/default.nix2
-rw-r--r--pkgs/development/libraries/libargs/default.nix2
-rw-r--r--pkgs/development/libraries/libasyncns/default.nix2
-rw-r--r--pkgs/development/libraries/libatomic_ops/default.nix2
-rw-r--r--pkgs/development/libraries/libaudec/default.nix2
-rw-r--r--pkgs/development/libraries/libav/default.nix2
-rw-r--r--pkgs/development/libraries/libb2/default.nix2
-rw-r--r--pkgs/development/libraries/libbacktrace/default.nix2
-rw-r--r--pkgs/development/libraries/libbap/default.nix2
-rw-r--r--pkgs/development/libraries/libbladeRF/default.nix2
-rw-r--r--pkgs/development/libraries/libblockdev/default.nix2
-rw-r--r--pkgs/development/libraries/libbluray/default.nix2
-rw-r--r--pkgs/development/libraries/libbsd/default.nix3
-rw-r--r--pkgs/development/libraries/libbytesize/default.nix2
-rw-r--r--pkgs/development/libraries/libcaca/default.nix2
-rw-r--r--pkgs/development/libraries/libcanberra/default.nix4
-rw-r--r--pkgs/development/libraries/libcangjie/default.nix2
-rw-r--r--pkgs/development/libraries/libcdaudio/default.nix2
-rw-r--r--pkgs/development/libraries/libcdio/default.nix2
-rw-r--r--pkgs/development/libraries/libcdr/default.nix4
-rw-r--r--pkgs/development/libraries/libcifpp/default.nix10
-rw-r--r--pkgs/development/libraries/libcloudproviders/default.nix2
-rw-r--r--pkgs/development/libraries/libcommuni/default.nix2
-rw-r--r--pkgs/development/libraries/libconfig/default.nix2
-rw-r--r--pkgs/development/libraries/libcork/default.nix2
-rw-r--r--pkgs/development/libraries/libcs50/default.nix6
-rw-r--r--pkgs/development/libraries/libctemplate/default.nix2
-rw-r--r--pkgs/development/libraries/libcxxrt/default.nix12
-rw-r--r--pkgs/development/libraries/libdatachannel/default.nix4
-rw-r--r--pkgs/development/libraries/libdazzle/default.nix2
-rw-r--r--pkgs/development/libraries/libdeltachat/Cargo.lock2314
-rw-r--r--pkgs/development/libraries/libdeltachat/default.nix7
-rw-r--r--pkgs/development/libraries/libdeltachat/no-static-lib.patch28
-rw-r--r--pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch35
-rw-r--r--pkgs/development/libraries/libdevil/default.nix29
-rw-r--r--pkgs/development/libraries/libdevil/ftbfs-libpng15.patch31
-rw-r--r--pkgs/development/libraries/libdevil/il_endian.h.patch27
-rw-r--r--pkgs/development/libraries/libdex/default.nix19
-rw-r--r--pkgs/development/libraries/libdigidocpp/default.nix6
-rw-r--r--pkgs/development/libraries/libdiscid/default.nix2
-rw-r--r--pkgs/development/libraries/libdisplay-info/default.nix4
-rw-r--r--pkgs/development/libraries/libdivecomputer/default.nix2
-rw-r--r--pkgs/development/libraries/libdmtx/default.nix2
-rw-r--r--pkgs/development/libraries/libdovi/Cargo.lock472
-rw-r--r--pkgs/development/libraries/libdovi/default.nix4
-rw-r--r--pkgs/development/libraries/libdrm/default.nix7
-rw-r--r--pkgs/development/libraries/libdvbcsa/default.nix2
-rw-r--r--pkgs/development/libraries/libdvbpsi/default.nix2
-rw-r--r--pkgs/development/libraries/libdvdcss/default.nix2
-rw-r--r--pkgs/development/libraries/libdvdnav/4.2.1.nix23
-rw-r--r--pkgs/development/libraries/libdvdnav/default.nix2
-rw-r--r--pkgs/development/libraries/libdvdread/4.9.9.nix2
-rw-r--r--pkgs/development/libraries/libdvdread/default.nix2
-rw-r--r--pkgs/development/libraries/libe57format/default.nix59
-rw-r--r--pkgs/development/libraries/libeatmydata/default.nix20
-rw-r--r--pkgs/development/libraries/libee/default.nix2
-rw-r--r--pkgs/development/libraries/libepoxy/default.nix2
-rw-r--r--pkgs/development/libraries/libesmtp/default.nix2
-rw-r--r--pkgs/development/libraries/libev/default.nix6
-rw-r--r--pkgs/development/libraries/libevdev/default.nix2
-rw-r--r--pkgs/development/libraries/libewf/default.nix2
-rw-r--r--pkgs/development/libraries/libexif/default.nix2
-rw-r--r--pkgs/development/libraries/libexttextcat/default.nix2
-rw-r--r--pkgs/development/libraries/libfaketime/default.nix5
-rw-r--r--pkgs/development/libraries/libffi/3.3.nix5
-rw-r--r--pkgs/development/libraries/libffi/default.nix5
-rw-r--r--pkgs/development/libraries/libfilezilla/default.nix2
-rw-r--r--pkgs/development/libraries/libfishsound/default.nix2
-rw-r--r--pkgs/development/libraries/libfm/default.nix2
-rw-r--r--pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix2
-rw-r--r--pkgs/development/libraries/libfprint-tod/default.nix2
-rw-r--r--pkgs/development/libraries/libfprint/default.nix2
-rw-r--r--pkgs/development/libraries/libfpx/default.nix9
-rw-r--r--pkgs/development/libraries/libfreefare/default.nix2
-rw-r--r--pkgs/development/libraries/libftdi/1.x.nix2
-rw-r--r--pkgs/development/libraries/libftdi/default.nix2
-rw-r--r--pkgs/development/libraries/libgadu/default.nix2
-rw-r--r--pkgs/development/libraries/libgbinder/default.nix4
-rw-r--r--pkgs/development/libraries/libgcrypt/default.nix4
-rw-r--r--pkgs/development/libraries/libgdiplus/default.nix2
-rw-r--r--pkgs/development/libraries/libgeotiff/default.nix4
-rw-r--r--pkgs/development/libraries/libgit2-glib/default.nix2
-rw-r--r--pkgs/development/libraries/libgit2/default.nix2
-rw-r--r--pkgs/development/libraries/libglibutil/default.nix6
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix2
-rw-r--r--pkgs/development/libraries/libgnomekbd/default.nix4
-rw-r--r--pkgs/development/libraries/libgnt/default.nix20
-rw-r--r--pkgs/development/libraries/libgnurl/default.nix2
-rw-r--r--pkgs/development/libraries/libgourou/default.nix4
-rw-r--r--pkgs/development/libraries/libgpg-error/default.nix6
-rw-r--r--pkgs/development/libraries/libgphoto2/default.nix2
-rw-r--r--pkgs/development/libraries/libgpiod/default.nix4
-rw-r--r--pkgs/development/libraries/libgringotts/default.nix2
-rw-r--r--pkgs/development/libraries/libgtop/default.nix14
-rw-r--r--pkgs/development/libraries/libgudev/default.nix19
-rw-r--r--pkgs/development/libraries/libgweather/default.nix6
-rw-r--r--pkgs/development/libraries/libgxps/default.nix2
-rw-r--r--pkgs/development/libraries/libhandy/0.x.nix2
-rw-r--r--pkgs/development/libraries/libhandy/default.nix2
-rw-r--r--pkgs/development/libraries/libhv/default.nix2
-rw-r--r--pkgs/development/libraries/libical/default.nix10
-rw-r--r--pkgs/development/libraries/libiconv/default.nix4
-rw-r--r--pkgs/development/libraries/libimagequant/default.nix1
-rw-r--r--pkgs/development/libraries/libime/default.nix6
-rw-r--r--pkgs/development/libraries/libimobiledevice/default.nix4
-rw-r--r--pkgs/development/libraries/libindicator/default.nix2
-rw-r--r--pkgs/development/libraries/libinfinity/default.nix2
-rw-r--r--pkgs/development/libraries/libinklevel/default.nix2
-rw-r--r--pkgs/development/libraries/libipfix/default.nix2
-rw-r--r--pkgs/development/libraries/libircclient/default.nix2
-rw-r--r--pkgs/development/libraries/libirecovery/default.nix4
-rw-r--r--pkgs/development/libraries/libjaylink/default.nix2
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch2
-rw-r--r--pkgs/development/libraries/libjpeg-turbo/default.nix13
-rw-r--r--pkgs/development/libraries/libjpeg/default.nix2
-rw-r--r--pkgs/development/libraries/libjson/default.nix2
-rw-r--r--pkgs/development/libraries/libjwt/default.nix4
-rw-r--r--pkgs/development/libraries/libjxl/default.nix6
-rw-r--r--pkgs/development/libraries/libkate/default.nix2
-rw-r--r--pkgs/development/libraries/libkrun/default.nix8
-rw-r--r--pkgs/development/libraries/libkrunfw/default.nix2
-rw-r--r--pkgs/development/libraries/liblangtag/default.nix2
-rw-r--r--pkgs/development/libraries/liblc3/default.nix9
-rw-r--r--pkgs/development/libraries/libliftoff/default.nix2
-rw-r--r--pkgs/development/libraries/liblinear/default.nix2
-rw-r--r--pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--pkgs/development/libraries/liblxi/default.nix13
-rw-r--r--pkgs/development/libraries/libmad/default.nix5
-rw-r--r--pkgs/development/libraries/libmanette/default.nix2
-rw-r--r--pkgs/development/libraries/libmatheval/default.nix2
-rw-r--r--pkgs/development/libraries/libmatroska/default.nix2
-rw-r--r--pkgs/development/libraries/libmbim/default.nix2
-rw-r--r--pkgs/development/libraries/libmcfp/default.nix4
-rw-r--r--pkgs/development/libraries/libmd/default.nix2
-rw-r--r--pkgs/development/libraries/libmikmod/default.nix2
-rw-r--r--pkgs/development/libraries/libmodulemd/default.nix31
-rw-r--r--pkgs/development/libraries/libmodulemd/glib-devdoc.patch13
-rw-r--r--pkgs/development/libraries/libmowgli/default.nix2
-rw-r--r--pkgs/development/libraries/libmpeg2/default.nix2
-rw-r--r--pkgs/development/libraries/libmspack/default.nix2
-rw-r--r--pkgs/development/libraries/libmtp/default.nix2
-rw-r--r--pkgs/development/libraries/libmx/default.nix2
-rw-r--r--pkgs/development/libraries/libnabo/default.nix6
-rw-r--r--pkgs/development/libraries/libnatspec/default.nix2
-rw-r--r--pkgs/development/libraries/libnbd/default.nix19
-rw-r--r--pkgs/development/libraries/libnbd/libnbd-metadata3
-rw-r--r--pkgs/development/libraries/libndp/default.nix4
-rw-r--r--pkgs/development/libraries/libnftnl/default.nix4
-rw-r--r--pkgs/development/libraries/libngspice/default.nix2
-rw-r--r--pkgs/development/libraries/libnotify/default.nix2
-rw-r--r--pkgs/development/libraries/libnut/default.nix2
-rw-r--r--pkgs/development/libraries/libodfgen/default.nix2
-rw-r--r--pkgs/development/libraries/liboggz/default.nix2
-rw-r--r--pkgs/development/libraries/liboil/default.nix2
-rw-r--r--pkgs/development/libraries/libomxil-bellagio/default.nix6
-rw-r--r--pkgs/development/libraries/libopenshot-audio/default.nix1
-rw-r--r--pkgs/development/libraries/libopus/default.nix81
-rw-r--r--pkgs/development/libraries/libopus/fix-pkg-config-paths.patch13
-rw-r--r--pkgs/development/libraries/libopus/test-timeout.patch9
-rw-r--r--pkgs/development/libraries/liboqs/default.nix41
-rw-r--r--pkgs/development/libraries/liboqs/fix-openssl-detection.patch36
-rw-r--r--pkgs/development/libraries/libowfat/default.nix2
-rw-r--r--pkgs/development/libraries/libowlevelzs/default.nix2
-rw-r--r--pkgs/development/libraries/libpanel/default.nix4
-rw-r--r--pkgs/development/libraries/libpar2/default.nix2
-rw-r--r--pkgs/development/libraries/libpeas/2.x.nix6
-rw-r--r--pkgs/development/libraries/libpeas/default.nix6
-rw-r--r--pkgs/development/libraries/libphonenumber/default.nix50
-rw-r--r--pkgs/development/libraries/libplacebo/default.nix9
-rw-r--r--pkgs/development/libraries/libplctag/default.nix4
-rw-r--r--pkgs/development/libraries/libplist/default.nix2
-rw-r--r--pkgs/development/libraries/libpng/12.nix2
-rw-r--r--pkgs/development/libraries/libpng/default.nix8
-rw-r--r--pkgs/development/libraries/libpointmatcher/default.nix2
-rw-r--r--pkgs/development/libraries/libpostal/default.nix2
-rw-r--r--pkgs/development/libraries/libpqxx/6.nix2
-rw-r--r--pkgs/development/libraries/libpqxx/default.nix2
-rw-r--r--pkgs/development/libraries/libproxy/default.nix21
-rw-r--r--pkgs/development/libraries/libpst/default.nix2
-rw-r--r--pkgs/development/libraries/libqalculate/default.nix6
-rw-r--r--pkgs/development/libraries/libqb/default.nix2
-rw-r--r--pkgs/development/libraries/libqofono/default.nix2
-rw-r--r--pkgs/development/libraries/libqtav/default.nix2
-rw-r--r--pkgs/development/libraries/libquotient/default.nix2
-rw-r--r--pkgs/development/libraries/libr3/default.nix2
-rw-r--r--pkgs/development/libraries/libraqm/default.nix2
-rw-r--r--pkgs/development/libraries/libraspberrypi/default.nix1
-rw-r--r--pkgs/development/libraries/librdf/raptor.nix2
-rw-r--r--pkgs/development/libraries/librdf/raptor2.nix2
-rw-r--r--pkgs/development/libraries/libre/default.nix4
-rw-r--r--pkgs/development/libraries/librealsense/default.nix2
-rw-r--r--pkgs/development/libraries/librecast/default.nix6
-rw-r--r--pkgs/development/libraries/librelp/default.nix2
-rw-r--r--pkgs/development/libraries/librem/default.nix4
-rw-r--r--pkgs/development/libraries/libremidi/default.nix2
-rw-r--r--pkgs/development/libraries/libresample/default.nix2
-rw-r--r--pkgs/development/libraries/libressl/default.nix18
-rw-r--r--pkgs/development/libraries/librevenge/default.nix2
-rw-r--r--pkgs/development/libraries/librist/default.nix2
-rw-r--r--pkgs/development/libraries/librsvg/default.nix19
-rw-r--r--pkgs/development/libraries/libs3/default.nix2
-rw-r--r--pkgs/development/libraries/libsass/default.nix2
-rw-r--r--pkgs/development/libraries/libschrift/default.nix4
-rw-r--r--pkgs/development/libraries/libsearpc/default.nix2
-rw-r--r--pkgs/development/libraries/libsecret/default.nix11
-rw-r--r--pkgs/development/libraries/libsegfault/default.nix2
-rw-r--r--pkgs/development/libraries/libserdes/default.nix2
-rw-r--r--pkgs/development/libraries/libshumate/default.nix25
-rw-r--r--pkgs/development/libraries/libsidplayfp/default.nix6
-rw-r--r--pkgs/development/libraries/libsieve/default.nix2
-rw-r--r--pkgs/development/libraries/libsigcxx/3.0.nix2
-rw-r--r--pkgs/development/libraries/libsigcxx/default.nix2
-rw-r--r--pkgs/development/libraries/libsignon-glib/default.nix2
-rw-r--r--pkgs/development/libraries/libsixel/default.nix2
-rw-r--r--pkgs/development/libraries/libskk/default.nix2
-rw-r--r--pkgs/development/libraries/libsmi/default.nix2
-rw-r--r--pkgs/development/libraries/libsndfile/default.nix2
-rw-r--r--pkgs/development/libraries/libsodium/default.nix18
-rw-r--r--pkgs/development/libraries/libsolv/default.nix6
-rw-r--r--pkgs/development/libraries/libspiro/default.nix2
-rw-r--r--pkgs/development/libraries/libsrs2/default.nix2
-rw-r--r--pkgs/development/libraries/libssh2/default.nix8
-rw-r--r--pkgs/development/libraries/libstatgrab/default.nix2
-rw-r--r--pkgs/development/libraries/libstroke/default.nix2
-rw-r--r--pkgs/development/libraries/libsvm/default.nix2
-rw-r--r--pkgs/development/libraries/libsystemtap/default.nix6
-rw-r--r--pkgs/development/libraries/libtap/default.nix2
-rw-r--r--pkgs/development/libraries/libtasn1/default.nix2
-rw-r--r--pkgs/development/libraries/libthreadar/default.nix2
-rw-r--r--pkgs/development/libraries/libtickit/default.nix2
-rw-r--r--pkgs/development/libraries/libtiff/default.nix7
-rw-r--r--pkgs/development/libraries/libtiger/default.nix2
-rw-r--r--pkgs/development/libraries/libtomcrypt/default.nix2
-rw-r--r--pkgs/development/libraries/libtommath/default.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/1.2.nix2
-rw-r--r--pkgs/development/libraries/libtorrent-rasterbar/default.nix2
-rw-r--r--pkgs/development/libraries/libu2f-host/default.nix2
-rw-r--r--pkgs/development/libraries/libu2f-server/default.nix2
-rw-r--r--pkgs/development/libraries/libubox/default.nix4
-rw-r--r--pkgs/development/libraries/libuiohook/default.nix2
-rw-r--r--pkgs/development/libraries/libunarr/default.nix2
-rw-r--r--pkgs/development/libraries/libuninameslist/default.nix6
-rw-r--r--pkgs/development/libraries/libunique/3.x.nix2
-rw-r--r--pkgs/development/libraries/libunique/default.nix2
-rw-r--r--pkgs/development/libraries/libunity/default.nix2
-rw-r--r--pkgs/development/libraries/libunwind/default.nix4
-rw-r--r--pkgs/development/libraries/liburcu/default.nix3
-rw-r--r--pkgs/development/libraries/libusb1/default.nix16
-rw-r--r--pkgs/development/libraries/libusbgx/default.nix2
-rw-r--r--pkgs/development/libraries/libusbmuxd/default.nix2
-rw-r--r--pkgs/development/libraries/libuv/default.nix6
-rw-r--r--pkgs/development/libraries/libva-vdpau-driver/default.nix (renamed from pkgs/development/libraries/vaapi-vdpau/default.nix)0
-rw-r--r--pkgs/development/libraries/libva/default.nix6
-rw-r--r--pkgs/development/libraries/libva/utils.nix6
-rw-r--r--pkgs/development/libraries/libvgm/default.nix6
-rw-r--r--pkgs/development/libraries/libviperfx/default.nix2
-rw-r--r--pkgs/development/libraries/libvirt/default.nix2
-rw-r--r--pkgs/development/libraries/libvisio/default.nix2
-rw-r--r--pkgs/development/libraries/libvisual/default.nix2
-rw-r--r--pkgs/development/libraries/libvmi/default.nix2
-rw-r--r--pkgs/development/libraries/libvncserver/default.nix1
-rw-r--r--pkgs/development/libraries/libvpx/default.nix18
-rw-r--r--pkgs/development/libraries/libwacom/default.nix4
-rw-r--r--pkgs/development/libraries/libwacom/surface.nix18
-rw-r--r--pkgs/development/libraries/libwbxml/default.nix6
-rw-r--r--pkgs/development/libraries/libwebp/default.nix6
-rw-r--r--pkgs/development/libraries/libwnck/2.nix2
-rw-r--r--pkgs/development/libraries/libwpd/default.nix2
-rw-r--r--pkgs/development/libraries/libwpe/default.nix3
-rw-r--r--pkgs/development/libraries/libwpe/fdo.nix3
-rw-r--r--pkgs/development/libraries/libxcrypt/default.nix20
-rw-r--r--pkgs/development/libraries/libxkbcommon/default.nix15
-rw-r--r--pkgs/development/libraries/libxkbcommon/disable-x11com.patch17
-rw-r--r--pkgs/development/libraries/libxl/default.nix2
-rw-r--r--pkgs/development/libraries/libxlsxwriter/default.nix12
-rw-r--r--pkgs/development/libraries/libxmi/default.nix2
-rw-r--r--pkgs/development/libraries/libxml2/default.nix15
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix6
-rw-r--r--pkgs/development/libraries/libxmlb/installed-tests-path.patch3
-rw-r--r--pkgs/development/libraries/libxslt/default.nix2
-rw-r--r--pkgs/development/libraries/libyaml/default.nix2
-rw-r--r--pkgs/development/libraries/libykneomgr/default.nix2
-rw-r--r--pkgs/development/libraries/libz/default.nix8
-rw-r--r--pkgs/development/libraries/libzdb/default.nix2
-rw-r--r--pkgs/development/libraries/libzim/default.nix4
-rw-r--r--pkgs/development/libraries/libzip/default.nix2
-rw-r--r--pkgs/development/libraries/libzmf/default.nix2
-rw-r--r--pkgs/development/libraries/lightgbm/default.nix4
-rw-r--r--pkgs/development/libraries/lime/default.nix2
-rw-r--r--pkgs/development/libraries/linenoise-ng/default.nix2
-rw-r--r--pkgs/development/libraries/linenoise/default.nix2
-rw-r--r--pkgs/development/libraries/llhttp/default.nix16
-rw-r--r--pkgs/development/libraries/lmdb/default.nix4
-rw-r--r--pkgs/development/libraries/log4cplus/default.nix2
-rw-r--r--pkgs/development/libraries/log4cpp/default.nix2
-rw-r--r--pkgs/development/libraries/log4cxx/default.nix2
-rw-r--r--pkgs/development/libraries/log4shib/default.nix2
-rw-r--r--pkgs/development/libraries/loki/default.nix2
-rw-r--r--pkgs/development/libraries/loudmouth/default.nix2
-rw-r--r--pkgs/development/libraries/luabind/default.nix2
-rw-r--r--pkgs/development/libraries/luabridge/default.nix2
-rw-r--r--pkgs/development/libraries/lyra/default.nix2
-rw-r--r--pkgs/development/libraries/lzo/default.nix4
-rw-r--r--pkgs/development/libraries/mailcore2/default.nix2
-rw-r--r--pkgs/development/libraries/malcontent/default.nix5
-rw-r--r--pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch13
-rw-r--r--pkgs/development/libraries/mapnik/default.nix35
-rw-r--r--pkgs/development/libraries/mapnik/use-sparsehash-package.patch19
-rw-r--r--pkgs/development/libraries/marl/default.nix2
-rw-r--r--pkgs/development/libraries/mathgl/default.nix2
-rw-r--r--pkgs/development/libraries/matio/default.nix6
-rw-r--r--pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix2
-rw-r--r--pkgs/development/libraries/mdds/default.nix2
-rw-r--r--pkgs/development/libraries/mdk-sdk/default.nix4
-rw-r--r--pkgs/development/libraries/medfile/default.nix40
-rw-r--r--pkgs/development/libraries/medfile/hdf5-1.14.patch86
-rw-r--r--pkgs/development/libraries/mediastreamer/default.nix2
-rw-r--r--pkgs/development/libraries/mediastreamer/msopenh264.nix3
-rw-r--r--pkgs/development/libraries/mesa/darwin.patch17
-rw-r--r--pkgs/development/libraries/mesa/default.nix443
-rw-r--r--pkgs/development/libraries/mesa/stubs.nix3
-rw-r--r--pkgs/development/libraries/mimalloc/default.nix4
-rw-r--r--pkgs/development/libraries/minilibx/default.nix4
-rw-r--r--pkgs/development/libraries/minixml/default.nix2
-rw-r--r--pkgs/development/libraries/miniz/default.nix5
-rw-r--r--pkgs/development/libraries/minizip-ng/default.nix1
-rw-r--r--pkgs/development/libraries/minizip/default.nix2
-rw-r--r--pkgs/development/libraries/mitama-cpp-result/default.nix2
-rw-r--r--pkgs/development/libraries/mlib/default.nix4
-rw-r--r--pkgs/development/libraries/mlt/default.nix2
-rw-r--r--pkgs/development/libraries/mongoc/default.nix6
-rw-r--r--pkgs/development/libraries/mongocxx/default.nix2
-rw-r--r--pkgs/development/libraries/mono-addins/default.nix2
-rw-r--r--pkgs/development/libraries/monocypher/default.nix2
-rw-r--r--pkgs/development/libraries/motif/default.nix26
-rw-r--r--pkgs/development/libraries/mp4v2/default.nix2
-rw-r--r--pkgs/development/libraries/mpdecimal/default.nix4
-rw-r--r--pkgs/development/libraries/mpfi/default.nix2
-rw-r--r--pkgs/development/libraries/mpich/default.nix8
-rw-r--r--pkgs/development/libraries/mpir/default.nix2
-rw-r--r--pkgs/development/libraries/mps/default.nix2
-rw-r--r--pkgs/development/libraries/msgpack-c/default.nix9
-rw-r--r--pkgs/development/libraries/msgpuck/default.nix2
-rw-r--r--pkgs/development/libraries/mtxclient/default.nix7
-rw-r--r--pkgs/development/libraries/muparserx/default.nix2
-rw-r--r--pkgs/development/libraries/mutest/default.nix2
-rw-r--r--pkgs/development/libraries/mvfst/default.nix2
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix7
-rw-r--r--pkgs/development/libraries/nanopb/test-message-with-options/default.nix10
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto2/default.nix7
-rw-r--r--pkgs/development/libraries/nanopb/test-simple-proto3/default.nix8
-rw-r--r--pkgs/development/libraries/ncurses/default.nix19
-rw-r--r--pkgs/development/libraries/ndi/default.nix22
-rw-r--r--pkgs/development/libraries/ndi/version.json2
-rw-r--r--pkgs/development/libraries/ndn-cxx/default.nix2
-rw-r--r--pkgs/development/libraries/ndpi/default.nix2
-rw-r--r--pkgs/development/libraries/neatvnc/default.nix2
-rw-r--r--pkgs/development/libraries/neon/default.nix2
-rw-r--r--pkgs/development/libraries/netcdf-fortran/default.nix12
-rw-r--r--pkgs/development/libraries/nghttp2/default.nix6
-rw-r--r--pkgs/development/libraries/nghttp3/default.nix6
-rw-r--r--pkgs/development/libraries/ngtcp2/default.nix6
-rw-r--r--pkgs/development/libraries/ngtcp2/gnutls.nix6
-rw-r--r--pkgs/development/libraries/npapi-sdk/default.nix2
-rw-r--r--pkgs/development/libraries/npth/default.nix2
-rw-r--r--pkgs/development/libraries/nspr/default.nix2
-rw-r--r--pkgs/development/libraries/nss/generic.nix2
-rw-r--r--pkgs/development/libraries/nss/latest.nix4
-rw-r--r--pkgs/development/libraries/nss_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/nsync/default.nix4
-rw-r--r--pkgs/development/libraries/ntbtls/default.nix2
-rw-r--r--pkgs/development/libraries/ntirpc/default.nix4
-rw-r--r--pkgs/development/libraries/ntl/default.nix2
-rw-r--r--pkgs/development/libraries/numcpp/default.nix2
-rw-r--r--pkgs/development/libraries/nvidia-vaapi-driver/default.nix6
-rw-r--r--pkgs/development/libraries/octomap/default.nix2
-rw-r--r--pkgs/development/libraries/ogre/default.nix6
-rw-r--r--pkgs/development/libraries/oneDNN/default.nix4
-rw-r--r--pkgs/development/libraries/onnxruntime/default.nix4
-rw-r--r--pkgs/development/libraries/open62541/default.nix163
-rw-r--r--pkgs/development/libraries/openbabel/2.nix4
-rw-r--r--pkgs/development/libraries/openbabel/default.nix2
-rw-r--r--pkgs/development/libraries/openbsm/default.nix2
-rw-r--r--pkgs/development/libraries/opencascade-occt/default.nix37
-rw-r--r--pkgs/development/libraries/opencl-clang/default.nix2
-rw-r--r--pkgs/development/libraries/opencollada/default.nix2
-rw-r--r--pkgs/development/libraries/opencolorio/1.x.nix2
-rw-r--r--pkgs/development/libraries/opencolorio/default.nix2
-rw-r--r--pkgs/development/libraries/opencv/3.x.nix5
-rw-r--r--pkgs/development/libraries/opencv/4.x.nix11
-rw-r--r--pkgs/development/libraries/opendht/default.nix6
-rw-r--r--pkgs/development/libraries/opendmarc/default.nix2
-rw-r--r--pkgs/development/libraries/openexr/3.nix2
-rw-r--r--pkgs/development/libraries/openexr/default.nix2
-rw-r--r--pkgs/development/libraries/openfec/default.nix7
-rw-r--r--pkgs/development/libraries/openimagedenoise/default.nix28
-rw-r--r--pkgs/development/libraries/openimageio/default.nix2
-rw-r--r--pkgs/development/libraries/openldap/default.nix2
-rw-r--r--pkgs/development/libraries/openpam/default.nix2
-rw-r--r--pkgs/development/libraries/opensaml-cpp/default.nix9
-rw-r--r--pkgs/development/libraries/openscenegraph/default.nix2
-rw-r--r--pkgs/development/libraries/openslide/default.nix2
-rw-r--r--pkgs/development/libraries/openslp/default.nix2
-rw-r--r--pkgs/development/libraries/openssl/default.nix8
-rw-r--r--pkgs/development/libraries/opensubdiv/default.nix2
-rw-r--r--pkgs/development/libraries/openturns/default.nix82
-rw-r--r--pkgs/development/libraries/openvdb/default.nix4
-rw-r--r--pkgs/development/libraries/openvino/default.nix26
-rw-r--r--pkgs/development/libraries/openvr/default.nix67
-rw-r--r--pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--pkgs/development/libraries/openzwave/default.nix21
-rw-r--r--pkgs/development/libraries/ortp/default.nix2
-rw-r--r--pkgs/development/libraries/osip/default.nix2
-rw-r--r--pkgs/development/libraries/p11-kit/default.nix5
-rw-r--r--pkgs/development/libraries/packr/default.nix4
-rw-r--r--pkgs/development/libraries/pango/default.nix6
-rw-r--r--pkgs/development/libraries/pangolin/default.nix2
-rw-r--r--pkgs/development/libraries/pangomm/2.48.nix4
-rw-r--r--pkgs/development/libraries/parson/default.nix2
-rw-r--r--pkgs/development/libraries/pcg-c/default.nix2
-rw-r--r--pkgs/development/libraries/pcmsolver/default.nix2
-rw-r--r--pkgs/development/libraries/pcre/default.nix17
-rw-r--r--pkgs/development/libraries/pcre2/default.nix5
-rw-r--r--pkgs/development/libraries/pdal/default.nix10
-rw-r--r--pkgs/development/libraries/pdfhummus/default.nix6
-rw-r--r--pkgs/development/libraries/pe-parse/default.nix6
-rw-r--r--pkgs/development/libraries/physics/apfel/default.nix2
-rw-r--r--pkgs/development/libraries/physics/applgrid/default.nix2
-rw-r--r--pkgs/development/libraries/physics/fastjet/default.nix2
-rw-r--r--pkgs/development/libraries/physics/fastnlo-toolkit/default.nix4
-rw-r--r--pkgs/development/libraries/physics/geant4/default.nix4
-rw-r--r--pkgs/development/libraries/physics/hepmc2/default.nix2
-rw-r--r--pkgs/development/libraries/physics/hepmc3/default.nix7
-rw-r--r--pkgs/development/libraries/physics/herwig/default.nix2
-rw-r--r--pkgs/development/libraries/physics/lhapdf/default.nix2
-rw-r--r--pkgs/development/libraries/physics/mela/default.nix2
-rw-r--r--pkgs/development/libraries/physics/nlojet/default.nix2
-rw-r--r--pkgs/development/libraries/physics/pythia/default.nix2
-rw-r--r--pkgs/development/libraries/physics/qcdnum/default.nix2
-rw-r--r--pkgs/development/libraries/physics/rivet/default.nix4
-rw-r--r--pkgs/development/libraries/pinocchio/default.nix43
-rw-r--r--pkgs/development/libraries/pipewire/default.nix11
-rw-r--r--pkgs/development/libraries/pipewire/wireplumber.nix6
-rw-r--r--pkgs/development/libraries/pixman/default.nix2
-rw-r--r--pkgs/development/libraries/plasma-wayland-protocols/default.nix4
-rw-r--r--pkgs/development/libraries/platform-folders/default.nix2
-rw-r--r--pkgs/development/libraries/plib/default.nix2
-rw-r--r--pkgs/development/libraries/poco/default.nix4
-rw-r--r--pkgs/development/libraries/podofo/0.10.x.nix2
-rw-r--r--pkgs/development/libraries/podofo/default.nix2
-rw-r--r--pkgs/development/libraries/polkit-qt-1/default.nix2
-rw-r--r--pkgs/development/libraries/polkit/0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch53
-rw-r--r--pkgs/development/libraries/polkit/default.nix33
-rw-r--r--pkgs/development/libraries/polkit/elogind.patch66
-rw-r--r--pkgs/development/libraries/poppler/default.nix2
-rw-r--r--pkgs/development/libraries/popt/default.nix3
-rw-r--r--pkgs/development/libraries/ppl/default.nix2
-rw-r--r--pkgs/development/libraries/precice/default.nix17
-rw-r--r--pkgs/development/libraries/presage/default.nix2
-rw-r--r--pkgs/development/libraries/process-cpp/default.nix50
-rw-r--r--pkgs/development/libraries/proj/default.nix5
-rw-r--r--pkgs/development/libraries/prometheus-client-c/default.nix4
-rw-r--r--pkgs/development/libraries/properties-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/protobuf/27.nix6
-rw-r--r--pkgs/development/libraries/protobufc/default.nix8
-rw-r--r--pkgs/development/libraries/prototypejs/default.nix2
-rw-r--r--pkgs/development/libraries/pslib/default.nix2
-rw-r--r--pkgs/development/libraries/pth/default.nix2
-rw-r--r--pkgs/development/libraries/pugixml/default.nix4
-rw-r--r--pkgs/development/libraries/pupnp/default.nix2
-rw-r--r--pkgs/development/libraries/pyotherside/default.nix4
-rw-r--r--pkgs/development/libraries/pystring/default.nix2
-rw-r--r--pkgs/development/libraries/python-qt/default.nix1
-rw-r--r--pkgs/development/libraries/qmenumodel/default.nix2
-rw-r--r--pkgs/development/libraries/qmlbox2d/default.nix2
-rw-r--r--pkgs/development/libraries/qmltermwidget/default.nix2
-rw-r--r--pkgs/development/libraries/qpdf/default.nix26
-rw-r--r--pkgs/development/libraries/qscintilla/default.nix2
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix37
-rw-r--r--pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch11
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs-generated.json160
-rw-r--r--pkgs/development/libraries/qt-5/5.15/srcs.nix16
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix2
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtlocation.nix1
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtpurchasing.nix14
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtquick3d.nix11
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwayland.nix3
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtwebengine.nix24
-rw-r--r--pkgs/development/libraries/qt-5/qtModule.nix2
-rw-r--r--pkgs/development/libraries/qt-6/default.nix1
-rw-r--r--pkgs/development/libraries/qt-6/fetch.sh2
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtbase.nix2
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtmqtt.nix4
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtmultimedia.nix2
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtwebengine.nix4
-rw-r--r--pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch50
-rw-r--r--pkgs/development/libraries/qt-6/qtModule.nix2
-rw-r--r--pkgs/development/libraries/qt-6/srcs.nix314
-rw-r--r--pkgs/development/libraries/qtkeychain/default.nix7
-rw-r--r--pkgs/development/libraries/qtstyleplugin-kvantum/default.nix4
-rw-r--r--pkgs/development/libraries/qtutilities/default.nix4
-rw-r--r--pkgs/development/libraries/quantlib/default.nix2
-rw-r--r--pkgs/development/libraries/quarto/default.nix4
-rw-r--r--pkgs/development/libraries/quesoglc/default.nix2
-rw-r--r--pkgs/development/libraries/quickflux/default.nix2
-rw-r--r--pkgs/development/libraries/qxlsx/default.nix4
-rw-r--r--pkgs/development/libraries/qxmpp/default.nix4
-rw-r--r--pkgs/development/libraries/rabbitmq-c/default.nix11
-rw-r--r--pkgs/development/libraries/range-v3/default.nix2
-rw-r--r--pkgs/development/libraries/rapidcheck/default.nix4
-rw-r--r--pkgs/development/libraries/rapidyaml/default.nix7
-rw-r--r--pkgs/development/libraries/raylib/default.nix2
-rw-r--r--pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--pkgs/development/libraries/re2/default.nix6
-rw-r--r--pkgs/development/libraries/readline/8.2.nix2
-rw-r--r--pkgs/development/libraries/readosm/default.nix2
-rw-r--r--pkgs/development/libraries/reproc/default.nix2
-rw-r--r--pkgs/development/libraries/resolv_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/retro-gtk/default.nix2
-rw-r--r--pkgs/development/libraries/rlog/default.nix2
-rw-r--r--pkgs/development/libraries/rlottie/default.nix2
-rw-r--r--pkgs/development/libraries/rnnoise-plugin/default.nix6
-rw-r--r--pkgs/development/libraries/rocksdb/default.nix7
-rw-r--r--pkgs/development/libraries/rtrlib/default.nix2
-rw-r--r--pkgs/development/libraries/rubberband/default.nix4
-rw-r--r--pkgs/development/libraries/rure/default.nix2
-rw-r--r--pkgs/development/libraries/rutabaga_gfx/default.nix18
-rw-r--r--pkgs/development/libraries/s2n-tls/default.nix4
-rw-r--r--pkgs/development/libraries/schroedinger/default.nix2
-rw-r--r--pkgs/development/libraries/science/astronomy/cfitsio/default.nix4
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/default.nix4
-rw-r--r--pkgs/development/libraries/science/astronomy/indilib/indi-full.nix2
-rw-r--r--pkgs/development/libraries/science/astronomy/wcslib/default.nix4
-rw-r--r--pkgs/development/libraries/science/biology/bicpl/default.nix31
-rw-r--r--pkgs/development/libraries/science/biology/htslib/default.nix2
-rw-r--r--pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch13
-rw-r--r--pkgs/development/libraries/science/chemistry/harminv/default.nix8
-rw-r--r--pkgs/development/libraries/science/chemistry/libvdwxc/default.nix2
-rw-r--r--pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/science/chemistry/mstore/default.nix4
-rw-r--r--pkgs/development/libraries/science/chemistry/openmm/default.nix9
-rw-r--r--pkgs/development/libraries/science/chemistry/plumed/default.nix4
-rw-r--r--pkgs/development/libraries/science/chemistry/xcfun/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/QuadProgpp/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/blis/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/bonmin/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/cholmod-extra/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/clblas/default.nix11
-rw-r--r--pkgs/development/libraries/science/math/clblast/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/ecos/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/faiss/default.nix19
-rw-r--r--pkgs/development/libraries/science/math/ipopt/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/lcalc/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/libamplsolver/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/libtorch/bin.nix13
-rw-r--r--pkgs/development/libraries/science/math/libtorch/binary-hashes.nix24
-rwxr-xr-xpkgs/development/libraries/science/math/libtorch/prefetch.sh5
-rw-r--r--pkgs/development/libraries/science/math/libtorch/test/default.nix8
-rw-r--r--pkgs/development/libraries/science/math/openblas/default.nix14
-rw-r--r--pkgs/development/libraries/science/math/openspecfun/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/or-tools/default.nix3
-rw-r--r--pkgs/development/libraries/science/math/osi/default.nix6
-rw-r--r--pkgs/development/libraries/science/math/osqp/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/parmetis/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/planarity/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/4.2.nix2
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/4.4.nix2
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/superlu/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch6
-rw-r--r--pkgs/development/libraries/science/math/sympow/default.nix41
-rw-r--r--pkgs/development/libraries/science/math/tensorflow-lite/default.nix2
-rw-r--r--pkgs/development/libraries/science/math/zn_poly/default.nix1
-rw-r--r--pkgs/development/libraries/science/networking/ns-3/default.nix5
-rw-r--r--pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix2
-rw-r--r--pkgs/development/libraries/scope-lite/default.nix2
-rw-r--r--pkgs/development/libraries/scriptaculous/default.nix2
-rw-r--r--pkgs/development/libraries/sentry-native/default.nix4
-rw-r--r--pkgs/development/libraries/serd/default.nix2
-rw-r--r--pkgs/development/libraries/sharness/default.nix1
-rw-r--r--pkgs/development/libraries/shhmsg/default.nix2
-rw-r--r--pkgs/development/libraries/shhopt/default.nix2
-rw-r--r--pkgs/development/libraries/shibboleth-sp/default.nix11
-rw-r--r--pkgs/development/libraries/sigslot/default.nix2
-rw-r--r--pkgs/development/libraries/silgraphite/graphite2.nix2
-rw-r--r--pkgs/development/libraries/simdjson/default.nix4
-rw-r--r--pkgs/development/libraries/slang/default.nix2
-rw-r--r--pkgs/development/libraries/slib/default.nix2
-rw-r--r--pkgs/development/libraries/smooth/default.nix2
-rw-r--r--pkgs/development/libraries/snap7/default.nix2
-rw-r--r--pkgs/development/libraries/snappy/default.nix9
-rw-r--r--pkgs/development/libraries/soci/bc-soci.nix2
-rw-r--r--pkgs/development/libraries/socket_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/sope/default.nix2
-rw-r--r--pkgs/development/libraries/sord/default.nix2
-rw-r--r--pkgs/development/libraries/soundtouch/default.nix2
-rw-r--r--pkgs/development/libraries/soxt/default.nix2
-rw-r--r--pkgs/development/libraries/span-lite/default.nix2
-rw-r--r--pkgs/development/libraries/spandsp/3.nix9
-rw-r--r--pkgs/development/libraries/spandsp/common.nix3
-rw-r--r--pkgs/development/libraries/spandsp/default.nix9
-rw-r--r--pkgs/development/libraries/sparsehash/default.nix2
-rw-r--r--pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch29
-rw-r--r--pkgs/development/libraries/spdk/default.nix20
-rw-r--r--pkgs/development/libraries/spdk/setuptools.patch25
-rw-r--r--pkgs/development/libraries/spectra/default.nix2
-rw-r--r--pkgs/development/libraries/speex/default.nix2
-rw-r--r--pkgs/development/libraries/speexdsp/default.nix2
-rw-r--r--pkgs/development/libraries/spice-gtk/default.nix4
-rw-r--r--pkgs/development/libraries/spirv-headers/default.nix4
-rw-r--r--pkgs/development/libraries/sqlcipher/default.nix4
-rw-r--r--pkgs/development/libraries/sqlite/default.nix8
-rw-r--r--pkgs/development/libraries/sqlite/tools.nix8
-rw-r--r--pkgs/development/libraries/sregex/default.nix2
-rw-r--r--pkgs/development/libraries/stfl/default.nix2
-rw-r--r--pkgs/development/libraries/stxxl/default.nix2
-rw-r--r--pkgs/development/libraries/subunit/default.nix2
-rw-r--r--pkgs/development/libraries/swiften/default.nix2
-rw-r--r--pkgs/development/libraries/sword/default.nix44
-rw-r--r--pkgs/development/libraries/symengine/default.nix6
-rw-r--r--pkgs/development/libraries/t1lib/default.nix2
-rw-r--r--pkgs/development/libraries/tachyon/default.nix2
-rw-r--r--pkgs/development/libraries/taglib/default.nix2
-rw-r--r--pkgs/development/libraries/talloc/default.nix4
-rw-r--r--pkgs/development/libraries/tbb/2020_3.nix4
-rw-r--r--pkgs/development/libraries/tbb/2021_5.nix71
-rw-r--r--pkgs/development/libraries/tbb/default.nix3
-rw-r--r--pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch13
-rw-r--r--pkgs/development/libraries/tbox/default.nix2
-rw-r--r--pkgs/development/libraries/tcltls/default.nix2
-rw-r--r--pkgs/development/libraries/tdb/default.nix6
-rw-r--r--pkgs/development/libraries/tdlib/default.nix6
-rw-r--r--pkgs/development/libraries/template-glib/default.nix6
-rw-r--r--pkgs/development/libraries/tevent/default.nix6
-rw-r--r--pkgs/development/libraries/theft/default.nix2
-rw-r--r--pkgs/development/libraries/ti-rpc/default.nix2
-rw-r--r--pkgs/development/libraries/tidyp/default.nix2
-rw-r--r--pkgs/development/libraries/timezonemap/default.nix2
-rw-r--r--pkgs/development/libraries/tix/default.nix2
-rw-r--r--pkgs/development/libraries/tk/8.6.nix1
-rw-r--r--pkgs/development/libraries/tk/generic.nix2
-rw-r--r--pkgs/development/libraries/tkimg/default.nix8
-rw-r--r--pkgs/development/libraries/tkrzw/default.nix6
-rw-r--r--pkgs/development/libraries/toml-f/default.nix3
-rw-r--r--pkgs/development/libraries/tpm2-tss/default.nix13
-rw-r--r--pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch475
-rw-r--r--pkgs/development/libraries/tracker-miners/default.nix144
-rw-r--r--pkgs/development/libraries/tracker/default.nix6
-rw-r--r--pkgs/development/libraries/tweeny/default.nix2
-rw-r--r--pkgs/development/libraries/twolame/default.nix2
-rw-r--r--pkgs/development/libraries/ubus/default.nix4
-rw-r--r--pkgs/development/libraries/ucl/default.nix5
-rw-r--r--pkgs/development/libraries/uclient/default.nix1
-rw-r--r--pkgs/development/libraries/ucx/default.nix4
-rw-r--r--pkgs/development/libraries/udunits/default.nix2
-rw-r--r--pkgs/development/libraries/uid_wrapper/default.nix2
-rw-r--r--pkgs/development/libraries/umockdev/default.nix5
-rw-r--r--pkgs/development/libraries/unibilium/default.nix2
-rw-r--r--pkgs/development/libraries/updfparser/default.nix2
-rw-r--r--pkgs/development/libraries/urdfdom-headers/default.nix8
-rw-r--r--pkgs/development/libraries/urdfdom/default.nix13
-rw-r--r--pkgs/development/libraries/uriparser/default.nix5
-rw-r--r--pkgs/development/libraries/usrsctp/default.nix2
-rw-r--r--pkgs/development/libraries/ustr/default.nix43
-rw-r--r--pkgs/development/libraries/ustr/va_args.patch23
-rw-r--r--pkgs/development/libraries/ustream-ssl/default.nix6
-rw-r--r--pkgs/development/libraries/utf8proc/default.nix2
-rw-r--r--pkgs/development/libraries/uthash/default.nix2
-rw-r--r--pkgs/development/libraries/uthenticode/default.nix2
-rw-r--r--pkgs/development/libraries/v8/default.nix3
-rw-r--r--pkgs/development/libraries/vapoursynth-mvtools/default.nix2
-rw-r--r--pkgs/development/libraries/vapoursynth/default.nix2
-rw-r--r--pkgs/development/libraries/vc/default.nix4
-rw-r--r--pkgs/development/libraries/vectorscan/default.nix52
-rw-r--r--pkgs/development/libraries/virglrenderer/default.nix2
-rw-r--r--pkgs/development/libraries/virtualpg/default.nix5
-rw-r--r--pkgs/development/libraries/vkd3d/default.nix26
-rw-r--r--pkgs/development/libraries/vmmlib/default.nix2
-rw-r--r--pkgs/development/libraries/volk/2.5.0.nix2
-rw-r--r--pkgs/development/libraries/volk/default.nix2
-rw-r--r--pkgs/development/libraries/volume-key/default.nix2
-rw-r--r--pkgs/development/libraries/vrb/default.nix2
-rw-r--r--pkgs/development/libraries/vte/default.nix18
-rw-r--r--pkgs/development/libraries/vtk/generic.nix4
-rw-r--r--pkgs/development/libraries/vulkan-headers/default.nix4
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix4
-rw-r--r--pkgs/development/libraries/vulkan-utility-libraries/default.nix6
-rw-r--r--pkgs/development/libraries/waffle/default.nix2
-rw-r--r--pkgs/development/libraries/wangle/default.nix2
-rw-r--r--pkgs/development/libraries/wapp/default.nix2
-rw-r--r--pkgs/development/libraries/wayland/protocols.nix4
-rw-r--r--pkgs/development/libraries/waylib/default.nix2
-rw-r--r--pkgs/development/libraries/webkitgtk/default.nix11
-rw-r--r--pkgs/development/libraries/webp-pixbuf-loader/default.nix3
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/0.3.nix4
-rw-r--r--pkgs/development/libraries/webrtc-audio-processing/default.nix5
-rw-r--r--pkgs/development/libraries/wildmidi/default.nix8
-rw-r--r--pkgs/development/libraries/wlroots/default.nix2
-rw-r--r--pkgs/development/libraries/wlroots/protocols.nix4
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix2
-rw-r--r--pkgs/development/libraries/wxSVG/default.nix6
-rw-r--r--pkgs/development/libraries/wxsqlite3/default.nix6
-rw-r--r--pkgs/development/libraries/wxsqliteplus/default.nix2
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK31.nix2
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK32.nix14
-rw-r--r--pkgs/development/libraries/xalanc/default.nix2
-rw-r--r--pkgs/development/libraries/xcb-imdkit/default.nix4
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix12
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix4
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix10
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal/default.nix11
-rw-r--r--pkgs/development/libraries/xgboost/default.nix34
-rw-r--r--pkgs/development/libraries/xml-security-c/default.nix35
-rw-r--r--pkgs/development/libraries/xml-tooling-c/default.nix28
-rw-r--r--pkgs/development/libraries/xmlrpc-c/default.nix2
-rw-r--r--pkgs/development/libraries/xsd/default.nix2
-rw-r--r--pkgs/development/libraries/xsimd/default.nix36
-rw-r--r--pkgs/development/libraries/xsimd/disable-exp10-test.patch36
-rw-r--r--pkgs/development/libraries/xsimd/disable-polar-test.patch38
-rw-r--r--pkgs/development/libraries/xsimd/disable-test_error_gamma.patch (renamed from pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch)12
-rw-r--r--pkgs/development/libraries/xsimd/fix-atan-test.patch19
-rw-r--r--pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch22
-rw-r--r--pkgs/development/libraries/xtensor/default.nix31
-rw-r--r--pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch12
-rw-r--r--pkgs/development/libraries/yaml-cpp/0.3.0.nix2
-rw-r--r--pkgs/development/libraries/yaml-cpp/default.nix2
-rw-r--r--pkgs/development/libraries/yojimbo/default.nix2
-rw-r--r--pkgs/development/libraries/yyjson/default.nix4
-rw-r--r--pkgs/development/libraries/zeitgeist/default.nix2
-rw-r--r--pkgs/development/libraries/zeroc-ice/default.nix2
-rw-r--r--pkgs/development/libraries/zeromq/4.x.nix2
-rw-r--r--pkgs/development/libraries/zint/default.nix2
-rw-r--r--pkgs/development/libraries/zlib/default.nix13
-rw-r--r--pkgs/development/libraries/zxcvbn-c/default.nix2
-rw-r--r--pkgs/development/libraries/zziplib/default.nix1
1165 files changed, 19902 insertions, 8285 deletions
diff --git a/pkgs/development/libraries/CoinMP/default.nix b/pkgs/development/libraries/CoinMP/default.nix
deleted file mode 100644
index 0a2954f4a7dd4..0000000000000
--- a/pkgs/development/libraries/CoinMP/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "CoinMP";
-  version = "1.8.4";
-
-  src = fetchurl {
-    url = "https://www.coin-or.org/download/source/CoinMP/${pname}-${version}.tgz";
-    sha256 = "13d3j1sdcjzpijp4qks3n0zibk649ac3hhv88hkk8ffxrc6gnn9l";
-  };
-
-  enableParallelBuilding = true;
-
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    CXXFLAGS = "-std=c++14";
-  };
-
-  hardeningDisable = [ "format" ];
-
-  meta = with lib; {
-    homepage = "https://projects.coin-or.org/CoinMP/";
-    description = "COIN-OR lightweight API for COIN-OR libraries CLP, CBC, and CGL";
-    platforms = platforms.unix;
-    license = licenses.epl10;
-  };
-}
diff --git a/pkgs/development/libraries/LASzip/LASzip2.nix b/pkgs/development/libraries/LASzip/LASzip2.nix
deleted file mode 100644
index 4f63dfe8059c8..0000000000000
--- a/pkgs/development/libraries/LASzip/LASzip2.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake }:
-
-stdenv.mkDerivation rec {
-  version = "2.2.0";
-  pname = "LASzip";
-
-  src = fetchFromGitHub {
-    owner = "LASzip";
-    repo = "LASzip";
-    rev = "v${version}";
-    sha256 = "sha256-TXzse4oLjNX5R2xDR721iV+gW/rP5z3Zciv4OgxfeqA=";
-  };
-
-  nativeBuildInputs = [ cmake ];
-
-  meta = with lib; {
-    description = "Turn quickly bulky LAS files into compact LAZ files without information loss";
-    homepage = "https://laszip.org";
-    license = licenses.lgpl2;
-    maintainers = [ maintainers.michelk ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/LASzip/default.nix b/pkgs/development/libraries/LASzip/default.nix
deleted file mode 100644
index ee6e74aa7bc23..0000000000000
--- a/pkgs/development/libraries/LASzip/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, fixDarwinDylibNames
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  version = "3.4.3";
-  pname = "LASzip";
-
-  src = fetchFromGitHub {
-    owner = "LASzip";
-    repo = "LASzip";
-    rev = finalAttrs.version;
-    hash = "sha256-9fzal54YaocONtguOCxnP7h1LejQPQ0dKFiCzfvTjCY=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-  ] ++ lib.optionals stdenv.isDarwin [
-    fixDarwinDylibNames
-  ];
-
-  meta = {
-    description = "Turn quickly bulky LAS files into compact LAZ files without information loss";
-    homepage = "https://laszip.org";
-    changelog = "https://github.com/LASzip/LASzip/releases/tag/${finalAttrs.src.rev}";
-    license = lib.licenses.lgpl2;
-    maintainers = [ lib.maintainers.michelk ];
-    platforms = lib.platforms.unix;
-  };
-})
diff --git a/pkgs/development/libraries/SDL/default.nix b/pkgs/development/libraries/SDL/default.nix
index a791d94a2c033..8038407090b43 100644
--- a/pkgs/development/libraries/SDL/default.nix
+++ b/pkgs/development/libraries/SDL/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, config, fetchurl, fetchpatch, pkg-config, audiofile, libcap, libiconv
-, libGLSupported ? lib.elem stdenv.hostPlatform.system lib.platforms.mesaPlatforms
+, libGLSupported ? lib.meta.availableOn stdenv.hostPlatform libGL
 , openglSupport ? libGLSupported, libGL, libGLU
 , alsaSupport ? stdenv.isLinux && !stdenv.hostPlatform.isAndroid, alsa-lib
 , x11Support ? !stdenv.isCygwin && !stdenv.hostPlatform.isAndroid
 , libXext, libICE, libXrandr
-, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid, libpulseaudio
+, pulseaudioSupport ? config.pulseaudio or stdenv.isLinux && !stdenv.hostPlatform.isAndroid && lib.meta.availableOn stdenv.hostPlatform libpulseaudio, libpulseaudio
 , OpenGL, GLUT, CoreAudio, CoreServices, AudioUnit, Kernel, Cocoa
 }:
 
@@ -126,7 +126,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A cross-platform multimedia library";
+    description = "Cross-platform multimedia library";
     mainProgram = "sdl-config";
     homepage    = "http://www.libsdl.org/";
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/development/libraries/SDL2/default.nix b/pkgs/development/libraries/SDL2/default.nix
index 1e63f3bfdef18..91903c9f68516 100644
--- a/pkgs/development/libraries/SDL2/default.nix
+++ b/pkgs/development/libraries/SDL2/default.nix
@@ -58,13 +58,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "SDL2";
-  version = "2.30.2";
+  version = "2.30.3";
 
   src = fetchFromGitHub {
     owner = "libsdl-org";
     repo = "SDL";
     rev = "release-${finalAttrs.version}";
-    hash = "sha256-yYYtsF6+IKynXpfay0rUmCQPdL8vp6dlmon8N7UG89A=";
+    hash = "sha256-ycY/AkWulV3vAu/+vKw+j/b6jTZWjqKjIgjRwqNHFl8=";
   };
   dontDisableStatic = if withStatic then 1 else 0;
   outputs = [ "out" "dev" ];
@@ -179,7 +179,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A cross-platform multimedia library";
+    description = "Cross-platform multimedia library";
     mainProgram = "sdl2-config";
     homepage = "http://www.libsdl.org/";
     changelog = "https://github.com/libsdl-org/SDL/releases/tag/release-${finalAttrs.version}";
diff --git a/pkgs/development/libraries/SDL2_gfx/default.nix b/pkgs/development/libraries/SDL2_gfx/default.nix
deleted file mode 100644
index 83b57b42c7cd1..0000000000000
--- a/pkgs/development/libraries/SDL2_gfx/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib, stdenv, darwin, fetchurl, pkg-config, SDL2, testers }:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "SDL2_gfx";
-  version = "1.0.4";
-
-  src = fetchurl {
-    url = "http://www.ferzkopp.net/Software/${finalAttrs.pname}/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    sha256 = "0qk2ax7f7grlxb13ba0ll3zlm8780s7j8fmrhlpxzjgdvldf1q33";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ SDL2 ]
-    ++ lib.optional stdenv.isDarwin darwin.libobjc;
-
-  configureFlags = [(if stdenv.hostPlatform.isx86 then "--enable-mmx" else "--disable-mmx")]
-     ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  passthru.tests.pkg-config = testers.hasPkgConfigModules {
-    package = finalAttrs.finalPackage;
-  };
-
-  meta = with lib; {
-    description = "SDL graphics drawing primitives and support functions";
-
-    longDescription = ''
-      The SDL_gfx library evolved out of the SDL_gfxPrimitives code
-      which provided basic drawing routines such as lines, circles or
-      polygons and SDL_rotozoom which implemented a interpolating
-      rotozoomer for SDL surfaces.
-
-      The current components of the SDL_gfx library are:
-
-          * Graphic Primitives (SDL_gfxPrimitves.h)
-          * Rotozoomer (SDL_rotozoom.h)
-          * Framerate control (SDL_framerate.h)
-          * MMX image filters (SDL_imageFilter.h)
-          * Custom Blit functions (SDL_gfxBlitFunc.h)
-
-      The library is backwards compatible to the above mentioned
-      code. Its is written in plain C and can be used in C++ code.
-    '';
-
-    homepage = "http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/";
-    license = licenses.zlib;
-    maintainers = with maintainers; [ cpages ];
-    platforms = platforms.unix;
-    pkgConfigModules = [ "SDL2_gfx" ];
-  };
-})
diff --git a/pkgs/development/libraries/SDL2_mixer/2_0.nix b/pkgs/development/libraries/SDL2_mixer/2_0.nix
deleted file mode 100644
index e75e0c9c5cc09..0000000000000
--- a/pkgs/development/libraries/SDL2_mixer/2_0.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ fetchurl
-, fetchpatch
-, lzwolf
-, SDL2_mixer
-, timidity
-}:
-
-SDL2_mixer.overrideAttrs(oa: rec {
-  version = "2.0.4";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${version}.tar.gz";
-    sha256 = "0694vsz5bjkcdgfdra6x9fq8vpzrl8m6q96gh58df7065hw5mkxl";
-  };
-
-  patches = [
-    # These patches fix incompatible function pointer conversion errors with clang 16.
-    (fetchpatch {
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/4119ec3fe838d38d2433f4432cd18926bda5d093.patch";
-      stripLen = 2;
-      hash = "sha256-Ug1EEZIRcV8+e1MeMsGHuTW7Zn6j4szqujP8IkIq2VM=";
-    })
-    # Based on https://github.com/libsdl-org/SDL_mixer/commit/64ab759111ddb1b033bcce64e1a04e0cba6e498f
-    ./SDL_mixer-2.0-incompatible-pointer-comparison-fix.patch
-  ];
-
-  # fix default path to timidity.cfg so MIDI files could be played
-  postPatch = ''
-    substituteInPlace timidity/options.h \
-      --replace "/usr/share/timidity" "${timidity}/share/timidity"
-  '';
-
-  passthru.tests.lzwolf = lzwolf;
-})
diff --git a/pkgs/development/libraries/SDL2_mixer/SDL_mixer-2.0-incompatible-pointer-comparison-fix.patch b/pkgs/development/libraries/SDL2_mixer/SDL_mixer-2.0-incompatible-pointer-comparison-fix.patch
deleted file mode 100644
index 76fff3fa63e25..0000000000000
--- a/pkgs/development/libraries/SDL2_mixer/SDL_mixer-2.0-incompatible-pointer-comparison-fix.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/music_mpg123.c	2018-10-31 10:59:00.000000000 -0400
-+++ b/music_mpg123.c	2023-09-05 21:31:51.529191521 -0400
-@@ -48,7 +48,11 @@
-     int (*mpg123_open_handle)(mpg123_handle *mh, void *iohandle);
-     const char* (*mpg123_plain_strerror)(int errcode);
-     void (*mpg123_rates)(const long **list, size_t *number);
-+#if (MPG123_API_VERSION >= 45) /* api (but not abi) change as of mpg123-1.26.0 */
-+    int (*mpg123_read)(mpg123_handle *mh, void *outmemory, size_t outmemsize, size_t *done );
-+#else
-     int (*mpg123_read)(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done );
-+#endif
-     int (*mpg123_replace_reader_handle)( mpg123_handle *mh, ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*) );
-     off_t (*mpg123_seek)( mpg123_handle *mh, off_t sampleoff, int whence );
-     const char* (*mpg123_strerror)(mpg123_handle *mh);
-@@ -95,7 +99,11 @@
-         FUNCTION_LOADER(mpg123_open_handle, int (*)(mpg123_handle *mh, void *iohandle))
-         FUNCTION_LOADER(mpg123_plain_strerror, const char* (*)(int errcode))
-         FUNCTION_LOADER(mpg123_rates, void (*)(const long **list, size_t *number));
-+#if (MPG123_API_VERSION >= 45) /* api (but not abi) change as of mpg123-1.26.0 */
-+        FUNCTION_LOADER(mpg123_read, int (*)(mpg123_handle *mh, void *outmemory, size_t outmemsize, size_t *done ))
-+#else
-         FUNCTION_LOADER(mpg123_read, int (*)(mpg123_handle *mh, unsigned char *outmemory, size_t outmemsize, size_t *done ))
-+#endif
-         FUNCTION_LOADER(mpg123_replace_reader_handle, int (*)( mpg123_handle *mh, ssize_t (*r_read) (void *, void *, size_t), off_t (*r_lseek)(void *, off_t, int), void (*cleanup)(void*) ))
-         FUNCTION_LOADER(mpg123_seek, off_t (*)( mpg123_handle *mh, off_t sampleoff, int whence ))
-         FUNCTION_LOADER(mpg123_strerror, const char* (*)(mpg123_handle *mh))
diff --git a/pkgs/development/libraries/SDL2_mixer/default.nix b/pkgs/development/libraries/SDL2_mixer/default.nix
deleted file mode 100644
index d9e8d7e774a71..0000000000000
--- a/pkgs/development/libraries/SDL2_mixer/default.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, pkg-config
-, AudioToolbox
-, AudioUnit
-, CoreServices
-, SDL2
-, flac
-, fluidsynth
-, libmodplug
-, libogg
-, libvorbis
-, mpg123
-, opusfile
-, smpeg2
-, timidity
-}:
-
-stdenv.mkDerivation rec {
-  pname = "SDL2_mixer";
-  version = "2.8.0";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_mixer/release/${pname}-${version}.tar.gz";
-    sha256 = "sha256-HPs0yHsm29vHr9aMT1RcARarX5C7/sxa6+Kpy0uzFUk=";
-  };
-
-  configureFlags = [
-    "--disable-music-ogg-shared"
-    "--disable-music-flac-shared"
-    "--disable-music-mod-modplug-shared"
-    "--disable-music-mp3-mpg123-shared"
-    "--disable-music-opus-shared"
-    "--disable-music-midi-fluidsynth-shared"
-
-    # override default path to allow MIDI files to be played
-    "--with-timidity-cfg=${timidity}/share/timidity/timidity.cfg"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "--disable-sdltest"
-    "--disable-smpegtest"
-  ];
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = lib.optionals stdenv.isDarwin [
-    AudioToolbox
-    AudioUnit
-    CoreServices
-  ];
-
-  propagatedBuildInputs = [
-    SDL2
-    flac
-    fluidsynth
-    libmodplug
-    libogg
-    libvorbis
-    mpg123
-    opusfile
-    smpeg2
-    # MIDI patterns
-    timidity
-  ];
-
-  outputs = [ "out" "dev" ];
-
-  meta = with lib; {
-    description = "SDL multi-channel audio mixer library";
-    platforms = platforms.unix;
-    homepage = "https://github.com/libsdl-org/SDL_mixer";
-    maintainers = with maintainers; [ ];
-    license = licenses.zlib;
-  };
-}
diff --git a/pkgs/development/libraries/SDL2_net/default.nix b/pkgs/development/libraries/SDL2_net/default.nix
deleted file mode 100644
index 1640c5e3b86bc..0000000000000
--- a/pkgs/development/libraries/SDL2_net/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, stdenv, pkg-config, darwin, fetchurl, SDL2 }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL2_net";
-  version = "2.2.0";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_net/release/${pname}-${version}.tar.gz";
-    sha256 = "sha256-TkqJGYgxYnGXT/TpWF7R73KaEj0iwIvUcxKRedyFf+s=";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = lib.optional stdenv.isDarwin darwin.libobjc;
-
-  configureFlags = [ "--disable-examples" ]
-  ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  propagatedBuildInputs = [ SDL2 ];
-
-  meta = with lib; {
-    description = "SDL multiplatform networking library";
-    homepage = "https://www.libsdl.org/projects/SDL_net";
-    license = licenses.zlib;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/SDL2_sound/default.nix b/pkgs/development/libraries/SDL2_sound/default.nix
deleted file mode 100644
index 056991c9aca45..0000000000000
--- a/pkgs/development/libraries/SDL2_sound/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, SDL2
-, flac
-, libmikmod
-, libvorbis
-, timidity
-, AudioToolbox
-, CoreAudio
-}:
-
-stdenv.mkDerivation rec {
-  pname = "SDL2_sound";
-  version = "2.0.1";
-
-  src = fetchFromGitHub {
-    owner = "icculus";
-    repo = "SDL_sound";
-    rev = "v${version}";
-    sha256 = "sha256-N2znqy58tMHgYa07vEsSedWLRhoJzDoINcsUu0UYLnA=";
-  };
-
-  patches = [
-    (fetchpatch {
-      # https://github.com/icculus/SDL_sound/pull/32 - fix build on darwin
-      # can be dropped on the next update
-      url = "https://github.com/icculus/SDL_sound/commit/c15d75b7720113b28639baad284f45f943846294.patch";
-      sha256 = "sha256-4GL8unsZ7eNkzjLXq9QdaxFQMzX2tdP0cBR1jTaRLc0=";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = [ "-DSDLSOUND_DECODER_MIDI=1" ];
-
-  buildInputs = [ SDL2 flac libmikmod libvorbis timidity ]
-    ++ lib.optionals stdenv.isDarwin [ AudioToolbox CoreAudio ];
-
-  meta = with lib; {
-    description = "SDL2 sound library";
-    mainProgram = "playsound";
-    platforms = platforms.unix;
-    license = licenses.zlib;
-    homepage = "https://www.icculus.org/SDL_sound/";
-  };
-}
diff --git a/pkgs/development/libraries/SDL2_ttf/default.nix b/pkgs/development/libraries/SDL2_ttf/default.nix
deleted file mode 100644
index 3407478b39b1c..0000000000000
--- a/pkgs/development/libraries/SDL2_ttf/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, pkg-config, darwin, fetchurl, SDL2, freetype, harfbuzz, libGL, testers }:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "SDL2_ttf";
-  version = "2.22.0";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_ttf/release/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    sha256 = "sha256-1Iy9HOR1ueF4IGvzty1Wtm2E1E9krAWAMyg5YjTWdyM=";
-  };
-
-  configureFlags = [ "--disable-harfbuzz-builtin" ]
-    ++ lib.optionals stdenv.isDarwin [ "--disable-sdltest" ];
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ SDL2 freetype harfbuzz ]
-    ++ lib.optional (!stdenv.isDarwin) libGL
-    ++ lib.optional stdenv.isDarwin darwin.libobjc;
-
-  passthru.tests.pkg-config = testers.hasPkgConfigModules {
-    package = finalAttrs.finalPackage;
-  };
-
-  meta = with lib; {
-    description = "Support for TrueType (.ttf) font files with Simple Directmedia Layer";
-    platforms = platforms.unix;
-    license = licenses.zlib;
-    homepage = "https://github.com/libsdl-org/SDL_ttf";
-    pkgConfigModules = [ "SDL2_ttf" ];
-  };
-})
diff --git a/pkgs/development/libraries/SDL_Pango/default.nix b/pkgs/development/libraries/SDL_Pango/default.nix
deleted file mode 100644
index e24af838c65ed..0000000000000
--- a/pkgs/development/libraries/SDL_Pango/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchpatch, fetchurl, SDL, autoreconfHook, pango, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_Pango";
-  version = "0.1.2";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/sdlpango/${pname}-${version}.tar.gz";
-    sha256 = "197baw1dsg0p4pljs5k0fshbyki00r4l49m1drlpqw6ggawx6xbz";
-  };
-
-  patches = [
-    (fetchpatch {
-      url = "https://sources.debian.org/data/main/s/sdlpango/0.1.2-6/debian/patches/api_additions.patch";
-      sha256 = "00p5ry5gd3ixm257p9i2c4jg0qj8ipk8nf56l7c9fma8id3zxyld";
-    })
-    ./fixes.patch
-  ];
-
-  preConfigure = "autoreconf -i -f";
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ SDL pango ];
-
-  meta = with lib; {
-    description = "Connects the Pango rendering engine to SDL";
-    license = licenses.lgpl21Plus;
-    platforms = platforms.all;
-    homepage = "https://sdlpango.sourceforge.net/";
-    maintainers = with maintainers; [ puckipedia ];
-  };
-}
diff --git a/pkgs/development/libraries/SDL_Pango/fixes.patch b/pkgs/development/libraries/SDL_Pango/fixes.patch
deleted file mode 100644
index 9703c0d4918f5..0000000000000
--- a/pkgs/development/libraries/SDL_Pango/fixes.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-diff --git a/SDL_Pango.pc.in b/SDL_Pango.pc.in
-index 750d091..3af38ff 100644
---- a/SDL_Pango.pc.in
-+++ b/SDL_Pango.pc.in
-@@ -6,6 +6,6 @@ includedir=@includedir@
- Name: SDL_Pango

- Description: SDL library for internationalized text rendering

- Version: @VERSION@

--Requires: pango

-+Requires: pango pangoft2
- Libs: -L${libdir} -lSDL_Pango

- Cflags: -I${includedir}
-\ No newline at end of file
-diff --git a/src/SDL_Pango.c b/src/SDL_Pango.c
-index b969bc1..cc2c3f5 100644
---- a/src/SDL_Pango.c
-+++ b/src/SDL_Pango.c
-@@ -231,6 +231,41 @@
- 

- #include "SDL_Pango.h"

- 

-+const SDLPango_Matrix _MATRIX_WHITE_BACK
-+    = {255, 0, 0, 0,
-+       255, 0, 0, 0,
-+       255, 0, 0, 0,
-+       255, 255, 0, 0,};
-+const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK;
-+
-+const SDLPango_Matrix _MATRIX_BLACK_BACK
-+    = {0, 255, 0, 0,
-+       0, 255, 0, 0,
-+       0, 255, 0, 0,
-+       255, 255, 0, 0,};
-+const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK;
-+
-+const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER
-+    = {0, 0, 0, 0,
-+       0, 0, 0, 0,
-+       0, 0, 0, 0,
-+       0, 255, 0, 0,};
-+const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
-+
-+const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER
-+    = {255, 255, 0, 0,
-+       255, 255, 0, 0,
-+       255, 255, 0, 0,
-+       0, 255, 0, 0,};
-+const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
-+
-+const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER
-+    = {255, 255, 0, 0,
-+       255, 255, 0, 0,
-+       255, 255, 0, 0,
-+       0, 0, 0, 0,};
-+const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
-+
- //! non-zero if initialized

- static int IS_INITIALIZED = 0;

- 

-diff --git a/src/SDL_Pango.h b/src/SDL_Pango.h
-index 6ebdf78..b7e5e58 100644
---- a/src/SDL_Pango.h
-+++ b/src/SDL_Pango.h
-@@ -47,57 +47,32 @@ typedef struct _SDLPango_Matrix {
-     Uint8 m[4][4];  /*! Matrix variables */

- } SDLPango_Matrix;

- 

--const SDLPango_Matrix _MATRIX_WHITE_BACK

--    = {255, 0, 0, 0,

--       255, 0, 0, 0,

--       255, 0, 0, 0,

--       255, 255, 0, 0,};

- 

- /*!

-     Specifies white back and black letter.

- */

--const SDLPango_Matrix *MATRIX_WHITE_BACK = &_MATRIX_WHITE_BACK;

-+extern const SDLPango_Matrix *MATRIX_WHITE_BACK;
- 

--const SDLPango_Matrix _MATRIX_BLACK_BACK

--    = {0, 255, 0, 0,

--       0, 255, 0, 0,

--       0, 255, 0, 0,

--       255, 255, 0, 0,};

- /*!

-     Specifies black back and white letter.

- */

--const SDLPango_Matrix *MATRIX_BLACK_BACK = &_MATRIX_BLACK_BACK;

-+extern const SDLPango_Matrix *MATRIX_BLACK_BACK;
- 

--const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_BLACK_LETTER

--    = {0, 0, 0, 0,

--       0, 0, 0, 0,

--       0, 0, 0, 0,

--       0, 255, 0, 0,};

- /*!

-     Specifies transparent back and black letter.

- */

--const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER = &_MATRIX_TRANSPARENT_BACK_BLACK_LETTER;

-+extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_BLACK_LETTER;
- 

--const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_WHITE_LETTER

--    = {255, 255, 0, 0,

--       255, 255, 0, 0,

--       255, 255, 0, 0,

--       0, 255, 0, 0,};

- /*!

-     Specifies transparent back and white letter.

- */

--const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER = &_MATRIX_TRANSPARENT_BACK_WHITE_LETTER;

-+extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_WHITE_LETTER;
- 

--const SDLPango_Matrix _MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER

--    = {255, 255, 0, 0,

--       255, 255, 0, 0,

--       255, 255, 0, 0,

--       0, 0, 0, 0,};

- /*!

-     Specifies transparent back and transparent letter.

-     This is useful for KARAOKE like rendering.

- */

--const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER = &_MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;

-+extern const SDLPango_Matrix *MATRIX_TRANSPARENT_BACK_TRANSPARENT_LETTER;
- 

- /*!

-     Specifies direction of text. See Pango reference for detail

-@@ -186,7 +161,8 @@ extern DECLSPEC void SDLCALL SDLPango_SetBaseDirection(
-     SDLPango_Direction direction);

- 

- 

--#ifdef __FT2_BUILD_UNIX_H__

-+

-+#ifdef __PANGO_H__

- 

- extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface(

-     const FT_Bitmap *bitmap,

-@@ -194,11 +170,8 @@ extern DECLSPEC void SDLCALL SDLPango_CopyFTBitmapToSurface(
-     const SDLPango_Matrix *matrix,

-     SDL_Rect *rect);

- 

--#endif	/* __FT2_BUILD_UNIX_H__ */

- 

- 

--#ifdef __PANGO_H__

--

- extern DECLSPEC PangoFontMap* SDLCALL SDLPango_GetPangoFontMap(

-     SDLPango_Context *context);

- 

diff --git a/pkgs/development/libraries/SDL_audiolib/default.nix b/pkgs/development/libraries/SDL_audiolib/default.nix
deleted file mode 100644
index 9b8a163b206c2..0000000000000
--- a/pkgs/development/libraries/SDL_audiolib/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, SDL2
-, pkg-config
-}:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_audiolib";
-  version = "unstable-2022-04-17";
-
-  src = fetchFromGitHub {
-    owner = "realnc";
-    repo = "SDL_audiolib";
-    rev = "908214606387ef8e49aeacf89ce848fb36f694fc";
-    sha256 = "sha256-11KkwIhG1rX7yDFSj92NJRO9L2e7XZGq2gOJ54+sN/A=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ];
-
-  buildInputs = [
-    SDL2
-  ];
-
-  cmakeFlags = [
-    "-DUSE_RESAMP_SRC=OFF"
-    "-DUSE_RESAMP_SOXR=OFF"
-    "-DUSE_DEC_DRFLAC=OFF"
-    "-DUSE_DEC_OPENMPT=OFF"
-    "-DUSE_DEC_XMP=OFF"
-    "-DUSE_DEC_MODPLUG=OFF"
-    "-DUSE_DEC_MPG123=OFF"
-    "-DUSE_DEC_SNDFILE=OFF"
-    "-DUSE_DEC_LIBVORBIS=OFF"
-    "-DUSE_DEC_LIBOPUSFILE=OFF"
-    "-DUSE_DEC_MUSEPACK=OFF"
-    "-DUSE_DEC_FLUIDSYNTH=OFF"
-    "-DUSE_DEC_BASSMIDI=OFF"
-    "-DUSE_DEC_WILDMIDI=OFF"
-    "-DUSE_DEC_ADLMIDI=OFF"
-  ];
-
-  meta = with lib; {
-    description = "Audio decoding, resampling and mixing library for SDL";
-    homepage = "https://github.com/realnc/SDL_audiolib";
-    license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/libraries/SDL_compat/default.nix b/pkgs/development/libraries/SDL_compat/default.nix
index f7d997cd52e59..3c3df10f91672 100644
--- a/pkgs/development/libraries/SDL_compat/default.nix
+++ b/pkgs/development/libraries/SDL_compat/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform multimedia library - build SDL 1.2 applications against 2.0";
+    description = "Cross-platform multimedia library - build SDL 1.2 applications against 2.0";
     mainProgram = "sdl-config";
     homepage = "https://www.libsdl.org/";
     license = licenses.zlib;
diff --git a/pkgs/development/libraries/SDL_gfx/default.nix b/pkgs/development/libraries/SDL_gfx/default.nix
deleted file mode 100644
index bccc11f43d418..0000000000000
--- a/pkgs/development/libraries/SDL_gfx/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib, stdenv, fetchurl, SDL }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_gfx";
-  version = "2.0.27";
-
-  src = fetchurl {
-    url = "https://www.ferzkopp.net/Software/SDL_gfx-2.0/${pname}-${version}.tar.gz";
-    sha256 = "sha256-37FaxfjOeklS3BLSrtl0dRjF5rM1wOMWNtI/k8Yw9Bk=";
-  };
-
-  # SDL_gfx.pc refers to sdl.pc and some SDL_gfx headers import SDL.h
-  propagatedBuildInputs = [ SDL ];
-  buildInputs = [ SDL ] ;
-
-  configureFlags = [ "--disable-mmx" ]
-    ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  meta = with lib; {
-    description = "SDL graphics drawing primitives and support functions";
-
-    longDescription = ''
-      The SDL_gfx library evolved out of the SDL_gfxPrimitives code
-      which provided basic drawing routines such as lines, circles or
-      polygons and SDL_rotozoom which implemented a interpolating
-      rotozoomer for SDL surfaces.
-
-      The current components of the SDL_gfx library are:
-
-        * Graphic Primitives (SDL_gfxPrimitves.h)
-        * Rotozoomer (SDL_rotozoom.h)
-        * Framerate control (SDL_framerate.h)
-        * MMX image filters (SDL_imageFilter.h)
-        * Custom Blit functions (SDL_gfxBlitFunc.h)
-
-      The library is backwards compatible to the above mentioned
-      code. Its is written in plain C and can be used in C++ code.
-    '';
-
-    homepage = "https://sourceforge.net/projects/sdlgfx/";
-    license = licenses.zlib;
-
-    maintainers = with maintainers; [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_gpu/default.nix b/pkgs/development/libraries/SDL_gpu/default.nix
deleted file mode 100644
index dc52e6afeea77..0000000000000
--- a/pkgs/development/libraries/SDL_gpu/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, cmake, SDL2, libGLU }:
-
-stdenv.mkDerivation {
-  pname = "SDL_gpu-unstable";
-  version = "2019-01-24";
-
-  src = fetchFromGitHub {
-    owner = "grimfang4";
-    repo = "sdl-gpu";
-    rev = "e3d350b325a0e0d0b3007f69ede62313df46c6ef";
-    sha256 = "0kibcaim01inb6xxn4mr6affn4hm50vz9kahb5k9iz8dmdsrhxy1";
-  };
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ SDL2 libGLU ];
-
-  cmakeFlags = [
-    "-DSDL_gpu_BUILD_DEMOS=OFF"
-    "-DSDL_gpu_BUILD_TOOLS=OFF"
-    "-DSDL_gpu_BUILD_VIDEO_TEST=OFF"
-    "-DSDL_gpu_BUILD_TESTS=OFF"
-  ];
-
-  patchPhase = ''
-    sed -ie '210s#''${OUTPUT_DIR}/lib#''${CMAKE_INSTALL_LIBDIR}#' src/CMakeLists.txt
-    sed -ie '213s#''${OUTPUT_DIR}/lib#''${CMAKE_INSTALL_LIBDIR}#' src/CMakeLists.txt
-  '';
-
-  meta = with lib; {
-    description = "A library for high-performance, modern 2D graphics with SDL written in C";
-    homepage = "https://github.com/grimfang4/sdl-gpu";
-    license = licenses.mit;
-    maintainers = with maintainers; [ pmiddend ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_image/default.nix b/pkgs/development/libraries/SDL_image/default.nix
deleted file mode 100644
index 30f71bd3e520e..0000000000000
--- a/pkgs/development/libraries/SDL_image/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, libpng, libjpeg, libtiff, giflib, libXpm, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_image";
-  version = "1.2.12";
-
-  src = fetchurl {
-    url    = "https://www.libsdl.org/projects/SDL_image/release/${pname}-${version}.tar.gz";
-    sha256 = "16an9slbb8ci7d89wakkmyfvp7c0cval8xw4hkg0842nhhlp540b";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2017-2887";
-      url = "https://github.com/libsdl-org/SDL_image/commit/e7723676825cd2b2ffef3316ec1879d7726618f2.patch";
-      includes = [ "IMG_xcf.c" ];
-      sha256 = "174ka2r95i29nlshzgp6x5vc68v7pi8lhzf33and2b1ms49g4jb7";
-    })
-  ];
-
-  configureFlags = [
-    # Disable its dynamic loading or dlopen will fail because of no proper rpath
-    "--disable-jpg-shared"
-    "--disable-png-shared"
-    "--disable-tif-shared"
-  ] ++ lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ SDL libpng libjpeg libtiff giflib libXpm ];
-
-  meta = with lib; {
-    description = "SDL image library";
-    homepage    = "http://www.libsdl.org/projects/SDL_image/";
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-    license     = licenses.zlib;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/development/libraries/SDL_mixer/default.nix
deleted file mode 100644
index 12b50cd476ba9..0000000000000
--- a/pkgs/development/libraries/SDL_mixer/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ stdenv, lib, fetchurl, fetchpatch
-, SDL, libogg, libvorbis, smpeg, libmikmod
-, fluidsynth, pkg-config
-, enableNativeMidi ? false
-}:
-
-stdenv.mkDerivation rec {
-  pname   = "SDL_mixer";
-  version = "1.2.12";
-
-  src = fetchurl {
-    url    = "http://www.libsdl.org/projects/${pname}/release/${pname}-${version}.tar.gz";
-    sha256 = "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n";
-  };
-
-  patches = [
-    # Fixes implicit declaration of `Mix_QuitFluidSynth`, which causes build failures with clang.
-    # https://github.com/libsdl-org/SDL_mixer/issues/287
-    (fetchpatch {
-      name = "fluidsynth-fix-implicit-declaration.patch";
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/05b12a3c22c0746c29dc5478f5b7fbd8a51a1303.patch";
-      hash = "sha256-MDuViLD1w1tAVLoX2yFeJ865v21S2roi0x7Yi7GYRVU=";
-    })
-    # Backport of 2.0 fixes for incompatible function pointer conversions, fixing builds with clang.
-    (fetchpatch {
-      name = "fluidsynth-fix-function-pointer-conversions.patch";
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/0c504159d212b710a47cb25c669b21730fc78edd.patch";
-      hash = "sha256-FSj7JLE2MbGVYCspoq3trXP5Ho+lAtnro2IUOHkto/U";
-    })
-    # Backport of MikMod fixes, which includes incompatible function pointer conversions.
-    (fetchpatch {
-      name = "mikmod-fixes.patch";
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/a3e5ff8142cf3530cddcb27b58f871f387796ab6.patch";
-      hash = "sha256-dqD8hxx6U2HaelUx0WsGPiWuso++LjwasaAeTTGqdbk";
-    })
-    # More incompatible function pointer conversion fixes (this time in Vorbis-decoding code).
-    (fetchpatch {
-      name = "vorbis-fix-function-pointer-conversion.patch";
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/9e6d7b67a00656a68ea0c2eace75c587871549b9.patch";
-      hash = "sha256-rZI3bFb/KxnduTkA/9CISccKHUgrX22KXg69sl/uXvU=";
-    })
-    (fetchpatch {
-      name = "vorbis-fix-function-pointer-conversion-header-part.patch";
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/03bd4ca6aa38c1a382c892cef86296cd621ecc1d.patch";
-      hash = "sha256-7HrSHYFYVgpamP7Q9znrFZMZ72jvz5wYpJEPqWev/I4=";
-    })
-    (fetchpatch {
-      name = "vorbis-fix-function-pointer-signature.patch";
-      url = "https://github.com/libsdl-org/SDL_mixer/commit/d28cbc34d63dd20b256103c3fe506ecf3d34d379.patch";
-      hash = "sha256-sGbtF+Tcjf+6a28nJgawefeeKXnhcwu7G55e94oS9AU=";
-    })
-  ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ SDL libogg libvorbis fluidsynth smpeg libmikmod ];
-
-  configureFlags = [ "--disable-music-ogg-shared" "--disable-music-mod-shared" ]
-    ++ lib.optional enableNativeMidi " --enable-music-native-midi-gpl"
-    ++ lib.optionals stdenv.isDarwin [ "--disable-sdltest" "--disable-smpegtest" ];
-
-  meta = with lib; {
-    description = "SDL multi-channel audio mixer library";
-    homepage    = "http://www.libsdl.org/projects/SDL_mixer/";
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-    license     = licenses.zlib;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_net/default.nix b/pkgs/development/libraries/SDL_net/default.nix
deleted file mode 100644
index e902213c9710f..0000000000000
--- a/pkgs/development/libraries/SDL_net/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, stdenv, fetchurl, SDL, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_net";
-  version = "1.2.8";
-
-  src = fetchurl {
-    url = "http://www.libsdl.org/projects/SDL_net/release/${pname}-${version}.tar.gz";
-    sha256 = "1d5c9xqlf4s1c01gzv6cxmg0r621pq9kfgxcg3197xw4p25pljjz";
-  };
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  nativeBuildInputs = [ pkg-config ];
-  propagatedBuildInputs = [ SDL ];
-
-  meta = with lib; {
-    description = "SDL networking library";
-    platforms = platforms.unix;
-    license = licenses.zlib;
-    homepage = "https://www.libsdl.org/projects/SDL_net/release-1.2.html";
-  };
-}
diff --git a/pkgs/development/libraries/SDL_sixel/default.nix b/pkgs/development/libraries/SDL_sixel/default.nix
deleted file mode 100644
index 189fdee05b268..0000000000000
--- a/pkgs/development/libraries/SDL_sixel/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, libsixel }:
-
-stdenv.mkDerivation {
-  pname = "SDL_sixel";
-  version = "1.2-nightly";
-
-  src = fetchFromGitHub {
-    owner = "saitoha";
-    repo = "SDL1.2-SIXEL";
-    rev = "ab3fccac6e34260a617be511bd8c2b2beae41952";
-    sha256 = "0gm2vngdac17lzw9azkhzazmfq3byjddms14gqjk18vnynfqp5wp";
-  };
-
-  configureFlags = [ "--enable-video-sixel" ];
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libsixel ];
-
-  meta = with lib; {
-    description = "A cross-platform multimedia library, that supports sixel graphics on consoles";
-    mainProgram = "sdl-config";
-    homepage    = "https://github.com/saitoha/SDL1.2-SIXEL";
-    maintainers = with maintainers; [ vrthra ];
-    platforms   = platforms.linux;
-    license     = licenses.lgpl21;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_sound/default.nix b/pkgs/development/libraries/SDL_sound/default.nix
deleted file mode 100644
index bdc97e98f3414..0000000000000
--- a/pkgs/development/libraries/SDL_sound/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, lib, fetchurl, SDL, libvorbis, flac, libmikmod }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_sound";
-  version = "1.0.3";
-
-  src = fetchurl {
-    url = "https://icculus.org/SDL_sound/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1pz6g56gcy7pmmz3hhych3iq9jvinml2yjz15fjqjlj8pc5zv69r";
-  };
-
-  buildInputs = [ SDL libvorbis flac libmikmod ];
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  meta = with lib; {
-    description = "SDL sound library";
-    platforms = platforms.unix;
-    license = licenses.lgpl21;
-    homepage = "https://www.icculus.org/SDL_sound/";
-  };
-}
diff --git a/pkgs/development/libraries/SDL_stretch/default.nix b/pkgs/development/libraries/SDL_stretch/default.nix
deleted file mode 100644
index 99f86dd258b37..0000000000000
--- a/pkgs/development/libraries/SDL_stretch/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ lib, stdenv, fetchurl, SDL }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_stretch";
-  version = "0.3.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/sdl-stretch/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1mzw68sn4yxbp8429jg2h23h8xw2qjid51z1f5pdsghcn3x0pgvw";
-  };
-
-  buildInputs = [ SDL ];
-
-  meta = with lib; {
-     description = "Stretch Functions For SDL";
-     homepage = "https://sdl-stretch.sourceforge.net/";
-     license = licenses.lgpl2;
-     platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/SDL_ttf/default.nix b/pkgs/development/libraries/SDL_ttf/default.nix
deleted file mode 100644
index 5d353e3a6c0dd..0000000000000
--- a/pkgs/development/libraries/SDL_ttf/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, SDL, freetype }:
-
-stdenv.mkDerivation rec {
-  pname = "SDL_ttf";
-  version = "2.0.11";
-
-  src = fetchurl {
-    url = "https://www.libsdl.org/projects/SDL_ttf/release/${pname}-${version}.tar.gz";
-    sha256 = "1dydxd4f5kb1288i5n5568kdk2q7f8mqjr7i7sd33nplxjaxhk3j";
-  };
-
-  patches = [
-    # Bug #830: TTF_RenderGlyph_Shaded is broken
-    (fetchpatch {
-      url = "https://bugzilla-attachments.libsdl.org/attachment.cgi?id=830";
-      sha256 = "0cfznfzg1hs10wl349z9n8chw80i5adl3iwhq4y102g0xrjyb72d";
-    })
-  ];
-
-  patchFlags = [ "-p0" ];
-
-  buildInputs = [ SDL freetype ];
-
-  configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
-
-  meta = with lib; {
-    description = "SDL TrueType library";
-    license = licenses.zlib;
-    platforms = platforms.all;
-    homepage = "https://www.libsdl.org/projects/SDL_ttf/release-1.2.html";
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/development/libraries/abseil-cpp/202103.nix b/pkgs/development/libraries/abseil-cpp/202103.nix
index 59294496f80ae..04af3153719a3 100644
--- a/pkgs/development/libraries/abseil-cpp/202103.nix
+++ b/pkgs/development/libraries/abseil-cpp/202103.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202111.nix b/pkgs/development/libraries/abseil-cpp/202111.nix
index 0c1a173eca44b..303f0c60d6390 100644
--- a/pkgs/development/libraries/abseil-cpp/202111.nix
+++ b/pkgs/development/libraries/abseil-cpp/202111.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , static ? stdenv.hostPlatform.isStatic
 , cxxStandard ? null
@@ -33,7 +32,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202206.nix b/pkgs/development/libraries/abseil-cpp/202206.nix
index 5dda078a3a901..b8eb30773a067 100644
--- a/pkgs/development/libraries/abseil-cpp/202206.nix
+++ b/pkgs/development/libraries/abseil-cpp/202206.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202301.nix b/pkgs/development/libraries/abseil-cpp/202301.nix
index b2d4f437473f3..62d98d77a38f3 100644
--- a/pkgs/development/libraries/abseil-cpp/202301.nix
+++ b/pkgs/development/libraries/abseil-cpp/202301.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ gtest ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202308.nix b/pkgs/development/libraries/abseil-cpp/202308.nix
index f3aac7d1388bd..f03ee08ea58ec 100644
--- a/pkgs/development/libraries/abseil-cpp/202308.nix
+++ b/pkgs/development/libraries/abseil-cpp/202308.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ gtest ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/abseil-cpp/202401.nix b/pkgs/development/libraries/abseil-cpp/202401.nix
index 73e663b0d0c6f..8352007b3413a 100644
--- a/pkgs/development/libraries/abseil-cpp/202401.nix
+++ b/pkgs/development/libraries/abseil-cpp/202401.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ gtest ];
 
   meta = with lib; {
-    description = "An open-source collection of C++ code designed to augment the C++ standard library";
+    description = "Open-source collection of C++ code designed to augment the C++ standard library";
     homepage = "https://abseil.io/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/accounts-qt/default.nix b/pkgs/development/libraries/accounts-qt/default.nix
index 8e5dd411fca28..e96c4b0aca813 100644
--- a/pkgs/development/libraries/accounts-qt/default.nix
+++ b/pkgs/development/libraries/accounts-qt/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   passthru.updateScript = gitUpdater {
-    rev = "VERSION_";
+    rev-prefix = "VERSION_";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/aften/default.nix b/pkgs/development/libraries/aften/default.nix
index 97b2230f03116..8dd01cc4eabe3 100644
--- a/pkgs/development/libraries/aften/default.nix
+++ b/pkgs/development/libraries/aften/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DSHARED=ON" ];
 
   meta = with lib; {
-    description = "An audio encoder which generates compressed audio streams based on ATSC A/52 specification";
+    description = "Audio encoder which generates compressed audio streams based on ATSC A/52 specification";
     homepage = "https://aften.sourceforge.net/";
     license = licenses.lgpl21Only;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/agda/agda-categories/default.nix b/pkgs/development/libraries/agda/agda-categories/default.nix
index 311bdd595c681..cb0d12a3edfb2 100644
--- a/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A new Categories library";
+    description = "New Categories library";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ alexarice turion ];
diff --git a/pkgs/development/libraries/agda/standard-library/default.nix b/pkgs/development/libraries/agda/standard-library/default.nix
index d7b49893b96f7..9779277b5e7cf 100644
--- a/pkgs/development/libraries/agda/standard-library/default.nix
+++ b/pkgs/development/libraries/agda/standard-library/default.nix
@@ -22,7 +22,7 @@ mkDerivation rec {
   passthru.tests = { inherit (nixosTests) agda; };
   meta = with lib; {
     homepage = "https://wiki.portal.chalmers.se/agda/pmwiki.php?n=Libraries.StandardLibrary";
-    description = "A standard library for use with the Agda compiler";
+    description = "Standard library for use with the Agda compiler";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
     maintainers = with maintainers; [ jwiegley mudri alexarice turion ];
diff --git a/pkgs/development/libraries/alembic/default.nix b/pkgs/development/libraries/alembic/default.nix
index 6f73c47f49d1a..800cee267f4a7 100644
--- a/pkgs/development/libraries/alembic/default.nix
+++ b/pkgs/development/libraries/alembic/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec
   '';
 
   meta = with lib; {
-    description = "An open framework for storing and sharing scene data";
+    description = "Open framework for storing and sharing scene data";
     homepage = "http://alembic.io/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/alglib/default.nix b/pkgs/development/libraries/alglib/default.nix
index 1ff34a8d1f161..b2e13cdc06651 100644
--- a/pkgs/development/libraries/alglib/default.nix
+++ b/pkgs/development/libraries/alglib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alglib3";
-  version = "3.18.0";
+  version = "4.01.0";
 
   src = fetchurl {
     url = "https://www.alglib.net/translator/re/alglib-${version}.cpp.gpl.tgz";
-    sha256 = "0ag8dvcxzzp9riqvk4lhcbwhvh0lq54lbdnsbyr107rjfi2p1vlq";
+    sha256 = "sha256-lejqQbMskjRvSaaUdZ54bF86EIe0AaklnvWSwO6kvvs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix
index eaf227fa60d14..94dd96dae0e72 100644
--- a/pkgs/development/libraries/allegro/5.nix
+++ b/pkgs/development/libraries/allegro/5.nix
@@ -3,7 +3,6 @@
 , cmake
 , enet
 , fetchFromGitHub
-, fetchpatch
 , flac
 , freetype
 , gtk3
@@ -99,7 +98,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ];
 
   meta = with lib; {
-    description = "A game programming library";
+    description = "Game programming library";
     homepage = "https://liballeg.org/";
     license = licenses.zlib;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/development/libraries/allegro/default.nix b/pkgs/development/libraries/allegro/default.nix
index 0318c3133d636..be521257f1955 100644
--- a/pkgs/development/libraries/allegro/default.nix
+++ b/pkgs/development/libraries/allegro/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DCMAKE_SKIP_RPATH=ON" ];
 
   meta = with lib; {
-    description = "A game programming library";
+    description = "Game programming library";
     homepage = "https://liballeg.org/";
     license = licenses.giftware;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/development/libraries/alure/default.nix b/pkgs/development/libraries/alure/default.nix
index a1bb5798b0e98..a367b765874bd 100644
--- a/pkgs/development/libraries/alure/default.nix
+++ b/pkgs/development/libraries/alure/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openal ];
 
   meta = with lib; {
-    description = "A utility library to help manage common tasks with OpenAL applications";
+    description = "Utility library to help manage common tasks with OpenAL applications";
     homepage = "https://github.com/kcat/alure";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/alure2/default.nix b/pkgs/development/libraries/alure2/default.nix
index fa42c4fd53a3d..f18a2a3434e16 100644
--- a/pkgs/development/libraries/alure2/default.nix
+++ b/pkgs/development/libraries/alure2/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ openal libvorbis opusfile libsndfile ];
 
   meta = with lib; {
-    description = "A utility library for OpenAL, providing a C++ API and managing common tasks that include file loading, caching, and streaming";
+    description = "Utility library for OpenAL, providing a C++ API and managing common tasks that include file loading, caching, and streaming";
     homepage = "https://github.com/kcat/alure";
     license = licenses.zlib;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index 74e4958671c76..f62ed8b7d0fd1 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -25,13 +25,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2023.Q4.2";
+  version = "2024.Q2.2";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "CmlFqHxP6WM4b/MnXbRhd2TvV3qhMiC6rHrn/SHtRdc=";
+    sha256 = "MBO7XE2C4y2ZODLGnNw17n1TlKDjD5yyjuvzvTSaQIU=";
   };
 
   buildInputs = [
@@ -59,7 +59,10 @@ in stdenv.mkDerivation rec {
     perl
     pkg-config
     python3
-  ];
+  ] ++ (with python3.pkgs; [
+    jinja2
+    ruamel-yaml
+  ]);
 
   rpath = lib.makeLibraryPath [
     libdrm
diff --git a/pkgs/development/libraries/antic/default.nix b/pkgs/development/libraries/antic/default.nix
index 5a8e00d90f5a3..3534b40122f14 100644
--- a/pkgs/development/libraries/antic/default.nix
+++ b/pkgs/development/libraries/antic/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An algebraic number theory library";
+    description = "Algebraic number theory library";
     homepage = "https://github.com/flintlib/antic";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ smasher164 ];
diff --git a/pkgs/development/libraries/apr-util/default.nix b/pkgs/development/libraries/apr-util/default.nix
index bd32ad45c47ba..68205d83a42d1 100644
--- a/pkgs/development/libraries/apr-util/default.nix
+++ b/pkgs/development/libraries/apr-util/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apr.apache.org/";
-    description = "A companion library to APR, the Apache Portable Runtime";
+    description = "Companion library to APR, the Apache Portable Runtime";
     mainProgram = "apu-1-config";
     maintainers = [ maintainers.eelco ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/apr/default.nix b/pkgs/development/libraries/apr/default.nix
index 6428489173daa..11bdd53945d06 100644
--- a/pkgs/development/libraries/apr/default.nix
+++ b/pkgs/development/libraries/apr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, buildPackages, autoreconfHook }:
+{ lib, stdenv, fetchurl, buildPackages, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "apr";
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://apr.apache.org/";
-    description = "The Apache Portable Runtime library";
+    description = "Apache Portable Runtime library";
     mainProgram = "apr-1-config";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/aqbanking/default.nix b/pkgs/development/libraries/aqbanking/default.nix
index 102703107c488..8d5b597d26610 100644
--- a/pkgs/development/libraries/aqbanking/default.nix
+++ b/pkgs/development/libraries/aqbanking/default.nix
@@ -28,7 +28,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config gettext ];
 
   meta = with lib; {
-    description = "An interface to banking tasks, file formats and country information";
+    description = "Interface to banking tasks, file formats and country information";
     homepage = "https://www.aquamaniac.de/rdm/";
     hydraPlatforms = [];
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/aravis/default.nix b/pkgs/development/libraries/aravis/default.nix
index ccdc06e906fe7..e279a6d6e3695 100644
--- a/pkgs/development/libraries/aravis/default.nix
+++ b/pkgs/development/libraries/aravis/default.nix
@@ -13,7 +13,7 @@
 , enableViewer ? true
 , gst_all_1
 , gtk3
-, wrapGAppsHook
+, wrapGAppsHook3
 
 , enableUsb ? true
 , libusb1
@@ -25,7 +25,7 @@
 assert enableGstPlugin -> gst_all_1 != null;
 assert enableViewer -> enableGstPlugin;
 assert enableViewer -> gtk3 != null;
-assert enableViewer -> wrapGAppsHook != null;
+assert enableViewer -> wrapGAppsHook3 != null;
 
 stdenv.mkDerivation rec {
   pname = "aravis";
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     pkg-config
     gi-docgen
     gobject-introspection
-  ] ++ lib.optional enableViewer wrapGAppsHook;
+  ] ++ lib.optional enableViewer wrapGAppsHook3;
 
   buildInputs =
     [ glib libxml2 ]
diff --git a/pkgs/development/libraries/arb/default.nix b/pkgs/development/libraries/arb/default.nix
index 2ab8339b00a70..87072265abb26 100644
--- a/pkgs/development/libraries/arb/default.nix
+++ b/pkgs/development/libraries/arb/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library for arbitrary-precision interval arithmetic";
+    description = "Library for arbitrary-precision interval arithmetic";
     homepage = "https://arblib.org/";
     license = licenses.lgpl21Plus;
     maintainers = teams.sage.members;
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index f7e93699968f0..cedc8edce3952 100644
--- a/pkgs/development/libraries/armadillo/default.nix
+++ b/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "12.8.2";
+  version = "12.8.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    hash = "sha256-A7YvjAnk9ddGQ7R4UgdBuOJ7VefkUll4/K4vXXkaw78=";
+    hash = "sha256-VY/lJrmQoWY2eO/zr27JP3nuEoyBpMiu8nrTKPrmETg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/arrayfire/default.nix b/pkgs/development/libraries/arrayfire/default.nix
index 5c4336572b8f4..d52191c56533f 100644
--- a/pkgs/development/libraries/arrayfire/default.nix
+++ b/pkgs/development/libraries/arrayfire/default.nix
@@ -213,7 +213,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A general-purpose library for parallel and massively-parallel computations";
+    description = "General-purpose library for parallel and massively-parallel computations";
     longDescription = ''
       A general-purpose library that simplifies the process of developing software that targets parallel and massively-parallel architectures including CPUs, GPUs, and other hardware acceleration devices.";
     '';
diff --git a/pkgs/development/libraries/arrow-glib/default.nix b/pkgs/development/libraries/arrow-glib/default.nix
index 2e283d3c52ef2..cce59dc026e94 100644
--- a/pkgs/development/libraries/arrow-glib/default.nix
+++ b/pkgs/development/libraries/arrow-glib/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , arrow-cpp
-, fetchurl
 , glib
 , gobject-introspection
 , lib
diff --git a/pkgs/development/libraries/aspell/dictionaries.nix b/pkgs/development/libraries/aspell/dictionaries.nix
index ba5b3d6ddd515..60f11fd23d84c 100644
--- a/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/pkgs/development/libraries/aspell/dictionaries.nix
@@ -189,6 +189,7 @@ in rec {
     fullName = "Afrikaans";
     filename = "aspell";
     sha256 = "00p6k2ndi0gzfr5fkbvx4hkcpj223pidjvmxg0r384arrap00q4x";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   am = buildOfficialDict {
@@ -197,6 +198,7 @@ in rec {
     fullName = "Amharic";
     filename = "aspell6";
     sha256 = "11ylp7gjq94wfacyawvp391lsq26rl1b84f268rjn7l7z0hxs9xz";
+    meta.license = lib.licenses.publicDomain;
   };
 
   ar = buildOfficialDict {
@@ -205,6 +207,7 @@ in rec {
     fullName = "Arabic";
     filename = "aspell6";
     sha256 = "1avw40bp8yi5bnkq64ihm2rldgw34lk89yz281q9bmndh95a47h4";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ast = buildOfficialDict {
@@ -213,6 +216,7 @@ in rec {
     fullName = "Asturian";
     filename = "aspell6";
     sha256 = "14hg85mxcyvdigf96yvslk7f3v9ngdsxn85qpgwkg31k3k83xwj3";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   az = buildOfficialDict {
@@ -221,6 +225,7 @@ in rec {
     fullName = "Azerbaijani";
     filename = "aspell6";
     sha256 = "1hs4h1jscpxf9f9iyk6mvjqsnhkf0yslkbjhjkasqqcx8pn7cc86";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   be = buildOfficialDict {
@@ -229,6 +234,7 @@ in rec {
     fullName = "Belarusian";
     filename = "aspell5";
     sha256 = "1svls9p7rsfi3hs0afh0cssj006qb4v1ik2yzqgj8hm10c6as2sm";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   bg = buildOfficialDict {
@@ -237,6 +243,7 @@ in rec {
     fullName = "Bulgarian";
     filename = "aspell6";
     sha256 = "1alacmgpfk0yrgq83y23d16fhav1bxmb98kg8d2a5r9bvh2h0mvl";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   bn = buildOfficialDict {
@@ -245,6 +252,7 @@ in rec {
     fullName = "Bengali";
     filename = "aspell6";
     sha256 = "1nc02jd67iggirwxnhdvlvaqm0xfyks35c4psszzj3dhzv29qgxh";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   br = buildOfficialDict {
@@ -253,6 +261,7 @@ in rec {
     fullName = "Breton";
     filename = "aspell";
     sha256 = "0fradnm8424bkq9a9zhpl2132dk7y95xmw45sy1c0lx6rinjl4n2";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ca = buildOfficialDict {
@@ -261,6 +270,7 @@ in rec {
     fullName = "Catalan";
     filename = "aspell6";
     sha256 = "1fb5y5kgvk25nlsfvc8cai978hg66x3pbp9py56pldc7vxzf9npb";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   cs = buildOfficialDict {
@@ -269,6 +279,7 @@ in rec {
     fullName = "Czech";
     filename = "aspell6";
     sha256 = "0rihj4hsw96pd9casvmpvw3r8040pfa28p1h73x4vyn20zwr3h01";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   csb = buildOfficialDict {
@@ -277,6 +288,7 @@ in rec {
     fullName = "Kashubian";
     filename = "aspell6";
     sha256 = "1612ypkm684wjvc7n081i87mlrrzif9simc7kyn177hfsl3ssrn1";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   cy = buildOfficialDict {
@@ -285,6 +297,7 @@ in rec {
     fullName = "Welsh";
     filename = "aspell";
     sha256 = "15vq601lzz1gi311xym4bv9lv1k21xcfn50jmzamw7h6f36rsffm";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   da = buildOfficialDict {
@@ -293,6 +306,7 @@ in rec {
     fullName = "Danish";
     filename = "aspell5";
     sha256 = "1hfkmiyhgrx5lgrb2mffjbdn1hivrm73wcg7x0iid74p2yb0fjpp";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   de = buildOfficialDict {
@@ -301,6 +315,7 @@ in rec {
     fullName = "German";
     filename = "aspell6";
     sha256 = "0wamclvp66xfmv5wff96v6gdlnfv4y8lx3f8wvxyzm5imwgms4n2";
+    meta.license = lib.licenses.gpl2Plus;
   };
 
   de-alt = buildOfficialDict {
@@ -309,6 +324,7 @@ in rec {
     fullName = "German - Old Spelling";
     filename = "aspell6";
     sha256 = "0wwc2l29svv3fv041fh6vfa5m3hi9q9pkbxibzq1ysrsfin3rl9n";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   el = buildOfficialDict {
@@ -317,6 +333,7 @@ in rec {
     fullName = "Greek";
     filename = "aspell6";
     sha256 = "1ljcc30zg2v2h3w5h5jr5im41mw8jbsgvvhdd2cii2yzi8d0zxja";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   en = buildOfficialDict {
@@ -325,6 +342,13 @@ in rec {
     fullName = "English";
     filename = "aspell6";
     sha256 = "1cwzqkm8gr1w51rpckwlvb43sb0b5nbwy7s8ns5vi250515773sc";
+    # some parts are under a custom free license others are just stated to be"public domain"
+    # see the Copyright file in the source for further information
+    meta.license = with lib.licenses; [
+      free
+      publicDomain
+      bsdOriginalUC
+    ];
   };
 
   eo = buildOfficialDict {
@@ -333,6 +357,7 @@ in rec {
     fullName = "Esperanto";
     filename = "aspell6";
     sha256 = "09vf0mbiicbmyb4bwb7v7lgpabnylg0wy7m3hlhl5rjdda6x3lj1";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   es = buildOfficialDict {
@@ -341,6 +366,7 @@ in rec {
     fullName = "Spanish";
     filename = "aspell6";
     sha256 = "1k5g328ac1hdpp6fsg57d8md6i0aqcwlszp3gbmp5706wyhpydmd";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   et = buildOfficialDict {
@@ -349,6 +375,7 @@ in rec {
     fullName = "Estonian";
     filename = "aspell6";
     sha256 = "0jdjfa2fskirhnb70fy86xryp9r6gkl729ib8qcjmsma7nm5gs5i";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   fa = buildOfficialDict {
@@ -357,6 +384,7 @@ in rec {
     fullName = "Persian";
     filename = "aspell6";
     sha256 = "0nz1ybwv56q7nl9ip12hfmdch1vyyq2j55bkjcns13lshzm2cba8";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fi = buildOfficialDict {
@@ -365,6 +393,7 @@ in rec {
     fullName = "Finnish";
     filename = "aspell6";
     sha256 = "07d5s08ba4dd89cmwy9icc01i6fjdykxlb9ravmhdrhi8mxz1mzq";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fo = buildOfficialDict {
@@ -373,6 +402,7 @@ in rec {
     fullName = "Faroese";
     filename = "aspell5";
     sha256 = "022yz5lll20xrzizcyb7wksm3fgwklnvgnir5la5qkxv770dvq7p";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fr = buildOfficialDict {
@@ -381,6 +411,7 @@ in rec {
     fullName = "French";
     filename = "aspell";
     sha256 = "14ffy9mn5jqqpp437kannc3559bfdrpk7r36ljkzjalxa53i0hpr";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   fy = buildOfficialDict {
@@ -389,6 +420,7 @@ in rec {
     fullName = "Frisian";
     filename = "aspell6";
     sha256 = "1almi6n4ni91d0rzrk8ig0473m9ypbwqmg56hchz76j51slwyirl";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ga = buildOfficialDict {
@@ -397,6 +429,7 @@ in rec {
     fullName = "Irish";
     filename = "aspell5";
     sha256 = "0y869mmvfb3bzadfgajwa2rfb0xfhi6m9ydwgxkb9v2claydnps5";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   gd = buildOfficialDict {
@@ -405,6 +438,7 @@ in rec {
     fullName = "Scottish Gaelic";
     filename = "aspell5";
     sha256 = "0a89irv5d65j5m9sb0k36851x5rs0wij12gb2m6hv2nsfn5a05p3";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   gl = buildOfficialDict {
@@ -413,6 +447,7 @@ in rec {
     fullName = "Galician";
     filename = "aspell6";
     sha256 = "12pwghmy18fcdvf9hvhb4q6shi339hb1kwxpkz0bhw0yjxjwzkdk";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   grc = buildOfficialDict {
@@ -421,6 +456,7 @@ in rec {
     fullName = "Ancient Greek";
     filename = "aspell6";
     sha256 = "1zxr8958v37v260fkqd4pg37ns5h5kyqm54hn1hg70wq5cz8h512";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   gu = buildOfficialDict {
@@ -429,6 +465,7 @@ in rec {
     fullName = "Gujarati";
     filename = "aspell6";
     sha256 = "04c38jnl74lpj2jhjz4zpqbs2623vwc71m6wc5h4b1karid14b23";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   gv = buildOfficialDict {
@@ -437,6 +474,7 @@ in rec {
     fullName = "Manx Gaelic";
     filename = "aspell";
     sha256 = "1rknf4yaw9s29c77sdzg98nhnmjwpicdb69igmz1n768npz2drmv";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   he = buildOfficialDict {
@@ -445,6 +483,7 @@ in rec {
     fullName = "Hebrew";
     filename = "aspell6";
     sha256 = "13bhbghx5b8g0119g3wxd4n8mlf707y41vlf59irxjj0kynankfn";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hi = buildOfficialDict {
@@ -453,6 +492,7 @@ in rec {
     fullName = "Hindi";
     filename = "aspell6";
     sha256 = "0drs374qz4419zx1lf2k281ydxf2750jk5ailafj1x0ncz27h1ys";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hil = buildOfficialDict {
@@ -461,6 +501,7 @@ in rec {
     fullName = "Hiligaynon";
     filename = "aspell5";
     sha256 = "1s482fsfhzic9qa80al4418q3ni3gfn2bkwkd2y46ydrs17kf2jp";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hr = buildOfficialDict {
@@ -469,6 +510,7 @@ in rec {
     fullName = "Croatian";
     filename = "aspell";
     sha256 = "09aafyf1vqhaxvcf3jfzf365k394b5pf0iivsr2ix5npah1h7i1a";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   hsb = buildOfficialDict {
@@ -477,6 +519,7 @@ in rec {
     fullName = "Upper Sorbian";
     filename = "aspell6";
     sha256 = "0bi2vhz7n1vmg43wbbh935pmzihv80iyz9z65j94lxf753j2m7wd";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hu = buildOfficialDict {
@@ -485,6 +528,7 @@ in rec {
     fullName = "Hungarian";
     filename = "aspell6";
     sha256 = "1d9nybip2k1dz69zly3iv0npbi3yxgfznh1py364nxzrbjsafd9k";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   hus = buildOfficialDict {
@@ -493,6 +537,7 @@ in rec {
     fullName = "Huastec";
     filename = "aspell6";
     sha256 = "09glipfpkz9xch17z11zw1yn2z7jx1f2svfmjn9l6wm1s5qz6a3d";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   hy = buildOfficialDict {
@@ -501,6 +546,7 @@ in rec {
     fullName = "Armenian";
     filename = "aspell6";
     sha256 = "1w5wq8lfl2xp1nid30b1j5qmya4vjyidq0vpr4y3gf53jc08vsid";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ia = buildOfficialDict {
@@ -509,6 +555,7 @@ in rec {
     fullName = "Interlingua";
     filename = "aspell";
     sha256 = "0bqcpgsa72pga24fv4fkw38b4qqdvqsw97jvzvw7q03dc1cwp5sp";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   id = buildOfficialDict {
@@ -517,6 +564,7 @@ in rec {
     fullName = "Indonesian";
     filename = "aspell5";
     sha256 = "023knfg0q03f7y5w6xnwa1kspnrcvcnky8xvdms93n2850414faj";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   is = buildOfficialDict {
@@ -525,6 +573,7 @@ in rec {
     fullName = "Icelandic";
     filename = "aspell";
     sha256 = "1mp3248lhbr13cj7iq9zs7h5ix0dcwlprp5cwrkcwafrv8lvsd9h";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   it = buildOfficialDict {
@@ -533,6 +582,7 @@ in rec {
     fullName = "Italian";
     filename = "aspell6";
     sha256 = "1gdf7bc1a0kmxsmphdqq8pl01h667mjsj6hihy6kqy14k5qdq69v";
+    meta.license = lib.licenses.gpl2Plus;
   };
 
   kn = buildOfficialDict {
@@ -541,6 +591,7 @@ in rec {
     fullName = "Kannada";
     filename = "aspell6";
     sha256 = "10sk0wx4x4ds1403kf9dqxv9yjvh06w8qqf4agx57y0jlws0n0fb";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   ku = buildOfficialDict {
@@ -549,6 +600,7 @@ in rec {
     fullName = "Kurdi";
     filename = "aspell5";
     sha256 = "09va98krfbgdaxl101nmd85j3ysqgg88qgfcl42c07crii0pd3wn";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ky = buildOfficialDict {
@@ -557,6 +609,7 @@ in rec {
     fullName = "Kirghiz";
     filename = "aspell6";
     sha256 = "0kzv2syjnnn6pnwx0d578n46hg2l0j62977al47y6wabnhjjy3z1";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   la = buildOfficialDict {
@@ -565,6 +618,7 @@ in rec {
     fullName = "Latin";
     filename = "aspell6";
     sha256 = "1199inwi16dznzl087v4skn66fl7h555hi2palx6s1f3s54b11nl";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   lt = buildOfficialDict {
@@ -573,6 +627,7 @@ in rec {
     fullName = "Lithuanian";
     filename = "aspell6";
     sha256 = "1asjck911l96q26zj36lmz0jp4b6pivvrf3h38zgc8lc85p3pxgn";
+    meta.license = lib.licenses.bsd3;
   };
 
   lv = buildOfficialDict {
@@ -581,6 +636,7 @@ in rec {
     fullName = "Latvian";
     filename = "aspell6";
     sha256 = "12pvs584a6437ijndggdqpp5s7d0w607cimpkxsjwasnx83f4c1w";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   mg = buildOfficialDict {
@@ -589,6 +645,7 @@ in rec {
     fullName = "Malagasy";
     filename = "aspell5";
     sha256 = "0hdhbk9b5immjp8l5h4cy82gwgsqzcqbb0qsf7syw333w4rgi0ji";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   mi = buildOfficialDict {
@@ -597,6 +654,7 @@ in rec {
     fullName = "Maori";
     filename = "aspell";
     sha256 = "12bxplpd348yx8d2q8qvahi9dlp7qf28qmanzhziwc7np8rixvmy";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   mk = buildOfficialDict {
@@ -605,6 +663,7 @@ in rec {
     fullName = "Macedonian";
     filename = "aspell";
     sha256 = "0wcr9n882xi5b7a7ln1hnhq4vfqd5gpqqp87v01j0gb7zf027z0m";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ml = buildOfficialDict {
@@ -613,6 +672,7 @@ in rec {
     fullName = "Malayalam";
     filename = "aspell6";
     sha256 = "1zcn4114gwia085fkz77qk13z29xrbp53q2qvgj2cvcbalg5bkg4";
+    meta.license = lib.licenses.gpl3Only;
   };
 
   mn = buildOfficialDict {
@@ -621,6 +681,7 @@ in rec {
     fullName = "Mongolian";
     filename = "aspell6";
     sha256 = "150j9y5c9pw80fwp5rzl5q31q9vjbxixaqljkfwxjb5q93fnw6rg";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   mr = buildOfficialDict {
@@ -629,6 +690,7 @@ in rec {
     fullName = "Marathi";
     filename = "aspell6";
     sha256 = "0cvgb2l40sppqbi842ivpznsh2xzp1d4hxc371dll8z0pr05m8yk";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ms = buildOfficialDict {
@@ -637,6 +699,7 @@ in rec {
     fullName = "Malay";
     filename = "aspell";
     sha256 = "0vr4vhipcfhsxqfs8dim2ph7iiixn22gmlmlb375bx5hgd9y7i1w";
+    meta.license = lib.licenses.fdl12Only;
   };
 
   mt = buildOfficialDict {
@@ -645,6 +708,7 @@ in rec {
     fullName = "Maltese";
     filename = "aspell";
     sha256 = "1d2rl1nlfjq6rfywblvx8m88cyy2x0mzc0mshzbgw359c2nwl3z0";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   nb = buildOfficialDict {
@@ -653,6 +717,7 @@ in rec {
     fullName = "Norwegian Bokmal";
     filename = "aspell";
     sha256 = "12i2bmgdnlkzfinb20j2a0j4a20q91a9j8qpq5vgabbvc65nwx77";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   nds = buildOfficialDict {
@@ -661,6 +726,7 @@ in rec {
     fullName = "Low Saxon";
     filename = "aspell6";
     sha256 = "1nkjhwzn45dizi89d19q4bqyd87cim8xyrgr655fampgkn31wf6f";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   nl = buildOfficialDict {
@@ -673,6 +739,11 @@ in rec {
     postInstall = ''
       echo "add nl.rws" > $out/lib/aspell/nederlands.multi
     '';
+    # from the Copyright file:
+    # > The nl-aspell package includes the GPL COPYRIGHT file but no explicit copyright
+    # > notice. Since he was using autoconf this could have been added automatically.
+    # wtf whatever
+    meta.license = lib.licenses.free;
   };
 
   nn = buildOfficialDict {
@@ -681,6 +752,7 @@ in rec {
     fullName = "Norwegian Nynorsk";
     filename = "aspell";
     sha256 = "0w2k5l5rbqpliripgqwiqixz5ghnjf7i9ggbrc4ly4vy1ia10rmc";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ny = buildOfficialDict {
@@ -689,6 +761,7 @@ in rec {
     fullName = "Chichewa";
     filename = "aspell5";
     sha256 = "0gjb92vcg60sfgvrm2f6i89sfkgb179ahvwlgs649fx3dc7rfvqp";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   or = buildOfficialDict {
@@ -697,6 +770,7 @@ in rec {
     fullName = "Oriya";
     filename = "aspell6";
     sha256 = "0kzj9q225z0ccrlbkijsrafy005pbjy14qcnxb6p93ciz1ls7zyn";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   pa = buildOfficialDict {
@@ -705,6 +779,7 @@ in rec {
     fullName = "Punjabi";
     filename = "aspell6";
     sha256 = "0if93zk10pyrs38wwj3vpcdm01h51m5z9gm85h3jxrpgqnqspwy7";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   pl = buildOfficialDict {
@@ -713,6 +788,12 @@ in rec {
     fullName = "Polish";
     filename = "aspell6";
     sha256 = "0kap4kh6bqbb22ypja1m5z3krc06vv4n0hakiiqmv20anzy42xq1";
+    meta.license = with lib.licenses; [
+      gpl2Only
+      lgpl21Only
+      mpl11
+      cc-sa-10
+    ];
   };
 
   pt_BR = buildOfficialDict {
@@ -721,6 +802,11 @@ in rec {
     fullName = "Brazilian Portuguese";
     filename = "aspell6";
     sha256 = "1xqlpk21s93c6blkdnpk7l62q9fxjvzdv2x86chl8p2x1gdrj3gb";
+    meta.license = with lib.licenses; [
+      lgpl21Only
+      lgpl21Plus
+      gpl3Plus
+    ];
   };
 
   pt_PT = buildOfficialDict {
@@ -729,6 +815,11 @@ in rec {
     fullName = "Portuguese";
     filename = "aspell6";
     sha256 = "0ld0d0ily4jqifjfsxfv4shbicz6ymm2gk56fq9gbzra1j4qnw75";
+    meta.license = with lib.licenses; [
+      lgpl21Plus
+      gpl3Plus
+      mpl11
+    ];
   };
 
   qu = buildOfficialDict {
@@ -737,6 +828,7 @@ in rec {
     fullName = "Quechua";
     filename = "aspell6";
     sha256 = "009z0zsvzq7r3z3m30clyibs94v77b92h5lmzmzxlns2p0lpd5w0";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ro = buildOfficialDict {
@@ -745,6 +837,7 @@ in rec {
     fullName = "Romanian";
     filename = "aspell5";
     sha256 = "0gb8j9iy1acdl11jq76idgc2lbc1rq3w04favn8cyh55d1v8phsk";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   ru = buildOfficialDict {
@@ -753,6 +846,7 @@ in rec {
     fullName = "Russian";
     filename = "aspell6";
     sha256 = "0ip6nq43hcr7vvzbv4lwwmlwgfa60hrhsldh9xy3zg2prv6bcaaw";
+    meta.license = lib.licenses.free;
   };
 
   rw = buildOfficialDict {
@@ -761,6 +855,7 @@ in rec {
     fullName = "Kinyarwanda";
     filename = "aspell";
     sha256 = "10gh8g747jbrvfk2fn3pjxy1nhcfdpwgmnvkmrp4nd1k1qp101il";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   sc = buildOfficialDict {
@@ -769,6 +864,7 @@ in rec {
     fullName = "Sardinian";
     filename = "aspell5";
     sha256 = "0hl7prh5rccsyljwrv3m1hjcsphyrrywk2qvnj122irbf4py46jr";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   sk = buildOfficialDict {
@@ -777,6 +873,11 @@ in rec {
     fullName = "Slovak";
     filename = "aspell6";
     sha256 = "19k0m1v5pcf7xr4lxgjkzqkdlks8nyb13bvi1n7521f3i4lhma66";
+    meta.license = with lib.licenses; [
+      lgpl21Only
+      gpl2Only
+      mpl11
+    ];
   };
 
   sl = buildOfficialDict {
@@ -785,6 +886,7 @@ in rec {
     fullName = "Slovenian";
     filename = "aspell";
     sha256 = "1l9kc5g35flq8kw9jhn2n0bjb4sipjs4qkqzgggs438kywkx2rp5";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   sr = buildOfficialDict {
@@ -793,6 +895,7 @@ in rec {
     fullName = "Serbian";
     filename = "aspell6";
     sha256 = "12cj01p4nj80cpf7m3s4jsaf0rsfng7s295j9jfchcq677xmhpkh";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   sv = buildOfficialDict {
@@ -801,6 +904,7 @@ in rec {
     fullName = "Swedish";
     filename = "aspell";
     sha256 = "02jwkjhr32kvyibnyzgx3smbnm576jwdzg3avdf6zxwckhy5fw4v";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   sw = buildOfficialDict {
@@ -809,6 +913,7 @@ in rec {
     fullName = "Swahili";
     filename = "aspell";
     sha256 = "15zjh7hdj2b4dgm5bc12w1ims9q357p1q3gjalspnyn5gl81zmby";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   ta = buildOfficialDict {
@@ -817,6 +922,7 @@ in rec {
     fullName = "Tamil";
     filename = "aspell6";
     sha256 = "0sj8ygjsyvnr93cs6324y7az7k2vyw7rjxdc9vnm7z60lbqm5xaj";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   te = buildOfficialDict {
@@ -825,6 +931,7 @@ in rec {
     fullName = "Telugu";
     filename = "aspell6";
     sha256 = "0pgcgxz7dz34zxp9sb85jjzbg3ky6il5wmhffz6ayrbsfn5670in";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tet = buildOfficialDict {
@@ -833,6 +940,7 @@ in rec {
     fullName = "Tetum";
     filename = "aspell5";
     sha256 = "17n0y4fhjak47j9qnqf4m4z6zra6dn72rwhp7ig0hhlgqk4ldmcx";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tk = buildOfficialDict {
@@ -841,6 +949,7 @@ in rec {
     fullName = "Turkmen";
     filename = "aspell5";
     sha256 = "02vad4jqhr0xpzqi5q5z7z0xxqccbn8j0c5dhpnm86mnr84l5wl6";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tl = buildOfficialDict {
@@ -849,6 +958,7 @@ in rec {
     fullName = "Tagalog";
     filename = "aspell5";
     sha256 = "1kca6k7qnpfvvwjnq5r1n242payqsjy96skmw78m7ww6d0n5vdj8";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tn = buildOfficialDict {
@@ -857,6 +967,7 @@ in rec {
     fullName = "Setswana";
     filename = "aspell5";
     sha256 = "0q5x7c6z88cn0kkpk7q1craq34g4g03v8x3xcj5a5jia3l7c5821";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   tr = buildOfficialDict {
@@ -865,6 +976,7 @@ in rec {
     fullName = "Turkish";
     filename = "aspell";
     sha256 = "0jpvpm96ga7s7rmsm6rbyrrr22b2dicxv2hy7ysv5y7bbq757ihb";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   uk = buildOfficialDict {
@@ -873,6 +985,10 @@ in rec {
     fullName = "Ukrainian";
     filename = "aspell6";
     sha256 = "137i4njvnslab6l4s291s11xijr5jsy75lbdph32f9y183lagy9m";
+    meta.license = with lib.licenses; [
+      lgpl2Plus
+      gpl2Plus
+    ];
   };
 
   uz = buildOfficialDict {
@@ -881,6 +997,7 @@ in rec {
     fullName = "Uzbek";
     filename = "aspell6";
     sha256 = "0sg3wlyply1idpq5ypyj7kgnaadaiskci1sqs811yhg2gzyc3092";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   vi = buildOfficialDict {
@@ -889,6 +1006,7 @@ in rec {
     fullName = "Vietnamese";
     filename = "aspell6";
     sha256 = "05vwgvf1cj45azhflywx69javqdvqd1f20swrc2d3c32pd9mvn1w";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   wa = buildOfficialDict {
@@ -897,6 +1015,7 @@ in rec {
     fullName = "Walloon";
     filename = "aspell";
     sha256 = "1r1zwz7xkx40dga9vf5wc9ja3jwk1dkpcr1kaa7wryvslf5al5ss";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   yi = buildOfficialDict {
@@ -905,6 +1024,7 @@ in rec {
     fullName = "Yiddish";
     filename = "aspell6";
     sha256 = "0mi842l4038bx3ll2wx9nz44nqrg1x46h5b02zigi1hbbddd6ycq";
+    meta.license = lib.licenses.gpl2Only;
   };
 
   zu = buildOfficialDict {
@@ -913,6 +1033,7 @@ in rec {
     fullName = "Zulu";
     filename = "aspell";
     sha256 = "15k7gaxrnqnssdyk9l6g27dq317dqp9jz5yzafd25ri01g6mb8iz";
+    meta.license = lib.licenses.lgpl21Only;
   };
 
   ### Jargons
@@ -937,6 +1058,7 @@ in rec {
 
     meta = {
       homepage = "https://mrsatterly.com/spelling.html";
+      license = lib.licenses.wtfpl; # as a comment the source file
     };
   };
 
@@ -945,13 +1067,13 @@ in rec {
     fullName = "English Scientific Jargon";
 
     src1 = fetchurl {
-      url = "http://jpetrie.net/wp-content/uploads/custom_scientific_US.txt";
-      sha256 = "1nf4py2mg0mlv9s5a7had2wn29z2v6bcca0fs6rbpdn4nqc4s7dm";
+      url = "https://web.archive.org/web/20180806094650if_/http://jpetrie.net/wp-content/uploads/custom_scientific_US.txt";
+      hash = "sha256-I5d/jf/5v9Nptu2H9qfvMBzSwJYoQOTEzJfQTxKoWN8=";
     };
 
     src2 = fetchurl {
-      url = "http://jpetrie.net/wp-content/uploads/custom_scientific_UK.txt";
-      sha256 = "0f88il1ds6qazy1ghxviqcwsywrbf6pzl2lmzf4f3qvhdfb6f1y0";
+      url = "https://web.archive.org/web/20180131231829if_/http://jpetrie.net/wp-content/uploads/custom_scientific_UK.txt";
+      hash = "sha256-oT4nUiev5q4QjHeuF8jNVBcyyHE9fdH9+uDMkZsOWp8=";
     };
 
     langInputs = [ en ];
@@ -965,7 +1087,9 @@ in rec {
     installPhase = "aspell-install en_US-science en_GB-science";
 
     meta = {
-      homepage = "http://www.jpetrie.net/scientific-word-list-for-spell-checkersspelling-dictionaries/";
+      homepage = "https://web.archive.org/web/20210425104207/http://www.jpetrie.net/scientific-word-list-for-spell-checkersspelling-dictionaries/";
+      # no license is given so we have to assume it is unfree
+      license = lib.licenses.unfree;
     };
 
   };
diff --git a/pkgs/development/libraries/assimp/default.nix b/pkgs/development/libraries/assimp/default.nix
index 8019c6cc943f1..87df1e7f6aec1 100644
--- a/pkgs/development/libraries/assimp/default.nix
+++ b/pkgs/development/libraries/assimp/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "assimp";
-  version = "5.3.1";
+  version = "5.4.1";
   outputs = [ "out" "lib" "dev" ];
 
   src = fetchFromGitHub {
     owner = "assimp";
     repo = "assimp";
     rev = "v${version}";
-    hash = "sha256-/1A8n7oe9WsF3FpbLZxhifzrdj38t9l5Kc8Q5jfDoyY=";
+    hash = "sha256-F3aaEaHZyOLES6zOYqHRG0BtaKk9d/bAHCtal6FsIWc=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ]);
 
   meta = with lib; {
-    description = "A library to import various 3D model formats";
+    description = "Library to import various 3D model formats";
     mainProgram = "assimp";
     homepage = "https://www.assimp.org/";
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/at-spi2-core/default.nix b/pkgs/development/libraries/at-spi2-core/default.nix
index 270f624965f60..4ca364ad9f8de 100644
--- a/pkgs/development/libraries/at-spi2-core/default.nix
+++ b/pkgs/development/libraries/at-spi2-core/default.nix
@@ -19,18 +19,19 @@
 , libXext
 , gnome
 , systemd
+, systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd
 }:
 
 stdenv.mkDerivation rec {
   pname = "at-spi2-core";
-  version = "2.50.2";
+  version = "2.52.0";
 
   outputs = [ "out" "dev" ];
   separateDebugInfo = true;
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-W4GxRhpi3Y++0aJ2+p71txEvmuX/huHjKtlkS2VP94w=";
+    hash = "sha256-CsP8gyDI0B+hR8Jyun+gOAY4nGsD08QG0II+MONf9as=";
   };
 
   nativeBuildInputs = [
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
     libXi
     # libXext is a transitive dependency of libXi
     libXext
-  ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform systemd) [
+  ] ++ lib.optionals systemdSupport [
     # libsystemd is a needed for dbus-broker support
     systemd
   ];
@@ -72,9 +73,11 @@ stdenv.mkDerivation rec {
     # including the entire dbus closure in libraries linked with
     # the at-spi2-core libraries.
     "-Ddbus_daemon=/run/current-system/sw/bin/dbus-daemon"
-  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
+  ] ++ lib.optionals systemdSupport [
     # Same as the above, but for dbus-broker
     "-Ddbus_broker=/run/current-system/sw/bin/dbus-broker-launch"
+  ] ++ lib.optionals (!systemdSupport) [
+    "-Duse_systemd=false"
   ];
 
   passthru = {
diff --git a/pkgs/development/libraries/aubio/default.nix b/pkgs/development/libraries/aubio/default.nix
index 89f81e26de407..6702eb91c9b17 100644
--- a/pkgs/development/libraries/aubio/default.nix
+++ b/pkgs/development/libraries/aubio/default.nix
@@ -15,7 +15,6 @@ stdenv.mkDerivation rec {
   buildInputs = [ alsa-lib fftw libjack2 libsamplerate libsndfile ];
 
   strictDeps = true;
-  dontAddWafCrossFlags = true;
   wafFlags = lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--disable-tests";
 
   postPatch = ''
diff --git a/pkgs/development/libraries/audiality2/default.nix b/pkgs/development/libraries/audiality2/default.nix
index c189cd7e1ea4a..9dfc216a22695 100644
--- a/pkgs/development/libraries/audiality2/default.nix
+++ b/pkgs/development/libraries/audiality2/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A realtime scripted modular audio engine for video games and musical applications";
+    description = "Realtime scripted modular audio engine for video games and musical applications";
     mainProgram = "a2play";
     homepage = "http://audiality.org";
     license = licenses.zlib;
diff --git a/pkgs/development/libraries/audio/game-music-emu/default.nix b/pkgs/development/libraries/audio/game-music-emu/default.nix
index 0f420745baef6..94b8d1cbc3750 100644
--- a/pkgs/development/libraries/audio/game-music-emu/default.nix
+++ b/pkgs/development/libraries/audio/game-music-emu/default.nix
@@ -22,9 +22,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://bitbucket.org/mpyne/game-music-emu/wiki/Home";
-    description = "A collection of video game music file emulators";
+    description = "Collection of video game music file emulators";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ luc65r lheckemann ];
+    maintainers = with maintainers; [ luc65r ];
   };
 }
diff --git a/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix b/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
index 8d5ef86a89671..50495d1633592 100644
--- a/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
+++ b/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A libmodplug emulation layer based on libopenmpt";
+    description = "Libmodplug emulation layer based on libopenmpt";
     homepage = "https://lib.openmpt.org/libopenmpt/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/development/libraries/audio/libopenmpt/default.nix b/pkgs/development/libraries/audio/libopenmpt/default.nix
index da288f145613e..0f4c3509244d8 100644
--- a/pkgs/development/libraries/audio/libopenmpt/default.nix
+++ b/pkgs/development/libraries/audio/libopenmpt/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libopenmpt";
-  version = "0.7.6";
+  version = "0.7.7";
 
   outputs = [ "out" "dev" "bin" ];
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    hash = "sha256-Fi1yowa7LhFMJPolJn0NCgrBbzn9laXA38daZm7l5PU=";
+    hash = "sha256-WMaiiXISaCim9ljghK7nqo+L/bdaC9DjRcf/Km2e8Iw=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/audio/libsmf/default.nix b/pkgs/development/libraries/audio/libsmf/default.nix
index 6737d76538e0e..064a167bfb773 100644
--- a/pkgs/development/libraries/audio/libsmf/default.nix
+++ b/pkgs/development/libraries/audio/libsmf/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ glib ];
 
   meta = with lib; {
-    description = "A C library for reading and writing Standard MIDI Files";
+    description = "C library for reading and writing Standard MIDI Files";
     homepage = "https://github.com/stump/libsmf";
     license = licenses.bsd2;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/audio/lilv/default.nix b/pkgs/development/libraries/audio/lilv/default.nix
index c17b27a7aa6ff..4e83452874624 100644
--- a/pkgs/development/libraries/audio/lilv/default.nix
+++ b/pkgs/development/libraries/audio/lilv/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/lilv";
-    description = "A C library to make the use of LV2 plugins";
+    description = "C library to make the use of LV2 plugins";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/audio/lv2/default.nix b/pkgs/development/libraries/audio/lv2/default.nix
index 473b246f3f9d1..d9952877d80de 100644
--- a/pkgs/development/libraries/audio/lv2/default.nix
+++ b/pkgs/development/libraries/audio/lv2/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lv2plug.in";
-    description = "A plugin standard for audio systems";
+    description = "Plugin standard for audio systems";
     mainProgram = "lv2_validate";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/libraries/audio/lvtk/default.nix b/pkgs/development/libraries/audio/lvtk/default.nix
index b1a6adaaeca2e..b340dafbc3158 100644
--- a/pkgs/development/libraries/audio/lvtk/default.nix
+++ b/pkgs/development/libraries/audio/lvtk/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set C++ wrappers around the LV2 C API";
+    description = "Set C++ wrappers around the LV2 C API";
     mainProgram = "ttl2c";
     homepage = "https://lvtk.org/";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/audio/qm-dsp/default.nix b/pkgs/development/libraries/audio/qm-dsp/default.nix
index 01a3933fe2b3e..92024cd81fb8f 100644
--- a/pkgs/development/libraries/audio/qm-dsp/default.nix
+++ b/pkgs/development/libraries/audio/qm-dsp/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-I${kissfft}/include/kissfft";
 
   meta = with lib; {
-    description = "A C++ library of functions for DSP and Music Informatics purposes";
+    description = "C++ library of functions for DSP and Music Informatics purposes";
     homepage = "https://code.soundsoftware.ac.uk/projects/qm-dsp";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/audio/raul/default.nix b/pkgs/development/libraries/audio/raul/default.nix
index c200d4ab79c52..cd8c3d3a70f3c 100644
--- a/pkgs/development/libraries/audio/raul/default.nix
+++ b/pkgs/development/libraries/audio/raul/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "A C++ utility library primarily aimed at audio/musical applications";
+    description = "C++ utility library primarily aimed at audio/musical applications";
     homepage = "http://drobilla.net/software/raul";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/audio/roc-toolkit/default.nix b/pkgs/development/libraries/audio/roc-toolkit/default.nix
index cbb580413c2b0..4654e29a835fd 100644
--- a/pkgs/development/libraries/audio/roc-toolkit/default.nix
+++ b/pkgs/development/libraries/audio/roc-toolkit/default.nix
@@ -16,12 +16,14 @@
   opensslSupport ? true,
   openssl,
   soxSupport ? true,
-  sox
+  sox,
+  libsndfileSupport ? true,
+  libsndfile
 }:
 
 stdenv.mkDerivation rec {
   pname = "roc-toolkit";
-  version = "0.3.0";
+  version = "0.4.0";
 
   outputs = [ "out" "dev" ];
 
@@ -29,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "roc-streaming";
     repo = "roc-toolkit";
     rev = "v${version}";
-    hash = "sha256-tC0rjb3eDtEciUk0NmVye+N//Y/RFsi5d3kFS031y8I=";
+    hash = "sha256-53irDq803dTg0YqtC1SOXmYNGypSMAEK+9HJ65pR5PA=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +48,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional libunwindSupport libunwind
     ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optional opensslSupport openssl
-    ++ lib.optional soxSupport sox;
+    ++ lib.optional soxSupport sox
+    ++ lib.optional libsndfileSupport libsndfile;
 
   sconsFlags =
     [ "--build=${stdenv.buildPlatform.config}"
@@ -56,6 +59,7 @@ stdenv.mkDerivation rec {
     lib.optional (!soxSupport) "--disable-sox" ++
     lib.optional (!libunwindSupport) "--disable-libunwind" ++
     lib.optional (!pulseaudioSupport) "--disable-pulseaudio" ++
+    lib.optional (!libsndfileSupport) "--disable-sndfile" ++
     (if (!openfecSupport)
        then ["--disable-openfec"]
        else [ "--with-libraries=${openfec}/lib"
diff --git a/pkgs/development/libraries/audio/rtaudio/default.nix b/pkgs/development/libraries/audio/rtaudio/default.nix
index 8084963f39fbb..8c1bc7356db13 100644
--- a/pkgs/development/libraries/audio/rtaudio/default.nix
+++ b/pkgs/development/libraries/audio/rtaudio/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set of C++ classes that provide a cross platform API for realtime audio input/output";
+    description = "Set of C++ classes that provide a cross platform API for realtime audio input/output";
     homepage = "https://www.music.mcgill.ca/~gary/rtaudio/";
     license = licenses.mit;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/development/libraries/audio/rtmidi/default.nix b/pkgs/development/libraries/audio/rtmidi/default.nix
index 0780d2978805d..c881e45ae559e 100644
--- a/pkgs/development/libraries/audio/rtmidi/default.nix
+++ b/pkgs/development/libraries/audio/rtmidi/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A set of C++ classes that provide a cross platform API for realtime MIDI input/output";
+    description = "Set of C++ classes that provide a cross platform API for realtime MIDI input/output";
     homepage = "https://www.music.mcgill.ca/~gary/rtmidi/";
     license = licenses.mit;
     maintainers = with maintainers; [ magnetophon ];
diff --git a/pkgs/development/libraries/audio/sratom/default.nix b/pkgs/development/libraries/audio/sratom/default.nix
index 26a55efd786a5..bd12fc9b4a324 100644
--- a/pkgs/development/libraries/audio/sratom/default.nix
+++ b/pkgs/development/libraries/audio/sratom/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://drobilla.net/software/sratom";
-    description = "A library for serialising LV2 atoms to/from RDF";
+    description = "Library for serialising LV2 atoms to/from RDF";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/audio/suil/default.nix b/pkgs/development/libraries/audio/suil/default.nix
index 3dc3bb5dacdcf..6214b65189d37 100644
--- a/pkgs/development/libraries/audio/suil/default.nix
+++ b/pkgs/development/libraries/audio/suil/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/suil";
-    description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
+    description = "Lightweight C library for loading and wrapping LV2 plugin UIs";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix b/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
index fc5162b34e8d4..64113993f1eaa 100644
--- a/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
+++ b/pkgs/development/libraries/audio/zita-alsa-pcmi/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The successor of clalsadrv, provides easy access to ALSA PCM devices";
+    description = "Successor of clalsadrv, provides easy access to ALSA PCM devices";
     version = version;
     homepage = "http://kokkinizita.linuxaudio.org/linuxaudio/downloads/index.html";
     license = lib.licenses.gpl3;
diff --git a/pkgs/development/libraries/audio/zix/default.nix b/pkgs/development/libraries/audio/zix/default.nix
index f6b6eceb4c04b..f2824fa793906 100644
--- a/pkgs/development/libraries/audio/zix/default.nix
+++ b/pkgs/development/libraries/audio/zix/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A lightweight C99 portability and data structure library";
+    description = "Lightweight C99 portability and data structure library";
     homepage = "https://gitlab.com/drobilla/zix";
     changelog = "https://gitlab.com/drobilla/zix/-/blob/${src.rev}/NEWS";
     license = licenses.isc;
diff --git a/pkgs/development/libraries/avro-c++/default.nix b/pkgs/development/libraries/avro-c++/default.nix
index d0d899fe9935f..d8735e0b9143d 100644
--- a/pkgs/development/libraries/avro-c++/default.nix
+++ b/pkgs/development/libraries/avro-c++/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A C++ library which implements parts of the Avro Specification";
+    description = "C++ library which implements parts of the Avro Specification";
     mainProgram = "avrogencpp";
     homepage = "https://avro.apache.org/";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/avro-c/default.nix b/pkgs/development/libraries/avro-c/default.nix
index 944182e141245..a62d0449b3855 100644
--- a/pkgs/development/libraries/avro-c/default.nix
+++ b/pkgs/development/libraries/avro-c/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ jansson snappy xz zlib ];
 
   meta = with lib; {
-    description = "A C library which implements parts of the Avro Specification";
+    description = "C library which implements parts of the Avro Specification";
     homepage = "https://avro.apache.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ lblasc ];
diff --git a/pkgs/development/libraries/aws-c-auth/default.nix b/pkgs/development/libraries/aws-c-auth/default.nix
index 7a7d808795587..d07a7fc529964 100644
--- a/pkgs/development/libraries/aws-c-auth/default.nix
+++ b/pkgs/development/libraries/aws-c-auth/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-auth";
-  version = "0.7.16";
+  version = "0.7.22";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-auth";
     rev = "v${version}";
-    hash = "sha256-76sBv4oChDrkv80HPktkULFNC37kfTNxjlwNg/FJiyA=";
+    hash = "sha256-8+SFag3hRQ+1aOK2vuHOV/gXE1qUIlAW5LNJDmUORLs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-cal/default.nix b/pkgs/development/libraries/aws-c-cal/default.nix
index 0188c8937c90e..6b88fa8aa47e4 100644
--- a/pkgs/development/libraries/aws-c-cal/default.nix
+++ b/pkgs/development/libraries/aws-c-cal/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "aws-c-cal";
-  version = "0.6.10";
+  version = "0.6.15";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-rzJypIf0DrKI/2Wt5vFop34dL+KYTeCfWC0RflZpiMo=";
+    hash = "sha256-RrUJz3IqwbBJ8NuJTIWqK33FlJHolcaid55PT2EhO24=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix
index 360b82b6c6797..6bb9fc493fe87 100644
--- a/pkgs/development/libraries/aws-c-common/default.nix
+++ b/pkgs/development/libraries/aws-c-common/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-common";
-  version = "0.9.14";
+  version = "0.9.21";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aeuIXqnO8divpguDpiPlYJHABYIqegpaDNGwqJ5TKZw=";
+    hash = "sha256-lJCQPatwZeHpuzQni6SMMGYBH4iESQH8ofFgmRbxtnM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-http/default.nix b/pkgs/development/libraries/aws-c-http/default.nix
index 4b22e53a317e4..ac35fd5d57b05 100644
--- a/pkgs/development/libraries/aws-c-http/default.nix
+++ b/pkgs/development/libraries/aws-c-http/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-http";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-http";
     rev = "v${version}";
-    hash = "sha256-S5ETVkdGTndt2GJBNL4DU5SycHAufsmN06xBDRMFVKo=";
+    hash = "sha256-86auAZGoaYIpoTVlB9uC+nKMNt1QRNor+/68B5D36r8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-io/default.nix b/pkgs/development/libraries/aws-c-io/default.nix
index 65b5843897612..a429003628459 100644
--- a/pkgs/development/libraries/aws-c-io/default.nix
+++ b/pkgs/development/libraries/aws-c-io/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-io";
-  version = "0.14.6";
+  version = "0.14.9";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-fekeGghqMKbUqKWIfpZg3a6dCpgxywhmXPoGz9y4Aos=";
+    hash = "sha256-YrEpb4+yzrNci0/ZW+UsPlEmnCBkcRFDgo8SuxsTWXg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/aws-c-mqtt/default.nix b/pkgs/development/libraries/aws-c-mqtt/default.nix
index 2e6c6a5611150..829dc76dce933 100644
--- a/pkgs/development/libraries/aws-c-mqtt/default.nix
+++ b/pkgs/development/libraries/aws-c-mqtt/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-mqtt";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-mqtt";
     rev = "v${version}";
-    hash = "sha256-MWcXTMwKtFnrNp+OnHxkiYCUXc3IUhM6iTQa+F9JwsQ=";
+    hash = "sha256-i+ssZzHC8MPfyOaRqvjq0z7w772BJqIA6BwntW1fRek=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-s3/default.nix b/pkgs/development/libraries/aws-c-s3/default.nix
index 8db5b837ba6b3..65e84c3bcb84a 100644
--- a/pkgs/development/libraries/aws-c-s3/default.nix
+++ b/pkgs/development/libraries/aws-c-s3/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-s3";
-  version = "0.5.4";
+  version = "0.5.10";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-s3";
     rev = "v${version}";
-    hash = "sha256-8eKQsP7AftNDccsZHPC9PcwpbpgZSvsioUuSsiggQDs=";
+    hash = "sha256-yQY5yZFRm/2K97ffyumAQhgPlU6Nzy8PDGcy9L53Y84=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-c-sdkutils/default.nix b/pkgs/development/libraries/aws-c-sdkutils/default.nix
index 7ced8b5a415d7..dc5dc02f6242d 100644
--- a/pkgs/development/libraries/aws-c-sdkutils/default.nix
+++ b/pkgs/development/libraries/aws-c-sdkutils/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-c-sdkutils";
-  version = "0.1.15";
+  version = "0.1.16";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-c-sdkutils";
     rev = "v${version}";
-    hash = "sha256-RTRDbdv+QmRG0Sk/R9qhl45WYEVyl+M0EceLFsoONTI=";
+    hash = "sha256-ih7U2uP5FrBx6or1Rp/k+HWDE6evEZyNM//wsPxH9Qo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/aws-crt-cpp/default.nix b/pkgs/development/libraries/aws-crt-cpp/default.nix
index c41c5426d5666..cbf2e22ec7322 100644
--- a/pkgs/development/libraries/aws-crt-cpp/default.nix
+++ b/pkgs/development/libraries/aws-crt-cpp/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "aws-crt-cpp";
-  version = "0.26.4";
+  version = "0.26.8";
 
   outputs = [ "out" "dev" ];
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     owner = "awslabs";
     repo = "aws-crt-cpp";
     rev = "v${version}";
-    sha256 = "sha256-H5ms6fhhlkARn9g8S5Ma8bnisZv8mfNizP0QpzsF1tA=";
+    sha256 = "sha256-TW17Jcs9y8OqB0mnbHbOZgSWkYs70o2bhiLT/Rr1e8k=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/aws-sdk-cpp/default.nix b/pkgs/development/libraries/aws-sdk-cpp/default.nix
index 0d210abd4a15e..ded3948907c25 100644
--- a/pkgs/development/libraries/aws-sdk-cpp/default.nix
+++ b/pkgs/development/libraries/aws-sdk-cpp/default.nix
@@ -27,13 +27,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "aws-sdk-cpp";
-  version = "1.11.296";
+  version = "1.11.336";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-sdk-cpp";
     rev = version;
-    hash = "sha256-yg+OkeUaqwUQGQ5ThIVQUpF2rHm4FuFbcl5gE5WHHOQ=";
+    hash = "sha256-hetXtXM8HG6V3rAuyf+w+DtlxEcpsyaroZsw0nIJoAw=";
   };
 
   postPatch = ''
@@ -143,7 +143,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C++ interface for Amazon Web Services";
+    description = "C++ interface for Amazon Web Services";
     homepage = "https://github.com/aws/aws-sdk-cpp";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/bamf/default.nix b/pkgs/development/libraries/bamf/default.nix
index 99c1df8e0a39c..8b11954429631 100644
--- a/pkgs/development/libraries/bamf/default.nix
+++ b/pkgs/development/libraries/bamf/default.nix
@@ -17,7 +17,7 @@
 , xorgserver
 , dbus
 , python3
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
     pkg-config
     vala
     which
-    wrapGAppsHook
+    wrapGAppsHook3
     xorgserver
   ];
 
diff --git a/pkgs/development/libraries/bashup-events/generic.nix b/pkgs/development/libraries/bashup-events/generic.nix
index c3e2269a8a12b..eb54d79e6fadf 100644
--- a/pkgs/development/libraries/bashup-events/generic.nix
+++ b/pkgs/development/libraries/bashup-events/generic.nix
@@ -77,7 +77,7 @@ resholve.mkDerivation rec {
 
   meta = with lib; {
     inherit branch;
-    description = "An event listener/callback API for creating extensible bash programs";
+    description = "Event listener/callback API for creating extensible bash programs";
     mainProgram = "bashup.events";
     homepage = "https://github.com/bashup/events";
     license = licenses.cc0;
diff --git a/pkgs/development/libraries/basu/default.nix b/pkgs/development/libraries/basu/default.nix
index 4665c4c2d158b..a3bd836ee83fc 100644
--- a/pkgs/development/libraries/basu/default.nix
+++ b/pkgs/development/libraries/basu/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://sr.ht/~emersion/basu";
-    description = "The sd-bus library, extracted from systemd";
+    description = "Sd-bus library, extracted from systemd";
     mainProgram = "basuctl";
     license = lib.licenses.lgpl21Only;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/bc-decaf/default.nix b/pkgs/development/libraries/bc-decaf/default.nix
index c73f28e4e93ae..162eb8a4dd251 100644
--- a/pkgs/development/libraries/bc-decaf/default.nix
+++ b/pkgs/development/libraries/bc-decaf/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DENABLE_STATIC=NO" "-DENABLE_STRICT=NO" ];
 
   meta = with lib; {
-    description = "Elliptic curve library supporting Ed448-Goldilocks and Curve25519. Belledonne Communications' fork for Linphone.";
+    description = "Elliptic curve library supporting Ed448-Goldilocks and Curve25519. Belledonne Communications' fork for Linphone";
     homepage = "https://gitlab.linphone.org/BC/public/bctoolbox";
     license = licenses.mit;
     maintainers = with maintainers; [ thibaultlemaire ];
diff --git a/pkgs/development/libraries/bearssl/default.nix b/pkgs/development/libraries/bearssl/default.nix
index b8dc2e1e1806d..7301f8c889ce9 100644
--- a/pkgs/development/libraries/bearssl/default.nix
+++ b/pkgs/development/libraries/bearssl/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.bearssl.org/";
-    description = "An implementation of the SSL/TLS protocol written in C";
+    description = "Implementation of the SSL/TLS protocol written in C";
     longDescription = ''
       BearSSL is an implementation of the SSL/TLS protocol (RFC 5246)
       written in C. It aims at offering the following features:
diff --git a/pkgs/development/libraries/belcard/default.nix b/pkgs/development/libraries/belcard/default.nix
index 0b6cd66cae386..cb16a3fe0fd86 100644
--- a/pkgs/development/libraries/belcard/default.nix
+++ b/pkgs/development/libraries/belcard/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "C++ library to manipulate VCard standard format. Part of the Linphone project.";
+    description = "C++ library to manipulate VCard standard format. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/belcard";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/belle-sip/default.nix b/pkgs/development/libraries/belle-sip/default.nix
index b4b5629cdafb0..efc62bc9a5a1f 100644
--- a/pkgs/development/libraries/belle-sip/default.nix
+++ b/pkgs/development/libraries/belle-sip/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://linphone.org/technical-corner/belle-sip";
-    description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers. Part of the Linphone project.";
+    description = "Modern library implementing SIP (RFC 3261) transport, transaction and dialog layers. Part of the Linphone project";
     mainProgram = "belle_sip_tester";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/belr/default.nix b/pkgs/development/libraries/belr/default.nix
index 7296a9d952754..95517eabed26c 100644
--- a/pkgs/development/libraries/belr/default.nix
+++ b/pkgs/development/libraries/belr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DENABLE_STATIC=NO" ];
 
   meta = with lib; {
-    description = "Belledonne Communications' language recognition library. Part of the Linphone project.";
+    description = "Belledonne Communications' language recognition library. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/belr";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/bencode/default.nix b/pkgs/development/libraries/bencode/default.nix
index 478f7306a59de..1dc68be26052a 100644
--- a/pkgs/development/libraries/bencode/default.nix
+++ b/pkgs/development/libraries/bencode/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A header-only C++20 bencode serialization/deserialization library";
+    description = "Header-only C++20 bencode serialization/deserialization library";
     homepage = "https://github.com/fbdtemme/bencode";
     changelog = "https://github.com/fbdtemme/bencode/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/biblesync/default.nix b/pkgs/development/libraries/biblesync/default.nix
index 74a938cf2a5c9..1ac53a0b9b8fd 100644
--- a/pkgs/development/libraries/biblesync/default.nix
+++ b/pkgs/development/libraries/biblesync/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wiki.crosswire.org/BibleSync";
-    description = "A multicast protocol to Bible software shared conavigation";
+    description = "Multicast protocol to Bible software shared conavigation";
     longDescription = ''
       BibleSync is a multicast protocol to support Bible software shared
       co-navigation. It uses LAN multicast in either a personal/small team
diff --git a/pkgs/development/libraries/blst/default.nix b/pkgs/development/libraries/blst/default.nix
index 48865cf83564d..e5eb5b64aa9f0 100644
--- a/pkgs/development/libraries/blst/default.nix
+++ b/pkgs/development/libraries/blst/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation ( finalAttrs: {
   pname = "blst";
-  version = "0.3.11";
+  version = "0.3.12";
 
   src = fetchFromGitHub {
     owner = "supranational";
     repo = "blst";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-oqljy+ZXJAXEB/fJtmB8rlAr4UXM+Z2OkDa20gpILNA=";
+    hash = "sha256-z/xnttMuAOfoKn/yCBwdYbgcd6cDLD6tZxInAWn8XIk=";
   };
 
   buildPhase = ''
diff --git a/pkgs/development/libraries/boca/default.nix b/pkgs/development/libraries/boca/default.nix
index 50023491d3a08..f0a1f3bc6a775 100644
--- a/pkgs/development/libraries/boca/default.nix
+++ b/pkgs/development/libraries/boca/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A component library used by the fre:ac audio converter";
+    description = "Component library used by the fre:ac audio converter";
     license = licenses.gpl2Plus;
     homepage = "https://github.com/enzo1982/boca";
     maintainers = with maintainers; [ shamilton ];
diff --git a/pkgs/development/libraries/boost-process/default.nix b/pkgs/development/libraries/boost-process/default.nix
deleted file mode 100644
index 551c1247949ea..0000000000000
--- a/pkgs/development/libraries/boost-process/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib, stdenv, fetchurl, unzip }:
-
-stdenv.mkDerivation rec {
-  pname = "boost-process";
-  version = "0.5";
-
-  src = fetchurl {
-    url = "http://www.highscore.de/boost/process${version}/process.zip";
-    sha256 = "1v9y9pffb2b7p642kp9ic4z6kg42ziizmyvbgrqd1ci0i4gn0831";
-  };
-
-  nativeBuildInputs = [ unzip ];
-
-  unpackPhase = ''
-    mkdir boost-process-$version
-    cd boost-process-$version
-    unzip $src
-  '';
-
-  installPhase = ''
-    mkdir -p $out/include
-    cp -r boost $out/include
-  '';
-
-  meta = with lib; {
-    homepage = "http://www.highscore.de/boost/process0.5/";
-    description = "Library to manage system processes";
-    license = licenses.boost;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ abbradar ];
-  };
-}
diff --git a/pkgs/development/libraries/boost/1.75.nix b/pkgs/development/libraries/boost/1.75.nix
index ec77070c932c0..c8971119c9924 100644
--- a/pkgs/development/libraries/boost/1.75.nix
+++ b/pkgs/development/libraries/boost/1.75.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.75.0";
diff --git a/pkgs/development/libraries/boost/1.77.nix b/pkgs/development/libraries/boost/1.77.nix
index 3da1a455ead4b..72663044d9c93 100644
--- a/pkgs/development/libraries/boost/1.77.nix
+++ b/pkgs/development/libraries/boost/1.77.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.77.0";
diff --git a/pkgs/development/libraries/boost/1.78.nix b/pkgs/development/libraries/boost/1.78.nix
index 2cc818e63ce03..53a3f300a792b 100644
--- a/pkgs/development/libraries/boost/1.78.nix
+++ b/pkgs/development/libraries/boost/1.78.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.78.0";
diff --git a/pkgs/development/libraries/boost/1.79.nix b/pkgs/development/libraries/boost/1.79.nix
index 87975e2846d30..91e13edf2265a 100644
--- a/pkgs/development/libraries/boost/1.79.nix
+++ b/pkgs/development/libraries/boost/1.79.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.79.0";
diff --git a/pkgs/development/libraries/boost/1.80.nix b/pkgs/development/libraries/boost/1.80.nix
index 1aab51af78a74..79281cd1c70a0 100644
--- a/pkgs/development/libraries/boost/1.80.nix
+++ b/pkgs/development/libraries/boost/1.80.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.80.0";
diff --git a/pkgs/development/libraries/boost/1.81.nix b/pkgs/development/libraries/boost/1.81.nix
index 2376255303e29..3d8474f1df6ab 100644
--- a/pkgs/development/libraries/boost/1.81.nix
+++ b/pkgs/development/libraries/boost/1.81.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.81.0";
diff --git a/pkgs/development/libraries/boost/1.82.nix b/pkgs/development/libraries/boost/1.82.nix
index 193d07ef7562f..cf3a7fe3734c9 100644
--- a/pkgs/development/libraries/boost/1.82.nix
+++ b/pkgs/development/libraries/boost/1.82.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.82.0";
diff --git a/pkgs/development/libraries/boost/1.83.nix b/pkgs/development/libraries/boost/1.83.nix
index df5c5a5bbd31c..446c759d335f9 100644
--- a/pkgs/development/libraries/boost/1.83.nix
+++ b/pkgs/development/libraries/boost/1.83.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.83.0";
diff --git a/pkgs/development/libraries/boost/1.84.nix b/pkgs/development/libraries/boost/1.84.nix
index a55f55afaae0e..bfcfdfbfd7cfd 100644
--- a/pkgs/development/libraries/boost/1.84.nix
+++ b/pkgs/development/libraries/boost/1.84.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.84.0";
diff --git a/pkgs/development/libraries/boost/1.85.nix b/pkgs/development/libraries/boost/1.85.nix
index 2a3252d38c574..a95789800e1bd 100644
--- a/pkgs/development/libraries/boost/1.85.nix
+++ b/pkgs/development/libraries/boost/1.85.nix
@@ -1,4 +1,4 @@
-{ callPackage, fetchurl, fetchpatch, ... } @ args:
+{ callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
   version = "1.85.0";
diff --git a/pkgs/development/libraries/botan/2.0.nix b/pkgs/development/libraries/botan/2.0.nix
index 53b4e167a7d9b..c9a45218dfb4c 100644
--- a/pkgs/development/libraries/botan/2.0.nix
+++ b/pkgs/development/libraries/botan/2.0.nix
@@ -2,6 +2,6 @@
 
 callPackage ./generic.nix (args // {
   baseVersion = "2.19";
-  revision = "3";
-  hash = "sha256-2uBH85nFpH8IfbXT2dno8RrkmF0UySjXHaGv+AGALVU=";
+  revision = "4";
+  hash = "sha256-WjqI72Qz6XvKsO+h7WDGGX5K2p2dMLwcR0N7+JuX8nY=";
 })
diff --git a/pkgs/development/libraries/bullet/default.nix b/pkgs/development/libraries/bullet/default.nix
index 2dc3266291d36..dc0e1d304eea4 100644
--- a/pkgs/development/libraries/bullet/default.nix
+++ b/pkgs/development/libraries/bullet/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
     "-Wno-error=argument-outside-range -Wno-error=c++11-narrowing";
 
   meta = with lib; {
-    description = "A professional free 3D Game Multiphysics Library";
+    description = "Professional free 3D Game Multiphysics Library";
     longDescription = ''
       Bullet 3D Game Multiphysics Library provides state of the art collision
       detection, soft body and rigid body dynamics.
diff --git a/pkgs/development/libraries/bullet/roboschool-fork.nix b/pkgs/development/libraries/bullet/roboschool-fork.nix
index ac8433fc77ac3..7d601e8570014 100644
--- a/pkgs/development/libraries/bullet/roboschool-fork.nix
+++ b/pkgs/development/libraries/bullet/roboschool-fork.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A professional free 3D Game Multiphysics Library";
+    description = "Professional free 3D Game Multiphysics Library";
     longDescription = ''
       Bullet 3D Game Multiphysics Library provides state of the art collision
       detection, soft body and rigid body dynamics.
diff --git a/pkgs/development/libraries/bzrtp/default.nix b/pkgs/development/libraries/bzrtp/default.nix
index 6cbe6fc1899da..966190a655675 100644
--- a/pkgs/development/libraries/bzrtp/default.nix
+++ b/pkgs/development/libraries/bzrtp/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An opensource implementation of ZRTP keys exchange protocol. Part of the Linphone project.";
+    description = "Opensource implementation of ZRTP keys exchange protocol. Part of the Linphone project";
     homepage = "https://gitlab.linphone.org/BC/public/bzrtp";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/c-ares/default.nix b/pkgs/development/libraries/c-ares/default.nix
index 87b86036cff28..32184e9c6d38e 100644
--- a/pkgs/development/libraries/c-ares/default.nix
+++ b/pkgs/development/libraries/c-ares/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, writeTextDir
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook
 , withCMake ? true, cmake
 
 # sensitive downstream packages
@@ -16,13 +16,14 @@ stdenv.mkDerivation rec {
   version = "1.27.0";
 
   src = fetchurl {
-    url = "https://c-ares.org/download/${pname}-${version}.tar.gz";
+    # Note: tag name varies in some versions, e.g. v1.30.0, c-ares-1_17_0.
+    url = "https://github.com/c-ares/${pname}/releases/download/cares-${builtins.replaceStrings ["."] ["_"] version}/${pname}-${version}.tar.gz";
     hash = "sha256-CnK+ZpWZVcQ+KvL70DQY6Cor1UZGBOyaYhR+N6zrQgs=";
   };
 
   outputs = [ "out" "dev" "man" ];
 
-  nativeBuildInputs = lib.optionals withCMake [ cmake ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ] ++ lib.optionals withCMake [ cmake ];
 
   cmakeFlags = [] ++ lib.optionals stdenv.hostPlatform.isStatic [
     "-DCARES_SHARED=OFF"
@@ -37,7 +38,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C library for asynchronous DNS requests";
+    description = "C library for asynchronous DNS requests";
     homepage = "https://c-ares.haxx.se";
     changelog = "https://c-ares.org/changelog.html#${lib.replaceStrings [ "." ] [ "_" ] version}";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/c-blosc/1.nix b/pkgs/development/libraries/c-blosc/1.nix
index 0ed22a2620eef..5c6c97ec015cc 100644
--- a/pkgs/development/libraries/c-blosc/1.nix
+++ b/pkgs/development/libraries/c-blosc/1.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A blocking, shuffling and loss-less compression library";
+    description = "Blocking, shuffling and loss-less compression library";
     homepage = "https://www.blosc.org";
     changelog = "https://github.com/Blosc/c-blosc/releases/tag/v${finalAttrs.version}";
     pkgConfigModules = [
diff --git a/pkgs/development/libraries/c-blosc/2.nix b/pkgs/development/libraries/c-blosc/2.nix
index b49518bead1bb..1ea7c63213870 100644
--- a/pkgs/development/libraries/c-blosc/2.nix
+++ b/pkgs/development/libraries/c-blosc/2.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "c-blosc2";
-  version = "2.14.3";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "Blosc";
     repo = "c-blosc2";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-0rizBygyNW9Sr7qnQZoN/Wv2ZIAYuJTQ5tkW6iwIw7Y=";
+    sha256 = "sha256-XVxui3+IoygjU0I688Mtbof/kHLzpb0HMcVPbt3i7PQ=";
   };
 
   # https://github.com/NixOS/nixpkgs/issues/144170
@@ -58,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A fast, compressed, persistent binary data store library for C";
+    description = "Fast, compressed, persistent binary data store library for C";
     homepage = "https://www.blosc.org";
     changelog = "https://github.com/Blosc/c-blosc2/releases/tag/v${finalAttrs.version}";
     pkgConfigModules = [
diff --git a/pkgs/development/libraries/caf/default.nix b/pkgs/development/libraries/caf/default.nix
index ae7075cd80dfb..3879878e4779d 100644
--- a/pkgs/development/libraries/caf/default.nix
+++ b/pkgs/development/libraries/caf/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = with lib; {
-    description = "An open source implementation of the actor model in C++";
+    description = "Open source implementation of the actor model in C++";
     homepage = "http://actor-framework.org/";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cairo/default.nix b/pkgs/development/libraries/cairo/default.nix
index 7408a43272e97..28809ade8ae4a 100644
--- a/pkgs/development/libraries/cairo/default.nix
+++ b/pkgs/development/libraries/cairo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, gtk-doc, meson, ninja, pkg-config, python3
+{ lib, stdenv, fetchurl, gtk-doc, meson, ninja, pkg-config, python3
 , docbook_xsl, fontconfig, freetype, libpng, pixman, zlib
 , x11Support? !stdenv.isDarwin || true, libXext, libXrender
 , gobjectSupport ? true, glib
@@ -92,7 +92,7 @@ in {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A 2D graphics library with support for multiple output devices";
+    description = "2D graphics library with support for multiple output devices";
     mainProgram = "cairo-trace";
     longDescription = ''
       Cairo is a 2D graphics library with support for multiple output
diff --git a/pkgs/development/libraries/calcium/default.nix b/pkgs/development/libraries/calcium/default.nix
index f73ee91b4f77c..03e27e1fce152 100644
--- a/pkgs/development/libraries/calcium/default.nix
+++ b/pkgs/development/libraries/calcium/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A C library for exact computation with real and complex numbers";
+    description = "C library for exact computation with real and complex numbers";
     homepage = "https://fredrikj.net/calcium/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ smasher164 ];
diff --git a/pkgs/development/libraries/catboost/default.nix b/pkgs/development/libraries/catboost/default.nix
index 6da5885223a68..b4fa78a125265 100644
--- a/pkgs/development/libraries/catboost/default.nix
+++ b/pkgs/development/libraries/catboost/default.nix
@@ -22,13 +22,13 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "catboost";
-  version = "1.2.3";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "catboost";
     repo = "catboost";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-wn9STnpqX3zmdxPmMYAz9JPdg13Goux76CMaCiqohk8=";
+    hash = "sha256-2dfCCCa0LheytkLRbYuBd25M320f1kbhBWKIVjslor0=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/catch/default.nix b/pkgs/development/libraries/catch/default.nix
index c4d64a0f47878..e17bbbaf4b766 100644
--- a/pkgs/development/libraries/catch/default.nix
+++ b/pkgs/development/libraries/catch/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   checkTarget = "test";
 
   meta = with lib; {
-    description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
+    description = "Multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
     homepage = "http://catch-lib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ edwtjo knedlsepp ];
diff --git a/pkgs/development/libraries/catch2/3.nix b/pkgs/development/libraries/catch2/3.nix
index 403c4f729b059..cf0a0bf70fc1c 100644
--- a/pkgs/development/libraries/catch2/3.nix
+++ b/pkgs/development/libraries/catch2/3.nix
@@ -31,9 +31,12 @@ stdenv.mkDerivation rec {
     "-DCMAKE_CTEST_ARGUMENTS=-E;ApprovalTests"
   ];
 
-  # Tests fail on x86_32 if compiled with x87 floats: https://github.com/catchorg/Catch2/issues/2796
   env = lib.optionalAttrs stdenv.isx86_32 {
+    # Tests fail on x86_32 if compiled with x87 floats: https://github.com/catchorg/Catch2/issues/2796
     NIX_CFLAGS_COMPILE = "-msse2 -mfpmath=sse";
+  } // lib.optionalAttrs (stdenv.hostPlatform.isRiscV || stdenv.hostPlatform.isAarch32) {
+    # Build failure caused by -Werror: https://github.com/catchorg/Catch2/issues/2808
+    NIX_CFLAGS_COMPILE = "-Wno-error=cast-align";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/catch2/default.nix b/pkgs/development/libraries/catch2/default.nix
index 56b2016539be5..0f79f7679834d 100644
--- a/pkgs/development/libraries/catch2/default.nix
+++ b/pkgs/development/libraries/catch2/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-H.." ];
 
   meta = with lib; {
-    description = "A multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
+    description = "Multi-paradigm automated test framework for C++ and Objective-C (and, maybe, C)";
     homepage = "http://catch-lib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ edwtjo knedlsepp ];
diff --git a/pkgs/development/libraries/ccrtp/default.nix b/pkgs/development/libraries/ccrtp/default.nix
index 3fdbbd23ecdc5..5fa86a9589d48 100644
--- a/pkgs/development/libraries/ccrtp/default.nix
+++ b/pkgs/development/libraries/ccrtp/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "An implementation of the IETF real-time transport protocol (RTP)";
+    description = "Implementation of the IETF real-time transport protocol (RTP)";
     homepage = "https://www.gnu.org/software/ccrtp/";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ marcweber ];
diff --git a/pkgs/development/libraries/cddlib/default.nix b/pkgs/development/libraries/cddlib/default.nix
index 968f32a0af598..a170a0f92449e 100644
--- a/pkgs/development/libraries/cddlib/default.nix
+++ b/pkgs/development/libraries/cddlib/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   # Requested here: https://github.com/cddlib/cddlib/issues/25
   doCheck = true;
   meta = with lib; {
-    description = "An implementation of the Double Description Method for generating all vertices of a convex polyhedron";
+    description = "Implementation of the Double Description Method for generating all vertices of a convex polyhedron";
     license = licenses.gpl2Plus;
     maintainers = teams.sage.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cegui/default.nix b/pkgs/development/libraries/cegui/default.nix
index 1e884b3d8a81d..0a1fd07e25081 100644
--- a/pkgs/development/libraries/cegui/default.nix
+++ b/pkgs/development/libraries/cegui/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, writeShellScript
 , cmake
 , ogre
 , freetype
@@ -13,7 +14,7 @@
 
 stdenv.mkDerivation {
   pname = "cegui";
-  version = "unstable-2023-03-18";
+  version = "0-unstable-2023-03-18";
 
   src = fetchFromGitHub {
     owner = "paroj";
@@ -47,6 +48,12 @@ stdenv.mkDerivation {
 
   passthru.updateScript = unstableGitUpdater {
     branch = "v0";
+    # The above branch is separate from the branch with the latest tags, so the updater doesn't pick them up
+    # This is what would be used to handle upstream's format, if it was able to see the tags
+    # tagConverter = writeShellScript "cegui-tag-converter.sh" ''
+    #   sed -e 's/^v//g' -e 's/-/./g'
+    # '';
+    hardcodeZeroVersion = true;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/cereal/1.3.0.nix b/pkgs/development/libraries/cereal/1.3.0.nix
index ab438eb6a8bf8..d15e06d8598c3 100644
--- a/pkgs/development/libraries/cereal/1.3.0.nix
+++ b/pkgs/development/libraries/cereal/1.3.0.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://uscilab.github.io/cereal/";
-    description = "A header-only C++11 serialization library";
+    description = "Header-only C++11 serialization library";
     changelog = "https://github.com/USCiLab/cereal/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/cereal/1.3.2.nix b/pkgs/development/libraries/cereal/1.3.2.nix
index 5a44b26426c79..a8aced27cb261 100644
--- a/pkgs/development/libraries/cereal/1.3.2.nix
+++ b/pkgs/development/libraries/cereal/1.3.2.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 }:
 
@@ -22,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://uscilab.github.io/cereal/";
-    description = "A header-only C++11 serialization library";
+    description = "Header-only C++11 serialization library";
     changelog = "https://github.com/USCiLab/cereal/releases/tag/v${finalAttrs.version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/ceres-solver/default.nix b/pkgs/development/libraries/ceres-solver/default.nix
index 7052c98d8ef8f..da5afde02627a 100644
--- a/pkgs/development/libraries/ceres-solver/default.nix
+++ b/pkgs/development/libraries/ceres-solver/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchpatch
 , fetchurl
 , blas
 , cmake
diff --git a/pkgs/development/libraries/cgreen/default.nix b/pkgs/development/libraries/cgreen/default.nix
index 921eb6c797247..c6394a456efd9 100644
--- a/pkgs/development/libraries/cgreen/default.nix
+++ b/pkgs/development/libraries/cgreen/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/cgreen-devs/cgreen";
-    description = "The Modern Unit Test and Mocking Framework for C and C++";
+    description = "Modern Unit Test and Mocking Framework for C and C++";
     mainProgram = "cgreen-runner";
     license = lib.licenses.isc;
     maintainers = [ lib.maintainers.AndersonTorres ];
diff --git a/pkgs/development/libraries/cgui/default.nix b/pkgs/development/libraries/cgui/default.nix
index 1bc85d1fcd812..6c536ec576714 100644
--- a/pkgs/development/libraries/cgui/default.nix
+++ b/pkgs/development/libraries/cgui/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "SYSTEM_DIR=$(out)" ];
 
   meta = with lib; {
-    description = "A multiplatform basic GUI library";
+    description = "Multiplatform basic GUI library";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
     license = licenses.free;
diff --git a/pkgs/development/libraries/charls/default.nix b/pkgs/development/libraries/charls/default.nix
index 150806c8c77e7..f8591dc92bca5 100644
--- a/pkgs/development/libraries/charls/default.nix
+++ b/pkgs/development/libraries/charls/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/team-charls/charls";
-    description = "A JPEG-LS library implementation in C++";
+    description = "JPEG-LS library implementation in C++";
     maintainers = with maintainers; [ bcdarwin ];
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/chipmunk/default.nix b/pkgs/development/libraries/chipmunk/default.nix
index 599cf9cfcee20..1cb32dc8ee4b6 100644
--- a/pkgs/development/libraries/chipmunk/default.nix
+++ b/pkgs/development/libraries/chipmunk/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast and lightweight 2D game physics library";
+    description = "Fast and lightweight 2D game physics library";
     mainProgram = "chipmunk_demos";
     homepage = "http://chipmunk2d.net/";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/chmlib/default.nix b/pkgs/development/libraries/chmlib/default.nix
index bc609d7bbf17d..df65e78ff51fa 100644
--- a/pkgs/development/libraries/chmlib/default.nix
+++ b/pkgs/development/libraries/chmlib/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.jedrea.com/chmlib";
     license = licenses.lgpl2;
-    description = "A library for dealing with Microsoft ITSS/CHM format files";
+    description = "Library for dealing with Microsoft ITSS/CHM format files";
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/cista/default.nix b/pkgs/development/libraries/cista/default.nix
index e2f302b5812b3..7bc5590feddb2 100644
--- a/pkgs/development/libraries/cista/default.nix
+++ b/pkgs/development/libraries/cista/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://cista.rocks";
-    description = "A simple, high-performance, zero-copy C++ serialization & reflection library";
+    description = "Simple, high-performance, zero-copy C++ serialization & reflection library";
     license = licenses.mit;
     maintainers = [ maintainers.sigmanificient ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/cjson/default.nix b/pkgs/development/libraries/cjson/default.nix
index e6e09a7ffe3ba..38be1c30cd468 100644
--- a/pkgs/development/libraries/cjson/default.nix
+++ b/pkgs/development/libraries/cjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cjson";
-  version = "1.7.17";
+  version = "1.7.18";
 
   src = fetchFromGitHub {
     owner = "DaveGamble";
     repo = "cJSON";
     rev = "v${version}";
-    sha256 = "sha256-jU9UbXvdXiNXFh7c9p/LppMsuqryFK40NTTyQGbNU84=";
+    sha256 = "sha256-UgUWc/+Zie2QNijxKK5GFe4Ypk97EidG8nTiiHhn5Ys=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/clanlib/default.nix b/pkgs/development/libraries/clanlib/default.nix
index 7dfc2e0844687..ee9ee04aa62fd 100644
--- a/pkgs/development/libraries/clanlib/default.nix
+++ b/pkgs/development/libraries/clanlib/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sphair/ClanLib";
-    description = "A cross platform toolkit library with a primary focus on game creation";
+    description = "Cross platform toolkit library with a primary focus on game creation";
     license = licenses.mit;
     maintainers = with maintainers; [ nixinator ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/libraries/clap/default.nix b/pkgs/development/libraries/clap/default.nix
index e6c017cb7808f..1fc6d5a2d4207 100644
--- a/pkgs/development/libraries/clap/default.nix
+++ b/pkgs/development/libraries/clap/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "clap";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = "free-audio";
     repo = "clap";
     rev = finalAttrs.version;
-    hash = "sha256-BNT2yWIlWk8kzhZteh7TaamliwJI+lzWVs/8XCFsuUc=";
+    hash = "sha256-3VDl6hMSRFrMtYeiUMoZhJf0wkMxVs9ZELKJqLGYJ+g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/classads/default.nix b/pkgs/development/libraries/classads/default.nix
index 6fef10fe5d24e..bbe342d98198b 100644
--- a/pkgs/development/libraries/classads/default.nix
+++ b/pkgs/development/libraries/classads/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.cs.wisc.edu/condor/classad/";
-    description = "The Classified Advertisements library provides a generic means for matching resources";
+    description = "Classified Advertisements library provides a generic means for matching resources";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/clipper/default.nix b/pkgs/development/libraries/clipper/default.nix
index 929bf90d9c48a..8dc649b6b5fe5 100644
--- a/pkgs/development/libraries/clipper/default.nix
+++ b/pkgs/development/libraries/clipper/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ninja unzip ];
 
   meta = with lib; {
-    description = "A polygon and line clipping and offsetting library (C++, C#, Delphi)";
+    description = "Polygon and line clipping and offsetting library (C++, C#, Delphi)";
     longDescription = ''
       The Clipper library performs line & polygon clipping - intersection, union, difference & exclusive-or,
       and line & polygon offsetting. The library is based on Vatti's clipping algorithm.
diff --git a/pkgs/development/libraries/cminpack/default.nix b/pkgs/development/libraries/cminpack/default.nix
index bebb59334f154..20782c8499cb9 100644
--- a/pkgs/development/libraries/cminpack/default.nix
+++ b/pkgs/development/libraries/cminpack/default.nix
@@ -3,7 +3,6 @@
 , cmake
 , darwin
 , fetchFromGitHub
-, fetchurl
 , withBlas ? true, blas
 }:
 
diff --git a/pkgs/development/libraries/cmocka/default.nix b/pkgs/development/libraries/cmocka/default.nix
index 6c88d1baebfa8..9a7ea037785bf 100644
--- a/pkgs/development/libraries/cmocka/default.nix
+++ b/pkgs/development/libraries/cmocka/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, cmake }:
+{ fetchurl, lib, stdenv, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "cmocka";
diff --git a/pkgs/development/libraries/coeurl/default.nix b/pkgs/development/libraries/coeurl/default.nix
index b0743e032c6ea..580cd488c9fd2 100644
--- a/pkgs/development/libraries/coeurl/default.nix
+++ b/pkgs/development/libraries/coeurl/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libevent curl spdlog ];
 
   meta = with lib; {
-    description = "A simple async wrapper around CURL for C++";
+    description = "Simple async wrapper around CURL for C++";
     homepage = "https://nheko.im/nheko-reborn/coeurl";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/cogl/default.nix b/pkgs/development/libraries/cogl/default.nix
index 987d90e269955..b233113e951fd 100644
--- a/pkgs/development/libraries/cogl/default.nix
+++ b/pkgs/development/libraries/cogl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , pkg-config
 , libGL
 , glib
@@ -105,7 +104,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small open source library for using 3D graphics hardware for rendering";
+    description = "Small open source library for using 3D graphics hardware for rendering";
     maintainers = with maintainers; [ lovek323 ];
 
     longDescription = ''
diff --git a/pkgs/development/libraries/coin3d/default.nix b/pkgs/development/libraries/coin3d/default.nix
index 8c331a28dcb12..e1a5db9c0f19a 100644
--- a/pkgs/development/libraries/coin3d/default.nix
+++ b/pkgs/development/libraries/coin3d/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "coin";
-  version = "unstable-2022-07-27";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "coin3d";
     repo = "coin";
-    rev = "4c67945a58d2a6e5adb4d2332ab08007769130ef";
-    hash = "sha256-lXS7GxtoPsZe2SJfr0uY99Q0ZtYG0KFlauY1PBuFleo=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-tBegPZQme5McC0HGvjjdIBQQl59Ud4aJk2hONWMzEdc=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -25,8 +25,7 @@ stdenv.mkDerivation (finalAttrs: {
     boost
     libGL
     libGLU
-    libX11
-  ];
+  ] ++ lib.optional stdenv.isLinux libX11;
 
   cmakeFlags = [ "-DCOIN_USE_CPACK=OFF" ];
 
@@ -36,6 +35,6 @@ stdenv.mkDerivation (finalAttrs: {
     mainProgram = "coin-config";
     license = licenses.bsd3;
     maintainers = with maintainers; [ gebner viric ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 })
diff --git a/pkgs/development/libraries/comedilib/default.nix b/pkgs/development/libraries/comedilib/default.nix
index ab97ac09a57ec..95de887242bf5 100644
--- a/pkgs/development/libraries/comedilib/default.nix
+++ b/pkgs/development/libraries/comedilib/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" "man" "doc" ];
 
   meta = with lib; {
-    description = "The Linux Control and Measurement Device Interface Library";
+    description = "Linux Control and Measurement Device Interface Library";
     homepage = "https://github.com/Linux-Comedi/comedilib";
     license = licenses.lgpl21;
     maintainers = [ maintainers.doronbehar ];
diff --git a/pkgs/development/libraries/console-bridge/default.nix b/pkgs/development/libraries/console-bridge/default.nix
index 5c85bbd4a1968..f02ac839a3e02 100644
--- a/pkgs/development/libraries/console-bridge/default.nix
+++ b/pkgs/development/libraries/console-bridge/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake validatePkgConfig ];
 
   meta = with lib; {
-    description = "A ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages";
+    description = "ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages";
     homepage = "https://github.com/ros/console_bridge";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/development/libraries/coost/default.nix b/pkgs/development/libraries/coost/default.nix
deleted file mode 100644
index 7a259d44faf05..0000000000000
--- a/pkgs/development/libraries/coost/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  lib,
-  stdenv,
-  fetchFromGitHub,
-  cmake,
-  curl,
-  openssl,
-  gitUpdater,
-  withCurl ? true,
-  withOpenSSL ? true,
-}:
-
-stdenv.mkDerivation rec {
-  pname = "coost";
-  version = "3.0.0";
-
-  src = fetchFromGitHub {
-    owner = "idealvin";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-qpJh1yl0lYYszNHGo5Jkbzal2hnVzg7UUxiyg/Grva8=";
-  };
-
-  postPatch = ''
-    substituteInPlace cmake/coost.pc.in \
-      --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@ \
-      --replace '$'{prefix}/@CMAKE_INSTALL_INCLUDEDIR@ @CMAKE_INSTALL_FULL_INCLUDEDIR@ \
-  '';
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = lib.optional withCurl curl ++ lib.optional withOpenSSL openssl;
-
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=ON"
-  ] ++ lib.optional withCurl "-DWITH_LIBCURL=ON" ++ lib.optional withOpenSSL "-DWITH_OPENSSL=ON";
-
-  passthru.updateScript = gitUpdater { };
-
-  meta = with lib; {
-    description = "A tiny boost library in C++11";
-    homepage = "https://github.com/idealvin/coost";
-    license = licenses.mit;
-    maintainers = [ maintainers.sigmanificient ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/cpp-hocon/default.nix b/pkgs/development/libraries/cpp-hocon/default.nix
index fa4fd5fe6d5c3..0b34bd05c7dc5 100644
--- a/pkgs/development/libraries/cpp-hocon/default.nix
+++ b/pkgs/development/libraries/cpp-hocon/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A C++ port of the Typesafe Config library";
+    description = "C++ port of the Typesafe Config library";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index 49ebc34fbcf25..bc738ae976c99 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -3,24 +3,24 @@
 , fetchFromGitHub
 , cmake
 , cppunit
-, iconv
+, libiconv
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cpp-utilities";
-  version = "5.24.7";
+  version = "5.24.9";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "cpp-utilities";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-gfyvWnvUXgjocid0nvp3lWhdPb7MYm+1GJRP5RYInEY=";
+    sha256 = "sha256-L0F9CkA/yWl7YfJtSBvSGSLTh2g7loIlpZMiC/ACU2k=";
   };
 
   nativeBuildInputs = [ cmake ];
   nativeCheckInputs = [ cppunit ];
   buildInputs = lib.optionals stdenv.isDarwin [
-    iconv # needed on Darwin, see https://github.com/Martchus/cpp-utilities/issues/4
+    libiconv # needed on Darwin, see https://github.com/Martchus/cpp-utilities/issues/4
   ];
 
   cmakeFlags = ["-DBUILD_SHARED_LIBS=ON"];
diff --git a/pkgs/development/libraries/cracklib/default.nix b/pkgs/development/libraries/cracklib/default.nix
index 4c0badf3df7ce..44c615b38abcf 100644
--- a/pkgs/development/libraries/cracklib/default.nix
+++ b/pkgs/development/libraries/cracklib/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://github.com/cracklib/cracklib";
-    description = "A library for checking the strength of passwords";
+    description = "Library for checking the strength of passwords";
     license = licenses.lgpl21; # Different license for the wordlist: http://www.openwall.com/wordlists
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/criterion/default.nix b/pkgs/development/libraries/criterion/default.nix
deleted file mode 100644
index 9b3304f6012f2..0000000000000
--- a/pkgs/development/libraries/criterion/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, boxfort, meson, libcsptr, pkg-config, gettext
-, cmake, ninja, protobuf, libffi, libgit2, dyncall, nanomsg, nanopbMalloc
-, python3Packages }:
-
-stdenv.mkDerivation rec {
-  pname = "criterion";
-  version = "2.4.1";
-
-  src = fetchFromGitHub {
-    owner = "Snaipe";
-    repo = "Criterion";
-    rev = "v${version}";
-    sha256 = "KT1XvhT9t07/ubsqzrVUp4iKcpVc1Z+saGF4pm2RsgQ=";
-    fetchSubmodules = true;
-  };
-
-  nativeBuildInputs = [ meson ninja cmake pkg-config protobuf ];
-
-  buildInputs = [
-    boxfort.dev
-    dyncall
-    gettext
-    libcsptr
-    nanomsg
-    nanopbMalloc
-    libgit2
-    libffi
-  ];
-
-  nativeCheckInputs = with python3Packages; [ cram ];
-
-  doCheck = true;
-
-  postPatch = ''
-    patchShebangs ci/isdir.py src/protocol/gen-pb.py
-  '';
-
-  outputs = [ "dev" "out" ];
-
-  meta = with lib; {
-    description = "A cross-platform C and C++ unit testing framework for the 21th century";
-    homepage = "https://github.com/Snaipe/Criterion";
-    license = licenses.mit;
-    maintainers = with maintainers; [
-      thesola10
-      Yumasi
-    ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/croaring/default.nix b/pkgs/development/libraries/croaring/default.nix
index 5c1afcbf13658..88643c00195ae 100644
--- a/pkgs/development/libraries/croaring/default.nix
+++ b/pkgs/development/libraries/croaring/default.nix
@@ -1,28 +1,40 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "croaring";
-  version = "0.2.61";
+  version = "2.0.3";
 
   src = fetchFromGitHub {
     owner = "RoaringBitmap";
     repo = "CRoaring";
     rev = "v${version}";
-    sha256 = "14y8iwv6b6gg7hgs00yqg8rwx4vwbb1zs2s99lxa51zx9vp1alcn";
+    hash = "sha256-WaFyJ/6zstJ05e3vfrwhaZKQsjRAEvVTs688Hw0fr94=";
   };
 
-  patches = fetchpatch {
-    url = "https://github.com/RoaringBitmap/CRoaring/commit/8d8c60736f506b2b8f1c365148a8a541b26a55f2.patch";
-    sha256 = "1y2mbn4i8lj3lkn5s8zziyr9pl1fq9hndzz9c01dkv3s8sn7f55s";
-  };
+  # roaring.pc.in cannot handle absolute CMAKE_INSTALL_*DIRs, nor
+  # overridden CMAKE_INSTALL_FULL_*DIRs. With Nix, they are guaranteed
+  # to be absolute so the following patch suffices (see #144170).
+  patches = [ ./fix-pkg-config.patch ];
 
   nativeBuildInputs = [ cmake ];
 
+  doCheck = true;
+
+  preConfigure = ''
+    mkdir -p dependencies/.cache
+    ln -s ${fetchFromGitHub {
+      owner = "clibs";
+      repo = "cmocka";
+      rev = "f5e2cd7";
+      hash = "sha256-Oq0nFsZhl8IF7kQN/LgUq8VBy+P7gO98ep/siy5A7Js=";
+    }} dependencies/.cache/cmocka
+  '';
+
   meta = with lib; {
     description = "Compressed bitset library for C and C++";
-    homepage = "http://roaringbitmap.org/";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ orivej ];
+    homepage = "https://roaringbitmap.org/";
+    license = with licenses; [ asl20 mit ];
+    maintainers = [ maintainers.orivej ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/croaring/fix-pkg-config.patch b/pkgs/development/libraries/croaring/fix-pkg-config.patch
new file mode 100644
index 0000000000000..f5cfcf308cf8b
--- /dev/null
+++ b/pkgs/development/libraries/croaring/fix-pkg-config.patch
@@ -0,0 +1,14 @@
+diff --git a/roaring.pc.in b/roaring.pc.in
+index e3b2391..c29adc3 100644
+--- a/roaring.pc.in
++++ b/roaring.pc.in
+@@ -1,7 +1,7 @@
+ prefix=@CMAKE_INSTALL_PREFIX@
+ exec_prefix=${prefix}
+-libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@
+-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++libdir=@CMAKE_INSTALL_FULL_LIBDIR@
++includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
+ 
+ Name: roaring
+ Description: Roaring bitmap implementation in C
diff --git a/pkgs/development/libraries/crocoddyl/default.nix b/pkgs/development/libraries/crocoddyl/default.nix
index efba136122988..394efd6317d80 100644
--- a/pkgs/development/libraries/crocoddyl/default.nix
+++ b/pkgs/development/libraries/crocoddyl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , example-robot-data
 , pinocchio
@@ -11,14 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "crocoddyl";
-  version = "2.0.2";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "loco-3d";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    hash = "sha256-MsAXHfxLNlIK/PbtVTjvBN1Jk3dyGEkfpj3/98nExj4=";
+    hash = "sha256-SVV9sleDXLm2QJmNgL25XLHC3y5bfKab4GSlE8jbT8w=";
   };
 
   strictDeps = true;
@@ -51,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
   pythonImportsCheck = [
     "crocoddyl"
   ];
-  checkInputs = lib.optionals (pythonSupport) [
+  checkInputs = lib.optionals pythonSupport [
     python3Packages.scipy
   ];
 
diff --git a/pkgs/development/libraries/crossguid/default.nix b/pkgs/development/libraries/crossguid/default.nix
index e8d85ec23dd5c..2b98aca1d66d6 100644
--- a/pkgs/development/libraries/crossguid/default.nix
+++ b/pkgs/development/libraries/crossguid/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "crossguid";
-  version = "unstable-2019-05-29";
+  version = "0.2.2-unstable-2019-05-29";
 
   src = fetchFromGitHub {
     owner = "graeme-hill";
@@ -24,7 +24,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = lib.optional stdenv.isLinux libuuid;
 
-  passthru.updateScript = unstableGitUpdater { };
+  passthru.updateScript = unstableGitUpdater {
+    tagPrefix = "v";
+  };
 
   meta = with lib; {
     description = "Lightweight cross platform C++ GUID/UUID library";
diff --git a/pkgs/development/libraries/crypto++/default.nix b/pkgs/development/libraries/crypto++/default.nix
index 5030a185886de..741e9677f7102 100644
--- a/pkgs/development/libraries/crypto++/default.nix
+++ b/pkgs/development/libraries/crypto++/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "LDCONF=true" ];
 
   meta = with lib; {
-    description = "A free C++ class library of cryptographic schemes";
+    description = "Free C++ class library of cryptographic schemes";
     homepage = "https://cryptopp.com/";
     changelog = [
       "https://raw.githubusercontent.com/weidai11/cryptopp/CRYPTOPP_${underscoredVersion}/History.txt"
diff --git a/pkgs/development/libraries/ctpp2/default.nix b/pkgs/development/libraries/ctpp2/default.nix
index 5aac0850a74d2..2d3b07e5e01f2 100644
--- a/pkgs/development/libraries/ctpp2/default.nix
+++ b/pkgs/development/libraries/ctpp2/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails
 
   meta = with lib; {
-    description = "A high performance templating engine";
+    description = "High performance templating engine";
     homepage = "https://ctpp.havoc.ru/";
     maintainers = [ maintainers.robbinch ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/ctranslate2/default.nix b/pkgs/development/libraries/ctranslate2/default.nix
index 369630c81243a..c640d5f700e26 100644
--- a/pkgs/development/libraries/ctranslate2/default.nix
+++ b/pkgs/development/libraries/ctranslate2/default.nix
@@ -24,13 +24,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ctranslate2";
-  version = "4.2.1";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner = "OpenNMT";
     repo = "CTranslate2";
     rev = "v${version}";
-    hash = "sha256-Bg25HL7BDM+SHtM0m7mJ3mAdpFe4kefdiDx5Ek1pQBs=";
+    hash = "sha256-ApmGto9RzT8t49bsZVwk8aQnIau9sQyFvt9qnWKUGAE=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/ctre/default.nix b/pkgs/development/libraries/ctre/default.nix
index 0c7ef3796125c..e35e2d1244c67 100644
--- a/pkgs/development/libraries/ctre/default.nix
+++ b/pkgs/development/libraries/ctre/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ctre";
-  version = "3.8.1";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "hanickadot";
     repo = "compile-time-regular-expressions";
     rev = "v${version}";
-    hash = "sha256-EzAPIqdfktrZ+FTEzz52nRNnH7CG59ZE9Ww7qMkAAbY=";
+    hash = "sha256-Fmx8eKo4UHSYQa5RL70VmaogQj+ILVA1gfpaVE8+MlQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/ctypes_sh/default.nix b/pkgs/development/libraries/ctypes_sh/default.nix
index c06eff11aad0d..56b463087f3d3 100644
--- a/pkgs/development/libraries/ctypes_sh/default.nix
+++ b/pkgs/development/libraries/ctypes_sh/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib libffi elfutils libdwarf ];
 
   meta = with lib; {
-    description = "A foreign function interface for bash";
+    description = "Foreign function interface for bash";
     mainProgram = "ctypes.sh";
     homepage = "https://github.com/taviso/ctypes.sh";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/cyclonedds/default.nix b/pkgs/development/libraries/cyclonedds/default.nix
index 899249150b31c..bdea4b68138a6 100644
--- a/pkgs/development/libraries/cyclonedds/default.nix
+++ b/pkgs/development/libraries/cyclonedds/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cyclonedds";
-  version = "0.10.4";
+  version = "0.10.5";
 
   src = fetchFromGitHub {
     owner = "eclipse-cyclonedds";
     repo = "cyclonedds";
     rev = version;
-    sha256 = "sha256-LSCfQPyd/QOsrnLNbKb0OlCvmHi/2aDDhi8VeXpYb1w=";
+    sha256 = "sha256-MQVUZ7PkxauoPpfxlhhAtsKztMe9tcZOpOzshuz/eb8=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/dav1d/default.nix b/pkgs/development/libraries/dav1d/default.nix
index da1eecdabab3f..96d560b187855 100644
--- a/pkgs/development/libraries/dav1d/default.nix
+++ b/pkgs/development/libraries/dav1d/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A cross-platform AV1 decoder focused on speed and correctness";
+    description = "Cross-platform AV1 decoder focused on speed and correctness";
     longDescription = ''
       The goal of this project is to provide a decoder for most platforms, and
       achieve the highest speed possible to overcome the temporary lack of AV1
diff --git a/pkgs/development/libraries/db/db-4.8.nix b/pkgs/development/libraries/db/db-4.8.nix
index 81705374381e7..4d6029d6d8211 100644
--- a/pkgs/development/libraries/db/db-4.8.nix
+++ b/pkgs/development/libraries/db/db-4.8.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchurl, autoreconfHook, ... } @ args:
+{ lib, stdenv, fetchurl, autoreconfHook, targetPlatform, ... } @ args:
 
-import ./generic.nix (args // {
+import ./generic.nix (builtins.removeAttrs args ["targetPlatform"] // {
   version = "4.8.30";
   sha256 = "0ampbl2f0hb1nix195kz1syrqqxpmvnvnfvphambj7xjrl3iljg0";
   extraPatches = [
@@ -9,6 +9,8 @@ import ./generic.nix (args // {
     ./darwin-mutexes-4.8.patch
   ];
 
+  drvArgs.configureFlags = lib.optional (targetPlatform.useLLVM or false) "--with-mutex=POSIX/pthreads";
+
   drvArgs.hardeningDisable = [ "format" ];
   drvArgs.doCheck = false;
 })
diff --git a/pkgs/development/libraries/db/generic.nix b/pkgs/development/libraries/db/generic.nix
index d715c1ffc8b19..ddb4139e116d1 100644
--- a/pkgs/development/libraries/db/generic.nix
+++ b/pkgs/development/libraries/db/generic.nix
@@ -67,7 +67,8 @@ stdenv.mkDerivation (rec {
       (if compat185 then "--enable-compat185" else "--disable-compat185")
     ]
     ++ lib.optional dbmSupport "--enable-dbm"
-    ++ lib.optional stdenv.isFreeBSD "--with-pic";
+    ++ lib.optional stdenv.isFreeBSD "--with-pic"
+    ++ (drvArgs.configureFlags or []);
 
   preConfigure = ''
     cd build_unix
@@ -92,4 +93,4 @@ stdenv.mkDerivation (rec {
     license = license;
     platforms = platforms.unix;
   };
-} // drvArgs)
+} // builtins.removeAttrs drvArgs [ "configureFlags" ])
diff --git a/pkgs/development/libraries/dbxml/default.nix b/pkgs/development/libraries/dbxml/default.nix
index b6dcf908c4f92..f50b53d47e05c 100644
--- a/pkgs/development/libraries/dbxml/default.nix
+++ b/pkgs/development/libraries/dbxml/default.nix
@@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
     "--with-berkeleydb=${db62.out}"
     "--with-xerces=${xercesc}"
     "--with-xqilla=${xqilla}"
+    # code uses register storage specifier
+    "CXXFLAGS=-std=c++14"
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/dee/default.nix b/pkgs/development/libraries/dee/default.nix
index 4bece9069466c..14d8247f0a201 100644
--- a/pkgs/development/libraries/dee/default.nix
+++ b/pkgs/development/libraries/dee/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus";
+    description = "Library that uses DBus to provide objects allowing you to create Model-View-Controller type programs across DBus";
     mainProgram = "dee-tool";
     homepage = "https://launchpad.net/dee";
     license = licenses.lgpl3;
diff --git a/pkgs/development/libraries/directfb/default.nix b/pkgs/development/libraries/directfb/default.nix
index e7a7996d91f22..be6a2da6566c5 100644
--- a/pkgs/development/libraries/directfb/default.nix
+++ b/pkgs/development/libraries/directfb/default.nix
@@ -33,6 +33,13 @@ stdenv.mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/community/directfb/0002-Fix-musl-PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP-comp.patch?id=f8158258493fc0c3eb5de2302e40f4bc44ecfb09";
       sha256 = "sha256-j3+mcP6hV9LKuba1GOdcM1cZfmXuJtRgx4vE484jIns=";
     })
+    # This uses POSIX basename() while directfb expects GNU
+    # basename(), but the POSIX behaviour of modifying the input
+    # should be fine since directfb never uses the buffer afterwards.
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/directfb/fix-missing-basename.patch?id=bc049ae1bcf9ef3f66cd12a6fbb7ac4e917764b1";
+      hash = "sha256-BX/C8+nh2fovHx8vKXFqKzBtfiTKUcW2BUCsaDIhodc=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/directx-headers/default.nix b/pkgs/development/libraries/directx-headers/default.nix
index b15a6baa7cab5..061d18d15016a 100644
--- a/pkgs/development/libraries/directx-headers/default.nix
+++ b/pkgs/development/libraries/directx-headers/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, fetchFromGitHub, meson, ninja }:
 stdenv.mkDerivation rec {
   pname = "directx-headers";
-  version = "1.611.0";
+  version = "1.614.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "DirectX-Headers";
     rev = "v${version}";
-    hash = "sha256-HG2Zj8hvsgv8oeSDp1eK+1A5bvFL6oQIh5mMFWOFsvk=";
+    hash = "sha256-0LaN9D3cKVacMJhZCe9oxDPHpd1jdCAV0ImG2rSgnxc=";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/pkgs/development/libraries/discord-gamesdk/default.nix b/pkgs/development/libraries/discord-gamesdk/default.nix
deleted file mode 100644
index 86e1a70accdea..0000000000000
--- a/pkgs/development/libraries/discord-gamesdk/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ lib
-, stdenv
-, fetchzip
-, autoPatchelfHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "discord-gamesdk";
-  version = "3.2.1";
-
-  src = fetchzip {
-    url = "https://dl-game-sdk.discordapp.net/${version}/discord_game_sdk.zip";
-    sha256 = "sha256-83DgL9y3lHLLJ8vgL3EOVk2Tjcue64N+iuDj/UpSdLc=";
-    stripRoot = false;
-  };
-
-  outputs = [ "out" "dev" ];
-
-  buildInputs = [ (stdenv.cc.cc.libgcc or null) ];
-
-  nativeBuildInputs = [ autoPatchelfHook ];
-
-  installPhase =
-    let
-      processor = stdenv.hostPlatform.uname.processor;
-      sharedLibrary = stdenv.hostPlatform.extensions.sharedLibrary;
-    in
-    ''
-      runHook preInstall
-
-      install -Dm555 lib/${processor}/discord_game_sdk${sharedLibrary} $out/lib/discord_game_sdk${sharedLibrary}
-
-      install -Dm444 c/discord_game_sdk.h $dev/lib/include/discord_game_sdk.h
-
-      runHook postInstall
-    '';
-
-  meta = with lib; {
-    homepage = "https://discord.com/developers/docs/game-sdk/sdk-starter-guide";
-    description = "Library to allow other programs to interact with the Discord desktop application";
-    license = licenses.unfree;
-    maintainers = with maintainers; [ tomodachi94 ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" "x86_64-windows" ];
-  };
-}
diff --git a/pkgs/development/libraries/dleyna-connector-dbus/default.nix b/pkgs/development/libraries/dleyna-connector-dbus/default.nix
index a6983decf33f5..4cdd66ba9cfef 100644
--- a/pkgs/development/libraries/dleyna-connector-dbus/default.nix
+++ b/pkgs/development/libraries/dleyna-connector-dbus/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A D-Bus API for the dLeyna services";
+    description = "D-Bus API for the dLeyna services";
     homepage = "https://github.com/phako/dleyna-connector-dbus";
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/dleyna-core/default.nix b/pkgs/development/libraries/dleyna-core/default.nix
index 2f019977c89d4..c9bbae74611e2 100644
--- a/pkgs/development/libraries/dleyna-core/default.nix
+++ b/pkgs/development/libraries/dleyna-core/default.nix
@@ -32,6 +32,11 @@ stdenv.mkDerivation rec {
     gupnp
   ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=implicit-function-declaration"
+    "-Wno-error=int-conversion"
+  ]);
+
   meta = with lib; {
     description = "Library of utility functions that are used by the higher level dLeyna";
     homepage = "https://github.com/phako/dleyna-core";
diff --git a/pkgs/development/libraries/dlib/default.nix b/pkgs/development/libraries/dlib/default.nix
index e433ec46a3024..e7915ad652144 100644
--- a/pkgs/development/libraries/dlib/default.nix
+++ b/pkgs/development/libraries/dlib/default.nix
@@ -11,6 +11,7 @@
 , config
 , guiSupport ? false
 , libX11
+, enableShared ? !stdenv.hostPlatform.isStatic # dlib has a build system that forces the user to choose between either shared or static libraries. See https://github.com/davisking/dlib/issues/923#issuecomment-2175865174
 , sse4Support ? stdenv.hostPlatform.sse4_1Support
 , avxSupport ? stdenv.hostPlatform.avxSupport
 , cudaSupport ? config.cudaSupport
@@ -18,13 +19,13 @@
 }@inputs:
 (if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv).mkDerivation rec {
   pname = "dlib";
-  version = "19.24.2";
+  version = "19.24.4";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
     rev = "v${version}";
-    sha256 = "sha256-Z1fScuaIHjj2L1uqLIvsZ7ARKNjM+iaA8SAtWUTPFZk=";
+    sha256 = "sha256-1A/9u+ThtUtmmSwnFSn8S65Yavucl2X+o3bNYgew0Oc=";
   };
 
   postPatch = ''
@@ -32,6 +33,7 @@
   '';
 
   cmakeFlags = [
+    (lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
     (lib.cmakeBool "USE_SSE4_INSTRUCTIONS" sse4Support)
     (lib.cmakeBool "USE_AVX_INSTRUCTIONS" avxSupport)
     (lib.cmakeBool "DLIB_USE_CUDA" cudaSupport)
@@ -81,7 +83,7 @@
   };
 
   meta = with lib; {
-    description = "A general purpose cross-platform C++ machine learning library";
+    description = "General purpose cross-platform C++ machine learning library";
     homepage = "http://www.dlib.net";
     license = licenses.boost;
     maintainers = with maintainers; [ christopherpoole ];
diff --git a/pkgs/development/libraries/doctest/default.nix b/pkgs/development/libraries/doctest/default.nix
index 642cfa3052f71..1acddbbd12ec6 100644
--- a/pkgs/development/libraries/doctest/default.nix
+++ b/pkgs/development/libraries/doctest/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/doctest/doctest";
-    description = "The fastest feature-rich C++11/14/17/20 single-header testing framework";
+    description = "Fastest feature-rich C++11/14/17/20 single-header testing framework";
     platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/pkgs/development/libraries/dotconf/default.nix b/pkgs/development/libraries/dotconf/default.nix
index fed050f64b6ef..389ce72a68467 100644
--- a/pkgs/development/libraries/dotconf/default.nix
+++ b/pkgs/development/libraries/dotconf/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "dotconf";
-  version = "1.3";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "williamh";
     repo = "dotconf";
     rev = "v${version}";
-    sha256 = "1sc95hw5k2xagpafny0v35filmcn05k1ds5ghkldfpf6xw4hakp7";
+    sha256 = "sha256-6Du26Ffz08DLGg6uIiPi8Sgjf691MM2kn0qXe3oFeTw=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ ];
 
   meta = with lib; {
-    description = "A configuration parser library";
+    description = "Configuration parser library";
     maintainers = with maintainers; [ pSub ];
     homepage = "https://github.com/williamh/dotconf";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/drogon/default.nix b/pkgs/development/libraries/drogon/default.nix
index 3e155d6f2d902..1710d6046e338 100644
--- a/pkgs/development/libraries/drogon/default.nix
+++ b/pkgs/development/libraries/drogon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, jsoncpp, libossp_uuid, zlib, lib, fetchpatch
+{ stdenv, fetchFromGitHub, cmake, jsoncpp, libossp_uuid, zlib, lib
 # optional but of negligible size
 , openssl, brotli, c-ares
 # optional databases
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "drogon";
-  version = "1.9.3";
+  version = "1.9.4";
 
   src = fetchFromGitHub {
     owner = "drogonframework";
     repo = "drogon";
     rev = "v${finalAttrs.version}";
-    sha256 = "sha256-en8w8kda0ijg6b6s2WHxHfuGaa+p08928Jw57UBevDU=";
+    sha256 = "sha256-P6blu3EIBzmK1zikFPiV+tvFLfiQhK+cRdClQOhcBSU=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/libraries/dssi/default.nix b/pkgs/development/libraries/dssi/default.nix
index 322c689ba11a7..b3dad8e2018bc 100644
--- a/pkgs/development/libraries/dssi/default.nix
+++ b/pkgs/development/libraries/dssi/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "A plugin SDK for virtual instruments";
+    description = "Plugin SDK for virtual instruments";
     maintainers = with maintainers;
     [
       raskin
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index 343574f251a8b..c222b117fff94 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -1,8 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
-, substituteAll
 , cmake
 , ninja
 , openssl
diff --git a/pkgs/development/libraries/duckdb/versions.json b/pkgs/development/libraries/duckdb/versions.json
index de679be88599a..8ae8b4bc57d2c 100644
--- a/pkgs/development/libraries/duckdb/versions.json
+++ b/pkgs/development/libraries/duckdb/versions.json
@@ -1,5 +1,5 @@
 {
-  "version": "0.10.2",
-  "rev": "1601d94f94a7e0d2eb805a94803eb1e3afbbe4ed",
-  "hash": "sha256-CTZ90KJvLPQqu1FYciEWsxJbvybCjeBsi/12bkfVd9Q="
+  "version": "1.0.0",
+  "rev": "1f98600c2cf8722a6d2f2d805bb4af5e701319fc",
+  "hash": "sha256-bzFxWv8+Ac8vZLd2OWJyu4T0/0dc7wykdOORMpx92Ic="
 }
diff --git a/pkgs/development/libraries/eccodes/default.nix b/pkgs/development/libraries/eccodes/default.nix
index e8b58762f9208..1597375cf7694 100644
--- a/pkgs/development/libraries/eccodes/default.nix
+++ b/pkgs/development/libraries/eccodes/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eccodes";
-  version = "2.34.1";
+  version = "2.35.0";
 
   src = fetchurl {
     url = "https://confluence.ecmwf.int/download/attachments/45757960/eccodes-${version}-Source.tar.gz";
-    hash = "sha256-+bhoASLjzOwm5u0kqB8bxQ7Z8iMrQx4F5XNniqxNlzQ=";
+    hash = "sha256-FoiPtmebHiQfULafMArFASSjGSNCri6pA9diG2ZOeeo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/edencommon/default.nix b/pkgs/development/libraries/edencommon/default.nix
index 0690f0f12ebdf..97406f81c47ae 100644
--- a/pkgs/development/libraries/edencommon/default.nix
+++ b/pkgs/development/libraries/edencommon/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A shared library for Meta's source control filesystem tools (EdenFS and Watchman)";
+    description = "Shared library for Meta's source control filesystem tools (EdenFS and Watchman)";
     homepage = "https://github.com/facebookexperimental/edencommon";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/editline/default.nix b/pkgs/development/libraries/editline/default.nix
index 4f891a24f1f0a..3571554559c78 100644
--- a/pkgs/development/libraries/editline/default.nix
+++ b/pkgs/development/libraries/editline/default.nix
@@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  configureFlags = [ (lib.enableFeature true "sigstop") ];
+
   nativeBuildInputs = [ autoreconfHook ];
 
   outputs = [ "out" "dev" "man" "doc" ];
@@ -34,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://troglobit.com/projects/editline/";
-    description = "A readline() replacement for UNIX without termcap (ncurses)";
+    description = "Readline() replacement for UNIX without termcap (ncurses)";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ dtzWill oxalica ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/egl-wayland/default.nix b/pkgs/development/libraries/egl-wayland/default.nix
index f84b44007e299..7291ff8f8e9d3 100644
--- a/pkgs/development/libraries/egl-wayland/default.nix
+++ b/pkgs/development/libraries/egl-wayland/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , eglexternalplatform
 , pkg-config
 , meson
@@ -57,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The EGLStream-based Wayland external platform";
+    description = "EGLStream-based Wayland external platform";
     homepage = "https://github.com/NVIDIA/egl-wayland/";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/eglexternalplatform/default.nix b/pkgs/development/libraries/eglexternalplatform/default.nix
index 2845faa9d0884..50e2763722740 100644
--- a/pkgs/development/libraries/eglexternalplatform/default.nix
+++ b/pkgs/development/libraries/eglexternalplatform/default.nix
@@ -31,7 +31,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The EGL External Platform interface";
+    description = "EGL External Platform interface";
     homepage = "https://github.com/NVIDIA/eglexternalplatform";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/elf-header/default.nix b/pkgs/development/libraries/elf-header/default.nix
index 72166bb38ce99..4953251d4af6d 100644
--- a/pkgs/development/libraries/elf-header/default.nix
+++ b/pkgs/development/libraries/elf-header/default.nix
@@ -33,7 +33,7 @@ stdenvNoCC.mkDerivation {
 
   meta = libc.meta // {
     outputsToInstall = [ "out" ];
-    description = "The datastructures of ELF according to the target platform's libc";
+    description = "Datastructures of ELF according to the target platform's libc";
     longDescription = ''
       The Executable and Linkable Format (ELF, formerly named Extensible Linking
       Format), is usually defined in a header like this.
diff --git a/pkgs/development/libraries/enchant/2.x.nix b/pkgs/development/libraries/enchant/2.x.nix
index 383a157acbd14..2fa7aec062f36 100644
--- a/pkgs/development/libraries/enchant/2.x.nix
+++ b/pkgs/development/libraries/enchant/2.x.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "enchant";
-  version = "2.6.8";
+  version = "2.6.9";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    hash = "sha256-9WWSMGLHfz1YhG8FWNIebQfKSkiMWIEt/e+zUgL6x64=";
+    hash = "sha256-2aWhDcmzikOzoPoix27W67fgnrU1r/YpVK/NvUDv/2s=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/enet/default.nix b/pkgs/development/libraries/enet/default.nix
index 53aec96fe705b..cb57f5a2f07e0 100644
--- a/pkgs/development/libraries/enet/default.nix
+++ b/pkgs/development/libraries/enet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "enet";
-  version = "1.3.17";
+  version = "1.3.18";
 
   src = fetchurl {
     url = "http://enet.bespin.org/download/${pname}-${version}.tar.gz";
-    sha256 = "1p6f9mby86af6cs7pv6h48032ip9g32c05cb7d9mimam8lchz3x3";
+    sha256 = "sha256-KooMU2DWi7T80R8uTEfGmXbo0shbEJ3X1gsRgaT4XTY=";
   };
 
   meta = {
diff --git a/pkgs/development/libraries/entt/default.nix b/pkgs/development/libraries/entt/default.nix
index 8649757b6edae..ae2e8f0263d4e 100644
--- a/pkgs/development/libraries/entt/default.nix
+++ b/pkgs/development/libraries/entt/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/skypjack/entt";
-    description = "A header-only, tiny and easy to use library for game programming and much more written in modern C++";
+    description = "Header-only, tiny and easy to use library for game programming and much more written in modern C++";
     maintainers = with maintainers; [ twey ];
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/pkgs/development/libraries/epoll-shim/default.nix b/pkgs/development/libraries/epoll-shim/default.nix
deleted file mode 100644
index d303f814b2718..0000000000000
--- a/pkgs/development/libraries/epoll-shim/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "epoll-shim";
-  version = "0.0.20230411";
-
-  src = fetchFromGitHub {
-    owner = "jiixyj";
-    repo = finalAttrs.pname;
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-TOfybtUEp+EtY2l/UGwVFIESDe9kELJCZHlcz22Cmi8=";
-  };
-
-  nativeBuildInputs = [
-    cmake
-  ];
-
-  cmakeFlags = [
-    "-DCMAKE_INSTALL_PKGCONFIGDIR=${placeholder "out"}/lib/pkgconfig"
-    "-DBUILD_TESTING=${lib.boolToString finalAttrs.finalPackage.doCheck}"
-  ];
-
-  # https://github.com/jiixyj/epoll-shim/issues/41
-  # https://github.com/jiixyj/epoll-shim/pull/34
-  doCheck = !stdenv.isDarwin;
-
-  meta = with lib; {
-    description = "Small epoll implementation using kqueue";
-    homepage = "https://github.com/jiixyj/epoll-shim";
-    license = licenses.mit;
-    platforms = platforms.darwin ++ platforms.freebsd ++ platforms.netbsd ++ platforms.openbsd;
-    maintainers = with maintainers; [ wegank ];
-  };
-})
diff --git a/pkgs/development/libraries/example-robot-data/default.nix b/pkgs/development/libraries/example-robot-data/default.nix
index b2e665bbc4a92..67e1de59891d0 100644
--- a/pkgs/development/libraries/example-robot-data/default.nix
+++ b/pkgs/development/libraries/example-robot-data/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , pythonSupport ? false
 , python3Packages
@@ -20,6 +21,16 @@ stdenv.mkDerivation (finalAttrs: {
 
   strictDeps = true;
 
+  patches = [
+    # Temporary patch for pinocchio v3.0.0 compatibility.
+    # Should be removed on next example-robot-data release
+    (fetchpatch {
+      name = "pin3.patch";
+      url = "https://github.com/Gepetto/example-robot-data/pull/217/commits/a605ceec857005cde153ec5895e227205eb7a5c3.patch";
+      hash = "sha256-cvAWFytrU2XVggo/nCg8cuLcaZBTACXg6LxjL/6YMPs=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -42,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "Set of robot URDFs for benchmarking and developed examples.";
+    description = "Set of robot URDFs for benchmarking and developed examples";
     homepage = "https://github.com/Gepetto/example-robot-data";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nim65s wegank ];
diff --git a/pkgs/development/libraries/exempi/default.nix b/pkgs/development/libraries/exempi/default.nix
index e79bc61698025..96d8d1db7a9ac 100644
--- a/pkgs/development/libraries/exempi/default.nix
+++ b/pkgs/development/libraries/exempi/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An implementation of XMP (Adobe's Extensible Metadata Platform)";
+    description = "Implementation of XMP (Adobe's Extensible Metadata Platform)";
     mainProgram = "exempi";
     homepage = "https://libopenraw.freedesktop.org/exempi/";
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/exiv2/default.nix b/pkgs/development/libraries/exiv2/default.nix
index 0ef833b8aa234..b32bffb2b575f 100644
--- a/pkgs/development/libraries/exiv2/default.nix
+++ b/pkgs/development/libraries/exiv2/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , doxygen
 , gettext
@@ -97,7 +96,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://exiv2.org";
-    description = "A library and command-line utility to manage image metadata";
+    description = "Library and command-line utility to manage image metadata";
     mainProgram = "exiv2";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/expat/default.nix b/pkgs/development/libraries/expat/default.nix
index 9944277e946b6..bb97ca8728e0b 100644
--- a/pkgs/development/libraries/expat/default.nix
+++ b/pkgs/development/libraries/expat/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 # for passthru.tests
 , python3
 , perlPackages
@@ -29,6 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   strictDeps = true;
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   outputs = [ "out" "dev" ]; # TODO: fix referrers
   outputBin = "dev";
@@ -67,7 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     changelog = "https://github.com/libexpat/libexpat/blob/${tag}/expat/Changes";
     homepage = "https://libexpat.github.io/";
-    description = "A stream-oriented XML parser library written in C";
+    description = "Stream-oriented XML parser library written in C";
     mainProgram = "xmlwf";
     platforms = platforms.all;
     license = licenses.mit; # expat version
diff --git a/pkgs/development/libraries/expected-lite/default.nix b/pkgs/development/libraries/expected-lite/default.nix
index 5b5fc620795c7..a0d5d1a509b9b 100644
--- a/pkgs/development/libraries/expected-lite/default.nix
+++ b/pkgs/development/libraries/expected-lite/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "expected-lite";
-  version = "0.6.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "martinmoene";
     repo = "expected-lite";
     rev = "v${version}";
-    hash = "sha256-Qvu/YmkivfXVGM4ZPLVt3XmOEnKWcmHpbb9xJyC2qDQ=";
+    hash = "sha256-8Lf+R7wC7f2YliXqhR6pwVVSLZ6qheu7YOV5jHc0Cjc=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/libraries/exprtk/default.nix b/pkgs/development/libraries/exprtk/default.nix
index 8dc4f7598abd6..1d917f6de6ed1 100644
--- a/pkgs/development/libraries/exprtk/default.nix
+++ b/pkgs/development/libraries/exprtk/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The C++ Mathematical Expression Toolkit Library";
+    description = "C++ Mathematical Expression Toolkit Library";
     homepage = "https://www.partow.net/programming/exprtk/index.html";
     license = licenses.mit;
     maintainers = with maintainers; [ anselmschueler ];
diff --git a/pkgs/development/libraries/faac/default.nix b/pkgs/development/libraries/faac/default.nix
index 42f1f8db59bb0..c1dba7c34bda3 100644
--- a/pkgs/development/libraries/faac/default.nix
+++ b/pkgs/development/libraries/faac/default.nix
@@ -1,10 +1,8 @@
 { lib, stdenv, fetchurl, autoreconfHook
-, mp4v2Support ? true, mp4v2 ? null
+, mp4v2Support ? true, mp4v2
 , drmSupport ? false # Digital Radio Mondiale
 }:
 
-assert mp4v2Support -> (mp4v2 != null);
-
 stdenv.mkDerivation rec {
   pname = "faac";
   version = "1.30";
@@ -14,21 +12,20 @@ stdenv.mkDerivation rec {
     sha256 = "1lmj0dib3mjp84jhxc5ddvydkzzhb0gfrdh3ikcidjlcb378ghxd";
   };
 
-  configureFlags = [ ]
-    ++ lib.optional mp4v2Support "--with-external-mp4v2"
+  configureFlags = lib.optional mp4v2Support "--with-external-mp4v2"
     ++ lib.optional drmSupport "--enable-drm";
 
   hardeningDisable = [ "format" ];
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  buildInputs = [ ]
-    ++ lib.optional mp4v2Support mp4v2;
+  buildInputs = lib.optional mp4v2Support mp4v2;
 
   enableParallelBuilding = true;
 
   meta = with lib; {
     description = "Open source MPEG-4 and MPEG-2 AAC encoder";
+    homepage = "https://github.com/knik0/faac";
     license     = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ codyopel ];
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/faad2/default.nix b/pkgs/development/libraries/faad2/default.nix
index 12179dd7e2a8e..c4b236786057d 100644
--- a/pkgs/development/libraries/faad2/default.nix
+++ b/pkgs/development/libraries/faad2/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open source MPEG-4 and MPEG-2 AAC decoder";
+    description = "Open source MPEG-4 and MPEG-2 AAC decoder";
     homepage = "https://sourceforge.net/projects/faac/";
     license     = licenses.gpl2Plus;
     maintainers = with maintainers; [ codyopel ];
diff --git a/pkgs/development/libraries/fast-cpp-csv-parser/default.nix b/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
index 5a81e3f727463..a30aacee26e5d 100644
--- a/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
+++ b/pkgs/development/libraries/fast-cpp-csv-parser/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small, easy-to-use and fast header-only library for reading comma separated value (CSV) files";
+    description = "Small, easy-to-use and fast header-only library for reading comma separated value (CSV) files";
     homepage = "https://github.com/ben-strasser/fast-cpp-csv-parser";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bhipple ];
diff --git a/pkgs/development/libraries/fastjson/default.nix b/pkgs/development/libraries/fastjson/default.nix
index 8cf571e2c9316..1e8791f10419b 100644
--- a/pkgs/development/libraries/fastjson/default.nix
+++ b/pkgs/development/libraries/fastjson/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fast json library for C";
+    description = "Fast json library for C";
     homepage = "https://github.com/rsyslog/libfastjson";
     license = licenses.mit;
     maintainers = with maintainers; [ nequissimus ];
diff --git a/pkgs/development/libraries/fastpbkdf2/default.nix b/pkgs/development/libraries/fastpbkdf2/default.nix
index 723edd6f29d40..226d4d1a9e11a 100644
--- a/pkgs/development/libraries/fastpbkdf2/default.nix
+++ b/pkgs/development/libraries/fastpbkdf2/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A fast PBKDF2-HMAC-{SHA1,SHA256,SHA512} implementation in C";
+    description = "Fast PBKDF2-HMAC-{SHA1,SHA256,SHA512} implementation in C";
     homepage = "https://github.com/ctz/fastpbkdf2";
     license = licenses.cc0;
     maintainers = with maintainers; [ ledif ];
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index fc71ced98101b..41775b0a9a538 100644
--- a/pkgs/development/libraries/faudio/default.nix
+++ b/pkgs/development/libraries/faudio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "faudio";
-  version = "24.04";
+  version = "24.06";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "sha256-DuQG5AsfLtWHVun9P8iiBqp3xtb67feC5b2gveIRqpA=";
+    sha256 = "sha256-na2aTcxrS8vHTw80zCAefY8zEQ9EMD/iTQp9l4wkIrI=";
   };
 
   nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/fb303/default.nix b/pkgs/development/libraries/fb303/default.nix
index 6c50819ef1468..059e666027a01 100644
--- a/pkgs/development/libraries/fb303/default.nix
+++ b/pkgs/development/libraries/fb303/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "a base Thrift service and a common set of functionality for querying stats, options, and other information from a service";
+    description = "Base Thrift service and a common set of functionality for querying stats, options, and other information from a service";
     homepage = "https://github.com/facebook/fb303";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/fbjni/default.nix b/pkgs/development/libraries/fbjni/default.nix
index 20d47cac1fa31..cb0d766a90da5 100644
--- a/pkgs/development/libraries/fbjni/default.nix
+++ b/pkgs/development/libraries/fbjni/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library designed to simplify the usage of the Java Native Interface";
+    description = "Library designed to simplify the usage of the Java Native Interface";
     homepage = "https://github.com/facebookincubator/fbjni";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/libraries/fcgi/default.nix b/pkgs/development/libraries/fcgi/default.nix
index 5c7f0c44f91c9..d59fac5ff4dc9 100644
--- a/pkgs/development/libraries/fcgi/default.nix
+++ b/pkgs/development/libraries/fcgi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "fcgi";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   postInstall = "ln -s . $out/include/fastcgi";
 
   meta = with lib; {
-    description = "A language independent, scalable, open extension to CG";
+    description = "Language independent, scalable, open extension to CG";
     homepage = "https://fastcgi-archives.github.io/"; # Formerly http://www.fastcgi.com/
     license = "FastCGI see LICENSE.TERMS";
     mainProgram = "cgi-fcgi";
diff --git a/pkgs/development/libraries/fcl/default.nix b/pkgs/development/libraries/fcl/default.nix
index 4e13a3f7113f3..0c6790db9f702 100644
--- a/pkgs/development/libraries/fcl/default.nix
+++ b/pkgs/development/libraries/fcl/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, eigen, libccd, octomap }:
+{ lib, stdenv, fetchFromGitHub, cmake, eigen, libccd, octomap }:
 
 stdenv.mkDerivation rec {
   pname = "fcl";
diff --git a/pkgs/development/libraries/fdk-aac/default.nix b/pkgs/development/libraries/fdk-aac/default.nix
index 0b07b5704916e..8f8611ccf6a11 100644
--- a/pkgs/development/libraries/fdk-aac/default.nix
+++ b/pkgs/development/libraries/fdk-aac/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = lib.optional exampleSupport "--enable-example";
 
   meta = with lib; {
-    description = "A high-quality implementation of the AAC codec from Android";
+    description = "High-quality implementation of the AAC codec from Android";
     homepage = "https://sourceforge.net/projects/opencore-amr/";
     license = licenses.fraunhofer-fdk;
     maintainers = with maintainers; [ codyopel ];
diff --git a/pkgs/development/libraries/ffmpeg/default.nix b/pkgs/development/libraries/ffmpeg/default.nix
index 6da6713a7f79b..5bd9171275bee 100644
--- a/pkgs/development/libraries/ffmpeg/default.nix
+++ b/pkgs/development/libraries/ffmpeg/default.nix
@@ -32,8 +32,8 @@ let
   };
 
   v7 = {
-    version = "7.0";
-    hash = "sha256-RdDfv+0y90XpgjIRvTjsemKyGunzDbsh4j4WiE9rfyM=";
+    version = "7.0.1";
+    hash = "sha256-HiCT6bvLx4zmJ6ffutoimdz5ENQ55CRF64WBT3HeXMA=";
   };
 in
 
diff --git a/pkgs/development/libraries/ffmpeg/generic.nix b/pkgs/development/libraries/ffmpeg/generic.nix
index bdc0cdd5ffa4c..7496cb4de0e76 100644
--- a/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/pkgs/development/libraries/ffmpeg/generic.nix
@@ -40,12 +40,14 @@
 , withAss ? withHeadlessDeps && stdenv.hostPlatform == stdenv.buildPlatform # (Advanced) SubStation Alpha subtitle rendering
 , withAudioToolbox ? withHeadlessDeps && stdenv.isDarwin # Apple AudioToolbox
 , withAvFoundation ? withHeadlessDeps && stdenv.isDarwin # Apple AVFoundation framework
+, withAvisynth ? withFullDeps # AviSynth script files reading
 , withBluray ? withFullDeps # BluRay reading
 , withBs2b ? withFullDeps # bs2b DSP library
 , withBzlib ? withHeadlessDeps
 , withCaca ? withFullDeps # Textual display (ASCII art)
 , withCelt ? withFullDeps # CELT decoder
 , withChromaprint ? withFullDeps # Audio fingerprinting
+, withCodec2 ? withFullDeps # codec2 en/decoding
 , withCoreImage ? withHeadlessDeps && stdenv.isDarwin # Apple CoreImage framework
 , withCuda ? withFullDeps && withNvcodec
 , withCudaLLVM ? withFullDeps
@@ -68,6 +70,7 @@
 , withHarfbuzz ? withHeadlessDeps && lib.versionAtLeast version "6.1" # Needed for drawtext filter
 , withIconv ? withHeadlessDeps
 , withJack ? withFullDeps && !stdenv.isDarwin # Jack audio
+, withJxl ? withFullDeps && lib.versionAtLeast version "5" # JPEG XL de/encoding
 , withLadspa ? withFullDeps # LADSPA audio filtering
 , withLzma ? withHeadlessDeps # xz-utils
 , withMfx ? withFullDeps && (with stdenv.hostPlatform; isLinux && !isAarch) # Hardware acceleration via intel-media-sdk/libmfx
@@ -211,9 +214,11 @@
  *  External libraries options
  */
 , alsa-lib
+, avisynthplus
 , bzip2
 , celt
 , chromaprint
+, codec2
 , clang
 , dav1d
 , fdk_aac
@@ -243,6 +248,7 @@
 , libGLU
 , libiconv
 , libjack2
+, libjxl
 , libmodplug
 , libmysofa
 , libogg
@@ -415,6 +421,28 @@ stdenv.mkDerivation (finalAttrs: {
         '';
       }
     ]
+    ++ (lib.optionals (lib.versionAtLeast version "5" && lib.versionOlder version "6") [
+      {
+        name = "fix_build_failure_due_to_libjxl_version_to_new";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/75b1a555a70c178a9166629e43ec2f6250219eb2";
+        hash = "sha256-+2kzfPJf5piim+DqEgDuVEEX5HLwRsxq0dWONJ4ACrU=";
+      }
+      {
+        name = "5.x-CVE-2024-31585.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/8711cea3841fc385cccb1e7255176479e865cd4d";
+        hash = "sha256-WT+ly/l04yM/tRVbhkESA3sDDjwvtd/Cg2y8tQo4ApI=";
+      }
+      {
+        name = "CVE-2024-31582.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/99debe5f823f45a482e1dc08de35879aa9c74bd2";
+        hash = "sha256-+CQ9FXR6Vr/AmsbXFiCUXZcxKj1s8nInEdke/Oc/kUA=";
+      }
+      {
+        name = "CVE-2024-31578.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/3bb00c0a420c3ce83c6fafee30270d69622ccad7";
+        hash = "sha256-oZMZysBA+/gwaGEM1yvI+8wCadXWE7qLRL6Emap3b8Q=";
+      }
+    ])
     ++ (lib.optionals (lib.versionAtLeast version "6.1" && lib.versionOlder version "6.2") [
       { # this can be removed post 6.1
         name = "fix_build_failure_due_to_PropertyKey_EncoderID";
@@ -426,8 +454,18 @@ stdenv.mkDerivation (finalAttrs: {
         url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/e06ce6d2b45edac4a2df04f304e18d4727417d24";
         hash = "sha256-73mlX1rdJrguw7OXaSItfHtI7gflDrFj+7SepVvvUIg=";
       }
+      {
+        name = "CVE-2024-31582.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/99debe5f823f45a482e1dc08de35879aa9c74bd2";
+        hash = "sha256-+CQ9FXR6Vr/AmsbXFiCUXZcxKj1s8nInEdke/Oc/kUA=";
+      }
+      {
+        name = "CVE-2024-31578.patch";
+        url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/3bb00c0a420c3ce83c6fafee30270d69622ccad7";
+        hash = "sha256-oZMZysBA+/gwaGEM1yvI+8wCadXWE7qLRL6Emap3b8Q=";
+      }
     ])
-    ++ (lib.optionals (lib.versionAtLeast version "7.0") [
+    ++ (lib.optionals (lib.versionAtLeast version "7.0" && lib.versionOlder version "7.0.1") [
       {
         # Will likely be obsolete in >7.0
         name = "fate_avoid_dependency_on_samples";
@@ -527,12 +565,14 @@ stdenv.mkDerivation (finalAttrs: {
     (enableFeature withAss "libass")
     (enableFeature withAudioToolbox "audiotoolbox")
     (enableFeature withAvFoundation "avfoundation")
+    (enableFeature withAvisynth "avisynth")
     (enableFeature withBluray "libbluray")
     (enableFeature withBs2b "libbs2b")
     (enableFeature withBzlib "bzlib")
     (enableFeature withCaca "libcaca")
     (enableFeature withCelt "libcelt")
     (enableFeature withChromaprint "chromaprint")
+    (enableFeature withCodec2 "libcodec2")
     (enableFeature withCoreImage "coreimage")
     (enableFeature withCuda "cuda")
     (enableFeature withCudaLLVM "cuda-llvm")
@@ -560,6 +600,9 @@ stdenv.mkDerivation (finalAttrs: {
   ] ++ [
     (enableFeature withIconv "iconv")
     (enableFeature withJack "libjack")
+  ] ++ optionals (versionAtLeast finalAttrs.version "5.0") [
+    (enableFeature withJxl "libjxl")
+  ] ++ [
     (enableFeature withLadspa "ladspa")
     (enableFeature withLzma "lzma")
     (enableFeature withMfx "libmfx")
@@ -671,12 +714,14 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withAss [ libass ]
   ++ optionals withAudioToolbox [ AudioToolbox ]
   ++ optionals withAvFoundation [ AVFoundation ]
+  ++ optionals withAvisynth [ avisynthplus ]
   ++ optionals withBluray [ libbluray ]
   ++ optionals withBs2b [ libbs2b ]
   ++ optionals withBzlib [ bzip2 ]
   ++ optionals withCaca [ libcaca ]
   ++ optionals withCelt [ celt ]
   ++ optionals withChromaprint [ chromaprint ]
+  ++ optionals withCodec2 [ codec2 ]
   ++ optionals withCoreImage [ CoreImage ]
   ++ optionals withDav1d [ dav1d ]
   ++ optionals withDc1394 [ libdc1394 libraw1394 ]
@@ -696,6 +741,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ optionals withHarfbuzz [ harfbuzz ]
   ++ optionals withIconv [ libiconv ] # On Linux this should be in libc, do we really need it?
   ++ optionals withJack [ libjack2 ]
+  ++ optionals withJxl [ libjxl ]
   ++ optionals withLadspa [ ladspaH ]
   ++ optionals withLzma [ xz ]
   ++ optionals withMfx [ intel-media-sdk ]
@@ -804,7 +850,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A complete, cross-platform solution to record, convert and stream audio and video";
+    description = "Complete, cross-platform solution to record, convert and stream audio and video";
     homepage = "https://www.ffmpeg.org/";
     changelog = "https://github.com/FFmpeg/FFmpeg/blob/n${version}/Changelog";
     longDescription = ''
diff --git a/pkgs/development/libraries/ffmpegthumbnailer/default.nix b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
index 47e3c3ed42c74..10e9b70d42ede 100644
--- a/pkgs/development/libraries/ffmpegthumbnailer/default.nix
+++ b/pkgs/development/libraries/ffmpegthumbnailer/default.nix
@@ -1,19 +1,36 @@
-{ fetchFromGitHub, lib, stdenv, ffmpeg-headless, cmake, libpng, pkg-config, libjpeg
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  pkg-config,
+  ffmpeg-headless,
+  libpng,
+  libjpeg,
 }:
 
 stdenv.mkDerivation rec {
   pname = "ffmpegthumbnailer";
-  version = "unstable-2022-02-18";
+  version = "unstable-2024-01-04";
 
   src = fetchFromGitHub {
     owner = "dirkvdb";
     repo = "ffmpegthumbnailer";
-    rev = "3db9fe895b2fa656bb40ddb7a62e27604a688171";
-    sha256 = "0606pbg391l4s8mpyyalm9zrcnm75fwqdlrxy2gif9n21i2fm3rc";
+    rev = "1b5a77983240bcf00a4ef7702c07bcd8f4e5f97c";
+    hash = "sha256-7SPRQMPgdvP7J3HCf7F1eXxZjUH5vCYZ9UOwTUFMLp0=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ ffmpeg-headless libpng libjpeg ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    ffmpeg-headless
+    libpng
+    libjpeg
+  ];
+
   cmakeFlags = [ "-DENABLE_THUMBNAILER=ON" ];
 
   # https://github.com/dirkvdb/ffmpegthumbnailer/issues/215
@@ -22,21 +39,20 @@ stdenv.mkDerivation rec {
       --replace '$'{exec_prefix}/@CMAKE_INSTALL_LIBDIR@ @CMAKE_INSTALL_FULL_LIBDIR@
   '';
 
-  meta = with lib;  {
-    homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
-    description = "A lightweight video thumbnailer";
-    mainProgram = "ffmpegthumbnailer";
+  meta = with lib; {
+    description = "Lightweight video thumbnailer";
     longDescription = "FFmpegthumbnailer is a lightweight video
         thumbnailer that can be used by file managers to create thumbnails
-        for your video files. The thumbnailer uses ffmpeg o decode frames
+        for your video files. The thumbnailer uses ffmpeg to decode frames
         from the video files, so supported videoformats depend on the
         configuration flags of ffmpeg.
         This thumbnailer was designed to be as fast and lightweight as possible.
-        The only dependencies are ffmpeg and libpng.
+        The only dependencies are ffmpeg and libpng/libjpeg.
     ";
-    platforms = platforms.unix;
+    homepage = "https://github.com/dirkvdb/ffmpegthumbnailer";
     license = licenses.gpl2Plus;
     maintainers = [ maintainers.jagajaga ];
+    platforms = platforms.unix;
+    mainProgram = "ffmpegthumbnailer";
   };
-
 }
diff --git a/pkgs/development/libraries/ffms/default.nix b/pkgs/development/libraries/ffms/default.nix
index 370b4267bdb45..1afdd23923ddf 100644
--- a/pkgs/development/libraries/ffms/default.nix
+++ b/pkgs/development/libraries/ffms/default.nix
@@ -3,19 +3,19 @@
 , fetchFromGitHub
 , autoreconfHook
 , pkg-config
-, ffmpeg_4
+, ffmpeg
 , zlib
 }:
 
 stdenv.mkDerivation rec {
   pname = "ffms";
-  version = "2.40";
+  version = "5.0";
 
   src = fetchFromGitHub {
     owner = "FFMS";
     repo = "ffms2";
     rev = version;
-    sha256 = "sha256-3bPxt911T0bGpAIS2RxBjo+VV84xW06eKcCj3ZAcmvw=";
+    sha256 = "sha256-Ildl8hbKSFGh4MUBK+k8uYMDrOZD9NSMdPAWIIaGy4E=";
   };
 
   env.NIX_CFLAGS_COMPILE = "-fPIC";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   buildInputs = [
-    ffmpeg_4
+    ffmpeg
     zlib
   ];
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/FFMS/ffms2/";
+    homepage = "https://github.com/FFMS/ffms2";
     description = "FFmpeg based source library for easy frame accurate access";
     mainProgram = "ffmsindex";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/flatpak/binary-path.patch b/pkgs/development/libraries/flatpak/binary-path.patch
deleted file mode 100644
index 9da437df91b71..0000000000000
--- a/pkgs/development/libraries/flatpak/binary-path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/common/flatpak-dir.c b/common/flatpak-dir.c
-index eba81fef..134024e2 100644
---- a/common/flatpak-dir.c
-+++ b/common/flatpak-dir.c
-@@ -7532,8 +7532,13 @@ export_desktop_file (const char         *app,
-       g_key_file_remove_key (keyfile, groups[i], "X-GNOME-Bugzilla-ExtraInfoScript", NULL);
- 
-       new_exec = g_string_new ("");
--      if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
--        flatpak = FLATPAK_BINDIR "/flatpak";
-+      if (g_str_has_suffix (name, ".service"))
-+      {
-+        flatpak = "/run/current-system/sw/bin/flatpak";
-+      } else {
-+        if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
-+          flatpak = "flatpak";
-+      }
- 
-       g_string_append_printf (new_exec,
-                               "%s run --branch=%s --arch=%s",
-@@ -8867,7 +8872,7 @@ flatpak_dir_deploy (FlatpakDir          *self,
-                                        error))
-         return FALSE;
-       if ((flatpak = g_getenv ("FLATPAK_BINARY")) == NULL)
--        flatpak = FLATPAK_BINDIR "/flatpak";
-+        flatpak = "flatpak";
- 
-       bin_data = g_strdup_printf ("#!/bin/sh\nexec %s run --branch=%s --arch=%s %s \"$@\"\n",
-                                   flatpak, escaped_branch, escaped_arch, escaped_app);
diff --git a/pkgs/development/libraries/flatpak/default.nix b/pkgs/development/libraries/flatpak/default.nix
deleted file mode 100644
index cb2fc48c31de6..0000000000000
--- a/pkgs/development/libraries/flatpak/default.nix
+++ /dev/null
@@ -1,211 +0,0 @@
-{ lib, stdenv
-, fetchurl
-, autoreconfHook
-, docbook_xml_dtd_45
-, docbook-xsl-nons
-, which
-, libxml2
-, gobject-introspection
-, gtk-doc
-, intltool
-, libxslt
-, pkg-config
-, xmlto
-, substituteAll
-, runCommand
-, bison
-, xdg-dbus-proxy
-, p11-kit
-, appstream
-, bubblewrap
-, bzip2
-, curl
-, dbus
-, glib
-, gpgme
-, json-glib
-, libarchive
-, libcap
-, libseccomp
-, coreutils
-, socat
-, gettext
-, hicolor-icon-theme
-, shared-mime-info
-, desktop-file-utils
-, gtk3
-, fuse3
-, nixosTests
-, xz
-, zstd
-, ostree
-, polkit
-, python3
-, systemd
-, xorg
-, valgrind
-, glib-networking
-, wrapGAppsNoGuiHook
-, dconf
-, gsettings-desktop-schemas
-, librsvg
-, makeWrapper
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "flatpak";
-  version = "1.14.6";
-
-  # TODO: split out lib once we figure out what to do with triggerdir
-  outputs = [ "out" "dev" "man" "doc" "devdoc" "installedTests" ];
-
-  src = fetchurl {
-    url = "https://github.com/flatpak/flatpak/releases/download/${finalAttrs.version}/flatpak-${finalAttrs.version}.tar.xz";
-    sha256 = "sha256-U482ssb4xw7v0S0TrVsa2DCCAQaovTqfa45NnegeSUY="; # Taken from https://github.com/flatpak/flatpak/releases/
-  };
-
-  patches = [
-    # Hardcode paths used by tests and change test runtime generation to use files from Nix store.
-    # https://github.com/flatpak/flatpak/issues/1460
-    (substituteAll {
-      src = ./fix-test-paths.patch;
-      inherit coreutils gettext socat gtk3;
-      smi = shared-mime-info;
-      dfu = desktop-file-utils;
-      hicolorIconTheme = hicolor-icon-theme;
-    })
-
-    # Hardcode paths used by Flatpak itself.
-    (substituteAll {
-      src = ./fix-paths.patch;
-      p11kit = "${p11-kit.bin}/bin/p11-kit";
-    })
-
-    # Allow gtk-doc to find schemas using XML_CATALOG_FILES environment variable.
-    # Patch taken from gtk-doc expression.
-    ./respect-xml-catalog-files-var.patch
-
-    # Nix environment hacks should not leak into the apps.
-    # https://github.com/NixOS/nixpkgs/issues/53441
-    ./unset-env-vars.patch
-
-    # Use flatpak from PATH to avoid references to `/nix/store` in `/desktop` files.
-    # Applications containing `DBusActivatable` entries should be able to find the flatpak binary.
-    # https://github.com/NixOS/nixpkgs/issues/138956
-    ./binary-path.patch
-
-    # The icon validator needs to access the gdk-pixbuf loaders in the Nix store
-    # and cannot bind FHS paths since those are not available on NixOS.
-    finalAttrs.passthru.icon-validator-patch
-
-    # Try mounting fonts and icons from NixOS locations if FHS locations don't exist.
-    # https://github.com/NixOS/nixpkgs/issues/119433
-    ./fix-fonts-icons.patch
-  ];
-
-  nativeBuildInputs = [
-    autoreconfHook
-    libxml2
-    docbook_xml_dtd_45
-    docbook-xsl-nons
-    which
-    gobject-introspection
-    gtk-doc
-    intltool
-    libxslt
-    pkg-config
-    xmlto
-    bison
-    wrapGAppsNoGuiHook
-  ];
-
-  buildInputs = [
-    appstream
-    bubblewrap
-    bzip2
-    curl
-    dbus
-    dconf
-    gpgme
-    json-glib
-    libarchive
-    libcap
-    libseccomp
-    xz
-    zstd
-    polkit
-    python3
-    systemd
-    xorg.libXau
-    fuse3
-    gsettings-desktop-schemas
-    glib-networking
-    librsvg # for flatpak-validate-icon
-  ];
-
-  # Required by flatpak.pc
-  propagatedBuildInputs = [
-    glib
-    ostree
-  ];
-
-  nativeCheckInputs = [
-    valgrind
-  ];
-
-  # TODO: some issues with temporary files
-  doCheck = false;
-
-  NIX_LDFLAGS = "-lpthread";
-
-  enableParallelBuilding = true;
-
-  configureFlags = [
-    "--with-curl"
-    "--with-system-bubblewrap=${bubblewrap}/bin/bwrap"
-    "--with-system-dbus-proxy=${xdg-dbus-proxy}/bin/xdg-dbus-proxy"
-    "--with-dbus-config-dir=${placeholder "out"}/share/dbus-1/system.d"
-    "--localstatedir=/var"
-    "--enable-gtk-doc"
-    "--enable-installed-tests"
-  ];
-
-  makeFlags = [
-    "installed_testdir=${placeholder "installedTests"}/libexec/installed-tests/flatpak"
-    "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/flatpak"
-  ];
-
-  postPatch = let
-    vsc-py = python3.withPackages (pp: [
-      pp.pyparsing
-    ]);
-  in ''
-    patchShebangs buildutil
-    patchShebangs tests
-    PATH=${lib.makeBinPath [vsc-py]}:$PATH patchShebangs --build subprojects/variant-schema-compiler/variant-schema-compiler
-  '';
-
-  passthru = {
-    icon-validator-patch = substituteAll {
-      src = ./fix-icon-validation.patch;
-      inherit (builtins) storeDir;
-    };
-
-    tests = {
-      installedTests = nixosTests.installed-tests.flatpak;
-
-      validate-icon = runCommand "test-icon-validation" { } ''
-        ${finalAttrs.finalPackage}/libexec/flatpak-validate-icon --sandbox 512 512 ${../../../applications/audio/zynaddsubfx/ZynLogo.svg} > "$out"
-        grep format=svg "$out"
-      '';
-    };
-  };
-
-  meta = with lib; {
-    description = "Linux application sandboxing and distribution framework";
-    homepage = "https://flatpak.org/";
-    license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/development/libraries/flatpak/fix-fonts-icons.patch b/pkgs/development/libraries/flatpak/fix-fonts-icons.patch
deleted file mode 100644
index 31a96d88b7dd5..0000000000000
--- a/pkgs/development/libraries/flatpak/fix-fonts-icons.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-diff --git a/common/flatpak-run.c b/common/flatpak-run.c
-index 94ad013..5c9f55e 100644
---- a/common/flatpak-run.c
-+++ b/common/flatpak-run.c
-@@ -871,6 +871,49 @@ out:
-   return res;
- }
- 
-+static void
-+get_nix_closure (GHashTable *closure, const gchar *source_path)
-+{
-+  if (g_file_test (source_path, G_FILE_TEST_IS_SYMLINK))
-+    {
-+      g_autofree gchar *path = g_malloc(PATH_MAX);
-+      realpath(source_path, path);
-+      if (g_str_has_prefix(path, "/nix/store/"))
-+        {
-+          *strchr(path + strlen("/nix/store/"), '/') = 0;
-+          g_hash_table_add(closure, g_steal_pointer (&path));
-+        }
-+    }
-+  else if (g_file_test (source_path, G_FILE_TEST_IS_DIR))
-+    {
-+      g_autoptr(GDir) dir = g_dir_open(source_path, 0, NULL);
-+      const gchar *file_name;
-+      while ((file_name = g_dir_read_name(dir)))
-+        {
-+          g_autofree gchar *path = g_build_filename (source_path, file_name, NULL);
-+          get_nix_closure (closure, path);
-+        }
-+    }
-+}
-+
-+static void
-+add_nix_store_symlink_targets (FlatpakBwrap *bwrap, const gchar *source_path)
-+{
-+  GHashTable *closure = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-+
-+  get_nix_closure(closure, source_path);
-+
-+  GHashTableIter iter;
-+  gpointer path;
-+  g_hash_table_iter_init(&iter, closure);
-+  while (g_hash_table_iter_next(&iter, &path, NULL))
-+    {
-+      flatpak_bwrap_add_args (bwrap, "--ro-bind", path, path, NULL);
-+    }
-+
-+  g_hash_table_destroy(closure);
-+}
-+
- static void
- add_font_path_args (FlatpakBwrap *bwrap)
- {
-@@ -898,6 +946,18 @@ add_font_path_args (FlatpakBwrap *bwrap)
-                               "\t<remap-dir as-path=\"%s\">/run/host/fonts</remap-dir>\n",
-                               SYSTEM_FONTS_DIR);
-     }
-+  else if (g_file_test ("/run/current-system/sw/share/X11/fonts", G_FILE_TEST_EXISTS))
-+    {
-+      add_nix_store_symlink_targets (bwrap, "/run/current-system/sw/share/X11/fonts");
-+      flatpak_bwrap_add_args (bwrap,
-+                              "--ro-bind",
-+                              "/run/current-system/sw/share/X11/fonts",
-+                              "/run/host/fonts",
-+                              NULL);
-+      g_string_append_printf (xml_snippet,
-+                              "\t<remap-dir as-path=\"%s\">/run/host/fonts</remap-dir>\n",
-+                              "/run/current-system/sw/share/X11/fonts");
-+    }
- 
-   if (g_file_test ("/usr/local/share/fonts", G_FILE_TEST_EXISTS))
-     {
-@@ -998,6 +1058,13 @@ add_icon_path_args (FlatpakBwrap *bwrap)
-                               "--ro-bind", "/usr/share/icons", "/run/host/share/icons",
-                               NULL);
-     }
-+  else if (g_file_test ("/run/current-system/sw/share/icons", G_FILE_TEST_IS_DIR))
-+    {
-+      add_nix_store_symlink_targets (bwrap, "/run/current-system/sw/share/icons");
-+      flatpak_bwrap_add_args (bwrap,
-+                              "--ro-bind", "/run/current-system/sw/share/icons", "/run/host/share/icons",
-+                              NULL);
-+    }
- 
-   user_icons_path = g_build_filename (g_get_user_data_dir (), "icons", NULL);
-   user_icons = g_file_new_for_path (user_icons_path);
diff --git a/pkgs/development/libraries/flatpak/fix-icon-validation.patch b/pkgs/development/libraries/flatpak/fix-icon-validation.patch
deleted file mode 100644
index 0e4db2b162f19..0000000000000
--- a/pkgs/development/libraries/flatpak/fix-icon-validation.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- a/icon-validator/validate-icon.c
-+++ b/icon-validator/validate-icon.c
-@@ -163,7 +163,7 @@ rerun_in_sandbox (const char *arg_width,
-                   const char *arg_height,
-                   const char *filename)
- {
--  const char * const usrmerged_dirs[] = { "bin", "lib32", "lib64", "lib", "sbin" };
-+  const char * const usrmerged_dirs[] = { };
-   int i;
-   g_autoptr(GPtrArray) args = g_ptr_array_new_with_free_func (g_free);
-   char validate_icon[PATH_MAX + 1];
-@@ -183,8 +183,7 @@ rerun_in_sandbox (const char *arg_width,
-             "--unshare-ipc",
-             "--unshare-net",
-             "--unshare-pid",
--            "--ro-bind", "/usr", "/usr",
--            "--ro-bind-try", "/etc/ld.so.cache", "/etc/ld.so.cache",
-+            "--ro-bind", "@storeDir@", "@storeDir@",
-             "--ro-bind", validate_icon, validate_icon,
-             NULL);
- 
-@@ -227,6 +226,9 @@ rerun_in_sandbox (const char *arg_width,
-     add_args (args, "--setenv", "G_MESSAGES_DEBUG", g_getenv ("G_MESSAGES_DEBUG"), NULL);
-   if (g_getenv ("G_MESSAGES_PREFIXED"))
-     add_args (args, "--setenv", "G_MESSAGES_PREFIXED", g_getenv ("G_MESSAGES_PREFIXED"), NULL);
-+  if (g_getenv ("GDK_PIXBUF_MODULE_FILE"))
-+    add_args (args, "--setenv", "GDK_PIXBUF_MODULE_FILE", g_getenv ("GDK_PIXBUF_MODULE_FILE"), NULL);
-+
- 
-   add_args (args, validate_icon, arg_width, arg_height, filename, NULL);
-   g_ptr_array_add (args, NULL);
diff --git a/pkgs/development/libraries/flatpak/fix-paths.patch b/pkgs/development/libraries/flatpak/fix-paths.patch
deleted file mode 100644
index 67f0d4eba71f5..0000000000000
--- a/pkgs/development/libraries/flatpak/fix-paths.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/session-helper/flatpak-session-helper.c b/session-helper/flatpak-session-helper.c
-index 5dd7629e..ddc71a4c 100644
---- a/session-helper/flatpak-session-helper.c
-+++ b/session-helper/flatpak-session-helper.c
-@@ -693,7 +693,7 @@ start_p11_kit_server (const char *flatpak_dir)
-   g_auto(GStrv) stdout_lines = NULL;
-   int i;
-   char *p11_argv[] = {
--    "p11-kit", "server",
-+    "@p11kit@", "server",
-     /* We explicitly request --sh here, because we then fail on earlier versions that doesn't support
-      * this flag. This is good, because those earlier versions did not properly daemonize and caused
-      * the spawn_sync to hang forever, waiting for the pipe to close.
-@@ -836,7 +836,7 @@ main (int    argc,
-       exit (1);
-     }
- 
--  if (g_find_program_in_path ("p11-kit"))
-+  if (TRUE)
-     start_p11_kit_server (flatpak_dir);
-   else
-     g_debug ("p11-kit not found");
diff --git a/pkgs/development/libraries/flatpak/fix-test-paths.patch b/pkgs/development/libraries/flatpak/fix-test-paths.patch
deleted file mode 100644
index ebbcbde5e951f..0000000000000
--- a/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-diff --git a/app/flatpak-builtins-build-export.c b/app/flatpak-builtins-build-export.c
-index 3f5d8a1f..79493e61 100644
---- a/app/flatpak-builtins-build-export.c
-+++ b/app/flatpak-builtins-build-export.c
-@@ -464,7 +464,7 @@ validate_desktop_file (GFile      *desktop_file,
-   subprocess = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_PIPE |
-                                  G_SUBPROCESS_FLAGS_STDERR_PIPE |
-                                  G_SUBPROCESS_FLAGS_STDERR_MERGE,
--                                 &local_error, "desktop-file-validate", path, NULL);
-+                                 &local_error, "@dfu@/bin/desktop-file-validate", path, NULL);
-   if (!subprocess)
-     {
-       if (!g_error_matches (local_error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT))
-diff --git a/tests/libtest.sh b/tests/libtest.sh
-index 36d39ac4..3ad2c7a6 100644
---- a/tests/libtest.sh
-+++ b/tests/libtest.sh
-@@ -511,7 +511,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
-     # running installed-tests: assume we know what we're doing
-     _flatpak_bwrap_works=true
- elif ! "$FLATPAK_BWRAP" --unshare-ipc --unshare-net --unshare-pid \
--        --ro-bind / / /bin/true > bwrap-result 2>&1; then
-+        --ro-bind / / @coreutils@/bin/true > bwrap-result 2>&1; then
-     _flatpak_bwrap_works=false
- else
-     _flatpak_bwrap_works=true
-@@ -591,7 +591,7 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
- export DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)"
- DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)"
- 
--if ! /bin/kill -0 "$DBUS_SESSION_BUS_PID"; then
-+if ! @coreutils@/bin/kill -0 "$DBUS_SESSION_BUS_PID"; then
-     assert_not_reached "Failed to start dbus-daemon"
- fi
- 
-@@ -606,7 +606,7 @@ commit_to_path () {
- }
- 
- cleanup () {
--    /bin/kill -9 $DBUS_SESSION_BUS_PID
-+    @coreutils@/bin/kill -9 $DBUS_SESSION_BUS_PID
-     gpg-connect-agent --homedir "${FL_GPG_HOMEDIR}" killagent /bye >&2 || true
-     fusermount -u $XDG_RUNTIME_DIR/doc >&2 || :
-     kill $(jobs -p) &> /dev/null || true
-diff --git a/tests/make-test-app.sh b/tests/make-test-app.sh
-index afa11a6b..5b12055f 100755
---- a/tests/make-test-app.sh
-+++ b/tests/make-test-app.sh
-@@ -190,13 +190,13 @@ msgid "Hello world"
- msgstr "Hallo Welt"
- EOF
- mkdir -p ${DIR}/files/de/share/de/LC_MESSAGES
--msgfmt --output-file ${DIR}/files/de/share/de/LC_MESSAGES/helloworld.mo de.po
-+@gettext@/bin/msgfmt --output-file ${DIR}/files/de/share/de/LC_MESSAGES/helloworld.mo de.po
- cat > fr.po <<EOF
- msgid "Hello world"
- msgstr "Bonjour le monde"
- EOF
- mkdir -p ${DIR}/files/fr/share/fr/LC_MESSAGES
--msgfmt --output-file ${DIR}/files/fr/share/fr/LC_MESSAGES/helloworld.mo fr.po
-+@gettext@/bin/msgfmt --output-file ${DIR}/files/fr/share/fr/LC_MESSAGES/helloworld.mo fr.po
- 
- flatpak build-finish ${DIR} >&2
- mkdir -p repos
-diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh
-index 6345ff58..fd50fab3 100755
---- a/tests/make-test-runtime.sh
-+++ b/tests/make-test-runtime.sh
-@@ -28,9 +28,10 @@ EOF
- 
- # On Debian derivatives, /usr/sbin and /sbin aren't in ordinary users'
- # PATHs, but ldconfig is kept in /sbin
--PATH="$PATH:/usr/sbin:/sbin"
-+PATH="$PATH:@socat@/bin:/usr/sbin:/sbin"
- 
- # Add bash and dependencies
-+mkdir -p ${DIR}/nix/store
- mkdir -p ${DIR}/usr/bin
- mkdir -p ${DIR}/usr/lib
- ln -s ../lib ${DIR}/usr/lib64
-@@ -40,46 +41,17 @@ if test -f /sbin/ldconfig.real; then
- else
-     cp "$(type -P ldconfig)" "${DIR}/usr/bin"
- fi
--LIBS=`mktemp`
--BINS=`mktemp`
--
--add_bin() {
--    local f=$1
--    shift
--
--    # Check if the program is installed
--    if ! command -v "${f}" &> /dev/null; then
--        echo "${f} not found"
--        exit 1
--    fi
--
--    if grep -qFe "${f}" $BINS; then
--        # Already handled
--        return 0
--    fi
--
--    echo $f >> $BINS
--
--    # Add library dependencies
--    (ldd "${f}" | sed "s/.* => //"  | awk '{ print $1}' | grep ^/ | sort -u -o $LIBS $LIBS -)  || true
--
--    local shebang=$(sed -n '1s/^#!\([^ ]*\).*/\1/p' "${f}")
--    if [ x$shebang != x ]; then
--        add_bin "$shebang"
--    fi
--}
--
- for i in $@ bash ls cat echo readlink socat; do
--    I=$(type -P "$i")
--    add_bin "$I"
--done
--for i in `cat $BINS`; do
--    #echo Adding binary $i 1>&2
--    cp "$i" ${DIR}/usr/bin/
--done
--for i in `cat $LIBS`; do
--    #echo Adding library $i 1>&2
--    cp "$i" ${DIR}/usr/lib/
-+    I=$(readlink -f "$(type -P "$i")")
-+    [ -e "${DIR}/usr/bin/$i" ] && continue
-+    requisites=$(nix-store --query --requisites "$I")
-+    for r in $requisites; do
-+        # a single store item can be needed by multiple paths, no need to copy it again
-+        if [ ! -e "${DIR}/$r" ]; then
-+            cp -r "$r" "${DIR}/$r"
-+        fi
-+    done
-+    ln -s "$I" "${DIR}/usr/bin/$i"
- done
- ln -s bash ${DIR}/usr/bin/sh
- 
-@@ -90,11 +62,13 @@ echo "Hello world, from a runtime$EXTRA"
- EOF
- chmod a+x ${DIR}/usr/bin/runtime_hello.sh
- 
--# We copy the C.UTF8 locale and call it en_US. Its a bit of a lie, but
--# the real en_US locale is often not available, because its in the
--# local archive.
--mkdir -p ${DIR}/usr/lib/locale/
--cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
-+# We do not copy C.UTF8 locale because it is in locale archive and
-+# that is already copied with glibc.
-+
-+mv "${DIR}/nix/store" "${DIR}/usr/store" # files outside /usr are not permitted, we will have to replace /nix/store with /usr/store
-+chmod -R u+w "${DIR}" # nix store has read-only directories which would cause problems during clean-up, files need to be writable for sed
-+find "${DIR}" -type f -print0 | xargs -0 sed -i 's~/nix/store/~/usr/store/~g' # replace hardcoded paths
-+find "${DIR}" -type l | xargs -I '{}' sh -c 'tg="$(readlink "$1")"; newtg="${tg#/nix/store/}"; if [ "$tg" != "$newtg" ]; then ln -fs "/usr/store/$newtg" "$1"; fi' -- '{}' # replace symlink targets
- 
- if [ x$COLLECTION_ID != x ]; then
-     collection_args=--collection-id=${COLLECTION_ID}
-diff --git a/tests/testlibrary.c b/tests/testlibrary.c
-index 831d85c1..ae4f03d0 100644
---- a/tests/testlibrary.c
-+++ b/tests/testlibrary.c
-@@ -1601,7 +1601,7 @@ check_bwrap_support (void)
-     {
-       gint exit_code = 0;
-       char *argv[] = { (char *) bwrap, "--unshare-ipc", "--unshare-net",
--                       "--unshare-pid", "--ro-bind", "/", "/", "/bin/true", NULL };
-+                       "--unshare-pid", "--ro-bind", "/", "/", "@coreutils@/bin/true", NULL };
-       g_autofree char *argv_str = g_strjoinv (" ", argv);
-       g_test_message ("Spawning %s", argv_str);
-       g_spawn_sync (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, NULL, &exit_code, &error);
-diff --git a/triggers/desktop-database.trigger b/triggers/desktop-database.trigger
-index 1037466d..c4c7ed6d 100755
---- a/triggers/desktop-database.trigger
-+++ b/triggers/desktop-database.trigger
-@@ -1,5 +1,5 @@
- #!/bin/sh
- 
--if command -v update-desktop-database >/dev/null && test -d "$1/exports/share/applications"; then
--    exec update-desktop-database -q "$1/exports/share/applications"
-+if test -d "$1/exports/share/applications"; then
-+    exec @dfu@/bin/update-desktop-database -q "$1/exports/share/applications"
- fi
-diff --git a/triggers/gtk-icon-cache.trigger b/triggers/gtk-icon-cache.trigger
-index d9fc8251..d8ddb96e 100755
---- a/triggers/gtk-icon-cache.trigger
-+++ b/triggers/gtk-icon-cache.trigger
-@@ -1,10 +1,10 @@
- #!/bin/sh
- 
--if command -v gtk-update-icon-cache >/dev/null && test -d "$1/exports/share/icons/hicolor"; then
--    cp /usr/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/"
-+if test -d "$1/exports/share/icons/hicolor"; then
-+    @coreutils@/bin/cp -f @hicolorIconTheme@/share/icons/hicolor/index.theme "$1/exports/share/icons/hicolor/"
-     for dir in "$1"/exports/share/icons/*; do
-         if test -f "$dir/index.theme"; then
--            if ! gtk-update-icon-cache --quiet "$dir"; then
--                echo "Failed to run gtk-update-icon-cache for $dir"
-+            if ! @gtk3@/bin/gtk-update-icon-cache --quiet "$dir"; then
-+                @coreutils@/bin/echo "Failed to run gtk-update-icon-cache for $dir"
-                 exit 1
-             fi
-diff --git a/triggers/mime-database.trigger b/triggers/mime-database.trigger
-index 10ddbbb3..c270998a 100755
---- a/triggers/mime-database.trigger
-+++ b/triggers/mime-database.trigger
-@@ -1,5 +1,5 @@
- #!/bin/sh
- 
--if command -v update-mime-database >/dev/null && test -d "$1/exports/share/mime/packages"; then
--    exec update-mime-database "$1/exports/share/mime"
-+if test -d "$1/exports/share/mime/packages"; then
-+    exec @smi@/bin/update-mime-database "$1/exports/share/mime"
- fi
diff --git a/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch b/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
deleted file mode 100644
index 4cee60be2d07d..0000000000000
--- a/pkgs/development/libraries/flatpak/respect-xml-catalog-files-var.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/acinclude.m4 b/acinclude.m4
-index 92ec3985..b3fccf1d 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -40,8 +40,8 @@ AC_DEFUN([JH_CHECK_XML_CATALOG],
- [
-   AC_REQUIRE([JH_PATH_XML_CATALOG],[JH_PATH_XML_CATALOG(,[:])])dnl
-   AC_MSG_CHECKING([for ifelse([$2],,[$1],[$2]) in XML catalog])
--  if $jh_found_xmlcatalog && \
--     AC_RUN_LOG([$XMLCATALOG --noout "$XML_CATALOG_FILE" "$1" >&2]); then
-+  # empty argument forces libxml to use XML_CATALOG_FILES variable
-+  if AC_RUN_LOG([$XMLCATALOG --noout "" "$1" >&2]); then
-     AC_MSG_RESULT([found])
-     ifelse([$3],,,[$3
- ])dnl
diff --git a/pkgs/development/libraries/flatpak/unset-env-vars.patch b/pkgs/development/libraries/flatpak/unset-env-vars.patch
deleted file mode 100644
index 2a88d24f49166..0000000000000
--- a/pkgs/development/libraries/flatpak/unset-env-vars.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/common/flatpak-run.c b/common/flatpak-run.c
-index 6f54a9d0..102d9b90 100644
---- a/common/flatpak-run.c
-+++ b/common/flatpak-run.c
-@@ -1902,6 +1902,7 @@ static const ExportData default_exports[] = {
-   {"GDK_BACKEND", NULL},
-   {"VK_DRIVER_FILES", NULL},
-   {"VK_ICD_FILENAMES", NULL},
-+  {"GDK_PIXBUF_MODULE_FILE", NULL},
- };
- 
- static const ExportData no_ld_so_cache_exports[] = {
diff --git a/pkgs/development/libraries/flite/default.nix b/pkgs/development/libraries/flite/default.nix
index 59ab572762ee4..8573c862726e6 100644
--- a/pkgs/development/libraries/flite/default.nix
+++ b/pkgs/development/libraries/flite/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "A small, fast run-time speech synthesis engine";
+    description = "Small, fast run-time speech synthesis engine";
     homepage = "http://www.festvox.org/flite/";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ getchoo ];
diff --git a/pkgs/development/libraries/fltk/common.nix b/pkgs/development/libraries/fltk/common.nix
index 426a85e6a220a..d17cc9bd2ae5d 100644
--- a/pkgs/development/libraries/fltk/common.nix
+++ b/pkgs/development/libraries/fltk/common.nix
@@ -192,7 +192,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C++ cross-platform lightweight GUI library";
+    description = "C++ cross-platform lightweight GUI library";
     homepage = "https://www.fltk.org";
     platforms = platforms.unix;
     # LGPL2 with static linking exception
diff --git a/pkgs/development/libraries/fmt/default.nix b/pkgs/development/libraries/fmt/default.nix
index 4dd6d86fdaeb4..9ce329df79573 100644
--- a/pkgs/development/libraries/fmt/default.nix
+++ b/pkgs/development/libraries/fmt/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitHub, fetchpatch
+, fetchFromGitHub
 , cmake
 , enableShared ? !stdenv.hostPlatform.isStatic
 
diff --git a/pkgs/development/libraries/folks/default.nix b/pkgs/development/libraries/folks/default.nix
index 8df1c9585450a..8a44cd09dac94 100644
--- a/pkgs/development/libraries/folks/default.nix
+++ b/pkgs/development/libraries/folks/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "folks";
-  version = "0.15.7";
+  version = "0.15.9";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/folks/${lib.versions.majorMinor finalAttrs.version}/folks-${finalAttrs.version}.tar.xz";
-    sha256 = "Eg8hnvYyEsqpWuf2rrZOKZKLCxqLlFIFQwSgDQ80eHE=";
+    hash = "sha256-IxGzc1XDUfM/Fj/cOUh0oioKBoLDGUk9bYpuQgcRQV8=";
   };
 
   nativeBuildInputs = [
@@ -90,12 +90,10 @@ stdenv.mkDerivation (finalAttrs: {
   # occur inconsistently
   doCheck = false;
 
-  # Prevents e-d-s add-contacts-stress-test from timing out
-  checkPhase = ''
-    runHook preCheck
-    meson test --timeout-multiplier 4
-    runHook postCheck
-  '';
+  mesonCheckFlags = [
+    # Prevents e-d-s add-contacts-stress-test from timing out
+    "--timeout-multiplier" "4"
+  ];
 
   postPatch = lib.optionalString telepathySupport ''
     patchShebangs tests/tools/manager-file.py
@@ -109,7 +107,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library that aggregates people from multiple sources to create metacontacts";
+    description = "Library that aggregates people from multiple sources to create metacontacts";
     homepage = "https://gitlab.gnome.org/GNOME/folks";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index 9dd6bbeaa55e4..171b81af8365d 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An open-source C++ library developed and used at Facebook";
+    description = "Open-source C++ library developed and used at Facebook";
     homepage = "https://github.com/facebook/folly";
     license = licenses.asl20;
     # 32bit is not supported: https://github.com/facebook/folly/issues/103
diff --git a/pkgs/development/libraries/fontconfig/default.nix b/pkgs/development/libraries/fontconfig/default.nix
index 669c2dec851ca..569c2716f0e53 100644
--- a/pkgs/development/libraries/fontconfig/default.nix
+++ b/pkgs/development/libraries/fontconfig/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for font customization and configuration";
+    description = "Library for font customization and configuration";
     homepage = "http://fontconfig.org/";
     license = licenses.bsd2; # custom but very bsd-like
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/forge/default.nix b/pkgs/development/libraries/forge/default.nix
index d9996ada50675..051038c747875 100644
--- a/pkgs/development/libraries/forge/default.nix
+++ b/pkgs/development/libraries/forge/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend";
+    description = "OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend";
     longDescription = ''
       An OpenGL interop library that can be used with ArrayFire or any other application using CUDA or OpenCL compute backend.
       The goal of Forge is to provide high performance OpenGL visualizations for C/C++ applications that use CUDA/OpenCL.
diff --git a/pkgs/development/libraries/fox/default.nix b/pkgs/development/libraries/fox/default.nix
index 49526b99c53b9..2715e2c80ca43 100644
--- a/pkgs/development/libraries/fox/default.nix
+++ b/pkgs/development/libraries/fox/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchurl
-, fetchpatch
 , libpng
 , libjpeg
 , libtiff
diff --git a/pkgs/development/libraries/fox/fox-1.6.nix b/pkgs/development/libraries/fox/fox-1.6.nix
index b5b86cbe48a03..0ab874fd76dd2 100644
--- a/pkgs/development/libraries/fox/fox-1.6.nix
+++ b/pkgs/development/libraries/fox/fox-1.6.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   meta = {
     broken = stdenv.isDarwin;
     branch = "1.6";
-    description = "A C++ based class library for building Graphical User Interfaces";
+    description = "C++ based class library for building Graphical User Interfaces";
     longDescription = ''
         FOX stands for Free Objects for X.
         It is a C++ based class library for building Graphical User Interfaces.
diff --git a/pkgs/development/libraries/freetds/default.nix b/pkgs/development/libraries/freetds/default.nix
index bc6d6a583ea00..d6c38b555dd6e 100644
--- a/pkgs/development/libraries/freetds/default.nix
+++ b/pkgs/development/libraries/freetds/default.nix
@@ -8,11 +8,11 @@ assert odbcSupport -> unixODBC != null;
 
 stdenv.mkDerivation rec {
   pname = "freetds";
-  version = "1.4.11";
+  version = "1.4.17";
 
   src = fetchurl {
     url    = "https://www.freetds.org/files/stable/${pname}-${version}.tar.bz2";
-    hash   = "sha256-Vn986RPyIhkd2n4cIh1eJyo4cVL+9srL2Xdn/qaLYT4=";
+    hash   = "sha256-P3CoRV6zopAtQDmtkbk0o0jKHu4jpKkqPeCCSQWn0aI=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/freetype/default.nix b/pkgs/development/libraries/freetype/default.nix
index 1a8009f04ce7b..8ff0005d0ff07 100644
--- a/pkgs/development/libraries/freetype/default.nix
+++ b/pkgs/development/libraries/freetype/default.nix
@@ -103,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A font rendering engine";
+    description = "Font rendering engine";
     mainProgram = "freetype-config";
     longDescription = ''
       FreeType is a portable and efficient library for rendering fonts. It
diff --git a/pkgs/development/libraries/freexl/default.nix b/pkgs/development/libraries/freexl/default.nix
index ac5609425b56b..74d4a646b074b 100644
--- a/pkgs/development/libraries/freexl/default.nix
+++ b/pkgs/development/libraries/freexl/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library to extract valid data from within an Excel (.xls) spreadsheet";
+    description = "Library to extract valid data from within an Excel (.xls) spreadsheet";
     homepage = "https://www.gaia-gis.it/fossil/freexl";
     # They allow any of these
     license = with licenses; [ gpl2Plus lgpl21Plus mpl11 ];
diff --git a/pkgs/development/libraries/functionalplus/default.nix b/pkgs/development/libraries/functionalplus/default.nix
index 6d3092e53c350..e4eef8dfe532c 100644
--- a/pkgs/development/libraries/functionalplus/default.nix
+++ b/pkgs/development/libraries/functionalplus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "functionalplus";
-  version = "0.2.23";
+  version = "0.2.24";
 
   src = fetchFromGitHub {
     owner = "Dobiasd";
     repo = "FunctionalPlus";
     rev = "v${version}";
-    sha256 = "sha256-WDufVO0vQyu7O3w9tq+19JioRUFgYlnTbO/AQzg0FnM=";
+    sha256 = "sha256-iQGvqFiTqejSqXALgUWCBjfH9QO0cg3vnI5PphgVoms=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/fuzzylite/default.nix b/pkgs/development/libraries/fuzzylite/default.nix
index 1fd6d6506c288..82f11abe88e63 100644
--- a/pkgs/development/libraries/fuzzylite/default.nix
+++ b/pkgs/development/libraries/fuzzylite/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , useFloat ? false
@@ -37,7 +36,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fuzzy logic control library in C++";
+    description = "Fuzzy logic control library in C++";
     mainProgram = "fuzzylite";
     homepage = "https://fuzzylite.com";
     changelog = "https://github.com/fuzzylite/fuzzylite/${src.rev}/release/CHANGELOG";
diff --git a/pkgs/development/libraries/g2o/default.nix b/pkgs/development/libraries/g2o/default.nix
index cc4339da982aa..7ff0c207060c0 100644
--- a/pkgs/development/libraries/g2o/default.nix
+++ b/pkgs/development/libraries/g2o/default.nix
@@ -37,7 +37,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A General Framework for Graph Optimization";
+    description = "General Framework for Graph Optimization";
     homepage = "https://github.com/RainerKuemmerle/g2o";
     license = with licenses; [ bsd3 lgpl3 gpl3 ];
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/development/libraries/gamin/default.nix b/pkgs/development/libraries/gamin/default.nix
index a2d6078024d58..e2d32fd645278 100644
--- a/pkgs/development/libraries/gamin/default.nix
+++ b/pkgs/development/libraries/gamin/default.nix
@@ -25,6 +25,10 @@ stdenv.mkDerivation rec {
     sed -i 's/,--version-script=.*$/\\/' libgamin/Makefile
   '';
 
+  env = lib.optionalAttrs stdenv.cc.isClang {
+    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
+  };
+
   patches = [ ./deadlock.patch ]
     ++ map fetchurl (import ./debian-patches.nix)
     ++ lib.optional stdenv.cc.isClang ./returnval.patch
@@ -37,7 +41,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://people.gnome.org/~veillard/gamin/";
-    description = "A file and directory monitoring system";
+    description = "File and directory monitoring system";
     maintainers = with maintainers; [ lovek323 ];
     license = licenses.gpl2;
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/ganv/default.nix b/pkgs/development/libraries/ganv/default.nix
index 32318e1fc0fce..1e4b8436e8228 100644
--- a/pkgs/development/libraries/ganv/default.nix
+++ b/pkgs/development/libraries/ganv/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = with lib; {
-    description = "An interactive Gtk canvas widget for graph-based interfaces";
+    description = "Interactive Gtk canvas widget for graph-based interfaces";
     mainProgram = "ganv_bench";
     homepage = "http://drobilla.net";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/gbenchmark/default.nix b/pkgs/development/libraries/gbenchmark/default.nix
index 7292b34528268..fd7c22a674d0b 100644
--- a/pkgs/development/libraries/gbenchmark/default.nix
+++ b/pkgs/development/libraries/gbenchmark/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A microbenchmark support library";
+    description = "Microbenchmark support library";
     homepage = "https://github.com/google/benchmark";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/gcr/4.nix b/pkgs/development/libraries/gcr/4.nix
index ea1dbf99f2730..dd860d0bc7008 100644
--- a/pkgs/development/libraries/gcr/4.nix
+++ b/pkgs/development/libraries/gcr/4.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gcr";
-  version = "4.1.0";
+  version = "4.3.0";
 
   outputs = [ "out" "bin" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "nOqtKShLqRm5IW4oiMGOxnJAwsk7OkhWvFSIu8Hzo4M=";
+    hash = "sha256-w+6HKOQ2SwOX9DX6IPkvkBqxOdKyZPTgWdZ7PA9DzTY=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/gcr/default.nix b/pkgs/development/libraries/gcr/default.nix
index 11d695e774994..db31927b7a70a 100644
--- a/pkgs/development/libraries/gcr/default.nix
+++ b/pkgs/development/libraries/gcr/default.nix
@@ -16,7 +16,7 @@
 , openssh
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd, systemd
 , gobject-introspection
-, wrapGAppsHook
+, wrapGAppsHook3
 , gi-docgen
 , vala
 , gnome
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     gettext
     gobject-introspection
     gi-docgen
-    wrapGAppsHook
+    wrapGAppsHook3
     vala
     shared-mime-info
     openssh
diff --git a/pkgs/development/libraries/gd/default.nix b/pkgs/development/libraries/gd/default.nix
index af96d9d06d27b..bf59bdd1f625a 100644
--- a/pkgs/development/libraries/gd/default.nix
+++ b/pkgs/development/libraries/gd/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libgd.github.io/";
-    description = "A dynamic image creation library";
+    description = "Dynamic image creation library";
     license = licenses.free; # some custom license
     platforms = platforms.unix;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix
index b059620536c66..f8bf3f7c075aa 100644
--- a/pkgs/development/libraries/gdal/default.nix
+++ b/pkgs/development/libraries/gdal/default.nix
@@ -79,21 +79,21 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  pname = "gdal";
-  version = "3.8.5";
+  pname = "gdal" + lib.optionalString useMinimalFeatures "-minimal";
+  version = "3.9.0";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "gdal";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-Z+mYlyOX9vJ772qwZMQfCbD/V7RL6+9JLHTzoZ55ot0=";
+    hash = "sha256-xEekgF9GzsPYkwk7Nny9b1DMLTxBqTSdudYxaz4jl/c=";
   };
 
   patches = [
-    # bump java source option to fix build with JDK 21
+    # HDF5: add support for libhdf5 >= 1.14.4.2 when built with Float16
     (fetchpatch {
-      url = "https://github.com/OSGeo/gdal/commit/ca2eb4130750b0e6365f738a5f8ff77081f5c5bb.patch";
-      sha256 = "sha256-wShYm9yA7twJR72co+Tvf/IuYXqbI0OrjWl0uqC3bwo=";
+      url = "https://github.com/OSGeo/gdal/commit/16ade8253f26200246abb5ab24d17e18216e7a11.patch";
+      sha256 = "sha256-N6YqfcOUWeaJXVE9RUo1dzulxqIY5Q/UygPnZHau3Lc=";
     })
   ];
 
@@ -229,8 +229,8 @@ stdenv.mkDerivation (finalAttrs: {
     export GDAL_DOWNLOAD_TEST_DATA=OFF
     # allows to skip tests that fail because of file handle leak
     # the issue was not investigated
-    # https://github.com/OSGeo/gdal/blob/v3.7.0/autotest/gdrivers/bag.py#L61
-    export BUILD_NAME=fedora
+    # https://github.com/OSGeo/gdal/blob/v3.9.0/autotest/gdrivers/bag.py#L54
+    export CI=1
   '';
   nativeInstallCheckInputs = with python3.pkgs; [
     pytestCheckHook
diff --git a/pkgs/development/libraries/gdbm/default.nix b/pkgs/development/libraries/gdbm/default.nix
index e1a3def0ba420..d6ed7d32e7016 100644
--- a/pkgs/development/libraries/gdbm/default.nix
+++ b/pkgs/development/libraries/gdbm/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "gdbm";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-dLEIHSH/8TrkvXwW5dblBKTCb3zeHcoNljpIQXS7ys0=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   doCheck = true; # not cross;
 
   # Linking static stubs on cygwin requires correct ordering.
diff --git a/pkgs/development/libraries/gdcm/default.nix b/pkgs/development/libraries/gdcm/default.nix
index 9d6db6fca684b..bdfa576f23dfe 100644
--- a/pkgs/development/libraries/gdcm/default.nix
+++ b/pkgs/development/libraries/gdcm/default.nix
@@ -6,6 +6,7 @@
 , vtk
 , ApplicationServices
 , Cocoa
+, DarwinTools # sw_vers
 , libiconv
 , enablePython ? false
 , python ? null
@@ -19,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gdcm";
-  version = "3.0.23";
+  version = "3.0.24";
 
   src = fetchFromGitHub {
     owner = "malaterre";
     repo = "GDCM";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zwIPWcjTrfbdNBzAqwV6lU2l6sx+e4Yi7dprdem6AeE=";
+    hash = "sha256-Zlb6UCP4aFZOJJNhFQBBrwzst+f37gs1zaCBMTOUgZE=";
   };
 
   cmakeFlags = [
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     cmake
     pkg-config
-  ];
+  ] ++ lib.optional stdenv.isDarwin DarwinTools;
 
   buildInputs = [
     expat
@@ -90,7 +91,7 @@ stdenv.mkDerivation rec {
   # a number of additional but much slower tests are enabled
 
   meta = with lib; {
-    description = "The grassroots cross-platform DICOM implementation";
+    description = "Grassroots cross-platform DICOM implementation";
     longDescription = ''
       Grassroots DICOM (GDCM) is an implementation of the DICOM standard designed to be open source so that researchers may access clinical data directly.
       GDCM includes a file format definition and a network communications protocol, both of which should be extended to provide a full set of tools for a researcher or small medical imaging vendor to interface with an existing medical database.
diff --git a/pkgs/development/libraries/gdk-pixbuf/default.nix b/pkgs/development/libraries/gdk-pixbuf/default.nix
index f77daec2ea6fb..9260f8fc1e2c3 100644
--- a/pkgs/development/libraries/gdk-pixbuf/default.nix
+++ b/pkgs/development/libraries/gdk-pixbuf/default.nix
@@ -25,7 +25,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gdk-pixbuf";
-  version = "2.42.10";
+  version = "2.42.12";
 
   outputs = [ "out" "dev" "man" ]
     ++ lib.optional withIntrospection "devdoc"
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "7ptsddE7oJaQei48aye2G80X9cfr6rWltDnS8uOf5Es=";
+    hash = "sha256-uVBbNEW5p+SM7TR2DDvLc+lm3zrJTJWhSMtmmrdI48c=";
   };
 
   patches = [
@@ -79,6 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-Dgio_sniffing=false"
     (lib.mesonBool "gtk_doc" withIntrospection)
     (lib.mesonEnable "introspection" withIntrospection)
+    (lib.mesonEnable "others" true)
   ];
 
   postPatch = ''
@@ -93,6 +94,9 @@ stdenv.mkDerivation (finalAttrs: {
     substituteInPlace docs/meson.build \
       --replace "dependency('gi-docgen'," "dependency('gi-docgen', native:true," \
       --replace "'gi-docgen', req" "'gi-docgen', native:true, req"
+
+    # Remove 'ani' loader until proper fix for CVE-2022-48622
+    substituteInPlace meson.build --replace-fail "'ani'," ""
   '';
 
   postInstall =
@@ -149,7 +153,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for image loading and manipulation";
+    description = "Library for image loading and manipulation";
     homepage = "https://gitlab.gnome.org/GNOME/gdk-pixbuf";
     license = licenses.lgpl21Plus;
     maintainers = [ maintainers.eelco ] ++ teams.gnome.members;
diff --git a/pkgs/development/libraries/gegl/default.nix b/pkgs/development/libraries/gegl/default.nix
index 93035b373eb45..addc4a9dbe448 100644
--- a/pkgs/development/libraries/gegl/default.nix
+++ b/pkgs/development/libraries/gegl/default.nix
@@ -31,6 +31,7 @@
 , openexr
 , OpenCL
 , suitesparse
+, withLuaJIT ? lib.meta.availableOn stdenv.hostPlatform luajit
 }:
 
 stdenv.mkDerivation rec {
@@ -71,13 +72,14 @@ stdenv.mkDerivation rec {
     libraw
     libwebp
     gexiv2
-    luajit
     openexr
     suitesparse
   ] ++ lib.optionals stdenv.isDarwin [
     OpenCL
   ] ++ lib.optionals stdenv.cc.isClang [
     llvmPackages.openmp
+  ] ++ lib.optionals withLuaJIT [
+    luajit
   ];
 
   # for gegl-4.0.pc
@@ -97,6 +99,8 @@ stdenv.mkDerivation rec {
     # Disabled due to multiple vulnerabilities, see
     # https://github.com/NixOS/nixpkgs/pull/73586
     "-Djasper=disabled"
+  ] ++ lib.optionals (!withLuaJIT) [
+    "-Dlua=disabled"
   ];
 
   postPatch = ''
diff --git a/pkgs/development/libraries/geis/default.nix b/pkgs/development/libraries/geis/default.nix
index 17ef806ec9ad7..17266481b27a3 100644
--- a/pkgs/development/libraries/geis/default.nix
+++ b/pkgs/development/libraries/geis/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl
 , pkg-config
 , python3Packages
-, wrapGAppsHook
+, wrapGAppsHook3
 , atk
 , dbus
 , evemu
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   pythonPath = with python3Packages;
     [ pygobject3  ];
 
-  nativeBuildInputs = [ pkg-config wrapGAppsHook python3Packages.wrapPython gobject-introspection ];
+  nativeBuildInputs = [ pkg-config wrapGAppsHook3 python3Packages.wrapPython gobject-introspection ];
   buildInputs = [ atk dbus evemu frame gdk-pixbuf grail
     gtk3 xorg.libX11 xorg.libXext xorg.libXi xorg.libXtst pango python3Packages.python xorgserver
   ];
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for input gesture recognition";
+    description = "Library for input gesture recognition";
     homepage = "https://launchpad.net/geis";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix
index ea3fd6e1ac784..8a895c36e8657 100644
--- a/pkgs/development/libraries/gensio/default.nix
+++ b/pkgs/development/libraries/gensio/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.8.4";
+  version = "2.8.5";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UPAYqgZSJMp6/pRIVJYqh8i5olBSVoMUv2zCd14JBOg=";
+    sha256 = "sha256-J1fP3CtTLkUMZxzsbu3ZMbg4ag1NFvaI5AibFT7eZso=";
   };
 
   passthru = {
diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix
index c2bf28d710452..3c6a40eeb5cb4 100644
--- a/pkgs/development/libraries/geoclue/default.nix
+++ b/pkgs/development/libraries/geoclue/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitLab
-, fetchpatch
 , intltool
 , meson
 , mesonEmulatorHook
@@ -19,7 +18,7 @@
 , avahi
 , glib-networking
 , python3
-, wrapGAppsHook
+, wrapGAppsHook3
 , gobject-introspection
 , vala
 , withDemoAgent ? false
@@ -48,7 +47,7 @@ stdenv.mkDerivation rec {
     intltool
     meson
     ninja
-    wrapGAppsHook
+    wrapGAppsHook3
     python3
     vala
     gobject-introspection
diff --git a/pkgs/development/libraries/geocode-glib/default.nix b/pkgs/development/libraries/geocode-glib/default.nix
index ee619aad89ead..c33b2cd6d3914 100644
--- a/pkgs/development/libraries/geocode-glib/default.nix
+++ b/pkgs/development/libraries/geocode-glib/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A convenience library for the geocoding and reverse geocoding using Nominatim service";
+    description = "Convenience library for the geocoding and reverse geocoding using Nominatim service";
     license = licenses.lgpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/geoip/default.nix b/pkgs/development/libraries/geoip/default.nix
index 4b12871e55678..cdb1a0a43e81b 100644
--- a/pkgs/development/libraries/geoip/default.nix
+++ b/pkgs/development/libraries/geoip/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit dataDir; };
 
   meta = with lib; {
-    description = "An API for GeoIP/Geolocation databases";
+    description = "API for GeoIP/Geolocation databases";
     maintainers = with maintainers; [ thoughtpolice raskin ];
     license = licenses.lgpl21;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/geos/3.11.nix b/pkgs/development/libraries/geos/3.11.nix
index 90bdfdb0d6058..dd18855508d13 100644
--- a/pkgs/development/libraries/geos/3.11.nix
+++ b/pkgs/development/libraries/geos/3.11.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation (finalAttrs: {
 
   nativeBuildInputs = [ cmake ];
 
+  # https://github.com/libgeos/geos/issues/930
+  cmakeFlags = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-DCMAKE_CTEST_ARGUMENTS=--exclude-regex;unit-geom-Envelope"
+  ];
+
   doCheck = true;
 
   passthru.tests = {
diff --git a/pkgs/development/libraries/getdns/default.nix b/pkgs/development/libraries/getdns/default.nix
index 96ebc4fb865de..7fb6411584608 100644
--- a/pkgs/development/libraries/getdns/default.nix
+++ b/pkgs/development/libraries/getdns/default.nix
@@ -36,7 +36,7 @@ in rec {
 
     meta = with lib;
       metaCommon // {
-        description = "A modern asynchronous DNS API";
+        description = "Modern asynchronous DNS API";
         longDescription = ''
           getdns is an implementation of a modern asynchronous DNS API; the
           specification was originally edited by Paul Hoffman. It is intended to make all
@@ -77,7 +77,7 @@ in rec {
 
     meta = with lib;
       metaCommon // {
-        description = "A local DNS Privacy stub resolver (using DNS-over-TLS)";
+        description = "Local DNS Privacy stub resolver (using DNS-over-TLS)";
         mainProgram = "stubby";
         longDescription = ''
           Stubby is an application that acts as a local DNS Privacy stub
diff --git a/pkgs/development/libraries/gettext/default.nix b/pkgs/development/libraries/gettext/default.nix
index 8f0b277a73c4c..7a0d7a3ee667b 100644
--- a/pkgs/development/libraries/gettext/default.nix
+++ b/pkgs/development/libraries/gettext/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, libiconv, xz, bash
+{ stdenv, lib, fetchurl, libiconv, bash, updateAutotoolsGnuConfigScriptsHook
 }:
 
 # Note: this package is used for bootstrapping fetchurl, and thus
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   LDFLAGS = lib.optionalString stdenv.isSunOS "-lm -lmd -lmp -luutil -lnvpair -lnsl -lidmap -lavl -lsec";
 
   configureFlags = [
-     "--disable-csharp" "--with-xz"
+     "--disable-csharp"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     # On cross building, gettext supposes that the wchar.h from libc
     # does not fulfill gettext needs, so it tries to work with its
@@ -51,8 +51,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   nativeBuildInputs = [
-    xz
-    xz.bin
+    updateAutotoolsGnuConfigScriptsHook
   ];
   buildInputs = lib.optionals (!stdenv.hostPlatform.isMinGW) [
     bash
diff --git a/pkgs/development/libraries/gflags/default.nix b/pkgs/development/libraries/gflags/default.nix
index 3f07a67cbdaeb..19926fb1d6ffe 100644
--- a/pkgs/development/libraries/gflags/default.nix
+++ b/pkgs/development/libraries/gflags/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A C++ library that implements commandline flags processing";
+    description = "C++ library that implements commandline flags processing";
     mainProgram = "gflags_completions.sh";
     longDescription = ''
       The gflags package contains a C++ library that implements commandline flags processing.
diff --git a/pkgs/development/libraries/giflib/default.nix b/pkgs/development/libraries/giflib/default.nix
index 9c24d11d4abc3..67677e8a85110 100644
--- a/pkgs/development/libraries/giflib/default.nix
+++ b/pkgs/development/libraries/giflib/default.nix
@@ -1,10 +1,8 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch
 , fixDarwinDylibNames
 , pkgsStatic
-, imagemagick_light
 }:
 
 stdenv.mkDerivation rec {
@@ -29,9 +27,7 @@ stdenv.mkDerivation rec {
     ./mingw-install-exes.patch
   ];
 
-  nativeBuildInputs = [
-    imagemagick_light
-  ] ++ lib.optionals stdenv.isDarwin [
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
     fixDarwinDylibNames
   ];
 
@@ -39,7 +35,11 @@ stdenv.mkDerivation rec {
     "PREFIX=${builtins.placeholder "out"}"
   ];
 
-  postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
+  postPatch = ''
+    # we don't want to build HTML documentation
+    substituteInPlace doc/Makefile \
+      --replace-fail "all: allhtml manpages" "all: manpages"
+  '' + lib.optionalString stdenv.hostPlatform.isStatic ''
     # Upstream build system does not support NOT building shared libraries.
     sed -i '/all:/ s/$(LIBGIFSO)//' Makefile
     sed -i '/all:/ s/$(LIBUTILSO)//' Makefile
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A library for reading and writing gif images";
+    description = "Library for reading and writing gif images";
     homepage = "https://giflib.sourceforge.net/";
     platforms = lib.platforms.unix ++ lib.platforms.windows;
     license = lib.licenses.mit;
diff --git a/pkgs/development/libraries/givaro/3.7.nix b/pkgs/development/libraries/givaro/3.7.nix
index 7ca154f18e069..7d7d414dfb274 100644
--- a/pkgs/development/libraries/givaro/3.7.nix
+++ b/pkgs/development/libraries/givaro/3.7.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook autoconf automake ];
   buildInputs = [libtool gmpxx];
   meta = {
-    description = "A C++ library for arithmetic and algebraic computations";
+    description = "C++ library for arithmetic and algebraic computations";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/givaro/3.nix b/pkgs/development/libraries/givaro/3.nix
index f52f23d15c12b..f03fef8aac163 100644
--- a/pkgs/development/libraries/givaro/3.nix
+++ b/pkgs/development/libraries/givaro/3.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook autoconf automake ];
   buildInputs = [libtool gmpxx];
   meta = {
-    description = "A C++ library for arithmetic and algebraic computations";
+    description = "C++ library for arithmetic and algebraic computations";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/givaro/default.nix b/pkgs/development/libraries/givaro/default.nix
index aca83ec4b8d68..44fe143968360 100644
--- a/pkgs/development/libraries/givaro/default.nix
+++ b/pkgs/development/libraries/givaro/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = {
-    description = "A C++ library for arithmetic and algebraic computations";
+    description = "C++ library for arithmetic and algebraic computations";
     mainProgram = "givaro-config";
     license = lib.licenses.cecill-b;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/development/libraries/gjs/default.nix b/pkgs/development/libraries/gjs/default.nix
index dc5f5e46975d2..604435cee5105 100644
--- a/pkgs/development/libraries/gjs/default.nix
+++ b/pkgs/development/libraries/gjs/default.nix
@@ -32,13 +32,13 @@ let
   ];
 in stdenv.mkDerivation (finalAttrs: {
   pname = "gjs";
-  version = "1.78.4";
+  version = "1.80.2";
 
   outputs = [ "out" "dev" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${lib.versions.majorMinor finalAttrs.version}/gjs-${finalAttrs.version}.tar.xz";
-    hash = "sha256-mux6uHLCBQQEkHrpTwrnq+yKVL2ciU3bXC0PUekyuaE=";
+    hash = "sha256-E145xaxZEJYjPlV8/ld9ZAk/UFRBHUfLLiFLrX1Bmb0=";
   };
 
   patches = [
@@ -47,6 +47,10 @@ in stdenv.mkDerivation (finalAttrs: {
 
     # Allow installing installed tests to a separate output.
     ./installed-tests-path.patch
+
+    # Disable introspection test in installed tests
+    # (minijasmine:1317): GLib-GIO-WARNING **: 17:33:39.556: Error creating IO channel for /proc/self/mountinfo: No such file or directory (g-io-error-quark, 1)
+    ./disable-introspection-test.patch
   ];
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gjs/disable-introspection-test.patch b/pkgs/development/libraries/gjs/disable-introspection-test.patch
new file mode 100644
index 0000000000000..1c438dd6b4019
--- /dev/null
+++ b/pkgs/development/libraries/gjs/disable-introspection-test.patch
@@ -0,0 +1,12 @@
+diff --git a/installed-tests/js/meson.build b/installed-tests/js/meson.build
+index 07759690..43c87c59 100644
+--- a/installed-tests/js/meson.build
++++ b/installed-tests/js/meson.build
+@@ -123,7 +123,6 @@ jasmine_tests = [
+     'GTypeClass',
+     'Importer',
+     'Importer2',
+-    'Introspection',
+     'Lang',
+     'LegacyByteArray',
+     'LegacyClass',
diff --git a/pkgs/development/libraries/gl2ps/default.nix b/pkgs/development/libraries/gl2ps/default.nix
index 2a02b5d767e06..dfc9e36488f86 100644
--- a/pkgs/development/libraries/gl2ps/default.nix
+++ b/pkgs/development/libraries/gl2ps/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://geuz.org/gl2ps";
-    description = "An OpenGL to PostScript printing library";
+    description = "OpenGL to PostScript printing library";
     platforms = platforms.all;
     license = licenses.lgpl2;
     maintainers = with maintainers; [ raskin twhitehead ];
diff --git a/pkgs/development/libraries/gl3w/default.nix b/pkgs/development/libraries/gl3w/default.nix
index fdfb203ba12b4..c0934e7d18f9b 100644
--- a/pkgs/development/libraries/gl3w/default.nix
+++ b/pkgs/development/libraries/gl3w/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gl3w";
-  version = "unstable-2023-10-10";
+  version = "0-unstable-2023-10-10";
 
   src = fetchFromGitHub {
     owner = "skaslev";
diff --git a/pkgs/development/libraries/glbinding/default.nix b/pkgs/development/libraries/glbinding/default.nix
index 6cbc5e99b1c3d..b19a890a25450 100644
--- a/pkgs/development/libraries/glbinding/default.nix
+++ b/pkgs/development/libraries/glbinding/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/cginternals/glbinding/";
-    description = "A C++ binding for the OpenGL API, generated using the gl.xml specification";
+    description = "C++ binding for the OpenGL API, generated using the gl.xml specification";
     license = licenses.mit;
     maintainers = [ maintainers.mt-caret ];
   };
diff --git a/pkgs/development/libraries/glew/1.10.nix b/pkgs/development/libraries/glew/1.10.nix
index 3f355deb33b92..7d8e0689c95ec 100644
--- a/pkgs/development/libraries/glew/1.10.nix
+++ b/pkgs/development/libraries/glew/1.10.nix
@@ -40,12 +40,14 @@ stdenv.mkDerivation (finalAttrs: {
 
   makeFlags = [
     "SYSTEM=${if stdenv.hostPlatform.isMinGW then "mingw" else stdenv.hostPlatform.parsed.kernel.name}"
+    "CC:=$(CC)"
+    "LD:=$(CC)"
   ];
 
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "An OpenGL extension loading library for C(++)";
+    description = "OpenGL extension loading library for C(++)";
     homepage = "https://glew.sourceforge.net/";
     license = licenses.free; # different files under different licenses
       #["BSD" "GLX" "SGI-B" "GPL2"]
diff --git a/pkgs/development/libraries/glew/default.nix b/pkgs/development/libraries/glew/default.nix
index 5e1c986be28f9..4681e4f6abce0 100644
--- a/pkgs/development/libraries/glew/default.nix
+++ b/pkgs/development/libraries/glew/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "An OpenGL extension loading library for C/C++";
+    description = "OpenGL extension loading library for C/C++";
     homepage = "https://glew.sourceforge.net/";
     license = with licenses; [ /* modified bsd */ free mit gpl2Only ]; # For full details, see https://github.com/nigels-com/glew#copyright-and-licensing
     pkgConfigModules = [ "glew" ];
diff --git a/pkgs/development/libraries/glfw/3.x.nix b/pkgs/development/libraries/glfw/3.x.nix
index 5e0b6adbb2267..67d5a0095148b 100644
--- a/pkgs/development/libraries/glfw/3.x.nix
+++ b/pkgs/development/libraries/glfw/3.x.nix
@@ -53,6 +53,11 @@ stdenv.mkDerivation rec {
       --replace "libxkbcommon.so.0" "${lib.getLib libxkbcommon}/lib/libxkbcommon.so.0"
   '';
 
+  # glfw may dlopen libwayland-client.so:
+  postFixup = lib.optionalString stdenv.isLinux ''
+    patchelf ''${!outputLib}/lib/libglfw.so --add-rpath ${lib.getLib wayland}/lib
+  '';
+
   meta = with lib; {
     description = "Multi-platform library for creating OpenGL contexts and managing input, including keyboard, mouse, joystick and time";
     homepage = "https://www.glfw.org/";
diff --git a/pkgs/development/libraries/glib-networking/default.nix b/pkgs/development/libraries/glib-networking/default.nix
index 39e17a894cb7d..d74acc063e5c0 100644
--- a/pkgs/development/libraries/glib-networking/default.nix
+++ b/pkgs/development/libraries/glib-networking/default.nix
@@ -19,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glib-networking";
-  version = "2.78.1";
+  version = "2.80.0";
 
   outputs = [ "out" "installedTests" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "5I8t27BJgyy7CSMFKcXkXayp8N8O2jJfgy9zeYWb8J8=";
+    hash = "sha256-2PTxqrITF5rjNRYXtZ2rXea8yeeFAh7uF4mY69S7Os8=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index cd03315c0b3c6..a60ba9fae6bfd 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -9,17 +9,25 @@
 , pkg-config
 , perl
 , python3
-, libiconv, zlib, libffi, pcre2, elfutils, gnome, libselinux, bash, gnum4, gtk-doc, docbook_xsl, docbook_xml_dtd_45, libxslt
+, python3Packages
+, libiconv, zlib, libffi, pcre2, elfutils, gnome, libselinux, bash, gnum4, libxslt
+, docutils, gi-docgen
 # use util-linuxMinimal to avoid circular dependency (util-linux, systemd, glib)
 , util-linuxMinimal ? null
 , buildPackages
 
 # this is just for tests (not in the closure of any regular package)
-, coreutils, dbus, libxml2, tzdata
+, coreutils, dbus, tzdata
 , desktop-file-utils, shared-mime-info
 , darwin
 , makeHardcodeGsettingsPatch
 , testers
+, gobject-introspection
+, mesonEmulatorHook
+, withIntrospection ?
+  stdenv.hostPlatform.emulatorAvailable buildPackages &&
+  lib.meta.availableOn stdenv.hostPlatform gobject-introspection &&
+  stdenv.hostPlatform.isLittleEndian == stdenv.buildPlatform.isLittleEndian
 }:
 
 assert stdenv.isLinux -> util-linuxMinimal != null;
@@ -38,16 +46,26 @@ let
     ln -sr -t "''${!outputInclude}/include/" "''${!outputInclude}"/lib/*/include/* 2>/dev/null || true
   '';
 
-  buildDocs = stdenv.hostPlatform == stdenv.buildPlatform && !stdenv.hostPlatform.isStatic;
+  gobject-introspection' = buildPackages.gobject-introspection.override {
+    propagateFullGlib = false;
+    # Avoid introducing cairo, which enables gobjectSupport by default.
+    x11Support = false;
+  };
+
+  librarySuffix = if (stdenv.hostPlatform.extensions.library == ".so") then "2.0.so.0"
+                  else if (stdenv.hostPlatform.extensions.library == ".dylib") then "2.0.0.dylib"
+                  else if (stdenv.hostPlatform.extensions.library == ".a") then "2.0.a"
+                  else if (stdenv.hostPlatform.extensions.library == ".dll") then "2.0-0.dll"
+                  else "2.0-0.lib";
 in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "glib";
-  version = "2.78.4";
+  version = "2.80.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${lib.versions.majorMinor finalAttrs.version}/glib-${finalAttrs.version}.tar.xz";
-    sha256 = "sha256-JLjgZy3KEgzDLTlLzLhYROcy4E/nXRi7BXOy28dUj2M=";
+    hash = "sha256-uc+296W9WzEjj9XVbfImst2l6jdhFHW/ifag+UAP6L0=";
   };
 
   patches = lib.optionals stdenv.isDarwin [
@@ -56,13 +74,28 @@ stdenv.mkDerivation (finalAttrs: {
     ./quark_init_on_demand.patch
     ./gobject_init_on_demand.patch
   ] ++ [
+    # Fix double-free & segfault issues on menu and dbus connection action group export failures
+    # https://gitlab.gnome.org/GNOME/glib/-/merge_requests/4073
+    # Remove when version > 2.80.2
     (fetchpatch {
-      name = "GLib-against-PCRE2-10.43.patch";
-      url = "https://gitlab.gnome.org/GNOME/glib/-/commit/cce3ae98a2c1966719daabff5a4ec6cf94a846f6.patch";
-      hash = "sha256-vgKzb5hQmFQGD8zxRrXnuX9Gpg/TeSrzehlOH2vA1xU=";
+      name = "GLib-Fix-memory-problems-on-gmenuexporter-and-gactiongroupexporter-error-paths.patch";
+      url = "https://gitlab.gnome.org/GNOME/glib/-/commit/b9490a499a004618c883f180b1081a166ff1a86b.patch";
+      hash = "sha256-c6uZ9NEhg26/2RdgjQ4s5ErCDm5HH6T/tfJXTwh/H6o=";
     })
 
+    # This patch lets GLib's GDesktopAppInfo API watch and notice changes
+    # to the Nix user and system profiles.  That way, the list of available
+    # applications shown by the desktop environment is immediately updated
+    # when the user installs or removes any
+    # (see <https://issues.guix.gnu.org/35594>).
+
+    # It does so by monitoring /nix/var/nix/profiles (for changes to the system
+    # profile) and /nix/var/nix/profiles/per-user/USER (for changes to the user
+    # profile) as well as /etc/profiles/per-user (for chanes to the user
+    # environment profile) and crawling their share/applications sub-directory when
+    # changes happen.
     ./glib-appinfo-watch.patch
+
     ./schema-override-variable.patch
 
     # Add support for Pantheon’s terminal emulator.
@@ -91,10 +124,6 @@ stdenv.mkDerivation (finalAttrs: {
     # 3. Tools for desktop environment that cannot go to $bin due to $out depending on them ($out)
     #    * gio-launch-desktop
     ./split-dev-programs.patch
-
-    # Disable flaky test.
-    # https://gitlab.gnome.org/GNOME/glib/-/issues/820
-    ./skip-timer-test.patch
   ];
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
@@ -113,48 +142,44 @@ stdenv.mkDerivation (finalAttrs: {
     util-linuxMinimal # for libmount
   ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     AppKit Carbon Cocoa CoreFoundation CoreServices Foundation
-  ]) ++ lib.optionals buildDocs [
-    # Note: this needs to be both in buildInputs and nativeBuildInputs. The
-    # Meson gtkdoc module uses find_program to look it up (-> build dep), but
-    # glib's own Meson configuration uses the host pkg-config to find its
-    # version (-> host dep). We could technically go and fix this in glib, add
-    # pkg-config to depsBuildBuild, but this would be a futile exercise since
-    # Meson's gtkdoc integration does not support cross compilation[1] anyway
-    # and this derivation disables the docs build when cross compiling.
-    #
-    # [1] https://github.com/mesonbuild/meson/issues/2003
-    gtk-doc
-  ];
+  ]);
 
   strictDeps = true;
 
+  depsBuildBuild = [
+    pkg-config # required to find native gi-docgen
+  ];
+
   nativeBuildInputs = [
+    docutils # for rst2man, rst2html5
     meson
     ninja
     pkg-config
     perl
     python3
+    python3Packages.packaging # mostly used to make meson happy
+    python3Packages.wrapPython # for patchPythonScript
     gettext
     libxslt
-    docbook_xsl
-  ] ++ lib.optionals buildDocs [
-    gtk-doc
-    docbook_xml_dtd_45
-    libxml2
+  ] ++ lib.optionals withIntrospection [
+    gi-docgen
+    gobject-introspection'
+  ] ++ lib.optionals (withIntrospection && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    mesonEmulatorHook
   ];
 
   propagatedBuildInputs = [ zlib libffi gettext libiconv ];
 
   mesonFlags = [
-    # Avoid the need for gobject introspection binaries in PATH in cross-compiling case.
-    # Instead we just copy them over from the native output.
-    "-Dgtk_doc=${lib.boolToString buildDocs}"
+    "-Ddocumentation=true" # gvariant specification can be built without gi-docgen
     "-Dnls=enabled"
     "-Ddevbindir=${placeholder "dev"}/bin"
+    (lib.mesonEnable "introspection" withIntrospection)
+    # FIXME: Fails when linking target glib/tests/libconstructor-helper.so
+    # relocation R_X86_64_32 against hidden symbol `__TMC_END__' can not be used when making a shared object
+    "-Dtests=${lib.boolToString (!stdenv.hostPlatform.isStatic)}"
   ] ++ lib.optionals (!lib.meta.availableOn stdenv.hostPlatform elfutils) [
     "-Dlibelf=disabled"
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    "-Dman=true"                # broken on Darwin
   ] ++ lib.optionals stdenv.isFreeBSD [
     "-Db_lundef=false"
     "-Dxattr=false"
@@ -168,14 +193,11 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   postPatch = ''
-    chmod +x gio/tests/gengiotypefuncs.py
-    patchShebangs gio/tests/gengiotypefuncs.py
-    chmod +x docs/reference/gio/concat-files-helper.py
-    patchShebangs docs/reference/gio/concat-files-helper.py
     patchShebangs glib/gen-unicode-tables.pl
     patchShebangs glib/tests/gen-casefold-txt.py
     patchShebangs glib/tests/gen-casemap-txt.py
     patchShebangs tools/gen-visibility-macros.py
+    patchShebangs tests
 
     # Needs machine-id, comment the test
     sed -e '/\/gdbus\/codegen-peer-to-peer/ s/^\/*/\/\//' -i gio/tests/gdbus-peer.c
@@ -211,8 +233,11 @@ stdenv.mkDerivation (finalAttrs: {
     for i in $dev/bin/*; do
       moveToOutput "share/bash-completion/completions/''${i##*/}" "$dev"
     done
-  '' + lib.optionalString (!buildDocs) ''
-    cp -r ${buildPackages.glib.devdoc} $devdoc
+  '';
+
+  preFixup = lib.optionalString (!stdenv.hostPlatform.isStatic) ''
+    buildPythonPath ${python3Packages.packaging}
+    patchPythonScript "$dev/share/glib-2.0/codegen/utils.py"
   '';
 
   # Move man pages to the same output as their binaries (needs to be
@@ -222,10 +247,14 @@ stdenv.mkDerivation (finalAttrs: {
     for i in $dev/bin/*; do
       moveToOutput "share/man/man1/''${i##*/}.1.*" "$dev"
     done
+
+    # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
+    moveToOutput "share/doc" "$devdoc"
   '';
 
   nativeCheckInputs = [ tzdata desktop-file-utils shared-mime-info ];
 
+  # Conditional necessary to break infinite recursion with passthru.tests
   preCheck = lib.optionalString finalAttrs.finalPackage.doCheck or config.doCheckByDefault or false ''
     export LD_LIBRARY_PATH="$NIX_BUILD_TOP/glib-${finalAttrs.version}/glib/.libs''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
     export TZDIR="${tzdata}/share/zoneinfo"
@@ -234,8 +263,26 @@ stdenv.mkDerivation (finalAttrs: {
     export HOME="$TMP"
     export XDG_DATA_DIRS="${desktop-file-utils}/share:${shared-mime-info}/share"
     export G_TEST_DBUS_DAEMON="${dbus}/bin/dbus-daemon"
-    export PATH="$PATH:$(pwd)/gobject"
+
+    # pkg_config_tests expects a PKG_CONFIG_PATH that points to meson-private, wrapped pkg-config
+    # tries to be clever and picks up the wrong glib at the end.
+    export PATH="${buildPackages.pkg-config-unwrapped}/bin:$PATH:$(pwd)/gobject"
     echo "PATH=$PATH"
+
+    # Our gobject-introspection patches make the shared library paths absolute
+    # in the GIR files. When running tests, the library is not yet installed,
+    # though, so we need to replace the absolute path with a local one during build.
+    # We are using a symlink that we will delete before installation.
+    mkdir -p $out/lib
+    ln -s $PWD/gobject/libgobject-${librarySuffix} $out/lib/libgobject-${librarySuffix}
+    ln -s $PWD/gio/libgio-${librarySuffix} $out/lib/libgio-${librarySuffix}
+    ln -s $PWD/glib/libglib-${librarySuffix} $out/lib/libglib-${librarySuffix}
+  '';
+
+  postCheck = ''
+    rm $out/lib/libgobject-${librarySuffix}
+    rm $out/lib/libgio-${librarySuffix}
+    rm $out/lib/libglib-${librarySuffix}
   '';
 
   separateDebugInfo = stdenv.isLinux;
diff --git a/pkgs/development/libraries/glib/elementary-terminal-support.patch b/pkgs/development/libraries/glib/elementary-terminal-support.patch
index 34a56c8487aee..5178f9d016cae 100644
--- a/pkgs/development/libraries/glib/elementary-terminal-support.patch
+++ b/pkgs/development/libraries/glib/elementary-terminal-support.patch
@@ -1,8 +1,8 @@
 diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
-index 30fcb2937..a6a7163a7 100644
+index 87db7a97a..bf01fb6b6 100644
 --- a/gio/gdesktopappinfo.c
 +++ b/gio/gdesktopappinfo.c
-@@ -2704,6 +2704,7 @@ prepend_terminal_to_vector (int          *argc,
+@@ -2697,6 +2697,7 @@ prepend_terminal_to_vector (int          *argc,
      { "gnome-terminal", "--" },
      { "mate-terminal", "-x" },
      { "xfce4-terminal", "-x" },
diff --git a/pkgs/development/libraries/glib/glib-appinfo-watch.patch b/pkgs/development/libraries/glib/glib-appinfo-watch.patch
index cbd78a6db4a6f..43641301d3ef6 100644
--- a/pkgs/development/libraries/glib/glib-appinfo-watch.patch
+++ b/pkgs/development/libraries/glib/glib-appinfo-watch.patch
@@ -1,20 +1,8 @@
-This patch lets GLib's GDesktopAppInfo API watch and notice changes
-to the Nix user and system profiles.  That way, the list of available
-applications shown by the desktop environment is immediately updated
-when the user installs or removes any
-(see <https://issues.guix.gnu.org/35594>).
-
-It does so by monitoring /nix/var/nix/profiles (for changes to the system
-profile) and /nix/var/nix/profiles/per-user/USER (for changes to the user
-profile) as well as /etc/profiles/per-user (for chanes to the user
-environment profile) and crawling their share/applications sub-directory when
-changes happen.
-
 diff --git a/gio/gdesktopappinfo.c b/gio/gdesktopappinfo.c
-index b779b30..31069f7 100644
+index 87db7a97a..2e1689ed7 100644
 --- a/gio/gdesktopappinfo.c
 +++ b/gio/gdesktopappinfo.c
-@@ -150,6 +150,7 @@ typedef struct
+@@ -147,6 +147,7 @@ typedef struct
    gchar                      *alternatively_watching;
    gboolean                    is_config;
    gboolean                    is_setup;
@@ -22,7 +10,7 @@ index b779b30..31069f7 100644
    GFileMonitor               *monitor;
    GHashTable                 *app_names;
    GHashTable                 *mime_tweaks;
-@@ -181,6 +182,7 @@ desktop_file_dir_unref (DesktopFileDir *dir)
+@@ -179,6 +180,7 @@ desktop_file_dir_unref (DesktopFileDir *dir)
      {
        desktop_file_dir_reset (dir);
        g_free (dir->path);
@@ -30,7 +18,7 @@ index b779b30..31069f7 100644
        g_free (dir);
      }
  }
-@@ -205,6 +207,14 @@ desktop_file_dir_get_alternative_dir (DesktopFileDir *dir)
+@@ -203,6 +205,14 @@ desktop_file_dir_get_alternative_dir (DesktopFileDir *dir)
  {
    gchar *parent;
  
@@ -45,7 +33,7 @@ index b779b30..31069f7 100644
    /* If the directory itself exists then we need no alternative. */
    if (g_access (dir->path, R_OK | X_OK) == 0)
      return NULL;
-@@ -250,11 +260,11 @@ desktop_file_dir_changed (GFileMonitor      *monitor,
+@@ -248,11 +258,11 @@ desktop_file_dir_changed (GFileMonitor      *monitor,
     *
     * If this is a notification for a parent directory (because the
     * desktop directory didn't exist) then we shouldn't fire the signal
@@ -59,7 +47,7 @@ index b779b30..31069f7 100644
      {
        gchar *alternative_dir;
  
-@@ -1556,6 +1566,40 @@ desktop_file_dirs_lock (void)
+@@ -1650,6 +1660,40 @@ desktop_file_dirs_lock (void)
        for (i = 0; dirs[i]; i++)
          g_ptr_array_add (desktop_file_dirs, desktop_file_dir_new (dirs[i]));
  
@@ -84,7 +72,7 @@ index b779b30..31069f7 100644
 +            user_data_dir = g_build_filename (profile_dir, "profile", "share", NULL);
 +            user_profile_dir = desktop_file_dir_new (user_data_dir);
 +            user_profile_dir->nix_profile_watch_dir = profile_dir;
-+            
++
 +            env_dir = g_build_filename ("/etc/profiles/per-user", NULL);
 +            env_data_dir = g_build_filename (env_dir, user, "share", NULL);
 +            user_env_dir = desktop_file_dir_new (env_data_dir);
diff --git a/pkgs/development/libraries/glib/schema-override-variable.patch b/pkgs/development/libraries/glib/schema-override-variable.patch
index f98af04a7f245..84d3e93730a59 100644
--- a/pkgs/development/libraries/glib/schema-override-variable.patch
+++ b/pkgs/development/libraries/glib/schema-override-variable.patch
@@ -1,8 +1,8 @@
 diff --git a/gio/gsettingsschema.c b/gio/gsettingsschema.c
-index 1282c10a1..feadfe3aa 100644
+index b1918657d..504ff97c4 100644
 --- a/gio/gsettingsschema.c
 +++ b/gio/gsettingsschema.c
-@@ -360,6 +360,9 @@ initialise_schema_sources (void)
+@@ -356,6 +356,9 @@ initialise_schema_sources (void)
  
        try_prepend_data_dir (g_get_user_data_dir ());
  
diff --git a/pkgs/development/libraries/glib/skip-timer-test.patch b/pkgs/development/libraries/glib/skip-timer-test.patch
deleted file mode 100644
index 942f3e7864c4f..0000000000000
--- a/pkgs/development/libraries/glib/skip-timer-test.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: Skip test which performs some unreliable floating point comparisons
-Forwarded: https://bugzilla.gnome.org/show_bug.cgi?id=722604
-
-Index: b/glib/tests/timer.c
-===================================================================
---- a/glib/tests/timer.c
-+++ b/glib/tests/timer.c
-@@ -203,7 +203,7 @@
- {
-   g_test_init (&argc, &argv, NULL);
- 
--  g_test_add_func ("/timer/basic", test_timer_basic);
-+/*  g_test_add_func ("/timer/basic", test_timer_basic);*/
--  g_test_add_func ("/timer/stop", test_timer_stop);
-+/*  g_test_add_func ("/timer/stop", test_timer_stop);*/
-   g_test_add_func ("/timer/continue", test_timer_continue);
-   g_test_add_func ("/timer/reset", test_timer_reset);
diff --git a/pkgs/development/libraries/glib/split-dev-programs.patch b/pkgs/development/libraries/glib/split-dev-programs.patch
index 0333c5c9ca295..b32fccb8379f4 100644
--- a/pkgs/development/libraries/glib/split-dev-programs.patch
+++ b/pkgs/development/libraries/glib/split-dev-programs.patch
@@ -1,5 +1,5 @@
 diff --git a/gio/gdbus-2.0/codegen/meson.build b/gio/gdbus-2.0/codegen/meson.build
-index 65faae9b2..4297513d4 100644
+index 6d19cd4ba..0205e5074 100644
 --- a/gio/gdbus-2.0/codegen/meson.build
 +++ b/gio/gdbus-2.0/codegen/meson.build
 @@ -20,7 +20,7 @@ gdbus_codegen_conf.set('DATADIR', glib_datadir)
@@ -12,13 +12,13 @@ index 65faae9b2..4297513d4 100644
    configuration : gdbus_codegen_conf
  )
 diff --git a/gio/meson.build b/gio/meson.build
-index 75686bb3e..2f1a73482 100644
+index 59c2b0fc0..87cbb8229 100644
 --- a/gio/meson.build
 +++ b/gio/meson.build
-@@ -882,14 +882,15 @@ pkg.generate(libgio,
+@@ -885,14 +885,15 @@ pkg.generate(libgio,
+   variables : [
      'schemasdir=' + '${datadir}' / schemas_subdir,
      'dtdsdir=' + '${datadir}' / dtds_subdir,
-     'bindir=' + '${prefix}' / get_option('bindir'),
 +    'devbindir=' + get_option('devbindir'),
      'giomoduledir=' + pkgconfig_giomodulesdir,
      'gio=' + '${bindir}' / 'gio',
@@ -36,7 +36,7 @@ index 75686bb3e..2f1a73482 100644
      'gsettings=' + '${bindir}' / 'gsettings',
    ],
    version : glib_version,
-@@ -992,6 +993,7 @@ executable('gio', gio_tool_sources,
+@@ -995,6 +996,7 @@ gio_tool = executable('gio', gio_tool_sources,
  
  executable('gresource', 'gresource-tool.c',
    install : true,
@@ -44,7 +44,7 @@ index 75686bb3e..2f1a73482 100644
    install_tag : 'bin',
    # intl.lib is not compatible with SAFESEH
    link_args : noseh_link_args,
-@@ -999,7 +1001,7 @@ executable('gresource', 'gresource-tool.c',
+@@ -1002,7 +1004,7 @@ executable('gresource', 'gresource-tool.c',
  
  gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodule-priv.c',
    install : true,
@@ -53,7 +53,7 @@ index 75686bb3e..2f1a73482 100644
    install_tag : 'bin',
    c_args : gio_c_args,
    # intl.lib is not compatible with SAFESEH
-@@ -1009,7 +1011,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
+@@ -1012,7 +1014,7 @@ gio_querymodules = executable('gio-querymodules', 'gio-querymodules.c', 'giomodu
  glib_compile_schemas = executable('glib-compile-schemas',
    ['glib-compile-schemas.c'],
    install : true,
@@ -62,7 +62,7 @@ index 75686bb3e..2f1a73482 100644
    install_tag : 'bin',
    # intl.lib is not compatible with SAFESEH
    link_args : noseh_link_args,
-@@ -1018,6 +1020,7 @@ glib_compile_schemas = executable('glib-compile-schemas',
+@@ -1021,6 +1023,7 @@ glib_compile_schemas = executable('glib-compile-schemas',
  glib_compile_resources = executable('glib-compile-resources',
    [gconstructor_as_data_h, 'glib-compile-resources.c'],
    install : true,
@@ -71,10 +71,10 @@ index 75686bb3e..2f1a73482 100644
    c_args : gio_c_args,
    # intl.lib is not compatible with SAFESEH
 diff --git a/gio/tests/meson.build b/gio/tests/meson.build
-index 4ef3343ab..2a0a6b56b 100644
+index 232ecca5e..e292927ac 100644
 --- a/gio/tests/meson.build
 +++ b/gio/tests/meson.build
-@@ -1131,16 +1131,18 @@ if have_bash and have_pkg_config
+@@ -1182,16 +1182,18 @@ if have_bash and have_pkg_config
  
    gio_binaries = [
      'gio',
@@ -97,7 +97,7 @@ index 4ef3343ab..2a0a6b56b 100644
  
    foreach binary: gio_binaries
      pkg_config_tests += [
-@@ -1149,6 +1151,13 @@ if have_bash and have_pkg_config
+@@ -1200,6 +1202,13 @@ if have_bash and have_pkg_config
          prefix / get_option('bindir') / binary)
      ]
    endforeach
@@ -112,13 +112,13 @@ index 4ef3343ab..2a0a6b56b 100644
    foreach binary: gio_multiarch_binaries
      pkg_config_tests += [
 diff --git a/glib/meson.build b/glib/meson.build
-index c26a35e42..38effe12a 100644
+index d2efebadc..eb9fa5b2f 100644
 --- a/glib/meson.build
 +++ b/glib/meson.build
 @@ -447,9 +447,10 @@ pkg.generate(libglib,
+   subdirs : ['glib-2.0'],
+   extra_cflags : ['-I${libdir}/glib-2.0/include'] + win32_cflags,
    variables : [
-     'bindir=' + '${prefix}' / get_option('bindir'),
-     'datadir=' + '${prefix}' / get_option('datadir'),
 -    'glib_genmarshal=' + '${bindir}' / 'glib-genmarshal',
 -    'gobject_query=' + '${bindir}' / 'gobject-query',
 -    'glib_mkenums=' + '${bindir}' / 'glib-mkenums',
@@ -147,10 +147,10 @@ index c26a35e42..38effe12a 100644
    configuration: report_conf,
    install_mode: 'rwxr-xr-x'
 diff --git a/glib/tests/meson.build b/glib/tests/meson.build
-index 09ecd5ab3..9748d4122 100644
+index f6efc593a..5522dcb96 100644
 --- a/glib/tests/meson.build
 +++ b/glib/tests/meson.build
-@@ -508,9 +508,9 @@ if have_bash and have_pkg_config
+@@ -568,9 +568,9 @@ if have_bash and have_pkg_config
          'test "$(pkg-config --variable=datadir glib-2.0)" = "@0@"'.format(
            prefix / get_option('datadir')),
          'test "$(pkg-config --variable=gobject_query glib-2.0)" = "@0@"'.format(
@@ -184,7 +184,7 @@ index 2129aaf8a..da8462428 100644
    dependencies : [libglib_dep, libgobject_dep])
  
 diff --git a/meson_options.txt b/meson_options.txt
-index 517d5757c..198cc1b3c 100644
+index 69a2135bc..cfe14bb09 100644
 --- a/meson_options.txt
 +++ b/meson_options.txt
 @@ -4,6 +4,11 @@ option('runtime_libdir',
diff --git a/pkgs/development/libraries/glibc/2.39-master.patch b/pkgs/development/libraries/glibc/2.39-master.patch
index 3e0815573f5eb..88e629981e3ce 100644
--- a/pkgs/development/libraries/glibc/2.39-master.patch
+++ b/pkgs/development/libraries/glibc/2.39-master.patch
@@ -6,14 +6,6 @@ Date:   Wed Jan 31 02:12:43 2024 +0100
     
     Signed-off-by: Andreas K. Hüttel <dilfridge@gentoo.org>
 
-diff --git a/ADVISORIES b/ADVISORIES
-new file mode 100644
-index 0000000000..d4e33f2df3
---- /dev/null
-+++ b/ADVISORIES
-@@ -0,0 +1,2 @@
-+For the GNU C Library Security Advisories, see the git master branch:
-+https://sourceware.org/git/?p=glibc.git;a=tree;f=advisories;hb=HEAD
 diff --git a/advisories/GLIBC-SA-2023-0001 b/advisories/GLIBC-SA-2023-0001
 deleted file mode 100644
 index 3d19c91b6a..0000000000
@@ -564,3 +556,10302 @@ index 470676ab2b..2bc7124983 100644
 -#define TEST_FUNCTION do_test ()
 -#include "../test-skeleton.c"
 +#include <support/test-driver.c>
+
+commit 1b9c1a0047fb26a65a9b2a7b8cd977243f7d353c
+Author: Jakub Jelinek <jakub@redhat.com>
+Date:   Wed Jan 31 19:17:27 2024 +0100
+
+    Use gcc __builtin_stdc_* builtins in stdbit.h if possible
+    
+    The following patch uses the GCC 14 __builtin_stdc_* builtins in stdbit.h
+    for the type-generic macros, so that when compiled with GCC 14 or later,
+    it supports not just 8/16/32/64-bit unsigned integers, but also 128-bit
+    (if target supports them) and unsigned _BitInt (any supported precision).
+    And so that the macros don't expand arguments multiple times and can be
+    evaluated in constant expressions.
+    
+    The new testcase is gcc's gcc/testsuite/gcc.dg/builtin-stdc-bit-1.c
+    adjusted to test stdbit.h and the type-generic macros in there instead
+    of the builtins and adjusted to use glibc test framework rather than
+    gcc style tests with __builtin_abort ().
+    
+    Signed-off-by: Jakub Jelinek <jakub@redhat.com>
+    Reviewed-by: Joseph Myers <josmyers@redhat.com>
+    (cherry picked from commit da89496337b97e6a2aaf1e81d55cf998f6db1070)
+
+diff --git a/manual/stdbit.texi b/manual/stdbit.texi
+index fe41c671d8..6c75ed9a20 100644
+--- a/manual/stdbit.texi
++++ b/manual/stdbit.texi
+@@ -32,7 +32,13 @@ and @code{unsigned long long int}.  In addition, there is a
+ corresponding type-generic macro (not listed below), named the same as
+ the functions but without any suffix such as @samp{_uc}.  The
+ type-generic macro can only be used with an argument of an unsigned
+-integer type with a width of 8, 16, 32 or 64 bits.
++integer type with a width of 8, 16, 32 or 64 bits, or when using
++a compiler with support for
++@uref{https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html,@code{__builtin_stdc_bit_ceil}},
++etc.@:, built-in functions such as GCC 14.1 or later
++any unsigned integer type those built-in functions support.
++In GCC 14.1 that includes support for @code{unsigned __int128} and
++@code{unsigned _BitInt(@var{n})} if supported by the target.
+ 
+ @deftypefun {unsigned int} stdc_leading_zeros_uc (unsigned char @var{x})
+ @deftypefunx {unsigned int} stdc_leading_zeros_us (unsigned short @var{x})
+diff --git a/stdlib/Makefile b/stdlib/Makefile
+index d587f054d1..9898cc5d8a 100644
+--- a/stdlib/Makefile
++++ b/stdlib/Makefile
+@@ -308,6 +308,7 @@ tests := \
+   tst-setcontext10 \
+   tst-setcontext11 \
+   tst-stdbit-Wconversion \
++  tst-stdbit-builtins \
+   tst-stdc_bit_ceil \
+   tst-stdc_bit_floor \
+   tst-stdc_bit_width \
+diff --git a/stdlib/stdbit.h b/stdlib/stdbit.h
+index f334eb174d..2801590c63 100644
+--- a/stdlib/stdbit.h
++++ b/stdlib/stdbit.h
+@@ -64,9 +64,13 @@ extern unsigned int stdc_leading_zeros_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_leading_zeros_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_leading_zeros(x)				\
++#if __glibc_has_builtin (__builtin_stdc_leading_zeros)
++# define stdc_leading_zeros(x) (__builtin_stdc_leading_zeros (x))
++#else
++# define stdc_leading_zeros(x)				\
+   (stdc_leading_zeros_ull (x)				\
+    - (unsigned int) (8 * (sizeof (0ULL) - sizeof (x))))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline unsigned int
+@@ -116,9 +120,13 @@ extern unsigned int stdc_leading_ones_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_leading_ones_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_leading_ones(x)					\
++#if __glibc_has_builtin (__builtin_stdc_leading_ones)
++# define stdc_leading_ones(x) (__builtin_stdc_leading_ones (x))
++#else
++# define stdc_leading_ones(x)					\
+   (stdc_leading_ones_ull ((unsigned long long int) (x)		\
+ 			  << 8 * (sizeof (0ULL) - sizeof (x))))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline unsigned int
+@@ -168,11 +176,15 @@ extern unsigned int stdc_trailing_zeros_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_trailing_zeros_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_trailing_zeros(x)				\
++#if __glibc_has_builtin (__builtin_stdc_trailing_zeros)
++# define stdc_trailing_zeros(x) (__builtin_stdc_trailing_zeros (x))
++#else
++# define stdc_trailing_zeros(x)				\
+   (sizeof (x) == 8 ? stdc_trailing_zeros_ull (x)	\
+    : sizeof (x) == 4 ? stdc_trailing_zeros_ui (x)	\
+    : sizeof (x) == 2 ? stdc_trailing_zeros_us (__pacify_uint16 (x))	\
+    : stdc_trailing_zeros_uc (__pacify_uint8 (x)))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_ctzll)
+ static __always_inline unsigned int
+@@ -222,7 +234,11 @@ extern unsigned int stdc_trailing_ones_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_trailing_ones_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_trailing_ones(x) (stdc_trailing_ones_ull (x))
++#if __glibc_has_builtin (__builtin_stdc_trailing_ones)
++# define stdc_trailing_ones(x) (__builtin_stdc_trailing_ones (x))
++#else
++# define stdc_trailing_ones(x) (stdc_trailing_ones_ull (x))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_ctzll)
+ static __always_inline unsigned int
+@@ -272,11 +288,15 @@ extern unsigned int stdc_first_leading_zero_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_first_leading_zero_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_first_leading_zero(x)			\
++#if __glibc_has_builtin (__builtin_stdc_first_leading_zero)
++# define stdc_first_leading_zero(x) (__builtin_stdc_first_leading_zero (x))
++#else
++# define stdc_first_leading_zero(x)			\
+   (sizeof (x) == 8 ? stdc_first_leading_zero_ull (x)	\
+    : sizeof (x) == 4 ? stdc_first_leading_zero_ui (x)	\
+    : sizeof (x) == 2 ? stdc_first_leading_zero_us (__pacify_uint16 (x))	\
+    : stdc_first_leading_zero_uc (__pacify_uint8 (x)))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline unsigned int
+@@ -326,11 +346,15 @@ extern unsigned int stdc_first_leading_one_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_first_leading_one_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_first_leading_one(x)			\
++#if __glibc_has_builtin (__builtin_stdc_first_leading_one)
++# define stdc_first_leading_one(x) (__builtin_stdc_first_leading_one (x))
++#else
++# define stdc_first_leading_one(x)			\
+   (sizeof (x) == 8 ? stdc_first_leading_one_ull (x)	\
+    : sizeof (x) == 4 ? stdc_first_leading_one_ui (x)	\
+    : sizeof (x) == 2 ? stdc_first_leading_one_us (__pacify_uint16 (x))	\
+    : stdc_first_leading_one_uc (__pacify_uint8 (x)))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline unsigned int
+@@ -380,11 +404,15 @@ extern unsigned int stdc_first_trailing_zero_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_first_trailing_zero_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_first_trailing_zero(x)			\
++#if __glibc_has_builtin (__builtin_stdc_first_trailing_zero)
++# define stdc_first_trailing_zero(x) (__builtin_stdc_first_trailing_zero (x))
++#else
++# define stdc_first_trailing_zero(x)			\
+   (sizeof (x) == 8 ? stdc_first_trailing_zero_ull (x)	\
+    : sizeof (x) == 4 ? stdc_first_trailing_zero_ui (x)	\
+    : sizeof (x) == 2 ? stdc_first_trailing_zero_us (__pacify_uint16 (x)) \
+    : stdc_first_trailing_zero_uc (__pacify_uint8 (x)))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_ctzll)
+ static __always_inline unsigned int
+@@ -434,11 +462,15 @@ extern unsigned int stdc_first_trailing_one_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_first_trailing_one_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_first_trailing_one(x)			\
++#if __glibc_has_builtin (__builtin_stdc_first_trailing_one)
++# define stdc_first_trailing_one(x) (__builtin_stdc_first_trailing_one (x))
++#else
++# define stdc_first_trailing_one(x)			\
+   (sizeof (x) == 8 ? stdc_first_trailing_one_ull (x)	\
+    : sizeof (x) == 4 ? stdc_first_trailing_one_ui (x)	\
+    : sizeof (x) == 2 ? stdc_first_trailing_one_us (__pacify_uint16 (x))	\
+    : stdc_first_trailing_one_uc (__pacify_uint8 (x)))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_ctzll)
+ static __always_inline unsigned int
+@@ -488,9 +520,13 @@ extern unsigned int stdc_count_zeros_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_count_zeros_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_count_zeros(x)				\
++#if __glibc_has_builtin (__builtin_stdc_count_zeros)
++# define stdc_count_zeros(x) (__builtin_stdc_count_zeros (x))
++#else
++# define stdc_count_zeros(x)				\
+   (stdc_count_zeros_ull (x)				\
+    - (unsigned int) (8 * (sizeof (0ULL) - sizeof (x))))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_popcountll)
+ static __always_inline unsigned int
+@@ -540,7 +576,11 @@ extern unsigned int stdc_count_ones_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_count_ones_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_count_ones(x) (stdc_count_ones_ull (x))
++#if __glibc_has_builtin (__builtin_stdc_count_ones)
++# define stdc_count_ones(x) (__builtin_stdc_count_ones (x))
++#else
++# define stdc_count_ones(x) (stdc_count_ones_ull (x))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_popcountll)
+ static __always_inline unsigned int
+@@ -590,10 +630,14 @@ extern bool stdc_has_single_bit_ul (unsigned long int __x)
+ __extension__
+ extern bool stdc_has_single_bit_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_has_single_bit(x)				\
++#if __glibc_has_builtin (__builtin_stdc_has_single_bit)
++# define stdc_has_single_bit(x) (__builtin_stdc_has_single_bit (x))
++#else
++# define stdc_has_single_bit(x)				\
+   ((bool) (sizeof (x) <= sizeof (unsigned int)		\
+ 	   ? stdc_has_single_bit_ui (x)			\
+ 	   : stdc_has_single_bit_ull (x)))
++#endif
+ 
+ static __always_inline bool
+ __hsb64_inline (uint64_t __x)
+@@ -641,7 +685,11 @@ extern unsigned int stdc_bit_width_ul (unsigned long int __x)
+ __extension__
+ extern unsigned int stdc_bit_width_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_bit_width(x) (stdc_bit_width_ull (x))
++#if __glibc_has_builtin (__builtin_stdc_bit_width)
++# define stdc_bit_width(x) (__builtin_stdc_bit_width (x))
++#else
++# define stdc_bit_width(x) (stdc_bit_width_ull (x))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline unsigned int
+@@ -691,7 +739,11 @@ extern unsigned long int stdc_bit_floor_ul (unsigned long int __x)
+ __extension__
+ extern unsigned long long int stdc_bit_floor_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_bit_floor(x) ((__typeof (x)) stdc_bit_floor_ull (x))
++#if __glibc_has_builtin (__builtin_stdc_bit_floor)
++# define stdc_bit_floor(x) (__builtin_stdc_bit_floor (x))
++#else
++# define stdc_bit_floor(x) ((__typeof (x)) stdc_bit_floor_ull (x))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline uint64_t
+@@ -743,7 +795,11 @@ extern unsigned long int stdc_bit_ceil_ul (unsigned long int __x)
+ __extension__
+ extern unsigned long long int stdc_bit_ceil_ull (unsigned long long int __x)
+      __THROW __attribute_const__;
+-#define stdc_bit_ceil(x) ((__typeof (x)) stdc_bit_ceil_ull (x))
++#if __glibc_has_builtin (__builtin_stdc_bit_ceil)
++# define stdc_bit_ceil(x) (__builtin_stdc_bit_ceil (x))
++#else
++# define stdc_bit_ceil(x) ((__typeof (x)) stdc_bit_ceil_ull (x))
++#endif
+ 
+ #if __GNUC_PREREQ (3, 4) || __glibc_has_builtin (__builtin_clzll)
+ static __always_inline uint64_t
+diff --git a/stdlib/tst-stdbit-builtins.c b/stdlib/tst-stdbit-builtins.c
+new file mode 100644
+index 0000000000..536841ca8a
+--- /dev/null
++++ b/stdlib/tst-stdbit-builtins.c
+@@ -0,0 +1,778 @@
++/* Test <stdbit.h> type-generic macros with compiler __builtin_stdc_* support.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <stdbit.h>
++#include <limits.h>
++#include <support/check.h>
++
++#if __glibc_has_builtin (__builtin_stdc_leading_zeros) \
++    && __glibc_has_builtin (__builtin_stdc_leading_ones) \
++    && __glibc_has_builtin (__builtin_stdc_trailing_zeros) \
++    && __glibc_has_builtin (__builtin_stdc_trailing_ones) \
++    && __glibc_has_builtin (__builtin_stdc_first_leading_zero) \
++    && __glibc_has_builtin (__builtin_stdc_first_leading_one) \
++    && __glibc_has_builtin (__builtin_stdc_first_trailing_zero) \
++    && __glibc_has_builtin (__builtin_stdc_first_trailing_one) \
++    && __glibc_has_builtin (__builtin_stdc_count_zeros) \
++    && __glibc_has_builtin (__builtin_stdc_count_ones) \
++    && __glibc_has_builtin (__builtin_stdc_has_single_bit) \
++    && __glibc_has_builtin (__builtin_stdc_bit_width) \
++    && __glibc_has_builtin (__builtin_stdc_bit_floor) \
++    && __glibc_has_builtin (__builtin_stdc_bit_ceil)
++
++# if !defined (BITINT_MAXWIDTH) && defined (__BITINT_MAXWIDTH__)
++#  define BITINT_MAXWIDTH __BITINT_MAXWIDTH__
++# endif
++
++typedef unsigned char uc;
++typedef unsigned short us;
++typedef unsigned int ui;
++typedef unsigned long int ul;
++typedef unsigned long long int ull;
++
++# define expr_has_type(e, t) _Generic (e, default : 0, t : 1)
++
++static int
++do_test (void)
++{
++  TEST_COMPARE (stdc_leading_zeros ((uc) 0), CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_leading_zeros ((us) 0), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_leading_zeros (0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros (0U), ui), 1);
++  TEST_COMPARE (stdc_leading_zeros (0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros (0UL), ui), 1);
++  TEST_COMPARE (stdc_leading_zeros (0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros (0ULL), ui), 1);
++  TEST_COMPARE (stdc_leading_zeros ((uc) ~0U), 0);
++  TEST_COMPARE (stdc_leading_zeros ((us) ~0U), 0);
++  TEST_COMPARE (stdc_leading_zeros (~0U), 0);
++  TEST_COMPARE (stdc_leading_zeros (~0UL), 0);
++  TEST_COMPARE (stdc_leading_zeros (~0ULL), 0);
++  TEST_COMPARE (stdc_leading_zeros ((uc) 3), CHAR_BIT - 2);
++  TEST_COMPARE (stdc_leading_zeros ((us) 9), sizeof (short) * CHAR_BIT - 4);
++  TEST_COMPARE (stdc_leading_zeros (34U), sizeof (int) * CHAR_BIT - 6);
++  TEST_COMPARE (stdc_leading_zeros (130UL), sizeof (long int) * CHAR_BIT - 8);
++  TEST_COMPARE (stdc_leading_zeros (512ULL),
++		sizeof (long long int) * CHAR_BIT - 10);
++  TEST_COMPARE (stdc_leading_ones ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_leading_ones ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_leading_ones (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones (0U), ui), 1);
++  TEST_COMPARE (stdc_leading_ones (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones (0UL), ui), 1);
++  TEST_COMPARE (stdc_leading_ones (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones (0ULL), ui), 1);
++  TEST_COMPARE (stdc_leading_ones ((uc) ~0U), CHAR_BIT);
++  TEST_COMPARE (stdc_leading_ones ((us) ~0U), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (stdc_leading_ones (~0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (stdc_leading_ones (~0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_leading_ones (~0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_leading_ones ((uc) ~3), CHAR_BIT - 2);
++  TEST_COMPARE (stdc_leading_ones ((us) ~9), sizeof (short) * CHAR_BIT - 4);
++  TEST_COMPARE (stdc_leading_ones (~34U), sizeof (int) * CHAR_BIT - 6);
++  TEST_COMPARE (stdc_leading_ones (~130UL), sizeof (long int) * CHAR_BIT - 8);
++  TEST_COMPARE (stdc_leading_ones (~512ULL),
++		sizeof (long long int) * CHAR_BIT - 10);
++  TEST_COMPARE (stdc_trailing_zeros ((uc) 0), CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros ((us) 0), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros (0U), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros (0UL), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros (0ULL), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros ((uc) ~0U), 0);
++  TEST_COMPARE (stdc_trailing_zeros ((us) ~0U), 0);
++  TEST_COMPARE (stdc_trailing_zeros (~0U), 0);
++  TEST_COMPARE (stdc_trailing_zeros (~0UL), 0);
++  TEST_COMPARE (stdc_trailing_zeros (~0ULL), 0);
++  TEST_COMPARE (stdc_trailing_zeros ((uc) 2), 1);
++  TEST_COMPARE (stdc_trailing_zeros ((us) 24), 3);
++  TEST_COMPARE (stdc_trailing_zeros (32U), 5);
++  TEST_COMPARE (stdc_trailing_zeros (128UL), 7);
++  TEST_COMPARE (stdc_trailing_zeros (512ULL), 9);
++  TEST_COMPARE (stdc_trailing_ones ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones (0U), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones (0UL), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones (0ULL), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones ((uc) ~0U), CHAR_BIT);
++  TEST_COMPARE (stdc_trailing_ones ((us) ~0U), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (stdc_trailing_ones (~0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (stdc_trailing_ones (~0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_trailing_ones (~0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_trailing_ones ((uc) 5), 1);
++  TEST_COMPARE (stdc_trailing_ones ((us) 15), 4);
++  TEST_COMPARE (stdc_trailing_ones (127U), 7);
++  TEST_COMPARE (stdc_trailing_ones (511UL), 9);
++  TEST_COMPARE (stdc_trailing_ones (~0ULL >> 2),
++		sizeof (long long int) * CHAR_BIT - 2);
++  TEST_COMPARE (stdc_first_leading_zero ((uc) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero ((us) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (0U), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero (0U), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (0UL), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero (0UL), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (0ULL), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero (0ULL), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero ((uc) ~0U), 0);
++  TEST_COMPARE (stdc_first_leading_zero ((us) ~0U), 0);
++  TEST_COMPARE (stdc_first_leading_zero (~0U), 0);
++  TEST_COMPARE (stdc_first_leading_zero (~0UL), 0);
++  TEST_COMPARE (stdc_first_leading_zero (~0ULL), 0);
++  TEST_COMPARE (stdc_first_leading_zero ((uc) ~3U), CHAR_BIT - 1);
++  TEST_COMPARE (stdc_first_leading_zero ((us) ~15U),
++		sizeof (short) * CHAR_BIT - 3);
++  TEST_COMPARE (stdc_first_leading_zero (~63U), sizeof (int) * CHAR_BIT - 5);
++  TEST_COMPARE (stdc_first_leading_zero (~255UL),
++		sizeof (long int) * CHAR_BIT - 7);
++  TEST_COMPARE (stdc_first_leading_zero (~1023ULL),
++		sizeof (long long int) * CHAR_BIT - 9);
++  TEST_COMPARE (stdc_first_leading_one ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one (0U), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one (0UL), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one (0ULL), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one ((uc) ~0U), 1);
++  TEST_COMPARE (stdc_first_leading_one ((us) ~0U), 1);
++  TEST_COMPARE (stdc_first_leading_one (~0U), 1);
++  TEST_COMPARE (stdc_first_leading_one (~0UL), 1);
++  TEST_COMPARE (stdc_first_leading_one (~0ULL), 1);
++  TEST_COMPARE (stdc_first_leading_one ((uc) 3), CHAR_BIT - 1);
++  TEST_COMPARE (stdc_first_leading_one ((us) 9),
++		sizeof (short) * CHAR_BIT - 3);
++  TEST_COMPARE (stdc_first_leading_one (34U), sizeof (int) * CHAR_BIT - 5);
++  TEST_COMPARE (stdc_first_leading_one (130UL),
++		sizeof (long int) * CHAR_BIT - 7);
++  TEST_COMPARE (stdc_first_leading_one (512ULL),
++		sizeof (long long int) * CHAR_BIT - 9);
++  TEST_COMPARE (stdc_first_trailing_zero ((uc) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero ((us) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (0U), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero (0U), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (0UL), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero (0UL), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (0ULL), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero (0ULL), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero ((uc) ~0U), 0);
++  TEST_COMPARE (stdc_first_trailing_zero ((us) ~0U), 0);
++  TEST_COMPARE (stdc_first_trailing_zero (~0U), 0);
++  TEST_COMPARE (stdc_first_trailing_zero (~0UL), 0);
++  TEST_COMPARE (stdc_first_trailing_zero (~0ULL), 0);
++  TEST_COMPARE (stdc_first_trailing_zero ((uc) 2), 1);
++  TEST_COMPARE (stdc_first_trailing_zero ((us) 15), 5);
++  TEST_COMPARE (stdc_first_trailing_zero (63U), 7);
++  TEST_COMPARE (stdc_first_trailing_zero (128UL), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (511ULL), 10);
++  TEST_COMPARE (stdc_first_trailing_one ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one (0U), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one (0UL), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one (0ULL), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one ((uc) ~0U), 1);
++  TEST_COMPARE (stdc_first_trailing_one ((us) ~0U), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~0U), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~0UL), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~0ULL), 1);
++  TEST_COMPARE (stdc_first_trailing_one ((uc) 4), 3);
++  TEST_COMPARE (stdc_first_trailing_one ((us) 96), 6);
++  TEST_COMPARE (stdc_first_trailing_one (127U), 1);
++  TEST_COMPARE (stdc_first_trailing_one (511UL), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~0ULL << 12), 13);
++  TEST_COMPARE (stdc_count_zeros ((uc) 0), CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_count_zeros ((us) 0), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_count_zeros (0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros (0U), ui), 1);
++  TEST_COMPARE (stdc_count_zeros (0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros (0UL), ui), 1);
++  TEST_COMPARE (stdc_count_zeros (0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros (0ULL), ui), 1);
++  TEST_COMPARE (stdc_count_zeros ((uc) ~0U), 0);
++  TEST_COMPARE (stdc_count_zeros ((us) ~0U), 0);
++  TEST_COMPARE (stdc_count_zeros (~0U), 0);
++  TEST_COMPARE (stdc_count_zeros (~0UL), 0);
++  TEST_COMPARE (stdc_count_zeros (~0ULL), 0);
++  TEST_COMPARE (stdc_count_zeros ((uc) 1U), CHAR_BIT - 1);
++  TEST_COMPARE (stdc_count_zeros ((us) 42), sizeof (short) * CHAR_BIT - 3);
++  TEST_COMPARE (stdc_count_zeros (291U), sizeof (int) * CHAR_BIT - 4);
++  TEST_COMPARE (stdc_count_zeros (~1315UL), 5);
++  TEST_COMPARE (stdc_count_zeros (3363ULL),
++		sizeof (long long int) * CHAR_BIT - 6);
++  TEST_COMPARE (stdc_count_ones ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_count_ones ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_count_ones (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones (0U), ui), 1);
++  TEST_COMPARE (stdc_count_ones (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones (0UL), ui), 1);
++  TEST_COMPARE (stdc_count_ones (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones (0ULL), ui), 1);
++  TEST_COMPARE (stdc_count_ones ((uc) ~0U), CHAR_BIT);
++  TEST_COMPARE (stdc_count_ones ((us) ~0U), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (stdc_count_ones (~0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (stdc_count_ones (~0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_count_ones (~0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_count_ones ((uc) ~1U), CHAR_BIT - 1);
++  TEST_COMPARE (stdc_count_ones ((us) ~42), sizeof (short) * CHAR_BIT - 3);
++  TEST_COMPARE (stdc_count_ones (~291U), sizeof (int) * CHAR_BIT - 4);
++  TEST_COMPARE (stdc_count_ones (1315UL), 5);
++  TEST_COMPARE (stdc_count_ones (~3363ULL),
++		sizeof (long long int) * CHAR_BIT - 6);
++  TEST_COMPARE (stdc_has_single_bit ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit ((uc) 0), _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit ((us) 0), _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit (0U), _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit (0UL), _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit (0ULL), _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit ((uc) 2), 1);
++  TEST_COMPARE (stdc_has_single_bit ((us) 8), 1);
++  TEST_COMPARE (stdc_has_single_bit (32U), 1);
++  TEST_COMPARE (stdc_has_single_bit (128UL), 1);
++  TEST_COMPARE (stdc_has_single_bit (512ULL), 1);
++  TEST_COMPARE (stdc_has_single_bit ((uc) 7), 0);
++  TEST_COMPARE (stdc_has_single_bit ((us) 96), 0);
++  TEST_COMPARE (stdc_has_single_bit (513U), 0);
++  TEST_COMPARE (stdc_has_single_bit (1022UL), 0);
++  TEST_COMPARE (stdc_has_single_bit (12ULL), 0);
++  TEST_COMPARE (stdc_bit_width ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width ((uc) 0), ui), 1);
++  TEST_COMPARE (stdc_bit_width ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width ((us) 0), ui), 1);
++  TEST_COMPARE (stdc_bit_width (0U), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width (0U), ui), 1);
++  TEST_COMPARE (stdc_bit_width (0UL), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width (0UL), ui), 1);
++  TEST_COMPARE (stdc_bit_width (0ULL), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width (0ULL), ui), 1);
++  TEST_COMPARE (stdc_bit_width ((uc) ~0U), CHAR_BIT);
++  TEST_COMPARE (stdc_bit_width ((us) ~0U), sizeof (short) * CHAR_BIT);
++  TEST_COMPARE (stdc_bit_width (~0U), sizeof (int) * CHAR_BIT);
++  TEST_COMPARE (stdc_bit_width (~0UL), sizeof (long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_bit_width (~0ULL), sizeof (long long int) * CHAR_BIT);
++  TEST_COMPARE (stdc_bit_width ((uc) ((uc) ~0U >> 1)), CHAR_BIT - 1);
++  TEST_COMPARE (stdc_bit_width ((uc) 6), 3);
++  TEST_COMPARE (stdc_bit_width ((us) 12U), 4);
++  TEST_COMPARE (stdc_bit_width ((us) ((us) ~0U >> 5)),
++		sizeof (short) * CHAR_BIT - 5);
++  TEST_COMPARE (stdc_bit_width (137U), 8);
++  TEST_COMPARE (stdc_bit_width (269U), 9);
++  TEST_COMPARE (stdc_bit_width (39UL), 6);
++  TEST_COMPARE (stdc_bit_width (~0UL >> 2), sizeof (long int) * CHAR_BIT - 2);
++  TEST_COMPARE (stdc_bit_width (1023ULL), 10);
++  TEST_COMPARE (stdc_bit_width (1024ULL), 11);
++  TEST_COMPARE (stdc_bit_floor ((uc) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor ((uc) 0), uc), 1);
++  TEST_COMPARE (stdc_bit_floor ((us) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor ((us) 0), us), 1);
++  TEST_COMPARE (stdc_bit_floor (0U), 0U);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor (0U), ui), 1);
++  TEST_COMPARE (stdc_bit_floor (0UL), 0UL);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor (0UL), ul), 1);
++  TEST_COMPARE (stdc_bit_floor (0ULL), 0ULL);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor (0ULL), ull), 1);
++  TEST_COMPARE (stdc_bit_floor ((uc) ~0U), (1U << (CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_floor ((us) ~0U),
++		(1U << (sizeof (short) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_floor (~0U), (1U << (sizeof (int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_floor (~0UL),
++		(1UL << (sizeof (long int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_floor (~0ULL),
++		(1ULL << (sizeof (long long int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_floor ((uc) 4), 4);
++  TEST_COMPARE (stdc_bit_floor ((uc) 7), 4);
++  TEST_COMPARE (stdc_bit_floor ((us) 8U), 8);
++  TEST_COMPARE (stdc_bit_floor ((us) 31U), 16);
++  TEST_COMPARE (stdc_bit_floor (137U), 128U);
++  TEST_COMPARE (stdc_bit_floor (269U), 256U);
++  TEST_COMPARE (stdc_bit_floor (511UL), 256UL);
++  TEST_COMPARE (stdc_bit_floor (512UL), 512UL);
++  TEST_COMPARE (stdc_bit_floor (513UL), 512ULL);
++  TEST_COMPARE (stdc_bit_floor (1024ULL), 1024ULL);
++  TEST_COMPARE (stdc_bit_ceil ((uc) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil ((uc) 0), uc), 1);
++  TEST_COMPARE (stdc_bit_ceil ((us) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil ((us) 0), us), 1);
++  TEST_COMPARE (stdc_bit_ceil (0U), 1U);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil (0U), ui), 1);
++  TEST_COMPARE (stdc_bit_ceil (0UL), 1UL);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil (0UL), ul), 1);
++  TEST_COMPARE (stdc_bit_ceil (0ULL), 1ULL);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil (0ULL), ull), 1);
++  TEST_COMPARE (stdc_bit_ceil ((uc) ~0U), 0);
++  TEST_COMPARE (stdc_bit_ceil ((us) ~0U), 0);
++  TEST_COMPARE (stdc_bit_ceil (~0U), 0U);
++  TEST_COMPARE (stdc_bit_ceil (~0UL), 0UL);
++  TEST_COMPARE (stdc_bit_ceil (~0ULL), 0ULL);
++  TEST_COMPARE (stdc_bit_ceil ((uc) ((uc) ~0U >> 1)), (1U << (CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil ((uc) ((uc) ~0U >> 1)), (1U << (CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil ((us) ((us) ~0U >> 1)),
++		(1U << (sizeof (short) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil ((us) ((us) ~0U >> 1)),
++		(1U << (sizeof (short) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil (~0U >> 1),
++		(1U << (sizeof (int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil (1U << (sizeof (int) * CHAR_BIT - 1)),
++		(1U << (sizeof (int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil (~0UL >> 1),
++		(1UL << (sizeof (long int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil (~0UL >> 1),
++		(1UL << (sizeof (long int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil (1ULL
++			       << (sizeof (long long int) * CHAR_BIT - 1)),
++		(1ULL << (sizeof (long long int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil (~0ULL >> 1),
++		(1ULL << (sizeof (long long int) * CHAR_BIT - 1)));
++  TEST_COMPARE (stdc_bit_ceil ((uc) 1), 1);
++  TEST_COMPARE (stdc_bit_ceil ((uc) 2), 2);
++  TEST_COMPARE (stdc_bit_ceil ((us) 3U), 4);
++  TEST_COMPARE (stdc_bit_ceil ((us) 4U), 4);
++  TEST_COMPARE (stdc_bit_ceil (5U), 8U);
++  TEST_COMPARE (stdc_bit_ceil (269U), 512U);
++  TEST_COMPARE (stdc_bit_ceil (511UL), 512UL);
++  TEST_COMPARE (stdc_bit_ceil (512UL), 512UL);
++  TEST_COMPARE (stdc_bit_ceil (513ULL), 1024ULL);
++  TEST_COMPARE (stdc_bit_ceil (1025ULL), 2048ULL);
++# ifdef __SIZEOF_INT128__
++  TEST_COMPARE (stdc_leading_zeros ((unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros ((unsigned __int128) 0), ui),
++		1);
++  TEST_COMPARE (stdc_leading_zeros (~(unsigned __int128) 0), 0);
++  TEST_COMPARE (stdc_leading_ones ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones ((unsigned __int128) 0), ui),
++		1);
++  TEST_COMPARE (stdc_leading_ones (~(unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (stdc_trailing_zeros ((unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros ((unsigned __int128) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (~(unsigned __int128) 0), 0);
++  TEST_COMPARE (stdc_trailing_ones ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones ((unsigned __int128) 0), ui),
++		1);
++  TEST_COMPARE (stdc_trailing_ones (~(unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (stdc_first_leading_zero ((unsigned __int128) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero ((unsigned __int128) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (~(unsigned __int128) 0), 0);
++  TEST_COMPARE (stdc_first_leading_one ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one ((unsigned __int128) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (~(unsigned __int128) 0), 1);
++  TEST_COMPARE (stdc_first_trailing_zero ((unsigned __int128) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero ((unsigned __int128)
++							 0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (~(unsigned __int128) 0), 0);
++  TEST_COMPARE (stdc_first_trailing_one ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one ((unsigned __int128) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~(unsigned __int128) 0), 1);
++  TEST_COMPARE (stdc_count_zeros ((unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros ((unsigned __int128) 0), ui),
++		1);
++  TEST_COMPARE (stdc_count_zeros (~(unsigned __int128) 0), 0);
++  TEST_COMPARE (stdc_count_ones ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones ((unsigned __int128) 0), ui),
++		1);
++  TEST_COMPARE (stdc_count_ones (~(unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (stdc_has_single_bit ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit ((unsigned __int128) 0),
++		_Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit (~(unsigned __int128) 0), 0);
++  TEST_COMPARE (stdc_bit_width ((unsigned __int128) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width ((unsigned __int128) 0), ui), 1);
++  TEST_COMPARE (stdc_bit_width (~(unsigned __int128) 0),
++		sizeof (__int128) * CHAR_BIT);
++  TEST_COMPARE (stdc_bit_floor ((unsigned __int128) 0) != 0, 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor ((unsigned __int128) 0),
++			       unsigned __int128), 1);
++  TEST_COMPARE (stdc_bit_floor (~(unsigned __int128) 0)
++		!= ((unsigned __int128) 1) << (sizeof (__int128)
++					       * CHAR_BIT - 1), 0);
++  TEST_COMPARE (stdc_bit_ceil ((unsigned __int128) 0) != 1, 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil ((unsigned __int128) 0),
++			       unsigned __int128), 1);
++  TEST_COMPARE (stdc_bit_ceil ((unsigned __int128) 1) != 1, 0);
++  TEST_COMPARE (stdc_bit_ceil ((~(unsigned __int128) 0) >> 1)
++		!= ((unsigned __int128) 1) << (sizeof (__int128)
++					       * CHAR_BIT - 1), 0);
++  TEST_COMPARE (stdc_bit_ceil (~(unsigned __int128) 0) != 0, 0);
++# endif
++  uc a = 0;
++  TEST_COMPARE (stdc_bit_width (a++), 0);
++  TEST_COMPARE (a, 1);
++  ull b = 0;
++  TEST_COMPARE (stdc_bit_width (b++), 0);
++  TEST_COMPARE (b, 1);
++  TEST_COMPARE (stdc_bit_floor (a++), 1);
++  TEST_COMPARE (a, 2);
++  TEST_COMPARE (stdc_bit_floor (b++), 1);
++  TEST_COMPARE (b, 2);
++  TEST_COMPARE (stdc_bit_ceil (a++), 2);
++  TEST_COMPARE (a, 3);
++  TEST_COMPARE (stdc_bit_ceil (b++), 2);
++  TEST_COMPARE (b, 3);
++  TEST_COMPARE (stdc_leading_zeros (a++), CHAR_BIT - 2);
++  TEST_COMPARE (a, 4);
++  TEST_COMPARE (stdc_leading_zeros (b++),
++		sizeof (long long int) * CHAR_BIT - 2);
++  TEST_COMPARE (b, 4);
++  TEST_COMPARE (stdc_leading_ones (a++), 0);
++  TEST_COMPARE (a, 5);
++  TEST_COMPARE (stdc_leading_ones (b++), 0);
++  TEST_COMPARE (b, 5);
++  TEST_COMPARE (stdc_trailing_zeros (a++), 0);
++  TEST_COMPARE (a, 6);
++  TEST_COMPARE (stdc_trailing_zeros (b++), 0);
++  TEST_COMPARE (b, 6);
++  TEST_COMPARE (stdc_trailing_ones (a++), 0);
++  TEST_COMPARE (a, 7);
++  TEST_COMPARE (stdc_trailing_ones (b++), 0);
++  TEST_COMPARE (b, 7);
++  TEST_COMPARE (stdc_first_leading_zero (a++), 1);
++  TEST_COMPARE (a, 8);
++  TEST_COMPARE (stdc_first_leading_zero (b++), 1);
++  TEST_COMPARE (b, 8);
++  TEST_COMPARE (stdc_first_leading_one (a++), CHAR_BIT - 3);
++  TEST_COMPARE (a, 9);
++  TEST_COMPARE (stdc_first_leading_one (b++),
++		sizeof (long long int) * CHAR_BIT - 3);
++  TEST_COMPARE (b, 9);
++  TEST_COMPARE (stdc_first_trailing_zero (a++), 2);
++  TEST_COMPARE (a, 10);
++  TEST_COMPARE (stdc_first_trailing_zero (b++), 2);
++  TEST_COMPARE (b, 10);
++  TEST_COMPARE (stdc_first_trailing_one (a++), 2);
++  TEST_COMPARE (a, 11);
++  TEST_COMPARE (stdc_first_trailing_one (b++), 2);
++  TEST_COMPARE (b, 11);
++  TEST_COMPARE (stdc_count_zeros (a++), CHAR_BIT - 3);
++  TEST_COMPARE (a, 12);
++  TEST_COMPARE (stdc_count_zeros (b++),
++		sizeof (long long int) * CHAR_BIT - 3);
++  TEST_COMPARE (b, 12);
++  TEST_COMPARE (stdc_count_ones (a++), 2);
++  TEST_COMPARE (a, 13);
++  TEST_COMPARE (stdc_count_ones (b++), 2);
++  TEST_COMPARE (b, 13);
++  TEST_COMPARE (stdc_has_single_bit (a++), 0);
++  TEST_COMPARE (a, 14);
++  TEST_COMPARE (stdc_has_single_bit (b++), 0);
++  TEST_COMPARE (b, 14);
++# ifdef BITINT_MAXWIDTH
++#  if BITINT_MAXWIDTH >= 64
++  TEST_COMPARE (stdc_leading_zeros (0uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros (0uwb), ui), 1);
++  TEST_COMPARE (stdc_leading_zeros (1uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros (1uwb), ui), 1);
++  TEST_COMPARE (stdc_leading_ones (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones (0uwb), ui), 1);
++  TEST_COMPARE (stdc_leading_ones (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones (1uwb), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (0uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros (0uwb), ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (1uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros (1uwb), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones (0uwb), ui), 1);
++  TEST_COMPARE (stdc_trailing_ones (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones (1uwb), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (0uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero (0uwb), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (1uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero (1uwb), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one (0uwb), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one (1uwb), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (0uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero (0uwb), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (1uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero (1uwb), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one (0uwb), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one (1uwb), ui), 1);
++  TEST_COMPARE (stdc_count_zeros (0uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros (0uwb), ui), 1);
++  TEST_COMPARE (stdc_count_zeros (1uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros (1uwb), ui), 1);
++  TEST_COMPARE (stdc_count_ones (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones (0uwb), ui), 1);
++  TEST_COMPARE (stdc_count_ones (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_count_ones (1uwb), ui), 1);
++  TEST_COMPARE (stdc_has_single_bit (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit (0uwb), _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit (1uwb), _Bool), 1);
++  TEST_COMPARE (stdc_bit_width (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width (0uwb), ui), 1);
++  TEST_COMPARE (stdc_bit_width (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_bit_width (1uwb), ui), 1);
++  TEST_COMPARE (stdc_bit_floor (0uwb), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor (0uwb), unsigned _BitInt(1)), 1);
++  TEST_COMPARE (stdc_bit_floor (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor (1uwb), unsigned _BitInt(1)), 1);
++  TEST_COMPARE (stdc_bit_ceil (0uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil (0uwb), unsigned _BitInt(1)), 1);
++  TEST_COMPARE (stdc_bit_ceil (1uwb), 1);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil (1uwb), unsigned _BitInt(1)), 1);
++  unsigned _BitInt(1) c = 0;
++  TEST_COMPARE (stdc_bit_floor (c++), 0);
++  TEST_COMPARE (c, 1);
++  TEST_COMPARE (stdc_bit_floor (c++), 1);
++  TEST_COMPARE (c, 0);
++  TEST_COMPARE (stdc_bit_ceil (c++), 1);
++  TEST_COMPARE (c, 1);
++  TEST_COMPARE (stdc_bit_ceil (c++), 1);
++  TEST_COMPARE (c, 0);
++#  endif
++#  if BITINT_MAXWIDTH >= 512
++  TEST_COMPARE (stdc_leading_zeros ((unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_leading_zeros ((unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (expr_has_type (stdc_leading_zeros ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_leading_zeros (~(unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (stdc_leading_zeros (~(unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (stdc_leading_zeros ((unsigned _BitInt(512)) 275), 512 - 9);
++  TEST_COMPARE (stdc_leading_zeros ((unsigned _BitInt(373)) 512), 373 - 10);
++  TEST_COMPARE (stdc_leading_ones ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_leading_ones ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_leading_ones ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_leading_ones (~(unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (stdc_leading_ones (~(unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (stdc_leading_ones (~(unsigned _BitInt(512)) 275), 512 - 9);
++  TEST_COMPARE (stdc_leading_ones (~(unsigned _BitInt(373)) 512), 373 - 10);
++  TEST_COMPARE (stdc_trailing_zeros ((unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros ((unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (expr_has_type (stdc_trailing_zeros ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_trailing_zeros (~(unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (stdc_trailing_zeros (~(unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (stdc_trailing_zeros ((unsigned _BitInt(512)) 256), 8);
++  TEST_COMPARE (stdc_trailing_zeros ((unsigned _BitInt(373)) 512), 9);
++  TEST_COMPARE (stdc_trailing_ones ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_trailing_ones ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_trailing_ones ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_trailing_ones (~(unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (stdc_trailing_ones (~(unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (stdc_trailing_ones ((unsigned _BitInt(512)) 255), 8);
++  TEST_COMPARE (stdc_trailing_ones ((~(unsigned _BitInt(373)) 0) >> 2),
++		373 - 2);
++  TEST_COMPARE (stdc_first_leading_zero ((unsigned _BitInt(512)) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero ((unsigned _BitInt(512))
++							0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero ((unsigned _BitInt(373)) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_zero ((unsigned _BitInt(373))
++							0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_zero (~(unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (stdc_first_leading_zero (~(unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (stdc_first_leading_zero (~(unsigned _BitInt(512)) 511),
++		512 - 8);
++  TEST_COMPARE (stdc_first_leading_zero (~(unsigned _BitInt(373)) 1023),
++		373 - 9);
++  TEST_COMPARE (stdc_first_leading_one ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one ((unsigned _BitInt(512))
++						       0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_leading_one ((unsigned _BitInt(373))
++						       0), ui), 1);
++  TEST_COMPARE (stdc_first_leading_one (~(unsigned _BitInt(512)) 0), 1);
++  TEST_COMPARE (stdc_first_leading_one (~(unsigned _BitInt(373)) 0), 1);
++  TEST_COMPARE (stdc_first_leading_one ((unsigned _BitInt(512)) 275), 512 - 8);
++  TEST_COMPARE (stdc_first_leading_one ((unsigned _BitInt(373)) 512), 373 - 9);
++  TEST_COMPARE (stdc_first_trailing_zero ((unsigned _BitInt(512)) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero ((unsigned
++							  _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero ((unsigned _BitInt(373)) 0), 1);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_zero ((unsigned
++							  _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_first_trailing_zero (~(unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (stdc_first_trailing_zero (~(unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (stdc_first_trailing_zero ((unsigned _BitInt(512)) 255), 9);
++  TEST_COMPARE (stdc_first_trailing_zero ((unsigned _BitInt(373)) 511), 10);
++  TEST_COMPARE (stdc_first_trailing_one ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one ((unsigned _BitInt(512))
++							0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_first_trailing_one ((unsigned _BitInt(373))
++							0), ui), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~(unsigned _BitInt(512)) 0), 1);
++  TEST_COMPARE (stdc_first_trailing_one (~(unsigned _BitInt(373)) 0), 1);
++  TEST_COMPARE (stdc_first_trailing_one (((unsigned _BitInt(512)) 255) << 175),
++		176);
++  TEST_COMPARE (stdc_first_trailing_one ((~(unsigned _BitInt(373)) 0) << 311),
++		312);
++  TEST_COMPARE (stdc_count_zeros ((unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_count_zeros ((unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (expr_has_type (stdc_count_zeros ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_count_zeros (~(unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (stdc_count_zeros (~(unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (stdc_count_zeros ((unsigned _BitInt(512)) 1315), 512 - 5);
++  TEST_COMPARE (stdc_count_zeros ((unsigned _BitInt(373)) 3363), 373 - 6);
++  TEST_COMPARE (stdc_count_ones ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_count_ones ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_count_ones ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_count_ones (~(unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (stdc_count_ones (~(unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (stdc_count_ones (~(unsigned _BitInt(512)) 1315), 512 - 5);
++  TEST_COMPARE (stdc_count_ones (~(unsigned _BitInt(373)) 3363), 373 - 6);
++  TEST_COMPARE (stdc_has_single_bit ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit ((unsigned _BitInt(512)) 0),
++			       _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_has_single_bit ((unsigned _BitInt(373)) 0),
++			       _Bool), 1);
++  TEST_COMPARE (stdc_has_single_bit (~(unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (stdc_has_single_bit (~(unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (stdc_has_single_bit (((unsigned _BitInt(512)) 1022) << 279),
++		0);
++  TEST_COMPARE (stdc_has_single_bit (((unsigned _BitInt(373)) 12) << 305), 0);
++  TEST_COMPARE (stdc_bit_width ((unsigned _BitInt(512)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width ((unsigned _BitInt(512)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_bit_width ((unsigned _BitInt(373)) 0), 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_width ((unsigned _BitInt(373)) 0),
++			       ui), 1);
++  TEST_COMPARE (stdc_bit_width (~(unsigned _BitInt(512)) 0), 512);
++  TEST_COMPARE (stdc_bit_width (~(unsigned _BitInt(373)) 0), 373);
++  TEST_COMPARE (stdc_bit_width (((unsigned _BitInt(512)) 1023) << 405),
++		405 + 10);
++  TEST_COMPARE (stdc_bit_width (((unsigned _BitInt(373)) 1024) << 242),
++		242 + 11);
++  TEST_COMPARE (stdc_bit_floor ((unsigned _BitInt(512)) 0) != 0, 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor ((unsigned _BitInt(512)) 0),
++			       unsigned _BitInt(512)), 1);
++  TEST_COMPARE (stdc_bit_floor ((unsigned _BitInt(373)) 0) != 0, 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_floor ((unsigned _BitInt(373)) 0),
++			       unsigned _BitInt(373)), 1);
++  TEST_COMPARE (stdc_bit_floor (~(unsigned _BitInt(512)) 0)
++		!= ((unsigned _BitInt(512)) 1) << (512 - 1), 0);
++  TEST_COMPARE (stdc_bit_floor (~(unsigned _BitInt(373)) 0)
++		!= ((unsigned _BitInt(373)) 1) << (373 - 1), 0);
++  TEST_COMPARE (stdc_bit_floor (((unsigned _BitInt(512)) 511) << 405)
++		!= (((unsigned _BitInt(512)) 256) << 405), 0);
++  TEST_COMPARE (stdc_bit_floor (((unsigned _BitInt(373)) 512) << 242)
++		!= (((unsigned _BitInt(512)) 512) << 242), 0);
++  TEST_COMPARE (stdc_bit_ceil ((unsigned _BitInt(512)) 0) != 1, 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil ((unsigned _BitInt(512)) 0),
++			       unsigned _BitInt(512)), 1);
++  TEST_COMPARE (stdc_bit_ceil ((unsigned _BitInt(373)) 0) != 1, 0);
++  TEST_COMPARE (expr_has_type (stdc_bit_ceil ((unsigned _BitInt(373)) 0),
++			       unsigned _BitInt(373)), 1);
++  TEST_COMPARE (stdc_bit_ceil (~(unsigned _BitInt(512)) 0) != 0, 0);
++  TEST_COMPARE (stdc_bit_ceil (~(unsigned _BitInt(373)) 0) != 0, 0);
++  TEST_COMPARE (stdc_bit_ceil (((unsigned _BitInt(512)) 1) << (512 - 1))
++		!= ((unsigned _BitInt(512)) 1) << (512 - 1), 0);
++  TEST_COMPARE (stdc_bit_ceil ((~(unsigned _BitInt(373)) 0) >> 1)
++		!= ((unsigned _BitInt(373)) 1) << (373 - 1), 0);
++  TEST_COMPARE (stdc_bit_ceil (((unsigned _BitInt(512)) 512) << 405)
++		!= (((unsigned _BitInt(512)) 512) << 405), 0);
++  TEST_COMPARE (stdc_bit_ceil (((unsigned _BitInt(373)) 513) << 242)
++		!= (((unsigned _BitInt(512)) 1024) << 242), 0);
++  TEST_COMPARE (stdc_bit_floor ((unsigned _BitInt(BITINT_MAXWIDTH)) 0) != 0,
++		0);
++  TEST_COMPARE (stdc_bit_floor (~(unsigned _BitInt(BITINT_MAXWIDTH)) 0)
++		!= ((unsigned _BitInt(BITINT_MAXWIDTH)) 1) << (BITINT_MAXWIDTH
++							       - 1), 0);
++  TEST_COMPARE (stdc_bit_floor (((unsigned _BitInt(BITINT_MAXWIDTH)) 511)
++				<< 405)
++		!= (((unsigned _BitInt(BITINT_MAXWIDTH)) 256) << 405), 0);
++  TEST_COMPARE (stdc_bit_floor (((unsigned _BitInt(BITINT_MAXWIDTH)) 512)
++				<< 405)
++		!= (((unsigned _BitInt(BITINT_MAXWIDTH)) 512) << 405), 0);
++  TEST_COMPARE (stdc_bit_ceil ((unsigned _BitInt(BITINT_MAXWIDTH)) 0) != 1, 0);
++  TEST_COMPARE (stdc_bit_ceil (~(unsigned _BitInt(BITINT_MAXWIDTH)) 0) != 0,
++		0);
++  TEST_COMPARE (stdc_bit_ceil (((unsigned _BitInt(BITINT_MAXWIDTH)) 1)
++			       << (BITINT_MAXWIDTH - 1))
++		!= ((unsigned _BitInt(BITINT_MAXWIDTH)) 1) << (BITINT_MAXWIDTH
++							       - 1), 0);
++  TEST_COMPARE (stdc_bit_ceil (((unsigned _BitInt(BITINT_MAXWIDTH)) 512)
++			       << 405)
++		!= (((unsigned _BitInt(BITINT_MAXWIDTH)) 512) << 405), 0);
++  TEST_COMPARE (stdc_bit_ceil (((unsigned _BitInt(BITINT_MAXWIDTH)) 513)
++			       << 405)
++		!= (((unsigned _BitInt(BITINT_MAXWIDTH)) 1024) << 405), 0);
++#  endif
++# endif
++  return 0;
++}
++#else
++static int
++do_test (void)
++{
++  return 0;
++}
++#endif
++
++#include <support/test-driver.c>
+
+commit 71fcdba577884627c3ee4e43beb915da752efb1f
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Mar 15 19:08:24 2024 +0100
+
+    linux: Use rseq area unconditionally in sched_getcpu (bug 31479)
+    
+    Originally, nptl/descr.h included <sys/rseq.h>, but we removed that
+    in commit 2c6b4b272e6b4d07303af25709051c3e96288f2d ("nptl:
+    Unconditionally use a 32-byte rseq area").  After that, it was
+    not ensured that the RSEQ_SIG macro was defined during sched_getcpu.c
+    compilation that provided a definition.  This commit always checks
+    the rseq area for CPU number information before using the other
+    approaches.
+    
+    This adds an unnecessary (but well-predictable) branch on
+    architectures which do not define RSEQ_SIG, but its cost is small
+    compared to the system call.  Most architectures that have vDSO
+    acceleration for getcpu also have rseq support.
+    
+    Fixes: 2c6b4b272e6b4d07303af25709051c3e96288f2d
+    Fixes: 1d350aa06091211863e41169729cee1bca39f72f
+    Reviewed-by: Arjun Shankar <arjun@redhat.com>
+    (cherry picked from commit 7a76f218677d149d8b7875b336722108239f7ee9)
+
+diff --git a/sysdeps/unix/sysv/linux/sched_getcpu.c b/sysdeps/unix/sysv/linux/sched_getcpu.c
+index dfb884568d..72a3360550 100644
+--- a/sysdeps/unix/sysv/linux/sched_getcpu.c
++++ b/sysdeps/unix/sysv/linux/sched_getcpu.c
+@@ -33,17 +33,9 @@ vsyscall_sched_getcpu (void)
+   return r == -1 ? r : cpu;
+ }
+ 
+-#ifdef RSEQ_SIG
+ int
+ sched_getcpu (void)
+ {
+   int cpu_id = THREAD_GETMEM_VOLATILE (THREAD_SELF, rseq_area.cpu_id);
+   return __glibc_likely (cpu_id >= 0) ? cpu_id : vsyscall_sched_getcpu ();
+ }
+-#else /* RSEQ_SIG */
+-int
+-sched_getcpu (void)
+-{
+-  return vsyscall_sched_getcpu ();
+-}
+-#endif /* RSEQ_SIG */
+
+commit ee7f4c54e19738c2c27d3846e1e9b3595c89221f
+Author: Manjunath Matti <mmatti@linux.ibm.com>
+Date:   Tue Mar 19 15:29:48 2024 -0500
+
+    powerpc: Add HWCAP3/HWCAP4 data to TCB for Power Architecture.
+    
+    This patch adds a new feature for powerpc.  In order to get faster
+    access to the HWCAP3/HWCAP4 masks, similar to HWCAP/HWCAP2 (i.e. for
+    implementing __builtin_cpu_supports() in GCC) without the overhead of
+    reading them from the auxiliary vector, we now reserve space for them
+    in the TCB.
+    
+    Suggested-by: Peter Bergner <bergner@linux.ibm.com>
+    Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
+    (cherry picked from commit 3ab9b88e2ac91062b6d493fe32bd101a55006c6a)
+
+diff --git a/elf/dl-diagnostics.c b/elf/dl-diagnostics.c
+index 7345ebc4e5..aaf67b87e8 100644
+--- a/elf/dl-diagnostics.c
++++ b/elf/dl-diagnostics.c
+@@ -235,6 +235,8 @@ _dl_print_diagnostics (char **environ)
+   _dl_diagnostics_print_labeled_value ("dl_hwcap", GLRO (dl_hwcap));
+   _dl_diagnostics_print_labeled_value ("dl_hwcap_important", HWCAP_IMPORTANT);
+   _dl_diagnostics_print_labeled_value ("dl_hwcap2", GLRO (dl_hwcap2));
++  _dl_diagnostics_print_labeled_value ("dl_hwcap3", GLRO (dl_hwcap3));
++  _dl_diagnostics_print_labeled_value ("dl_hwcap4", GLRO (dl_hwcap4));
+   _dl_diagnostics_print_labeled_string
+     ("dl_hwcaps_subdirs", _dl_hwcaps_subdirs);
+   _dl_diagnostics_print_labeled_value
+diff --git a/elf/dl-support.c b/elf/dl-support.c
+index 2f502c8b0d..451932dd03 100644
+--- a/elf/dl-support.c
++++ b/elf/dl-support.c
+@@ -158,6 +158,8 @@ const ElfW(Phdr) *_dl_phdr;
+ size_t _dl_phnum;
+ uint64_t _dl_hwcap;
+ uint64_t _dl_hwcap2;
++uint64_t _dl_hwcap3;
++uint64_t _dl_hwcap4;
+ 
+ enum dso_sort_algorithm _dl_dso_sort_algo;
+ 
+diff --git a/elf/elf.h b/elf/elf.h
+index 455731663c..1c394c64cd 100644
+--- a/elf/elf.h
++++ b/elf/elf.h
+@@ -1234,6 +1234,10 @@ typedef struct
+ #define AT_RSEQ_FEATURE_SIZE	27	/* rseq supported feature size.  */
+ #define AT_RSEQ_ALIGN	28		/* rseq allocation alignment.  */
+ 
++/* More machine-dependent hints about processor capabilities.  */
++#define AT_HWCAP3	29		/* extension of AT_HWCAP.  */
++#define AT_HWCAP4	30		/* extension of AT_HWCAP.  */
++
+ #define AT_EXECFN	31		/* Filename of executable.  */
+ 
+ /* Pointer to the global system page used for system calls and other
+diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
+index 117c901ccc..50f58a60e3 100644
+--- a/sysdeps/generic/ldsodefs.h
++++ b/sysdeps/generic/ldsodefs.h
+@@ -646,6 +646,8 @@ struct rtld_global_ro
+   /* Mask for more hardware capabilities that are available on some
+      platforms.  */
+   EXTERN uint64_t _dl_hwcap2;
++  EXTERN uint64_t _dl_hwcap3;
++  EXTERN uint64_t _dl_hwcap4;
+ 
+   EXTERN enum dso_sort_algorithm _dl_dso_sort_algo;
+ 
+diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
+index a76bb6e5b0..8cf00aa7e3 100644
+--- a/sysdeps/powerpc/dl-procinfo.c
++++ b/sysdeps/powerpc/dl-procinfo.c
+@@ -38,6 +38,10 @@
+        needed.
+   */
+ 
++/* The total number of available bits (including those prior to
++   _DL_HWCAP_FIRST).  Some of these bits might not be used.  */
++#define _DL_HWCAP_COUNT         128
++
+ #ifndef PROCINFO_CLASS
+ # define PROCINFO_CLASS
+ #endif
+@@ -61,7 +65,7 @@ PROCINFO_CLASS struct cpu_features _dl_powerpc_cpu_features
+ #if !defined PROCINFO_DECL && defined SHARED
+   ._dl_powerpc_cap_flags
+ #else
+-PROCINFO_CLASS const char _dl_powerpc_cap_flags[64][15]
++PROCINFO_CLASS const char _dl_powerpc_cap_flags[_DL_HWCAP_COUNT][15]
+ #endif
+ #ifndef PROCINFO_DECL
+ = {
+diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
+index 68f4241095..f8cb343877 100644
+--- a/sysdeps/powerpc/dl-procinfo.h
++++ b/sysdeps/powerpc/dl-procinfo.h
+@@ -22,16 +22,17 @@
+ #include <ldsodefs.h>
+ #include <sysdep.h>	/* This defines the PPC_FEATURE[2]_* macros.  */
+ 
+-/* The total number of available bits (including those prior to
+-   _DL_HWCAP_FIRST).  Some of these bits might not be used.  */
+-#define _DL_HWCAP_COUNT		64
++/* Feature masks are all 32-bits in size.  */
++#define _DL_HWCAP_SIZE		32
+ 
+-/* Features started at bit 31 and decremented as new features were added.  */
+-#define _DL_HWCAP_LAST		31
++/* AT_HWCAP2 feature strings follow the AT_HWCAP feature strings.  */
++#define _DL_HWCAP2_OFFSET	_DL_HWCAP_SIZE
+ 
+-/* AT_HWCAP2 features started at bit 31 and decremented as new features were
+-   added.  HWCAP2 feature bits start at bit 0.  */
+-#define _DL_HWCAP2_LAST		31
++/* AT_HWCAP3 feature strings follow the AT_HWCAP2 feature strings.  */
++#define _DL_HWCAP3_OFFSET	(_DL_HWCAP2_OFFSET + _DL_HWCAP_SIZE)
++
++/* AT_HWCAP4 feature strings follow the AT_HWCAP3 feature strings.  */
++#define _DL_HWCAP4_OFFSET	(_DL_HWCAP3_OFFSET + _DL_HWCAP_SIZE)
+ 
+ /* These bits influence library search.  */
+ #define HWCAP_IMPORTANT		(PPC_FEATURE_HAS_ALTIVEC \
+@@ -187,21 +188,42 @@ _dl_procinfo (unsigned int type, unsigned long int word)
+     case AT_HWCAP:
+       _dl_printf ("AT_HWCAP:            ");
+ 
+-      for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
++      for (int i = 0; i < _DL_HWCAP_SIZE; ++i)
+        if (word & (1 << i))
+          _dl_printf (" %s", _dl_hwcap_string (i));
+       break;
+     case AT_HWCAP2:
+       {
+-       unsigned int offset = _DL_HWCAP_LAST + 1;
+ 
+        _dl_printf ("AT_HWCAP2:           ");
+ 
+-        /* We have to go through them all because the kernel added the
+-          AT_HWCAP2 features starting with the high bits.  */
+-       for (int i = 0; i <= _DL_HWCAP2_LAST; ++i)
+-         if (word & (1 << i))
+-           _dl_printf (" %s", _dl_hwcap_string (offset + i));
++       /* We have to go through them all because the kernel added the
++	  AT_HWCAP2 features starting with the high bits.  */
++       for (int i = 0; i < _DL_HWCAP_SIZE; ++i)
++	 if (word & (1 << i))
++	   _dl_printf (" %s", _dl_hwcap_string (_DL_HWCAP2_OFFSET + i));
++       break;
++      }
++    case AT_HWCAP3:
++      {
++       _dl_printf ("AT_HWCAP3:           ");
++
++       /* We have to go through them all because the kernel added the
++	  AT_HWCAP3 features starting with the high bits.  */
++       for (int i = 0; i < _DL_HWCAP_SIZE; ++i)
++	 if (word & (1 << i))
++	   _dl_printf (" %s", _dl_hwcap_string (_DL_HWCAP3_OFFSET + i));
++       break;
++      }
++    case AT_HWCAP4:
++      {
++       _dl_printf ("AT_HWCAP4:           ");
++
++       /* We have to go through them all because the kernel added the
++	  AT_HWCAP4 features starting with the high bits.  */
++       for (int i = 0; i <= _DL_HWCAP_SIZE; ++i)
++	 if (word & (1 << i))
++	   _dl_printf (" %s", _dl_hwcap_string (_DL_HWCAP4_OFFSET + i));
+        break;
+       }
+     case AT_L1I_CACHEGEOMETRY:
+diff --git a/sysdeps/powerpc/hwcapinfo.c b/sysdeps/powerpc/hwcapinfo.c
+index 76344f285a..f6fede15a7 100644
+--- a/sysdeps/powerpc/hwcapinfo.c
++++ b/sysdeps/powerpc/hwcapinfo.c
+@@ -31,7 +31,7 @@ void
+ __tcb_parse_hwcap_and_convert_at_platform (void)
+ {
+ 
+-  uint64_t h1, h2;
++  uint64_t h1, h2, h3, h4;
+ 
+   /* Read AT_PLATFORM string from auxv and convert it to a number.  */
+   __tcb.at_platform = _dl_string_platform (GLRO (dl_platform));
+@@ -39,6 +39,8 @@ __tcb_parse_hwcap_and_convert_at_platform (void)
+   /* Read HWCAP and HWCAP2 from auxv.  */
+   h1 = GLRO (dl_hwcap);
+   h2 = GLRO (dl_hwcap2);
++  h3 = GLRO (dl_hwcap3);
++  h4 = GLRO (dl_hwcap4);
+ 
+   /* hwcap contains only the latest supported ISA, the code checks which is
+      and fills the previous supported ones.  */
+@@ -64,13 +66,16 @@ __tcb_parse_hwcap_and_convert_at_platform (void)
+   else if (h1 & PPC_FEATURE_POWER5)
+     h1 |= PPC_FEATURE_POWER4;
+ 
+-  uint64_t array_hwcaps[] = { h1, h2 };
++  uint64_t array_hwcaps[] = { h1, h2, h3, h4 };
+   init_cpu_features (&GLRO(dl_powerpc_cpu_features), array_hwcaps);
+ 
+   /* Consolidate both HWCAP and HWCAP2 into a single doubleword so that
+      we can read both in a single load later.  */
+   __tcb.hwcap = (h1 << 32) | (h2 & 0xffffffff);
+-  __tcb.hwcap_extn = 0x0;
++
++  /* Consolidate both HWCAP3 and HWCAP4 into a single doubleword so that
++     we can read both in a single load later.  */
++  __tcb.hwcap_extn = (h3 << 32) | (h4 & 0xffffffff);
+ 
+ }
+ #if IS_IN (rtld)
+diff --git a/sysdeps/unix/sysv/linux/dl-parse_auxv.h b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
+index e3d758b163..ea2a58ecb1 100644
+--- a/sysdeps/unix/sysv/linux/dl-parse_auxv.h
++++ b/sysdeps/unix/sysv/linux/dl-parse_auxv.h
+@@ -47,6 +47,8 @@ void _dl_parse_auxv (ElfW(auxv_t) *av, dl_parse_auxv_t auxv_values)
+   GLRO(dl_platform) = (void *) auxv_values[AT_PLATFORM];
+   GLRO(dl_hwcap) = auxv_values[AT_HWCAP];
+   GLRO(dl_hwcap2) = auxv_values[AT_HWCAP2];
++  GLRO(dl_hwcap3) = auxv_values[AT_HWCAP3];
++  GLRO(dl_hwcap4) = auxv_values[AT_HWCAP4];
+   GLRO(dl_clktck) = auxv_values[AT_CLKTCK];
+   GLRO(dl_fpu_control) = auxv_values[AT_FPUCW];
+   _dl_random = (void *) auxv_values[AT_RANDOM];
+diff --git a/sysdeps/unix/sysv/linux/dl-sysdep.c b/sysdeps/unix/sysv/linux/dl-sysdep.c
+index ad3692d738..e1b14e9eb3 100644
+--- a/sysdeps/unix/sysv/linux/dl-sysdep.c
++++ b/sysdeps/unix/sysv/linux/dl-sysdep.c
+@@ -197,6 +197,8 @@ _dl_show_auxv (void)
+ 	  [AT_SYSINFO_EHDR - 2] =	{ "SYSINFO_EHDR:      0x", hex },
+ 	  [AT_RANDOM - 2] =		{ "RANDOM:            0x", hex },
+ 	  [AT_HWCAP2 - 2] =		{ "HWCAP2:            0x", hex },
++	  [AT_HWCAP3 - 2] =		{ "HWCAP3:            0x", hex },
++	  [AT_HWCAP4 - 2] =		{ "HWCAP4:            0x", hex },
+ 	  [AT_MINSIGSTKSZ - 2] =	{ "MINSIGSTKSZ:       ", dec },
+ 	  [AT_L1I_CACHESIZE - 2] =	{ "L1I_CACHESIZE:     ", dec },
+ 	  [AT_L1I_CACHEGEOMETRY - 2] =	{ "L1I_CACHEGEOMETRY: 0x", hex },
+diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
+index 8e8a5ec2ea..a947d62db6 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
++++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c
+@@ -94,6 +94,8 @@ init_cpu_features (struct cpu_features *cpu_features, uint64_t hwcaps[])
+      which are set by __tcb_parse_hwcap_and_convert_at_platform.  */
+   cpu_features->hwcap = hwcaps[0];
+   cpu_features->hwcap2 = hwcaps[1];
++  cpu_features->hwcap3 = hwcaps[2];
++  cpu_features->hwcap4 = hwcaps[3];
+   /* Default is to use aligned memory access on optimized function unless
+      tunables is enable, since for this case user can explicit disable
+      unaligned optimizations.  */
+diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.h b/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
+index 1294f0b601..e9eb6a13c8 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
++++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.h
+@@ -26,6 +26,8 @@ struct cpu_features
+   bool use_cached_memopt;
+   unsigned long int hwcap;
+   unsigned long int hwcap2;
++  unsigned long int hwcap3;
++  unsigned long int hwcap4;
+ };
+ 
+ static const char hwcap_names[] = {
+diff --git a/sysdeps/unix/sysv/linux/powerpc/libc-start.c b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+index a4705daf1c..6a00cd88cd 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/libc-start.c
++++ b/sysdeps/unix/sysv/linux/powerpc/libc-start.c
+@@ -87,6 +87,12 @@ __libc_start_main_impl (int argc, char **argv,
+       case AT_HWCAP2:
+ 	_dl_hwcap2 = (unsigned long int) av->a_un.a_val;
+ 	break;
++      case AT_HWCAP3:
++	_dl_hwcap3 = (unsigned long int) av->a_un.a_val;
++	break;
++      case AT_HWCAP4:
++	_dl_hwcap4 = (unsigned long int) av->a_un.a_val;
++	break;
+       case AT_PLATFORM:
+ 	_dl_platform = (void *) av->a_un.a_val;
+ 	break;
+
+commit aad45c8ac30aa1072e54903ce6aead22702f244a
+Author: Amrita H S <amritahs@linux.ibm.com>
+Date:   Tue Mar 19 19:08:47 2024 -0500
+
+    powerpc: Placeholder and infrastructure/build support to add Power11 related changes.
+    
+    The following three changes have been added to provide initial Power11 support.
+        1. Add the directories to hold Power11 files.
+        2. Add support to select Power11 libraries based on AT_PLATFORM.
+        3. Let submachine=power11 be set automatically.
+    
+    Reviewed-by: Florian Weimer <fweimer@redhat.com>
+    Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
+    (cherry picked from commit 1ea051145612f199d8716ecdf78b084b00b5a727)
+
+diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
+index f8cb343877..b36697ba44 100644
+--- a/sysdeps/powerpc/dl-procinfo.h
++++ b/sysdeps/powerpc/dl-procinfo.h
+@@ -38,7 +38,7 @@
+ #define HWCAP_IMPORTANT		(PPC_FEATURE_HAS_ALTIVEC \
+ 				+ PPC_FEATURE_HAS_DFP)
+ 
+-#define _DL_PLATFORMS_COUNT	16
++#define _DL_PLATFORMS_COUNT	17
+ 
+ #define _DL_FIRST_PLATFORM	32
+ /* Mask to filter out platforms.  */
+@@ -62,6 +62,7 @@
+ #define PPC_PLATFORM_POWER8		13
+ #define PPC_PLATFORM_POWER9		14
+ #define PPC_PLATFORM_POWER10		15
++#define PPC_PLATFORM_POWER11		16
+ 
+ static inline const char *
+ __attribute__ ((unused))
+@@ -89,6 +90,11 @@ _dl_string_platform (const char *str)
+ 	      ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
+ 	      str++;
+ 	    }
++	  else if (str[1] == '1')
++	    {
++	      ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11;
++	      str++;
++	    }
+ 	  else
+ 	    return -1;
+ 	  break;
+diff --git a/sysdeps/powerpc/powerpc32/power11/Implies b/sysdeps/powerpc/powerpc32/power11/Implies
+new file mode 100644
+index 0000000000..051cbe0f79
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc32/power11/Implies
+@@ -0,0 +1,2 @@
++powerpc/powerpc32/power10/fpu
++powerpc/powerpc32/power10
+diff --git a/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies
+new file mode 100644
+index 0000000000..58edb2861d
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc32/power10/fpu/multiarch
+diff --git a/sysdeps/powerpc/powerpc32/power11/multiarch/Implies b/sysdeps/powerpc/powerpc32/power11/multiarch/Implies
+new file mode 100644
+index 0000000000..c70f0428ba
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc32/power11/multiarch/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc32/power10/multiarch
+diff --git a/sysdeps/powerpc/powerpc64/be/power11/Implies b/sysdeps/powerpc/powerpc64/be/power11/Implies
+new file mode 100644
+index 0000000000..de481d1c13
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/be/power11/Implies
+@@ -0,0 +1,2 @@
++powerpc/powerpc64/be/power10/fpu
++powerpc/powerpc64/be/power10
+diff --git a/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies b/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies
+new file mode 100644
+index 0000000000..dff0e13064
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/be/power10/fpu
+diff --git a/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies
+new file mode 100644
+index 0000000000..c3f259e009
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/be/power10/fpu/multiarch
+diff --git a/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies
+new file mode 100644
+index 0000000000..9491a394c9
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/be/power10/multiarch
+diff --git a/sysdeps/powerpc/powerpc64/le/power11/Implies b/sysdeps/powerpc/powerpc64/le/power11/Implies
+new file mode 100644
+index 0000000000..e18182dcc1
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/le/power11/Implies
+@@ -0,0 +1,2 @@
++powerpc/powerpc64/le/power10/fpu
++powerpc/powerpc64/le/power10
+diff --git a/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies b/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies
+new file mode 100644
+index 0000000000..e41bd55684
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/le/power10/fpu
+diff --git a/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies
+new file mode 100644
+index 0000000000..c838d50931
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/le/power10/fpu/multiarch
+diff --git a/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies
+new file mode 100644
+index 0000000000..687248c3c2
+--- /dev/null
++++ b/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies
+@@ -0,0 +1 @@
++powerpc/powerpc64/le/power10/multiarch
+diff --git a/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c b/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
+index 77465d9133..65d3e69303 100644
+--- a/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
++++ b/sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
+@@ -36,9 +36,11 @@ compute_level (void)
+     return 9;
+   if (strcmp (platform, "power10") == 0)
+     return 10;
++  if (strcmp (platform, "power11") == 0)
++    return 11;
+   printf ("warning: unrecognized AT_PLATFORM value: %s\n", platform);
+-  /* Assume that the new platform supports POWER10.  */
+-  return 10;
++  /* Assume that the new platform supports POWER11.  */
++  return 11;
+ }
+ 
+ static int
+diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
+index 4de94089a3..9e5a07ab6d 100644
+--- a/sysdeps/powerpc/preconfigure
++++ b/sysdeps/powerpc/preconfigure
+@@ -58,7 +58,7 @@ fi
+ 
+     ;;
+ 
+-  a2|970|power[4-9]|power5x|power6+|power10)
++  a2|970|power[4-9]|power5x|power6+|power10|power11)
+     submachine=${archcpu}
+     if test ${libc_cv_cc_submachine+y}
+ then :
+diff --git a/sysdeps/powerpc/preconfigure.ac b/sysdeps/powerpc/preconfigure.ac
+index 6c63bd8257..14b6dafd4a 100644
+--- a/sysdeps/powerpc/preconfigure.ac
++++ b/sysdeps/powerpc/preconfigure.ac
+@@ -46,7 +46,7 @@ case "${machine}:${submachine}" in
+     AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
+     ;;
+ 
+-  a2|970|power[[4-9]]|power5x|power6+|power10)
++  a2|970|power[[4-9]]|power5x|power6+|power10|power11)
+     submachine=${archcpu}
+     AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
+     ;;
+
+commit 983f34a1252de3ca6f2305c211d86530ea42010e
+Author: caiyinyu <caiyinyu@loongson.cn>
+Date:   Mon Mar 11 16:07:48 2024 +0800
+
+    LoongArch: Correct {__ieee754, _}_scalb -> {__ieee754, _}_scalbf
+
+diff --git a/sysdeps/loongarch/fpu/e_scalbf.c b/sysdeps/loongarch/fpu/e_scalbf.c
+index 9f05485236..7c0395fbb5 100644
+--- a/sysdeps/loongarch/fpu/e_scalbf.c
++++ b/sysdeps/loongarch/fpu/e_scalbf.c
+@@ -57,4 +57,4 @@ __ieee754_scalbf (float x, float fn)
+ 
+   return x;
+ }
+-libm_alias_finite (__ieee754_scalb, __scalb)
++libm_alias_finite (__ieee754_scalbf, __scalbf)
+
+commit 7fc8242bf87828c935ac5df5cafb9dc7ab635fd9
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Fri Feb 16 07:17:10 2024 -0800
+
+    x86-64: Save APX registers in ld.so trampoline
+    
+    Add APX registers to STATE_SAVE_MASK so that APX registers are saved in
+    ld.so trampoline.  This fixes BZ #31371.
+    
+    Also update STATE_SAVE_OFFSET and STATE_SAVE_MASK for i386 which will
+    be used by i386 _dl_tlsdesc_dynamic.
+    Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
+    
+    (cherry picked from commit dfb05f8e704edac70db38c4c8ee700769d91a413)
+
+diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
+index 85d0a8c943..837fd28734 100644
+--- a/sysdeps/x86/sysdep.h
++++ b/sysdeps/x86/sysdep.h
+@@ -21,14 +21,54 @@
+ 
+ #include <sysdeps/generic/sysdep.h>
+ 
++/* The extended state feature IDs in the state component bitmap.  */
++#define X86_XSTATE_X87_ID	0
++#define X86_XSTATE_SSE_ID	1
++#define X86_XSTATE_AVX_ID	2
++#define X86_XSTATE_BNDREGS_ID	3
++#define X86_XSTATE_BNDCFG_ID	4
++#define X86_XSTATE_K_ID		5
++#define X86_XSTATE_ZMM_H_ID	6
++#define X86_XSTATE_ZMM_ID	7
++#define X86_XSTATE_PKRU_ID	9
++#define X86_XSTATE_TILECFG_ID	17
++#define X86_XSTATE_TILEDATA_ID	18
++#define X86_XSTATE_APX_F_ID	19
++
++#ifdef __x86_64__
+ /* Offset for fxsave/xsave area used by _dl_runtime_resolve.  Also need
+    space to preserve RCX, RDX, RSI, RDI, R8, R9 and RAX.  It must be
+-   aligned to 16 bytes for fxsave and 64 bytes for xsave.  */
+-#define STATE_SAVE_OFFSET (8 * 7 + 8)
+-
+-/* Save SSE, AVX, AVX512, mask and bound registers.  */
+-#define STATE_SAVE_MASK \
+-  ((1 << 1) | (1 << 2) | (1 << 3) | (1 << 5) | (1 << 6) | (1 << 7))
++   aligned to 16 bytes for fxsave and 64 bytes for xsave.
++
++   NB: Is is non-zero because of the 128-byte red-zone.  Some registers
++   are saved on stack without adjusting stack pointer first.  When we
++   update stack pointer to allocate more space, we need to take the
++   red-zone into account.  */
++# define STATE_SAVE_OFFSET (8 * 7 + 8)
++
++/* Save SSE, AVX, AVX512, mask, bound and APX registers.  Bound and APX
++   registers are mutually exclusive.  */
++# define STATE_SAVE_MASK		\
++  ((1 << X86_XSTATE_SSE_ID)		\
++   | (1 << X86_XSTATE_AVX_ID)		\
++   | (1 << X86_XSTATE_BNDREGS_ID)	\
++   | (1 << X86_XSTATE_K_ID)		\
++   | (1 << X86_XSTATE_ZMM_H_ID) 	\
++   | (1 << X86_XSTATE_ZMM_ID)		\
++   | (1 << X86_XSTATE_APX_F_ID))
++#else
++/* Offset for fxsave/xsave area used by _dl_tlsdesc_dynamic.  Since i386
++   doesn't have red-zone, use 0 here.  */
++# define STATE_SAVE_OFFSET 0
++
++/* Save SSE, AVX, AXV512, mask and bound registers.   */
++# define STATE_SAVE_MASK		\
++  ((1 << X86_XSTATE_SSE_ID)		\
++   | (1 << X86_XSTATE_AVX_ID)		\
++   | (1 << X86_XSTATE_BNDREGS_ID)	\
++   | (1 << X86_XSTATE_K_ID)		\
++   | (1 << X86_XSTATE_ZMM_H_ID))
++#endif
+ 
+ /* Constants for bits in __x86_string_control:  */
+ 
+
+commit a364304718725a31ab141936322855c76c73e35e
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Mon Feb 26 06:37:03 2024 -0800
+
+    x86: Update _dl_tlsdesc_dynamic to preserve caller-saved registers
+    
+    Compiler generates the following instruction sequence for GNU2 dynamic
+    TLS access:
+    
+            leaq    tls_var@TLSDESC(%rip), %rax
+            call    *tls_var@TLSCALL(%rax)
+    
+    or
+    
+            leal    tls_var@TLSDESC(%ebx), %eax
+            call    *tls_var@TLSCALL(%eax)
+    
+    CALL instruction is transparent to compiler which assumes all registers,
+    except for EFLAGS and RAX/EAX, are unchanged after CALL.  When
+    _dl_tlsdesc_dynamic is called, it calls __tls_get_addr on the slow
+    path.  __tls_get_addr is a normal function which doesn't preserve any
+    caller-saved registers.  _dl_tlsdesc_dynamic saved and restored integer
+    caller-saved registers, but didn't preserve any other caller-saved
+    registers.  Add _dl_tlsdesc_dynamic IFUNC functions for FNSAVE, FXSAVE,
+    XSAVE and XSAVEC to save and restore all caller-saved registers.  This
+    fixes BZ #31372.
+    
+    Add GLRO(dl_x86_64_runtime_resolve) with GLRO(dl_x86_tlsdesc_dynamic)
+    to optimize elf_machine_runtime_setup.
+    Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
+    
+    (cherry picked from commit 0aac205a814a8511e98d02b91a8dc908f1c53cde)
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 5d78b659ce..c5c37a9147 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -424,6 +424,7 @@ tests += \
+   tst-glibc-hwcaps-prepend \
+   tst-global1 \
+   tst-global2 \
++  tst-gnu2-tls2 \
+   tst-initfinilazyfail \
+   tst-initorder \
+   tst-initorder2 \
+@@ -846,6 +847,9 @@ modules-names += \
+   tst-filterobj-flt \
+   tst-finilazyfailmod \
+   tst-globalmod2 \
++  tst-gnu2-tls2mod0 \
++  tst-gnu2-tls2mod1 \
++  tst-gnu2-tls2mod2 \
+   tst-initlazyfailmod \
+   tst-initorder2a \
+   tst-initorder2b \
+@@ -3044,8 +3048,22 @@ $(objpfx)tst-tlsgap.out: \
+   $(objpfx)tst-tlsgap-mod0.so \
+   $(objpfx)tst-tlsgap-mod1.so \
+   $(objpfx)tst-tlsgap-mod2.so
++
++$(objpfx)tst-gnu2-tls2: $(shared-thread-library)
++$(objpfx)tst-gnu2-tls2.out: \
++  $(objpfx)tst-gnu2-tls2mod0.so \
++  $(objpfx)tst-gnu2-tls2mod1.so \
++  $(objpfx)tst-gnu2-tls2mod2.so
++
+ ifeq (yes,$(have-mtls-dialect-gnu2))
++# This test fails if dl_tlsdesc_dynamic doesn't preserve all caller-saved
++# registers.  See https://sourceware.org/bugzilla/show_bug.cgi?id=31372
++test-xfail-tst-gnu2-tls2 = yes
++
+ CFLAGS-tst-tlsgap-mod0.c += -mtls-dialect=gnu2
+ CFLAGS-tst-tlsgap-mod1.c += -mtls-dialect=gnu2
+ CFLAGS-tst-tlsgap-mod2.c += -mtls-dialect=gnu2
++CFLAGS-tst-gnu2-tls2mod0.c += -mtls-dialect=gnu2
++CFLAGS-tst-gnu2-tls2mod1.c += -mtls-dialect=gnu2
++CFLAGS-tst-gnu2-tls2mod2.c += -mtls-dialect=gnu2
+ endif
+diff --git a/elf/tst-gnu2-tls2.c b/elf/tst-gnu2-tls2.c
+new file mode 100644
+index 0000000000..7ac04d7f33
+--- /dev/null
++++ b/elf/tst-gnu2-tls2.c
+@@ -0,0 +1,122 @@
++/* Test TLSDESC relocation.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <string.h>
++#include <dlfcn.h>
++#include <pthread.h>
++#include <support/xdlfcn.h>
++#include <support/xthread.h>
++#include <support/check.h>
++#include <support/test-driver.h>
++#include "tst-gnu2-tls2.h"
++
++#ifndef IS_SUPPORTED
++# define IS_SUPPORTED() true
++#endif
++
++/* An architecture can define it to clobber caller-saved registers in
++   malloc below to verify that the implicit TLSDESC call won't change
++   caller-saved registers.  */
++#ifndef PREPARE_MALLOC
++# define PREPARE_MALLOC()
++#endif
++
++extern void * __libc_malloc (size_t);
++
++size_t malloc_counter = 0;
++
++void *
++malloc (size_t n)
++{
++  PREPARE_MALLOC ();
++  malloc_counter++;
++  return __libc_malloc (n);
++}
++
++static void *mod[3];
++#ifndef MOD
++# define MOD(i) "tst-gnu2-tls2mod" #i ".so"
++#endif
++static const char *modname[3] = { MOD(0), MOD(1), MOD(2) };
++#undef MOD
++
++static void
++open_mod (int i)
++{
++  mod[i] = xdlopen (modname[i], RTLD_LAZY);
++  printf ("open %s\n", modname[i]);
++}
++
++static void
++close_mod (int i)
++{
++  xdlclose (mod[i]);
++  mod[i] = NULL;
++  printf ("close %s\n", modname[i]);
++}
++
++static void
++access_mod (int i, const char *sym)
++{
++  struct tls var = { -1, -1, -1, -1 };
++  struct tls *(*f) (struct tls *) = xdlsym (mod[i], sym);
++  /* Check that our malloc is called.  */
++  malloc_counter = 0;
++  struct tls *p = f (&var);
++  TEST_VERIFY (malloc_counter != 0);
++  printf ("access %s: %s() = %p\n", modname[i], sym, p);
++  TEST_VERIFY_EXIT (memcmp (p, &var, sizeof (var)) == 0);
++  ++(p->a);
++}
++
++static void *
++start (void *arg)
++{
++  /* The DTV generation is at the last dlopen of mod0 and the
++     entry for mod1 is NULL.  */
++
++  open_mod (1); /* Reuse modid of mod1. Uses dynamic TLS.  */
++
++  /* Force the slow path in GNU2 TLS descriptor call.  */
++  access_mod (1, "apply_tls");
++
++  return arg;
++}
++
++static int
++do_test (void)
++{
++  if (!IS_SUPPORTED ())
++    return EXIT_UNSUPPORTED;
++
++  open_mod (0);
++  open_mod (1);
++  open_mod (2);
++  close_mod (0);
++  close_mod (1); /* Create modid gap at mod1.  */
++  open_mod (0); /* Reuse modid of mod0, bump generation count.  */
++
++  /* Create a thread where DTV of mod1 is NULL.  */
++  pthread_t t = xpthread_create (NULL, start, NULL);
++  xpthread_join (t);
++  return 0;
++}
++
++#include <support/test-driver.c>
+diff --git a/elf/tst-gnu2-tls2.h b/elf/tst-gnu2-tls2.h
+new file mode 100644
+index 0000000000..77964a57a3
+--- /dev/null
++++ b/elf/tst-gnu2-tls2.h
+@@ -0,0 +1,36 @@
++/* Test TLSDESC relocation.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <stdint.h>
++
++struct tls
++{
++  int64_t a, b, c, d;
++};
++
++extern struct tls *apply_tls (struct tls *);
++
++/* An architecture can define them to verify that clobber caller-saved
++   registers aren't changed by the implicit TLSDESC call.  */
++#ifndef BEFORE_TLSDESC_CALL
++# define BEFORE_TLSDESC_CALL()
++#endif
++
++#ifndef AFTER_TLSDESC_CALL
++# define AFTER_TLSDESC_CALL()
++#endif
+diff --git a/elf/tst-gnu2-tls2mod0.c b/elf/tst-gnu2-tls2mod0.c
+new file mode 100644
+index 0000000000..45556a0e17
+--- /dev/null
++++ b/elf/tst-gnu2-tls2mod0.c
+@@ -0,0 +1,31 @@
++/* DSO used by tst-gnu2-tls2.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include "tst-gnu2-tls2.h"
++
++__thread struct tls tls_var0 __attribute__ ((visibility ("hidden")));
++
++struct tls *
++apply_tls (struct tls *p)
++{
++  BEFORE_TLSDESC_CALL ();
++  tls_var0 = *p;
++  struct tls *ret = &tls_var0;
++  AFTER_TLSDESC_CALL ();
++  return ret;
++}
+diff --git a/elf/tst-gnu2-tls2mod1.c b/elf/tst-gnu2-tls2mod1.c
+new file mode 100644
+index 0000000000..e10b9dbc0a
+--- /dev/null
++++ b/elf/tst-gnu2-tls2mod1.c
+@@ -0,0 +1,31 @@
++/* DSO used by tst-gnu2-tls2.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include "tst-gnu2-tls2.h"
++
++__thread struct tls tls_var1[100] __attribute__ ((visibility ("hidden")));
++
++struct tls *
++apply_tls (struct tls *p)
++{
++  BEFORE_TLSDESC_CALL ();
++  tls_var1[1] = *p;
++  struct tls *ret = &tls_var1[1];
++  AFTER_TLSDESC_CALL ();
++  return ret;
++}
+diff --git a/elf/tst-gnu2-tls2mod2.c b/elf/tst-gnu2-tls2mod2.c
+new file mode 100644
+index 0000000000..141af51e55
+--- /dev/null
++++ b/elf/tst-gnu2-tls2mod2.c
+@@ -0,0 +1,31 @@
++/* DSO used by tst-gnu2-tls2.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include "tst-gnu2-tls2.h"
++
++__thread struct tls tls_var2 __attribute__ ((visibility ("hidden")));
++
++struct tls *
++apply_tls (struct tls *p)
++{
++  BEFORE_TLSDESC_CALL ();
++  tls_var2 = *p;
++  struct tls *ret = &tls_var2;
++  AFTER_TLSDESC_CALL ();
++  return ret;
++}
+diff --git a/sysdeps/i386/dl-machine.h b/sysdeps/i386/dl-machine.h
+index fc1ef96587..50d74fe6e9 100644
+--- a/sysdeps/i386/dl-machine.h
++++ b/sysdeps/i386/dl-machine.h
+@@ -347,7 +347,7 @@ and creates an unsatisfiable circular dependency.\n",
+ 		  {
+ 		    td->arg = _dl_make_tlsdesc_dynamic
+ 		      (sym_map, sym->st_value + (ElfW(Word))td->arg);
+-		    td->entry = _dl_tlsdesc_dynamic;
++		    td->entry = GLRO(dl_x86_tlsdesc_dynamic);
+ 		  }
+ 		else
+ #  endif
+diff --git a/sysdeps/i386/dl-tlsdesc-dynamic.h b/sysdeps/i386/dl-tlsdesc-dynamic.h
+new file mode 100644
+index 0000000000..3627028577
+--- /dev/null
++++ b/sysdeps/i386/dl-tlsdesc-dynamic.h
+@@ -0,0 +1,190 @@
++/* Thread-local storage handling in the ELF dynamic linker.  i386 version.
++   Copyright (C) 2004-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#undef REGISTER_SAVE_AREA
++
++#if !defined USE_FNSAVE && (STATE_SAVE_ALIGNMENT % 16) != 0
++# error STATE_SAVE_ALIGNMENT must be multiple of 16
++#endif
++
++#if DL_RUNTIME_RESOLVE_REALIGN_STACK
++# ifdef USE_FNSAVE
++#  error USE_FNSAVE shouldn't be defined
++# endif
++# ifdef USE_FXSAVE
++/* Use fxsave to save all registers.  */
++#  define REGISTER_SAVE_AREA	512
++# endif
++#else
++# ifdef USE_FNSAVE
++/* Use fnsave to save x87 FPU stack registers.  */
++#  define REGISTER_SAVE_AREA	108
++# else
++#  ifndef USE_FXSAVE
++#   error USE_FXSAVE must be defined
++#  endif
++/* Use fxsave to save all registers.  Add 12 bytes to align the stack
++   to 16 bytes.  */
++#  define REGISTER_SAVE_AREA	(512 + 12)
++# endif
++#endif
++
++	.hidden _dl_tlsdesc_dynamic
++	.global	_dl_tlsdesc_dynamic
++	.type	_dl_tlsdesc_dynamic,@function
++
++     /* This function is used for symbols that need dynamic TLS.
++
++	%eax points to the TLS descriptor, such that 0(%eax) points to
++	_dl_tlsdesc_dynamic itself, and 4(%eax) points to a struct
++	tlsdesc_dynamic_arg object.  It must return in %eax the offset
++	between the thread pointer and the object denoted by the
++	argument, without clobbering any registers.
++
++	The assembly code that follows is a rendition of the following
++	C code, hand-optimized a little bit.
++
++ptrdiff_t
++__attribute__ ((__regparm__ (1)))
++_dl_tlsdesc_dynamic (struct tlsdesc *tdp)
++{
++  struct tlsdesc_dynamic_arg *td = tdp->arg;
++  dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer + DTV_OFFSET);
++  if (__builtin_expect (td->gen_count <= dtv[0].counter
++			&& (dtv[td->tlsinfo.ti_module].pointer.val
++			    != TLS_DTV_UNALLOCATED),
++			1))
++    return dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset
++      - __thread_pointer;
++
++  return ___tls_get_addr (&td->tlsinfo) - __thread_pointer;
++}
++*/
++	cfi_startproc
++	.align 16
++_dl_tlsdesc_dynamic:
++	/* Like all TLS resolvers, preserve call-clobbered registers.
++	   We need two scratch regs anyway.  */
++	subl	$32, %esp
++	cfi_adjust_cfa_offset (32)
++	movl	%ecx, 20(%esp)
++	movl	%edx, 24(%esp)
++	movl	TLSDESC_ARG(%eax), %eax
++	movl	%gs:DTV_OFFSET, %edx
++	movl	TLSDESC_GEN_COUNT(%eax), %ecx
++	cmpl	(%edx), %ecx
++	ja	2f
++	movl	TLSDESC_MODID(%eax), %ecx
++	movl	(%edx,%ecx,8), %edx
++	cmpl	$-1, %edx
++	je	2f
++	movl	TLSDESC_MODOFF(%eax), %eax
++	addl	%edx, %eax
++1:
++	movl	20(%esp), %ecx
++	subl	%gs:0, %eax
++	movl	24(%esp), %edx
++	addl	$32, %esp
++	cfi_adjust_cfa_offset (-32)
++	ret
++	.p2align 4,,7
++2:
++	cfi_adjust_cfa_offset (32)
++#if DL_RUNTIME_RESOLVE_REALIGN_STACK
++	movl	%ebx, -28(%esp)
++	movl	%esp, %ebx
++	cfi_def_cfa_register(%ebx)
++	and	$-STATE_SAVE_ALIGNMENT, %esp
++#endif
++#ifdef REGISTER_SAVE_AREA
++	subl	$REGISTER_SAVE_AREA, %esp
++# if !DL_RUNTIME_RESOLVE_REALIGN_STACK
++	cfi_adjust_cfa_offset(REGISTER_SAVE_AREA)
++# endif
++#else
++# if !DL_RUNTIME_RESOLVE_REALIGN_STACK
++#  error DL_RUNTIME_RESOLVE_REALIGN_STACK must be true
++# endif
++	/* Allocate stack space of the required size to save the state.  */
++	LOAD_PIC_REG (cx)
++	subl	RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+XSAVE_STATE_SIZE_OFFSET+_rtld_local_ro@GOTOFF(%ecx), %esp
++#endif
++#ifdef USE_FNSAVE
++	fnsave	(%esp)
++#elif defined USE_FXSAVE
++	fxsave	(%esp)
++#else
++	/* Save the argument for ___tls_get_addr in EAX.  */
++	movl	%eax, %ecx
++	movl	$TLSDESC_CALL_STATE_SAVE_MASK, %eax
++	xorl	%edx, %edx
++	/* Clear the XSAVE Header.  */
++# ifdef USE_XSAVE
++	movl	%edx, (512)(%esp)
++	movl	%edx, (512 + 4 * 1)(%esp)
++	movl	%edx, (512 + 4 * 2)(%esp)
++	movl	%edx, (512 + 4 * 3)(%esp)
++# endif
++	movl	%edx, (512 + 4 * 4)(%esp)
++	movl	%edx, (512 + 4 * 5)(%esp)
++	movl	%edx, (512 + 4 * 6)(%esp)
++	movl	%edx, (512 + 4 * 7)(%esp)
++	movl	%edx, (512 + 4 * 8)(%esp)
++	movl	%edx, (512 + 4 * 9)(%esp)
++	movl	%edx, (512 + 4 * 10)(%esp)
++	movl	%edx, (512 + 4 * 11)(%esp)
++	movl	%edx, (512 + 4 * 12)(%esp)
++	movl	%edx, (512 + 4 * 13)(%esp)
++	movl	%edx, (512 + 4 * 14)(%esp)
++	movl	%edx, (512 + 4 * 15)(%esp)
++# ifdef USE_XSAVE
++	xsave	(%esp)
++# else
++	xsavec	(%esp)
++# endif
++	/* Restore the argument for ___tls_get_addr in EAX.  */
++	movl	%ecx, %eax
++#endif
++	call	HIDDEN_JUMPTARGET (___tls_get_addr)
++	/* Get register content back.  */
++#ifdef USE_FNSAVE
++	frstor	(%esp)
++#elif defined USE_FXSAVE
++	fxrstor	(%esp)
++#else
++	/* Save and retore ___tls_get_addr return value stored in EAX.  */
++	movl	%eax, %ecx
++	movl	$TLSDESC_CALL_STATE_SAVE_MASK, %eax
++	xorl	%edx, %edx
++	xrstor	(%esp)
++	movl	%ecx, %eax
++#endif
++#if DL_RUNTIME_RESOLVE_REALIGN_STACK
++	mov	%ebx, %esp
++	cfi_def_cfa_register(%esp)
++	movl	-28(%esp), %ebx
++	cfi_restore(%ebx)
++#else
++	addl	$REGISTER_SAVE_AREA, %esp
++	cfi_adjust_cfa_offset(-REGISTER_SAVE_AREA)
++#endif
++	jmp	1b
++	cfi_endproc
++	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
++
++#undef STATE_SAVE_ALIGNMENT
+diff --git a/sysdeps/i386/dl-tlsdesc.S b/sysdeps/i386/dl-tlsdesc.S
+index 90d93caa0c..f002feee56 100644
+--- a/sysdeps/i386/dl-tlsdesc.S
++++ b/sysdeps/i386/dl-tlsdesc.S
+@@ -18,8 +18,27 @@
+ 
+ #include <sysdep.h>
+ #include <tls.h>
++#include <cpu-features-offsets.h>
++#include <features-offsets.h>
+ #include "tlsdesc.h"
+ 
++#ifndef DL_STACK_ALIGNMENT
++/* Due to GCC bug:
++
++   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066
++
++   __tls_get_addr may be called with 4-byte stack alignment.  Although
++   this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't assume
++   that stack will be always aligned at 16 bytes.  */
++# define DL_STACK_ALIGNMENT 4
++#endif
++
++/* True if _dl_tlsdesc_dynamic should align stack for STATE_SAVE or align
++   stack to MINIMUM_ALIGNMENT bytes before calling ___tls_get_addr.  */
++#define DL_RUNTIME_RESOLVE_REALIGN_STACK \
++  (STATE_SAVE_ALIGNMENT > DL_STACK_ALIGNMENT \
++   || MINIMUM_ALIGNMENT > DL_STACK_ALIGNMENT)
++
+ 	.text
+ 
+      /* This function is used to compute the TP offset for symbols in
+@@ -65,69 +84,35 @@ _dl_tlsdesc_undefweak:
+ 	.size	_dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
+ 
+ #ifdef SHARED
+-	.hidden _dl_tlsdesc_dynamic
+-	.global	_dl_tlsdesc_dynamic
+-	.type	_dl_tlsdesc_dynamic,@function
+-
+-     /* This function is used for symbols that need dynamic TLS.
+-
+-	%eax points to the TLS descriptor, such that 0(%eax) points to
+-	_dl_tlsdesc_dynamic itself, and 4(%eax) points to a struct
+-	tlsdesc_dynamic_arg object.  It must return in %eax the offset
+-	between the thread pointer and the object denoted by the
+-	argument, without clobbering any registers.
+-
+-	The assembly code that follows is a rendition of the following
+-	C code, hand-optimized a little bit.
+-
+-ptrdiff_t
+-__attribute__ ((__regparm__ (1)))
+-_dl_tlsdesc_dynamic (struct tlsdesc *tdp)
+-{
+-  struct tlsdesc_dynamic_arg *td = tdp->arg;
+-  dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer + DTV_OFFSET);
+-  if (__builtin_expect (td->gen_count <= dtv[0].counter
+-			&& (dtv[td->tlsinfo.ti_module].pointer.val
+-			    != TLS_DTV_UNALLOCATED),
+-			1))
+-    return dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset
+-      - __thread_pointer;
+-
+-  return ___tls_get_addr (&td->tlsinfo) - __thread_pointer;
+-}
+-*/
+-	cfi_startproc
+-	.align 16
+-_dl_tlsdesc_dynamic:
+-	/* Like all TLS resolvers, preserve call-clobbered registers.
+-	   We need two scratch regs anyway.  */
+-	subl	$28, %esp
+-	cfi_adjust_cfa_offset (28)
+-	movl	%ecx, 20(%esp)
+-	movl	%edx, 24(%esp)
+-	movl	TLSDESC_ARG(%eax), %eax
+-	movl	%gs:DTV_OFFSET, %edx
+-	movl	TLSDESC_GEN_COUNT(%eax), %ecx
+-	cmpl	(%edx), %ecx
+-	ja	.Lslow
+-	movl	TLSDESC_MODID(%eax), %ecx
+-	movl	(%edx,%ecx,8), %edx
+-	cmpl	$-1, %edx
+-	je	.Lslow
+-	movl	TLSDESC_MODOFF(%eax), %eax
+-	addl	%edx, %eax
+-.Lret:
+-	movl	20(%esp), %ecx
+-	subl	%gs:0, %eax
+-	movl	24(%esp), %edx
+-	addl	$28, %esp
+-	cfi_adjust_cfa_offset (-28)
+-	ret
+-	.p2align 4,,7
+-.Lslow:
+-	cfi_adjust_cfa_offset (28)
+-	call	HIDDEN_JUMPTARGET (___tls_get_addr)
+-	jmp	.Lret
+-	cfi_endproc
+-	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
++# define USE_FNSAVE
++# define MINIMUM_ALIGNMENT	4
++# define STATE_SAVE_ALIGNMENT	4
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_fnsave
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef MINIMUM_ALIGNMENT
++# undef USE_FNSAVE
++
++# define MINIMUM_ALIGNMENT	16
++
++# define USE_FXSAVE
++# define STATE_SAVE_ALIGNMENT	16
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_fxsave
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef USE_FXSAVE
++
++# define USE_XSAVE
++# define STATE_SAVE_ALIGNMENT	64
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_xsave
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef USE_XSAVE
++
++# define USE_XSAVEC
++# define STATE_SAVE_ALIGNMENT	64
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_xsavec
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef USE_XSAVEC
+ #endif /* SHARED */
+diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
+index 4d50b327b5..992aabe43e 100644
+--- a/sysdeps/x86/Makefile
++++ b/sysdeps/x86/Makefile
+@@ -1,5 +1,5 @@
+ ifeq ($(subdir),csu)
+-gen-as-const-headers += cpu-features-offsets.sym
++gen-as-const-headers += cpu-features-offsets.sym features-offsets.sym
+ endif
+ 
+ ifeq ($(subdir),elf)
+@@ -86,6 +86,11 @@ endif
+ tst-ifunc-isa-2-ENV = GLIBC_TUNABLES=glibc.cpu.hwcaps=-SSE4_2,-AVX,-AVX2,-AVX512F
+ tst-ifunc-isa-2-static-ENV = $(tst-ifunc-isa-2-ENV)
+ tst-hwcap-tunables-ARGS = -- $(host-test-program-cmd)
++
++CFLAGS-tst-gnu2-tls2.c += -msse
++CFLAGS-tst-gnu2-tls2mod0.c += -msse2 -mtune=haswell
++CFLAGS-tst-gnu2-tls2mod1.c += -msse2 -mtune=haswell
++CFLAGS-tst-gnu2-tls2mod2.c += -msse2 -mtune=haswell
+ endif
+ 
+ ifeq ($(subdir),math)
+diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
+index 25e6622a79..835113b42f 100644
+--- a/sysdeps/x86/cpu-features.c
++++ b/sysdeps/x86/cpu-features.c
+@@ -27,8 +27,13 @@
+ extern void TUNABLE_CALLBACK (set_hwcaps) (tunable_val_t *)
+   attribute_hidden;
+ 
+-#if defined SHARED && defined __x86_64__
+-# include <dl-plt-rewrite.h>
++#if defined SHARED
++extern void _dl_tlsdesc_dynamic_fxsave (void) attribute_hidden;
++extern void _dl_tlsdesc_dynamic_xsave (void) attribute_hidden;
++extern void _dl_tlsdesc_dynamic_xsavec (void) attribute_hidden;
++
++# ifdef __x86_64__
++#  include <dl-plt-rewrite.h>
+ 
+ static void
+ TUNABLE_CALLBACK (set_plt_rewrite) (tunable_val_t *valp)
+@@ -47,6 +52,15 @@ TUNABLE_CALLBACK (set_plt_rewrite) (tunable_val_t *valp)
+ 		 : plt_rewrite_jmp);
+     }
+ }
++# else
++extern void _dl_tlsdesc_dynamic_fnsave (void) attribute_hidden;
++# endif
++#endif
++
++#ifdef __x86_64__
++extern void _dl_runtime_resolve_fxsave (void) attribute_hidden;
++extern void _dl_runtime_resolve_xsave (void) attribute_hidden;
++extern void _dl_runtime_resolve_xsavec (void) attribute_hidden;
+ #endif
+ 
+ #ifdef __LP64__
+@@ -1130,6 +1144,44 @@ no_cpuid:
+ 	       TUNABLE_CALLBACK (set_x86_shstk));
+ #endif
+ 
++  if (GLRO(dl_x86_cpu_features).xsave_state_size != 0)
++    {
++      if (CPU_FEATURE_USABLE_P (cpu_features, XSAVEC))
++	{
++#ifdef __x86_64__
++	  GLRO(dl_x86_64_runtime_resolve) = _dl_runtime_resolve_xsavec;
++#endif
++#ifdef SHARED
++	  GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_xsavec;
++#endif
++	}
++      else
++	{
++#ifdef __x86_64__
++	  GLRO(dl_x86_64_runtime_resolve) = _dl_runtime_resolve_xsave;
++#endif
++#ifdef SHARED
++	  GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_xsave;
++#endif
++	}
++    }
++  else
++    {
++#ifdef __x86_64__
++      GLRO(dl_x86_64_runtime_resolve) = _dl_runtime_resolve_fxsave;
++# ifdef SHARED
++      GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fxsave;
++# endif
++#else
++# ifdef SHARED
++      if (CPU_FEATURE_USABLE_P (cpu_features, FXSR))
++	GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fxsave;
++      else
++	GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fnsave;
++# endif
++#endif
++    }
++
+ #ifdef SHARED
+ # ifdef __x86_64__
+   TUNABLE_GET (plt_rewrite, tunable_val_t *,
+diff --git a/sysdeps/x86/dl-procinfo.c b/sysdeps/x86/dl-procinfo.c
+index ee957b4d70..5920d4b320 100644
+--- a/sysdeps/x86/dl-procinfo.c
++++ b/sysdeps/x86/dl-procinfo.c
+@@ -86,3 +86,19 @@ PROCINFO_CLASS const char _dl_x86_platforms[4][9]
+ #else
+ ,
+ #endif
++
++#if defined SHARED && !IS_IN (ldconfig)
++# if !defined PROCINFO_DECL
++  ._dl_x86_tlsdesc_dynamic
++# else
++PROCINFO_CLASS void * _dl_x86_tlsdesc_dynamic
++# endif
++# ifndef PROCINFO_DECL
++= NULL
++# endif
++# ifdef PROCINFO_DECL
++;
++# else
++,
++# endif
++#endif
+diff --git a/sysdeps/x86_64/features-offsets.sym b/sysdeps/x86/features-offsets.sym
+similarity index 89%
+rename from sysdeps/x86_64/features-offsets.sym
+rename to sysdeps/x86/features-offsets.sym
+index 9e4be3393a..77e990c705 100644
+--- a/sysdeps/x86_64/features-offsets.sym
++++ b/sysdeps/x86/features-offsets.sym
+@@ -3,4 +3,6 @@
+ #include <ldsodefs.h>
+ 
+ RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET offsetof (struct rtld_global_ro, _dl_x86_cpu_features)
++#ifdef __x86_64__
+ RTLD_GLOBAL_DL_X86_FEATURE_1_OFFSET offsetof (struct rtld_global, _dl_x86_feature_1)
++#endif
+diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
+index 837fd28734..485cad9c02 100644
+--- a/sysdeps/x86/sysdep.h
++++ b/sysdeps/x86/sysdep.h
+@@ -70,6 +70,12 @@
+    | (1 << X86_XSTATE_ZMM_H_ID))
+ #endif
+ 
++/* States which should be saved for TLSDESC_CALL and TLS_DESC_CALL.
++   Compiler assumes that all registers, including x87 FPU stack registers,
++   are unchanged after CALL, except for EFLAGS and RAX/EAX.  */
++#define TLSDESC_CALL_STATE_SAVE_MASK	\
++  (STATE_SAVE_MASK | (1 << X86_XSTATE_X87_ID))
++
+ /* Constants for bits in __x86_string_control:  */
+ 
+ /* Avoid short distance REP MOVSB.  */
+diff --git a/sysdeps/x86/tst-gnu2-tls2.c b/sysdeps/x86/tst-gnu2-tls2.c
+new file mode 100644
+index 0000000000..de900a423b
+--- /dev/null
++++ b/sysdeps/x86/tst-gnu2-tls2.c
+@@ -0,0 +1,20 @@
++#ifndef __x86_64__
++#include <sys/platform/x86.h>
++
++#define IS_SUPPORTED() CPU_FEATURE_ACTIVE (SSE2)
++#endif
++
++/* Clear XMM0...XMM7  */
++#define PREPARE_MALLOC()				\
++{							\
++  asm volatile ("xorps %%xmm0, %%xmm0" : : : "xmm0" );	\
++  asm volatile ("xorps %%xmm1, %%xmm1" : : : "xmm1" );	\
++  asm volatile ("xorps %%xmm2, %%xmm2" : : : "xmm2" );	\
++  asm volatile ("xorps %%xmm3, %%xmm3" : : : "xmm3" );	\
++  asm volatile ("xorps %%xmm4, %%xmm4" : : : "xmm4" );	\
++  asm volatile ("xorps %%xmm5, %%xmm5" : : : "xmm5" );	\
++  asm volatile ("xorps %%xmm6, %%xmm6" : : : "xmm6" );	\
++  asm volatile ("xorps %%xmm7, %%xmm7" : : : "xmm7" );	\
++}
++
++#include <elf/tst-gnu2-tls2.c>
+diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
+index 90f4ecfd26..e8babc9a4e 100644
+--- a/sysdeps/x86_64/Makefile
++++ b/sysdeps/x86_64/Makefile
+@@ -10,7 +10,7 @@ LDFLAGS-rtld += -Wl,-z,nomark-plt
+ endif
+ 
+ ifeq ($(subdir),csu)
+-gen-as-const-headers += features-offsets.sym link-defines.sym
++gen-as-const-headers += link-defines.sym
+ endif
+ 
+ ifeq ($(subdir),gmon)
+diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
+index 6d605d0d32..ff5d45f7cb 100644
+--- a/sysdeps/x86_64/dl-machine.h
++++ b/sysdeps/x86_64/dl-machine.h
+@@ -71,9 +71,6 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+ 			   int lazy, int profile)
+ {
+   Elf64_Addr *got;
+-  extern void _dl_runtime_resolve_fxsave (ElfW(Word)) attribute_hidden;
+-  extern void _dl_runtime_resolve_xsave (ElfW(Word)) attribute_hidden;
+-  extern void _dl_runtime_resolve_xsavec (ElfW(Word)) attribute_hidden;
+   extern void _dl_runtime_profile_sse (ElfW(Word)) attribute_hidden;
+   extern void _dl_runtime_profile_avx (ElfW(Word)) attribute_hidden;
+   extern void _dl_runtime_profile_avx512 (ElfW(Word)) attribute_hidden;
+@@ -96,8 +93,6 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+       /* Identify this shared object.  */
+       *(ElfW(Addr) *) (got + 1) = (ElfW(Addr)) l;
+ 
+-      const struct cpu_features* cpu_features = __get_cpu_features ();
+-
+ #ifdef SHARED
+       /* The got[2] entry contains the address of a function which gets
+ 	 called to get the address of a so far unresolved function and
+@@ -107,6 +102,7 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+ 	 end in this function.  */
+       if (__glibc_unlikely (profile))
+ 	{
++	  const struct cpu_features* cpu_features = __get_cpu_features ();
+ 	  if (X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX512F))
+ 	    *(ElfW(Addr) *) (got + 2) = (ElfW(Addr)) &_dl_runtime_profile_avx512;
+ 	  else if (X86_ISA_CPU_FEATURE_USABLE_P (cpu_features, AVX))
+@@ -126,15 +122,8 @@ elf_machine_runtime_setup (struct link_map *l, struct r_scope_elem *scope[],
+ 	  /* This function will get called to fix up the GOT entry
+ 	     indicated by the offset on the stack, and then jump to
+ 	     the resolved address.  */
+-	  if (MINIMUM_X86_ISA_LEVEL >= AVX_X86_ISA_LEVEL
+-	      || GLRO(dl_x86_cpu_features).xsave_state_size != 0)
+-	    *(ElfW(Addr) *) (got + 2)
+-	      = (CPU_FEATURE_USABLE_P (cpu_features, XSAVEC)
+-		 ? (ElfW(Addr)) &_dl_runtime_resolve_xsavec
+-		 : (ElfW(Addr)) &_dl_runtime_resolve_xsave);
+-	  else
+-	    *(ElfW(Addr) *) (got + 2)
+-	      = (ElfW(Addr)) &_dl_runtime_resolve_fxsave;
++	  *(ElfW(Addr) *) (got + 2)
++	    = (ElfW(Addr)) GLRO(dl_x86_64_runtime_resolve);
+ 	}
+     }
+ 
+@@ -383,7 +372,7 @@ and creates an unsatisfiable circular dependency.\n",
+ 		  {
+ 		    td->arg = _dl_make_tlsdesc_dynamic
+ 		      (sym_map, sym->st_value + reloc->r_addend);
+-		    td->entry = _dl_tlsdesc_dynamic;
++		    td->entry = GLRO(dl_x86_tlsdesc_dynamic);
+ 		  }
+ 		else
+ #  endif
+diff --git a/sysdeps/x86_64/dl-procinfo.c b/sysdeps/x86_64/dl-procinfo.c
+index 4d1d790fbb..06637a8154 100644
+--- a/sysdeps/x86_64/dl-procinfo.c
++++ b/sysdeps/x86_64/dl-procinfo.c
+@@ -41,5 +41,21 @@
+ 
+ #include <sysdeps/x86/dl-procinfo.c>
+ 
++#if !IS_IN (ldconfig)
++# if !defined PROCINFO_DECL && defined SHARED
++  ._dl_x86_64_runtime_resolve
++# else
++PROCINFO_CLASS void * _dl_x86_64_runtime_resolve
++# endif
++# ifndef PROCINFO_DECL
++= NULL
++# endif
++# if !defined SHARED || defined PROCINFO_DECL
++;
++# else
++,
++# endif
++#endif
++
+ #undef PROCINFO_DECL
+ #undef PROCINFO_CLASS
+diff --git a/sysdeps/x86_64/dl-tlsdesc-dynamic.h b/sysdeps/x86_64/dl-tlsdesc-dynamic.h
+new file mode 100644
+index 0000000000..0c2e8d5320
+--- /dev/null
++++ b/sysdeps/x86_64/dl-tlsdesc-dynamic.h
+@@ -0,0 +1,166 @@
++/* Thread-local storage handling in the ELF dynamic linker.  x86_64 version.
++   Copyright (C) 2004-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#ifndef SECTION
++# define SECTION(p)	p
++#endif
++
++#undef REGISTER_SAVE_AREA
++#undef LOCAL_STORAGE_AREA
++#undef BASE
++
++#include "dl-trampoline-state.h"
++
++	.section SECTION(.text),"ax",@progbits
++
++	.hidden _dl_tlsdesc_dynamic
++	.global	_dl_tlsdesc_dynamic
++	.type	_dl_tlsdesc_dynamic,@function
++
++     /* %rax points to the TLS descriptor, such that 0(%rax) points to
++	_dl_tlsdesc_dynamic itself, and 8(%rax) points to a struct
++	tlsdesc_dynamic_arg object.  It must return in %rax the offset
++	between the thread pointer and the object denoted by the
++	argument, without clobbering any registers.
++
++	The assembly code that follows is a rendition of the following
++	C code, hand-optimized a little bit.
++
++ptrdiff_t
++_dl_tlsdesc_dynamic (register struct tlsdesc *tdp asm ("%rax"))
++{
++  struct tlsdesc_dynamic_arg *td = tdp->arg;
++  dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer + DTV_OFFSET);
++  if (__builtin_expect (td->gen_count <= dtv[0].counter
++			&& (dtv[td->tlsinfo.ti_module].pointer.val
++			    != TLS_DTV_UNALLOCATED),
++			1))
++    return dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset
++      - __thread_pointer;
++
++  return __tls_get_addr_internal (&td->tlsinfo) - __thread_pointer;
++}
++*/
++	cfi_startproc
++	.align 16
++_dl_tlsdesc_dynamic:
++	_CET_ENDBR
++	/* Preserve call-clobbered registers that we modify.
++	   We need two scratch regs anyway.  */
++	movq	%rsi, -16(%rsp)
++	mov	%fs:DTV_OFFSET, %RSI_LP
++	movq	%rdi, -8(%rsp)
++	movq	TLSDESC_ARG(%rax), %rdi
++	movq	(%rsi), %rax
++	cmpq	%rax, TLSDESC_GEN_COUNT(%rdi)
++	ja	2f
++	movq	TLSDESC_MODID(%rdi), %rax
++	salq	$4, %rax
++	movq	(%rax,%rsi), %rax
++	cmpq	$-1, %rax
++	je	2f
++	addq	TLSDESC_MODOFF(%rdi), %rax
++1:
++	movq	-16(%rsp), %rsi
++	sub	%fs:0, %RAX_LP
++	movq	-8(%rsp), %rdi
++	ret
++2:
++#if DL_RUNTIME_RESOLVE_REALIGN_STACK
++	movq	%rbx, -24(%rsp)
++	mov	%RSP_LP, %RBX_LP
++	cfi_def_cfa_register(%rbx)
++	and	$-STATE_SAVE_ALIGNMENT, %RSP_LP
++#endif
++#ifdef REGISTER_SAVE_AREA
++# if DL_RUNTIME_RESOLVE_REALIGN_STACK
++	/* STATE_SAVE_OFFSET has space for 8 integer registers.  But we
++	   need space for RCX, RDX, RSI, RDI, R8, R9, R10 and R11, plus
++	   RBX above.  */
++	sub	$(REGISTER_SAVE_AREA + STATE_SAVE_ALIGNMENT), %RSP_LP
++# else
++	sub	$REGISTER_SAVE_AREA, %RSP_LP
++	cfi_adjust_cfa_offset(REGISTER_SAVE_AREA)
++# endif
++#else
++	/* Allocate stack space of the required size to save the state.  */
++	sub	_rtld_local_ro+RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+XSAVE_STATE_SIZE_OFFSET(%rip), %RSP_LP
++#endif
++	/* Besides rdi and rsi, saved above, save rcx, rdx, r8, r9,
++	   r10 and r11.  */
++	movq	%rcx, REGISTER_SAVE_RCX(%rsp)
++	movq	%rdx, REGISTER_SAVE_RDX(%rsp)
++	movq	%r8, REGISTER_SAVE_R8(%rsp)
++	movq	%r9, REGISTER_SAVE_R9(%rsp)
++	movq	%r10, REGISTER_SAVE_R10(%rsp)
++	movq	%r11, REGISTER_SAVE_R11(%rsp)
++#ifdef USE_FXSAVE
++	fxsave	STATE_SAVE_OFFSET(%rsp)
++#else
++	movl	$TLSDESC_CALL_STATE_SAVE_MASK, %eax
++	xorl	%edx, %edx
++	/* Clear the XSAVE Header.  */
++# ifdef USE_XSAVE
++	movq	%rdx, (STATE_SAVE_OFFSET + 512)(%rsp)
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8)(%rsp)
++# endif
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8 * 2)(%rsp)
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8 * 3)(%rsp)
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8 * 4)(%rsp)
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8 * 5)(%rsp)
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8 * 6)(%rsp)
++	movq	%rdx, (STATE_SAVE_OFFSET + 512 + 8 * 7)(%rsp)
++# ifdef USE_XSAVE
++	xsave	STATE_SAVE_OFFSET(%rsp)
++# else
++	xsavec	STATE_SAVE_OFFSET(%rsp)
++# endif
++#endif
++	/* %rdi already points to the tlsinfo data structure.  */
++	call	HIDDEN_JUMPTARGET (__tls_get_addr)
++	# Get register content back.
++#ifdef USE_FXSAVE
++	fxrstor	STATE_SAVE_OFFSET(%rsp)
++#else
++	/* Save and retore __tls_get_addr return value stored in RAX.  */
++	mov	%RAX_LP, %RCX_LP
++	movl	$TLSDESC_CALL_STATE_SAVE_MASK, %eax
++	xorl	%edx, %edx
++	xrstor	STATE_SAVE_OFFSET(%rsp)
++	mov	%RCX_LP, %RAX_LP
++#endif
++	movq	REGISTER_SAVE_R11(%rsp), %r11
++	movq	REGISTER_SAVE_R10(%rsp), %r10
++	movq	REGISTER_SAVE_R9(%rsp), %r9
++	movq	REGISTER_SAVE_R8(%rsp), %r8
++	movq	REGISTER_SAVE_RDX(%rsp), %rdx
++	movq	REGISTER_SAVE_RCX(%rsp), %rcx
++#if DL_RUNTIME_RESOLVE_REALIGN_STACK
++	mov	%RBX_LP, %RSP_LP
++	cfi_def_cfa_register(%rsp)
++	movq	-24(%rsp), %rbx
++	cfi_restore(%rbx)
++#else
++	add	$REGISTER_SAVE_AREA, %RSP_LP
++	cfi_adjust_cfa_offset(-REGISTER_SAVE_AREA)
++#endif
++	jmp	1b
++	cfi_endproc
++	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
++
++#undef STATE_SAVE_ALIGNMENT
+diff --git a/sysdeps/x86_64/dl-tlsdesc.S b/sysdeps/x86_64/dl-tlsdesc.S
+index f748af2ece..ea69f5223a 100644
+--- a/sysdeps/x86_64/dl-tlsdesc.S
++++ b/sysdeps/x86_64/dl-tlsdesc.S
+@@ -18,7 +18,19 @@
+ 
+ #include <sysdep.h>
+ #include <tls.h>
++#include <cpu-features-offsets.h>
++#include <features-offsets.h>
+ #include "tlsdesc.h"
++#include "dl-trampoline-save.h"
++
++/* Area on stack to save and restore registers used for parameter
++   passing when calling _dl_tlsdesc_dynamic.  */
++#define REGISTER_SAVE_RCX	0
++#define REGISTER_SAVE_RDX	(REGISTER_SAVE_RCX + 8)
++#define REGISTER_SAVE_R8	(REGISTER_SAVE_RDX + 8)
++#define REGISTER_SAVE_R9	(REGISTER_SAVE_R8 + 8)
++#define REGISTER_SAVE_R10	(REGISTER_SAVE_R9 + 8)
++#define REGISTER_SAVE_R11	(REGISTER_SAVE_R10 + 8)
+ 
+ 	.text
+ 
+@@ -67,80 +79,24 @@ _dl_tlsdesc_undefweak:
+ 	.size	_dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
+ 
+ #ifdef SHARED
+-	.hidden _dl_tlsdesc_dynamic
+-	.global	_dl_tlsdesc_dynamic
+-	.type	_dl_tlsdesc_dynamic,@function
+-
+-     /* %rax points to the TLS descriptor, such that 0(%rax) points to
+-	_dl_tlsdesc_dynamic itself, and 8(%rax) points to a struct
+-	tlsdesc_dynamic_arg object.  It must return in %rax the offset
+-	between the thread pointer and the object denoted by the
+-	argument, without clobbering any registers.
+-
+-	The assembly code that follows is a rendition of the following
+-	C code, hand-optimized a little bit.
+-
+-ptrdiff_t
+-_dl_tlsdesc_dynamic (register struct tlsdesc *tdp asm ("%rax"))
+-{
+-  struct tlsdesc_dynamic_arg *td = tdp->arg;
+-  dtv_t *dtv = *(dtv_t **)((char *)__thread_pointer + DTV_OFFSET);
+-  if (__builtin_expect (td->gen_count <= dtv[0].counter
+-			&& (dtv[td->tlsinfo.ti_module].pointer.val
+-			    != TLS_DTV_UNALLOCATED),
+-			1))
+-    return dtv[td->tlsinfo.ti_module].pointer.val + td->tlsinfo.ti_offset
+-      - __thread_pointer;
+-
+-  return __tls_get_addr_internal (&td->tlsinfo) - __thread_pointer;
+-}
+-*/
+-	cfi_startproc
+-	.align 16
+-_dl_tlsdesc_dynamic:
+-	_CET_ENDBR
+-	/* Preserve call-clobbered registers that we modify.
+-	   We need two scratch regs anyway.  */
+-	movq	%rsi, -16(%rsp)
+-	mov	%fs:DTV_OFFSET, %RSI_LP
+-	movq	%rdi, -8(%rsp)
+-	movq	TLSDESC_ARG(%rax), %rdi
+-	movq	(%rsi), %rax
+-	cmpq	%rax, TLSDESC_GEN_COUNT(%rdi)
+-	ja	.Lslow
+-	movq	TLSDESC_MODID(%rdi), %rax
+-	salq	$4, %rax
+-	movq	(%rax,%rsi), %rax
+-	cmpq	$-1, %rax
+-	je	.Lslow
+-	addq	TLSDESC_MODOFF(%rdi), %rax
+-.Lret:
+-	movq	-16(%rsp), %rsi
+-	sub	%fs:0, %RAX_LP
+-	movq	-8(%rsp), %rdi
+-	ret
+-.Lslow:
+-	/* Besides rdi and rsi, saved above, save rdx, rcx, r8, r9,
+-	   r10 and r11.  Also, align the stack, that's off by 8 bytes.	*/
+-	subq	$72, %rsp
+-	cfi_adjust_cfa_offset (72)
+-	movq	%rdx, 8(%rsp)
+-	movq	%rcx, 16(%rsp)
+-	movq	%r8, 24(%rsp)
+-	movq	%r9, 32(%rsp)
+-	movq	%r10, 40(%rsp)
+-	movq	%r11, 48(%rsp)
+-	/* %rdi already points to the tlsinfo data structure.  */
+-	call	HIDDEN_JUMPTARGET (__tls_get_addr)
+-	movq	8(%rsp), %rdx
+-	movq	16(%rsp), %rcx
+-	movq	24(%rsp), %r8
+-	movq	32(%rsp), %r9
+-	movq	40(%rsp), %r10
+-	movq	48(%rsp), %r11
+-	addq	$72, %rsp
+-	cfi_adjust_cfa_offset (-72)
+-	jmp	.Lret
+-	cfi_endproc
+-	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
++# define USE_FXSAVE
++# define STATE_SAVE_ALIGNMENT	16
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_fxsave
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef USE_FXSAVE
++
++# define USE_XSAVE
++# define STATE_SAVE_ALIGNMENT	64
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_xsave
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef USE_XSAVE
++
++# define USE_XSAVEC
++# define STATE_SAVE_ALIGNMENT	64
++# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_xsavec
++# include "dl-tlsdesc-dynamic.h"
++# undef _dl_tlsdesc_dynamic
++# undef USE_XSAVEC
+ #endif /* SHARED */
+diff --git a/sysdeps/x86_64/dl-trampoline-save.h b/sysdeps/x86_64/dl-trampoline-save.h
+new file mode 100644
+index 0000000000..84eac4a8ac
+--- /dev/null
++++ b/sysdeps/x86_64/dl-trampoline-save.h
+@@ -0,0 +1,34 @@
++/* x86-64 PLT trampoline register save macros.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#ifndef DL_STACK_ALIGNMENT
++/* Due to GCC bug:
++
++   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066
++
++   __tls_get_addr may be called with 8-byte stack alignment.  Although
++   this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't assume
++   that stack will be always aligned at 16 bytes.  */
++# define DL_STACK_ALIGNMENT 8
++#endif
++
++/* True if _dl_runtime_resolve should align stack for STATE_SAVE or align
++   stack to 16 bytes before calling _dl_fixup.  */
++#define DL_RUNTIME_RESOLVE_REALIGN_STACK \
++  (STATE_SAVE_ALIGNMENT > DL_STACK_ALIGNMENT \
++   || 16 > DL_STACK_ALIGNMENT)
+diff --git a/sysdeps/x86_64/dl-trampoline-state.h b/sysdeps/x86_64/dl-trampoline-state.h
+new file mode 100644
+index 0000000000..575f120797
+--- /dev/null
++++ b/sysdeps/x86_64/dl-trampoline-state.h
+@@ -0,0 +1,51 @@
++/* x86-64 PLT dl-trampoline state macros.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#if (STATE_SAVE_ALIGNMENT % 16) != 0
++# error STATE_SAVE_ALIGNMENT must be multiple of 16
++#endif
++
++#if (STATE_SAVE_OFFSET % STATE_SAVE_ALIGNMENT) != 0
++# error STATE_SAVE_OFFSET must be multiple of STATE_SAVE_ALIGNMENT
++#endif
++
++#if DL_RUNTIME_RESOLVE_REALIGN_STACK
++/* Local stack area before jumping to function address: RBX.  */
++# define LOCAL_STORAGE_AREA	8
++# define BASE			rbx
++# ifdef USE_FXSAVE
++/* Use fxsave to save XMM registers.  */
++#  define REGISTER_SAVE_AREA	(512 + STATE_SAVE_OFFSET)
++#  if (REGISTER_SAVE_AREA % 16) != 0
++#   error REGISTER_SAVE_AREA must be multiple of 16
++#  endif
++# endif
++#else
++# ifndef USE_FXSAVE
++#  error USE_FXSAVE must be defined
++# endif
++/* Use fxsave to save XMM registers.  */
++# define REGISTER_SAVE_AREA	(512 + STATE_SAVE_OFFSET + 8)
++/* Local stack area before jumping to function address:  All saved
++   registers.  */
++# define LOCAL_STORAGE_AREA	REGISTER_SAVE_AREA
++# define BASE			rsp
++# if (REGISTER_SAVE_AREA % 16) != 8
++#  error REGISTER_SAVE_AREA must be odd multiple of 8
++# endif
++#endif
+diff --git a/sysdeps/x86_64/dl-trampoline.S b/sysdeps/x86_64/dl-trampoline.S
+index b2e7e0f69b..87c5137837 100644
+--- a/sysdeps/x86_64/dl-trampoline.S
++++ b/sysdeps/x86_64/dl-trampoline.S
+@@ -22,25 +22,7 @@
+ #include <features-offsets.h>
+ #include <link-defines.h>
+ #include <isa-level.h>
+-
+-#ifndef DL_STACK_ALIGNMENT
+-/* Due to GCC bug:
+-
+-   https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58066
+-
+-   __tls_get_addr may be called with 8-byte stack alignment.  Although
+-   this bug has been fixed in GCC 4.9.4, 5.3 and 6, we can't assume
+-   that stack will be always aligned at 16 bytes.  We use unaligned
+-   16-byte move to load and store SSE registers, which has no penalty
+-   on modern processors if stack is 16-byte aligned.  */
+-# define DL_STACK_ALIGNMENT 8
+-#endif
+-
+-/* True if _dl_runtime_resolve should align stack for STATE_SAVE or align
+-   stack to 16 bytes before calling _dl_fixup.  */
+-#define DL_RUNTIME_RESOLVE_REALIGN_STACK \
+-  (STATE_SAVE_ALIGNMENT > DL_STACK_ALIGNMENT \
+-   || 16 > DL_STACK_ALIGNMENT)
++#include "dl-trampoline-save.h"
+ 
+ /* Area on stack to save and restore registers used for parameter
+    passing when calling _dl_fixup.  */
+diff --git a/sysdeps/x86_64/dl-trampoline.h b/sysdeps/x86_64/dl-trampoline.h
+index f55c6ea040..d9ccfb40d4 100644
+--- a/sysdeps/x86_64/dl-trampoline.h
++++ b/sysdeps/x86_64/dl-trampoline.h
+@@ -27,39 +27,7 @@
+ # undef LOCAL_STORAGE_AREA
+ # undef BASE
+ 
+-# if (STATE_SAVE_ALIGNMENT % 16) != 0
+-#  error STATE_SAVE_ALIGNMENT must be multiple of 16
+-# endif
+-
+-# if (STATE_SAVE_OFFSET % STATE_SAVE_ALIGNMENT) != 0
+-#  error STATE_SAVE_OFFSET must be multiple of STATE_SAVE_ALIGNMENT
+-# endif
+-
+-# if DL_RUNTIME_RESOLVE_REALIGN_STACK
+-/* Local stack area before jumping to function address: RBX.  */
+-#  define LOCAL_STORAGE_AREA	8
+-#  define BASE			rbx
+-#  ifdef USE_FXSAVE
+-/* Use fxsave to save XMM registers.  */
+-#   define REGISTER_SAVE_AREA	(512 + STATE_SAVE_OFFSET)
+-#   if (REGISTER_SAVE_AREA % 16) != 0
+-#    error REGISTER_SAVE_AREA must be multiple of 16
+-#   endif
+-#  endif
+-# else
+-#  ifndef USE_FXSAVE
+-#   error USE_FXSAVE must be defined
+-#  endif
+-/* Use fxsave to save XMM registers.  */
+-#  define REGISTER_SAVE_AREA	(512 + STATE_SAVE_OFFSET + 8)
+-/* Local stack area before jumping to function address:  All saved
+-   registers.  */
+-#  define LOCAL_STORAGE_AREA	REGISTER_SAVE_AREA
+-#  define BASE			rsp
+-#  if (REGISTER_SAVE_AREA % 16) != 8
+-#   error REGISTER_SAVE_AREA must be odd multiple of 8
+-#  endif
+-# endif
++# include "dl-trampoline-state.h"
+ 
+ 	.globl _dl_runtime_resolve
+ 	.hidden _dl_runtime_resolve
+
+commit 853e915fdd6ae6c5f1a7a68d2594ec8dbfef1286
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Wed Feb 28 12:08:03 2024 -0800
+
+    x86-64: Update _dl_tlsdesc_dynamic to preserve AMX registers
+    
+    _dl_tlsdesc_dynamic should also preserve AMX registers which are
+    caller-saved.  Add X86_XSTATE_TILECFG_ID and X86_XSTATE_TILEDATA_ID
+    to x86-64 TLSDESC_CALL_STATE_SAVE_MASK.  Compute the AMX state size
+    and save it in xsave_state_full_size which is only used by
+    _dl_tlsdesc_dynamic_xsave and _dl_tlsdesc_dynamic_xsavec.  This fixes
+    the AMX part of BZ #31372.  Tested on AMX processor.
+    
+    AMX test is enabled only for compilers with the fix for
+    
+    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114098
+    
+    GCC 14 and GCC 11/12/13 branches have the bug fix.
+    Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
+    
+    (cherry picked from commit 9b7091415af47082664717210ac49d51551456ab)
+
+diff --git a/sysdeps/unix/sysv/linux/x86_64/Makefile b/sysdeps/unix/sysv/linux/x86_64/Makefile
+index 4223feb95f..9a1e7aa646 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/Makefile
++++ b/sysdeps/unix/sysv/linux/x86_64/Makefile
+@@ -63,6 +63,33 @@ $(objpfx)libx86-64-isa-level%.os: $(..)/sysdeps/unix/sysv/linux/x86_64/x86-64-is
+ $(objpfx)libx86-64-isa-level.so: $(objpfx)libx86-64-isa-level-1.so
+ 	cp $< $@
+ endif
++
++ifeq (yes,$(have-mamx-tile))
++tests += \
++  tst-gnu2-tls2-amx \
++# tests
++
++modules-names += \
++  tst-gnu2-tls2-amx-mod0 \
++  tst-gnu2-tls2-amx-mod1 \
++  tst-gnu2-tls2-amx-mod2 \
++# modules-names
++
++$(objpfx)tst-gnu2-tls2-amx: $(shared-thread-library)
++$(objpfx)tst-gnu2-tls2-amx.out: \
++  $(objpfx)tst-gnu2-tls2-amx-mod0.so \
++  $(objpfx)tst-gnu2-tls2-amx-mod1.so \
++  $(objpfx)tst-gnu2-tls2-amx-mod2.so
++$(objpfx)tst-gnu2-tls2-amx-mod0.so: $(libsupport)
++$(objpfx)tst-gnu2-tls2-amx-mod1.so: $(libsupport)
++$(objpfx)tst-gnu2-tls2-amx-mod2.so: $(libsupport)
++
++CFLAGS-tst-gnu2-tls2-amx.c += -mamx-tile
++CFLAGS-tst-gnu2-tls2-amx-mod0.c += -mamx-tile -mtls-dialect=gnu2
++CFLAGS-tst-gnu2-tls2-amx-mod1.c += -mamx-tile -mtls-dialect=gnu2
++CFLAGS-tst-gnu2-tls2-amx-mod2.c += -mamx-tile -mtls-dialect=gnu2
++endif
++
+ endif # $(subdir) == elf
+ 
+ ifneq ($(enable-cet),no)
+diff --git a/sysdeps/unix/sysv/linux/x86_64/include/asm/prctl.h b/sysdeps/unix/sysv/linux/x86_64/include/asm/prctl.h
+index 2f511321ad..ef4631bf4b 100644
+--- a/sysdeps/unix/sysv/linux/x86_64/include/asm/prctl.h
++++ b/sysdeps/unix/sysv/linux/x86_64/include/asm/prctl.h
+@@ -20,3 +20,8 @@
+ # define ARCH_SHSTK_SHSTK		0x1
+ # define ARCH_SHSTK_WRSS		0x2
+ #endif
++
++#ifndef ARCH_GET_XCOMP_PERM
++# define ARCH_GET_XCOMP_PERM		0x1022
++# define ARCH_REQ_XCOMP_PERM		0x1023
++#endif
+diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod0.c b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod0.c
+new file mode 100644
+index 0000000000..2e0c7b91b7
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod0.c
+@@ -0,0 +1,2 @@
++#include "tst-gnu2-tls2-amx.h"
++#include <tst-gnu2-tls2mod0.c>
+diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod1.c b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod1.c
+new file mode 100644
+index 0000000000..b8a8ccf1c1
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod1.c
+@@ -0,0 +1,2 @@
++#include "tst-gnu2-tls2-amx.h"
++#include <tst-gnu2-tls2mod1.c>
+diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod2.c b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod2.c
+new file mode 100644
+index 0000000000..cdf4a8f363
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx-mod2.c
+@@ -0,0 +1,2 @@
++#include "tst-gnu2-tls2-amx.h"
++#include <tst-gnu2-tls2mod2.c>
+diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
+new file mode 100644
+index 0000000000..ae4dd82556
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.c
+@@ -0,0 +1,83 @@
++/* Test TLSDESC relocation with AMX.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <stdbool.h>
++#include <asm/prctl.h>
++#include <support/check.h>
++#include "tst-gnu2-tls2-amx.h"
++
++extern int arch_prctl (int, ...);
++
++#define X86_XSTATE_TILECFG_ID	17
++#define X86_XSTATE_TILEDATA_ID	18
++
++/* Initialize tile config.  */
++__attribute__ ((noinline, noclone))
++static void
++init_tile_config (__tilecfg *tileinfo)
++{
++  int i;
++  tileinfo->palette_id = 1;
++  tileinfo->start_row = 0;
++
++  tileinfo->colsb[0] = MAX_ROWS;
++  tileinfo->rows[0] = MAX_ROWS;
++
++  for (i = 1; i < 4; ++i)
++  {
++    tileinfo->colsb[i] = MAX_COLS;
++    tileinfo->rows[i] = MAX_ROWS;
++  }
++
++  _tile_loadconfig (tileinfo);
++}
++
++static bool
++enable_amx (void)
++{
++  uint64_t bitmask;
++  if (arch_prctl (ARCH_GET_XCOMP_PERM, &bitmask) != 0)
++    return false;
++
++  if ((bitmask & (1 << X86_XSTATE_TILECFG_ID)) == 0)
++    return false;
++
++  if (arch_prctl (ARCH_REQ_XCOMP_PERM, X86_XSTATE_TILEDATA_ID) != 0)
++    return false;
++
++  /* Load tile configuration.  */
++  __tilecfg tile_data = { 0 };
++  init_tile_config (&tile_data);
++
++  return true;
++}
++
++/* An architecture can define it to clobber caller-saved registers in
++   malloc below to verify that the implicit TLSDESC call won't change
++   caller-saved registers.  */
++static void
++clear_tile_register (void)
++{
++  _tile_zero (2);
++}
++
++#define MOD(i) "tst-gnu2-tls2-amx-mod" #i ".so"
++#define IS_SUPPORTED()	enable_amx ()
++#define PREPARE_MALLOC() clear_tile_register ()
++
++#include <elf/tst-gnu2-tls2.c>
+diff --git a/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
+new file mode 100644
+index 0000000000..1845a3caba
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/x86_64/tst-gnu2-tls2-amx.h
+@@ -0,0 +1,63 @@
++/* Test TLSDESC relocation with AMX.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <stdint.h>
++#include <string.h>
++#include <x86intrin.h>
++#include <support/check.h>
++
++#define MAX_ROWS 16
++#define MAX_COLS 64
++#define MAX 1024
++#define STRIDE 64
++
++typedef struct __tile_config
++{
++  uint8_t palette_id;
++  uint8_t start_row;
++  uint8_t reserved_0[14];
++  uint16_t colsb[16];
++  uint8_t rows[16];
++} __tilecfg __attribute__ ((aligned (64)));
++
++/* Initialize int8_t buffer */
++static inline void
++init_buffer (int8_t *buf, int8_t value)
++{
++  int rows, colsb, i, j;
++  rows  = MAX_ROWS;
++  colsb = MAX_COLS;
++
++  for (i = 0; i < rows; i++)
++    for (j = 0; j < colsb; j++)
++      buf[i * colsb + j] = value;
++}
++
++#define BEFORE_TLSDESC_CALL()					\
++  int8_t src[MAX];						\
++  int8_t res[MAX];						\
++  /* Initialize src with data  */				\
++  init_buffer (src, 2);						\
++  /* Load tile rows from memory.  */				\
++  _tile_loadd (2, src, STRIDE);
++
++#define AFTER_TLSDESC_CALL()					\
++  /* Store the tile data to memory.  */				\
++  _tile_stored (2, res, STRIDE);				\
++  _tile_release ();						\
++  TEST_VERIFY_EXIT (memcmp (src, res, sizeof (res)) == 0);
+diff --git a/sysdeps/x86/cpu-features-offsets.sym b/sysdeps/x86/cpu-features-offsets.sym
+index 6a8fd29813..21fc88d651 100644
+--- a/sysdeps/x86/cpu-features-offsets.sym
++++ b/sysdeps/x86/cpu-features-offsets.sym
+@@ -3,3 +3,4 @@
+ #include <ldsodefs.h>
+ 
+ XSAVE_STATE_SIZE_OFFSET	offsetof (struct cpu_features, xsave_state_size)
++XSAVE_STATE_FULL_SIZE_OFFSET offsetof (struct cpu_features, xsave_state_full_size)
+diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
+index 835113b42f..d71e8d3d2e 100644
+--- a/sysdeps/x86/cpu-features.c
++++ b/sysdeps/x86/cpu-features.c
+@@ -307,6 +307,8 @@ update_active (struct cpu_features *cpu_features)
+ 	  __cpuid_count (0xd, 0, eax, ebx, ecx, edx);
+ 	  if (ebx != 0)
+ 	    {
++	      /* NB: On AMX capable processors, ebx always includes AMX
++		 states.  */
+ 	      unsigned int xsave_state_full_size
+ 		= ALIGN_UP (ebx + STATE_SAVE_OFFSET, 64);
+ 
+@@ -320,6 +322,11 @@ update_active (struct cpu_features *cpu_features)
+ 		{
+ 		  unsigned int xstate_comp_offsets[32];
+ 		  unsigned int xstate_comp_sizes[32];
++#ifdef __x86_64__
++		  unsigned int xstate_amx_comp_offsets[32];
++		  unsigned int xstate_amx_comp_sizes[32];
++		  unsigned int amx_ecx;
++#endif
+ 		  unsigned int i;
+ 
+ 		  xstate_comp_offsets[0] = 0;
+@@ -327,16 +334,39 @@ update_active (struct cpu_features *cpu_features)
+ 		  xstate_comp_offsets[2] = 576;
+ 		  xstate_comp_sizes[0] = 160;
+ 		  xstate_comp_sizes[1] = 256;
++#ifdef __x86_64__
++		  xstate_amx_comp_offsets[0] = 0;
++		  xstate_amx_comp_offsets[1] = 160;
++		  xstate_amx_comp_offsets[2] = 576;
++		  xstate_amx_comp_sizes[0] = 160;
++		  xstate_amx_comp_sizes[1] = 256;
++#endif
+ 
+ 		  for (i = 2; i < 32; i++)
+ 		    {
+-		      if ((STATE_SAVE_MASK & (1 << i)) != 0)
++		      if ((FULL_STATE_SAVE_MASK & (1 << i)) != 0)
+ 			{
+ 			  __cpuid_count (0xd, i, eax, ebx, ecx, edx);
+-			  xstate_comp_sizes[i] = eax;
++#ifdef __x86_64__
++			  /* Include this in xsave_state_full_size.  */
++			  amx_ecx = ecx;
++			  xstate_amx_comp_sizes[i] = eax;
++			  if ((AMX_STATE_SAVE_MASK & (1 << i)) != 0)
++			    {
++			      /* Exclude this from xsave_state_size.  */
++			      ecx = 0;
++			      xstate_comp_sizes[i] = 0;
++			    }
++			  else
++#endif
++			    xstate_comp_sizes[i] = eax;
+ 			}
+ 		      else
+ 			{
++#ifdef __x86_64__
++			  amx_ecx = 0;
++			  xstate_amx_comp_sizes[i] = 0;
++#endif
+ 			  ecx = 0;
+ 			  xstate_comp_sizes[i] = 0;
+ 			}
+@@ -349,6 +379,15 @@ update_active (struct cpu_features *cpu_features)
+ 			  if ((ecx & (1 << 1)) != 0)
+ 			    xstate_comp_offsets[i]
+ 			      = ALIGN_UP (xstate_comp_offsets[i], 64);
++#ifdef __x86_64__
++			  xstate_amx_comp_offsets[i]
++			    = (xstate_amx_comp_offsets[i - 1]
++			       + xstate_amx_comp_sizes[i - 1]);
++			  if ((amx_ecx & (1 << 1)) != 0)
++			    xstate_amx_comp_offsets[i]
++			      = ALIGN_UP (xstate_amx_comp_offsets[i],
++					  64);
++#endif
+ 			}
+ 		    }
+ 
+@@ -357,6 +396,18 @@ update_active (struct cpu_features *cpu_features)
+ 		    = xstate_comp_offsets[31] + xstate_comp_sizes[31];
+ 		  if (size)
+ 		    {
++#ifdef __x86_64__
++		      unsigned int amx_size
++			= (xstate_amx_comp_offsets[31]
++			   + xstate_amx_comp_sizes[31]);
++		      amx_size = ALIGN_UP (amx_size + STATE_SAVE_OFFSET,
++					   64);
++		      /* Set xsave_state_full_size to the compact AMX
++			 state size for XSAVEC.  NB: xsave_state_full_size
++			 is only used in _dl_tlsdesc_dynamic_xsave and
++			 _dl_tlsdesc_dynamic_xsavec.  */
++		      cpu_features->xsave_state_full_size = amx_size;
++#endif
+ 		      cpu_features->xsave_state_size
+ 			= ALIGN_UP (size + STATE_SAVE_OFFSET, 64);
+ 		      CPU_FEATURE_SET (cpu_features, XSAVEC);
+diff --git a/sysdeps/x86/include/cpu-features.h b/sysdeps/x86/include/cpu-features.h
+index b9bf3115b6..cd7bd27cf3 100644
+--- a/sysdeps/x86/include/cpu-features.h
++++ b/sysdeps/x86/include/cpu-features.h
+@@ -934,6 +934,8 @@ struct cpu_features
+   /* The full state size for XSAVE when XSAVEC is disabled by
+ 
+      GLIBC_TUNABLES=glibc.cpu.hwcaps=-XSAVEC
++
++     and the AMX state size when XSAVEC is available.
+    */
+   unsigned int xsave_state_full_size;
+   /* Data cache size for use in memory and string routines, typically
+diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
+index 485cad9c02..db8e576e91 100644
+--- a/sysdeps/x86/sysdep.h
++++ b/sysdeps/x86/sysdep.h
+@@ -56,6 +56,14 @@
+    | (1 << X86_XSTATE_ZMM_H_ID) 	\
+    | (1 << X86_XSTATE_ZMM_ID)		\
+    | (1 << X86_XSTATE_APX_F_ID))
++
++/* AMX state mask.  */
++# define AMX_STATE_SAVE_MASK		\
++  ((1 << X86_XSTATE_TILECFG_ID) | (1 << X86_XSTATE_TILEDATA_ID))
++
++/* States to be included in xsave_state_full_size.  */
++# define FULL_STATE_SAVE_MASK		\
++  (STATE_SAVE_MASK | AMX_STATE_SAVE_MASK)
+ #else
+ /* Offset for fxsave/xsave area used by _dl_tlsdesc_dynamic.  Since i386
+    doesn't have red-zone, use 0 here.  */
+@@ -68,13 +76,17 @@
+    | (1 << X86_XSTATE_BNDREGS_ID)	\
+    | (1 << X86_XSTATE_K_ID)		\
+    | (1 << X86_XSTATE_ZMM_H_ID))
++
++/* States to be included in xsave_state_size.  */
++# define FULL_STATE_SAVE_MASK		STATE_SAVE_MASK
+ #endif
+ 
+ /* States which should be saved for TLSDESC_CALL and TLS_DESC_CALL.
+-   Compiler assumes that all registers, including x87 FPU stack registers,
+-   are unchanged after CALL, except for EFLAGS and RAX/EAX.  */
++   Compiler assumes that all registers, including AMX and x87 FPU
++   stack registers, are unchanged after CALL, except for EFLAGS and
++   RAX/EAX.  */
+ #define TLSDESC_CALL_STATE_SAVE_MASK	\
+-  (STATE_SAVE_MASK | (1 << X86_XSTATE_X87_ID))
++  (FULL_STATE_SAVE_MASK | (1 << X86_XSTATE_X87_ID))
+ 
+ /* Constants for bits in __x86_string_control:  */
+ 
+diff --git a/sysdeps/x86_64/configure b/sysdeps/x86_64/configure
+index 418cc4a9b8..04a534fa12 100755
+--- a/sysdeps/x86_64/configure
++++ b/sysdeps/x86_64/configure
+@@ -134,6 +134,34 @@ fi
+ config_vars="$config_vars
+ enable-cet = $enable_cet"
+ 
++# Check if -mamx-tile works properly.
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -mamx-tile works properly" >&5
++printf %s "checking whether -mamx-tile works properly... " >&6; }
++if test ${libc_cv_x86_have_amx_tile+y}
++then :
++  printf %s "(cached) " >&6
++else $as_nop
++  cat > conftest.c <<EOF
++#include <x86intrin.h>
++EOF
++	       libc_cv_x86_have_amx_tile=no
++	       if { ac_try='${CC-cc} -E $CFLAGS -mamx-tile conftest.c > conftest.i'
++  { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
++  (eval $ac_try) 2>&5
++  ac_status=$?
++  printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
++  test $ac_status = 0; }; }; then
++		 if grep -q __builtin_ia32_ldtilecfg conftest.i; then
++		   libc_cv_x86_have_amx_tile=yes
++	         fi
++	       fi
++	       rm -rf conftest*
++fi
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_x86_have_amx_tile" >&5
++printf "%s\n" "$libc_cv_x86_have_amx_tile" >&6; }
++config_vars="$config_vars
++have-mamx-tile = $libc_cv_x86_have_amx_tile"
++
+ test -n "$critic_missing" && as_fn_error $? "
+ *** $critic_missing" "$LINENO" 5
+ 
+diff --git a/sysdeps/x86_64/configure.ac b/sysdeps/x86_64/configure.ac
+index d1f803c02e..c714c47351 100644
+--- a/sysdeps/x86_64/configure.ac
++++ b/sysdeps/x86_64/configure.ac
+@@ -61,5 +61,20 @@ elif test $enable_cet = permissive; then
+ fi
+ LIBC_CONFIG_VAR([enable-cet], [$enable_cet])
+ 
++# Check if -mamx-tile works properly.
++AC_CACHE_CHECK(whether -mamx-tile works properly,
++	       libc_cv_x86_have_amx_tile, [dnl
++cat > conftest.c <<EOF
++#include <x86intrin.h>
++EOF
++	       libc_cv_x86_have_amx_tile=no
++	       if AC_TRY_COMMAND(${CC-cc} -E $CFLAGS -mamx-tile conftest.c > conftest.i); then
++		 if grep -q __builtin_ia32_ldtilecfg conftest.i; then
++		   libc_cv_x86_have_amx_tile=yes
++	         fi
++	       fi
++	       rm -rf conftest*])
++LIBC_CONFIG_VAR([have-mamx-tile], [$libc_cv_x86_have_amx_tile])
++
+ test -n "$critic_missing" && AC_MSG_ERROR([
+ *** $critic_missing])
+diff --git a/sysdeps/x86_64/dl-tlsdesc-dynamic.h b/sysdeps/x86_64/dl-tlsdesc-dynamic.h
+index 0c2e8d5320..9f02cfc3eb 100644
+--- a/sysdeps/x86_64/dl-tlsdesc-dynamic.h
++++ b/sysdeps/x86_64/dl-tlsdesc-dynamic.h
+@@ -99,7 +99,7 @@ _dl_tlsdesc_dynamic:
+ # endif
+ #else
+ 	/* Allocate stack space of the required size to save the state.  */
+-	sub	_rtld_local_ro+RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+XSAVE_STATE_SIZE_OFFSET(%rip), %RSP_LP
++	sub	_rtld_local_ro+RTLD_GLOBAL_RO_DL_X86_CPU_FEATURES_OFFSET+XSAVE_STATE_FULL_SIZE_OFFSET(%rip), %RSP_LP
+ #endif
+ 	/* Besides rdi and rsi, saved above, save rcx, rdx, r8, r9,
+ 	   r10 and r11.  */
+
+commit 354cabcb2634abe16da7a2ba5e648aac1204b58e
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Mon Mar 18 06:40:16 2024 -0700
+
+    x86-64: Allocate state buffer space for RDI, RSI and RBX
+    
+    _dl_tlsdesc_dynamic preserves RDI, RSI and RBX before realigning stack.
+    After realigning stack, it saves RCX, RDX, R8, R9, R10 and R11.  Define
+    TLSDESC_CALL_REGISTER_SAVE_AREA to allocate space for RDI, RSI and RBX
+    to avoid clobbering saved RDI, RSI and RBX values on stack by xsave to
+    STATE_SAVE_OFFSET(%rsp).
+    
+       +==================+<- stack frame start aligned at 8 or 16 bytes
+       |                  |<- RDI saved in the red zone
+       |                  |<- RSI saved in the red zone
+       |                  |<- RBX saved in the red zone
+       |                  |<- paddings for stack realignment of 64 bytes
+       |------------------|<- xsave buffer end aligned at 64 bytes
+       |                  |<-
+       |                  |<-
+       |                  |<-
+       |------------------|<- xsave buffer start at STATE_SAVE_OFFSET(%rsp)
+       |                  |<- 8-byte padding for 64-byte alignment
+       |                  |<- 8-byte padding for 64-byte alignment
+       |                  |<- R11
+       |                  |<- R10
+       |                  |<- R9
+       |                  |<- R8
+       |                  |<- RDX
+       |                  |<- RCX
+       +==================+<- RSP aligned at 64 bytes
+    
+    Define TLSDESC_CALL_REGISTER_SAVE_AREA, the total register save area size
+    for all integer registers by adding 24 to STATE_SAVE_OFFSET since RDI, RSI
+    and RBX are saved onto stack without adjusting stack pointer first, using
+    the red-zone.  This fixes BZ #31501.
+    Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
+    
+    (cherry picked from commit 717ebfa85c8240d32d0d19d86a484c31c55c9617)
+
+diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
+index d71e8d3d2e..6fe1b728c6 100644
+--- a/sysdeps/x86/cpu-features.c
++++ b/sysdeps/x86/cpu-features.c
+@@ -310,7 +310,7 @@ update_active (struct cpu_features *cpu_features)
+ 	      /* NB: On AMX capable processors, ebx always includes AMX
+ 		 states.  */
+ 	      unsigned int xsave_state_full_size
+-		= ALIGN_UP (ebx + STATE_SAVE_OFFSET, 64);
++		= ALIGN_UP (ebx + TLSDESC_CALL_REGISTER_SAVE_AREA, 64);
+ 
+ 	      cpu_features->xsave_state_size
+ 		= xsave_state_full_size;
+@@ -400,8 +400,10 @@ update_active (struct cpu_features *cpu_features)
+ 		      unsigned int amx_size
+ 			= (xstate_amx_comp_offsets[31]
+ 			   + xstate_amx_comp_sizes[31]);
+-		      amx_size = ALIGN_UP (amx_size + STATE_SAVE_OFFSET,
+-					   64);
++		      amx_size
++			= ALIGN_UP ((amx_size
++				     + TLSDESC_CALL_REGISTER_SAVE_AREA),
++				    64);
+ 		      /* Set xsave_state_full_size to the compact AMX
+ 			 state size for XSAVEC.  NB: xsave_state_full_size
+ 			 is only used in _dl_tlsdesc_dynamic_xsave and
+@@ -409,7 +411,8 @@ update_active (struct cpu_features *cpu_features)
+ 		      cpu_features->xsave_state_full_size = amx_size;
+ #endif
+ 		      cpu_features->xsave_state_size
+-			= ALIGN_UP (size + STATE_SAVE_OFFSET, 64);
++			= ALIGN_UP (size + TLSDESC_CALL_REGISTER_SAVE_AREA,
++				    64);
+ 		      CPU_FEATURE_SET (cpu_features, XSAVEC);
+ 		    }
+ 		}
+diff --git a/sysdeps/x86/sysdep.h b/sysdeps/x86/sysdep.h
+index db8e576e91..7359149e17 100644
+--- a/sysdeps/x86/sysdep.h
++++ b/sysdeps/x86/sysdep.h
+@@ -38,14 +38,59 @@
+ #ifdef __x86_64__
+ /* Offset for fxsave/xsave area used by _dl_runtime_resolve.  Also need
+    space to preserve RCX, RDX, RSI, RDI, R8, R9 and RAX.  It must be
+-   aligned to 16 bytes for fxsave and 64 bytes for xsave.
+-
+-   NB: Is is non-zero because of the 128-byte red-zone.  Some registers
+-   are saved on stack without adjusting stack pointer first.  When we
+-   update stack pointer to allocate more space, we need to take the
+-   red-zone into account.  */
++   aligned to 16 bytes for fxsave and 64 bytes for xsave.  It is non-zero
++   because MOV, instead of PUSH, is used to save registers onto stack.
++
++   +==================+<- stack frame start aligned at 8 or 16 bytes
++   |                  |<- paddings for stack realignment of 64 bytes
++   |------------------|<- xsave buffer end aligned at 64 bytes
++   |                  |<-
++   |                  |<-
++   |                  |<-
++   |------------------|<- xsave buffer start at STATE_SAVE_OFFSET(%rsp)
++   |                  |<- 8-byte padding for 64-byte alignment
++   |                  |<- R9
++   |                  |<- R8
++   |                  |<- RDI
++   |                  |<- RSI
++   |                  |<- RDX
++   |                  |<- RCX
++   |                  |<- RAX
++   +==================+<- RSP aligned at 64 bytes
++
++ */
+ # define STATE_SAVE_OFFSET (8 * 7 + 8)
+ 
++/* _dl_tlsdesc_dynamic preserves RDI, RSI and RBX before realigning
++   stack.  After realigning stack, it saves RCX, RDX, R8, R9, R10 and
++   R11.  Allocate space for RDI, RSI and RBX to avoid clobbering saved
++   RDI, RSI and RBX values on stack by xsave.
++
++   +==================+<- stack frame start aligned at 8 or 16 bytes
++   |                  |<- RDI saved in the red zone
++   |                  |<- RSI saved in the red zone
++   |                  |<- RBX saved in the red zone
++   |                  |<- paddings for stack realignment of 64 bytes
++   |------------------|<- xsave buffer end aligned at 64 bytes
++   |                  |<-
++   |                  |<-
++   |                  |<-
++   |------------------|<- xsave buffer start at STATE_SAVE_OFFSET(%rsp)
++   |                  |<- 8-byte padding for 64-byte alignment
++   |                  |<- 8-byte padding for 64-byte alignment
++   |                  |<- R11
++   |                  |<- R10
++   |                  |<- R9
++   |                  |<- R8
++   |                  |<- RDX
++   |                  |<- RCX
++   +==================+<- RSP aligned at 64 bytes
++
++   Define the total register save area size for all integer registers by
++   adding 24 to STATE_SAVE_OFFSET since RDI, RSI and RBX are saved onto
++   stack without adjusting stack pointer first, using the red-zone.  */
++# define TLSDESC_CALL_REGISTER_SAVE_AREA (STATE_SAVE_OFFSET + 24)
++
+ /* Save SSE, AVX, AVX512, mask, bound and APX registers.  Bound and APX
+    registers are mutually exclusive.  */
+ # define STATE_SAVE_MASK		\
+@@ -66,8 +111,9 @@
+   (STATE_SAVE_MASK | AMX_STATE_SAVE_MASK)
+ #else
+ /* Offset for fxsave/xsave area used by _dl_tlsdesc_dynamic.  Since i386
+-   doesn't have red-zone, use 0 here.  */
++   uses PUSH to save registers onto stack, use 0 here.  */
+ # define STATE_SAVE_OFFSET 0
++# define TLSDESC_CALL_REGISTER_SAVE_AREA 0
+ 
+ /* Save SSE, AVX, AXV512, mask and bound registers.   */
+ # define STATE_SAVE_MASK		\
+diff --git a/sysdeps/x86_64/tst-gnu2-tls2mod1.S b/sysdeps/x86_64/tst-gnu2-tls2mod1.S
+new file mode 100644
+index 0000000000..1d636669ba
+--- /dev/null
++++ b/sysdeps/x86_64/tst-gnu2-tls2mod1.S
+@@ -0,0 +1,87 @@
++/* Check if TLSDESC relocation preserves %rdi, %rsi and %rbx.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++
++/* On AVX512 machines, OFFSET == 40 caused _dl_tlsdesc_dynamic_xsavec
++   to clobber %rdi, %rsi and %rbx.  On Intel AVX CPUs, the state size
++   is 960 bytes and this test didn't fail.  It may be due to the unused
++   last 128 bytes.  On AMD AVX CPUs, the state size is 832 bytes and
++   this test might fail without the fix.  */
++#ifndef OFFSET
++# define OFFSET 40
++#endif
++
++	.text
++	.p2align 4
++	.globl	apply_tls
++	.type	apply_tls, @function
++apply_tls:
++	cfi_startproc
++	_CET_ENDBR
++	pushq	%rbp
++	cfi_def_cfa_offset (16)
++	cfi_offset (6, -16)
++	movdqu	(%RDI_LP), %xmm0
++	lea	tls_var1@TLSDESC(%rip), %RAX_LP
++	mov	%RSP_LP, %RBP_LP
++	cfi_def_cfa_register (6)
++	/* Align stack to 64 bytes.  */
++	and	$-64, %RSP_LP
++	sub	$OFFSET, %RSP_LP
++	pushq	%rbx
++	/* Set %ebx to 0xbadbeef.  */
++	movl	$0xbadbeef, %ebx
++	movl	$0xbadbeef, %esi
++	movq	%rdi, saved_rdi(%rip)
++	movq	%rsi, saved_rsi(%rip)
++	call	*tls_var1@TLSCALL(%RAX_LP)
++	/* Check if _dl_tlsdesc_dynamic preserves %rdi, %rsi and %rbx.  */
++	cmpq	saved_rdi(%rip), %rdi
++	jne	L(hlt)
++	cmpq	saved_rsi(%rip), %rsi
++	jne	L(hlt)
++	cmpl	$0xbadbeef, %ebx
++	jne	L(hlt)
++	add	%fs:0, %RAX_LP
++	movups	%xmm0, 32(%RAX_LP)
++	movdqu	16(%RDI_LP), %xmm1
++	mov	%RAX_LP, %RBX_LP
++	movups	%xmm1, 48(%RAX_LP)
++	lea	32(%RBX_LP), %RAX_LP
++	pop	%rbx
++	leave
++	cfi_def_cfa (7, 8)
++	ret
++L(hlt):
++	hlt
++	cfi_endproc
++	.size	apply_tls, .-apply_tls
++	.hidden	tls_var1
++	.globl	tls_var1
++	.section	.tbss,"awT",@nobits
++	.align 16
++	.type	tls_var1, @object
++	.size	tls_var1, 3200
++tls_var1:
++	.zero	3200
++	.local	saved_rdi
++	.comm	saved_rdi,8,8
++	.local	saved_rsi
++	.comm	saved_rsi,8,8
++	.section	.note.GNU-stack,"",@progbits
+
+commit 15aebdbada54098787715448c94701f17033fc92
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Tue Mar 12 13:21:18 2024 -0300
+
+    Ignore undefined symbols for -mtls-dialect=gnu2
+    
+    So it does not fail for arm config that defaults to -mtp=soft (which
+    issues a call to __aeabi_read_tp).
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    
+    (cherry picked from commit 968b0ca9440040a2b31248a572891f0e55c1ab10)
+
+diff --git a/configure b/configure
+index 59ff1e415d..117b48a421 100755
+--- a/configure
++++ b/configure
+@@ -7020,7 +7020,7 @@ void foo (void)
+ }
+ EOF
+ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
+-		   conftest.c -o conftest 1>&5'
++		   -shared conftest.c -o conftest 1>&5'
+   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+diff --git a/configure.ac b/configure.ac
+index 65799e5685..19b88a47a5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1297,7 +1297,7 @@ void foo (void)
+ }
+ EOF
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
+-		   conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
++		   -shared conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
+ then
+   libc_cv_mtls_dialect_gnu2=yes
+ else
+
+commit a8ba52bde58c69f2b31da62ad2311f119adf6cb9
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Tue Mar 12 13:21:19 2024 -0300
+
+    arm: Update _dl_tlsdesc_dynamic to preserve caller-saved registers (BZ 31372)
+    
+    ARM _dl_tlsdesc_dynamic slow path has two issues:
+    
+      * The ip/r12 is defined by AAPCS as a scratch register, and gcc is
+        used to save the stack pointer before on some function calls.  So it
+        should also be saved/restored as well.  It fixes the tst-gnu2-tls2.
+    
+      * None of the possible VFP registers are saved/restored.  ARM has the
+        additional complexity to have different VFP bank sizes (depending of
+        VFP support by the chip).
+    
+    The tst-gnu2-tls2 test is extended to check for VFP registers, although
+    only for hardfp builds.  Different than setcontext, _dl_tlsdesc_dynamic
+    does not have  HWCAP_ARM_IWMMXT (I don't have a way to properly test
+    it and it is almost a decade since newer hardware was released).
+    
+    With this patch there is no need to mark tst-gnu2-tls2 as XFAIL.
+    
+    Checked on arm-linux-gnueabihf.
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    
+    (cherry picked from commit 64c7e344289ed085517c2227d8e3b06388242c13)
+
+diff --git a/config.h.in b/config.h.in
+index 44a34072a4..4d33c63a84 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -141,6 +141,9 @@
+ /* LOONGARCH floating-point ABI for ld.so.  */
+ #undef LOONGARCH_ABI_FRLEN
+ 
++/* Define whether ARM used hard-float and support VFPvX-D32.  */
++#undef HAVE_ARM_PCS_VFP_D32
++
+ /* Linux specific: minimum supported kernel version.  */
+ #undef	__LINUX_KERNEL_VERSION
+ 
+diff --git a/elf/Makefile b/elf/Makefile
+index c5c37a9147..030db4d207 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -3056,10 +3056,6 @@ $(objpfx)tst-gnu2-tls2.out: \
+   $(objpfx)tst-gnu2-tls2mod2.so
+ 
+ ifeq (yes,$(have-mtls-dialect-gnu2))
+-# This test fails if dl_tlsdesc_dynamic doesn't preserve all caller-saved
+-# registers.  See https://sourceware.org/bugzilla/show_bug.cgi?id=31372
+-test-xfail-tst-gnu2-tls2 = yes
+-
+ CFLAGS-tst-tlsgap-mod0.c += -mtls-dialect=gnu2
+ CFLAGS-tst-tlsgap-mod1.c += -mtls-dialect=gnu2
+ CFLAGS-tst-tlsgap-mod2.c += -mtls-dialect=gnu2
+diff --git a/elf/tst-gnu2-tls2.h b/elf/tst-gnu2-tls2.h
+index 77964a57a3..1ade8151e2 100644
+--- a/elf/tst-gnu2-tls2.h
++++ b/elf/tst-gnu2-tls2.h
+@@ -27,6 +27,10 @@ extern struct tls *apply_tls (struct tls *);
+ 
+ /* An architecture can define them to verify that clobber caller-saved
+    registers aren't changed by the implicit TLSDESC call.  */
++#ifndef INIT_TLSDESC_CALL
++# define INIT_TLSDESC_CALL()
++#endif
++
+ #ifndef BEFORE_TLSDESC_CALL
+ # define BEFORE_TLSDESC_CALL()
+ #endif
+diff --git a/elf/tst-gnu2-tls2mod0.c b/elf/tst-gnu2-tls2mod0.c
+index 45556a0e17..3fe3c14277 100644
+--- a/elf/tst-gnu2-tls2mod0.c
++++ b/elf/tst-gnu2-tls2mod0.c
+@@ -16,13 +16,14 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include "tst-gnu2-tls2.h"
++#include <tst-gnu2-tls2.h>
+ 
+ __thread struct tls tls_var0 __attribute__ ((visibility ("hidden")));
+ 
+ struct tls *
+ apply_tls (struct tls *p)
+ {
++  INIT_TLSDESC_CALL ();
+   BEFORE_TLSDESC_CALL ();
+   tls_var0 = *p;
+   struct tls *ret = &tls_var0;
+diff --git a/elf/tst-gnu2-tls2mod1.c b/elf/tst-gnu2-tls2mod1.c
+index e10b9dbc0a..e210538468 100644
+--- a/elf/tst-gnu2-tls2mod1.c
++++ b/elf/tst-gnu2-tls2mod1.c
+@@ -16,13 +16,14 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include "tst-gnu2-tls2.h"
++#include <tst-gnu2-tls2.h>
+ 
+ __thread struct tls tls_var1[100] __attribute__ ((visibility ("hidden")));
+ 
+ struct tls *
+ apply_tls (struct tls *p)
+ {
++  INIT_TLSDESC_CALL ();
+   BEFORE_TLSDESC_CALL ();
+   tls_var1[1] = *p;
+   struct tls *ret = &tls_var1[1];
+diff --git a/elf/tst-gnu2-tls2mod2.c b/elf/tst-gnu2-tls2mod2.c
+index 141af51e55..6d3031dc5f 100644
+--- a/elf/tst-gnu2-tls2mod2.c
++++ b/elf/tst-gnu2-tls2mod2.c
+@@ -16,13 +16,14 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include "tst-gnu2-tls2.h"
++#include <tst-gnu2-tls2.h>
+ 
+ __thread struct tls tls_var2 __attribute__ ((visibility ("hidden")));
+ 
+ struct tls *
+ apply_tls (struct tls *p)
+ {
++  INIT_TLSDESC_CALL ();
+   BEFORE_TLSDESC_CALL ();
+   tls_var2 = *p;
+   struct tls *ret = &tls_var2;
+diff --git a/sysdeps/arm/configure b/sysdeps/arm/configure
+index 35e2918922..4ef4d46cbd 100644
+--- a/sysdeps/arm/configure
++++ b/sysdeps/arm/configure
+@@ -187,6 +187,38 @@ else
+ default-abi = soft"
+ fi
+ 
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether VFP supports 32 registers" >&5
++printf %s "checking whether VFP supports 32 registers... " >&6; }
++if test ${libc_cv_arm_pcs_vfp_d32+y}
++then :
++  printf %s "(cached) " >&6
++else $as_nop
++
++cat confdefs.h - <<_ACEOF >conftest.$ac_ext
++/* end confdefs.h.  */
++
++void foo (void)
++{
++  asm volatile ("vldr d16,=17" : : : "d16");
++}
++
++_ACEOF
++if ac_fn_c_try_compile "$LINENO"
++then :
++  libc_cv_arm_pcs_vfp_d32=yes
++else $as_nop
++  libc_cv_arm_pcs_vfp_d32=no
++fi
++rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
++fi
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_arm_pcs_vfp_d32" >&5
++printf "%s\n" "$libc_cv_arm_pcs_vfp_d32" >&6; }
++if test "$libc_cv_arm_pcs_vfp_d32" = yes ;
++then
++  printf "%s\n" "#define HAVE_ARM_PCS_VFP_D32 1" >>confdefs.h
++
++fi
++
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether PC-relative relocs in movw/movt work properly" >&5
+ printf %s "checking whether PC-relative relocs in movw/movt work properly... " >&6; }
+ if test ${libc_cv_arm_pcrel_movw+y}
+diff --git a/sysdeps/arm/configure.ac b/sysdeps/arm/configure.ac
+index 5172e30bbe..cd00ddc9d9 100644
+--- a/sysdeps/arm/configure.ac
++++ b/sysdeps/arm/configure.ac
+@@ -21,6 +21,21 @@ else
+   LIBC_CONFIG_VAR([default-abi], [soft])
+ fi
+ 
++AC_CACHE_CHECK([whether VFP supports 32 registers],
++		libc_cv_arm_pcs_vfp_d32, [
++AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
++void foo (void)
++{
++  asm volatile ("vldr d16,=17" : : : "d16");
++}
++]])],
++                [libc_cv_arm_pcs_vfp_d32=yes],
++                [libc_cv_arm_pcs_vfp_d32=no])])
++if test "$libc_cv_arm_pcs_vfp_d32" = yes ;
++then
++  AC_DEFINE(HAVE_ARM_PCS_VFP_D32)
++fi
++
+ AC_CACHE_CHECK([whether PC-relative relocs in movw/movt work properly],
+ 	       libc_cv_arm_pcrel_movw, [
+ cat > conftest.s <<\EOF
+diff --git a/sysdeps/arm/dl-tlsdesc.S b/sysdeps/arm/dl-tlsdesc.S
+index 764c56e70f..ada106521d 100644
+--- a/sysdeps/arm/dl-tlsdesc.S
++++ b/sysdeps/arm/dl-tlsdesc.S
+@@ -19,6 +19,7 @@
+ #include <sysdep.h>
+ #include <arm-features.h>
+ #include <tls.h>
++#include <rtld-global-offsets.h>
+ #include "tlsdesc.h"
+ 
+ 	.text
+@@ -83,14 +84,20 @@ _dl_tlsdesc_dynamic(struct tlsdesc *tdp)
+ 	.align 2
+ _dl_tlsdesc_dynamic:
+ 	/* Our calling convention is to clobber r0, r1 and the processor
+-	   flags.  All others that are modified must be saved */
+-	eabi_save ({r2,r3,r4,lr})
+-	push	{r2,r3,r4,lr}
+-	cfi_adjust_cfa_offset (16)
++	   flags.  All others that are modified must be saved.  r5 is
++	   used as the hwcap value to avoid reload after __tls_get_addr
++	   call.  If required we will save the vector register on the slow
++	   path.  */
++	eabi_save ({r2,r3,r4,r5,ip,lr})
++	push	{r2,r3,r4,r5,ip,lr}
++	cfi_adjust_cfa_offset (24)
+ 	cfi_rel_offset (r2,0)
+ 	cfi_rel_offset (r3,4)
+ 	cfi_rel_offset (r4,8)
+-	cfi_rel_offset (lr,12)
++	cfi_rel_offset (r5,12)
++	cfi_rel_offset (ip,16)
++	cfi_rel_offset (lr,20)
++
+ 	ldr	r1, [r0] /* td */
+ 	GET_TLS (lr)
+ 	mov	r4, r0 /* r4 = tp */
+@@ -113,22 +120,69 @@ _dl_tlsdesc_dynamic:
+ 	rsbne	r0, r4, r3
+ 	bne	2f
+ 1:	mov	r0, r1
++
++	/* Load the hwcap to check for vector support.  */
++	ldr     r2, 3f
++	ldr     r1, .Lrtld_global_ro
++0:	add     r2, pc, r2
++	ldr     r2, [r2, r1]
++	ldr     r5, [r2, #RTLD_GLOBAL_RO_DL_HWCAP_OFFSET]
++
++#ifdef __SOFTFP__
++	tst     r5, #HWCAP_ARM_VFP
++	beq     .Lno_vfp
++#endif
++
++	/* Store the VFP registers.  Don't use VFP instructions directly
++	   because this code is used in non-VFP multilibs.  */
++#define VFP_STACK_REQ (32*8 + 8)
++	sub	sp, sp, VFP_STACK_REQ
++	cfi_adjust_cfa_offset (VFP_STACK_REQ)
++	mov	r3, sp
++	.inst	0xeca30b20	/* vstmia r3!, {d0-d15} */
++	tst	r5, #HWCAP_ARM_VFPD32
++	beq	4f
++	.inst	0xece30b20	/* vstmia r3!, {d16-d31}  */
++	/* Store the floating-point status register.  */
++4:	.inst	0xeef12a10	/* vmrs	r2, fpscr */
++	str	r2, [r3]
++.Lno_vfp:
+ 	bl	__tls_get_addr
+ 	rsb	r0, r4, r0
++#ifdef __SOFTFP__
++	tst     r5, #HWCAP_ARM_VFP
++	beq     2f
++#endif
++	mov	r3, sp
++	.inst	0xecb30b20	/* vldmia r3!, {d0-d15}  */
++	tst	r5, #HWCAP_ARM_VFPD32
++	beq	5f
++	.inst	0xecf30b20	/* vldmia r3!, {d16-d31}  */
++	ldr	r4, [r3]
++5:	.inst	0xeee14a10	/* vmsr	fpscr, r4  */
++	add	sp, sp, VFP_STACK_REQ
++	cfi_adjust_cfa_offset (-VFP_STACK_REQ)
++
+ 2:
+ #if ((defined (__ARM_ARCH_4T__) && defined (__THUMB_INTERWORK__)) \
+      || defined (ARM_ALWAYS_BX))
+-	pop	{r2,r3,r4, lr}
+-	cfi_adjust_cfa_offset (-16)
++	pop	{r2,r3,r4,r5,ip, lr}
++	cfi_adjust_cfa_offset (-20)
+ 	cfi_restore (lr)
++	cfi_restore (ip)
++	cfi_restore (r5)
+ 	cfi_restore (r4)
+ 	cfi_restore (r3)
+ 	cfi_restore (r2)
+ 	bx	lr
+ #else
+-	pop	{r2,r3,r4, pc}
++	pop	{r2,r3,r4,r5,ip, pc}
+ #endif
+ 	eabi_fnend
+ 	cfi_endproc
+ 	.size	_dl_tlsdesc_dynamic, .-_dl_tlsdesc_dynamic
++
++3:      .long   _GLOBAL_OFFSET_TABLE_ - 0b - PC_OFS
++.Lrtld_global_ro:
++	.long   C_SYMBOL_NAME(_rtld_global_ro)(GOT)
+ #endif /* SHARED */
+diff --git a/sysdeps/arm/tst-gnu2-tls2.h b/sysdeps/arm/tst-gnu2-tls2.h
+new file mode 100644
+index 0000000000..e413ac21fb
+--- /dev/null
++++ b/sysdeps/arm/tst-gnu2-tls2.h
+@@ -0,0 +1,128 @@
++/* Test TLSDESC relocation.  ARM version.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <config.h>
++#include <sys/auxv.h>
++#include <string.h>
++#include <stdlib.h>
++#include <endian.h>
++
++#ifndef __SOFTFP__
++
++# ifdef HAVE_ARM_PCS_VFP_D32
++#  define SAVE_VFP_D32					\
++      asm volatile ("vldr d16,=17" : : : "d16");	\
++      asm volatile ("vldr d17,=18" : : : "d17");	\
++      asm volatile ("vldr d18,=19" : : : "d18");	\
++      asm volatile ("vldr d19,=20" : : : "d19");	\
++      asm volatile ("vldr d20,=21" : : : "d20");	\
++      asm volatile ("vldr d21,=22" : : : "d21");	\
++      asm volatile ("vldr d22,=23" : : : "d22");	\
++      asm volatile ("vldr d23,=24" : : : "d23");	\
++      asm volatile ("vldr d24,=25" : : : "d24");	\
++      asm volatile ("vldr d25,=26" : : : "d25");	\
++      asm volatile ("vldr d26,=27" : : : "d26");	\
++      asm volatile ("vldr d27,=28" : : : "d27");	\
++      asm volatile ("vldr d28,=29" : : : "d28");	\
++      asm volatile ("vldr d29,=30" : : : "d29");	\
++      asm volatile ("vldr d30,=31" : : : "d30");	\
++      asm volatile ("vldr d31,=32" : : : "d31");
++# else
++#  define SAVE_VFP_D32
++# endif
++
++# define INIT_TLSDESC_CALL()				\
++  unsigned long hwcap = getauxval (AT_HWCAP)
++
++/* Set each vector register to a value from 1 to 32 before the TLS access,
++   dump to memory after TLS access, and compare with the expected values.  */
++
++# define BEFORE_TLSDESC_CALL()				\
++  if (hwcap & HWCAP_ARM_VFP)				\
++    {							\
++      asm volatile ("vldr  d0,=1" : : : "d0");		\
++      asm volatile ("vldr  d1,=2" : : : "d1");		\
++      asm volatile ("vldr  d2,=3" : : : "d1");		\
++      asm volatile ("vldr  d3,=4" : : : "d3");		\
++      asm volatile ("vldr  d4,=5" : : : "d4");		\
++      asm volatile ("vldr  d5,=6" : : : "d5");		\
++      asm volatile ("vldr  d6,=7" : : : "d6");		\
++      asm volatile ("vldr  d7,=8" : : : "d7");		\
++      asm volatile ("vldr  d8,=9" : : : "d8");		\
++      asm volatile ("vldr  d9,=10" : : : "d9");		\
++      asm volatile ("vldr d10,=11" : : : "d10");	\
++      asm volatile ("vldr d11,=12" : : : "d11");	\
++      asm volatile ("vldr d12,=13" : : : "d12");	\
++      asm volatile ("vldr d13,=14" : : : "d13");	\
++      asm volatile ("vldr d14,=15" : : : "d14");	\
++      asm volatile ("vldr d15,=16" : : : "d15");	\
++    }							\
++  if (hwcap & HWCAP_ARM_VFPD32)				\
++    {							\
++      SAVE_VFP_D32					\
++    }
++
++# define VFP_STACK_REQ (16*8)
++# if __BYTE_ORDER == __BIG_ENDIAN
++#  define DISP 7
++# else
++#  define DISP 0
++# endif
++
++# ifdef HAVE_ARM_PCS_VFP_D32
++#  define CHECK_VFP_D32							\
++      char vfp[VFP_STACK_REQ];						\
++      asm volatile ("vstmia %0, {d16-d31}\n"				\
++		    :							\
++		    : "r" (vfp)						\
++		    : "memory");					\
++									\
++      char expected[VFP_STACK_REQ] = { 0 };				\
++      for (int i = 0; i < 16; ++i)					\
++	expected[i * 8 + DISP] = i + 17;				\
++									\
++      if (memcmp (vfp, expected, VFP_STACK_REQ) != 0)			\
++        abort ();
++# else
++#  define CHECK_VFP_D32
++# endif
++
++# define AFTER_TLSDESC_CALL()						\
++  if (hwcap & HWCAP_ARM_VFP)						\
++    {									\
++      char vfp[VFP_STACK_REQ];						\
++      asm volatile ("vstmia %0, {d0-d15}\n"				\
++		    :							\
++		    : "r" (vfp)						\
++		    : "memory");					\
++									\
++      char expected[VFP_STACK_REQ] = { 0 };				\
++      for (int i = 0; i < 16; ++i)					\
++	expected[i * 8 + DISP] = i + 1;					\
++									\
++      if (memcmp (vfp, expected, VFP_STACK_REQ) != 0)			\
++        abort ();							\
++    }									\
++  if (hwcap & HWCAP_ARM_VFPD32)						\
++    {									\
++      CHECK_VFP_D32							\
++    }
++
++#endif /* __SOFTFP__ */
++
++#include_next <tst-gnu2-tls2.h>
+
+commit aded2fc004e7ee85cf0b45b1382552d41e555a23
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Tue Mar 12 13:21:20 2024 -0300
+
+    elf: Enable TLS descriptor tests on aarch64
+    
+    The aarch64 uses 'trad' for traditional tls and 'desc' for tls
+    descriptors, but unlike other targets it defaults to 'desc'.  The
+    gnutls2 configure check does not set aarch64 as an ABI that uses
+    TLS descriptors, which then disable somes stests.
+    
+    Also rename the internal machinery fron gnu2 to tls descriptors.
+    
+    Checked on aarch64-linux-gnu.
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    
+    (cherry picked from commit 3d53d18fc71c5d9ef4773b8bce04d54b80181926)
+
+diff --git a/configure b/configure
+index 117b48a421..432e40a592 100755
+--- a/configure
++++ b/configure
+@@ -653,7 +653,7 @@ LIBGD
+ libc_cv_cc_loop_to_function
+ libc_cv_cc_submachine
+ libc_cv_cc_nofma
+-libc_cv_mtls_dialect_gnu2
++libc_cv_mtls_descriptor
+ libc_cv_has_glob_dat
+ libc_cv_fpie
+ libc_cv_z_execstack
+@@ -4760,6 +4760,9 @@ libc_config_ok=no
+ # whether to use such directories.
+ with_fp_cond=1
+ 
++# A preconfigure script may define another name to TLS descriptor variant
++mtls_descriptor=gnu2
++
+ if frags=`ls -d $srcdir/sysdeps/*/preconfigure 2> /dev/null`
+ then
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysdeps preconfigure fragments" >&5
+@@ -7006,9 +7009,9 @@ fi
+ printf "%s\n" "$libc_cv_has_glob_dat" >&6; }
+ 
+ 
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -mtls-dialect=gnu2" >&5
+-printf %s "checking for -mtls-dialect=gnu2... " >&6; }
+-if test ${libc_cv_mtls_dialect_gnu2+y}
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for tls descriptor support" >&5
++printf %s "checking for tls descriptor support... " >&6; }
++if test ${libc_cv_mtls_descriptor+y}
+ then :
+   printf %s "(cached) " >&6
+ else $as_nop
+@@ -7019,7 +7022,7 @@ void foo (void)
+   i = 10;
+ }
+ EOF
+-if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
++if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles
+ 		   -shared conftest.c -o conftest 1>&5'
+   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+   (eval $ac_try) 2>&5
+@@ -7027,17 +7030,17 @@ if { ac_try='${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nost
+   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+   test $ac_status = 0; }; }
+ then
+-  libc_cv_mtls_dialect_gnu2=yes
++  libc_cv_mtls_descriptor=$mtls_descriptor
+ else
+-  libc_cv_mtls_dialect_gnu2=no
++  libc_cv_mtls_descriptor=no
+ fi
+ rm -f conftest*
+ fi
+-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_dialect_gnu2" >&5
+-printf "%s\n" "$libc_cv_mtls_dialect_gnu2" >&6; }
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_mtls_descriptor" >&5
++printf "%s\n" "$libc_cv_mtls_descriptor" >&6; }
+ 
+ config_vars="$config_vars
+-have-mtls-dialect-gnu2 = $libc_cv_mtls_dialect_gnu2"
++have-mtls-descriptor = $libc_cv_mtls_descriptor"
+ 
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if -Wno-ignored-attributes is required for aliases" >&5
+ printf %s "checking if -Wno-ignored-attributes is required for aliases... " >&6; }
+diff --git a/configure.ac b/configure.ac
+index 19b88a47a5..bdc385d03c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -442,6 +442,9 @@ libc_config_ok=no
+ # whether to use such directories.
+ with_fp_cond=1
+ 
++# A preconfigure script may define another name to TLS descriptor variant
++mtls_descriptor=gnu2
++
+ dnl Let sysdeps/*/preconfigure act here.
+ LIBC_PRECONFIGURE([$srcdir], [for sysdeps])
+ 
+@@ -1287,7 +1290,7 @@ fi
+ rm -f conftest*])
+ AC_SUBST(libc_cv_has_glob_dat)
+ 
+-AC_CACHE_CHECK([for -mtls-dialect=gnu2], libc_cv_mtls_dialect_gnu2,
++AC_CACHE_CHECK([for tls descriptor support], libc_cv_mtls_descriptor,
+ [dnl
+ cat > conftest.c <<EOF
+ __thread int i;
+@@ -1296,16 +1299,16 @@ void foo (void)
+   i = 10;
+ }
+ EOF
+-if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=gnu2 -nostdlib -nostartfiles
++if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS -fPIC -mtls-dialect=$mtls_descriptor -nostdlib -nostartfiles
+ 		   -shared conftest.c -o conftest 1>&AS_MESSAGE_LOG_FD])
+ then
+-  libc_cv_mtls_dialect_gnu2=yes
++  libc_cv_mtls_descriptor=$mtls_descriptor
+ else
+-  libc_cv_mtls_dialect_gnu2=no
++  libc_cv_mtls_descriptor=no
+ fi
+ rm -f conftest*])
+-AC_SUBST(libc_cv_mtls_dialect_gnu2)
+-LIBC_CONFIG_VAR([have-mtls-dialect-gnu2], [$libc_cv_mtls_dialect_gnu2])
++AC_SUBST(libc_cv_mtls_descriptor)
++LIBC_CONFIG_VAR([have-mtls-descriptor], [$libc_cv_mtls_descriptor])
+ 
+ dnl clang emits an warning for a double alias redirection, to warn the
+ dnl original symbol is sed even when weak definition overrides it.
+diff --git a/elf/Makefile b/elf/Makefile
+index 030db4d207..69aa423c4b 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -999,13 +999,13 @@ modules-names-tests = $(filter-out ifuncmod% tst-tlsmod%,\
+ # For +depfiles in Makerules.
+ extra-test-objs += tst-auditmod17.os
+ 
+-ifeq (yes,$(have-mtls-dialect-gnu2))
++ifneq (no,$(have-mtls-descriptor))
+ tests += tst-gnu2-tls1
+ modules-names += tst-gnu2-tls1mod
+ $(objpfx)tst-gnu2-tls1: $(objpfx)tst-gnu2-tls1mod.so
+ tst-gnu2-tls1mod.so-no-z-defs = yes
+-CFLAGS-tst-gnu2-tls1mod.c += -mtls-dialect=gnu2
+-endif # $(have-mtls-dialect-gnu2)
++CFLAGS-tst-gnu2-tls1mod.c += -mtls-dialect=$(have-mtls-descriptor)
++endif # $(have-mtls-descriptor)
+ 
+ ifeq (yes,$(have-protected-data))
+ modules-names += tst-protected1moda tst-protected1modb
+@@ -2972,11 +2972,11 @@ $(objpfx)tst-tls-allocation-failure-static-patched.out: \
+ $(objpfx)tst-audit-tlsdesc: $(objpfx)tst-audit-tlsdesc-mod1.so \
+ 			    $(objpfx)tst-audit-tlsdesc-mod2.so \
+ 			    $(shared-thread-library)
+-ifeq (yes,$(have-mtls-dialect-gnu2))
++ifneq (no,$(have-mtls-descriptor))
+ # The test is valid for all TLS types, but we want to exercise GNU2
+ # TLS if possible.
+-CFLAGS-tst-audit-tlsdesc-mod1.c += -mtls-dialect=gnu2
+-CFLAGS-tst-audit-tlsdesc-mod2.c += -mtls-dialect=gnu2
++CFLAGS-tst-audit-tlsdesc-mod1.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-audit-tlsdesc-mod2.c += -mtls-dialect=$(have-mtls-descriptor)
+ endif
+ $(objpfx)tst-audit-tlsdesc-dlopen: $(shared-thread-library)
+ $(objpfx)tst-audit-tlsdesc-dlopen.out: $(objpfx)tst-audit-tlsdesc-mod1.so \
+@@ -3055,11 +3055,11 @@ $(objpfx)tst-gnu2-tls2.out: \
+   $(objpfx)tst-gnu2-tls2mod1.so \
+   $(objpfx)tst-gnu2-tls2mod2.so
+ 
+-ifeq (yes,$(have-mtls-dialect-gnu2))
+-CFLAGS-tst-tlsgap-mod0.c += -mtls-dialect=gnu2
+-CFLAGS-tst-tlsgap-mod1.c += -mtls-dialect=gnu2
+-CFLAGS-tst-tlsgap-mod2.c += -mtls-dialect=gnu2
+-CFLAGS-tst-gnu2-tls2mod0.c += -mtls-dialect=gnu2
+-CFLAGS-tst-gnu2-tls2mod1.c += -mtls-dialect=gnu2
+-CFLAGS-tst-gnu2-tls2mod2.c += -mtls-dialect=gnu2
++ifneq (no,$(have-mtls-descriptor))
++CFLAGS-tst-tlsgap-mod0.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-tlsgap-mod1.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-tlsgap-mod2.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-gnu2-tls2mod0.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-gnu2-tls2mod1.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-gnu2-tls2mod2.c += -mtls-dialect=$(have-mtls-descriptor)
+ endif
+diff --git a/sysdeps/aarch64/preconfigure b/sysdeps/aarch64/preconfigure
+index d9bd1f8558..19657b627b 100644
+--- a/sysdeps/aarch64/preconfigure
++++ b/sysdeps/aarch64/preconfigure
+@@ -2,5 +2,6 @@ case "$machine" in
+ aarch64*)
+ 	base_machine=aarch64
+ 	machine=aarch64
++	mtls_descriptor=desc
+ 	;;
+ esac
+diff --git a/sysdeps/arm/Makefile b/sysdeps/arm/Makefile
+index d5cea717a9..619474eca9 100644
+--- a/sysdeps/arm/Makefile
++++ b/sysdeps/arm/Makefile
+@@ -13,15 +13,15 @@ $(objpfx)libgcc-stubs.a: $(objpfx)aeabi_unwind_cpp_pr1.os
+ lib-noranlib: $(objpfx)libgcc-stubs.a
+ 
+ ifeq ($(build-shared),yes)
+-ifeq (yes,$(have-mtls-dialect-gnu2))
++ifneq (no,$(have-mtls-descriptor))
+ tests += tst-armtlsdescloc tst-armtlsdescextnow tst-armtlsdescextlazy
+ modules-names += tst-armtlsdesclocmod
+ modules-names += tst-armtlsdescextlazymod tst-armtlsdescextnowmod
+ CPPFLAGS-tst-armtlsdescextnowmod.c += -Dstatic=
+ CPPFLAGS-tst-armtlsdescextlazymod.c += -Dstatic=
+-CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=gnu2
+-CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=gnu2
+-CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=gnu2
++CFLAGS-tst-armtlsdesclocmod.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-armtlsdescextnowmod.c += -mtls-dialect=$(have-mtls-descriptor)
++CFLAGS-tst-armtlsdescextlazymod.c += -mtls-dialect=$(have-mtls-descriptor)
+ LDFLAGS-tst-armtlsdescextnowmod.so += -Wl,-z,now
+ tst-armtlsdescloc-ENV = LD_BIND_NOW=1
+ tst-armtlsdescextnow-ENV = LD_BIND_NOW=1
+
+commit 5a461f2949ded98d8211939f84988bc464c7b4fe
+Author: Andreas Schwab <schwab@suse.de>
+Date:   Tue Mar 19 13:49:50 2024 +0100
+
+    Add tst-gnu2-tls2mod1 to test-internal-extras
+    
+    That allows sysdeps/x86_64/tst-gnu2-tls2mod1.S to use internal headers.
+    
+    Fixes: 717ebfa85c ("x86-64: Allocate state buffer space for RDI, RSI and RBX")
+    (cherry picked from commit fd7ee2e6c5eb49e4a630a9978b4d668bff6354ee)
+
+diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
+index e8babc9a4e..9d374a3299 100644
+--- a/sysdeps/x86_64/Makefile
++++ b/sysdeps/x86_64/Makefile
+@@ -210,6 +210,8 @@ tst-plt-rewrite2-ENV = GLIBC_TUNABLES=glibc.cpu.plt_rewrite=2
+ $(objpfx)tst-plt-rewrite2: $(objpfx)tst-plt-rewritemod2.so
+ endif
+ 
++test-internal-extras += tst-gnu2-tls2mod1
++
+ endif # $(subdir) == elf
+ 
+ ifeq ($(subdir),csu)
+
+commit aa4249266e9906c4bc833e4847f4d8feef59504f
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Thu Feb 8 10:08:38 2024 -0300
+
+    x86: Fix Zen3/Zen4 ERMS selection (BZ 30994)
+    
+    The REP MOVSB usage on memcpy/memmove does not show much performance
+    improvement on Zen3/Zen4 cores compared to the vectorized loops.  Also,
+    as from BZ 30994, if the source is aligned and the destination is not
+    the performance can be 20x slower.
+    
+    The performance difference is noticeable with small buffer sizes, closer
+    to the lower bounds limits when memcpy/memmove starts to use ERMS.  The
+    performance of REP MOVSB is similar to vectorized instruction on the
+    size limit (the L2 cache).  Also, there is no drawback to multiple cores
+    sharing the cache.
+    
+    Checked on x86_64-linux-gnu on Zen3.
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    
+    (cherry picked from commit 0c0d39fe4aeb0f69b26e76337c5dfd5530d5d44e)
+
+diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
+index d5101615e3..f34d12846c 100644
+--- a/sysdeps/x86/dl-cacheinfo.h
++++ b/sysdeps/x86/dl-cacheinfo.h
+@@ -791,7 +791,6 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+   long int data = -1;
+   long int shared = -1;
+   long int shared_per_thread = -1;
+-  long int core = -1;
+   unsigned int threads = 0;
+   unsigned long int level1_icache_size = -1;
+   unsigned long int level1_icache_linesize = -1;
+@@ -809,7 +808,6 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+   if (cpu_features->basic.kind == arch_kind_intel)
+     {
+       data = handle_intel (_SC_LEVEL1_DCACHE_SIZE, cpu_features);
+-      core = handle_intel (_SC_LEVEL2_CACHE_SIZE, cpu_features);
+       shared = handle_intel (_SC_LEVEL3_CACHE_SIZE, cpu_features);
+       shared_per_thread = shared;
+ 
+@@ -822,7 +820,8 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+ 	= handle_intel (_SC_LEVEL1_DCACHE_ASSOC, cpu_features);
+       level1_dcache_linesize
+ 	= handle_intel (_SC_LEVEL1_DCACHE_LINESIZE, cpu_features);
+-      level2_cache_size = core;
++      level2_cache_size
++	= handle_intel (_SC_LEVEL2_CACHE_SIZE, cpu_features);
+       level2_cache_assoc
+ 	= handle_intel (_SC_LEVEL2_CACHE_ASSOC, cpu_features);
+       level2_cache_linesize
+@@ -835,12 +834,12 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+       level4_cache_size
+ 	= handle_intel (_SC_LEVEL4_CACHE_SIZE, cpu_features);
+ 
+-      get_common_cache_info (&shared, &shared_per_thread, &threads, core);
++      get_common_cache_info (&shared, &shared_per_thread, &threads,
++			     level2_cache_size);
+     }
+   else if (cpu_features->basic.kind == arch_kind_zhaoxin)
+     {
+       data = handle_zhaoxin (_SC_LEVEL1_DCACHE_SIZE);
+-      core = handle_zhaoxin (_SC_LEVEL2_CACHE_SIZE);
+       shared = handle_zhaoxin (_SC_LEVEL3_CACHE_SIZE);
+       shared_per_thread = shared;
+ 
+@@ -849,19 +848,19 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+       level1_dcache_size = data;
+       level1_dcache_assoc = handle_zhaoxin (_SC_LEVEL1_DCACHE_ASSOC);
+       level1_dcache_linesize = handle_zhaoxin (_SC_LEVEL1_DCACHE_LINESIZE);
+-      level2_cache_size = core;
++      level2_cache_size = handle_zhaoxin (_SC_LEVEL2_CACHE_SIZE);
+       level2_cache_assoc = handle_zhaoxin (_SC_LEVEL2_CACHE_ASSOC);
+       level2_cache_linesize = handle_zhaoxin (_SC_LEVEL2_CACHE_LINESIZE);
+       level3_cache_size = shared;
+       level3_cache_assoc = handle_zhaoxin (_SC_LEVEL3_CACHE_ASSOC);
+       level3_cache_linesize = handle_zhaoxin (_SC_LEVEL3_CACHE_LINESIZE);
+ 
+-      get_common_cache_info (&shared, &shared_per_thread, &threads, core);
++      get_common_cache_info (&shared, &shared_per_thread, &threads,
++			     level2_cache_size);
+     }
+   else if (cpu_features->basic.kind == arch_kind_amd)
+     {
+       data = handle_amd (_SC_LEVEL1_DCACHE_SIZE);
+-      core = handle_amd (_SC_LEVEL2_CACHE_SIZE);
+       shared = handle_amd (_SC_LEVEL3_CACHE_SIZE);
+ 
+       level1_icache_size = handle_amd (_SC_LEVEL1_ICACHE_SIZE);
+@@ -869,7 +868,7 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+       level1_dcache_size = data;
+       level1_dcache_assoc = handle_amd (_SC_LEVEL1_DCACHE_ASSOC);
+       level1_dcache_linesize = handle_amd (_SC_LEVEL1_DCACHE_LINESIZE);
+-      level2_cache_size = core;
++      level2_cache_size = handle_amd (_SC_LEVEL2_CACHE_SIZE);;
+       level2_cache_assoc = handle_amd (_SC_LEVEL2_CACHE_ASSOC);
+       level2_cache_linesize = handle_amd (_SC_LEVEL2_CACHE_LINESIZE);
+       level3_cache_size = shared;
+@@ -880,12 +879,12 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+       if (shared <= 0)
+         {
+            /* No shared L3 cache.  All we have is the L2 cache.  */
+-           shared = core;
++           shared = level2_cache_size;
+         }
+       else if (cpu_features->basic.family < 0x17)
+         {
+            /* Account for exclusive L2 and L3 caches.  */
+-           shared += core;
++           shared += level2_cache_size;
+         }
+ 
+       shared_per_thread = shared;
+@@ -987,6 +986,12 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+   if (CPU_FEATURE_USABLE_P (cpu_features, FSRM))
+     rep_movsb_threshold = 2112;
+ 
++   /* For AMD CPUs that support ERMS (Zen3+), REP MOVSB is in a lot of
++      cases slower than the vectorized path (and for some alignments,
++      it is really slow, check BZ #30994).  */
++  if (cpu_features->basic.kind == arch_kind_amd)
++    rep_movsb_threshold = non_temporal_threshold;
++
+   /* The default threshold to use Enhanced REP STOSB.  */
+   unsigned long int rep_stosb_threshold = 2048;
+ 
+@@ -1028,16 +1033,9 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+ 			   SIZE_MAX);
+ 
+   unsigned long int rep_movsb_stop_threshold;
+-  /* ERMS feature is implemented from AMD Zen3 architecture and it is
+-     performing poorly for data above L2 cache size. Henceforth, adding
+-     an upper bound threshold parameter to limit the usage of Enhanced
+-     REP MOVSB operations and setting its value to L2 cache size.  */
+-  if (cpu_features->basic.kind == arch_kind_amd)
+-    rep_movsb_stop_threshold = core;
+   /* Setting the upper bound of ERMS to the computed value of
+-     non-temporal threshold for architectures other than AMD.  */
+-  else
+-    rep_movsb_stop_threshold = non_temporal_threshold;
++     non-temporal threshold for all architectures.  */
++  rep_movsb_stop_threshold = non_temporal_threshold;
+ 
+   cpu_features->data_cache_size = data;
+   cpu_features->shared_cache_size = shared;
+
+commit 6484a92698039c4a7a510f0214e22d067b0d78b3
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Thu Feb 8 10:08:39 2024 -0300
+
+    x86: Do not prefer ERMS for memset on Zen3+
+    
+    For AMD Zen3+ architecture, the performance of the vectorized loop is
+    slightly better than ERMS.
+    
+    Checked on x86_64-linux-gnu on Zen3.
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    
+    (cherry picked from commit 272708884cb750f12f5c74a00e6620c19dc6d567)
+
+diff --git a/sysdeps/x86/dl-cacheinfo.h b/sysdeps/x86/dl-cacheinfo.h
+index f34d12846c..5a98f70364 100644
+--- a/sysdeps/x86/dl-cacheinfo.h
++++ b/sysdeps/x86/dl-cacheinfo.h
+@@ -1021,6 +1021,11 @@ dl_init_cacheinfo (struct cpu_features *cpu_features)
+      minimum value is fixed.  */
+   rep_stosb_threshold = TUNABLE_GET (x86_rep_stosb_threshold,
+ 				     long int, NULL);
++  if (cpu_features->basic.kind == arch_kind_amd
++      && !TUNABLE_IS_INITIALIZED (x86_rep_stosb_threshold))
++    /* For AMD Zen3+ architecture, the performance of the vectorized loop is
++       slightly better than ERMS.  */
++    rep_stosb_threshold = SIZE_MAX;
+ 
+   TUNABLE_SET_WITH_BOUNDS (x86_data_cache_size, data, 0, SIZE_MAX);
+   TUNABLE_SET_WITH_BOUNDS (x86_shared_cache_size, shared, 0, SIZE_MAX);
+
+commit 5d070d12b3a52bc44dd1b71743abc4b6243862ae
+Author: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date:   Thu Feb 8 10:08:40 2024 -0300
+
+    x86: Expand the comment on when REP STOSB is used on memset
+    
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    (cherry picked from commit 491e55beab7457ed310a4a47496f4a333c5d1032)
+
+diff --git a/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S b/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
+index 9984c3ca0f..97839a2248 100644
+--- a/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
++++ b/sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
+@@ -21,7 +21,9 @@
+    2. If size is less than VEC, use integer register stores.
+    3. If size is from VEC_SIZE to 2 * VEC_SIZE, use 2 VEC stores.
+    4. If size is from 2 * VEC_SIZE to 4 * VEC_SIZE, use 4 VEC stores.
+-   5. If size is more to 4 * VEC_SIZE, align to 4 * VEC_SIZE with
++   5. On machines ERMS feature, if size is greater or equal than
++      __x86_rep_stosb_threshold then REP STOSB will be used.
++   6. If size is more to 4 * VEC_SIZE, align to 4 * VEC_SIZE with
+       4 VEC stores and store 4 * VEC at a time until done.  */
+ 
+ #include <sysdep.h>
+
+commit 31c7d69af59da0da80caa74b2ec6ae149013384d
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Feb 16 07:40:37 2024 +0100
+
+    i386: Use generic memrchr in libc (bug 31316)
+    
+    Before this change, we incorrectly used the SSE2 variant in the
+    implementation, without checking that the system actually supports
+    SSE2.
+    
+    Tested-by: Sam James <sam@gentoo.org>
+    (cherry picked from commit 0d9166c2245cad4ac520b337dee40c9a583872b6)
+
+diff --git a/sysdeps/i386/i686/multiarch/memrchr-c.c b/sysdeps/i386/i686/multiarch/memrchr-c.c
+index ef7bbbe792..20bfdf3af3 100644
+--- a/sysdeps/i386/i686/multiarch/memrchr-c.c
++++ b/sysdeps/i386/i686/multiarch/memrchr-c.c
+@@ -5,3 +5,4 @@ extern void *__memrchr_ia32 (const void *, int, size_t);
+ #endif
+ 
+ #include "string/memrchr.c"
++strong_alias (__memrchr_ia32, __GI___memrchr)
+diff --git a/sysdeps/i386/i686/multiarch/memrchr-sse2.S b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
+index d9dae04171..e123f87435 100644
+--- a/sysdeps/i386/i686/multiarch/memrchr-sse2.S
++++ b/sysdeps/i386/i686/multiarch/memrchr-sse2.S
+@@ -720,5 +720,4 @@ L(ret_null):
+ 	ret
+ 
+ END (__memrchr_sse2)
+-strong_alias (__memrchr_sse2, __GI___memrchr)
+ #endif
+
+commit b0e0a07018098c2c5927796be5681a298c312626
+Author: Joe Ramsay <Joe.Ramsay@arm.com>
+Date:   Tue Feb 20 16:44:13 2024 +0000
+
+    aarch64/fpu: Sync libmvec routines from 2.39 and before with AOR
+    
+    This includes a fix for big-endian in AdvSIMD log, some cosmetic
+    changes, and numerous small optimisations mainly around inlining and
+    using indexed variants of MLA intrinsics.
+    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+    
+    (cherry picked from commit e302e1021391d13a9611ba3a910df128830bd19e)
+
+diff --git a/sysdeps/aarch64/fpu/acos_advsimd.c b/sysdeps/aarch64/fpu/acos_advsimd.c
+index a8eabb5e71..0a86c9823a 100644
+--- a/sysdeps/aarch64/fpu/acos_advsimd.c
++++ b/sysdeps/aarch64/fpu/acos_advsimd.c
+@@ -40,8 +40,8 @@ static const struct data
+ };
+ 
+ #define AllMask v_u64 (0xffffffffffffffff)
+-#define Oneu (0x3ff0000000000000)
+-#define Small (0x3e50000000000000) /* 2^-53.  */
++#define Oneu 0x3ff0000000000000
++#define Small 0x3e50000000000000 /* 2^-53.  */
+ 
+ #if WANT_SIMD_EXCEPT
+ static float64x2_t VPCS_ATTR NOINLINE
+diff --git a/sysdeps/aarch64/fpu/asin_advsimd.c b/sysdeps/aarch64/fpu/asin_advsimd.c
+index 141646e954..2de6eff407 100644
+--- a/sysdeps/aarch64/fpu/asin_advsimd.c
++++ b/sysdeps/aarch64/fpu/asin_advsimd.c
+@@ -39,8 +39,8 @@ static const struct data
+ };
+ 
+ #define AllMask v_u64 (0xffffffffffffffff)
+-#define One (0x3ff0000000000000)
+-#define Small (0x3e50000000000000) /* 2^-12.  */
++#define One 0x3ff0000000000000
++#define Small 0x3e50000000000000 /* 2^-12.  */
+ 
+ #if WANT_SIMD_EXCEPT
+ static float64x2_t VPCS_ATTR NOINLINE
+diff --git a/sysdeps/aarch64/fpu/atan2_sve.c b/sysdeps/aarch64/fpu/atan2_sve.c
+index 09a4c559b8..04fa71fa37 100644
+--- a/sysdeps/aarch64/fpu/atan2_sve.c
++++ b/sysdeps/aarch64/fpu/atan2_sve.c
+@@ -37,9 +37,6 @@ static const struct data
+   .pi_over_2 = 0x1.921fb54442d18p+0,
+ };
+ 
+-/* Useful constants.  */
+-#define SignMask sv_u64 (0x8000000000000000)
+-
+ /* Special cases i.e. 0, infinity, nan (fall back to scalar calls).  */
+ static svfloat64_t NOINLINE
+ special_case (svfloat64_t y, svfloat64_t x, svfloat64_t ret,
+@@ -72,14 +69,15 @@ svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x, const svbool_t pg)
+   svbool_t cmp_y = zeroinfnan (iy, pg);
+   svbool_t cmp_xy = svorr_z (pg, cmp_x, cmp_y);
+ 
+-  svuint64_t sign_x = svand_x (pg, ix, SignMask);
+-  svuint64_t sign_y = svand_x (pg, iy, SignMask);
+-  svuint64_t sign_xy = sveor_x (pg, sign_x, sign_y);
+-
+   svfloat64_t ax = svabs_x (pg, x);
+   svfloat64_t ay = svabs_x (pg, y);
++  svuint64_t iax = svreinterpret_u64 (ax);
++  svuint64_t iay = svreinterpret_u64 (ay);
++
++  svuint64_t sign_x = sveor_x (pg, ix, iax);
++  svuint64_t sign_y = sveor_x (pg, iy, iay);
++  svuint64_t sign_xy = sveor_x (pg, sign_x, sign_y);
+ 
+-  svbool_t pred_xlt0 = svcmplt (pg, x, 0.0);
+   svbool_t pred_aygtax = svcmpgt (pg, ay, ax);
+ 
+   /* Set up z for call to atan.  */
+@@ -88,8 +86,9 @@ svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x, const svbool_t pg)
+   svfloat64_t z = svdiv_x (pg, n, d);
+ 
+   /* Work out the correct shift.  */
+-  svfloat64_t shift = svsel (pred_xlt0, sv_f64 (-2.0), sv_f64 (0.0));
+-  shift = svsel (pred_aygtax, svadd_x (pg, shift, 1.0), shift);
++  svfloat64_t shift = svreinterpret_f64 (svlsr_x (pg, sign_x, 1));
++  shift = svsel (pred_aygtax, sv_f64 (1.0), shift);
++  shift = svreinterpret_f64 (svorr_x (pg, sign_x, svreinterpret_u64 (shift)));
+   shift = svmul_x (pg, shift, data_ptr->pi_over_2);
+ 
+   /* Use split Estrin scheme for P(z^2) with deg(P)=19.  */
+@@ -109,10 +108,10 @@ svfloat64_t SV_NAME_D2 (atan2) (svfloat64_t y, svfloat64_t x, const svbool_t pg)
+   ret = svadd_m (pg, ret, shift);
+ 
+   /* Account for the sign of x and y.  */
+-  ret = svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (ret), sign_xy));
+-
+   if (__glibc_unlikely (svptest_any (pg, cmp_xy)))
+-    return special_case (y, x, ret, cmp_xy);
+-
+-  return ret;
++    return special_case (
++	y, x,
++	svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (ret), sign_xy)),
++	cmp_xy);
++  return svreinterpret_f64 (sveor_x (pg, svreinterpret_u64 (ret), sign_xy));
+ }
+diff --git a/sysdeps/aarch64/fpu/atan2f_sve.c b/sysdeps/aarch64/fpu/atan2f_sve.c
+index b92f83cdea..9ea197147c 100644
+--- a/sysdeps/aarch64/fpu/atan2f_sve.c
++++ b/sysdeps/aarch64/fpu/atan2f_sve.c
+@@ -32,10 +32,8 @@ static const struct data
+   .pi_over_2 = 0x1.921fb6p+0f,
+ };
+ 
+-#define SignMask sv_u32 (0x80000000)
+-
+ /* Special cases i.e. 0, infinity, nan (fall back to scalar calls).  */
+-static inline svfloat32_t
++static svfloat32_t NOINLINE
+ special_case (svfloat32_t y, svfloat32_t x, svfloat32_t ret,
+ 	      const svbool_t cmp)
+ {
+@@ -67,14 +65,15 @@ svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x, const svbool_t pg)
+   svbool_t cmp_y = zeroinfnan (iy, pg);
+   svbool_t cmp_xy = svorr_z (pg, cmp_x, cmp_y);
+ 
+-  svuint32_t sign_x = svand_x (pg, ix, SignMask);
+-  svuint32_t sign_y = svand_x (pg, iy, SignMask);
+-  svuint32_t sign_xy = sveor_x (pg, sign_x, sign_y);
+-
+   svfloat32_t ax = svabs_x (pg, x);
+   svfloat32_t ay = svabs_x (pg, y);
++  svuint32_t iax = svreinterpret_u32 (ax);
++  svuint32_t iay = svreinterpret_u32 (ay);
++
++  svuint32_t sign_x = sveor_x (pg, ix, iax);
++  svuint32_t sign_y = sveor_x (pg, iy, iay);
++  svuint32_t sign_xy = sveor_x (pg, sign_x, sign_y);
+ 
+-  svbool_t pred_xlt0 = svcmplt (pg, x, 0.0);
+   svbool_t pred_aygtax = svcmpgt (pg, ay, ax);
+ 
+   /* Set up z for call to atan.  */
+@@ -83,11 +82,12 @@ svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x, const svbool_t pg)
+   svfloat32_t z = svdiv_x (pg, n, d);
+ 
+   /* Work out the correct shift.  */
+-  svfloat32_t shift = svsel (pred_xlt0, sv_f32 (-2.0), sv_f32 (0.0));
+-  shift = svsel (pred_aygtax, svadd_x (pg, shift, 1.0), shift);
++  svfloat32_t shift = svreinterpret_f32 (svlsr_x (pg, sign_x, 1));
++  shift = svsel (pred_aygtax, sv_f32 (1.0), shift);
++  shift = svreinterpret_f32 (svorr_x (pg, sign_x, svreinterpret_u32 (shift)));
+   shift = svmul_x (pg, shift, sv_f32 (data_ptr->pi_over_2));
+ 
+-  /* Use split Estrin scheme for P(z^2) with deg(P)=7.  */
++  /* Use pure Estrin scheme for P(z^2) with deg(P)=7.  */
+   svfloat32_t z2 = svmul_x (pg, z, z);
+   svfloat32_t z4 = svmul_x (pg, z2, z2);
+   svfloat32_t z8 = svmul_x (pg, z4, z4);
+@@ -101,10 +101,12 @@ svfloat32_t SV_NAME_F2 (atan2) (svfloat32_t y, svfloat32_t x, const svbool_t pg)
+   ret = svadd_m (pg, ret, shift);
+ 
+   /* Account for the sign of x and y.  */
+-  ret = svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (ret), sign_xy));
+ 
+   if (__glibc_unlikely (svptest_any (pg, cmp_xy)))
+-    return special_case (y, x, ret, cmp_xy);
++    return special_case (
++	y, x,
++	svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (ret), sign_xy)),
++	cmp_xy);
+ 
+-  return ret;
++  return svreinterpret_f32 (sveor_x (pg, svreinterpret_u32 (ret), sign_xy));
+ }
+diff --git a/sysdeps/aarch64/fpu/cos_advsimd.c b/sysdeps/aarch64/fpu/cos_advsimd.c
+index 2897e8b909..3924c9ce44 100644
+--- a/sysdeps/aarch64/fpu/cos_advsimd.c
++++ b/sysdeps/aarch64/fpu/cos_advsimd.c
+@@ -63,8 +63,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (cos) (float64x2_t x)
+        special-case handler later.  */
+     r = vbslq_f64 (cmp, v_f64 (1.0), r);
+ #else
+-  cmp = vcageq_f64 (d->range_val, x);
+-  cmp = vceqzq_u64 (cmp); /* cmp = ~cmp.  */
++  cmp = vcageq_f64 (x, d->range_val);
+   r = x;
+ #endif
+ 
+diff --git a/sysdeps/aarch64/fpu/cosf_advsimd.c b/sysdeps/aarch64/fpu/cosf_advsimd.c
+index 60abc8dfcf..d0c285b03a 100644
+--- a/sysdeps/aarch64/fpu/cosf_advsimd.c
++++ b/sysdeps/aarch64/fpu/cosf_advsimd.c
+@@ -64,8 +64,7 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (cos) (float32x4_t x)
+        special-case handler later.  */
+     r = vbslq_f32 (cmp, v_f32 (1.0f), r);
+ #else
+-  cmp = vcageq_f32 (d->range_val, x);
+-  cmp = vceqzq_u32 (cmp); /* cmp = ~cmp.  */
++  cmp = vcageq_f32 (x, d->range_val);
+   r = x;
+ #endif
+ 
+diff --git a/sysdeps/aarch64/fpu/exp10_advsimd.c b/sysdeps/aarch64/fpu/exp10_advsimd.c
+index fe7149b191..eeb31ca839 100644
+--- a/sysdeps/aarch64/fpu/exp10_advsimd.c
++++ b/sysdeps/aarch64/fpu/exp10_advsimd.c
+@@ -57,7 +57,7 @@ const static struct data
+ # define BigBound v_u64 (0x4070000000000000)  /* asuint64 (0x1p8).  */
+ # define Thres v_u64 (0x2070000000000000)     /* BigBound - TinyBound.  */
+ 
+-static inline float64x2_t VPCS_ATTR
++static float64x2_t VPCS_ATTR NOINLINE
+ special_case (float64x2_t x, float64x2_t y, uint64x2_t cmp)
+ {
+   /* If fenv exceptions are to be triggered correctly, fall back to the scalar
+@@ -72,7 +72,7 @@ special_case (float64x2_t x, float64x2_t y, uint64x2_t cmp)
+ # define SpecialBias1 v_u64 (0x7000000000000000)  /* 0x1p769.  */
+ # define SpecialBias2 v_u64 (0x3010000000000000)  /* 0x1p-254.  */
+ 
+-static float64x2_t VPCS_ATTR NOINLINE
++static inline float64x2_t VPCS_ATTR
+ special_case (float64x2_t s, float64x2_t y, float64x2_t n,
+ 	      const struct data *d)
+ {
+diff --git a/sysdeps/aarch64/fpu/exp10f_advsimd.c b/sysdeps/aarch64/fpu/exp10f_advsimd.c
+index 7ee0c90948..ab117b69da 100644
+--- a/sysdeps/aarch64/fpu/exp10f_advsimd.c
++++ b/sysdeps/aarch64/fpu/exp10f_advsimd.c
+@@ -25,7 +25,8 @@
+ static const struct data
+ {
+   float32x4_t poly[5];
+-  float32x4_t shift, log10_2, log2_10_hi, log2_10_lo;
++  float32x4_t log10_2_and_inv, shift;
++
+ #if !WANT_SIMD_EXCEPT
+   float32x4_t scale_thresh;
+ #endif
+@@ -38,9 +39,9 @@ static const struct data
+   .poly = { V4 (0x1.26bb16p+1f), V4 (0x1.5350d2p+1f), V4 (0x1.04744ap+1f),
+ 	    V4 (0x1.2d8176p+0f), V4 (0x1.12b41ap-1f) },
+   .shift = V4 (0x1.8p23f),
+-  .log10_2 = V4 (0x1.a934fp+1),
+-  .log2_10_hi = V4 (0x1.344136p-2),
+-  .log2_10_lo = V4 (-0x1.ec10cp-27),
++
++  /* Stores constants 1/log10(2), log10(2)_high, log10(2)_low, 0.  */
++  .log10_2_and_inv = { 0x1.a934fp+1, 0x1.344136p-2, -0x1.ec10cp-27, 0 },
+ #if !WANT_SIMD_EXCEPT
+   .scale_thresh = V4 (ScaleBound)
+ #endif
+@@ -98,24 +99,22 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (exp10) (float32x4_t x)
+ #if WANT_SIMD_EXCEPT
+   /* asuint(x) - TinyBound >= BigBound - TinyBound.  */
+   uint32x4_t cmp = vcgeq_u32 (
+-      vsubq_u32 (vandq_u32 (vreinterpretq_u32_f32 (x), v_u32 (0x7fffffff)),
+-		 TinyBound),
+-      Thres);
++      vsubq_u32 (vreinterpretq_u32_f32 (vabsq_f32 (x)), TinyBound), Thres);
+   float32x4_t xm = x;
+   /* If any lanes are special, mask them with 1 and retain a copy of x to allow
+      special case handler to fix special lanes later. This is only necessary if
+      fenv exceptions are to be triggered correctly.  */
+   if (__glibc_unlikely (v_any_u32 (cmp)))
+-    x = vbslq_f32 (cmp, v_f32 (1), x);
++    x = v_zerofy_f32 (x, cmp);
+ #endif
+ 
+   /* exp10(x) = 2^n * 10^r = 2^n * (1 + poly (r)),
+      with poly(r) in [1/sqrt(2), sqrt(2)] and
+      x = r + n * log10 (2), with r in [-log10(2)/2, log10(2)/2].  */
+-  float32x4_t z = vfmaq_f32 (d->shift, x, d->log10_2);
++  float32x4_t z = vfmaq_laneq_f32 (d->shift, x, d->log10_2_and_inv, 0);
+   float32x4_t n = vsubq_f32 (z, d->shift);
+-  float32x4_t r = vfmsq_f32 (x, n, d->log2_10_hi);
+-  r = vfmsq_f32 (r, n, d->log2_10_lo);
++  float32x4_t r = vfmsq_laneq_f32 (x, n, d->log10_2_and_inv, 1);
++  r = vfmsq_laneq_f32 (r, n, d->log10_2_and_inv, 2);
+   uint32x4_t e = vshlq_n_u32 (vreinterpretq_u32_f32 (z), 23);
+ 
+   float32x4_t scale = vreinterpretq_f32_u32 (vaddq_u32 (e, ExponentBias));
+diff --git a/sysdeps/aarch64/fpu/exp2_advsimd.c b/sysdeps/aarch64/fpu/exp2_advsimd.c
+index 391a93180c..ae1e63d503 100644
+--- a/sysdeps/aarch64/fpu/exp2_advsimd.c
++++ b/sysdeps/aarch64/fpu/exp2_advsimd.c
+@@ -24,6 +24,7 @@
+ #define IndexMask (N - 1)
+ #define BigBound 1022.0
+ #define UOFlowBound 1280.0
++#define TinyBound 0x2000000000000000 /* asuint64(0x1p-511).  */
+ 
+ static const struct data
+ {
+@@ -48,14 +49,13 @@ lookup_sbits (uint64x2_t i)
+ 
+ #if WANT_SIMD_EXCEPT
+ 
+-# define TinyBound 0x2000000000000000 /* asuint64(0x1p-511).  */
+ # define Thres 0x2080000000000000     /* asuint64(512.0) - TinyBound.  */
+ 
+ /* Call scalar exp2 as a fallback.  */
+ static float64x2_t VPCS_ATTR NOINLINE
+-special_case (float64x2_t x)
++special_case (float64x2_t x, float64x2_t y, uint64x2_t is_special)
+ {
+-  return v_call_f64 (exp2, x, x, v_u64 (0xffffffffffffffff));
++  return v_call_f64 (exp2, x, y, is_special);
+ }
+ 
+ #else
+@@ -65,7 +65,7 @@ special_case (float64x2_t x)
+ # define SpecialBias1 0x7000000000000000 /* 0x1p769.  */
+ # define SpecialBias2 0x3010000000000000 /* 0x1p-254.  */
+ 
+-static float64x2_t VPCS_ATTR
++static inline float64x2_t VPCS_ATTR
+ special_case (float64x2_t s, float64x2_t y, float64x2_t n,
+ 	      const struct data *d)
+ {
+@@ -94,10 +94,10 @@ float64x2_t V_NAME_D1 (exp2) (float64x2_t x)
+ #if WANT_SIMD_EXCEPT
+   uint64x2_t ia = vreinterpretq_u64_f64 (vabsq_f64 (x));
+   cmp = vcgeq_u64 (vsubq_u64 (ia, v_u64 (TinyBound)), v_u64 (Thres));
+-  /* If any special case (inf, nan, small and large x) is detected,
+-     fall back to scalar for all lanes.  */
+-  if (__glibc_unlikely (v_any_u64 (cmp)))
+-    return special_case (x);
++  /* Mask special lanes and retain a copy of x for passing to special-case
++     handler.  */
++  float64x2_t xc = x;
++  x = v_zerofy_f64 (x, cmp);
+ #else
+   cmp = vcagtq_f64 (x, d->scale_big_bound);
+ #endif
+@@ -120,9 +120,11 @@ float64x2_t V_NAME_D1 (exp2) (float64x2_t x)
+   float64x2_t y = v_pairwise_poly_3_f64 (r, r2, d->poly);
+   y = vmulq_f64 (r, y);
+ 
+-#if !WANT_SIMD_EXCEPT
+   if (__glibc_unlikely (v_any_u64 (cmp)))
++#if !WANT_SIMD_EXCEPT
+     return special_case (s, y, n, d);
++#else
++    return special_case (xc, vfmaq_f64 (s, s, y), cmp);
+ #endif
+   return vfmaq_f64 (s, s, y);
+ }
+diff --git a/sysdeps/aarch64/fpu/exp2f_sve.c b/sysdeps/aarch64/fpu/exp2f_sve.c
+index 9a5a523a10..8a686e3e05 100644
+--- a/sysdeps/aarch64/fpu/exp2f_sve.c
++++ b/sysdeps/aarch64/fpu/exp2f_sve.c
+@@ -20,6 +20,8 @@
+ #include "sv_math.h"
+ #include "poly_sve_f32.h"
+ 
++#define Thres 0x1.5d5e2ap+6f
++
+ static const struct data
+ {
+   float poly[5];
+@@ -33,7 +35,7 @@ static const struct data
+   .shift = 0x1.903f8p17f,
+   /* Roughly 87.3. For x < -Thres, the result is subnormal and not handled
+      correctly by FEXPA.  */
+-  .thres = 0x1.5d5e2ap+6f,
++  .thres = Thres,
+ };
+ 
+ static svfloat32_t NOINLINE
+diff --git a/sysdeps/aarch64/fpu/exp_advsimd.c b/sysdeps/aarch64/fpu/exp_advsimd.c
+index fd215f1d2c..5e3a9a0d44 100644
+--- a/sysdeps/aarch64/fpu/exp_advsimd.c
++++ b/sysdeps/aarch64/fpu/exp_advsimd.c
+@@ -54,7 +54,7 @@ const static volatile struct
+ # define BigBound v_u64 (0x4080000000000000) /* asuint64 (0x1p9).  */
+ # define SpecialBound v_u64 (0x2080000000000000) /* BigBound - TinyBound.  */
+ 
+-static inline float64x2_t VPCS_ATTR
++static float64x2_t VPCS_ATTR NOINLINE
+ special_case (float64x2_t x, float64x2_t y, uint64x2_t cmp)
+ {
+   /* If fenv exceptions are to be triggered correctly, fall back to the scalar
+@@ -69,7 +69,7 @@ special_case (float64x2_t x, float64x2_t y, uint64x2_t cmp)
+ # define SpecialBias1 v_u64 (0x7000000000000000) /* 0x1p769.  */
+ # define SpecialBias2 v_u64 (0x3010000000000000) /* 0x1p-254.  */
+ 
+-static float64x2_t VPCS_ATTR NOINLINE
++static inline float64x2_t VPCS_ATTR
+ special_case (float64x2_t s, float64x2_t y, float64x2_t n)
+ {
+   /* 2^(n/N) may overflow, break it up into s1*s2.  */
+diff --git a/sysdeps/aarch64/fpu/expm1_advsimd.c b/sysdeps/aarch64/fpu/expm1_advsimd.c
+index 0b85bd06f3..3628398674 100644
+--- a/sysdeps/aarch64/fpu/expm1_advsimd.c
++++ b/sysdeps/aarch64/fpu/expm1_advsimd.c
+@@ -23,7 +23,7 @@
+ static const struct data
+ {
+   float64x2_t poly[11];
+-  float64x2_t invln2, ln2_lo, ln2_hi, shift;
++  float64x2_t invln2, ln2, shift;
+   int64x2_t exponent_bias;
+ #if WANT_SIMD_EXCEPT
+   uint64x2_t thresh, tiny_bound;
+@@ -38,8 +38,7 @@ static const struct data
+ 	    V2 (0x1.71ddf82db5bb4p-19), V2 (0x1.27e517fc0d54bp-22),
+ 	    V2 (0x1.af5eedae67435p-26), V2 (0x1.1f143d060a28ap-29) },
+   .invln2 = V2 (0x1.71547652b82fep0),
+-  .ln2_hi = V2 (0x1.62e42fefa39efp-1),
+-  .ln2_lo = V2 (0x1.abc9e3b39803fp-56),
++  .ln2 = { 0x1.62e42fefa39efp-1, 0x1.abc9e3b39803fp-56 },
+   .shift = V2 (0x1.8p52),
+   .exponent_bias = V2 (0x3ff0000000000000),
+ #if WANT_SIMD_EXCEPT
+@@ -83,7 +82,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (expm1) (float64x2_t x)
+     x = v_zerofy_f64 (x, special);
+ #else
+   /* Large input, NaNs and Infs.  */
+-  uint64x2_t special = vceqzq_u64 (vcaltq_f64 (x, d->oflow_bound));
++  uint64x2_t special = vcageq_f64 (x, d->oflow_bound);
+ #endif
+ 
+   /* Reduce argument to smaller range:
+@@ -93,8 +92,8 @@ float64x2_t VPCS_ATTR V_NAME_D1 (expm1) (float64x2_t x)
+      where 2^i is exact because i is an integer.  */
+   float64x2_t n = vsubq_f64 (vfmaq_f64 (d->shift, d->invln2, x), d->shift);
+   int64x2_t i = vcvtq_s64_f64 (n);
+-  float64x2_t f = vfmsq_f64 (x, n, d->ln2_hi);
+-  f = vfmsq_f64 (f, n, d->ln2_lo);
++  float64x2_t f = vfmsq_laneq_f64 (x, n, d->ln2, 0);
++  f = vfmsq_laneq_f64 (f, n, d->ln2, 1);
+ 
+   /* Approximate expm1(f) using polynomial.
+      Taylor expansion for expm1(x) has the form:
+diff --git a/sysdeps/aarch64/fpu/expm1f_advsimd.c b/sysdeps/aarch64/fpu/expm1f_advsimd.c
+index 8d4c9a2193..93db200f61 100644
+--- a/sysdeps/aarch64/fpu/expm1f_advsimd.c
++++ b/sysdeps/aarch64/fpu/expm1f_advsimd.c
+@@ -23,7 +23,8 @@
+ static const struct data
+ {
+   float32x4_t poly[5];
+-  float32x4_t invln2, ln2_lo, ln2_hi, shift;
++  float32x4_t invln2_and_ln2;
++  float32x4_t shift;
+   int32x4_t exponent_bias;
+ #if WANT_SIMD_EXCEPT
+   uint32x4_t thresh;
+@@ -34,9 +35,8 @@ static const struct data
+   /* Generated using fpminimax with degree=5 in [-log(2)/2, log(2)/2].  */
+   .poly = { V4 (0x1.fffffep-2), V4 (0x1.5554aep-3), V4 (0x1.555736p-5),
+ 	    V4 (0x1.12287cp-7), V4 (0x1.6b55a2p-10) },
+-  .invln2 = V4 (0x1.715476p+0f),
+-  .ln2_hi = V4 (0x1.62e4p-1f),
+-  .ln2_lo = V4 (0x1.7f7d1cp-20f),
++  /* Stores constants: invln2, ln2_hi, ln2_lo, 0.  */
++  .invln2_and_ln2 = { 0x1.715476p+0f, 0x1.62e4p-1f, 0x1.7f7d1cp-20f, 0 },
+   .shift = V4 (0x1.8p23f),
+   .exponent_bias = V4 (0x3f800000),
+ #if !WANT_SIMD_EXCEPT
+@@ -80,7 +80,7 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (expm1) (float32x4_t x)
+     x = v_zerofy_f32 (x, special);
+ #else
+   /* Handles very large values (+ve and -ve), +/-NaN, +/-Inf.  */
+-  uint32x4_t special = vceqzq_u32 (vcaltq_f32 (x, d->oflow_bound));
++  uint32x4_t special = vcagtq_f32 (x, d->oflow_bound);
+ #endif
+ 
+   /* Reduce argument to smaller range:
+@@ -88,10 +88,11 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (expm1) (float32x4_t x)
+      and f = x - i * ln2, then f is in [-ln2/2, ln2/2].
+      exp(x) - 1 = 2^i * (expm1(f) + 1) - 1
+      where 2^i is exact because i is an integer.  */
+-  float32x4_t j = vsubq_f32 (vfmaq_f32 (d->shift, d->invln2, x), d->shift);
++  float32x4_t j = vsubq_f32 (
++      vfmaq_laneq_f32 (d->shift, x, d->invln2_and_ln2, 0), d->shift);
+   int32x4_t i = vcvtq_s32_f32 (j);
+-  float32x4_t f = vfmsq_f32 (x, j, d->ln2_hi);
+-  f = vfmsq_f32 (f, j, d->ln2_lo);
++  float32x4_t f = vfmsq_laneq_f32 (x, j, d->invln2_and_ln2, 1);
++  f = vfmsq_laneq_f32 (f, j, d->invln2_and_ln2, 2);
+ 
+   /* Approximate expm1(f) using polynomial.
+      Taylor expansion for expm1(x) has the form:
+diff --git a/sysdeps/aarch64/fpu/log_advsimd.c b/sysdeps/aarch64/fpu/log_advsimd.c
+index 067ae79613..21df61728c 100644
+--- a/sysdeps/aarch64/fpu/log_advsimd.c
++++ b/sysdeps/aarch64/fpu/log_advsimd.c
+@@ -58,8 +58,13 @@ lookup (uint64x2_t i)
+   uint64_t i1 = (i[1] >> (52 - V_LOG_TABLE_BITS)) & IndexMask;
+   float64x2_t e0 = vld1q_f64 (&__v_log_data.table[i0].invc);
+   float64x2_t e1 = vld1q_f64 (&__v_log_data.table[i1].invc);
++#if __BYTE_ORDER == __LITTLE_ENDIAN
+   e.invc = vuzp1q_f64 (e0, e1);
+   e.logc = vuzp2q_f64 (e0, e1);
++#else
++  e.invc = vuzp1q_f64 (e1, e0);
++  e.logc = vuzp2q_f64 (e1, e0);
++#endif
+   return e;
+ }
+ 
+diff --git a/sysdeps/aarch64/fpu/sin_advsimd.c b/sysdeps/aarch64/fpu/sin_advsimd.c
+index efce183e86..a0d9d3b819 100644
+--- a/sysdeps/aarch64/fpu/sin_advsimd.c
++++ b/sysdeps/aarch64/fpu/sin_advsimd.c
+@@ -75,8 +75,7 @@ float64x2_t VPCS_ATTR V_NAME_D1 (sin) (float64x2_t x)
+   r = vbslq_f64 (cmp, vreinterpretq_f64_u64 (cmp), x);
+ #else
+   r = x;
+-  cmp = vcageq_f64 (d->range_val, x);
+-  cmp = vceqzq_u64 (cmp); /* cmp = ~cmp.  */
++  cmp = vcageq_f64 (x, d->range_val);
+ #endif
+ 
+   /* n = rint(|x|/pi).  */
+diff --git a/sysdeps/aarch64/fpu/sinf_advsimd.c b/sysdeps/aarch64/fpu/sinf_advsimd.c
+index 60cf3f2ca1..375dfc3331 100644
+--- a/sysdeps/aarch64/fpu/sinf_advsimd.c
++++ b/sysdeps/aarch64/fpu/sinf_advsimd.c
+@@ -67,8 +67,7 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (sin) (float32x4_t x)
+   r = vbslq_f32 (cmp, vreinterpretq_f32_u32 (cmp), x);
+ #else
+   r = x;
+-  cmp = vcageq_f32 (d->range_val, x);
+-  cmp = vceqzq_u32 (cmp); /* cmp = ~cmp.  */
++  cmp = vcageq_f32 (x, d->range_val);
+ #endif
+ 
+   /* n = rint(|x|/pi) */
+diff --git a/sysdeps/aarch64/fpu/tan_advsimd.c b/sysdeps/aarch64/fpu/tan_advsimd.c
+index d7e5ba7b1a..0459821ab2 100644
+--- a/sysdeps/aarch64/fpu/tan_advsimd.c
++++ b/sysdeps/aarch64/fpu/tan_advsimd.c
+@@ -23,7 +23,7 @@
+ static const struct data
+ {
+   float64x2_t poly[9];
+-  float64x2_t half_pi_hi, half_pi_lo, two_over_pi, shift;
++  float64x2_t half_pi, two_over_pi, shift;
+ #if !WANT_SIMD_EXCEPT
+   float64x2_t range_val;
+ #endif
+@@ -34,8 +34,7 @@ static const struct data
+ 	    V2 (0x1.226e5e5ecdfa3p-7), V2 (0x1.d6c7ddbf87047p-9),
+ 	    V2 (0x1.7ea75d05b583ep-10), V2 (0x1.289f22964a03cp-11),
+ 	    V2 (0x1.4e4fd14147622p-12) },
+-  .half_pi_hi = V2 (0x1.921fb54442d18p0),
+-  .half_pi_lo = V2 (0x1.1a62633145c07p-54),
++  .half_pi = { 0x1.921fb54442d18p0, 0x1.1a62633145c07p-54 },
+   .two_over_pi = V2 (0x1.45f306dc9c883p-1),
+   .shift = V2 (0x1.8p52),
+ #if !WANT_SIMD_EXCEPT
+@@ -56,15 +55,15 @@ special_case (float64x2_t x)
+ 
+ /* Vector approximation for double-precision tan.
+    Maximum measured error is 3.48 ULP:
+-   __v_tan(0x1.4457047ef78d8p+20) got -0x1.f6ccd8ecf7dedp+37
+-				 want -0x1.f6ccd8ecf7deap+37.   */
++   _ZGVnN2v_tan(0x1.4457047ef78d8p+20) got -0x1.f6ccd8ecf7dedp+37
++				      want -0x1.f6ccd8ecf7deap+37.  */
+ float64x2_t VPCS_ATTR V_NAME_D1 (tan) (float64x2_t x)
+ {
+   const struct data *dat = ptr_barrier (&data);
+-  /* Our argument reduction cannot calculate q with sufficient accuracy for very
+-     large inputs. Fall back to scalar routine for all lanes if any are too
+-     large, or Inf/NaN. If fenv exceptions are expected, also fall back for tiny
+-     input to avoid underflow.  */
++  /* Our argument reduction cannot calculate q with sufficient accuracy for
++     very large inputs. Fall back to scalar routine for all lanes if any are
++     too large, or Inf/NaN. If fenv exceptions are expected, also fall back for
++     tiny input to avoid underflow.  */
+ #if WANT_SIMD_EXCEPT
+   uint64x2_t iax = vreinterpretq_u64_f64 (vabsq_f64 (x));
+   /* iax - tiny_bound > range_val - tiny_bound.  */
+@@ -82,8 +81,8 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tan) (float64x2_t x)
+   /* Use q to reduce x to r in [-pi/4, pi/4], by:
+      r = x - q * pi/2, in extended precision.  */
+   float64x2_t r = x;
+-  r = vfmsq_f64 (r, q, dat->half_pi_hi);
+-  r = vfmsq_f64 (r, q, dat->half_pi_lo);
++  r = vfmsq_laneq_f64 (r, q, dat->half_pi, 0);
++  r = vfmsq_laneq_f64 (r, q, dat->half_pi, 1);
+   /* Further reduce r to [-pi/8, pi/8], to be reconstructed using double angle
+      formula.  */
+   r = vmulq_n_f64 (r, 0.5);
+@@ -106,14 +105,15 @@ float64x2_t VPCS_ATTR V_NAME_D1 (tan) (float64x2_t x)
+      and reciprocity around pi/2:
+      tan(x) = 1 / (tan(pi/2 - x))
+      to assemble result using change-of-sign and conditional selection of
+-     numerator/denominator, dependent on odd/even-ness of q (hence quadrant). */
++     numerator/denominator, dependent on odd/even-ness of q (hence quadrant).
++   */
+   float64x2_t n = vfmaq_f64 (v_f64 (-1), p, p);
+   float64x2_t d = vaddq_f64 (p, p);
+ 
+   uint64x2_t no_recip = vtstq_u64 (vreinterpretq_u64_s64 (qi), v_u64 (1));
+ 
+ #if !WANT_SIMD_EXCEPT
+-  uint64x2_t special = vceqzq_u64 (vcaleq_f64 (x, dat->range_val));
++  uint64x2_t special = vcageq_f64 (x, dat->range_val);
+   if (__glibc_unlikely (v_any_u64 (special)))
+     return special_case (x);
+ #endif
+diff --git a/sysdeps/aarch64/fpu/tanf_advsimd.c b/sysdeps/aarch64/fpu/tanf_advsimd.c
+index 1f16103f8a..5a7489390a 100644
+--- a/sysdeps/aarch64/fpu/tanf_advsimd.c
++++ b/sysdeps/aarch64/fpu/tanf_advsimd.c
+@@ -23,7 +23,8 @@
+ static const struct data
+ {
+   float32x4_t poly[6];
+-  float32x4_t neg_half_pi_1, neg_half_pi_2, neg_half_pi_3, two_over_pi, shift;
++  float32x4_t pi_consts;
++  float32x4_t shift;
+ #if !WANT_SIMD_EXCEPT
+   float32x4_t range_val;
+ #endif
+@@ -31,10 +32,9 @@ static const struct data
+   /* Coefficients generated using FPMinimax.  */
+   .poly = { V4 (0x1.55555p-2f), V4 (0x1.11166p-3f), V4 (0x1.b88a78p-5f),
+ 	    V4 (0x1.7b5756p-6f), V4 (0x1.4ef4cep-8f), V4 (0x1.0e1e74p-7f) },
+-  .neg_half_pi_1 = V4 (-0x1.921fb6p+0f),
+-  .neg_half_pi_2 = V4 (0x1.777a5cp-25f),
+-  .neg_half_pi_3 = V4 (0x1.ee59dap-50f),
+-  .two_over_pi = V4 (0x1.45f306p-1f),
++  /* Stores constants: (-pi/2)_high, (-pi/2)_mid, (-pi/2)_low, and 2/pi.  */
++  .pi_consts
++  = { -0x1.921fb6p+0f, 0x1.777a5cp-25f, 0x1.ee59dap-50f, 0x1.45f306p-1f },
+   .shift = V4 (0x1.8p+23f),
+ #if !WANT_SIMD_EXCEPT
+   .range_val = V4 (0x1p15f),
+@@ -58,10 +58,11 @@ eval_poly (float32x4_t z, const struct data *d)
+ {
+   float32x4_t z2 = vmulq_f32 (z, z);
+ #if WANT_SIMD_EXCEPT
+-  /* Tiny z (<= 0x1p-31) will underflow when calculating z^4. If fp exceptions
+-     are to be triggered correctly, sidestep this by fixing such lanes to 0.  */
++  /* Tiny z (<= 0x1p-31) will underflow when calculating z^4.
++     If fp exceptions are to be triggered correctly,
++     sidestep this by fixing such lanes to 0.  */
+   uint32x4_t will_uflow
+-    = vcleq_u32 (vreinterpretq_u32_f32 (vabsq_f32 (z)), TinyBound);
++      = vcleq_u32 (vreinterpretq_u32_f32 (vabsq_f32 (z)), TinyBound);
+   if (__glibc_unlikely (v_any_u32 (will_uflow)))
+     z2 = vbslq_f32 (will_uflow, v_f32 (0), z2);
+ #endif
+@@ -94,16 +95,16 @@ float32x4_t VPCS_ATTR NOINLINE V_NAME_F1 (tan) (float32x4_t x)
+ #endif
+ 
+   /* n = rint(x/(pi/2)).  */
+-  float32x4_t q = vfmaq_f32 (d->shift, d->two_over_pi, x);
++  float32x4_t q = vfmaq_laneq_f32 (d->shift, x, d->pi_consts, 3);
+   float32x4_t n = vsubq_f32 (q, d->shift);
+   /* Determine if x lives in an interval, where |tan(x)| grows to infinity.  */
+   uint32x4_t pred_alt = vtstq_u32 (vreinterpretq_u32_f32 (q), v_u32 (1));
+ 
+   /* r = x - n * (pi/2)  (range reduction into -pi./4 .. pi/4).  */
+   float32x4_t r;
+-  r = vfmaq_f32 (x, d->neg_half_pi_1, n);
+-  r = vfmaq_f32 (r, d->neg_half_pi_2, n);
+-  r = vfmaq_f32 (r, d->neg_half_pi_3, n);
++  r = vfmaq_laneq_f32 (x, n, d->pi_consts, 0);
++  r = vfmaq_laneq_f32 (r, n, d->pi_consts, 1);
++  r = vfmaq_laneq_f32 (r, n, d->pi_consts, 2);
+ 
+   /* If x lives in an interval, where |tan(x)|
+      - is finite, then use a polynomial approximation of the form
+
+commit 395a89f61e19fa916ae4cc93fc10d81a28ce3039
+Author: Szabolcs Nagy <szabolcs.nagy@arm.com>
+Date:   Wed Mar 13 14:34:14 2024 +0000
+
+    aarch64: fix check for SVE support in assembler
+    
+    Due to GCC bug 110901 -mcpu can override -march setting when compiling
+    asm code and thus a compiler targetting a specific cpu can fail the
+    configure check even when binutils gas supports SVE.
+    
+    The workaround is that explicit .arch directive overrides both -mcpu
+    and -march, and since that's what the actual SVE memcpy uses the
+    configure check should use that too even if the GCC issue is fixed
+    independently.
+    
+    Reviewed-by: Florian Weimer <fweimer@redhat.com>
+    (cherry picked from commit 73c26018ed0ecd9c807bb363cc2c2ab4aca66a82)
+
+diff --git a/sysdeps/aarch64/configure b/sysdeps/aarch64/configure
+old mode 100644
+new mode 100755
+index ca57edce47..9606137e8d
+--- a/sysdeps/aarch64/configure
++++ b/sysdeps/aarch64/configure
+@@ -325,9 +325,10 @@ then :
+   printf %s "(cached) " >&6
+ else $as_nop
+   cat > conftest.s <<\EOF
+-        ptrue p0.b
++	.arch armv8.2-a+sve
++	ptrue p0.b
+ EOF
+-if { ac_try='${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&5'
++if { ac_try='${CC-cc} -c conftest.s 1>&5'
+   { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5
+   (eval $ac_try) 2>&5
+   ac_status=$?
+diff --git a/sysdeps/aarch64/configure.ac b/sysdeps/aarch64/configure.ac
+index 27874eceb4..56d12d661d 100644
+--- a/sysdeps/aarch64/configure.ac
++++ b/sysdeps/aarch64/configure.ac
+@@ -90,9 +90,10 @@ LIBC_CONFIG_VAR([aarch64-variant-pcs], [$libc_cv_aarch64_variant_pcs])
+ # Check if asm support armv8.2-a+sve
+ AC_CACHE_CHECK([for SVE support in assembler], [libc_cv_aarch64_sve_asm], [dnl
+ cat > conftest.s <<\EOF
+-        ptrue p0.b
++	.arch armv8.2-a+sve
++	ptrue p0.b
+ EOF
+-if AC_TRY_COMMAND(${CC-cc} -c -march=armv8.2-a+sve conftest.s 1>&AS_MESSAGE_LOG_FD); then
++if AC_TRY_COMMAND(${CC-cc} -c conftest.s 1>&AS_MESSAGE_LOG_FD); then
+   libc_cv_aarch64_sve_asm=yes
+ else
+   libc_cv_aarch64_sve_asm=no
+
+commit 9d92452c70805a2e2dbbdb2b1ffc34bd86e1c8df
+Author: Wilco Dijkstra <wilco.dijkstra@arm.com>
+Date:   Thu Mar 21 16:48:33 2024 +0000
+
+    AArch64: Check kernel version for SVE ifuncs
+    
+    Old Linux kernels disable SVE after every system call.  Calling the
+    SVE-optimized memcpy afterwards will then cause a trap to reenable SVE.
+    As a result, applications with a high use of syscalls may run slower with
+    the SVE memcpy.  This is true for kernels between 4.15.0 and before 6.2.0,
+    except for 5.14.0 which was patched.  Avoid this by checking the kernel
+    version and selecting the SVE ifunc on modern kernels.
+    
+    Parse the kernel version reported by uname() into a 24-bit kernel.major.minor
+    value without calling any library functions.  If uname() is not supported or
+    if the version format is not recognized, assume the kernel is modern.
+    
+    Tested-by: Florian Weimer <fweimer@redhat.com>
+    Reviewed-by: Szabolcs Nagy <szabolcs.nagy@arm.com>
+    (cherry picked from commit 2e94e2f5d2bf2de124c8ad7da85463355e54ccb2)
+
+diff --git a/sysdeps/aarch64/cpu-features.h b/sysdeps/aarch64/cpu-features.h
+index 77a782422a..5f2da91ebb 100644
+--- a/sysdeps/aarch64/cpu-features.h
++++ b/sysdeps/aarch64/cpu-features.h
+@@ -71,6 +71,7 @@ struct cpu_features
+   /* Currently, the GLIBC memory tagging tunable only defines 8 bits.  */
+   uint8_t mte_state;
+   bool sve;
++  bool prefer_sve_ifuncs;
+   bool mops;
+ };
+ 
+diff --git a/sysdeps/aarch64/multiarch/init-arch.h b/sysdeps/aarch64/multiarch/init-arch.h
+index c52860efb2..61dc40088f 100644
+--- a/sysdeps/aarch64/multiarch/init-arch.h
++++ b/sysdeps/aarch64/multiarch/init-arch.h
+@@ -36,5 +36,7 @@
+     MTE_ENABLED ();							      \
+   bool __attribute__((unused)) sve =					      \
+     GLRO(dl_aarch64_cpu_features).sve;					      \
++  bool __attribute__((unused)) prefer_sve_ifuncs =			      \
++    GLRO(dl_aarch64_cpu_features).prefer_sve_ifuncs;			      \
+   bool __attribute__((unused)) mops =					      \
+     GLRO(dl_aarch64_cpu_features).mops;
+diff --git a/sysdeps/aarch64/multiarch/memcpy.c b/sysdeps/aarch64/multiarch/memcpy.c
+index d12eccfca5..ce53567dab 100644
+--- a/sysdeps/aarch64/multiarch/memcpy.c
++++ b/sysdeps/aarch64/multiarch/memcpy.c
+@@ -47,7 +47,7 @@ select_memcpy_ifunc (void)
+     {
+       if (IS_A64FX (midr))
+ 	return __memcpy_a64fx;
+-      return __memcpy_sve;
++      return prefer_sve_ifuncs ? __memcpy_sve : __memcpy_generic;
+     }
+ 
+   if (IS_THUNDERX (midr))
+diff --git a/sysdeps/aarch64/multiarch/memmove.c b/sysdeps/aarch64/multiarch/memmove.c
+index 2081eeb4d4..fe95037be3 100644
+--- a/sysdeps/aarch64/multiarch/memmove.c
++++ b/sysdeps/aarch64/multiarch/memmove.c
+@@ -47,7 +47,7 @@ select_memmove_ifunc (void)
+     {
+       if (IS_A64FX (midr))
+ 	return __memmove_a64fx;
+-      return __memmove_sve;
++      return prefer_sve_ifuncs ? __memmove_sve : __memmove_generic;
+     }
+ 
+   if (IS_THUNDERX (midr))
+diff --git a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+index b1a3f673f0..c0b047bc0d 100644
+--- a/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
++++ b/sysdeps/unix/sysv/linux/aarch64/cpu-features.c
+@@ -21,6 +21,7 @@
+ #include <sys/auxv.h>
+ #include <elf/dl-hwcaps.h>
+ #include <sys/prctl.h>
++#include <sys/utsname.h>
+ #include <dl-tunables-parse.h>
+ 
+ #define DCZID_DZP_MASK (1 << 4)
+@@ -62,6 +63,46 @@ get_midr_from_mcpu (const struct tunable_str_t *mcpu)
+   return UINT64_MAX;
+ }
+ 
++#if __LINUX_KERNEL_VERSION < 0x060200
++
++/* Return true if we prefer using SVE in string ifuncs.  Old kernels disable
++   SVE after every system call which results in unnecessary traps if memcpy
++   uses SVE.  This is true for kernels between 4.15.0 and before 6.2.0, except
++   for 5.14.0 which was patched.  For these versions return false to avoid using
++   SVE ifuncs.
++   Parse the kernel version into a 24-bit kernel.major.minor value without
++   calling any library functions.  If uname() is not supported or if the version
++   format is not recognized, assume the kernel is modern and return true.  */
++
++static inline bool
++prefer_sve_ifuncs (void)
++{
++  struct utsname buf;
++  const char *p = &buf.release[0];
++  int kernel = 0;
++  int val;
++
++  if (__uname (&buf) < 0)
++    return true;
++
++  for (int shift = 16; shift >= 0; shift -= 8)
++    {
++      for (val = 0; *p >= '0' && *p <= '9'; p++)
++	val = val * 10 + *p - '0';
++      kernel |= (val & 255) << shift;
++      if (*p++ != '.')
++	break;
++    }
++
++  if (kernel >= 0x060200 || kernel == 0x050e00)
++    return true;
++  if (kernel >= 0x040f00)
++    return false;
++  return true;
++}
++
++#endif
++
+ static inline void
+ init_cpu_features (struct cpu_features *cpu_features)
+ {
+@@ -126,6 +167,13 @@ init_cpu_features (struct cpu_features *cpu_features)
+   /* Check if SVE is supported.  */
+   cpu_features->sve = GLRO (dl_hwcap) & HWCAP_SVE;
+ 
++  cpu_features->prefer_sve_ifuncs = cpu_features->sve;
++
++#if __LINUX_KERNEL_VERSION < 0x060200
++  if (cpu_features->sve)
++    cpu_features->prefer_sve_ifuncs = prefer_sve_ifuncs ();
++#endif
++
+   /* Check if MOPS is supported.  */
+   cpu_features->mops = GLRO (dl_hwcap2) & HWCAP2_MOPS;
+ }
+
+commit 9883f4304cfb1558d0f1e6d9f48c4ab0a35355fe
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Wed Feb 28 09:51:14 2024 -0800
+
+    x86-64: Don't use SSE resolvers for ISA level 3 or above
+    
+    When glibc is built with ISA level 3 or above enabled, SSE resolvers
+    aren't available and glibc fails to build:
+    
+    ld: .../elf/librtld.os: in function `init_cpu_features':
+    .../elf/../sysdeps/x86/cpu-features.c:1200:(.text+0x1445f): undefined reference to `_dl_runtime_resolve_fxsave'
+    ld: .../elf/librtld.os: relocation R_X86_64_PC32 against undefined hidden symbol `_dl_runtime_resolve_fxsave' can not be used when making a shared object
+    /usr/local/bin/ld: final link failed: bad value
+    
+    For ISA level 3 or above, don't use _dl_runtime_resolve_fxsave nor
+    _dl_tlsdesc_dynamic_fxsave.
+    
+    This fixes BZ #31429.
+    Reviewed-by: Noah Goldstein <goldstein.w.n@gmail.com>
+    
+    (cherry picked from commit befe2d3c4dec8be2cdd01a47132e47bdb7020922)
+
+diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
+index 6fe1b728c6..b8abe733ab 100644
+--- a/sysdeps/x86/cpu-features.c
++++ b/sysdeps/x86/cpu-features.c
+@@ -18,6 +18,7 @@
+ 
+ #include <dl-hwcap.h>
+ #include <libc-pointer-arith.h>
++#include <isa-level.h>
+ #include <get-isa-level.h>
+ #include <cacheinfo.h>
+ #include <dl-cacheinfo.h>
+@@ -1198,7 +1199,9 @@ no_cpuid:
+ 	       TUNABLE_CALLBACK (set_x86_shstk));
+ #endif
+ 
++#if MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
+   if (GLRO(dl_x86_cpu_features).xsave_state_size != 0)
++#endif
+     {
+       if (CPU_FEATURE_USABLE_P (cpu_features, XSAVEC))
+ 	{
+@@ -1219,22 +1222,24 @@ no_cpuid:
+ #endif
+ 	}
+     }
++#if MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
+   else
+     {
+-#ifdef __x86_64__
++# ifdef __x86_64__
+       GLRO(dl_x86_64_runtime_resolve) = _dl_runtime_resolve_fxsave;
+-# ifdef SHARED
++#  ifdef SHARED
+       GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fxsave;
+-# endif
+-#else
+-# ifdef SHARED
++#  endif
++# else
++#  ifdef SHARED
+       if (CPU_FEATURE_USABLE_P (cpu_features, FXSR))
+ 	GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fxsave;
+       else
+ 	GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fnsave;
++#  endif
+ # endif
+-#endif
+     }
++#endif
+ 
+ #ifdef SHARED
+ # ifdef __x86_64__
+diff --git a/sysdeps/x86_64/dl-tlsdesc.S b/sysdeps/x86_64/dl-tlsdesc.S
+index ea69f5223a..057a10862a 100644
+--- a/sysdeps/x86_64/dl-tlsdesc.S
++++ b/sysdeps/x86_64/dl-tlsdesc.S
+@@ -20,6 +20,7 @@
+ #include <tls.h>
+ #include <cpu-features-offsets.h>
+ #include <features-offsets.h>
++#include <isa-level.h>
+ #include "tlsdesc.h"
+ #include "dl-trampoline-save.h"
+ 
+@@ -79,12 +80,14 @@ _dl_tlsdesc_undefweak:
+ 	.size	_dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak
+ 
+ #ifdef SHARED
+-# define USE_FXSAVE
+-# define STATE_SAVE_ALIGNMENT	16
+-# define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_fxsave
+-# include "dl-tlsdesc-dynamic.h"
+-# undef _dl_tlsdesc_dynamic
+-# undef USE_FXSAVE
++# if MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
++#  define USE_FXSAVE
++#  define STATE_SAVE_ALIGNMENT	16
++#  define _dl_tlsdesc_dynamic	_dl_tlsdesc_dynamic_fxsave
++#  include "dl-tlsdesc-dynamic.h"
++#  undef _dl_tlsdesc_dynamic
++#  undef USE_FXSAVE
++# endif
+ 
+ # define USE_XSAVE
+ # define STATE_SAVE_ALIGNMENT	64
+
+commit 7b92f46f04c6cbce19d19ae1099628431858996c
+Author: Sunil K Pandey <skpgkp2@gmail.com>
+Date:   Thu Feb 29 17:57:02 2024 -0800
+
+    x86-64: Simplify minimum ISA check ifdef conditional with if
+    
+    Replace minimum ISA check ifdef conditional with if.  Since
+    MINIMUM_X86_ISA_LEVEL and AVX_X86_ISA_LEVEL are compile time constants,
+    compiler will perform constant folding optimization, getting same
+    results.
+    
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    (cherry picked from commit b6e3898194bbae78910bbe9cd086937014961e45)
+
+diff --git a/sysdeps/x86/cpu-features.c b/sysdeps/x86/cpu-features.c
+index b8abe733ab..3d7c2819d7 100644
+--- a/sysdeps/x86/cpu-features.c
++++ b/sysdeps/x86/cpu-features.c
+@@ -1199,9 +1199,8 @@ no_cpuid:
+ 	       TUNABLE_CALLBACK (set_x86_shstk));
+ #endif
+ 
+-#if MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
+-  if (GLRO(dl_x86_cpu_features).xsave_state_size != 0)
+-#endif
++  if (MINIMUM_X86_ISA_LEVEL >= AVX_X86_ISA_LEVEL
++      || (GLRO(dl_x86_cpu_features).xsave_state_size != 0))
+     {
+       if (CPU_FEATURE_USABLE_P (cpu_features, XSAVEC))
+ 	{
+@@ -1222,24 +1221,22 @@ no_cpuid:
+ #endif
+ 	}
+     }
+-#if MINIMUM_X86_ISA_LEVEL < AVX_X86_ISA_LEVEL
+   else
+     {
+-# ifdef __x86_64__
++#ifdef __x86_64__
+       GLRO(dl_x86_64_runtime_resolve) = _dl_runtime_resolve_fxsave;
+-#  ifdef SHARED
++# ifdef SHARED
+       GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fxsave;
+-#  endif
+-# else
+-#  ifdef SHARED
++# endif
++#else
++# ifdef SHARED
+       if (CPU_FEATURE_USABLE_P (cpu_features, FXSR))
+ 	GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fxsave;
+       else
+ 	GLRO(dl_x86_tlsdesc_dynamic) = _dl_tlsdesc_dynamic_fnsave;
+-#  endif
+ # endif
+-    }
+ #endif
++    }
+ 
+ #ifdef SHARED
+ # ifdef __x86_64__
+
+commit edb9a76e3008725e9dc035d38a58e849a3bde0f1
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Sun Apr 14 08:24:51 2024 +0200
+
+    powerpc: Fix ld.so address determination for PCREL mode (bug 31640)
+    
+    This seems to have stopped working with some GCC 14 versions,
+    which clobber r2.  With other compilers, the kernel-provided
+    r2 value is still available at this point.
+    
+    Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
+    (cherry picked from commit 14e56bd4ce15ac2d1cc43f762eb2e6b83fec1afe)
+
+diff --git a/sysdeps/powerpc/powerpc64/dl-machine.h b/sysdeps/powerpc/powerpc64/dl-machine.h
+index c6682f3445..2b6f5d2b08 100644
+--- a/sysdeps/powerpc/powerpc64/dl-machine.h
++++ b/sysdeps/powerpc/powerpc64/dl-machine.h
+@@ -78,6 +78,7 @@ elf_host_tolerates_class (const Elf64_Ehdr *ehdr)
+ static inline Elf64_Addr
+ elf_machine_load_address (void) __attribute__ ((const));
+ 
++#ifndef __PCREL__
+ static inline Elf64_Addr
+ elf_machine_load_address (void)
+ {
+@@ -105,6 +106,24 @@ elf_machine_dynamic (void)
+   /* Then subtract off the load address offset.  */
+   return runtime_dynamic - elf_machine_load_address() ;
+ }
++#else /* __PCREL__ */
++/* In PCREL mode, r2 may have been clobbered.  Rely on relative
++   relocations instead.  */
++
++static inline ElfW(Addr)
++elf_machine_load_address (void)
++{
++  extern const ElfW(Ehdr) __ehdr_start attribute_hidden;
++  return (ElfW(Addr)) &__ehdr_start;
++}
++
++static inline ElfW(Addr)
++elf_machine_dynamic (void)
++{
++  extern ElfW(Dyn) _DYNAMIC[] attribute_hidden;
++  return (ElfW(Addr)) _DYNAMIC - elf_machine_load_address ();
++}
++#endif /* __PCREL__ */
+ 
+ /* The PLT uses Elf64_Rela relocs.  */
+ #define elf_machine_relplt elf_machine_rela
+
+commit 04df8652eb1919da18d54b3dcd6db1675993d45d
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Thu Feb 15 11:19:56 2024 -0800
+
+    Apply the Makefile sorting fix
+    
+    Apply the Makefile sorting fix generated by sort-makefile-lines.py.
+    
+    (cherry picked from commit ef7f4b1fef67430a8f3cfc77fa6aada2add851d7)
+
+diff --git a/sysdeps/loongarch/lp64/multiarch/Makefile b/sysdeps/loongarch/lp64/multiarch/Makefile
+index fe863e1ba4..01762ef526 100644
+--- a/sysdeps/loongarch/lp64/multiarch/Makefile
++++ b/sysdeps/loongarch/lp64/multiarch/Makefile
+@@ -1,52 +1,52 @@
+ ifeq ($(subdir),string)
+ sysdep_routines += \
+-  strlen-aligned \
+-  strlen-lsx \
+-  strlen-lasx \
+-  strnlen-aligned \
+-  strnlen-lsx \
+-  strnlen-lasx \
++  memchr-aligned \
++  memchr-lasx \
++  memchr-lsx \
++  memcmp-aligned \
++  memcmp-lasx \
++  memcmp-lsx \
++  memcpy-aligned \
++  memcpy-unaligned \
++  memmove-lasx \
++  memmove-lsx \
++  memmove-unaligned \
++  memrchr-generic \
++  memrchr-lasx \
++  memrchr-lsx \
++  memset-aligned \
++  memset-lasx \
++  memset-lsx \
++  memset-unaligned \
++  rawmemchr-aligned \
++  rawmemchr-lasx \
++  rawmemchr-lsx \
++  stpcpy-aligned \
++  stpcpy-lasx \
++  stpcpy-lsx \
++  stpcpy-unaligned \
+   strchr-aligned \
+-  strchr-lsx \
+   strchr-lasx \
+-  strrchr-aligned \
+-  strrchr-lsx \
+-  strrchr-lasx \
++  strchr-lsx \
+   strchrnul-aligned \
+-  strchrnul-lsx \
+   strchrnul-lasx \
++  strchrnul-lsx \
+   strcmp-aligned \
+   strcmp-lsx \
+-  strncmp-aligned \
+-  strncmp-lsx \
+   strcpy-aligned \
+-  strcpy-unaligned \
+-  strcpy-lsx \
+   strcpy-lasx \
+-  stpcpy-aligned \
+-  stpcpy-unaligned \
+-  stpcpy-lsx \
+-  stpcpy-lasx \
+-  memcpy-aligned \
+-  memcpy-unaligned \
+-  memmove-unaligned \
+-  memmove-lsx \
+-  memmove-lasx \
+-  rawmemchr-aligned \
+-  rawmemchr-lsx \
+-  rawmemchr-lasx \
+-  memchr-aligned \
+-  memchr-lsx \
+-  memchr-lasx \
+-  memrchr-generic \
+-  memrchr-lsx \
+-  memrchr-lasx \
+-  memset-aligned \
+-  memset-unaligned \
+-  memset-lsx \
+-  memset-lasx \
+-  memcmp-aligned \
+-  memcmp-lsx \
+-  memcmp-lasx \
++  strcpy-lsx \
++  strcpy-unaligned \
++  strlen-aligned \
++  strlen-lasx \
++  strlen-lsx \
++  strncmp-aligned \
++  strncmp-lsx \
++  strnlen-aligned \
++  strnlen-lasx \
++  strnlen-lsx \
++  strrchr-aligned \
++  strrchr-lasx \
++  strrchr-lsx \
+ # sysdep_routines
+ endif
+diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile
+index 992aabe43e..5311b594af 100644
+--- a/sysdeps/x86/Makefile
++++ b/sysdeps/x86/Makefile
+@@ -15,18 +15,18 @@ CFLAGS-dl-get-cpu-features.os += $(rtld-early-cflags)
+ CFLAGS-get-cpuid-feature-leaf.o += $(no-stack-protector)
+ 
+ tests += \
+-  tst-get-cpu-features \
+-  tst-get-cpu-features-static \
+   tst-cpu-features-cpuinfo \
+   tst-cpu-features-cpuinfo-static \
+   tst-cpu-features-supports \
+   tst-cpu-features-supports-static \
++  tst-get-cpu-features \
++  tst-get-cpu-features-static \
+   tst-hwcap-tunables \
+ # tests
+ tests-static += \
+-  tst-get-cpu-features-static \
+   tst-cpu-features-cpuinfo-static \
+   tst-cpu-features-supports-static \
++  tst-get-cpu-features-static \
+ # tests-static
+ ifeq (yes,$(have-ifunc))
+ ifeq (yes,$(have-gcc-ifunc))
+diff --git a/sysdeps/x86_64/Makefile b/sysdeps/x86_64/Makefile
+index 9d374a3299..0ede447405 100644
+--- a/sysdeps/x86_64/Makefile
++++ b/sysdeps/x86_64/Makefile
+@@ -252,6 +252,10 @@ sysdep-dl-routines += dl-cet
+ 
+ tests += \
+   tst-cet-legacy-1 \
++  tst-cet-legacy-10 \
++  tst-cet-legacy-10-static \
++  tst-cet-legacy-10a \
++  tst-cet-legacy-10a-static \
+   tst-cet-legacy-1a \
+   tst-cet-legacy-2 \
+   tst-cet-legacy-2a \
+@@ -263,15 +267,11 @@ tests += \
+   tst-cet-legacy-8 \
+   tst-cet-legacy-9 \
+   tst-cet-legacy-9-static \
+-  tst-cet-legacy-10 \
+-  tst-cet-legacy-10-static \
+-  tst-cet-legacy-10a \
+-  tst-cet-legacy-10a-static \
+ # tests
+ tests-static += \
+-  tst-cet-legacy-9-static \
+   tst-cet-legacy-10-static \
+   tst-cet-legacy-10a-static \
++  tst-cet-legacy-9-static \
+ # tests-static
+ tst-cet-legacy-1a-ARGS = -- $(host-test-program-cmd)
+ 
+diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
+index ea81753b70..e1a490dd98 100644
+--- a/sysdeps/x86_64/fpu/multiarch/Makefile
++++ b/sysdeps/x86_64/fpu/multiarch/Makefile
+@@ -4,10 +4,10 @@ libm-sysdep_routines += \
+   s_ceilf-c \
+   s_floor-c \
+   s_floorf-c \
+-  s_rint-c \
+-  s_rintf-c \
+   s_nearbyint-c \
+   s_nearbyintf-c \
++  s_rint-c \
++  s_rintf-c \
+   s_roundeven-c \
+   s_roundevenf-c \
+   s_trunc-c \
+@@ -21,10 +21,10 @@ libm-sysdep_routines += \
+   s_floorf-sse4_1 \
+   s_nearbyint-sse4_1 \
+   s_nearbyintf-sse4_1 \
+-  s_roundeven-sse4_1 \
+-  s_roundevenf-sse4_1 \
+   s_rint-sse4_1 \
+   s_rintf-sse4_1 \
++  s_roundeven-sse4_1 \
++  s_roundevenf-sse4_1 \
+   s_trunc-sse4_1 \
+   s_truncf-sse4_1 \
+ # libm-sysdep_routines
+@@ -84,12 +84,12 @@ CFLAGS-s_cosf-fma.c = -mfma -mavx2
+ CFLAGS-s_sincosf-fma.c = -mfma -mavx2
+ 
+ libm-sysdep_routines += \
++  e_asin-fma4 \
++  e_atan2-fma4 \
+   e_exp-fma4 \
+   e_log-fma4 \
+   e_pow-fma4 \
+-  e_asin-fma4 \
+   s_atan-fma4 \
+-  e_atan2-fma4 \
+   s_sin-fma4 \
+   s_sincos-fma4 \
+   s_tan-fma4 \
+@@ -106,10 +106,10 @@ CFLAGS-s_tan-fma4.c = -mfma4
+ CFLAGS-s_sincos-fma4.c = -mfma4
+ 
+ libm-sysdep_routines += \
++  e_atan2-avx \
+   e_exp-avx \
+   e_log-avx \
+   s_atan-avx \
+-  e_atan2-avx \
+   s_sin-avx \
+   s_sincos-avx \
+   s_tan-avx \
+diff --git a/sysdeps/x86_64/multiarch/Makefile b/sysdeps/x86_64/multiarch/Makefile
+index e1e894c963..d3d2270394 100644
+--- a/sysdeps/x86_64/multiarch/Makefile
++++ b/sysdeps/x86_64/multiarch/Makefile
+@@ -4,8 +4,8 @@ sysdep_routines += \
+   memchr-avx2 \
+   memchr-avx2-rtm \
+   memchr-evex \
+-  memchr-evex512 \
+   memchr-evex-rtm \
++  memchr-evex512 \
+   memchr-sse2 \
+   memcmp-avx2-movbe \
+   memcmp-avx2-movbe-rtm \
+@@ -37,8 +37,8 @@ sysdep_routines += \
+   rawmemchr-avx2 \
+   rawmemchr-avx2-rtm \
+   rawmemchr-evex \
+-  rawmemchr-evex512 \
+   rawmemchr-evex-rtm \
++  rawmemchr-evex512 \
+   rawmemchr-sse2 \
+   stpcpy-avx2 \
+   stpcpy-avx2-rtm \
+
+commit 423099a03264ea28298f47355d7811b8efe03c97
+Author: Sunil K Pandey <skpgkp2@gmail.com>
+Date:   Tue Feb 13 12:23:14 2024 -0800
+
+    x86_64: Exclude SSE, AVX and FMA4 variants in libm multiarch
+    
+    When glibc is built with ISA level 3 or higher by default, the resulting
+    glibc binaries won't run on SSE or FMA4 processors.  Exclude SSE, AVX and
+    FMA4 variants in libm multiarch when ISA level 3 or higher is enabled by
+    default.
+    
+    When glibc is built with ISA level 2 enabled by default, only keep SSE4.1
+    variant.
+    
+    Fixes BZ 31335.
+    
+    NB: elf/tst-valgrind-smoke test fails with ISA level 4, because valgrind
+    doesn't support AVX512 instructions:
+    
+    https://bugs.kde.org/show_bug.cgi?id=383010
+    
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    (cherry picked from commit 9f78a7c1d0963282608da836b840f0d5ae1c478e)
+
+diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure
+index 1f4c2d67fd..2a5421bb31 100644
+--- a/sysdeps/x86/configure
++++ b/sysdeps/x86/configure
+@@ -98,6 +98,7 @@ printf "%s\n" "$libc_cv_have_x86_lahf_sahf" >&6; }
+   if test $libc_cv_have_x86_lahf_sahf = yes; then
+     printf "%s\n" "#define HAVE_X86_LAHF_SAHF 1" >>confdefs.h
+ 
++    ISAFLAG="-DHAVE_X86_LAHF_SAHF"
+   fi
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MOVBE instruction support" >&5
+ printf %s "checking for MOVBE instruction support... " >&6; }
+@@ -120,9 +121,41 @@ printf "%s\n" "$libc_cv_have_x86_movbe" >&6; }
+   if test $libc_cv_have_x86_movbe = yes; then
+     printf "%s\n" "#define HAVE_X86_MOVBE 1" >>confdefs.h
+ 
++    ISAFLAG="$ISAFLAG -DHAVE_X86_MOVBE"
+   fi
++
++  # Check for ISA level support.
++  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ISA level support" >&5
++printf %s "checking for ISA level support... " >&6; }
++if test ${libc_cv_have_x86_isa_level+y}
++then :
++  printf %s "(cached) " >&6
++else $as_nop
++  cat > conftest.c <<EOF
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL >= 4
++libc_cv_have_x86_isa_level=4
++#elif MINIMUM_X86_ISA_LEVEL == 3
++libc_cv_have_x86_isa_level=3
++#elif MINIMUM_X86_ISA_LEVEL == 2
++libc_cv_have_x86_isa_level=2
++#else
++libc_cv_have_x86_isa_level=baseline
++#endif
++EOF
++		 eval `${CC-cc} $CFLAGS $CPPFLAGS $ISAFLAG -I$srcdir -E conftest.c | grep libc_cv_have_x86_isa_level`
++		 rm -rf conftest*
++fi
++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $libc_cv_have_x86_isa_level" >&5
++printf "%s\n" "$libc_cv_have_x86_isa_level" >&6; }
++else
++  libc_cv_have_x86_isa_level=baseline
+ fi
+ config_vars="$config_vars
++have-x86-isa-level = $libc_cv_have_x86_isa_level"
++config_vars="$config_vars
++x86-isa-level-3-or-above = 3 4"
++config_vars="$config_vars
+ enable-x86-isa-level = $libc_cv_include_x86_isa_level"
+ 
+ printf "%s\n" "#define SUPPORT_STATIC_PIE 1" >>confdefs.h
+diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac
+index 437a50623b..78ff7c8f41 100644
+--- a/sysdeps/x86/configure.ac
++++ b/sysdeps/x86/configure.ac
+@@ -72,6 +72,7 @@ if test $libc_cv_include_x86_isa_level = yes; then
+     fi])
+   if test $libc_cv_have_x86_lahf_sahf = yes; then
+     AC_DEFINE(HAVE_X86_LAHF_SAHF)
++    ISAFLAG="-DHAVE_X86_LAHF_SAHF"
+   fi
+   AC_CACHE_CHECK([for MOVBE instruction support],
+ 		 libc_cv_have_x86_movbe, [dnl
+@@ -81,8 +82,31 @@ if test $libc_cv_include_x86_isa_level = yes; then
+     fi])
+   if test $libc_cv_have_x86_movbe = yes; then
+     AC_DEFINE(HAVE_X86_MOVBE)
++    ISAFLAG="$ISAFLAG -DHAVE_X86_MOVBE"
+   fi
++
++  # Check for ISA level support.
++  AC_CACHE_CHECK([for ISA level support],
++		 libc_cv_have_x86_isa_level, [dnl
++cat > conftest.c <<EOF
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL >= 4
++libc_cv_have_x86_isa_level=4
++#elif MINIMUM_X86_ISA_LEVEL == 3
++libc_cv_have_x86_isa_level=3
++#elif MINIMUM_X86_ISA_LEVEL == 2
++libc_cv_have_x86_isa_level=2
++#else
++libc_cv_have_x86_isa_level=baseline
++#endif
++EOF
++		 eval `${CC-cc} $CFLAGS $CPPFLAGS $ISAFLAG -I$srcdir -E conftest.c | grep libc_cv_have_x86_isa_level`
++		 rm -rf conftest*])
++else
++  libc_cv_have_x86_isa_level=baseline
+ fi
++LIBC_CONFIG_VAR([have-x86-isa-level], [$libc_cv_have_x86_isa_level])
++LIBC_CONFIG_VAR([x86-isa-level-3-or-above], [3 4])
+ LIBC_CONFIG_VAR([enable-x86-isa-level], [$libc_cv_include_x86_isa_level])
+ 
+ dnl Static PIE is supported.
+diff --git a/sysdeps/x86_64/fpu/multiarch/Makefile b/sysdeps/x86_64/fpu/multiarch/Makefile
+index e1a490dd98..6ddd50240c 100644
+--- a/sysdeps/x86_64/fpu/multiarch/Makefile
++++ b/sysdeps/x86_64/fpu/multiarch/Makefile
+@@ -1,49 +1,4 @@
+ ifeq ($(subdir),math)
+-libm-sysdep_routines += \
+-  s_ceil-c \
+-  s_ceilf-c \
+-  s_floor-c \
+-  s_floorf-c \
+-  s_nearbyint-c \
+-  s_nearbyintf-c \
+-  s_rint-c \
+-  s_rintf-c \
+-  s_roundeven-c \
+-  s_roundevenf-c \
+-  s_trunc-c \
+-  s_truncf-c \
+-# libm-sysdep_routines
+-
+-libm-sysdep_routines += \
+-  s_ceil-sse4_1 \
+-  s_ceilf-sse4_1 \
+-  s_floor-sse4_1 \
+-  s_floorf-sse4_1 \
+-  s_nearbyint-sse4_1 \
+-  s_nearbyintf-sse4_1 \
+-  s_rint-sse4_1 \
+-  s_rintf-sse4_1 \
+-  s_roundeven-sse4_1 \
+-  s_roundevenf-sse4_1 \
+-  s_trunc-sse4_1 \
+-  s_truncf-sse4_1 \
+-# libm-sysdep_routines
+-
+-libm-sysdep_routines += \
+-  e_asin-fma \
+-  e_atan2-fma \
+-  e_exp-fma \
+-  e_log-fma \
+-  e_log2-fma \
+-  e_pow-fma \
+-  s_atan-fma \
+-  s_expm1-fma \
+-  s_log1p-fma \
+-  s_sin-fma \
+-  s_sincos-fma \
+-  s_tan-fma \
+-# libm-sysdep_routines
+-
+ CFLAGS-e_asin-fma.c = -mfma -mavx2
+ CFLAGS-e_atan2-fma.c = -mfma -mavx2
+ CFLAGS-e_exp-fma.c = -mfma -mavx2
+@@ -57,23 +12,6 @@ CFLAGS-s_sin-fma.c = -mfma -mavx2
+ CFLAGS-s_tan-fma.c = -mfma -mavx2
+ CFLAGS-s_sincos-fma.c = -mfma -mavx2
+ 
+-libm-sysdep_routines += \
+-  s_cosf-sse2 \
+-  s_sincosf-sse2 \
+-  s_sinf-sse2 \
+-# libm-sysdep_routines
+-
+-libm-sysdep_routines += \
+-  e_exp2f-fma \
+-  e_expf-fma \
+-  e_log2f-fma \
+-  e_logf-fma \
+-  e_powf-fma \
+-  s_cosf-fma \
+-  s_sincosf-fma \
+-  s_sinf-fma \
+-# libm-sysdep_routines
+-
+ CFLAGS-e_exp2f-fma.c = -mfma -mavx2
+ CFLAGS-e_expf-fma.c = -mfma -mavx2
+ CFLAGS-e_log2f-fma.c = -mfma -mavx2
+@@ -83,17 +21,93 @@ CFLAGS-s_sinf-fma.c = -mfma -mavx2
+ CFLAGS-s_cosf-fma.c = -mfma -mavx2
+ CFLAGS-s_sincosf-fma.c = -mfma -mavx2
+ 
++# Check if ISA level is 3 or above.
++ifneq (,$(filter $(have-x86-isa-level),$(x86-isa-level-3-or-above)))
+ libm-sysdep_routines += \
++  s_ceil-avx \
++  s_ceilf-avx \
++  s_floor-avx \
++  s_floorf-avx \
++  s_nearbyint-avx \
++  s_nearbyintf-avx \
++  s_rint-avx \
++  s_rintf-avx \
++  s_roundeven-avx \
++  s_roundevenf-avx \
++  s_trunc-avx \
++  s_truncf-avx \
++# libm-sysdep_routines
++else
++libm-sysdep_routines += \
++  e_asin-fma \
+   e_asin-fma4 \
++  e_atan2-avx \
++  e_atan2-fma \
+   e_atan2-fma4 \
++  e_exp-avx \
++  e_exp-fma \
+   e_exp-fma4 \
++  e_exp2f-fma \
++  e_expf-fma \
++  e_log-avx \
++  e_log-fma \
+   e_log-fma4 \
++  e_log2-fma \
++  e_log2f-fma \
++  e_logf-fma \
++  e_pow-fma \
+   e_pow-fma4 \
++  e_powf-fma \
++  s_atan-avx \
++  s_atan-fma \
+   s_atan-fma4 \
++  s_ceil-sse4_1 \
++  s_ceilf-sse4_1 \
++  s_cosf-fma \
++  s_cosf-sse2 \
++  s_expm1-fma \
++  s_floor-sse4_1 \
++  s_floorf-sse4_1 \
++  s_log1p-fma \
++  s_nearbyint-sse4_1 \
++  s_nearbyintf-sse4_1 \
++  s_rint-sse4_1 \
++  s_rintf-sse4_1 \
++  s_roundeven-sse4_1 \
++  s_roundevenf-sse4_1 \
++  s_sin-avx \
++  s_sin-fma \
+   s_sin-fma4 \
++  s_sincos-avx \
++  s_sincos-fma \
+   s_sincos-fma4 \
++  s_sincosf-fma \
++  s_sincosf-sse2 \
++  s_sinf-fma \
++  s_sinf-sse2 \
++  s_tan-avx \
++  s_tan-fma \
+   s_tan-fma4 \
++  s_trunc-sse4_1 \
++  s_truncf-sse4_1 \
+ # libm-sysdep_routines
++ifeq ($(have-x86-isa-level),baseline)
++libm-sysdep_routines += \
++  s_ceil-c \
++  s_ceilf-c \
++  s_floor-c \
++  s_floorf-c \
++  s_nearbyint-c \
++  s_nearbyintf-c \
++  s_rint-c \
++  s_rintf-c \
++  s_roundeven-c \
++  s_roundevenf-c \
++  s_trunc-c \
++  s_truncf-c \
++# libm-sysdep_routines
++endif
++endif
+ 
+ CFLAGS-e_asin-fma4.c = -mfma4
+ CFLAGS-e_atan2-fma4.c = -mfma4
+@@ -105,16 +119,6 @@ CFLAGS-s_sin-fma4.c = -mfma4
+ CFLAGS-s_tan-fma4.c = -mfma4
+ CFLAGS-s_sincos-fma4.c = -mfma4
+ 
+-libm-sysdep_routines += \
+-  e_atan2-avx \
+-  e_exp-avx \
+-  e_log-avx \
+-  s_atan-avx \
+-  s_sin-avx \
+-  s_sincos-avx \
+-  s_tan-avx \
+-# libm-sysdep_routines
+-
+ CFLAGS-e_atan2-avx.c = -msse2avx -DSSE2AVX
+ CFLAGS-e_exp-avx.c = -msse2avx -DSSE2AVX
+ CFLAGS-e_log-avx.c = -msse2avx -DSSE2AVX
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_asin.c b/sysdeps/x86_64/fpu/multiarch/e_asin.c
+index 2eaa6c2c04..d64fca2586 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_asin.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_asin.c
+@@ -16,26 +16,29 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-finite.h>
+ 
+ extern double __redirect_ieee754_asin (double);
+ extern double __redirect_ieee754_acos (double);
+ 
+-#define SYMBOL_NAME ieee754_asin
+-#include "ifunc-fma4.h"
++# define SYMBOL_NAME ieee754_asin
++# include "ifunc-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_ieee754_asin, __ieee754_asin,
+ 		       IFUNC_SELECTOR ());
+ libm_alias_finite (__ieee754_asin, __asin)
+ 
+-#undef SYMBOL_NAME
+-#define SYMBOL_NAME ieee754_acos
+-#include "ifunc-fma4.h"
++# undef SYMBOL_NAME
++# define SYMBOL_NAME ieee754_acos
++# include "ifunc-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_ieee754_acos, __ieee754_acos,
+ 		       IFUNC_SELECTOR ());
+ libm_alias_finite (__ieee754_acos, __acos)
+ 
+-#define __ieee754_acos __ieee754_acos_sse2
+-#define __ieee754_asin __ieee754_asin_sse2
++# define __ieee754_acos __ieee754_acos_sse2
++# define __ieee754_asin __ieee754_asin_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/e_asin.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_atan2.c b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+index 17ee4f3c36..8a86c14ded 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_atan2.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_atan2.c
+@@ -16,16 +16,19 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-finite.h>
+ 
+ extern double __redirect_ieee754_atan2 (double, double);
+ 
+-#define SYMBOL_NAME ieee754_atan2
+-#include "ifunc-avx-fma4.h"
++# define SYMBOL_NAME ieee754_atan2
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_ieee754_atan2,
+ 		       __ieee754_atan2, IFUNC_SELECTOR ());
+ libm_alias_finite (__ieee754_atan2, __atan2)
+ 
+-#define __ieee754_atan2 __ieee754_atan2_sse2
++# define __ieee754_atan2 __ieee754_atan2_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/e_atan2.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp.c b/sysdeps/x86_64/fpu/multiarch/e_exp.c
+index 406b7ebd44..d56329291a 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_exp.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_exp.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <math.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <math.h>
++# include <libm-alias-finite.h>
+ 
+ extern double __redirect_ieee754_exp (double);
+ 
+-#define SYMBOL_NAME ieee754_exp
+-#include "ifunc-avx-fma4.h"
++# define SYMBOL_NAME ieee754_exp
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_ieee754_exp, __ieee754_exp,
+ 		       IFUNC_SELECTOR ());
+ libm_alias_finite (__ieee754_exp, __exp)
+ 
+-#define __exp __ieee754_exp_sse2
++# define __exp __ieee754_exp_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/e_exp.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
+index 804fd6be85..06fe5028d6 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_exp2f.c
+@@ -16,25 +16,28 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# include <libm-alias-finite.h>
+ 
+ extern float __redirect_exp2f (float);
+ 
+-#define SYMBOL_NAME exp2f
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME exp2f
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_exp2f, __exp2f, IFUNC_SELECTOR ());
+ 
+-#ifdef SHARED
++# ifdef SHARED
+ versioned_symbol (libm, __ieee754_exp2f, exp2f, GLIBC_2_27);
+ libm_alias_float_other (__exp2, exp2)
+-#else
++# else
+ libm_alias_float (__exp2, exp2)
+-#endif
++# endif
+ 
+ strong_alias (__exp2f, __ieee754_exp2f)
+ libm_alias_finite (__exp2f, __exp2f)
+ 
+-#define __exp2f __exp2f_sse2
++# define __exp2f __exp2f_sse2
++#endif
+ #include <sysdeps/ieee754/flt-32/e_exp2f.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_expf.c b/sysdeps/x86_64/fpu/multiarch/e_expf.c
+index 4a7e2a5bce..19d767f636 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_expf.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_expf.c
+@@ -16,28 +16,31 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# include <libm-alias-finite.h>
+ 
+ extern float __redirect_expf (float);
+ 
+-#define SYMBOL_NAME expf
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME expf
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_expf, __expf, IFUNC_SELECTOR ());
+ 
+-#ifdef SHARED
++# ifdef SHARED
+ __hidden_ver1 (__expf, __GI___expf, __redirect_expf)
+   __attribute__ ((visibility ("hidden")));
+ 
+ versioned_symbol (libm, __ieee754_expf, expf, GLIBC_2_27);
+ libm_alias_float_other (__exp, exp)
+-#else
++# else
+ libm_alias_float (__exp, exp)
+-#endif
++# endif
+ 
+ strong_alias (__expf, __ieee754_expf)
+ libm_alias_finite (__expf, __expf)
+ 
+-#define __expf __expf_sse2
++# define __expf __expf_sse2
++#endif
+ #include <sysdeps/ieee754/flt-32/e_expf.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_log.c b/sysdeps/x86_64/fpu/multiarch/e_log.c
+index 067fbf58c3..d80c1b1463 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_log.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_log.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <math.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <math.h>
++# include <libm-alias-finite.h>
+ 
+ extern double __redirect_ieee754_log (double);
+ 
+-#define SYMBOL_NAME ieee754_log
+-#include "ifunc-avx-fma4.h"
++# define SYMBOL_NAME ieee754_log
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_ieee754_log, __ieee754_log,
+ 		       IFUNC_SELECTOR ());
+ libm_alias_finite (__ieee754_log, __log)
+ 
+-#define __log __ieee754_log_sse2
++# define __log __ieee754_log_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/e_log.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2.c b/sysdeps/x86_64/fpu/multiarch/e_log2.c
+index 9c57a2f6cc..9686782c09 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_log2.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_log2.c
+@@ -16,28 +16,31 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# include <libm-alias-finite.h>
+ 
+ extern double __redirect_log2 (double);
+ 
+-#define SYMBOL_NAME log2
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME log2
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_log2, __log2, IFUNC_SELECTOR ());
+ 
+-#ifdef SHARED
++# ifdef SHARED
+ __hidden_ver1 (__log2, __GI___log2, __redirect_log2)
+   __attribute__ ((visibility ("hidden")));
+ 
+ versioned_symbol (libm, __ieee754_log2, log2, GLIBC_2_29);
+ libm_alias_double_other (__log2, log2)
+-#else
++# else
+ libm_alias_double (__log2, log2)
+-#endif
++# endif
+ 
+ strong_alias (__log2, __ieee754_log2)
+ libm_alias_finite (__log2, __log2)
+ 
+-#define __log2 __log2_sse2
++# define __log2 __log2_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/e_log2.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_log2f.c b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
+index 2b45c87f38..8ada46e11e 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_log2f.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_log2f.c
+@@ -16,28 +16,31 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# include <libm-alias-finite.h>
+ 
+ extern float __redirect_log2f (float);
+ 
+-#define SYMBOL_NAME log2f
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME log2f
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_log2f, __log2f, IFUNC_SELECTOR ());
+ 
+-#ifdef SHARED
++# ifdef SHARED
+ __hidden_ver1 (__log2f, __GI___log2f, __redirect_log2f)
+   __attribute__ ((visibility ("hidden")));
+ 
+ versioned_symbol (libm, __ieee754_log2f, log2f, GLIBC_2_27);
+ libm_alias_float_other (__log2, log2)
+-#else
++# else
+ libm_alias_float (__log2, log2)
+-#endif
++# endif
+ 
+ strong_alias (__log2f, __ieee754_log2f)
+ libm_alias_finite (__log2f, __log2f)
+ 
+-#define __log2f __log2f_sse2
++# define __log2f __log2f_sse2
++#endif
+ #include <sysdeps/ieee754/flt-32/e_log2f.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_logf.c b/sysdeps/x86_64/fpu/multiarch/e_logf.c
+index 97e23c8fea..a3978d9a8e 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_logf.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_logf.c
+@@ -16,28 +16,31 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# include <libm-alias-finite.h>
+ 
+ extern float __redirect_logf (float);
+ 
+-#define SYMBOL_NAME logf
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME logf
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_logf, __logf, IFUNC_SELECTOR ());
+ 
+-#ifdef SHARED
++# ifdef SHARED
+ __hidden_ver1 (__logf, __GI___logf, __redirect_logf)
+   __attribute__ ((visibility ("hidden")));
+ 
+ versioned_symbol (libm, __ieee754_logf, logf, GLIBC_2_27);
+ libm_alias_float_other (__log, log)
+-#else
++# else
+ libm_alias_float (__log, log)
+-#endif
++# endif
+ 
+ strong_alias (__logf, __ieee754_logf)
+ libm_alias_finite (__logf, __logf)
+ 
+-#define __logf __logf_sse2
++# define __logf __logf_sse2
++#endif
+ #include <sysdeps/ieee754/flt-32/e_logf.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_pow.c b/sysdeps/x86_64/fpu/multiarch/e_pow.c
+index 42618e7112..f8f17aff9f 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_pow.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_pow.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <math.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <math.h>
++# include <libm-alias-finite.h>
+ 
+ extern double __redirect_ieee754_pow (double, double);
+ 
+-#define SYMBOL_NAME ieee754_pow
+-#include "ifunc-fma4.h"
++# define SYMBOL_NAME ieee754_pow
++# include "ifunc-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_ieee754_pow,
+ 		       __ieee754_pow, IFUNC_SELECTOR ());
+ libm_alias_finite (__ieee754_pow, __pow)
+ 
+-#define __pow __ieee754_pow_sse2
++# define __pow __ieee754_pow_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/e_pow.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/e_powf.c b/sysdeps/x86_64/fpu/multiarch/e_powf.c
+index 8e6ce13cc1..8b1a4c7d04 100644
+--- a/sysdeps/x86_64/fpu/multiarch/e_powf.c
++++ b/sysdeps/x86_64/fpu/multiarch/e_powf.c
+@@ -16,31 +16,34 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
+-#include <libm-alias-finite.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# include <libm-alias-finite.h>
+ 
+-#define powf __redirect_powf
+-#define __DECL_SIMD___redirect_powf
+-#include <math.h>
+-#undef powf
++# define powf __redirect_powf
++# define __DECL_SIMD___redirect_powf
++# include <math.h>
++# undef powf
+ 
+-#define SYMBOL_NAME powf
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME powf
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_powf, __powf, IFUNC_SELECTOR ());
+ 
+-#ifdef SHARED
++# ifdef SHARED
+ __hidden_ver1 (__powf, __GI___powf, __redirect_powf)
+   __attribute__ ((visibility ("hidden")));
+ 
+ versioned_symbol (libm, __ieee754_powf, powf, GLIBC_2_27);
+ libm_alias_float_other (__pow, pow)
+-#else
++# else
+ libm_alias_float (__pow, pow)
+-#endif
++# endif
+ 
+ strong_alias (__powf, __ieee754_powf)
+ libm_alias_finite (__powf, __powf)
+ 
+-#define __powf __powf_sse2
++# define __powf __powf_sse2
++#endif
+ #include <sysdeps/ieee754/flt-32/e_powf.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_atan.c b/sysdeps/x86_64/fpu/multiarch/s_atan.c
+index 71bad096a9..4d2c6ce006 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_atan.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_atan.c
+@@ -16,15 +16,18 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+ extern double __redirect_atan (double);
+ 
+-#define SYMBOL_NAME atan
+-#include "ifunc-avx-fma4.h"
++# define SYMBOL_NAME atan
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_atan, __atan, IFUNC_SELECTOR ());
+ libm_alias_double (__atan, atan)
+ 
+-#define __atan __atan_sse2
++# define __atan __atan_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/s_atan.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S b/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S
+new file mode 100644
+index 0000000000..e6c1106753
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_ceil-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of ceil function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-double.h>
++
++	.text
++ENTRY(__ceil)
++	vroundsd $10, %xmm0, %xmm0, %xmm0
++	ret
++END(__ceil)
++
++libm_alias_double (__ceil, ceil)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
+index 64119011ad..dba756c38f 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_ceil-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# define __ceil_sse41 __ceil
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__ceil_sse41)
+ 	roundsd	$10, %xmm0, %xmm0
+ 	ret
+ END(__ceil_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_double (__ceil, ceil)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceil.c b/sysdeps/x86_64/fpu/multiarch/s_ceil.c
+index cc028addee..46c8e91e19 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceil.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_ceil.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-double.h>
+ 
+-#define ceil __redirect_ceil
+-#define __ceil __redirect___ceil
+-#include <math.h>
+-#undef ceil
+-#undef __ceil
++# define ceil __redirect_ceil
++# define __ceil __redirect___ceil
++# include <math.h>
++# undef ceil
++# undef __ceil
+ 
+-#define SYMBOL_NAME ceil
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME ceil
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_ceil, __ceil, IFUNC_SELECTOR ());
+ libm_alias_double (__ceil, ceil)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S
+new file mode 100644
+index 0000000000..b4d8ac0455
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of ceilf function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-float.h>
++
++	.text
++ENTRY(__ceilf)
++	vroundss $10, %xmm0, %xmm0, %xmm0
++	ret
++END(__ceilf)
++
++libm_alias_float (__ceil, ceil)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
+index dd9a9f6b71..9abc87b91a 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# define __ceilf_sse41 __ceilf
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__ceilf_sse41)
+ 	roundss	$10, %xmm0, %xmm0
+ 	ret
+ END(__ceilf_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_float (__ceil, ceil)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
+index 97a0ca7d19..bb53108f73 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_ceilf.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-float.h>
+ 
+-#define ceilf __redirect_ceilf
+-#define __ceilf __redirect___ceilf
+-#include <math.h>
+-#undef ceilf
+-#undef __ceilf
++# define ceilf __redirect_ceilf
++# define __ceilf __redirect___ceilf
++# include <math.h>
++# undef ceilf
++# undef __ceilf
+ 
+-#define SYMBOL_NAME ceilf
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME ceilf
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_ceilf, __ceilf, IFUNC_SELECTOR ());
+ libm_alias_float (__ceil, ceil)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_cosf.c b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
+index 2703c576df..8a02e04538 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_cosf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_cosf.c
+@@ -16,13 +16,18 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
+ 
+ extern float __redirect_cosf (float);
+ 
+-#define SYMBOL_NAME cosf
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME cosf
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_cosf, __cosf, IFUNC_SELECTOR ());
+ 
+ libm_alias_float (__cos, cos)
++#else
++# include <sysdeps/ieee754/flt-32/s_cosf.c>
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_expm1.c b/sysdeps/x86_64/fpu/multiarch/s_expm1.c
+index 8a2d69f9b2..d58ef3d8f5 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_expm1.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_expm1.c
+@@ -16,21 +16,24 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+ extern double __redirect_expm1 (double);
+ 
+-#define SYMBOL_NAME expm1
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME expm1
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_expm1, __expm1, IFUNC_SELECTOR ());
+ libm_alias_double (__expm1, expm1)
+ 
+-#define __expm1 __expm1_sse2
++# define __expm1 __expm1_sse2
+ 
+ /* NB: __expm1 may be expanded to __expm1_sse2 in the following
+    prototypes.  */
+ extern long double __expm1l (long double);
+ extern long double __expm1f128 (long double);
+ 
++#endif
+ #include <sysdeps/ieee754/dbl-64/s_expm1.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S b/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S
+new file mode 100644
+index 0000000000..ff74b5a8bf
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_floor-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of floor function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-double.h>
++
++	.text
++ENTRY(__floor)
++	vroundsd $9, %xmm0, %xmm0, %xmm0
++	ret
++END(__floor)
++
++libm_alias_double (__floor, floor)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
+index 2f7521f39f..c9b9b0639b 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_floor-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# define __floor_sse41 __floor
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__floor_sse41)
+ 	roundsd	$9, %xmm0, %xmm0
+ 	ret
+ END(__floor_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_double (__floor, floor)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floor.c b/sysdeps/x86_64/fpu/multiarch/s_floor.c
+index 8cebd48e10..2c87dd0056 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_floor.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_floor.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-double.h>
+ 
+-#define floor __redirect_floor
+-#define __floor __redirect___floor
+-#include <math.h>
+-#undef floor
+-#undef __floor
++# define floor __redirect_floor
++# define __floor __redirect___floor
++# include <math.h>
++# undef floor
++# undef __floor
+ 
+-#define SYMBOL_NAME floor
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME floor
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_floor, __floor, IFUNC_SELECTOR ());
+ libm_alias_double (__floor, floor)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S
+new file mode 100644
+index 0000000000..c378baae8e
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_floorf-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of floorf function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-float.h>
++
++	.text
++ENTRY(__floorf)
++	vroundss $9, %xmm0, %xmm0, %xmm0
++	ret
++END(__floorf)
++
++libm_alias_float (__floor, floor)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
+index 5f6020d27d..c2216899db 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_floorf-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# define __floorf_sse41 __floorf
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__floorf_sse41)
+ 	roundss	$9, %xmm0, %xmm0
+ 	ret
+ END(__floorf_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_float (__floor, floor)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_floorf.c b/sysdeps/x86_64/fpu/multiarch/s_floorf.c
+index a14e18b03c..a277802b6d 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_floorf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_floorf.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-float.h>
+ 
+-#define floorf __redirect_floorf
+-#define __floorf __redirect___floorf
+-#include <math.h>
+-#undef floorf
+-#undef __floorf
++# define floorf __redirect_floorf
++# define __floorf __redirect___floorf
++# include <math.h>
++# undef floorf
++# undef __floorf
+ 
+-#define SYMBOL_NAME floorf
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME floorf
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_floorf, __floorf, IFUNC_SELECTOR ());
+ libm_alias_float (__floor, floor)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_log1p.c b/sysdeps/x86_64/fpu/multiarch/s_log1p.c
+index a8e1a3f21b..3fa1185d81 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_log1p.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_log1p.c
+@@ -16,14 +16,17 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+ extern double __redirect_log1p (double);
+ 
+-#define SYMBOL_NAME log1p
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME log1p
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_log1p, __log1p, IFUNC_SELECTOR ());
+ 
+-#define __log1p __log1p_sse2
++# define __log1p __log1p_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/s_log1p.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S
+new file mode 100644
+index 0000000000..5bfdf73c28
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of nearbyint function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-double.h>
++
++	.text
++ENTRY(__nearbyint)
++	vroundsd $0xc, %xmm0, %xmm0, %xmm0
++	ret
++END(__nearbyint)
++
++libm_alias_double (__nearbyint, nearbyint)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
+index 674f7eb40a..9d84410a1f 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# define __nearbyint_sse41 __nearbyint
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__nearbyint_sse41)
+ 	roundsd	$0xc, %xmm0, %xmm0
+ 	ret
+ END(__nearbyint_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_double (__nearbyint, nearbyint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
+index 693e42dd4e..057a7ca60f 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyint.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+-#define nearbyint __redirect_nearbyint
+-#define __nearbyint __redirect___nearbyint
+-#include <math.h>
+-#undef nearbyint
+-#undef __nearbyint
++# define nearbyint __redirect_nearbyint
++# define __nearbyint __redirect___nearbyint
++# include <math.h>
++# undef nearbyint
++# undef __nearbyint
+ 
+-#define SYMBOL_NAME nearbyint
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME nearbyint
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_nearbyint, __nearbyint,
+ 		       IFUNC_SELECTOR ());
+ libm_alias_double (__nearbyint, nearbyint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S
+new file mode 100644
+index 0000000000..1dbaed0324
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implmentation of nearbyintf function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-float.h>
++
++	.text
++ENTRY(__nearbyintf)
++	vroundss $0xc, %xmm0, %xmm0, %xmm0
++	ret
++END(__nearbyintf)
++
++libm_alias_float (__nearbyint, nearbyint)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
+index 5892bd7563..3cf35f92d6 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# define __nearbyintf_sse41 __nearbyintf
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__nearbyintf_sse41)
+ 	roundss	$0xc, %xmm0, %xmm0
+ 	ret
+ END(__nearbyintf_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_float (__nearbyint, nearbyint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
+index a0ac009f4b..41f374ba72 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_nearbyintf.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
+ 
+-#define nearbyintf __redirect_nearbyintf
+-#define __nearbyintf __redirect___nearbyintf
+-#include <math.h>
+-#undef nearbyintf
+-#undef __nearbyintf
++# define nearbyintf __redirect_nearbyintf
++# define __nearbyintf __redirect___nearbyintf
++# include <math.h>
++# undef nearbyintf
++# undef __nearbyintf
+ 
+-#define SYMBOL_NAME nearbyintf
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME nearbyintf
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_nearbyintf, __nearbyintf,
+ 		       IFUNC_SELECTOR ());
+ libm_alias_float (__nearbyint, nearbyint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S b/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S
+new file mode 100644
+index 0000000000..2b403b331f
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_rint-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of rint function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-double.h>
++
++	.text
++ENTRY(__rint)
++	vroundsd $4, %xmm0, %xmm0, %xmm0
++	ret
++END(__rint)
++
++libm_alias_double (__rint, rint)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
+index 405372991b..8cd9cf759f 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_rint-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# define __rint_sse41 __rint
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__rint_sse41)
+ 	roundsd	$4, %xmm0, %xmm0
+ 	ret
+ END(__rint_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_double (__rint, rint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_rint.c b/sysdeps/x86_64/fpu/multiarch/s_rint.c
+index 754c87e004..18623b7d99 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_rint.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_rint.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-double.h>
+ 
+-#define rint __redirect_rint
+-#define __rint __redirect___rint
+-#include <math.h>
+-#undef rint
+-#undef __rint
++# define rint __redirect_rint
++# define __rint __redirect___rint
++# include <math.h>
++# undef rint
++# undef __rint
+ 
+-#define SYMBOL_NAME rint
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME rint
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_rint, __rint, IFUNC_SELECTOR ());
+ libm_alias_double (__rint, rint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S
+new file mode 100644
+index 0000000000..171c2867f4
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_rintf-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of rintf function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-float.h>
++
++	.text
++ENTRY(__rintf)
++	vroundss $4, %xmm0, %xmm0, %xmm0
++	ret
++END(__rintf)
++
++libm_alias_float (__rint, rint)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
+index 8ac67ce767..fc1e70f0c9 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_rintf-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# define __rintf_sse41 __rintf
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__rintf_sse41)
+ 	roundss	$4, %xmm0, %xmm0
+ 	ret
+ END(__rintf_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_float (__rint, rint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_rintf.c b/sysdeps/x86_64/fpu/multiarch/s_rintf.c
+index e9d6b7a5f2..e275368dec 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_rintf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_rintf.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-float.h>
+ 
+-#define rintf __redirect_rintf
+-#define __rintf __redirect___rintf
+-#include <math.h>
+-#undef rintf
+-#undef __rintf
++# define rintf __redirect_rintf
++# define __rintf __redirect___rintf
++# include <math.h>
++# undef rintf
++# undef __rintf
+ 
+-#define SYMBOL_NAME rintf
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME rintf
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_rintf, __rintf, IFUNC_SELECTOR ());
+ libm_alias_float (__rint, rint)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S b/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S
+new file mode 100644
+index 0000000000..576790355c
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_roundeven-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of roundeven function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-double.h>
++
++	.text
++ENTRY(__roundeven)
++	vroundsd $8, %xmm0, %xmm0, %xmm0
++	ret
++END(__roundeven)
++
++libm_alias_double (__roundeven, roundeven)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S
+index 5ef102336b..f00be56c59 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_roundeven-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# define __roundeven_sse41 __roundeven
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__roundeven_sse41)
+ 	roundsd	$8, %xmm0, %xmm0
+ 	ret
+ END(__roundeven_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_double (__roundeven, roundeven)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundeven.c b/sysdeps/x86_64/fpu/multiarch/s_roundeven.c
+index 8737b32e26..139aad088f 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_roundeven.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_roundeven.c
+@@ -16,16 +16,19 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+-#define roundeven __redirect_roundeven
+-#define __roundeven __redirect___roundeven
+-#include <math.h>
+-#undef roundeven
+-#undef __roundeven
++# define roundeven __redirect_roundeven
++# define __roundeven __redirect___roundeven
++# include <math.h>
++# undef roundeven
++# undef __roundeven
+ 
+-#define SYMBOL_NAME roundeven
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME roundeven
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_roundeven, __roundeven, IFUNC_SELECTOR ());
+ libm_alias_double (__roundeven, roundeven)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S
+new file mode 100644
+index 0000000000..42c359f4cd
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of roundevenf function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-float.h>
++
++	.text
++ENTRY(__roundevenf)
++	vroundss $8, %xmm0, %xmm0, %xmm0
++	ret
++END(__roundevenf)
++
++libm_alias_float (__roundeven, roundeven)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S
+index 792c90ba07..6b148e4353 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_roundevenf-sse4_1.S
+@@ -17,8 +17,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# define __roundevenf_sse41 __roundevenf
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__roundevenf_sse41)
+ 	roundss	$8, %xmm0, %xmm0
+ 	ret
+ END(__roundevenf_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_float (__roundeven, roundeven)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c b/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c
+index e96016a4d5..2fb090075d 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_roundevenf.c
+@@ -16,16 +16,19 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
+ 
+-#define roundevenf __redirect_roundevenf
+-#define __roundevenf __redirect___roundevenf
+-#include <math.h>
+-#undef roundevenf
+-#undef __roundevenf
++# define roundevenf __redirect_roundevenf
++# define __roundevenf __redirect___roundevenf
++# include <math.h>
++# undef roundevenf
++# undef __roundevenf
+ 
+-#define SYMBOL_NAME roundevenf
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME roundevenf
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_roundevenf, __roundevenf, IFUNC_SELECTOR ());
+ libm_alias_float (__roundeven, roundeven)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sin.c b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+index 355cc0092e..21e77943a3 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_sin.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_sin.c
+@@ -16,24 +16,27 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+ extern double __redirect_sin (double);
+ extern double __redirect_cos (double);
+ 
+-#define SYMBOL_NAME sin
+-#include "ifunc-avx-fma4.h"
++# define SYMBOL_NAME sin
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_sin, __sin, IFUNC_SELECTOR ());
+ libm_alias_double (__sin, sin)
+ 
+-#undef SYMBOL_NAME
+-#define SYMBOL_NAME cos
+-#include "ifunc-avx-fma4.h"
++# undef SYMBOL_NAME
++# define SYMBOL_NAME cos
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_cos, __cos, IFUNC_SELECTOR ());
+ libm_alias_double (__cos, cos)
+ 
+-#define __cos __cos_sse2
+-#define __sin __sin_sse2
++# define __cos __cos_sse2
++# define __sin __sin_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/s_sin.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincos.c b/sysdeps/x86_64/fpu/multiarch/s_sincos.c
+index 70107e999c..b35757f8de 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_sincos.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_sincos.c
+@@ -16,15 +16,18 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+ extern void __redirect_sincos (double, double *, double *);
+ 
+-#define SYMBOL_NAME sincos
+-#include "ifunc-fma4.h"
++# define SYMBOL_NAME sincos
++# include "ifunc-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_sincos, __sincos, IFUNC_SELECTOR ());
+ libm_alias_double (__sincos, sincos)
+ 
+-#define __sincos __sincos_sse2
++# define __sincos __sincos_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/s_sincos.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sincosf.c b/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
+index 80bc028451..0ea9b40e84 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_sincosf.c
+@@ -16,13 +16,18 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
+ 
+ extern void __redirect_sincosf (float, float *, float *);
+ 
+-#define SYMBOL_NAME sincosf
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME sincosf
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_sincosf, __sincosf, IFUNC_SELECTOR ());
+ 
+ libm_alias_float (__sincos, sincos)
++#else
++# include <sysdeps/ieee754/flt-32/s_sincosf.c>
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_sinf.c b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
+index a32b9e9550..c61624e3ee 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_sinf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_sinf.c
+@@ -16,13 +16,18 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-float.h>
+ 
+ extern float __redirect_sinf (float);
+ 
+-#define SYMBOL_NAME sinf
+-#include "ifunc-fma.h"
++# define SYMBOL_NAME sinf
++# include "ifunc-fma.h"
+ 
+ libc_ifunc_redirected (__redirect_sinf, __sinf, IFUNC_SELECTOR ());
+ 
+ libm_alias_float (__sin, sin)
++#else
++# include <sysdeps/ieee754/flt-32/s_sinf.c>
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_tan.c b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+index f9a2474a13..125d992ba1 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_tan.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_tan.c
+@@ -16,15 +16,18 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < AVX2_X86_ISA_LEVEL
++# include <libm-alias-double.h>
+ 
+ extern double __redirect_tan (double);
+ 
+-#define SYMBOL_NAME tan
+-#include "ifunc-avx-fma4.h"
++# define SYMBOL_NAME tan
++# include "ifunc-avx-fma4.h"
+ 
+ libc_ifunc_redirected (__redirect_tan, __tan, IFUNC_SELECTOR ());
+ libm_alias_double (__tan, tan)
+ 
+-#define __tan __tan_sse2
++# define __tan __tan_sse2
++#endif
+ #include <sysdeps/ieee754/dbl-64/s_tan.c>
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S b/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S
+new file mode 100644
+index 0000000000..b3e87e9606
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_trunc-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of trunc function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-double.h>
++
++	.text
++ENTRY(__trunc)
++	vroundsd $11, %xmm0, %xmm0, %xmm0
++	ret
++END(__trunc)
++
++libm_alias_double (__trunc, trunc)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
+index b496a6ef49..2b79174eed 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_trunc-sse4_1.S
+@@ -18,8 +18,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-double.h>
++# define __trunc_sse41 __trunc
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__trunc_sse41)
+ 	roundsd	$11, %xmm0, %xmm0
+ 	ret
+ END(__trunc_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_double (__trunc, trunc)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_trunc.c b/sysdeps/x86_64/fpu/multiarch/s_trunc.c
+index 9bc9df8744..ea89c4f85d 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_trunc.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_trunc.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-double.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-double.h>
+ 
+-#define trunc __redirect_trunc
+-#define __trunc __redirect___trunc
+-#include <math.h>
+-#undef trunc
+-#undef __trunc
++# define trunc __redirect_trunc
++# define __trunc __redirect___trunc
++# include <math.h>
++# undef trunc
++# undef __trunc
+ 
+-#define SYMBOL_NAME trunc
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME trunc
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_trunc, __trunc, IFUNC_SELECTOR ());
+ libm_alias_double (__trunc, trunc)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S b/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S
+new file mode 100644
+index 0000000000..f31ac7d7f7
+--- /dev/null
++++ b/sysdeps/x86_64/fpu/multiarch/s_truncf-avx.S
+@@ -0,0 +1,28 @@
++/* AVX implementation of truncf function.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sysdep.h>
++#include <libm-alias-float.h>
++
++	.text
++ENTRY(__truncf)
++	vroundss $11, %xmm0, %xmm0, %xmm0
++	ret
++END(__truncf)
++
++libm_alias_float (__trunc, trunc)
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S b/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
+index 22e9a83307..60498b2cb2 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
++++ b/sysdeps/x86_64/fpu/multiarch/s_truncf-sse4_1.S
+@@ -18,8 +18,20 @@
+ 
+ #include <sysdep.h>
+ 
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++# include <libm-alias-float.h>
++# define __truncf_sse41 __truncf
++	.text
++#else
+ 	.section .text.sse4.1,"ax",@progbits
++#endif
++
+ ENTRY(__truncf_sse41)
+ 	roundss	$11, %xmm0, %xmm0
+ 	ret
+ END(__truncf_sse41)
++
++#if MINIMUM_X86_ISA_LEVEL == SSE4_1_X86_ISA_LEVEL
++libm_alias_float (__trunc, trunc)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/s_truncf.c b/sysdeps/x86_64/fpu/multiarch/s_truncf.c
+index dae01d166a..92435ce39d 100644
+--- a/sysdeps/x86_64/fpu/multiarch/s_truncf.c
++++ b/sysdeps/x86_64/fpu/multiarch/s_truncf.c
+@@ -16,17 +16,20 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
+-#define NO_MATH_REDIRECT
+-#include <libm-alias-float.h>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL < SSE4_1_X86_ISA_LEVEL
++# define NO_MATH_REDIRECT
++# include <libm-alias-float.h>
+ 
+-#define truncf __redirect_truncf
+-#define __truncf __redirect___truncf
+-#include <math.h>
+-#undef truncf
+-#undef __truncf
++# define truncf __redirect_truncf
++# define __truncf __redirect___truncf
++# include <math.h>
++# undef truncf
++# undef __truncf
+ 
+-#define SYMBOL_NAME truncf
+-#include "ifunc-sse4_1.h"
++# define SYMBOL_NAME truncf
++# include "ifunc-sse4_1.h"
+ 
+ libc_ifunc_redirected (__redirect_truncf, __truncf, IFUNC_SELECTOR ());
+ libm_alias_float (__trunc, trunc)
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/w_exp.c b/sysdeps/x86_64/fpu/multiarch/w_exp.c
+index 27eee98a0a..3584187e0e 100644
+--- a/sysdeps/x86_64/fpu/multiarch/w_exp.c
++++ b/sysdeps/x86_64/fpu/multiarch/w_exp.c
+@@ -1 +1,6 @@
+-#include <sysdeps/../math/w_exp.c>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL >= AVX2_X86_ISA_LEVEL
++# include <sysdeps/ieee754/dbl-64/w_exp.c>
++#else
++# include <sysdeps/../math/w_exp.c>
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/w_log.c b/sysdeps/x86_64/fpu/multiarch/w_log.c
+index 9b2b018711..414ca3ca3d 100644
+--- a/sysdeps/x86_64/fpu/multiarch/w_log.c
++++ b/sysdeps/x86_64/fpu/multiarch/w_log.c
+@@ -1 +1,6 @@
+-#include <sysdeps/../math/w_log.c>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL >= AVX2_X86_ISA_LEVEL
++# include <sysdeps/ieee754/dbl-64/w_log.c>
++#else
++# include <sysdeps/../math/w_log.c>
++#endif
+diff --git a/sysdeps/x86_64/fpu/multiarch/w_pow.c b/sysdeps/x86_64/fpu/multiarch/w_pow.c
+index b50c1988de..d5fcc4f871 100644
+--- a/sysdeps/x86_64/fpu/multiarch/w_pow.c
++++ b/sysdeps/x86_64/fpu/multiarch/w_pow.c
+@@ -1 +1,6 @@
+-#include <sysdeps/../math/w_pow.c>
++#include <sysdeps/x86/isa-level.h>
++#if MINIMUM_X86_ISA_LEVEL >= AVX2_X86_ISA_LEVEL
++# include <sysdeps/ieee754/dbl-64/w_pow.c>
++#else
++# include <sysdeps/../math/w_pow.c>
++#endif
+
+commit 31da30f23cddd36db29d5b6a1c7619361b271fb4
+Author: Charles Fol <folcharles@gmail.com>
+Date:   Thu Mar 28 12:25:38 2024 -0300
+
+    iconv: ISO-2022-CN-EXT: fix out-of-bound writes when writing escape sequence (CVE-2024-2961)
+    
+    ISO-2022-CN-EXT uses escape sequences to indicate character set changes
+    (as specified by RFC 1922).  While the SOdesignation has the expected
+    bounds checks, neither SS2designation nor SS3designation have its;
+    allowing a write overflow of 1, 2, or 3 bytes with fixed values:
+    '$+I', '$+J', '$+K', '$+L', '$+M', or '$*H'.
+    
+    Checked on aarch64-linux-gnu.
+    
+    Co-authored-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+    Tested-by: Carlos O'Donell <carlos@redhat.com>
+    
+    (cherry picked from commit f9dc609e06b1136bb0408be9605ce7973a767ada)
+
+diff --git a/iconvdata/Makefile b/iconvdata/Makefile
+index ea019ce5c0..7196a8744b 100644
+--- a/iconvdata/Makefile
++++ b/iconvdata/Makefile
+@@ -75,7 +75,8 @@ ifeq (yes,$(build-shared))
+ tests = bug-iconv1 bug-iconv2 tst-loading tst-e2big tst-iconv4 bug-iconv4 \
+ 	tst-iconv6 bug-iconv5 bug-iconv6 tst-iconv7 bug-iconv8 bug-iconv9 \
+ 	bug-iconv10 bug-iconv11 bug-iconv12 tst-iconv-big5-hkscs-to-2ucs4 \
+-	bug-iconv13 bug-iconv14 bug-iconv15
++	bug-iconv13 bug-iconv14 bug-iconv15 \
++	tst-iconv-iso-2022-cn-ext
+ ifeq ($(have-thread-library),yes)
+ tests += bug-iconv3
+ endif
+@@ -330,6 +331,8 @@ $(objpfx)bug-iconv14.out: $(addprefix $(objpfx), $(gconv-modules)) \
+ 			  $(addprefix $(objpfx),$(modules.so))
+ $(objpfx)bug-iconv15.out: $(addprefix $(objpfx), $(gconv-modules)) \
+ 			  $(addprefix $(objpfx),$(modules.so))
++$(objpfx)tst-iconv-iso-2022-cn-ext.out: $(addprefix $(objpfx), $(gconv-modules)) \
++					$(addprefix $(objpfx),$(modules.so))
+ 
+ $(objpfx)iconv-test.out: run-iconv-test.sh \
+ 			 $(addprefix $(objpfx), $(gconv-modules)) \
+diff --git a/iconvdata/iso-2022-cn-ext.c b/iconvdata/iso-2022-cn-ext.c
+index b34c8a36f4..cce29b1969 100644
+--- a/iconvdata/iso-2022-cn-ext.c
++++ b/iconvdata/iso-2022-cn-ext.c
+@@ -574,6 +574,12 @@ DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+ 	      {								      \
+ 		const char *escseq;					      \
+ 									      \
++		if (outptr + 4 > outend)				      \
++		  {							      \
++		    result = __GCONV_FULL_OUTPUT;			      \
++		    break;						      \
++		  }							      \
++									      \
+ 		assert (used == CNS11643_2_set); /* XXX */		      \
+ 		escseq = "*H";						      \
+ 		*outptr++ = ESC;					      \
+@@ -587,6 +593,12 @@ DIAG_IGNORE_Os_NEEDS_COMMENT (5, "-Wmaybe-uninitialized");
+ 	      {								      \
+ 		const char *escseq;					      \
+ 									      \
++		if (outptr + 4 > outend)				      \
++		  {							      \
++		    result = __GCONV_FULL_OUTPUT;			      \
++		    break;						      \
++		  }							      \
++									      \
+ 		assert ((used >> 5) >= 3 && (used >> 5) <= 7);		      \
+ 		escseq = "+I+J+K+L+M" + ((used >> 5) - 3) * 2;		      \
+ 		*outptr++ = ESC;					      \
+diff --git a/iconvdata/tst-iconv-iso-2022-cn-ext.c b/iconvdata/tst-iconv-iso-2022-cn-ext.c
+new file mode 100644
+index 0000000000..96a8765fd5
+--- /dev/null
++++ b/iconvdata/tst-iconv-iso-2022-cn-ext.c
+@@ -0,0 +1,128 @@
++/* Verify ISO-2022-CN-EXT does not write out of the bounds.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <stdio.h>
++#include <string.h>
++
++#include <errno.h>
++#include <iconv.h>
++#include <sys/mman.h>
++
++#include <support/xunistd.h>
++#include <support/check.h>
++#include <support/support.h>
++
++/* The test sets up a two memory page buffer with the second page marked
++   PROT_NONE to trigger a fault if the conversion writes beyond the exact
++   expected amount.  Then we carry out various conversions and precisely
++   place the start of the output buffer in order to trigger a SIGSEGV if the
++   process writes anywhere between 1 and page sized bytes more (only one
++   PROT_NONE page is setup as a canary) than expected.  These tests exercise
++   all three of the cases in ISO-2022-CN-EXT where the converter must switch
++   character sets and may run out of buffer space while doing the
++   operation.  */
++
++static int
++do_test (void)
++{
++  iconv_t cd = iconv_open ("ISO-2022-CN-EXT", "UTF-8");
++  TEST_VERIFY_EXIT (cd != (iconv_t) -1);
++
++  char *ntf;
++  size_t ntfsize;
++  char *outbufbase;
++  {
++    int pgz = getpagesize ();
++    TEST_VERIFY_EXIT (pgz > 0);
++    ntfsize = 2 * pgz;
++
++    ntf = xmmap (NULL, ntfsize, PROT_READ | PROT_WRITE, MAP_PRIVATE
++		 | MAP_ANONYMOUS, -1);
++    xmprotect (ntf + pgz, pgz, PROT_NONE);
++
++    outbufbase = ntf + pgz;
++  }
++
++  /* Check if SOdesignation escape sequence does not trigger an OOB write.  */
++  {
++    char inbuf[] = "\xe4\xba\xa4\xe6\x8d\xa2";
++
++    for (int i = 0; i < 9; i++)
++      {
++	char *inp = inbuf;
++	size_t inleft = sizeof (inbuf) - 1;
++
++	char *outp = outbufbase - i;
++	size_t outleft = i;
++
++	TEST_VERIFY_EXIT (iconv (cd, &inp, &inleft, &outp, &outleft)
++			  == (size_t) -1);
++	TEST_COMPARE (errno, E2BIG);
++
++	TEST_VERIFY_EXIT (iconv (cd, NULL, NULL, NULL, NULL) == 0);
++      }
++  }
++
++  /* Same as before for SS2designation.  */
++  {
++    char inbuf[] = "㴽 \xe3\xb4\xbd";
++
++    for (int i = 0; i < 14; i++)
++      {
++	char *inp = inbuf;
++	size_t inleft = sizeof (inbuf) - 1;
++
++	char *outp = outbufbase - i;
++	size_t outleft = i;
++
++	TEST_VERIFY_EXIT (iconv (cd, &inp, &inleft, &outp, &outleft)
++			  == (size_t) -1);
++	TEST_COMPARE (errno, E2BIG);
++
++	TEST_VERIFY_EXIT (iconv (cd, NULL, NULL, NULL, NULL) == 0);
++      }
++  }
++
++  /* Same as before for SS3designation.  */
++  {
++    char inbuf[] = "劄 \xe5\x8a\x84";
++
++    for (int i = 0; i < 14; i++)
++      {
++	char *inp = inbuf;
++	size_t inleft = sizeof (inbuf) - 1;
++
++	char *outp = outbufbase - i;
++	size_t outleft = i;
++
++	TEST_VERIFY_EXIT (iconv (cd, &inp, &inleft, &outp, &outleft)
++			  == (size_t) -1);
++	TEST_COMPARE (errno, E2BIG);
++
++	TEST_VERIFY_EXIT (iconv (cd, NULL, NULL, NULL, NULL) == 0);
++      }
++  }
++
++  TEST_VERIFY_EXIT (iconv_close (cd) != -1);
++
++  xmunmap (ntf, ntfsize);
++
++  return 0;
++}
++
++#include <support/test-driver.c>
+
+commit e828914cf9f2fc2caa5bced0fc6a03cb78324979
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Tue Apr 23 21:16:32 2024 +0200
+
+    nptl: Fix tst-cancel30 on kernels without ppoll_time64 support
+    
+    Fall back to ppoll if ppoll_time64 fails with ENOSYS.
+    Fixes commit 370da8a121c3ba9eeb2f13da15fc0f21f4136b25 ("nptl: Fix
+    tst-cancel30 on sparc64").
+    
+    Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+    (cherry picked from commit f4724843ada64a51d66f65d3199fe431f9d4c254)
+
+diff --git a/sysdeps/pthread/tst-cancel30.c b/sysdeps/pthread/tst-cancel30.c
+index 3030660e5f..94ad6281bc 100644
+--- a/sysdeps/pthread/tst-cancel30.c
++++ b/sysdeps/pthread/tst-cancel30.c
+@@ -18,6 +18,7 @@
+    License along with the GNU C Library; if not, see
+    <https://www.gnu.org/licenses/>.  */
+ 
++#include <errno.h>
+ #include <support/check.h>
+ #include <support/xstdio.h>
+ #include <support/xthread.h>
+@@ -46,13 +47,19 @@ tf (void *arg)
+ 
+   /* Wait indefinitely for cancellation, which only works if asynchronous
+      cancellation is enabled.  */
+-#if defined SYS_ppoll || defined SYS_ppoll_time64
+-# ifndef SYS_ppoll_time64
+-#  define SYS_ppoll_time64 SYS_ppoll
++#ifdef SYS_ppoll_time64
++  long int ret = syscall (SYS_ppoll_time64, NULL, 0, NULL, NULL);
++  (void) ret;
++# ifdef SYS_ppoll
++  if (ret == -1 && errno == ENOSYS)
++    syscall (SYS_ppoll, NULL, 0, NULL, NULL);
+ # endif
+-  syscall (SYS_ppoll_time64, NULL, 0, NULL, NULL);
+ #else
++# ifdef SYS_ppoll
++  syscall (SYS_ppoll, NULL, 0, NULL, NULL);
++# else
+   for (;;);
++# endif
+ #endif
+ 
+   return 0;
+
+commit e701c7d761f6e5c48d8e9dd5da88cbe2e94943f4
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Apr 25 12:56:48 2024 +0200
+
+    i386: ulp update for SSE2 --disable-multi-arch configurations
+    
+    (cherry picked from commit 3a3a4497421422aa854c855cbe5110ca7d598ffc)
+
+diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
+index 84e6686eba..f2139fc172 100644
+--- a/sysdeps/i386/fpu/libm-test-ulps
++++ b/sysdeps/i386/fpu/libm-test-ulps
+@@ -1232,6 +1232,7 @@ ldouble: 6
+ 
+ Function: "hypot":
+ double: 1
++float: 1
+ float128: 1
+ ldouble: 1
+ 
+
+commit 2f8f157eb0cc7f1d8d9a3fcaa8c55bed53b092a8
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Tue Apr 23 13:59:50 2024 -0700
+
+    x86: Define MINIMUM_X86_ISA_LEVEL in config.h [BZ #31676]
+    
+    Define MINIMUM_X86_ISA_LEVEL at configure time to avoid
+    
+    /usr/bin/ld: …/build/elf/librtld.os: in function `init_cpu_features':
+    …/git/elf/../sysdeps/x86/cpu-features.c:1202: undefined reference to `_dl_runtime_resolve_fxsave'
+    /usr/bin/ld: …/build/elf/librtld.os: relocation R_X86_64_PC32 against undefined hidden symbol `_dl_runtime_resolve_fxsave' can not be used when making a shared object
+    /usr/bin/ld: final link failed: bad value
+    collect2: error: ld returned 1 exit status
+    
+    when glibc is built with -march=x86-64-v3 and configured with
+    --with-rtld-early-cflags=-march=x86-64, which is used to allow ld.so to
+    print an error message on unsupported CPUs:
+    
+    Fatal glibc error: CPU does not support x86-64-v3
+    
+    This fixes BZ #31676.
+    Reviewed-by: Sunil K Pandey <skpgkp2@gmail.com>
+    
+    (cherry picked from commit 46c999741340ea559784c20a45077955b50aca43)
+
+diff --git a/config.h.in b/config.h.in
+index 4d33c63a84..1e647de585 100644
+--- a/config.h.in
++++ b/config.h.in
+@@ -286,6 +286,9 @@
+ /* Define if x86 ISA level should be included in shared libraries.  */
+ #undef INCLUDE_X86_ISA_LEVEL
+ 
++/* The x86 ISA level.  1 for baseline.  Undefined on non-x86.  */
++#undef MINIMUM_X86_ISA_LEVEL
++
+ /* Define if -msahf is enabled by default on x86.  */
+ #undef HAVE_X86_LAHF_SAHF
+ 
+diff --git a/sysdeps/x86/configure b/sysdeps/x86/configure
+index 2a5421bb31..d28d9bcb29 100644
+--- a/sysdeps/x86/configure
++++ b/sysdeps/x86/configure
+@@ -151,6 +151,13 @@ printf "%s\n" "$libc_cv_have_x86_isa_level" >&6; }
+ else
+   libc_cv_have_x86_isa_level=baseline
+ fi
++if test $libc_cv_have_x86_isa_level = baseline; then
++  printf "%s\n" "#define MINIMUM_X86_ISA_LEVEL 1" >>confdefs.h
++
++else
++  printf "%s\n" "#define MINIMUM_X86_ISA_LEVEL $libc_cv_have_x86_isa_level" >>confdefs.h
++
++fi
+ config_vars="$config_vars
+ have-x86-isa-level = $libc_cv_have_x86_isa_level"
+ config_vars="$config_vars
+diff --git a/sysdeps/x86/configure.ac b/sysdeps/x86/configure.ac
+index 78ff7c8f41..5b0acd03d2 100644
+--- a/sysdeps/x86/configure.ac
++++ b/sysdeps/x86/configure.ac
+@@ -105,6 +105,11 @@ EOF
+ else
+   libc_cv_have_x86_isa_level=baseline
+ fi
++if test $libc_cv_have_x86_isa_level = baseline; then
++  AC_DEFINE_UNQUOTED(MINIMUM_X86_ISA_LEVEL, 1)
++else
++  AC_DEFINE_UNQUOTED(MINIMUM_X86_ISA_LEVEL, $libc_cv_have_x86_isa_level)
++fi
+ LIBC_CONFIG_VAR([have-x86-isa-level], [$libc_cv_have_x86_isa_level])
+ LIBC_CONFIG_VAR([x86-isa-level-3-or-above], [3 4])
+ LIBC_CONFIG_VAR([enable-x86-isa-level], [$libc_cv_include_x86_isa_level])
+diff --git a/sysdeps/x86/isa-level.h b/sysdeps/x86/isa-level.h
+index 11fe1ca90c..2c7f74212b 100644
+--- a/sysdeps/x86/isa-level.h
++++ b/sysdeps/x86/isa-level.h
+@@ -61,8 +61,10 @@
+ # define __X86_ISA_V4 0
+ #endif
+ 
+-#define MINIMUM_X86_ISA_LEVEL                                                 \
++#ifndef MINIMUM_X86_ISA_LEVEL
++# define MINIMUM_X86_ISA_LEVEL                                                 \
+   (__X86_ISA_V1 + __X86_ISA_V2 + __X86_ISA_V3 + __X86_ISA_V4)
++#endif
+ 
+ /* Depending on the minimum ISA level, a feature check result can be a
+    compile-time constant.. */
+
+commit 1263d583d2e28afb8be53f8d6922f0842036f35d
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Apr 25 15:00:45 2024 +0200
+
+    CVE-2024-33599: nscd: Stack-based buffer overflow in netgroup cache (bug 31677)
+    
+    Using alloca matches what other caches do.  The request length is
+    bounded by MAXKEYLEN.
+    
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+    (cherry picked from commit 87801a8fd06db1d654eea3e4f7626ff476a9bdaa)
+
+diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
+index 0c6e46f15c..f227dc7fa2 100644
+--- a/nscd/netgroupcache.c
++++ b/nscd/netgroupcache.c
+@@ -502,12 +502,13 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+       = (struct indataset *) mempool_alloc (db,
+ 					    sizeof (*dataset) + req->key_len,
+ 					    1);
+-  struct indataset dataset_mem;
+   bool cacheable = true;
+   if (__glibc_unlikely (dataset == NULL))
+     {
+       cacheable = false;
+-      dataset = &dataset_mem;
++      /* The alloca is safe because nscd_run_worker verfies that
++	 key_len is not larger than MAXKEYLEN.  */
++      dataset = alloca (sizeof (*dataset) + req->key_len);
+     }
+ 
+   datahead_init_pos (&dataset->head, sizeof (*dataset) + req->key_len,
+
+commit 5a508e0b508c8ad53bd0d2fb48fd71b242626341
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Apr 25 15:01:07 2024 +0200
+
+    CVE-2024-33600: nscd: Do not send missing not-found response in addgetnetgrentX (bug 31678)
+    
+    If we failed to add a not-found response to the cache, the dataset
+    point can be null, resulting in a null pointer dereference.
+    
+    Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+    (cherry picked from commit 7835b00dbce53c3c87bbbb1754a95fb5e58187aa)
+
+diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
+index f227dc7fa2..c18fe111f3 100644
+--- a/nscd/netgroupcache.c
++++ b/nscd/netgroupcache.c
+@@ -147,7 +147,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+       /* No such service.  */
+       cacheable = do_notfound (db, fd, req, key, &dataset, &total, &timeout,
+ 			       &key_copy);
+-      goto writeout;
++      goto maybe_cache_add;
+     }
+ 
+   memset (&data, '\0', sizeof (data));
+@@ -348,7 +348,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+     {
+       cacheable = do_notfound (db, fd, req, key, &dataset, &total, &timeout,
+ 			       &key_copy);
+-      goto writeout;
++      goto maybe_cache_add;
+     }
+ 
+   total = buffilled;
+@@ -410,14 +410,12 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+   }
+ 
+   if (he == NULL && fd != -1)
+-    {
+-      /* We write the dataset before inserting it to the database
+-	 since while inserting this thread might block and so would
+-	 unnecessarily let the receiver wait.  */
+-    writeout:
++    /* We write the dataset before inserting it to the database since
++       while inserting this thread might block and so would
++       unnecessarily let the receiver wait.  */
+       writeall (fd, &dataset->resp, dataset->head.recsize);
+-    }
+ 
++ maybe_cache_add:
+   if (cacheable)
+     {
+       /* If necessary, we also propagate the data to disk.  */
+
+commit c99f886de54446cd4447db6b44be93dabbdc2f8b
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Apr 25 15:01:07 2024 +0200
+
+    CVE-2024-33600: nscd: Avoid null pointer crashes after notfound response (bug 31678)
+    
+    The addgetnetgrentX call in addinnetgrX may have failed to produce
+    a result, so the result variable in addinnetgrX can be NULL.
+    Use db->negtimeout as the fallback value if there is no result data;
+    the timeout is also overwritten below.
+    
+    Also avoid sending a second not-found response.  (The client
+    disconnects after receiving the first response, so the data stream did
+    not go out of sync even without this fix.)  It is still beneficial to
+    add the negative response to the mapping, so that the client can get
+    it from there in the future, instead of going through the socket.
+    
+    Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+    (cherry picked from commit b048a482f088e53144d26a61c390bed0210f49f2)
+
+diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
+index c18fe111f3..e22ffa5884 100644
+--- a/nscd/netgroupcache.c
++++ b/nscd/netgroupcache.c
+@@ -511,14 +511,15 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+ 
+   datahead_init_pos (&dataset->head, sizeof (*dataset) + req->key_len,
+ 		     sizeof (innetgroup_response_header),
+-		     he == NULL ? 0 : dh->nreloads + 1, result->head.ttl);
++		     he == NULL ? 0 : dh->nreloads + 1,
++		     result == NULL ? db->negtimeout : result->head.ttl);
+   /* Set the notfound status and timeout based on the result from
+      getnetgrent.  */
+-  dataset->head.notfound = result->head.notfound;
++  dataset->head.notfound = result == NULL || result->head.notfound;
+   dataset->head.timeout = timeout;
+ 
+   dataset->resp.version = NSCD_VERSION;
+-  dataset->resp.found = result->resp.found;
++  dataset->resp.found = result != NULL && result->resp.found;
+   /* Until we find a matching entry the result is 0.  */
+   dataset->resp.result = 0;
+ 
+@@ -566,7 +567,9 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+       goto out;
+     }
+ 
+-  if (he == NULL)
++  /* addgetnetgrentX may have already sent a notfound response.  Do
++     not send another one.  */
++  if (he == NULL && dataset->resp.found)
+     {
+       /* We write the dataset before inserting it to the database
+ 	 since while inserting this thread might block and so would
+
+commit a9a8d3eebb145779a18d90e3966009a1daa63cd8
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu Apr 25 15:01:07 2024 +0200
+
+    CVE-2024-33601, CVE-2024-33602: nscd: netgroup: Use two buffers in addgetnetgrentX (bug 31680)
+    
+    This avoids potential memory corruption when the underlying NSS
+    callback function does not use the buffer space to store all strings
+    (e.g., for constant strings).
+    
+    Instead of custom buffer management, two scratch buffers are used.
+    This increases stack usage somewhat.
+    
+    Scratch buffer allocation failure is handled by return -1
+    (an invalid timeout value) instead of terminating the process.
+    This fixes bug 31679.
+    
+    Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
+    (cherry picked from commit c04a21e050d64a1193a6daab872bca2528bda44b)
+
+diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
+index e22ffa5884..e8fe041846 100644
+--- a/nscd/netgroupcache.c
++++ b/nscd/netgroupcache.c
+@@ -23,6 +23,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <sys/mman.h>
++#include <scratch_buffer.h>
+ 
+ #include "../nss/netgroup.h"
+ #include "nscd.h"
+@@ -65,6 +66,16 @@ struct dataset
+   char strdata[0];
+ };
+ 
++/* Send a notfound response to FD.  Always returns -1 to indicate an
++   ephemeral error.  */
++static time_t
++send_notfound (int fd)
++{
++  if (fd != -1)
++    TEMP_FAILURE_RETRY (send (fd, &notfound, sizeof (notfound), MSG_NOSIGNAL));
++  return -1;
++}
++
+ /* Sends a notfound message and prepares a notfound dataset to write to the
+    cache.  Returns true if there was enough memory to allocate the dataset and
+    returns the dataset in DATASETP, total bytes to write in TOTALP and the
+@@ -83,8 +94,7 @@ do_notfound (struct database_dyn *db, int fd, request_header *req,
+   total = sizeof (notfound);
+   timeout = time (NULL) + db->negtimeout;
+ 
+-  if (fd != -1)
+-    TEMP_FAILURE_RETRY (send (fd, &notfound, total, MSG_NOSIGNAL));
++  send_notfound (fd);
+ 
+   dataset = mempool_alloc (db, sizeof (struct dataset) + req->key_len, 1);
+   /* If we cannot permanently store the result, so be it.  */
+@@ -109,11 +119,78 @@ do_notfound (struct database_dyn *db, int fd, request_header *req,
+   return cacheable;
+ }
+ 
++struct addgetnetgrentX_scratch
++{
++  /* This is the result that the caller should use.  It can be NULL,
++     point into buffer, or it can be in the cache.  */
++  struct dataset *dataset;
++
++  struct scratch_buffer buffer;
++
++  /* Used internally in addgetnetgrentX as a staging area.  */
++  struct scratch_buffer tmp;
++
++  /* Number of bytes in buffer that are actually used.  */
++  size_t buffer_used;
++};
++
++static void
++addgetnetgrentX_scratch_init (struct addgetnetgrentX_scratch *scratch)
++{
++  scratch->dataset = NULL;
++  scratch_buffer_init (&scratch->buffer);
++  scratch_buffer_init (&scratch->tmp);
++
++  /* Reserve space for the header.  */
++  scratch->buffer_used = sizeof (struct dataset);
++  static_assert (sizeof (struct dataset) < sizeof (scratch->tmp.__space),
++		 "initial buffer space");
++  memset (scratch->tmp.data, 0, sizeof (struct dataset));
++}
++
++static void
++addgetnetgrentX_scratch_free (struct addgetnetgrentX_scratch *scratch)
++{
++  scratch_buffer_free (&scratch->buffer);
++  scratch_buffer_free (&scratch->tmp);
++}
++
++/* Copy LENGTH bytes from S into SCRATCH.  Returns NULL if SCRATCH
++   could not be resized, otherwise a pointer to the copy.  */
++static char *
++addgetnetgrentX_append_n (struct addgetnetgrentX_scratch *scratch,
++			  const char *s, size_t length)
++{
++  while (true)
++    {
++      size_t remaining = scratch->buffer.length - scratch->buffer_used;
++      if (remaining >= length)
++	break;
++      if (!scratch_buffer_grow_preserve (&scratch->buffer))
++	return NULL;
++    }
++  char *copy = scratch->buffer.data + scratch->buffer_used;
++  memcpy (copy, s, length);
++  scratch->buffer_used += length;
++  return copy;
++}
++
++/* Copy S into SCRATCH, including its null terminator.  Returns false
++   if SCRATCH could not be resized.  */
++static bool
++addgetnetgrentX_append (struct addgetnetgrentX_scratch *scratch, const char *s)
++{
++  if (s == NULL)
++    s = "";
++  return addgetnetgrentX_append_n (scratch, s, strlen (s) + 1) != NULL;
++}
++
++/* Caller must initialize and free *SCRATCH.  If the return value is
++   negative, this function has sent a notfound response.  */
+ static time_t
+ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+ 		 const char *key, uid_t uid, struct hashentry *he,
+-		 struct datahead *dh, struct dataset **resultp,
+-		 void **tofreep)
++		 struct datahead *dh, struct addgetnetgrentX_scratch *scratch)
+ {
+   if (__glibc_unlikely (debug_level > 0))
+     {
+@@ -132,14 +209,10 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+ 
+   char *key_copy = NULL;
+   struct __netgrent data;
+-  size_t buflen = MAX (1024, sizeof (*dataset) + req->key_len);
+-  size_t buffilled = sizeof (*dataset);
+-  char *buffer = NULL;
+   size_t nentries = 0;
+   size_t group_len = strlen (key) + 1;
+   struct name_list *first_needed
+     = alloca (sizeof (struct name_list) + group_len);
+-  *tofreep = NULL;
+ 
+   if (netgroup_database == NULL
+       && !__nss_database_get (nss_database_netgroup, &netgroup_database))
+@@ -151,8 +224,6 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+     }
+ 
+   memset (&data, '\0', sizeof (data));
+-  buffer = xmalloc (buflen);
+-  *tofreep = buffer;
+   first_needed->next = first_needed;
+   memcpy (first_needed->name, key, group_len);
+   data.needed_groups = first_needed;
+@@ -195,8 +266,8 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+ 		while (1)
+ 		  {
+ 		    int e;
+-		    status = getfct.f (&data, buffer + buffilled,
+-				       buflen - buffilled - req->key_len, &e);
++		    status = getfct.f (&data, scratch->tmp.data,
++				       scratch->tmp.length, &e);
+ 		    if (status == NSS_STATUS_SUCCESS)
+ 		      {
+ 			if (data.type == triple_val)
+@@ -204,68 +275,10 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+ 			    const char *nhost = data.val.triple.host;
+ 			    const char *nuser = data.val.triple.user;
+ 			    const char *ndomain = data.val.triple.domain;
+-
+-			    size_t hostlen = strlen (nhost ?: "") + 1;
+-			    size_t userlen = strlen (nuser ?: "") + 1;
+-			    size_t domainlen = strlen (ndomain ?: "") + 1;
+-
+-			    if (nhost == NULL || nuser == NULL || ndomain == NULL
+-				|| nhost > nuser || nuser > ndomain)
+-			      {
+-				const char *last = nhost;
+-				if (last == NULL
+-				    || (nuser != NULL && nuser > last))
+-				  last = nuser;
+-				if (last == NULL
+-				    || (ndomain != NULL && ndomain > last))
+-				  last = ndomain;
+-
+-				size_t bufused
+-				  = (last == NULL
+-				     ? buffilled
+-				     : last + strlen (last) + 1 - buffer);
+-
+-				/* We have to make temporary copies.  */
+-				size_t needed = hostlen + userlen + domainlen;
+-
+-				if (buflen - req->key_len - bufused < needed)
+-				  {
+-				    buflen += MAX (buflen, 2 * needed);
+-				    /* Save offset in the old buffer.  We don't
+-				       bother with the NULL check here since
+-				       we'll do that later anyway.  */
+-				    size_t nhostdiff = nhost - buffer;
+-				    size_t nuserdiff = nuser - buffer;
+-				    size_t ndomaindiff = ndomain - buffer;
+-
+-				    char *newbuf = xrealloc (buffer, buflen);
+-				    /* Fix up the triplet pointers into the new
+-				       buffer.  */
+-				    nhost = (nhost ? newbuf + nhostdiff
+-					     : NULL);
+-				    nuser = (nuser ? newbuf + nuserdiff
+-					     : NULL);
+-				    ndomain = (ndomain ? newbuf + ndomaindiff
+-					       : NULL);
+-				    *tofreep = buffer = newbuf;
+-				  }
+-
+-				nhost = memcpy (buffer + bufused,
+-						nhost ?: "", hostlen);
+-				nuser = memcpy ((char *) nhost + hostlen,
+-						nuser ?: "", userlen);
+-				ndomain = memcpy ((char *) nuser + userlen,
+-						  ndomain ?: "", domainlen);
+-			      }
+-
+-			    char *wp = buffer + buffilled;
+-			    wp = memmove (wp, nhost ?: "", hostlen);
+-			    wp += hostlen;
+-			    wp = memmove (wp, nuser ?: "", userlen);
+-			    wp += userlen;
+-			    wp = memmove (wp, ndomain ?: "", domainlen);
+-			    wp += domainlen;
+-			    buffilled = wp - buffer;
++			    if (!(addgetnetgrentX_append (scratch, nhost)
++				  && addgetnetgrentX_append (scratch, nuser)
++				  && addgetnetgrentX_append (scratch, ndomain)))
++			      return send_notfound (fd);
+ 			    ++nentries;
+ 			  }
+ 			else
+@@ -317,8 +330,8 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+ 		      }
+ 		    else if (status == NSS_STATUS_TRYAGAIN && e == ERANGE)
+ 		      {
+-			buflen *= 2;
+-			*tofreep = buffer = xrealloc (buffer, buflen);
++			if (!scratch_buffer_grow (&scratch->tmp))
++			  return send_notfound (fd);
+ 		      }
+ 		    else if (status == NSS_STATUS_RETURN
+ 			     || status == NSS_STATUS_NOTFOUND
+@@ -351,10 +364,17 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+       goto maybe_cache_add;
+     }
+ 
+-  total = buffilled;
++  /* Capture the result size without the key appended.   */
++  total = scratch->buffer_used;
++
++  /* Make a copy of the key.  The scratch buffer must not move after
++     this point.  */
++  key_copy = addgetnetgrentX_append_n (scratch, key, req->key_len);
++  if (key_copy == NULL)
++    return send_notfound (fd);
+ 
+   /* Fill in the dataset.  */
+-  dataset = (struct dataset *) buffer;
++  dataset = scratch->buffer.data;
+   timeout = datahead_init_pos (&dataset->head, total + req->key_len,
+ 			       total - offsetof (struct dataset, resp),
+ 			       he == NULL ? 0 : dh->nreloads + 1,
+@@ -363,11 +383,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+   dataset->resp.version = NSCD_VERSION;
+   dataset->resp.found = 1;
+   dataset->resp.nresults = nentries;
+-  dataset->resp.result_len = buffilled - sizeof (*dataset);
+-
+-  assert (buflen - buffilled >= req->key_len);
+-  key_copy = memcpy (buffer + buffilled, key, req->key_len);
+-  buffilled += req->key_len;
++  dataset->resp.result_len = total - sizeof (*dataset);
+ 
+   /* Now we can determine whether on refill we have to create a new
+      record or not.  */
+@@ -398,7 +414,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+     if (__glibc_likely (newp != NULL))
+       {
+ 	/* Adjust pointer into the memory block.  */
+-	key_copy = (char *) newp + (key_copy - buffer);
++	key_copy = (char *) newp + (key_copy - (char *) dataset);
+ 
+ 	dataset = memcpy (newp, dataset, total + req->key_len);
+ 	cacheable = true;
+@@ -439,7 +455,7 @@ addgetnetgrentX (struct database_dyn *db, int fd, request_header *req,
+     }
+ 
+  out:
+-  *resultp = dataset;
++  scratch->dataset = dataset;
+ 
+   return timeout;
+ }
+@@ -460,6 +476,9 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+   if (user != NULL)
+     key = strchr (key, '\0') + 1;
+   const char *domain = *key++ ? key : NULL;
++  struct addgetnetgrentX_scratch scratch;
++
++  addgetnetgrentX_scratch_init (&scratch);
+ 
+   if (__glibc_unlikely (debug_level > 0))
+     {
+@@ -475,12 +494,8 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+ 							    group, group_len,
+ 							    db, uid);
+   time_t timeout;
+-  void *tofree;
+   if (result != NULL)
+-    {
+-      timeout = result->head.timeout;
+-      tofree = NULL;
+-    }
++    timeout = result->head.timeout;
+   else
+     {
+       request_header req_get =
+@@ -489,7 +504,10 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+ 	  .key_len = group_len
+ 	};
+       timeout = addgetnetgrentX (db, -1, &req_get, group, uid, NULL, NULL,
+-				 &result, &tofree);
++				 &scratch);
++      result = scratch.dataset;
++      if (timeout < 0)
++	goto out;
+     }
+ 
+   struct indataset
+@@ -603,7 +621,7 @@ addinnetgrX (struct database_dyn *db, int fd, request_header *req,
+     }
+ 
+  out:
+-  free (tofree);
++  addgetnetgrentX_scratch_free (&scratch);
+   return timeout;
+ }
+ 
+@@ -613,11 +631,12 @@ addgetnetgrentX_ignore (struct database_dyn *db, int fd, request_header *req,
+ 			const char *key, uid_t uid, struct hashentry *he,
+ 			struct datahead *dh)
+ {
+-  struct dataset *ignore;
+-  void *tofree;
+-  time_t timeout = addgetnetgrentX (db, fd, req, key, uid, he, dh,
+-				    &ignore, &tofree);
+-  free (tofree);
++  struct addgetnetgrentX_scratch scratch;
++  addgetnetgrentX_scratch_init (&scratch);
++  time_t timeout = addgetnetgrentX (db, fd, req, key, uid, he, dh, &scratch);
++  addgetnetgrentX_scratch_free (&scratch);
++  if (timeout < 0)
++    timeout = 0;
+   return timeout;
+ }
+ 
+@@ -661,5 +680,9 @@ readdinnetgr (struct database_dyn *db, struct hashentry *he,
+       .key_len = he->len
+     };
+ 
+-  return addinnetgrX (db, -1, &req, db->data + he->key, he->owner, he, dh);
++  int timeout = addinnetgrX (db, -1, &req, db->data + he->key, he->owner,
++			     he, dh);
++  if (timeout < 0)
++    timeout = 0;
++  return timeout;
+ }
+
+commit fd658f026f25cf59e8db243bc3b3e09cd5a20ba0
+Author: H.J. Lu <hjl.tools@gmail.com>
+Date:   Thu Apr 25 08:06:52 2024 -0700
+
+    elf: Also compile dl-misc.os with $(rtld-early-cflags)
+    
+    Also compile dl-misc.os with $(rtld-early-cflags) to avoid
+    
+    Program received signal SIGILL, Illegal instruction.
+    0x00007ffff7fd36ea in _dl_strtoul (nptr=nptr@entry=0x7fffffffe2c9 "2",
+        endptr=endptr@entry=0x7fffffffd728) at dl-misc.c:156
+    156       bool positive = true;
+    (gdb) bt
+     #0  0x00007ffff7fd36ea in _dl_strtoul (nptr=nptr@entry=0x7fffffffe2c9 "2",
+        endptr=endptr@entry=0x7fffffffd728) at dl-misc.c:156
+     #1  0x00007ffff7fdb1a9 in tunable_initialize (
+        cur=cur@entry=0x7ffff7ffbc00 <tunable_list+2176>,
+        strval=strval@entry=0x7fffffffe2c9 "2", len=len@entry=1)
+        at dl-tunables.c:131
+     #2  0x00007ffff7fdb3a2 in parse_tunables (valstring=<optimized out>)
+        at dl-tunables.c:258
+     #3  0x00007ffff7fdb5d9 in __GI___tunables_init (envp=0x7fffffffdd58)
+        at dl-tunables.c:288
+     #4  0x00007ffff7fe44c3 in _dl_sysdep_start (
+        start_argptr=start_argptr@entry=0x7fffffffdcb0,
+        dl_main=dl_main@entry=0x7ffff7fe5f80 <dl_main>)
+        at ../sysdeps/unix/sysv/linux/dl-sysdep.c:110
+     #5  0x00007ffff7fe5cae in _dl_start_final (arg=0x7fffffffdcb0) at rtld.c:494
+     #6  _dl_start (arg=0x7fffffffdcb0) at rtld.c:581
+     #7  0x00007ffff7fe4b38 in _start ()
+    (gdb)
+    
+    when setting GLIBC_TUNABLES in glibc compiled with APX.
+    Reviewed-by: Florian Weimer <fweimer@redhat.com>
+    
+    (cherry picked from commit 049b7684c912dd32b67b1b15b0f43bf07d5f512e)
+
+diff --git a/elf/Makefile b/elf/Makefile
+index 69aa423c4b..a50a988e73 100644
+--- a/elf/Makefile
++++ b/elf/Makefile
+@@ -170,6 +170,7 @@ CFLAGS-.op += $(call elide-stack-protector,.op,$(elide-routines.os))
+ CFLAGS-.os += $(call elide-stack-protector,.os,$(all-rtld-routines))
+ 
+ # Add the requested compiler flags to the early startup code.
++CFLAGS-dl-misc.os += $(rtld-early-cflags)
+ CFLAGS-dl-printf.os += $(rtld-early-cflags)
+ CFLAGS-dl-setup_hash.os += $(rtld-early-cflags)
+ CFLAGS-dl-sysdep.os += $(rtld-early-cflags)
+
+commit 9831f98c266a8d56d1bf729b709c08e40375540c
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Apr 19 14:38:17 2024 +0200
+
+    login: Check default sizes of structs utmp, utmpx, lastlog
+    
+    The default <utmp-size.h> is for ports with a 64-bit time_t.
+    Ports with a 32-bit time_t or with __WORDSIZE_TIME64_COMPAT32=1
+    need to override it.
+    
+    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+    (cherry picked from commit 4d4da5aab936504b2d3eca3146e109630d9093c4)
+
+diff --git a/login/Makefile b/login/Makefile
+index 1e22008a61..b26ac42bfc 100644
+--- a/login/Makefile
++++ b/login/Makefile
+@@ -44,7 +44,7 @@ subdir-dirs = programs
+ vpath %.c programs
+ 
+ tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin tst-updwtmpx \
+-  tst-pututxline-lockfail tst-pututxline-cache
++  tst-pututxline-lockfail tst-pututxline-cache tst-utmp-size
+ 
+ # Empty compatibility library for old binaries.
+ extra-libs      := libutil
+diff --git a/login/tst-utmp-size.c b/login/tst-utmp-size.c
+new file mode 100644
+index 0000000000..1b7f7ff042
+--- /dev/null
++++ b/login/tst-utmp-size.c
+@@ -0,0 +1,33 @@
++/* Check expected sizes of struct utmp, struct utmpx, struct lastlog.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <utmp.h>
++#include <utmpx.h>
++#include <utmp-size.h>
++
++static int
++do_test (void)
++{
++  _Static_assert (sizeof (struct utmp) == UTMP_SIZE, "struct utmp size");
++  _Static_assert (sizeof (struct utmpx) == UTMP_SIZE, "struct utmpx size");
++  _Static_assert (sizeof (struct lastlog) == LASTLOG_SIZE,
++                  "struct lastlog size");
++  return 0;
++}
++
++#include <support/test-driver.c>
+diff --git a/sysdeps/arc/utmp-size.h b/sysdeps/arc/utmp-size.h
+new file mode 100644
+index 0000000000..a247fcd3da
+--- /dev/null
++++ b/sysdeps/arc/utmp-size.h
+@@ -0,0 +1,3 @@
++/* arc has less padding than other architectures with 64-bit time_t.  */
++#define UTMP_SIZE 392
++#define LASTLOG_SIZE 296
+diff --git a/sysdeps/arm/utmp-size.h b/sysdeps/arm/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/arm/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/csky/utmp-size.h b/sysdeps/csky/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/csky/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/generic/utmp-size.h b/sysdeps/generic/utmp-size.h
+new file mode 100644
+index 0000000000..89dbe878b0
+--- /dev/null
++++ b/sysdeps/generic/utmp-size.h
+@@ -0,0 +1,23 @@
++/* Expected sizes of utmp-related structures stored in files.  64-bit version.
++   Copyright (C) 2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++/* Expected size, in bytes, of struct utmp and struct utmpx.  */
++#define UTMP_SIZE 400
++
++/* Expected size, in bytes, of struct lastlog.  */
++#define LASTLOG_SIZE 296
+diff --git a/sysdeps/hppa/utmp-size.h b/sysdeps/hppa/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/hppa/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/m68k/utmp-size.h b/sysdeps/m68k/utmp-size.h
+new file mode 100644
+index 0000000000..5946685819
+--- /dev/null
++++ b/sysdeps/m68k/utmp-size.h
+@@ -0,0 +1,3 @@
++/* m68k has 2-byte alignment.  */
++#define UTMP_SIZE 382
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/microblaze/utmp-size.h b/sysdeps/microblaze/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/microblaze/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/mips/utmp-size.h b/sysdeps/mips/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/mips/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/nios2/utmp-size.h b/sysdeps/nios2/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/nios2/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/or1k/utmp-size.h b/sysdeps/or1k/utmp-size.h
+new file mode 100644
+index 0000000000..6b3653aa4d
+--- /dev/null
++++ b/sysdeps/or1k/utmp-size.h
+@@ -0,0 +1,3 @@
++/* or1k has less padding than other architectures with 64-bit time_t.  */
++#define UTMP_SIZE 392
++#define LASTLOG_SIZE 296
+diff --git a/sysdeps/powerpc/utmp-size.h b/sysdeps/powerpc/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/powerpc/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/riscv/utmp-size.h b/sysdeps/riscv/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/riscv/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/sh/utmp-size.h b/sysdeps/sh/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/sh/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/sparc/utmp-size.h b/sysdeps/sparc/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/sparc/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+diff --git a/sysdeps/x86/utmp-size.h b/sysdeps/x86/utmp-size.h
+new file mode 100644
+index 0000000000..8f21ebe1b6
+--- /dev/null
++++ b/sysdeps/x86/utmp-size.h
+@@ -0,0 +1,2 @@
++#define UTMP_SIZE 384
++#define LASTLOG_SIZE 292
+
+commit 836d43b98973e0845b739ff5d3aad3af09dc7d0f
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Fri Apr 19 14:38:17 2024 +0200
+
+    login: structs utmp, utmpx, lastlog _TIME_BITS independence (bug 30701)
+    
+    These structs describe file formats under /var/log, and should not
+    depend on the definition of _TIME_BITS.  This is achieved by
+    defining __WORDSIZE_TIME64_COMPAT32 to 1 on 32-bit ports that
+    support 32-bit time_t values (where __time_t is 32 bits).
+    
+    Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+    (cherry picked from commit 9abdae94c7454c45e02e97e4ed1eb1b1915d13d8)
+
+diff --git a/bits/wordsize.h b/bits/wordsize.h
+index 14edae3a11..53013a9275 100644
+--- a/bits/wordsize.h
++++ b/bits/wordsize.h
+@@ -21,7 +21,9 @@
+ #define __WORDSIZE32_PTRDIFF_LONG
+ 
+ /* Set to 1 in order to force time types to be 32 bits instead of 64 bits in
+-   struct lastlog and struct utmp{,x} on 64-bit ports.  This may be done in
++   struct lastlog and struct utmp{,x}.  This may be done in
+    order to make 64-bit ports compatible with 32-bit ports.  Set to 0 for
+-   64-bit ports where the time types are 64-bits or for any 32-bit ports.  */
++   64-bit ports where the time types are 64-bits and new 32-bit ports
++   where time_t is 64 bits, and there is no companion architecture with
++   32-bit time_t.  */
+ #define __WORDSIZE_TIME64_COMPAT32
+diff --git a/login/Makefile b/login/Makefile
+index b26ac42bfc..f91190e3dc 100644
+--- a/login/Makefile
++++ b/login/Makefile
+@@ -44,7 +44,9 @@ subdir-dirs = programs
+ vpath %.c programs
+ 
+ tests := tst-utmp tst-utmpx tst-grantpt tst-ptsname tst-getlogin tst-updwtmpx \
+-  tst-pututxline-lockfail tst-pututxline-cache tst-utmp-size
++  tst-pututxline-lockfail tst-pututxline-cache tst-utmp-size tst-utmp-size-64
++
++CFLAGS-tst-utmp-size-64.c += -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64
+ 
+ # Empty compatibility library for old binaries.
+ extra-libs      := libutil
+diff --git a/login/tst-utmp-size-64.c b/login/tst-utmp-size-64.c
+new file mode 100644
+index 0000000000..7a581a4c12
+--- /dev/null
++++ b/login/tst-utmp-size-64.c
+@@ -0,0 +1,2 @@
++/* The on-disk layout must not change in time64 mode.  */
++#include "tst-utmp-size.c"
+diff --git a/sysdeps/arm/bits/wordsize.h b/sysdeps/arm/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/arm/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/csky/bits/wordsize.h b/sysdeps/csky/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/csky/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/m68k/bits/wordsize.h b/sysdeps/m68k/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/m68k/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/microblaze/bits/wordsize.h b/sysdeps/microblaze/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/microblaze/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/mips/bits/wordsize.h b/sysdeps/mips/bits/wordsize.h
+index 57f0f2a22f..30dd3fd85d 100644
+--- a/sysdeps/mips/bits/wordsize.h
++++ b/sysdeps/mips/bits/wordsize.h
+@@ -19,11 +19,7 @@
+ 
+ #define __WORDSIZE			_MIPS_SZPTR
+ 
+-#if _MIPS_SIM == _ABI64
+-# define __WORDSIZE_TIME64_COMPAT32	1
+-#else
+-# define __WORDSIZE_TIME64_COMPAT32	0
+-#endif
++#define __WORDSIZE_TIME64_COMPAT32	1
+ 
+ #if __WORDSIZE == 32
+ #define __WORDSIZE32_SIZE_ULONG		0
+diff --git a/sysdeps/nios2/bits/wordsize.h b/sysdeps/nios2/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/nios2/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/powerpc/powerpc32/bits/wordsize.h b/sysdeps/powerpc/powerpc32/bits/wordsize.h
+index 04ca9debf0..6993fb6b29 100644
+--- a/sysdeps/powerpc/powerpc32/bits/wordsize.h
++++ b/sysdeps/powerpc/powerpc32/bits/wordsize.h
+@@ -2,10 +2,9 @@
+ 
+ #if defined __powerpc64__
+ # define __WORDSIZE	64
+-# define __WORDSIZE_TIME64_COMPAT32	1
+ #else
+ # define __WORDSIZE	32
+-# define __WORDSIZE_TIME64_COMPAT32	0
+ # define __WORDSIZE32_SIZE_ULONG	0
+ # define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
++#define __WORDSIZE_TIME64_COMPAT32	1
+diff --git a/sysdeps/powerpc/powerpc64/bits/wordsize.h b/sysdeps/powerpc/powerpc64/bits/wordsize.h
+index 04ca9debf0..6993fb6b29 100644
+--- a/sysdeps/powerpc/powerpc64/bits/wordsize.h
++++ b/sysdeps/powerpc/powerpc64/bits/wordsize.h
+@@ -2,10 +2,9 @@
+ 
+ #if defined __powerpc64__
+ # define __WORDSIZE	64
+-# define __WORDSIZE_TIME64_COMPAT32	1
+ #else
+ # define __WORDSIZE	32
+-# define __WORDSIZE_TIME64_COMPAT32	0
+ # define __WORDSIZE32_SIZE_ULONG	0
+ # define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
++#define __WORDSIZE_TIME64_COMPAT32	1
+diff --git a/sysdeps/sh/bits/wordsize.h b/sysdeps/sh/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/sh/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/sparc/sparc32/bits/wordsize.h b/sysdeps/sparc/sparc32/bits/wordsize.h
+index 4bbd2e63b4..a2e79e0fa9 100644
+--- a/sysdeps/sparc/sparc32/bits/wordsize.h
++++ b/sysdeps/sparc/sparc32/bits/wordsize.h
+@@ -1,6 +1,6 @@
+ /* Determine the wordsize from the preprocessor defines.  */
+ 
+ #define __WORDSIZE	32
+-#define __WORDSIZE_TIME64_COMPAT32	0
++#define __WORDSIZE_TIME64_COMPAT32	1
+ #define __WORDSIZE32_SIZE_ULONG	0
+ #define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/sparc/sparc64/bits/wordsize.h b/sysdeps/sparc/sparc64/bits/wordsize.h
+index 2f66f10d72..ea103e5970 100644
+--- a/sysdeps/sparc/sparc64/bits/wordsize.h
++++ b/sysdeps/sparc/sparc64/bits/wordsize.h
+@@ -2,10 +2,9 @@
+ 
+ #if defined __arch64__ || defined __sparcv9
+ # define __WORDSIZE	64
+-# define __WORDSIZE_TIME64_COMPAT32	1
+ #else
+ # define __WORDSIZE	32
+-# define __WORDSIZE_TIME64_COMPAT32	0
+ # define __WORDSIZE32_SIZE_ULONG	0
+ # define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
++#define __WORDSIZE_TIME64_COMPAT32	1
+diff --git a/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h b/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
+new file mode 100644
+index 0000000000..6ecbfe7c86
+--- /dev/null
++++ b/sysdeps/unix/sysv/linux/hppa/bits/wordsize.h
+@@ -0,0 +1,21 @@
++/* Copyright (C) 1999-2024 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#define __WORDSIZE			32
++#define __WORDSIZE_TIME64_COMPAT32	1
++#define __WORDSIZE32_SIZE_ULONG		0
++#define __WORDSIZE32_PTRDIFF_LONG	0
+diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h b/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
+index 04ca9debf0..6993fb6b29 100644
+--- a/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
++++ b/sysdeps/unix/sysv/linux/powerpc/bits/wordsize.h
+@@ -2,10 +2,9 @@
+ 
+ #if defined __powerpc64__
+ # define __WORDSIZE	64
+-# define __WORDSIZE_TIME64_COMPAT32	1
+ #else
+ # define __WORDSIZE	32
+-# define __WORDSIZE_TIME64_COMPAT32	0
+ # define __WORDSIZE32_SIZE_ULONG	0
+ # define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
++#define __WORDSIZE_TIME64_COMPAT32	1
+diff --git a/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h b/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
+index 7562875ee2..ea103e5970 100644
+--- a/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
++++ b/sysdeps/unix/sysv/linux/sparc/bits/wordsize.h
+@@ -2,10 +2,9 @@
+ 
+ #if defined __arch64__ || defined __sparcv9
+ # define __WORDSIZE	64
+-# define __WORDSIZE_TIME64_COMPAT32	1
+ #else
+ # define __WORDSIZE	32
+ # define __WORDSIZE32_SIZE_ULONG	0
+ # define __WORDSIZE32_PTRDIFF_LONG	0
+-# define __WORDSIZE_TIME64_COMPAT32	0
+ #endif
++#define __WORDSIZE_TIME64_COMPAT32	1
+diff --git a/sysdeps/x86/bits/wordsize.h b/sysdeps/x86/bits/wordsize.h
+index 70f652bca1..3f40aa76f9 100644
+--- a/sysdeps/x86/bits/wordsize.h
++++ b/sysdeps/x86/bits/wordsize.h
+@@ -8,10 +8,9 @@
+ #define __WORDSIZE32_PTRDIFF_LONG	0
+ #endif
+ 
++#define __WORDSIZE_TIME64_COMPAT32 1
++
+ #ifdef __x86_64__
+-# define __WORDSIZE_TIME64_COMPAT32	1
+ /* Both x86-64 and x32 use the 64-bit system call interface.  */
+ # define __SYSCALL_WORDSIZE		64
+-#else
+-# define __WORDSIZE_TIME64_COMPAT32	0
+ #endif
+
+commit acc56074b0a5127631a64640aef1b7c5c103ebd8
+Author: Florian Weimer <fweimer@redhat.com>
+Date:   Thu May 2 17:06:19 2024 +0200
+
+    nscd: Use time_t for return type of addgetnetgrentX
+    
+    Using int may give false results for future dates (timeouts after the
+    year 2028).
+    
+    Fixes commit 04a21e050d64a1193a6daab872bca2528bda44b ("CVE-2024-33601,
+    CVE-2024-33602: nscd: netgroup: Use two buffers in addgetnetgrentX
+    (bug 31680)").
+    
+    Reviewed-by: Carlos O'Donell <carlos@redhat.com>
+    (cherry picked from commit 4bbca1a44691a6e9adcee5c6798a707b626bc331)
+
+diff --git a/nscd/netgroupcache.c b/nscd/netgroupcache.c
+index e8fe041846..01d554af9c 100644
+--- a/nscd/netgroupcache.c
++++ b/nscd/netgroupcache.c
+@@ -680,8 +680,8 @@ readdinnetgr (struct database_dyn *db, struct hashentry *he,
+       .key_len = he->len
+     };
+ 
+-  int timeout = addinnetgrX (db, -1, &req, db->data + he->key, he->owner,
+-			     he, dh);
++  time_t timeout = addinnetgrX (db, -1, &req, db->data + he->key, he->owner,
++				he, dh);
+   if (timeout < 0)
+     timeout = 0;
+   return timeout;
+
+commit 273a835fe7c685cc54266bb8b502787bad5e9bae
+Author: Carlos O'Donell <carlos@redhat.com>
+Date:   Tue Apr 23 13:30:37 2024 -0400
+
+    time: Allow later version licensing.
+    
+    The FSF's Licensing and Compliance Lab noted a discrepancy in the
+    licensing of several files in the glibc package.
+    
+    When timespect_get.c was impelemented the license did not include
+    the standard ", or (at your option) any later version." text.
+    
+    Change the license in timespec_get.c and all copied files to match
+    the expected license.
+    
+    This change was previously approved in principle by the FSF in
+    RT ticket #1316403. And a similar instance was fixed in
+    commit 46703efa02f6ddebce5ee54c92f7c32598de0de6.
+    
+    (cherry picked from commit 91695ee4598b39d181ab8df579b888a8863c4cab)
+
+diff --git a/sysdeps/unix/sysv/linux/timespec_get.c b/sysdeps/unix/sysv/linux/timespec_get.c
+index c6e5e66289..778d1e3354 100644
+--- a/sysdeps/unix/sysv/linux/timespec_get.c
++++ b/sysdeps/unix/sysv/linux/timespec_get.c
+@@ -5,7 +5,7 @@
+    The GNU C Library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 2.1 of the License.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+diff --git a/sysdeps/unix/sysv/linux/timespec_getres.c b/sysdeps/unix/sysv/linux/timespec_getres.c
+index 5acebe2a2c..2eef9e512c 100644
+--- a/sysdeps/unix/sysv/linux/timespec_getres.c
++++ b/sysdeps/unix/sysv/linux/timespec_getres.c
+@@ -5,7 +5,7 @@
+    The GNU C Library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 2.1 of the License.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+diff --git a/time/timespec_get.c b/time/timespec_get.c
+index b031e42ca2..26a044bca6 100644
+--- a/time/timespec_get.c
++++ b/time/timespec_get.c
+@@ -4,7 +4,7 @@
+    The GNU C Library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 2.1 of the License.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+diff --git a/time/timespec_getres.c b/time/timespec_getres.c
+index edb397507c..2e18b8bcac 100644
+--- a/time/timespec_getres.c
++++ b/time/timespec_getres.c
+@@ -5,7 +5,7 @@
+    The GNU C Library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+-   version 2.1 of the License.
++   version 2.1 of the License, or (at your option) any later version.
+ 
+    The GNU C Library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+
+commit 3148714ab61ad61281bae5a30f530d637034ac3b
+Author: Gabi Falk <gabifalk@gmx.com>
+Date:   Tue Apr 30 20:05:02 2024 +0000
+
+    i586: Fix multiple definitions of __memcpy_chk and __mempcpy_chk
+    
+    /home/bmg/install/compilers/x86_64-linux-gnu/lib/gcc/x86_64-glibc-linux-gnu/13.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: /home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(memcpy_chk.o): in function `__memcpy_chk':
+    /home/bmg/src/glibc/debug/../sysdeps/i386/memcpy_chk.S:29: multiple definition of `__memcpy_chk';/home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(memcpy.o):/home/bmg/src/glibc/string/../sysdeps/i386/i586/memcpy.S:31: first defined here /home/bmg/install/compilers/x86_64-linux-gnu/lib/gcc/x86_64-glibc-linux-gnu/13.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: /home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(mempcpy_chk.o): in function `__mempcpy_chk': /home/bmg/src/glibc/debug/../sysdeps/i386/mempcpy_chk.S:28: multiple definition of `__mempcpy_chk'; /home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(mempcpy.o):/home/bmg/src/glibc/string/../sysdeps/i386/i586/memcpy.S:31: first defined here
+    
+    After this change, the static library built for i586, regardless of PIC
+    options, contains implementations of these functions respectively from
+    sysdeps/i386/memcpy_chk.S and sysdeps/i386/mempcpy_chk.S.  This ensures
+    that memcpy and mempcpy won't pull in __chk_fail and the routines it
+    calls.
+    
+    Reported-by: Florian Weimer <fweimer@redhat.com>
+    Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
+    (cherry picked from commit 789894a2f554d4503ecb2f13b2b4e93e43414f33)
+
+diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
+index 3e26f112d6..79856d498a 100644
+--- a/sysdeps/i386/i586/memcpy.S
++++ b/sysdeps/i386/i586/memcpy.S
+@@ -26,7 +26,7 @@
+ #define LEN	SRC+4
+ 
+         .text
+-#if defined PIC && IS_IN (libc)
++#if defined SHARED && IS_IN (libc)
+ ENTRY (__memcpy_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+
+commit ad92c483a4bd34db1cfb3eb625212ea64848244f
+Author: Gabi Falk <gabifalk@gmx.com>
+Date:   Tue Apr 30 20:05:03 2024 +0000
+
+    i686: Fix multiple definitions of __memmove_chk and __memset_chk
+    
+    Commit c73c96a4a1af1326df7f96eec58209e1e04066d8 updated memcpy.S and
+    mempcpy.S, but omitted memmove.S and memset.S.  As a result, the static
+    library built as PIC, whether with or without multiarch support,
+    contains two definitions for each of the __memmove_chk and __memset_chk
+    symbols.
+    
+    /usr/lib/gcc/i686-pc-linux-gnu/14/../../../../i686-pc-linux-gnu/bin/ld: /usr/lib/gcc/i686-pc-linux-gnu/14/../../../../lib/libc.a(memset-ia32.o): in function `__memset_chk':
+    /var/tmp/portage/sys-libs/glibc-2.39-r3/work/glibc-2.39/string/../sysdeps/i386/i686/memset.S:32: multiple definition of `__memset_chk'; /usr/lib/gcc/i686-pc-linux-gnu/14/../../../../lib/libc.a(memset_chk.o):/var/tmp/portage/sys-libs/glibc-2.39-r3/work/glibc-2.39/debug/../sysdeps/i386/i686/multiarch/memset_chk.c:24: first defined here
+    
+    After this change, regardless of PIC options, the static library, built
+    for i686 with multiarch contains implementations of these functions
+    respectively from debug/memmove_chk.c and debug/memset_chk.c, and
+    without multiarch contains implementations of these functions
+    respectively from sysdeps/i386/memmove_chk.S and
+    sysdeps/i386/memset_chk.S.  This ensures that memmove and memset won't
+    pull in __chk_fail and the routines it calls.
+    
+    Reported-by: Sam James <sam@gentoo.org>
+    Tested-by: Sam James <sam@gentoo.org>
+    Fixes: c73c96a4a1 ("i686: Fix build with --disable-multiarch")
+    Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
+    (cherry picked from commit 5a2cf833f5772d6c37c7adac388dd9af9cc1c4b9)
+
+diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
+index f230359ad6..effd958120 100644
+--- a/sysdeps/i386/i686/memmove.S
++++ b/sysdeps/i386/i686/memmove.S
+@@ -29,7 +29,7 @@
+ #define SRC	DEST+4
+ #define LEN	SRC+4
+ 
+-#if defined PIC && IS_IN (libc)
++#if defined SHARED && IS_IN (libc)
+ ENTRY_CHK (__memmove_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
+index f02f5a6df7..ab06771ea0 100644
+--- a/sysdeps/i386/i686/memset.S
++++ b/sysdeps/i386/i686/memset.S
+@@ -27,7 +27,7 @@
+ #define LEN	CHR+4
+ 
+         .text
+-#if defined PIC && IS_IN (libc)
++#if defined SHARED && IS_IN (libc)
+ ENTRY_CHK (__memset_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+
+commit ff110b2591f0bdeccd121c3726af19c62d6fb184
+Author: Gabi Falk <gabifalk@gmx.com>
+Date:   Tue Apr 30 20:05:04 2024 +0000
+
+    Add a test to check for duplicate definitions in the static library
+    
+    This change follows two previous fixes addressing multiple definitions
+    of __memcpy_chk and __mempcpy_chk functions on i586, and __memmove_chk
+    and __memset_chk functions on i686.  The test is intended to prevent
+    such issues from occurring in the future.
+    
+    Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
+    (cherry picked from commit ded2e0753e9c46debeb2e0d26c5e560d2581d314)
+
+diff --git a/Makefile b/Makefile
+index 7052b46df8..2e351c0321 100644
+--- a/Makefile
++++ b/Makefile
+@@ -577,6 +577,13 @@ $(objpfx)lint-makefiles.out: scripts/lint-makefiles.sh
+ 	$(SHELL) $< "$(PYTHON)" `pwd` > $@ ; \
+ 	$(evaluate-test)
+ 
++# Link libc.a as a whole to verify that it does not contain multiple
++# definitions of any symbols.
++tests-special += $(objpfx)link-static-libc.out
++$(objpfx)link-static-libc.out:
++	$(LINK.o) $(whole-archive) -r $(objpfx)libc.a -o /dev/null > $@ 2>&1; \
++	$(evaluate-test)
++
+ # Print test summary for tests in $1 .sum file;
+ # $2 is optional test identifier.
+ # Fail if there are unexpected failures in the test results.
+
+commit fa616ea3730cb42046d19f28d611be0bc390af7c
+Author: Sam James <sam@gentoo.org>
+Date:   Sat May 4 13:28:13 2024 +0100
+
+    Revert "Add a test to check for duplicate definitions in the static library"
+    
+    This reverts commit ff110b2591f0bdeccd121c3726af19c62d6fb184.
+    
+    I had the wrong cherry-pick reference (the commit content is right; it's
+    just referring to a base that isn't upstream), but let's revert and reapply
+    for clarity.
+    
+    Signed-off-by: Sam James <sam@gentoo.org>
+
+diff --git a/Makefile b/Makefile
+index 2e351c0321..7052b46df8 100644
+--- a/Makefile
++++ b/Makefile
+@@ -577,13 +577,6 @@ $(objpfx)lint-makefiles.out: scripts/lint-makefiles.sh
+ 	$(SHELL) $< "$(PYTHON)" `pwd` > $@ ; \
+ 	$(evaluate-test)
+ 
+-# Link libc.a as a whole to verify that it does not contain multiple
+-# definitions of any symbols.
+-tests-special += $(objpfx)link-static-libc.out
+-$(objpfx)link-static-libc.out:
+-	$(LINK.o) $(whole-archive) -r $(objpfx)libc.a -o /dev/null > $@ 2>&1; \
+-	$(evaluate-test)
+-
+ # Print test summary for tests in $1 .sum file;
+ # $2 is optional test identifier.
+ # Fail if there are unexpected failures in the test results.
+
+commit c16871e662cd0f3370173d916864b19e69f1bc9a
+Author: Sam James <sam@gentoo.org>
+Date:   Sat May 4 13:28:51 2024 +0100
+
+    Revert "i686: Fix multiple definitions of __memmove_chk and __memset_chk"
+    
+    This reverts commit ad92c483a4bd34db1cfb3eb625212ea64848244f.
+    
+    I had the wrong cherry-pick reference (the commit content is right; it's
+    just referring to a base that isn't upstream), but let's revert and reapply
+    for clarity.
+    
+    Signed-off-by: Sam James <sam@gentoo.org>
+
+diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
+index effd958120..f230359ad6 100644
+--- a/sysdeps/i386/i686/memmove.S
++++ b/sysdeps/i386/i686/memmove.S
+@@ -29,7 +29,7 @@
+ #define SRC	DEST+4
+ #define LEN	SRC+4
+ 
+-#if defined SHARED && IS_IN (libc)
++#if defined PIC && IS_IN (libc)
+ ENTRY_CHK (__memmove_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
+index ab06771ea0..f02f5a6df7 100644
+--- a/sysdeps/i386/i686/memset.S
++++ b/sysdeps/i386/i686/memset.S
+@@ -27,7 +27,7 @@
+ #define LEN	CHR+4
+ 
+         .text
+-#if defined SHARED && IS_IN (libc)
++#if defined PIC && IS_IN (libc)
+ ENTRY_CHK (__memset_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+
+commit 5141d4d83c17406f0eaea3e345ef2b52e10f386e
+Author: Sam James <sam@gentoo.org>
+Date:   Sat May 4 13:28:54 2024 +0100
+
+    Revert "i586: Fix multiple definitions of __memcpy_chk and __mempcpy_chk"
+    
+    This reverts commit 3148714ab61ad61281bae5a30f530d637034ac3b.
+    
+    I had the wrong cherry-pick reference (the commit content is right; it's
+    just referring to a base that isn't upstream), but let's revert and reapply
+    for clarity.
+    
+    Signed-off-by: Sam James <sam@gentoo.org>
+
+diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
+index 79856d498a..3e26f112d6 100644
+--- a/sysdeps/i386/i586/memcpy.S
++++ b/sysdeps/i386/i586/memcpy.S
+@@ -26,7 +26,7 @@
+ #define LEN	SRC+4
+ 
+         .text
+-#if defined SHARED && IS_IN (libc)
++#if defined PIC && IS_IN (libc)
+ ENTRY (__memcpy_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+
+commit 8323a83abd73446dc434aceff66219712c09140b
+Author: Gabi Falk <gabifalk@gmx.com>
+Date:   Tue Apr 30 20:05:02 2024 +0000
+
+    i586: Fix multiple definitions of __memcpy_chk and __mempcpy_chk
+    
+    /home/bmg/install/compilers/x86_64-linux-gnu/lib/gcc/x86_64-glibc-linux-gnu/13.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: /home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(memcpy_chk.o): in function `__memcpy_chk':
+    /home/bmg/src/glibc/debug/../sysdeps/i386/memcpy_chk.S:29: multiple definition of `__memcpy_chk';/home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(memcpy.o):/home/bmg/src/glibc/string/../sysdeps/i386/i586/memcpy.S:31: first defined here /home/bmg/install/compilers/x86_64-linux-gnu/lib/gcc/x86_64-glibc-linux-gnu/13.2.1/../../../../x86_64-glibc-linux-gnu/bin/ld: /home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(mempcpy_chk.o): in function `__mempcpy_chk': /home/bmg/src/glibc/debug/../sysdeps/i386/mempcpy_chk.S:28: multiple definition of `__mempcpy_chk'; /home/bmg/build/glibcs/i586-linux-gnu/glibc/libc.a(mempcpy.o):/home/bmg/src/glibc/string/../sysdeps/i386/i586/memcpy.S:31: first defined here
+    
+    After this change, the static library built for i586, regardless of PIC
+    options, contains implementations of these functions respectively from
+    sysdeps/i386/memcpy_chk.S and sysdeps/i386/mempcpy_chk.S.  This ensures
+    that memcpy and mempcpy won't pull in __chk_fail and the routines it
+    calls.
+    
+    Reported-by: Florian Weimer <fweimer@redhat.com>
+    Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
+    (cherry picked from commit 0fdf4ba48ccce5abf567340b0ab8fa8ed8a9bc6e)
+
+diff --git a/sysdeps/i386/i586/memcpy.S b/sysdeps/i386/i586/memcpy.S
+index 3e26f112d6..79856d498a 100644
+--- a/sysdeps/i386/i586/memcpy.S
++++ b/sysdeps/i386/i586/memcpy.S
+@@ -26,7 +26,7 @@
+ #define LEN	SRC+4
+ 
+         .text
+-#if defined PIC && IS_IN (libc)
++#if defined SHARED && IS_IN (libc)
+ ENTRY (__memcpy_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+
+commit 8b005d7869debac4d5cd67f65e49a0fad89da9ad
+Author: Gabi Falk <gabifalk@gmx.com>
+Date:   Tue Apr 30 20:05:03 2024 +0000
+
+    i686: Fix multiple definitions of __memmove_chk and __memset_chk
+    
+    Commit c73c96a4a1af1326df7f96eec58209e1e04066d8 updated memcpy.S and
+    mempcpy.S, but omitted memmove.S and memset.S.  As a result, the static
+    library built as PIC, whether with or without multiarch support,
+    contains two definitions for each of the __memmove_chk and __memset_chk
+    symbols.
+    
+    /usr/lib/gcc/i686-pc-linux-gnu/14/../../../../i686-pc-linux-gnu/bin/ld: /usr/lib/gcc/i686-pc-linux-gnu/14/../../../../lib/libc.a(memset-ia32.o): in function `__memset_chk':
+    /var/tmp/portage/sys-libs/glibc-2.39-r3/work/glibc-2.39/string/../sysdeps/i386/i686/memset.S:32: multiple definition of `__memset_chk'; /usr/lib/gcc/i686-pc-linux-gnu/14/../../../../lib/libc.a(memset_chk.o):/var/tmp/portage/sys-libs/glibc-2.39-r3/work/glibc-2.39/debug/../sysdeps/i386/i686/multiarch/memset_chk.c:24: first defined here
+    
+    After this change, regardless of PIC options, the static library, built
+    for i686 with multiarch contains implementations of these functions
+    respectively from debug/memmove_chk.c and debug/memset_chk.c, and
+    without multiarch contains implementations of these functions
+    respectively from sysdeps/i386/memmove_chk.S and
+    sysdeps/i386/memset_chk.S.  This ensures that memmove and memset won't
+    pull in __chk_fail and the routines it calls.
+    
+    Reported-by: Sam James <sam@gentoo.org>
+    Tested-by: Sam James <sam@gentoo.org>
+    Fixes: c73c96a4a1 ("i686: Fix build with --disable-multiarch")
+    Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
+    (cherry picked from commit 5a2cf833f5772d6c37c7adac388dd9af9cc1c4b9)
+
+diff --git a/sysdeps/i386/i686/memmove.S b/sysdeps/i386/i686/memmove.S
+index f230359ad6..effd958120 100644
+--- a/sysdeps/i386/i686/memmove.S
++++ b/sysdeps/i386/i686/memmove.S
+@@ -29,7 +29,7 @@
+ #define SRC	DEST+4
+ #define LEN	SRC+4
+ 
+-#if defined PIC && IS_IN (libc)
++#if defined SHARED && IS_IN (libc)
+ ENTRY_CHK (__memmove_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+diff --git a/sysdeps/i386/i686/memset.S b/sysdeps/i386/i686/memset.S
+index f02f5a6df7..ab06771ea0 100644
+--- a/sysdeps/i386/i686/memset.S
++++ b/sysdeps/i386/i686/memset.S
+@@ -27,7 +27,7 @@
+ #define LEN	CHR+4
+ 
+         .text
+-#if defined PIC && IS_IN (libc)
++#if defined SHARED && IS_IN (libc)
+ ENTRY_CHK (__memset_chk)
+ 	movl	12(%esp), %eax
+ 	cmpl	%eax, 16(%esp)
+
+commit f8e462342189525e4605cf233b8f798d1c7f398d
+Author: Gabi Falk <gabifalk@gmx.com>
+Date:   Tue Apr 30 20:05:04 2024 +0000
+
+    Add a test to check for duplicate definitions in the static library
+    
+    This change follows two previous fixes addressing multiple definitions
+    of __memcpy_chk and __mempcpy_chk functions on i586, and __memmove_chk
+    and __memset_chk functions on i686.  The test is intended to prevent
+    such issues from occurring in the future.
+    
+    Signed-off-by: Gabi Falk <gabifalk@gmx.com>
+    Reviewed-by: H.J. Lu <hjl.tools@gmail.com>
+    Reviewed-by: Dmitry V. Levin <ldv@altlinux.org>
+    (cherry picked from commit ded2e0753e9c46debeb2e0d26c5e560d2581d314)
+
+diff --git a/Makefile b/Makefile
+index 7052b46df8..2e351c0321 100644
+--- a/Makefile
++++ b/Makefile
+@@ -577,6 +577,13 @@ $(objpfx)lint-makefiles.out: scripts/lint-makefiles.sh
+ 	$(SHELL) $< "$(PYTHON)" `pwd` > $@ ; \
+ 	$(evaluate-test)
+ 
++# Link libc.a as a whole to verify that it does not contain multiple
++# definitions of any symbols.
++tests-special += $(objpfx)link-static-libc.out
++$(objpfx)link-static-libc.out:
++	$(LINK.o) $(whole-archive) -r $(objpfx)libc.a -o /dev/null > $@ 2>&1; \
++	$(evaluate-test)
++
+ # Print test summary for tests in $1 .sum file;
+ # $2 is optional test identifier.
+ # Fail if there are unexpected failures in the test results.
diff --git a/pkgs/development/libraries/glibc/common.nix b/pkgs/development/libraries/glibc/common.nix
index 4d6fb5a54b398..25a83b1dc6d21 100644
--- a/pkgs/development/libraries/glibc/common.nix
+++ b/pkgs/development/libraries/glibc/common.nix
@@ -36,6 +36,7 @@
 , withLinuxHeaders ? false
 , profilingLibraries ? false
 , withGd ? false
+, enableCET ? false
 , extraBuildInputs ? []
 , extraNativeBuildInputs ? []
 , ...
@@ -43,7 +44,7 @@
 
 let
   version = "2.39";
-  patchSuffix = "-5";
+  patchSuffix = "-52";
   sha256 = "sha256-93vUfPgXDFc2Wue/hmlsEYrbOxINMlnGTFAtPcHi2SY=";
 in
 
@@ -59,11 +60,15 @@ stdenv.mkDerivation ({
     [
       /* No tarballs for stable upstream branch, only https://sourceware.org/git/glibc.git and using git would complicate bootstrapping.
           $ git fetch --all -p && git checkout origin/release/2.39/master && git describe
-          glibc-2.39-5-ge0910f1d32
-          $ git show --minimal --reverse glibc-2.39.. > 2.39-master.patch
+          glibc-2.39-52-gf8e4623421
+          $ git show --minimal --reverse glibc-2.39.. ':!ADVISORIES' > 2.39-master.patch
 
          To compare the archive contents zdiff can be used.
           $ diff -u 2.39-master.patch ../nixpkgs/pkgs/development/libraries/glibc/2.39-master.patch
+
+         Please note that each commit has changes to the file ADVISORIES excluded since
+         that conflicts with the directory advisories/ making cross-builds from
+         hosts with case-insensitive file-systems impossible.
        */
       ./2.39-master.patch
 
@@ -154,9 +159,9 @@ stdenv.mkDerivation ({
       # and on aarch64 with binutils 2.30 or later.
       # https://sourceware.org/glibc/wiki/PortStatus
       "--enable-static-pie"
-    ] ++ lib.optionals stdenv.hostPlatform.isx86_64 [
+    ] ++ lib.optionals (enableCET != false) [
       # Enable Intel Control-flow Enforcement Technology (CET) support
-      "--enable-cet"
+      "--enable-cet${if builtins.isString enableCET then "=${enableCET}"  else ""}"
     ] ++ lib.optionals withLinuxHeaders [
       "--enable-kernel=3.10.0" # RHEL 7 and derivatives, seems oldest still supported kernel
     ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
@@ -208,7 +213,7 @@ stdenv.mkDerivation ({
   passthru = { inherit version; minorRelease = version; };
 }
 
-// (removeAttrs args [ "withLinuxHeaders" "withGd" "postInstall" "makeFlags" ]) //
+// (removeAttrs args [ "withLinuxHeaders" "withGd" "enableCET" "postInstall" "makeFlags" ]) //
 
 {
   src = fetchurl {
@@ -273,7 +278,7 @@ stdenv.mkDerivation ({
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/libc/";
-    description = "The GNU C Library";
+    description = "GNU C Library";
 
     longDescription =
       '' Any Unix-like operating system needs a C library: the library which
diff --git a/pkgs/development/libraries/glibc/default.nix b/pkgs/development/libraries/glibc/default.nix
index 3f7331461fea5..96a08178637df 100644
--- a/pkgs/development/libraries/glibc/default.nix
+++ b/pkgs/development/libraries/glibc/default.nix
@@ -2,6 +2,7 @@
 , withLinuxHeaders ? true
 , profilingLibraries ? false
 , withGd ? false
+, enableCET ? if stdenv.hostPlatform.isx86_64 then "permissive" else false
 , pkgsBuildBuild
 , libgcc
 }:
@@ -15,7 +16,7 @@ let
 in
 
 (callPackage ./common.nix { inherit stdenv; } {
-  inherit withLinuxHeaders withGd profilingLibraries;
+  inherit withLinuxHeaders withGd profilingLibraries enableCET;
   pname = "glibc" + lib.optionalString withGd "-gd" + lib.optionalString (stdenv.cc.isGNU && libgcc==null) "-nolibgcc";
 }).overrideAttrs(previousAttrs: {
 
@@ -181,6 +182,6 @@ in
         inherit libgcc;
       };
 
-  meta = (previousAttrs.meta or {}) // { description = "The GNU C Library"; };
+  meta = (previousAttrs.meta or {}) // { description = "GNU C Library"; };
 })
 
diff --git a/pkgs/development/libraries/glibc/mtrace.nix b/pkgs/development/libraries/glibc/mtrace.nix
index 926c0d91cdf0b..c9d5369e13c2f 100644
--- a/pkgs/development/libraries/glibc/mtrace.nix
+++ b/pkgs/development/libraries/glibc/mtrace.nix
@@ -35,7 +35,7 @@ glibc.overrideAttrs (oldAttrs: {
   separateDebugInfo = false;
 
   meta = oldAttrs.meta // {
-    description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3).";
+    description = "Perl script used to interpret and provide human readable output of the trace log contained in the file mtracedata, whose contents were produced by mtrace(3)";
     mainProgram = "mtrace";
   };
 })
diff --git a/pkgs/development/libraries/glibmm/2.68.nix b/pkgs/development/libraries/glibmm/2.68.nix
index c3c444f407e00..acace1c6a5bfe 100644
--- a/pkgs/development/libraries/glibmm/2.68.nix
+++ b/pkgs/development/libraries/glibmm/2.68.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "glibmm";
-  version = "2.78.1";
+  version = "2.80.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-9HPyl10mw0CeES7RHtNkBvs4Q/qXXfV1wi1MuEMIX2E=";
+    hash = "sha256-U5sKKeFalmdsTwWUVBJQVmxcpE2l1Nh6NzL6LQeQnko=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/glibmm/default.nix b/pkgs/development/libraries/glibmm/default.nix
index 8800070ab61fb..f9f8a4568a579 100644
--- a/pkgs/development/libraries/glibmm/default.nix
+++ b/pkgs/development/libraries/glibmm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "glibmm";
-  version = "2.66.6";
+  version = "2.66.7";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-U1h0JZgYHlNR17+NoHK/k+bdXxeNJ2QNTkYryPFOFS8=";
+    hash = "sha256-/gLB5fWCWUDYK1a27DGhLAbAXBWDz+Yvk00HY+HlQrM=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/globalarrays/default.nix b/pkgs/development/libraries/globalarrays/default.nix
index f7bc072f1757d..ee7876e548d40 100644
--- a/pkgs/development/libraries/globalarrays/default.nix
+++ b/pkgs/development/libraries/globalarrays/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchpatch, fetchFromGitHub, autoreconfHook
+{ lib, stdenv, fetchFromGitHub, autoreconfHook
 , blas, gfortran, openssh, mpi
 } :
 
diff --git a/pkgs/development/libraries/gloox/default.nix b/pkgs/development/libraries/gloox/default.nix
index 7bf1bfb4bd16b..4ecae5fe48e07 100644
--- a/pkgs/development/libraries/gloox/default.nix
+++ b/pkgs/development/libraries/gloox/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec{
     ++ lib.optional idnSupport libidn;
 
   meta = with lib; {
-    description = "A portable high-level Jabber/XMPP library for C++";
+    description = "Portable high-level Jabber/XMPP library for C++";
     mainProgram = "gloox-config";
     homepage = "http://camaya.net/gloox";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/glpk/default.nix b/pkgs/development/libraries/glpk/default.nix
index a78170909caa9..9fa8765f054ec 100644
--- a/pkgs/development/libraries/glpk/default.nix
+++ b/pkgs/development/libraries/glpk/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "The GNU Linear Programming Kit";
+    description = "GNU Linear Programming Kit";
 
     longDescription =
       '' The GNU Linear Programming Kit is intended for solving large
diff --git a/pkgs/development/libraries/glui/default.nix b/pkgs/development/libraries/glui/default.nix
index 511ec60db2fbd..716c998b9c990 100644
--- a/pkgs/development/libraries/glui/default.nix
+++ b/pkgs/development/libraries/glui/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A user interface library using OpenGL";
+    description = "User interface library using OpenGL";
     license = licenses.zlib ;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gmime/2.nix b/pkgs/development/libraries/gmime/2.nix
index d6369227739b8..6f48f6ed3af44 100644
--- a/pkgs/development/libraries/gmime/2.nix
+++ b/pkgs/development/libraries/gmime/2.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jstedfast/gmime/";
-    description = "A C/C++ library for creating, editing and parsing MIME messages and structures";
+    description = "C/C++ library for creating, editing and parsing MIME messages and structures";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/gmime/3.nix b/pkgs/development/libraries/gmime/3.nix
index 8f20d756c1f9f..25d6c85aa328d 100644
--- a/pkgs/development/libraries/gmime/3.nix
+++ b/pkgs/development/libraries/gmime/3.nix
@@ -1,18 +1,38 @@
-{ lib, stdenv, fetchurl, pkg-config, glib, zlib, gnupg, gpgme, libidn2, libunistring, gobject-introspection
-, vala }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  pkg-config,
+  glib,
+  zlib,
+  gnupg,
+  gpgme,
+  libidn2,
+  libunistring,
+  gobject-introspection,
+  vala,
+}:
 
 stdenv.mkDerivation rec {
   version = "3.2.14";
   pname = "gmime";
 
-  src = fetchurl { # https://github.com/jstedfast/gmime/releases
+  src = fetchurl {
+    # https://github.com/jstedfast/gmime/releases
     url = "https://github.com/jstedfast/gmime/releases/download/${version}/gmime-${version}.tar.xz";
     sha256 = "sha256-pes91nX3LlRci8HNEhB+Sq0ursGQXre0ATzbH75eIxc=";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
-  nativeBuildInputs = [ pkg-config gobject-introspection vala ];
+  nativeBuildInputs = [
+    pkg-config
+    gobject-introspection
+    vala
+  ];
   buildInputs = [
     zlib
     gpgme
@@ -21,22 +41,34 @@ stdenv.mkDerivation rec {
     vala # for share/vala/Makefile.vapigen
   ];
   propagatedBuildInputs = [ glib ];
-  configureFlags = [
-    "--enable-introspection=yes"
-    "--enable-vala=yes"
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "ac_cv_have_iconv_detect_h=yes" ];
-
-  postPatch = ''
-    substituteInPlace tests/testsuite.c \
-      --replace /bin/rm rm
-  '';
-
-  preConfigure = ''
-    PKG_CONFIG_VAPIGEN_VAPIGEN="$(type -p vapigen)"
-    export PKG_CONFIG_VAPIGEN_VAPIGEN
-  '' + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
-    cp ${if stdenv.hostPlatform.isMusl then ./musl-iconv-detect.h else ./iconv-detect.h} ./iconv-detect.h
-  '';
+  configureFlags =
+    [
+      "--enable-introspection=yes"
+      "--enable-vala=yes"
+    ]
+    ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ "ac_cv_have_iconv_detect_h=yes" ];
+
+  postPatch =
+    ''
+      substituteInPlace tests/testsuite.c \
+        --replace /bin/rm rm
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # This specific test fails on darwin for some unknown reason
+      substituteInPlace tests/test-filters.c \
+        --replace-fail 'test_charset_conversion (datadir, "japanese", "utf-8", "iso-2022-jp");' ""
+    '';
+
+  preConfigure =
+    ''
+      PKG_CONFIG_VAPIGEN_VAPIGEN="$(type -p vapigen)"
+      export PKG_CONFIG_VAPIGEN_VAPIGEN
+    ''
+    + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+      cp ${
+        if stdenv.hostPlatform.isMusl then ./musl-iconv-detect.h else ./iconv-detect.h
+      } ./iconv-detect.h
+    '';
 
   nativeCheckInputs = [ gnupg ];
 
@@ -44,11 +76,11 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/jstedfast/gmime/";
-    description = "A C/C++ library for creating, editing and parsing MIME messages and structures";
-    license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ ];
-    platforms = platforms.unix;
+    description = "C/C++ library for creating, editing and parsing MIME messages and structures";
+    license = lib.licenses.lgpl21Plus;
+    maintainers = with lib.maintainers; [ ];
+    platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/gnet/default.nix b/pkgs/development/libraries/gnet/default.nix
index 5992868c7343a..558d8c0b112a4 100644
--- a/pkgs/development/libraries/gnet/default.nix
+++ b/pkgs/development/libraries/gnet/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   preConfigure = "./autogen.sh";
 
   meta = with lib; {
-    description = "A network library, written in C, object-oriented, and built upon GLib";
+    description = "Network library, written in C, object-oriented, and built upon GLib";
     homepage = "https://developer.gnome.org/gnet/";
     license = licenses.lgpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gnome-online-accounts/default.nix b/pkgs/development/libraries/gnome-online-accounts/default.nix
index c06e45356ac8a..43ce34ec2ed4f 100644
--- a/pkgs/development/libraries/gnome-online-accounts/default.nix
+++ b/pkgs/development/libraries/gnome-online-accounts/default.nix
@@ -7,38 +7,37 @@
 , meson
 , ninja
 , libxslt
-, gtk3
+, gtk4
 , enableBackend ? stdenv.isLinux
-, webkitgtk_4_1
 , json-glib
+, libadwaita
 , librest_1_0
 , libxml2
 , libsecret
 , gtk-doc
 , gobject-introspection
 , gettext
-, icu
 , glib-networking
 , libsoup_3
 , docbook-xsl-nons
 , docbook_xml_dtd_412
 , gnome
-, gcr
+, gcr_4
 , libkrb5
 , gvfs
 , dbus
-, wrapGAppsHook
+, wrapGAppsHook4
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gnome-online-accounts";
-  version = "3.48.1";
+  version = "3.50.2";
 
   outputs = [ "out" "dev" ] ++ lib.optionals enableBackend [ "man" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-online-accounts/${lib.versions.majorMinor finalAttrs.version}/gnome-online-accounts-${finalAttrs.version}.tar.xz";
-    hash = "sha256-PqDHEIS/WVzOXKo3zv8uhT0OyWRLsB/UZDMArblRf4o=";
+    hash = "sha256-3xatl10TnGv8TrsuyLuDJyl6eR7yvwuXfHgHavX6qY4=";
   };
 
   mesonFlags = [
@@ -46,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-Dgoabackend=${lib.boolToString enableBackend}"
     "-Dgtk_doc=${lib.boolToString enableBackend}"
     "-Dman=${lib.boolToString enableBackend}"
-    "-Dmedia_server=true"
+    "-Dwebdav=true"
   ];
 
   nativeBuildInputs = [
@@ -61,28 +60,24 @@ stdenv.mkDerivation (finalAttrs: {
     ninja
     pkg-config
     vala
-    wrapGAppsHook
+    wrapGAppsHook4
   ];
 
   buildInputs = [
-    gcr
+    gcr_4
     glib
     glib-networking
-    gtk3
+    gtk4
+    libadwaita
     gvfs # OwnCloud, Google Drive
-    icu
     json-glib
     libkrb5
     librest_1_0
     libxml2
     libsecret
     libsoup_3
-  ] ++ lib.optionals enableBackend [
-    webkitgtk_4_1
   ];
 
-  env.NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
-
   separateDebugInfo = true;
 
   passthru = {
diff --git a/pkgs/development/libraries/gnome-video-effects/default.nix b/pkgs/development/libraries/gnome-video-effects/default.nix
index fcf955fbc173c..a4cedd6c91873 100644
--- a/pkgs/development/libraries/gnome-video-effects/default.nix
+++ b/pkgs/development/libraries/gnome-video-effects/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A collection of GStreamer effects to be used in different GNOME Modules";
+    description = "Collection of GStreamer effects to be used in different GNOME Modules";
     homepage = "https://gitlab.gnome.org/GNOME/gnome-video-effects";
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/gnu-config/default.nix b/pkgs/development/libraries/gnu-config/default.nix
index 0315f39c60592..9fa5247cb489b 100644
--- a/pkgs/development/libraries/gnu-config/default.nix
+++ b/pkgs/development/libraries/gnu-config/default.nix
@@ -6,22 +6,22 @@
 # files.
 
 let
-  rev = "28ea239c53a2d5d8800c472bc2452eaa16e37af2";
+  rev = "948ae97ca5703224bd3eada06b7a69f40dd15a02";
 
   # Don't use fetchgit as this is needed during Aarch64 bootstrapping
   configGuess = fetchurl {
     name = "config.guess-${builtins.substring 0 7 rev}";
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}";
-    hash = "sha256-7CV3YUJSMm+InfHel7mkV8A6mpSBEEhWPCEaRElti6M=";
+    hash = "sha256-ZByuPAx0xJNU0+3gCfP+vYD+vhUBp3wdn6yNQsxFtss=";
   };
   configSub = fetchurl {
     name = "config.sub-${builtins.substring 0 7 rev}";
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
-    hash = "sha256-Rlxf5nx9NrcugIgScWRF1NONS5RzTKjTaoY50SMjh4s=";
+    hash = "sha256-/jovMvuv9XhIcyVJ9I2YP9ZSYCTsLw9ancdcL0NZo6Y=";
   };
 in stdenv.mkDerivation {
   pname = "gnu-config";
-  version = "2023-09-19";
+  version = "2024-01-01";
 
   unpackPhase = ''
     runHook preUnpack
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index 3f832ad5d5775..31b6f7c7d2286 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -1,13 +1,15 @@
-{ lib, stdenv, buildPackages, fetchurl, pciutils
-, gitUpdater }:
+{ lib, stdenv, buildPackages, fetchFromGitHub, pciutils
+, gitUpdater, fwupd-efi, ipxe, refind, syslinux }:
 
 stdenv.mkDerivation rec {
   pname = "gnu-efi";
   version = "3.0.18";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/gnu-efi/${pname}-${version}.tar.bz2";
-    hash = "sha256-fyEslu5mVH7u+1MSZ7ZB5Uc9fYUp8L2Mze/TPPdBP1w=";
+  src = fetchFromGitHub {
+    owner = "ncroxon";
+    repo = "gnu-efi";
+    rev = version;
+    hash = "sha256-xtiKglLXm9m4li/8tqbOsyM6ThwGhyu/g4kw5sC4URY=";
   };
 
   buildInputs = [ pciutils ];
@@ -25,9 +27,14 @@ stdenv.mkDerivation rec {
       --replace "-Werror" ""
   '';
 
-  passthru.updateScript = gitUpdater {
-    # No nicer place to find latest release.
-    url = "https://git.code.sf.net/p/gnu-efi/code";
+  passthru = {
+    updateScript = gitUpdater {
+      # No nicer place to find latest release.
+      url = "https://git.code.sf.net/p/gnu-efi/code";
+    };
+    tests = {
+      inherit fwupd-efi ipxe refind syslinux;
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/gnutls/default.nix b/pkgs/development/libraries/gnutls/default.nix
index 728d4a82b23c7..48e027f5246bb 100644
--- a/pkgs/development/libraries/gnutls/default.nix
+++ b/pkgs/development/libraries/gnutls/default.nix
@@ -44,6 +44,8 @@
 , rsyslog
 , openconnect
 , samba
+
+, gitUpdater
 }:
 
 let
@@ -58,11 +60,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnutls";
-  version = "3.8.4";
+  version = "3.8.5";
 
   src = fetchurl {
     url = "mirror://gnupg/gnutls/v${lib.versions.majorMinor version}/gnutls-${version}.tar.xz";
-    hash = "sha256-K+pOFUeU8/ABgPoqXFH+iwBax6Mc1YvUTN+n8268Ops=";
+    hash = "sha256-ZiaaLP4OHC2r7Ie9u9irZW85bt2aQN0AaXjgA8+lK/w=";
   };
 
   outputs = [ "bin" "dev" "out" ]
@@ -83,6 +85,16 @@ stdenv.mkDerivation rec {
       revert = true;
       hash = "sha256-r/+Gmwqy0Yc1LHL/PdPLXlErUBC5JxquLzCBAN3LuRM=";
     })
+    # Makes the system-wide configuration for RSAES-PKCS1-v1_5 actually apply
+    # and makes it enabled by default when the config file is missing
+    # Without this an error 113 is thrown when using some RSA certificates
+    # see https://gitlab.com/gnutls/gnutls/-/issues/1540
+    # "This is pretty sever[e], since it breaks on letsencrypt-issued RSA keys." (comment from above issue)
+    (fetchpatch2 {
+      name = "fix-rsaes-pkcs1-v1_5-system-wide-configuration.patch";
+      url = "https://gitlab.com/gnutls/gnutls/-/commit/2d73d945c4b1dfcf8d2328c4d23187d62ffaab2d.diff";
+      hash = "sha256-2aWcLff9jzJnY+XSqCIaK/zdwSLwkNlfDeMlWyRShN8=";
+    })
   ];
 
   # Skip some tests:
@@ -97,12 +109,6 @@ stdenv.mkDerivation rec {
     sed 's:/usr/lib64/pkcs11/ /usr/lib/pkcs11/ /usr/lib/x86_64-linux-gnu/pkcs11/:`pkg-config --variable=p11_module_path p11-kit-1`:' -i tests/p11-kit-trust.sh
   '' + lib.optionalString stdenv.hostPlatform.isMusl '' # See https://gitlab.com/gnutls/gnutls/-/issues/945
     sed '2iecho "certtool tests skipped in musl build"\nexit 0' -i tests/cert-tests/certtool.sh
-  '' + lib.optionalString stdenv.hostPlatform.isStatic ''
-    # Adapted from https://gitlab.com/gnutls/gnutls/-/commit/d214cd4570fb1559a20e941bb7ceac7df52e96d3
-    # Can be removed with 3.8.5+.
-    sed -i lib/nettle/backport/rsa-sign-tr.c -e \
-      '/^#include <nettle\/rsa\.h>/i\
-    #define nettle_rsa_compute_root_tr _gnutls_nettle_backport_rsa_compute_root_tr'
   '';
 
   preConfigure = "patchShebangs .";
@@ -153,6 +159,11 @@ stdenv.mkDerivation rec {
       --replace "-lunistring" ""
   '';
 
+
+  passthru.updateScript = gitUpdater {
+    url = "https://gitlab.com/gnutls/gnutls.git";
+  };
+
   passthru.tests = {
     inherit ngtcp2-gnutls curlWithGnuTls ffmpeg emacs qemu knot-resolver samba openconnect;
     inherit (ocamlPackages) ocamlnet;
@@ -163,7 +174,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The GNU Transport Layer Security Library";
+    description = "GNU Transport Layer Security Library";
 
     longDescription = ''
       GnuTLS is a project that aims to develop a library which
diff --git a/pkgs/development/libraries/gobject-introspection/default.nix b/pkgs/development/libraries/gobject-introspection/default.nix
index 3817d8bb9ced8..9aba5156bef28 100644
--- a/pkgs/development/libraries/gobject-introspection/default.nix
+++ b/pkgs/development/libraries/gobject-introspection/default.nix
@@ -22,6 +22,7 @@
 , nixStoreDir ? builtins.storeDir
 , x11Support ? true
 , testers
+, propagateFullGlib ? true
 }:
 
 # now that gobject-introspection creates large .gir files (eg gtk3 case)
@@ -33,10 +34,13 @@ let
     pp.mako
     pp.markdown
   ];
+
+  # https://discourse.gnome.org/t/dealing-with-glib-and-gobject-introspection-circular-dependency/18701
+  glib' = glib.override { withIntrospection = false; };
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gobject-introspection";
-  version = "1.78.1";
+  version = "1.80.1";
 
   # outputs TODO: share/gobject-introspection-1.0/tests is needed during build
   # by pygobject3 (and maybe others), but it's only searched in $out
@@ -45,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gobject-introspection/${lib.versions.majorMinor finalAttrs.version}/gobject-introspection-${finalAttrs.version}.tar.xz";
-    sha256 = "vXur2Zr3JY52gZ5Fukprw5lgj+di2D/ePKwDPFCEG7Q=";
+    hash = "sha256-od98Qk4VvaGrY5wA6QUbmt9c6hqeUS+KYDtTzRmbxtg=";
   };
 
   patches = [
@@ -92,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   propagatedBuildInputs = [
     libffi
-    glib
+    (if propagateFullGlib then glib else glib')
   ];
 
   mesonFlags = [
@@ -153,7 +157,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A middleware layer between C libraries and language bindings";
+    description = "Middleware layer between C libraries and language bindings";
     homepage = "https://gi.readthedocs.io/";
     maintainers = teams.gnome.members ++ (with maintainers; [ lovek323 artturin ]);
     pkgConfigModules = [ "gobject-introspection-1.0" ];
diff --git a/pkgs/development/libraries/goffice/default.nix b/pkgs/development/libraries/goffice/default.nix
index 97779b477c309..a0be4727293bd 100644
--- a/pkgs/development/libraries/goffice/default.nix
+++ b/pkgs/development/libraries/goffice/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A Glib/GTK set of document centric objects and utilities";
+    description = "Glib/GTK set of document centric objects and utilities";
 
     longDescription = ''
       There are common operations for document centric applications that are
diff --git a/pkgs/development/libraries/gom/default.nix b/pkgs/development/libraries/gom/default.nix
index 4d48e0c227407..96b1f3ae13ce9 100644
--- a/pkgs/development/libraries/gom/default.nix
+++ b/pkgs/development/libraries/gom/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject to SQLite object mapper";
+    description = "GObject to SQLite object mapper";
     homepage = "https://gitlab.gnome.org/GNOME/gom";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/gr-framework/Use-the-module-mode-to-search-for-the-LibXml2-package.patch b/pkgs/development/libraries/gr-framework/Use-the-module-mode-to-search-for-the-LibXml2-package.patch
deleted file mode 100644
index b472d7271e8da..0000000000000
--- a/pkgs/development/libraries/gr-framework/Use-the-module-mode-to-search-for-the-LibXml2-package.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 5d2377ad5e99742662e056bb782d5c21afb01dfb Mon Sep 17 00:00:00 2001
-From: Pavel Sobolev <paveloom@riseup.net>
-Date: Tue, 19 Sep 2023 13:27:39 +0300
-Subject: [PATCH] Use the module mode to search for the `LibXml2` package.
-
----
- CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 03490335..fb69e8fd 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -96,7 +96,7 @@ find_package(Expat)
- # CMake ships with a `FindLibXml2.cmake` module which does not configure needed libxml2 dependencies.
- # Thus, use the `libxml2-config.cmake` config file shipped with libxml which configures dependencies correctly by
- # skipping module search mode.
--find_package(LibXml2 NO_MODULE)
-+find_package(LibXml2 MODULE)
- if(${CMAKE_VERSION} VERSION_GREATER "3.16.0")
-   find_package(
-     Qt6
---
-2.42.0
-
diff --git a/pkgs/development/libraries/gr-framework/default.nix b/pkgs/development/libraries/gr-framework/default.nix
deleted file mode 100644
index 2157a18f58d15..0000000000000
--- a/pkgs/development/libraries/gr-framework/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, nix-update-script
-
-, cmake
-, wrapQtAppsHook
-
-, cairo
-, ffmpeg
-, freetype
-, ghostscript
-, glfw
-, libjpeg
-, libtiff
-, qhull
-, qtbase
-, xorg
-, zeromq
-}:
-
-stdenv.mkDerivation rec {
-  pname = "gr-framework";
-  version = "0.72.11";
-
-  src = fetchFromGitHub {
-    owner = "sciapp";
-    repo = "gr";
-    rev = "v${version}";
-    hash = "sha256-HspDRqO/JKpPeHOfctYAOwwR3y1u+GW3v0OnN7OfLT4=";
-  };
-
-  patches = [
-    ./Use-the-module-mode-to-search-for-the-LibXml2-package.patch
-  ];
-
-  nativeBuildInputs = [
-    cmake
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    cairo
-    ffmpeg
-    freetype
-    ghostscript
-    glfw
-    libjpeg
-    libtiff
-    qhull
-    qtbase
-    xorg.libX11
-    xorg.libXft
-    xorg.libXt
-    zeromq
-  ];
-
-  preConfigure = ''
-    echo ${version} > version.txt
-  '';
-
-  passthru.updateScript = nix-update-script { };
-
-  meta = with lib; {
-    description = "GR framework is a graphics library for visualisation applications";
-    homepage = "https://gr-framework.org";
-    license = licenses.mit;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ paveloom ];
-  };
-}
diff --git a/pkgs/development/libraries/graphene/default.nix b/pkgs/development/libraries/graphene/default.nix
index e5dfba0aa4f5b..3e81f031a851c 100644
--- a/pkgs/development/libraries/graphene/default.nix
+++ b/pkgs/development/libraries/graphene/default.nix
@@ -119,7 +119,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A thin layer of graphic data types";
+    description = "Thin layer of graphic data types";
     homepage = "https://github.com/ebassi/graphene";
     license = licenses.mit;
     maintainers = teams.gnome.members ++ (with maintainers; [ ]);
diff --git a/pkgs/development/libraries/grilo-plugins/default.nix b/pkgs/development/libraries/grilo-plugins/default.nix
index 4113ee2f5d7c3..5193cedf868bd 100644
--- a/pkgs/development/libraries/grilo-plugins/default.nix
+++ b/pkgs/development/libraries/grilo-plugins/default.nix
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/grilo-plugins";
-    description = "A collection of plugins for the Grilo framework";
+    description = "Collection of plugins for the Grilo framework";
     maintainers = teams.gnome.members;
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix
index bf9b58ec4a092..2110755a17197 100644
--- a/pkgs/development/libraries/grpc/default.nix
+++ b/pkgs/development/libraries/grpc/default.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)";
+    description = "C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)";
     license = licenses.asl20;
     maintainers = with maintainers; [ lnl7 ];
     homepage = "https://grpc.io/";
diff --git a/pkgs/development/libraries/gsettings-desktop-schemas/default.nix b/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
index f898f3d3bcd87..c33011f4b01de 100644
--- a/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
+++ b/pkgs/development/libraries/gsettings-desktop-schemas/default.nix
@@ -13,11 +13,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gsettings-desktop-schemas";
-  version = "45.0";
+  version = "46.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "NlyNBNr3mzjIs9yWJjSaAk+eS+/dMf7edLQvep++CuI=";
+    hash = "sha256-STpGoRYbY4jVeqcvYyp5zpbELV/70dCwD0luxYdvhXU=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/gsl/default.nix b/pkgs/development/libraries/gsl/default.nix
index ffe168674e68f..7e3d11528a4f0 100644
--- a/pkgs/development/libraries/gsl/default.nix
+++ b/pkgs/development/libraries/gsl/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.hostPlatform.system != "i686-linux";
 
   meta = {
-    description = "The GNU Scientific Library, a large numerical library";
+    description = "GNU Scientific Library, a large numerical library";
     homepage = "https://www.gnu.org/software/gsl/";
     license = lib.licenses.gpl3Plus;
 
diff --git a/pkgs/development/libraries/gspell/default.nix b/pkgs/development/libraries/gspell/default.nix
index 13a9e4be04b5c..3e3ca2d591354 100644
--- a/pkgs/development/libraries/gspell/default.nix
+++ b/pkgs/development/libraries/gspell/default.nix
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A spell-checking library for GTK applications";
+    description = "Spell-checking library for GTK applications";
     mainProgram = "gspell-app1";
     homepage = "https://gitlab.gnome.org/GNOME/gspell";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index bec1cb762ce4f..91639c441b481 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -18,13 +18,14 @@
 , opencv4
 , faad2
 , ldacbt
+, liblc3
 , libass
 , libkate
 , lrdf
 , ladspaH
 , lcms2
 , libnice
-, webrtc-audio-processing
+, webrtc-audio-processing_1
 , lilv
 , lv2
 , serd
@@ -44,6 +45,7 @@
 , flite
 , gsm
 , json-glib
+, libajantv2
 , libaom
 , libdc1394
 , libde265
@@ -68,6 +70,7 @@
 , zbar
 , wayland-protocols
 , wildmidi
+, svt-av1
 , fluidsynth
 , libva
 , libvdpau
@@ -109,13 +112,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-bad";
-  version = "1.22.9";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-G8ZdD9X1OjY2Vk79P88xjD7c3sOcQQmlA8H8ggOECh0=";
+    hash = "sha256-6Q8mx9ycdvSqWZt1jP1tjBDWoLnLJluiw8m984iFWPg=";
   };
 
   patches = [
@@ -137,7 +140,7 @@ stdenv.mkDerivation rec {
     gobject-introspection
   ] ++ lib.optionals enableDocumentation [
     hotdoc
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     wayland # for wayland-scanner
   ];
 
@@ -147,10 +150,10 @@ stdenv.mkDerivation rec {
     json-glib
     lcms2
     ldacbt
+    liblc3
     libass
     libkate
-    webrtc-audio-processing # required by webrtcdsp
-    #webrtc-audio-processing_1 # required by isac
+    webrtc-audio-processing_1
     libbs2b
     libmodplug
     openjpeg
@@ -192,6 +195,7 @@ stdenv.mkDerivation rec {
     zxing-cpp
     usrsctp
     wildmidi
+    svt-av1
   ] ++ lib.optionals opencvSupport [
     opencv4
   ] ++ lib.optionals enableZbar [
@@ -207,7 +211,7 @@ stdenv.mkDerivation rec {
     bluez
   ] ++ lib.optionals microdnsSupport [
     libmicrodns
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals (gst-plugins-base.waylandEnabled && stdenv.isLinux) [
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
@@ -217,6 +221,7 @@ stdenv.mkDerivation rec {
 
     chromaprint
     flite
+    libajantv2
     libdrm
     libgudev
     sbc
@@ -260,6 +265,7 @@ stdenv.mkDerivation rec {
     "-Damfcodec=disabled" # Windows-only
     "-Davtp=disabled"
     "-Ddirectshow=disabled" # Windows-only
+    "-Dqt6d3d11=disabled" # Windows-only
     "-Ddts=disabled" # required `libdca` library not packaged in nixpkgs as of writing, and marked as "BIG FAT WARNING: libdca is still in early development"
     "-Dzbar=${if enableZbar then "enabled" else "disabled"}"
     "-Dfaac=${if faacSupport then "enabled" else "disabled"}"
@@ -287,11 +293,11 @@ stdenv.mkDerivation rec {
     "-Dwasapi=disabled" # not packaged in nixpkgs as of writing / no Windows support
     "-Dwasapi2=disabled" # not packaged in nixpkgs as of writing / no Windows support
     "-Dwpe=disabled" # required `wpe-webkit` library not packaged in nixpkgs as of writing
-    "-Disac=disabled" # depends on `webrtc-audio-coding-1` not compatible with 0.3
     "-Dgs=disabled" # depends on `google-cloud-cpp`
     "-Donnx=disabled" # depends on `libonnxruntime` not packaged in nixpkgs as of writing
     "-Dopenaptx=enabled" # since gstreamer-1.20.1 `libfreeaptx` is supported for circumventing the dubious license conflict with `libopenaptx`
     "-Dopencv=${if opencvSupport then "enabled" else "disabled"}" # Reduces rebuild size when `config.cudaSupport = true`
+    "-Daja=disabled" # should pass libajantv2 via aja-sdk-dir instead
     "-Dmicrodns=${if microdnsSupport then "enabled" else "disabled"}"
     "-Dbluez=${if bluezSupport then "enabled" else "disabled"}"
     (lib.mesonEnable "doc" enableDocumentation)
@@ -299,11 +305,12 @@ stdenv.mkDerivation rec {
   ++ lib.optionals (!stdenv.isLinux) [
     "-Ddoc=disabled" # needs gstcuda to be enabled which is Linux-only
     "-Dnvcodec=disabled" # Linux-only
+  ] ++ lib.optionals (!stdenv.isLinux || !gst-plugins-base.waylandEnabled) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ] ++ lib.optionals (!stdenv.isLinux || !guiSupport) [
     "-Ddirectfb=disabled"
-  ]
-  ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals stdenv.isDarwin [
+    "-Daja=disabled"
     "-Dchromaprint=disabled"
     "-Dflite=disabled"
     "-Dkms=disabled" # renders to libdrm output
@@ -312,14 +319,15 @@ stdenv.mkDerivation rec {
     "-Dspandsp=disabled"
     "-Ddvb=disabled"
     "-Dfbdev=disabled"
+    "-Duvcgadget=disabled" # requires gudev
     "-Duvch264=disabled" # requires gudev
     "-Dv4l2codecs=disabled" # requires gudev
     "-Dladspa=disabled" # requires lrdf
-  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64) [
-    "-Dqsv=disabled" # Linux (and Windows) x86 only
+  ] ++ lib.optionals (!stdenv.isLinux || !stdenv.isx86_64 || !gst-plugins-base.waylandEnabled) [
+    "-Dqsv=disabled" # Linux (and Windows) x86 only, makes va required
   ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
     "-Dgl=disabled"
-  ] ++ lib.optionals (!gst-plugins-base.waylandEnabled) [
+  ] ++ lib.optionals (!gst-plugins-base.waylandEnabled || !guiSupport) [
     "-Dgtk3=disabled" # Wayland-based GTK sink
     "-Dwayland=disabled"
   ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
diff --git a/pkgs/development/libraries/gstreamer/bad/fix-paths.patch b/pkgs/development/libraries/gstreamer/bad/fix-paths.patch
index ea832cc9f60b1..207ed16aa0b08 100644
--- a/pkgs/development/libraries/gstreamer/bad/fix-paths.patch
+++ b/pkgs/development/libraries/gstreamer/bad/fix-paths.patch
@@ -1,24 +1,24 @@
-diff --git a/gst-libs/gst/cuda/gstcudaloader.c b/gst-libs/gst/cuda/gstcudaloader.c
-index fffcbefd2b..6f738d3af3 100644
---- a/gst-libs/gst/cuda/gstcudaloader.c
-+++ b/gst-libs/gst/cuda/gstcudaloader.c
-@@ -165,6 +165,11 @@ gst_cuda_load_library (void)
-     return TRUE;
+diff --git a/gst-libs/gst/cuda/gstcudaloader.cpp b/gst-libs/gst/cuda/gstcudaloader.cpp
+index 11718b8..d4144c1 100644
+--- a/gst-libs/gst/cuda/gstcudaloader.cpp
++++ b/gst-libs/gst/cuda/gstcudaloader.cpp
+@@ -229,6 +229,11 @@ gst_cuda_load_library_once_func (void)
+       "CUDA plugin loader");
  
    module = g_module_open (filename, G_MODULE_BIND_LAZY);
 +
-+  if (module == NULL) {
++  if (module == nullptr) {
 +    module = g_module_open ("@driverLink@/lib/" CUDA_LIBNAME, G_MODULE_BIND_LAZY);
 +  }
 +
-   if (module == NULL) {
+   if (module == nullptr) {
      GST_WARNING ("Could not open library %s, %s", filename, g_module_error ());
-     return FALSE;
+     return;
 diff --git a/sys/nvcodec/gstcuvidloader.c b/sys/nvcodec/gstcuvidloader.c
-index e957e062e0..004ec2dcd5 100644
+index c51a428..ea0e1b5 100644
 --- a/sys/nvcodec/gstcuvidloader.c
 +++ b/sys/nvcodec/gstcuvidloader.c
-@@ -85,6 +85,11 @@ gst_cuvid_load_library (guint api_major_ver, guint api_minor_ver)
+@@ -87,6 +87,11 @@ gst_cuvid_load_library (guint api_major_ver, guint api_minor_ver)
      return TRUE;
  
    module = g_module_open (filename, G_MODULE_BIND_LAZY);
@@ -31,10 +31,10 @@ index e957e062e0..004ec2dcd5 100644
      GST_WARNING ("Could not open library %s, %s", filename, g_module_error ());
      return FALSE;
 diff --git a/sys/nvcodec/gstnvenc.c b/sys/nvcodec/gstnvenc.c
-index 106857a954..3bab9989f0 100644
+index c65c85a..57232bb 100644
 --- a/sys/nvcodec/gstnvenc.c
 +++ b/sys/nvcodec/gstnvenc.c
-@@ -907,6 +907,11 @@ gst_nvenc_load_library (guint * api_major_ver, guint * api_minor_ver)
+@@ -919,6 +919,11 @@ gst_nvenc_load_library (guint * api_major_ver, guint * api_minor_ver)
    };
  
    module = g_module_open (NVENC_LIBRARY_NAME, G_MODULE_BIND_LAZY);
diff --git a/pkgs/development/libraries/gstreamer/base/default.nix b/pkgs/development/libraries/gstreamer/base/default.nix
index 066ffbc1308e0..f48fe22f50001 100644
--- a/pkgs/development/libraries/gstreamer/base/default.nix
+++ b/pkgs/development/libraries/gstreamer/base/default.nix
@@ -24,6 +24,7 @@
 , libXext
 , libXi
 , libXv
+, libdrm
 , enableWayland ? stdenv.isLinux
 , wayland
 , wayland-protocols
@@ -45,7 +46,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gst-plugins-base";
-  version = "1.22.9";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
@@ -53,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-+sPg3S2Ok3A4izS/jCG4nV9jvDz8Es1/3I/GwcugMzQ=";
+    hash = "sha256-8QlDl+qnky8G5X67sHWqM6osduS3VjChawLI1K9Ggy4=";
   };
 
   strictDeps = true;
@@ -88,6 +89,7 @@ stdenv.mkDerivation (finalAttrs: {
     tremor
     pango
   ] ++ lib.optionals (!stdenv.isDarwin) [
+    libdrm
     libGL
     libvisual
   ] ++ lib.optionals stdenv.isDarwin [
@@ -106,6 +108,8 @@ stdenv.mkDerivation (finalAttrs: {
 
   propagatedBuildInputs = [
     gstreamer
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    libdrm
   ];
 
   mesonFlags = [
@@ -122,6 +126,7 @@ stdenv.mkDerivation (finalAttrs: {
   ++ lib.optional (!enableAlsa) "-Dalsa=disabled"
   ++ lib.optional (!enableCdparanoia) "-Dcdparanoia=disabled"
   ++ lib.optionals stdenv.isDarwin [
+    "-Ddrm=disabled"
     "-Dlibvisual=disabled"
   ];
 
diff --git a/pkgs/development/libraries/gstreamer/core/default.nix b/pkgs/development/libraries/gstreamer/core/default.nix
index be56527ec47bd..3136b6f886755 100644
--- a/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/pkgs/development/libraries/gstreamer/core/default.nix
@@ -17,6 +17,7 @@
 , Cocoa
 , CoreServices
 , gobject-introspection
+, rustc
 , testers
 # Checks meson.is_cross_build(), so even canExecute isn't enough.
 , enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform, hotdoc
@@ -24,7 +25,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gstreamer";
-  version = "1.22.9";
+  version = "1.24.3";
 
   outputs = [
     "bin"
@@ -36,7 +37,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) pname version;
   in fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-HnEk00fozcgPCOwdNwwgG+UTACrxECuyDoPFJ5y0jr0=";
+    hash = "sha256-EiXvSjKfrhytxexyfaskmtVn6AcoeUk1Yc65HtNKpBQ=";
   };
 
   depsBuildBuild = [
@@ -56,6 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
     glib
     bash-completion
     gobject-introspection
+    rustc
   ] ++ lib.optionals stdenv.isLinux [
     libcap # for setcap binary
   ] ++ lib.optionals enableDocumentation [
@@ -94,7 +96,8 @@ stdenv.mkDerivation (finalAttrs: {
       gst/parse/gen_grammar.py.in \
       gst/parse/gen_lex.py.in \
       libs/gst/helpers/ptp_helper_post_install.sh \
-      scripts/extract-release-date-from-doap-file.py
+      scripts/extract-release-date-from-doap-file.py \
+      docs/gst-plugins-doc-cache-generator.py
   '';
 
   postInstall = ''
diff --git a/pkgs/development/libraries/gstreamer/default.nix b/pkgs/development/libraries/gstreamer/default.nix
index 1bfdf5b24de35..4020193e0ae16 100644
--- a/pkgs/development/libraries/gstreamer/default.nix
+++ b/pkgs/development/libraries/gstreamer/default.nix
@@ -12,6 +12,7 @@
 , MediaToolbox
 , OpenGL
 , Security
+, SystemConfiguration
 , VideoToolbox
 , ipu6ep-camera-hal
 , ipu6epmtl-camera-hal
@@ -32,7 +33,7 @@
 
   gst-plugins-viperfx = callPackage ./viperfx { };
 
-  gst-plugins-rs = callPackage ./rs { inherit Security; };
+  gst-plugins-rs = callPackage ./rs { inherit Security SystemConfiguration; };
 
   gst-rtsp-server = callPackage ./rtsp-server { };
 
diff --git a/pkgs/development/libraries/gstreamer/devtools/default.nix b/pkgs/development/libraries/gstreamer/devtools/default.nix
index 343f161cc3d48..44a79bb2c998d 100644
--- a/pkgs/development/libraries/gstreamer/devtools/default.nix
+++ b/pkgs/development/libraries/gstreamer/devtools/default.nix
@@ -17,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-devtools";
-  version = "1.22.9";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-AuKUALROnMYDqmRE3uVya1ftq+9kVebQkh/+1vE4QO4=";
+    hash = "sha256-uREUov2Vj0Ks9EEYbofivsk1OO81qfgkgREZc2D/sjc=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ges/default.nix b/pkgs/development/libraries/gstreamer/ges/default.nix
index adb737bb1be71..79ece373b57d0 100644
--- a/pkgs/development/libraries/gstreamer/ges/default.nix
+++ b/pkgs/development/libraries/gstreamer/ges/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-editing-services";
-  version = "1.22.9";
+  version = "1.24.3";
 
   outputs = [
     "out"
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-NVOtOALczeDA7xRhiBrNm1W934rfdR3ky1G3+MtQRA0=";
+    hash = "sha256-z3QyFWiLATkFzSyff+3aIeLTTIRDQJkMbqJdEKA3KT8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gstreamer/good/default.nix b/pkgs/development/libraries/gstreamer/good/default.nix
index 19b786a86063c..bd301e7b45c22 100644
--- a/pkgs/development/libraries/gstreamer/good/default.nix
+++ b/pkgs/development/libraries/gstreamer/good/default.nix
@@ -16,7 +16,9 @@
 , libavc1394
 , libiec61883
 , libvpx
+, libdrm
 , speex
+, opencore-amr
 , flac
 , taglib
 , libshout
@@ -56,13 +58,13 @@ assert raspiCameraSupport -> (stdenv.isLinux && stdenv.isAarch32);
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-good";
-  version = "1.22.9";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-JpWfz+v/9jfU6gjvQDFrrzG2G7dymCCwaE6ADDoUeLY=";
+    hash = "sha256-FQ+RTmHcBWALaLiMoQPHzCJxMBWOOJ6p6hWfQFCi67A=";
   };
 
   patches = [
@@ -106,6 +108,7 @@ stdenv.mkDerivation rec {
     libdv
     libvpx
     speex
+    opencore-amr
     flac
     taglib
     cairo
@@ -128,6 +131,8 @@ stdenv.mkDerivation rec {
     xorg.libXext
     xorg.libXfixes
     xorg.libXdamage
+    xorg.libXtst
+    xorg.libXi
   ] ++ lib.optionals gtkSupport [
     # for gtksink
     gtk3
@@ -143,6 +148,7 @@ stdenv.mkDerivation rec {
   ]) ++ lib.optionals stdenv.isDarwin [
     Cocoa
   ] ++ lib.optionals stdenv.isLinux [
+    libdrm
     libGL
     libv4l
     libpulseaudio
diff --git a/pkgs/development/libraries/gstreamer/icamerasrc/default.nix b/pkgs/development/libraries/gstreamer/icamerasrc/default.nix
index 4d6c5671f0e28..da74ec243cefa 100644
--- a/pkgs/development/libraries/gstreamer/icamerasrc/default.nix
+++ b/pkgs/development/libraries/gstreamer/icamerasrc/default.nix
@@ -54,7 +54,7 @@ stdenv.mkDerivation {
     description = "GStreamer Plugin for MIPI camera support through the IPU6/IPU6EP/IPU6SE on Intel Tigerlake/Alderlake/Jasperlake platforms";
     homepage = "https://github.com/intel/icamerasrc/tree/icamerasrc_slim_api";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/gstreamer/libav/default.nix b/pkgs/development/libraries/gstreamer/libav/default.nix
index ae54995a1c3e2..872627009e215 100644
--- a/pkgs/development/libraries/gstreamer/libav/default.nix
+++ b/pkgs/development/libraries/gstreamer/libav/default.nix
@@ -18,11 +18,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-libav";
-  version = "1.22.9";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-GS99J9IcHnxywzmiZHqbDCR/7cYupQKRFfjD4i67h9g=";
+    hash = "sha256-2cWxUkaKRcH6g1FBBCIJCnGScHrXTS4aQ2f1JU4YjZE=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/gstreamer/rs/Cargo.lock b/pkgs/development/libraries/gstreamer/rs/Cargo.lock
index 6a3ecc43d739a..52c6518bd51f9 100644
--- a/pkgs/development/libraries/gstreamer/rs/Cargo.lock
+++ b/pkgs/development/libraries/gstreamer/rs/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "addr2line"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4fa78e18c64fce05e902adecd7a5eed15a5e0a3439f7b0e169f0252214865e3"
+checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
 dependencies = [
  "gimli",
 ]
@@ -61,15 +61,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "ahash"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e89da841a80418a9b391ebaea17f5c112ffaaa96f621d2c285b5174da76b9011"
+dependencies = [
+ "cfg-if",
+ "getrandom",
+ "once_cell",
+ "version_check",
+ "zerocopy 0.7.32",
+]
+
+[[package]]
 name = "aho-corasick"
-version = "1.0.3"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86b8f9420f797f2d9e935edf629310eb938a0d839f984e25327f3c7eed22300c"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "aligned-vec"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4aa90d7ce82d4be67b64039a3d588d38dbcc6736577de4a847025ce5b0c468d1"
+
+[[package]]
+name = "allocator-api2"
+version = "0.2.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5"
+
+[[package]]
 name = "android-tzdata"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -86,74 +111,73 @@ dependencies = [
 
 [[package]]
 name = "anstream"
-version = "0.3.2"
+version = "0.6.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
 dependencies = [
  "anstyle",
  "anstyle-parse",
  "anstyle-query",
  "anstyle-wincon",
  "colorchoice",
- "is-terminal",
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle"
-version = "1.0.1"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
 name = "anstyle-parse"
-version = "0.2.1"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
 dependencies = [
  "utf8parse",
 ]
 
 [[package]]
 name = "anstyle-query"
-version = "1.0.0"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anstyle-wincon"
-version = "1.0.2"
+version = "3.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
 dependencies = [
  "anstyle",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "anyhow"
-version = "1.0.72"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"
+checksum = "0952808a6c2afd1aa8947271f3a60f1a6763c7b912d210184c5149b5cf147247"
 
 [[package]]
 name = "arbitrary"
-version = "0.4.7"
+version = "1.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db55d72333851e17d572bec876e390cd3b11eb1ef53ae821dd9f3b653d2b4569"
+checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110"
 
 [[package]]
 name = "arg_enum_proc_macro"
-version = "0.3.2"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7c29b43ee8654590587cd033b3eca2f9c4f8cdff945ec0e6ee91ceb057d87f3"
+checksum = "0ae92a5119aa49cdbcf6b9f893fe4e1d98b04ccbf82ee0584ad948a44a734dea"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -161,15 +185,25 @@ name = "arrayvec"
 version = "0.7.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711"
+
+[[package]]
+name = "async-channel"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
 dependencies = [
- "serde",
+ "concurrent-queue",
+ "event-listener",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
 ]
 
 [[package]]
 name = "async-compression"
-version = "0.4.1"
+version = "0.4.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b74f44609f0f91493e3082d3734d98497e094777144380ea4db9f9905dd5b6"
+checksum = "07dbbf24db18d609b1462965249abdf49129ccad073ec257da372adc83259c60"
 dependencies = [
  "flate2",
  "futures-core",
@@ -180,13 +214,13 @@ dependencies = [
 
 [[package]]
 name = "async-recursion"
-version = "1.0.4"
+version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
+checksum = "30c5ef0ede93efbf733c1a727f3b6b5a1060bbedd5600183e66f6e4be4af0ec5"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -208,31 +242,31 @@ checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "async-task"
-version = "4.4.0"
+version = "4.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecc7ab41815b3c653ccd2978ec3255c81349336702dfdf62ee6f7069b12a3aae"
+checksum = "fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799"
 
 [[package]]
 name = "async-trait"
-version = "0.1.72"
+version = "0.1.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc6dde6e4ed435a4c1ee4e73592f5ba9da2151af10076cc04858746af9352d09"
+checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "async-tungstenite"
-version = "0.23.0"
+version = "0.25.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1e9efbe14612da0a19fb983059a0b621e9cf6225d7018ecab4f9988215540dc"
+checksum = "2cca750b12e02c389c1694d35c16539f88b8bbaa5945934fdc1b41a776688589"
 dependencies = [
  "futures-io",
  "futures-util",
@@ -241,14 +275,14 @@ dependencies = [
  "pin-project-lite",
  "tokio",
  "tokio-native-tls",
- "tungstenite 0.20.0",
+ "tungstenite 0.21.0",
 ]
 
 [[package]]
 name = "atomic_refcell"
-version = "0.1.10"
+version = "0.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31"
+checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c"
 
 [[package]]
 name = "atty"
@@ -263,97 +297,74 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "av1-grain"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f6ca6f0c18c02c2fbfc119df551b8aeb8a385f6d5980f1475ba0255f1e97f1e"
+checksum = "6678909d8c5d46a42abcf571271e15fdbc0a225e3646cf23762cd415046c78bf"
 dependencies = [
  "anyhow",
  "arrayvec",
- "itertools 0.10.5",
  "log",
  "nom",
  "num-rational",
- "serde",
  "v_frame",
 ]
 
 [[package]]
 name = "aws-config"
-version = "0.56.0"
+version = "1.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de3d533e0263bf453cc80af4c8bcc4d64e2aca293bd16f81633a36f1bf4a97cb"
+checksum = "297b64446175a73987cedc3c438d79b2a654d0fff96f65ff530fbe039347644c"
 dependencies = [
  "aws-credential-types",
- "aws-http",
+ "aws-runtime",
  "aws-sdk-sso",
+ "aws-sdk-ssooidc",
  "aws-sdk-sts",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
- "aws-smithy-http-tower",
  "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
  "bytes",
  "fastrand",
  "hex",
- "http",
- "hyper",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "ring",
- "time 0.3.25",
+ "time",
  "tokio",
- "tower",
  "tracing",
+ "url",
  "zeroize",
 ]
 
 [[package]]
 name = "aws-credential-types"
-version = "0.56.0"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4834ba01c5ad1ed9740aa222de62190e3c565d11ab7e72cc68314a258994567"
+checksum = "fa8587ae17c8e967e4b05a62d495be2fb7701bec52a97f7acfe8a29f938384c8"
 dependencies = [
  "aws-smithy-async",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
- "fastrand",
- "tokio",
- "tracing",
  "zeroize",
 ]
 
 [[package]]
-name = "aws-http"
-version = "0.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72badf9de83cc7d66b21b004f09241836823b8302afb25a24708769e576a8d8f"
-dependencies = [
- "aws-credential-types",
- "aws-smithy-http",
- "aws-smithy-types",
- "aws-types",
- "bytes",
- "http",
- "http-body",
- "lazy_static",
- "percent-encoding",
- "pin-project-lite",
- "tracing",
-]
-
-[[package]]
 name = "aws-runtime"
-version = "0.56.0"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf832f522111225c02547e1e1c28137e840e4b082399d93a236e4b29193a4667"
+checksum = "b13dc54b4b49f8288532334bba8f87386a40571c47c37b1304979b556dc613c8"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-sigv4",
  "aws-smithy-async",
  "aws-smithy-eventstream",
@@ -361,24 +372,25 @@ dependencies = [
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "aws-types",
+ "bytes",
  "fastrand",
- "http",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "percent-encoding",
+ "pin-project-lite",
  "tracing",
  "uuid",
 ]
 
 [[package]]
 name = "aws-sdk-kinesisvideo"
-version = "0.29.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d12ca8af73af5453ecde2a4cc3df43eb6d623552bd3899692bfc92c6ddd1463"
+checksum = "9c3d7de7e417e5007e6f12e435557b46aaaa1df3fdb51a036bbab99e666376e4"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-json",
  "aws-smithy-runtime",
@@ -386,23 +398,21 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http",
- "regex",
- "tokio-stream",
+ "http 0.2.12",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sdk-kinesisvideosignaling"
-version = "0.29.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4d880336d747d5207a74b656d8a229401142598fa36cab9163ac221946d517d"
+checksum = "551e1b19fd1e74614788f842209704f6a588c076e4fd1fbf7ac37a387247fb7f"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-json",
  "aws-smithy-runtime",
@@ -410,24 +420,24 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http",
- "regex",
+ "http 0.2.12",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sdk-s3"
-version = "0.29.0"
+version = "1.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e30370b61599168d38190ad272bb91842cd81870a6ca035c05dd5726d22832c"
+checksum = "bc075ffee2a40cb1590bed35d7ec953589a564e768fa91947c565425cd569269"
 dependencies = [
+ "ahash",
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
  "aws-sigv4",
  "aws-smithy-async",
  "aws-smithy-checksums",
- "aws-smithy-client",
  "aws-smithy-eventstream",
  "aws-smithy-http",
  "aws-smithy-json",
@@ -437,27 +447,29 @@ dependencies = [
  "aws-smithy-xml",
  "aws-types",
  "bytes",
- "http",
- "http-body",
+ "fastrand",
+ "hex",
+ "hmac 0.12.1",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "lru",
  "once_cell",
  "percent-encoding",
- "regex",
- "tokio-stream",
+ "regex-lite",
+ "sha2",
  "tracing",
  "url",
 ]
 
 [[package]]
 name = "aws-sdk-sso"
-version = "0.29.0"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f41bf2c28d32dbb9894a8fcfcb148265d034d3f4a170552a47553a09de890895"
+checksum = "019a07902c43b03167ea5df0182f0cb63fae89f9a9682c44d18cf2e4a042cb34"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-json",
  "aws-smithy-runtime",
@@ -465,73 +477,68 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "http",
- "regex",
- "tokio-stream",
+ "http 0.2.12",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
-name = "aws-sdk-sts"
-version = "0.29.0"
+name = "aws-sdk-ssooidc"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79e21aa1a5b0853969a1ef96ccfaa8ff5d57c761549786a4d5f86c1902b2586a"
+checksum = "04c46ee08a48a7f4eaa4ad201dcc1dd537b49c50859d14d4510e00ad9d3f9af2"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-json",
- "aws-smithy-query",
  "aws-smithy-runtime",
  "aws-smithy-runtime-api",
  "aws-smithy-types",
- "aws-smithy-xml",
  "aws-types",
- "http",
- "regex",
+ "bytes",
+ "http 0.2.12",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
-name = "aws-sdk-transcribestreaming"
-version = "0.29.0"
+name = "aws-sdk-sts"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12669c64c03c04e207ff14994791a3a508ae4dc55b0b73f31182171d19b04989"
+checksum = "f752ac730125ca6017f72f9db5ec1772c9ecc664f87aa7507a7d81b023c23713"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
- "aws-sigv4",
  "aws-smithy-async",
- "aws-smithy-client",
- "aws-smithy-eventstream",
  "aws-smithy-http",
  "aws-smithy-json",
+ "aws-smithy-query",
  "aws-smithy-runtime",
  "aws-smithy-runtime-api",
  "aws-smithy-types",
+ "aws-smithy-xml",
  "aws-types",
- "bytes",
- "http",
- "hyper",
- "regex",
+ "http 0.2.12",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
-name = "aws-sdk-translate"
-version = "0.29.0"
+name = "aws-sdk-transcribestreaming"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "336147dbb8f9d406dea0bbe5ef057ec4761d4134e7c8eb915db503d7081c6da7"
+checksum = "b18fdcacc5e1b61dfc34df6df1dee21e0da0e7564558ace1d0e1905e68e21b0c"
 dependencies = [
  "aws-credential-types",
- "aws-http",
  "aws-runtime",
+ "aws-sigv4",
  "aws-smithy-async",
- "aws-smithy-client",
+ "aws-smithy-eventstream",
  "aws-smithy-http",
  "aws-smithy-json",
  "aws-smithy-runtime",
@@ -539,66 +546,81 @@ dependencies = [
  "aws-smithy-types",
  "aws-types",
  "bytes",
- "fastrand",
- "http",
- "regex",
- "tokio-stream",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
-name = "aws-sig-auth"
-version = "0.56.0"
+name = "aws-sdk-translate"
+version = "1.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d861c220cd86e3d3e84b8fabddd6b7c29fbd8234715ebb71e063a64689d66bc0"
+checksum = "c9929a0172d8358a66308f2bc48cc77a8f87940649b77132f367cafa0a1414be"
 dependencies = [
  "aws-credential-types",
- "aws-sigv4",
+ "aws-runtime",
  "aws-smithy-async",
  "aws-smithy-http",
+ "aws-smithy-json",
+ "aws-smithy-runtime",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
  "aws-types",
- "http",
+ "bytes",
+ "fastrand",
+ "http 0.2.12",
+ "once_cell",
+ "regex-lite",
  "tracing",
 ]
 
 [[package]]
 name = "aws-sigv4"
-version = "0.56.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cb40a93429794065f41f0581734fc56a345f6a38d8e2e3c25c7448d930cd132"
+checksum = "11d6f29688a4be9895c0ba8bef861ad0c0dac5c15e9618b9b7a6c233990fc263"
 dependencies = [
+ "aws-credential-types",
  "aws-smithy-eventstream",
  "aws-smithy-http",
+ "aws-smithy-runtime-api",
+ "aws-smithy-types",
  "bytes",
+ "crypto-bigint 0.5.5",
  "form_urlencoded",
  "hex",
  "hmac 0.12.1",
- "http",
+ "http 0.2.12",
+ "http 1.1.0",
  "once_cell",
+ "p256",
  "percent-encoding",
- "regex",
+ "ring",
  "sha2",
- "time 0.3.25",
+ "subtle",
+ "time",
  "tracing",
+ "zeroize",
 ]
 
 [[package]]
 name = "aws-smithy-async"
-version = "0.56.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ee6d17d487c8b579423067718b3580c0908d0f01d7461813f94ec4323bad623"
+checksum = "62220bc6e97f946ddd51b5f1361f78996e704677afc518a4ff66b7a72ea1378c"
 dependencies = [
  "futures-util",
  "pin-project-lite",
  "tokio",
- "tokio-stream",
 ]
 
 [[package]]
 name = "aws-smithy-checksums"
-version = "0.56.0"
+version = "0.60.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d1849fd5916904513fb0862543b36f8faab43c07984dbc476132b7da1aed056"
+checksum = "83fa43bc04a6b2441968faeab56e68da3812f978a670a5db32accbdcafddd12f"
 dependencies = [
  "aws-smithy-http",
  "aws-smithy-types",
@@ -606,8 +628,8 @@ dependencies = [
  "crc32c",
  "crc32fast",
  "hex",
- "http",
- "http-body",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "md-5",
  "pin-project-lite",
  "sha1",
@@ -616,34 +638,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "aws-smithy-client"
-version = "0.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdbe0a3ad15283cc5f863a68cb6adc8e256e7c109c43c01bdd09be407219a1e9"
-dependencies = [
- "aws-smithy-async",
- "aws-smithy-http",
- "aws-smithy-http-tower",
- "aws-smithy-types",
- "bytes",
- "fastrand",
- "http",
- "http-body",
- "hyper",
- "hyper-rustls",
- "lazy_static",
- "pin-project-lite",
- "rustls",
- "tokio",
- "tower",
- "tracing",
-]
-
-[[package]]
 name = "aws-smithy-eventstream"
-version = "0.56.0"
+version = "0.60.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a56afef1aa766f512b4970b4c3150b9bf2df8035939723830df4b30267e2d7cb"
+checksum = "e6363078f927f612b970edf9d1903ef5cef9a64d1e8423525ebb1f0a1633c858"
 dependencies = [
  "aws-smithy-types",
  "bytes",
@@ -652,57 +650,39 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-http"
-version = "0.56.0"
+version = "0.60.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34dc313472d727f5ef44fdda93e668ebfe17380c99dee512c403e3ca51863bb9"
+checksum = "3f10fa66956f01540051b0aa7ad54574640f748f9839e843442d99b970d3aff9"
 dependencies = [
  "aws-smithy-eventstream",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
  "bytes",
  "bytes-utils",
  "futures-core",
- "http",
- "http-body",
- "hyper",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
  "pin-utils",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
-name = "aws-smithy-http-tower"
-version = "0.56.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dd50fca5a4ea4ec3771689ee93bf06b32de02a80af01ed93a8f8a4ed90e8483"
-dependencies = [
- "aws-smithy-http",
- "aws-smithy-types",
- "bytes",
- "http",
- "http-body",
- "pin-project-lite",
- "tower",
  "tracing",
 ]
 
 [[package]]
 name = "aws-smithy-json"
-version = "0.56.0"
+version = "0.60.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3591dd7c2fe01ab8025e4847a0a0f6d0c2b2269714688ffb856f9cf6c6d465cf"
+checksum = "4683df9469ef09468dad3473d129960119a0d3593617542b7d52086c8486f2d6"
 dependencies = [
  "aws-smithy-types",
 ]
 
 [[package]]
 name = "aws-smithy-query"
-version = "0.56.0"
+version = "0.60.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbabb1145e65dd57ae72d91a2619d3f5fba40b68a5f40ba009c30571dfd60aff"
+checksum = "f2fbd61ceb3fe8a1cb7352e42689cec5335833cd9f94103a61e98f9bb61c64bb"
 dependencies = [
  "aws-smithy-types",
  "urlencoding",
@@ -710,85 +690,102 @@ dependencies = [
 
 [[package]]
 name = "aws-smithy-runtime"
-version = "0.56.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3687fb838d4ad1c883b62eb59115bc9fb02c4f308aac49a7df89627067f6eb0d"
+checksum = "c53572b4cd934ee5e8461ad53caa36e9d246aaef42166e3ac539e206a925d330"
 dependencies = [
  "aws-smithy-async",
- "aws-smithy-client",
  "aws-smithy-http",
  "aws-smithy-runtime-api",
  "aws-smithy-types",
  "bytes",
  "fastrand",
- "http",
- "http-body",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "http-body 1.0.0",
+ "hyper 0.14.28",
+ "hyper-rustls",
  "once_cell",
  "pin-project-lite",
  "pin-utils",
+ "rustls",
  "tokio",
  "tracing",
 ]
 
 [[package]]
 name = "aws-smithy-runtime-api"
-version = "0.56.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5cfbf1e5c2108b41f5ca607cde40dd5109fecc448f5d30c8e614b61f36dce704"
+checksum = "ccb2b3a7030dc9a3c9a08ce0b25decea5130e9db19619d4dffbbff34f75fe850"
 dependencies = [
  "aws-smithy-async",
- "aws-smithy-http",
  "aws-smithy-types",
  "bytes",
- "http",
+ "http 0.2.12",
+ "http 1.1.0",
+ "pin-project-lite",
  "tokio",
  "tracing",
+ "zeroize",
 ]
 
 [[package]]
 name = "aws-smithy-types"
-version = "0.56.0"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eed0a94eefd845a2a78677f1b72f02fa75802d38f7f59be675add140279aa8bf"
+checksum = "abe14dceea1e70101d38fbf2a99e6a34159477c0fb95e68e05c66bd7ae4c3729"
 dependencies = [
  "base64-simd",
+ "bytes",
+ "bytes-utils",
+ "futures-core",
+ "http 0.2.12",
+ "http 1.1.0",
+ "http-body 0.4.6",
+ "http-body 1.0.0",
+ "http-body-util",
  "itoa",
  "num-integer",
+ "pin-project-lite",
+ "pin-utils",
  "ryu",
  "serde",
- "time 0.3.25",
+ "time",
+ "tokio",
+ "tokio-util",
 ]
 
 [[package]]
 name = "aws-smithy-xml"
-version = "0.56.0"
+version = "0.60.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c88052c812f696143ad7ba729c63535209ff0e0f49e31a6d2b1205208ea6ea79"
+checksum = "872c68cf019c0e4afc5de7753c4f7288ce4b71663212771bf5e4542eb9346ca9"
 dependencies = [
  "xmlparser",
 ]
 
 [[package]]
 name = "aws-types"
-version = "0.56.0"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bceb8cf724ad057ad7f327d0d256d7147b3eac777b39849a26189e003dc9782"
+checksum = "0dbf2f3da841a8930f159163175cf6a3d16ddde517c1b0fba7aa776822800f40"
 dependencies = [
  "aws-credential-types",
  "aws-smithy-async",
- "aws-smithy-client",
- "aws-smithy-http",
+ "aws-smithy-runtime-api",
  "aws-smithy-types",
- "http",
+ "http 0.2.12",
  "rustc_version",
  "tracing",
 ]
 
 [[package]]
 name = "backtrace"
-version = "0.3.68"
+version = "0.3.71"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "26b05800d2e817c8b3b4b54abd461726265fa9789ae34330622f2db9ee696f9d"
 dependencies = [
  "addr2line",
  "cc",
@@ -800,6 +797,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "base16ct"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce"
+
+[[package]]
 name = "base32"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -813,9 +816,15 @@ checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 
 [[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
 
 [[package]]
 name = "base64-serde"
@@ -823,7 +832,7 @@ version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ba368df5de76a5bea49aaf0cf1b39ccfbbef176924d1ba5db3e4135216cbe3c7"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
  "serde",
 ]
 
@@ -838,6 +847,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "base64ct"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
+
+[[package]]
 name = "bincode"
 version = "1.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -854,15 +869,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "bitstream-io"
-version = "1.7.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82704769cb85a22df2c54d6bdd6a158b7931d256cf3248a07d6ecbe9d58b31d7"
+checksum = "06c9989a51171e2e81038ab168b6ae22886fe9ded214430dbb4f41c28cf176da"
 
 [[package]]
 name = "block-buffer"
@@ -883,6 +898,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "build_const"
 version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -890,18 +914,15 @@ checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7"
 
 [[package]]
 name = "built"
-version = "0.5.2"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b9c056b9ed43aee5e064b683aa1ec783e19c6acec7559e3ae931b7490472fbe"
-dependencies = [
- "cargo-lock",
-]
+checksum = "38d17f4d6e4dc36d1a02fbedc2753a096848e7c1b0772f7654eab8e2c927dd53"
 
 [[package]]
 name = "bumpalo"
-version = "3.13.0"
+version = "3.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1"
+checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
 
 [[package]]
 name = "byte-slice-cast"
@@ -911,27 +932,27 @@ checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c"
 
 [[package]]
 name = "bytemuck"
-version = "1.13.1"
+version = "1.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+checksum = "5d6d68c57235a3a081186990eca2867354726650f42f7516ca50c28d6281fd15"
 
 [[package]]
 name = "byteorder"
-version = "1.4.3"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.4.0"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
+checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
 
 [[package]]
 name = "bytes-utils"
-version = "0.1.3"
+version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9"
+checksum = "7dafe3a8757b027e2be6e4e5601ed563c55989fcf1546e933c66c8eb3a058d35"
 dependencies = [
  "bytes",
  "either",
@@ -939,21 +960,20 @@ dependencies = [
 
 [[package]]
 name = "cairo-rs"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.5.0",
  "cairo-sys-rs",
  "glib",
  "libc",
- "once_cell",
  "thiserror",
 ]
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "glib-sys",
  "libc",
@@ -961,22 +981,10 @@ dependencies = [
 ]
 
 [[package]]
-name = "cargo-lock"
-version = "8.0.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "031718ddb8f78aa5def78a09e90defe30151d1f6c672f937af4dd916429ed996"
-dependencies = [
- "semver",
- "serde",
- "toml 0.5.11",
- "url",
-]
-
-[[package]]
 name = "cc"
-version = "1.0.82"
+version = "1.0.91"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "305fe645edc1442a0fa8b6726ba61d422798d37a52e12eaecf4b022ebbb88f01"
+checksum = "1fd97381a8cc6493395a5afc4c691c1084b3768db713b73aa215217aa245d153"
 dependencies = [
  "jobserver",
  "libc",
@@ -1000,20 +1008,22 @@ dependencies = [
 
 [[package]]
 name = "cea708-types"
-version = "0.1.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a23ec736ab2aafb861ef6f22c662cbc18c85e73945f86bd9e936a20be7cc958"
+checksum = "fd7f33493cb6f19aa19c6e688708f66bf792bc2c75137da2a03c7ebbdf7a44f9"
 dependencies = [
+ "env_logger 0.10.2",
+ "log",
+ "muldiv",
  "once_cell",
- "tracing",
- "tracing-subscriber",
+ "thiserror",
 ]
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.4"
+version = "0.15.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
+checksum = "fa50868b64a9a6fda9d593ce778849ea8715cd2a3d2cc17ffdb4a2f2f2f1961d"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -1027,18 +1037,17 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "8a0d04d43504c61aa6c7531f1871dd0d418d91130162063b789da00fd7057a5e"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
  "serde",
- "time 0.1.45",
  "wasm-bindgen",
- "winapi",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -1052,20 +1061,19 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "4.3.21"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c27cdf28c0f604ba3f512b0c9a409f8de8513e4816705deb0498b627e7c3a3fd"
+checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c"
 dependencies = [
  "clap_builder",
  "clap_derive",
- "once_cell",
 ]
 
 [[package]]
 name = "clap_builder"
-version = "4.3.21"
+version = "4.4.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08a9f1ab5e9f01a9b81f202e8562eb9a10de70abf9eaeac1be465c28b75aa4aa"
+checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7"
 dependencies = [
  "anstream",
  "anstyle",
@@ -1075,21 +1083,21 @@ dependencies = [
 
 [[package]]
 name = "clap_derive"
-version = "4.3.12"
+version = "4.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"
+checksum = "cf9804afaaf59a91e75b022a30fb7229a7901f60c755489cc61c9b423b836442"
 dependencies = [
- "heck",
+ "heck 0.4.1",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "clap_lex"
-version = "0.5.0"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"
+checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1"
 
 [[package]]
 name = "claxon"
@@ -1125,46 +1133,61 @@ checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
 
 [[package]]
 name = "concurrent-queue"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c"
+checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
 dependencies = [
  "crossbeam-utils",
 ]
 
 [[package]]
+name = "const-oid"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
+
+[[package]]
 name = "cookie"
-version = "0.16.2"
+version = "0.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e859cd57d0710d9e06c381b550c06e76992472a8c6d527aecd2fc673dcc231fb"
+checksum = "7efb37c3e1ccb1ff97164ad95ac1606e8ccd35b3fa0a7d99a304c7f4a428cc24"
 dependencies = [
  "percent-encoding",
- "time 0.3.25",
+ "time",
  "version_check",
 ]
 
 [[package]]
+name = "cookie-factory"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2"
+dependencies = [
+ "futures",
+]
+
+[[package]]
 name = "cookie_store"
-version = "0.16.2"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d606d0fba62e13cf04db20536c05cb7f13673c161cb47a47a82b9b9e7d3f1daa"
+checksum = "387461abbc748185c3a6e1673d826918b450b87ff22639429c694619a83b6cf6"
 dependencies = [
  "cookie",
- "idna 0.2.3",
+ "idna 0.3.0",
  "log",
  "publicsuffix",
  "serde",
  "serde_derive",
  "serde_json",
- "time 0.3.25",
+ "time",
  "url",
 ]
 
 [[package]]
 name = "core-foundation"
-version = "0.9.3"
+version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -1172,15 +1195,15 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.4"
+version = "0.8.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
 dependencies = [
  "libc",
 ]
@@ -1196,63 +1219,76 @@ dependencies = [
 
 [[package]]
 name = "crc32c"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f48d60e5b4d2c53d5c2b1d8a58c849a70ae5e5509b08a48d047e3b65714a74"
+checksum = "89254598aa9b9fa608de44b3ae54c810f0f06d755e24c50177f1f8f31ff50ce2"
 dependencies = [
  "rustc_version",
 ]
 
 [[package]]
 name = "crc32fast"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+checksum = "b3855a8a784b474f333699ef2bbca9db2c4a1f6d9088a90a2d25b1eb53111eaa"
 dependencies = [
  "cfg-if",
 ]
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.8"
+version = "0.5.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
 dependencies = [
- "cfg-if",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.15"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset 0.9.0",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.16"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crypto-bigint"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef"
 dependencies = [
- "cfg-if",
+ "generic-array",
+ "rand_core",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto-bigint"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76"
+dependencies = [
+ "rand_core",
+ "subtle",
 ]
 
 [[package]]
@@ -1267,9 +1303,9 @@ dependencies = [
 
 [[package]]
 name = "crypto-mac"
-version = "0.11.1"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714"
+checksum = "25fab6889090c8133f3deb8f73ba3c65a7f456f66436fc012a1b1e272b1e103e"
 dependencies = [
  "generic-array",
  "subtle",
@@ -1308,9 +1344,9 @@ dependencies = [
 
 [[package]]
 name = "darling"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0209d94da627ab5605dcccf08bb18afa5009cfbef48d8a8b7d7bdbc79be25c5e"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
 dependencies = [
  "darling_core",
  "darling_macro",
@@ -1318,52 +1354,67 @@ dependencies = [
 
 [[package]]
 name = "darling_core"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "177e3443818124b357d8e76f53be906d60937f0d3a90773a664fa63fa253e621"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
 dependencies = [
  "fnv",
  "ident_case",
  "proc-macro2",
  "quote",
  "strsim",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "darling_macro"
-version = "0.20.3"
+version = "0.20.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836a9bbc7ad63342d6d6e7b815ccab164bc77a2d95d84bc3117a8c0d5c98e2d5"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
 dependencies = [
  "darling_core",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "dash-mpd"
-version = "0.13.0"
+version = "0.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0c74b03285fe95649f588140b6009dc10bc4f747bd774818ed8e9cc6b5cbb6"
+checksum = "6cafa2c33eff2857e1a14c38aa9a432aa565a01e77804a541fce7aec3affb8f8"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.22.0",
  "base64-serde",
  "chrono",
  "fs-err",
  "iso8601",
- "log",
+ "lazy_static",
  "num-traits",
  "quick-xml",
  "regex",
  "serde",
+ "serde_path_to_error",
  "serde_with",
  "thiserror",
- "tokio",
+ "tracing",
+ "url",
  "xattr",
 ]
 
 [[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown 0.14.3",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "dasp_frame"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1380,36 +1431,47 @@ checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
 
 [[package]]
 name = "data-encoding"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
 
 [[package]]
 name = "dav1d"
-version = "0.9.4"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87ca43c8e58ee931086b5fd9a4b6a8cc40c1346592246c4fe3d299eca1684c75"
+checksum = "96be853ae81fdc81d4fbd921866ba6272147c34f75a8ee5d25781ea0f1bcadc8"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.5.0",
  "dav1d-sys",
 ]
 
 [[package]]
 name = "dav1d-sys"
-version = "0.7.1"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "615542bb14c18b795f46aba92258902168218d714090f5fff47e68c9a352ea2d"
+checksum = "3a49fd89ad2b234b606f942e8759390fd7176e9b2b50438f516dd232dcc6e58f"
 dependencies = [
  "libc",
  "system-deps",
 ]
 
 [[package]]
+name = "der"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
+dependencies = [
+ "const-oid",
+ "zeroize",
+]
+
+[[package]]
 name = "deranged"
-version = "0.3.7"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7684a49fb1af197853ef7b2ee694bc1f5b4179556f1e5710e1760c5db6f5e929"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
+ "powerfmt",
  "serde",
 ]
 
@@ -1441,12 +1503,12 @@ dependencies = [
 
 [[package]]
 name = "dssim-core"
-version = "3.2.7"
+version = "3.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1388544389475fcfd718b35a286af17cb215202af26bf2067d0e1024adbc3fe9"
+checksum = "fafad37c1f4f168243f3ac1b4cae0d358c528ac695670100337314e38d54b486"
 dependencies = [
  "imgref",
- "itertools 0.11.0",
+ "itertools 0.12.1",
  "rayon",
  "rgb",
 ]
@@ -1464,6 +1526,18 @@ dependencies = [
 ]
 
 [[package]]
+name = "ecdsa"
+version = "0.14.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c"
+dependencies = [
+ "der",
+ "elliptic-curve",
+ "rfc6979",
+ "signature",
+]
+
+[[package]]
 name = "ed25519"
 version = "1.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1474,15 +1548,35 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.9.0"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a"
+
+[[package]]
+name = "elliptic-curve"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
+checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3"
+dependencies = [
+ "base16ct",
+ "crypto-bigint 0.4.9",
+ "der",
+ "digest 0.10.7",
+ "ff",
+ "generic-array",
+ "group",
+ "pkcs8",
+ "rand_core",
+ "sec1",
+ "subtle",
+ "zeroize",
+]
 
 [[package]]
 name = "encoding_rs"
-version = "0.8.32"
+version = "0.8.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394"
+checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1"
 dependencies = [
  "cfg-if",
 ]
@@ -1501,9 +1595,9 @@ dependencies = [
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -1520,41 +1614,67 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.2"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
 dependencies = [
- "errno-dragonfly",
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "errno-dragonfly"
-version = "0.1.2"
+name = "event-listener"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+checksum = "6d9944b8ca13534cdfb2800775f8dd4902ff3fc75a50101466decadfdf322a24"
 dependencies = [
- "cc",
- "libc",
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
 ]
 
 [[package]]
+name = "event-listener-strategy"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "332f51cb23d20b0de8458b86580878211da09bcd4503cb579c225b3d124cabb3"
+dependencies = [
+ "event-listener",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fallible-iterator"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649"
+
+[[package]]
 name = "fastrand"
-version = "2.0.0"
+version = "2.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
+checksum = "658bd65b1cf4c852a3cc96f18a8ce7b5640f6b703f905c7d74532294c2a63984"
 
 [[package]]
 name = "fdeflate"
-version = "0.3.0"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d329bdeac514ee06249dabc27877490f17f5d371ec693360768b838e19f3ae10"
+checksum = "4f9bfee30e4dedf0ab8b422f03af778d9612b63f502710fc500a334ebe2de645"
 dependencies = [
  "simd-adler32",
 ]
 
 [[package]]
+name = "ff"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160"
+dependencies = [
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
 name = "ffv1"
 version = "0.0.0"
 source = "git+https://github.com/rust-av/ffv1.git?rev=2afb025a327173ce891954c052e804d0f880368a#2afb025a327173ce891954c052e804d0f880368a"
@@ -1570,7 +1690,7 @@ version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38e2275cc4e4fc009b0669731a1e5ab7ebf11f469eaede2bab9309a5b4d6057f"
 dependencies = [
- "memoffset 0.9.0",
+ "memoffset 0.9.1",
  "rustc_version",
 ]
 
@@ -1582,9 +1702,9 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "flate2"
-version = "1.0.26"
+version = "1.0.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743"
+checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1600,15 +1720,14 @@ dependencies = [
 
 [[package]]
 name = "flume"
-version = "0.10.14"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1657b4441c3403d9f7b3409e47575237dac27b1b5726df654a6ecbf92f0f7577"
+checksum = "55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181"
 dependencies = [
  "futures-core",
  "futures-sink",
  "nanorand",
- "pin-project",
- "spin 0.9.8",
+ "spin",
 ]
 
 [[package]]
@@ -1634,18 +1753,21 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
 
 [[package]]
 name = "form_urlencoded"
-version = "1.2.0"
+version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a62bc1cf6f830c2ec14a513a9fb124d0a213a629668a4186f329db21fe045652"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
 dependencies = [
  "percent-encoding",
 ]
 
 [[package]]
 name = "fs-err"
-version = "2.9.0"
+version = "2.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0845fa252299212f0389d64ba26f34fa32cfe41588355f21ed507c59a0f64541"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "fst"
@@ -1655,9 +1777,9 @@ checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a"
 
 [[package]]
 name = "futures"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1670,9 +1792,9 @@ dependencies = [
 
 [[package]]
 name = "futures-channel"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -1680,15 +1802,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
 
 [[package]]
 name = "futures-executor"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
 dependencies = [
  "futures-core",
  "futures-task",
@@ -1697,38 +1819,38 @@ dependencies = [
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-macro"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "futures-sink"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
 
 [[package]]
 name = "futures-task"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
 name = "futures-util"
-version = "0.3.28"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1744,20 +1866,19 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "gdk-pixbuf-sys",
  "gio",
  "glib",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -1768,8 +1889,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "cairo-rs",
  "gdk-pixbuf",
@@ -1782,8 +1903,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4-sys"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -1798,8 +1919,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4-wayland"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "gdk4",
  "gdk4-wayland-sys",
@@ -1810,8 +1931,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4-wayland-sys"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "glib-sys",
  "libc",
@@ -1820,8 +1941,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4-win32"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "gdk4",
  "gdk4-win32-sys",
@@ -1829,15 +1950,13 @@ dependencies = [
  "glib",
  "khronos-egl",
  "libc",
- "system-deps",
 ]
 
 [[package]]
 name = "gdk4-win32-sys"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
- "gdk-pixbuf-sys",
  "gdk4-sys",
  "glib-sys",
  "libc",
@@ -1846,8 +1965,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4-x11"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "gdk4",
  "gdk4-x11-sys",
@@ -1858,8 +1977,8 @@ dependencies = [
 
 [[package]]
 name = "gdk4-x11-sys"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "gdk4-sys",
  "glib-sys",
@@ -1888,22 +2007,22 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
 dependencies = [
  "cfg-if",
  "js-sys",
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
+ "wasi",
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "gif"
-version = "0.12.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80792593675e051cf94a4b111980da2ba60d4a83e43e0048c5693baab3977045"
+checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
 dependencies = [
  "color_quant",
  "weezl",
@@ -1911,14 +2030,14 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "gio"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "futures-channel",
  "futures-core",
@@ -1927,7 +2046,6 @@ dependencies = [
  "gio-sys",
  "glib",
  "libc",
- "once_cell",
  "pin-project-lite",
  "smallvec",
  "thiserror",
@@ -1935,22 +2053,22 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "glib-sys",
  "gobject-sys",
  "libc",
  "system-deps",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "glib"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.5.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
@@ -1962,28 +2080,26 @@ dependencies = [
  "gobject-sys",
  "libc",
  "memchr",
- "once_cell",
  "smallvec",
  "thiserror",
 ]
 
 [[package]]
 name = "glib-macros"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
- "heck",
+ "heck 0.5.0",
  "proc-macro-crate",
- "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "glib-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "libc",
  "system-deps",
@@ -1997,8 +2113,8 @@ checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
 
 [[package]]
 name = "gobject-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "glib-sys",
  "libc",
@@ -2007,8 +2123,8 @@ dependencies = [
 
 [[package]]
 name = "graphene-rs"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "glib",
  "graphene-sys",
@@ -2017,8 +2133,8 @@ dependencies = [
 
 [[package]]
 name = "graphene-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "glib-sys",
  "libc",
@@ -2027,9 +2143,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "group"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7"
+dependencies = [
+ "ff",
+ "rand_core",
+ "subtle",
+]
+
+[[package]]
 name = "gsk4"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "cairo-rs",
  "gdk4",
@@ -2042,8 +2169,8 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
@@ -2057,7 +2184,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-audiofx"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "atomic_refcell",
@@ -2072,13 +2199,14 @@ dependencies = [
  "hrtf",
  "nnnoiseless",
  "num-traits",
+ "once_cell",
  "rayon",
  "smallvec",
 ]
 
 [[package]]
 name = "gst-plugin-aws"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "async-stream",
  "aws-config",
@@ -2086,14 +2214,11 @@ dependencies = [
  "aws-sdk-s3",
  "aws-sdk-transcribestreaming",
  "aws-sdk-translate",
- "aws-sig-auth",
- "aws-smithy-http",
- "aws-smithy-types",
  "aws-types",
  "base32",
  "bytes",
  "chrono",
- "env_logger 0.10.0",
+ "env_logger 0.10.2",
  "futures",
  "gio",
  "gst-plugin-version-helper",
@@ -2101,7 +2226,7 @@ dependencies = [
  "gstreamer-audio",
  "gstreamer-base",
  "gstreamer-check",
- "http",
+ "once_cell",
  "percent-encoding",
  "rand",
  "serde",
@@ -2114,7 +2239,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-cdg"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "cdg",
  "cdg_renderer",
@@ -2124,12 +2249,12 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video",
  "image",
- "muldiv",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-claxon"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "atomic_refcell",
  "byte-slice-cast",
@@ -2143,7 +2268,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-closedcaption"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "atomic_refcell",
@@ -2159,6 +2284,7 @@ dependencies = [
  "gstreamer-check",
  "gstreamer-video",
  "nom",
+ "once_cell",
  "pango",
  "pangocairo",
  "pretty_assertions",
@@ -2170,7 +2296,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-csound"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "byte-slice-cast",
  "csound",
@@ -2179,11 +2305,12 @@ dependencies = [
  "gstreamer-audio",
  "gstreamer-base",
  "gstreamer-check",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-dav1d"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "dav1d",
  "gst-plugin-version-helper",
@@ -2191,11 +2318,12 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video",
  "num_cpus",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-fallbackswitch"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gio",
  "gst-plugin-gtk4",
@@ -2207,12 +2335,13 @@ dependencies = [
  "gstreamer-check",
  "gstreamer-video",
  "gtk4",
+ "once_cell",
  "parking_lot",
 ]
 
 [[package]]
 name = "gst-plugin-ffv1"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "byte-slice-cast",
  "ffv1",
@@ -2220,21 +2349,23 @@ dependencies = [
  "gstreamer",
  "gstreamer-check",
  "gstreamer-video",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-file"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-base",
+ "once_cell",
  "url",
 ]
 
 [[package]]
 name = "gst-plugin-flavors"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "byteorder",
  "flavors",
@@ -2242,15 +2373,15 @@ dependencies = [
  "gstreamer",
  "gstreamer-audio",
  "gstreamer-base",
- "muldiv",
  "nom",
  "num-rational",
+ "once_cell",
  "smallvec",
 ]
 
 [[package]]
 name = "gst-plugin-fmp4"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "chrono",
@@ -2264,13 +2395,14 @@ dependencies = [
  "gstreamer-pbutils",
  "gstreamer-video",
  "m3u8-rs",
+ "once_cell",
  "quick-xml",
  "serde",
 ]
 
 [[package]]
 name = "gst-plugin-gif"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "atomic_refcell",
  "gif",
@@ -2283,8 +2415,9 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-gtk4"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
+ "async-channel",
  "gdk4-wayland",
  "gdk4-win32",
  "gdk4-x11",
@@ -2297,28 +2430,32 @@ dependencies = [
  "gstreamer-gl-x11",
  "gstreamer-video",
  "gtk4",
- "windows-sys",
+ "once_cell",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "gst-plugin-hlssink3"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
+ "anyhow",
+ "chrono",
  "gio",
- "glib",
  "gst-plugin-version-helper",
  "gstreamer",
+ "gstreamer-app",
  "gstreamer-audio",
- "gstreamer-base",
  "gstreamer-check",
+ "gstreamer-pbutils",
+ "gstreamer-video",
  "m3u8-rs",
  "once_cell",
- "regex",
+ "sprintf",
 ]
 
 [[package]]
 name = "gst-plugin-hsv"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "byte-slice-cast",
  "gst-plugin-version-helper",
@@ -2328,22 +2465,42 @@ dependencies = [
  "gstreamer-check",
  "gstreamer-video",
  "num-traits",
+ "once_cell",
+]
+
+[[package]]
+name = "gst-plugin-inter"
+version = "0.12.4"
+dependencies = [
+ "anyhow",
+ "futures",
+ "gst-plugin-version-helper",
+ "gstreamer",
+ "gstreamer-app",
+ "gstreamer-check",
+ "gstreamer-utils",
+ "once_cell",
+ "pretty_assertions",
+ "serial_test",
+ "tokio",
+ "tokio-stream",
 ]
 
 [[package]]
 name = "gst-plugin-json"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-check",
+ "once_cell",
  "serde",
  "serde_json",
 ]
 
 [[package]]
 name = "gst-plugin-lewton"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "atomic_refcell",
  "byte-slice-cast",
@@ -2352,11 +2509,12 @@ dependencies = [
  "gstreamer-audio",
  "gstreamer-check",
  "lewton",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-livesync"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gio",
  "gst-plugin-gtk4",
@@ -2365,14 +2523,14 @@ dependencies = [
  "gstreamer-audio",
  "gstreamer-check",
  "gtk4",
- "muldiv",
  "num-rational",
+ "once_cell",
  "parking_lot",
 ]
 
 [[package]]
 name = "gst-plugin-mp4"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "gst-plugin-version-helper",
@@ -2381,17 +2539,20 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-pbutils",
  "gstreamer-video",
+ "once_cell",
  "tempfile",
  "url",
 ]
 
 [[package]]
 name = "gst-plugin-ndi"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
+ "anyhow",
  "atomic_refcell",
  "byte-slice-cast",
  "byteorder",
+ "data-encoding",
  "glib",
  "gst-plugin-version-helper",
  "gstreamer",
@@ -2399,11 +2560,15 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video",
  "libloading",
+ "once_cell",
+ "quick-xml",
+ "smallvec",
+ "thiserror",
 ]
 
 [[package]]
 name = "gst-plugin-onvif"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "cairo-rs",
  "chrono",
@@ -2412,6 +2577,7 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-rtp",
  "gstreamer-video",
+ "once_cell",
  "pango",
  "pangocairo",
  "xmlparser",
@@ -2420,7 +2586,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-png"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
@@ -2433,70 +2599,103 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-raptorq"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-base",
  "gstreamer-check",
  "gstreamer-rtp",
+ "once_cell",
  "rand",
  "raptorq",
 ]
 
 [[package]]
 name = "gst-plugin-rav1e"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "atomic_refcell",
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-check",
  "gstreamer-video",
+ "once_cell",
  "rav1e",
 ]
 
 [[package]]
 name = "gst-plugin-regex"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-check",
+ "once_cell",
  "regex",
 ]
 
 [[package]]
 name = "gst-plugin-reqwest"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
+ "bytes",
  "futures",
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-base",
- "headers",
- "hyper",
+ "headers 0.4.0",
+ "http-body-util",
+ "hyper 1.2.0",
  "mime",
- "reqwest",
+ "once_cell",
+ "pin-project-lite",
+ "reqwest 0.12.3",
  "tokio",
  "url",
 ]
 
 [[package]]
 name = "gst-plugin-rtp"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "bitstream-io",
- "chrono",
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-check",
  "gstreamer-rtp",
+ "once_cell",
+ "smallvec",
+ "time",
+]
+
+[[package]]
+name = "gst-plugin-rtsp"
+version = "0.12.4"
+dependencies = [
+ "anyhow",
+ "atomic_refcell",
+ "data-encoding",
+ "futures",
+ "gst-plugin-version-helper",
+ "gstreamer",
+ "gstreamer-app",
+ "gstreamer-net",
+ "gstreamer-pbutils",
+ "lru",
+ "once_cell",
+ "rtsp-types",
+ "sdp-types",
+ "socket2 0.5.6",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "url",
 ]
 
 [[package]]
 name = "gst-plugin-sodium"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "clap",
  "gst-plugin-version-helper",
@@ -2516,7 +2715,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-spotify"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "futures",
@@ -2524,35 +2723,39 @@ dependencies = [
  "gstreamer",
  "gstreamer-base",
  "librespot",
+ "once_cell",
  "tokio",
  "url",
 ]
 
 [[package]]
 name = "gst-plugin-textahead"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-textwrap"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-check",
  "hyphenation",
+ "once_cell",
  "textwrap",
 ]
 
 [[package]]
 name = "gst-plugin-threadshare"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "async-task",
  "cc",
+ "cfg-if",
  "clap",
  "concurrent-queue",
  "flume",
@@ -2565,21 +2768,21 @@ dependencies = [
  "gstreamer-check",
  "gstreamer-net",
  "gstreamer-rtp",
- "libc",
  "once_cell",
  "pin-project-lite",
  "pkg-config",
  "polling",
  "rand",
+ "rustix",
  "slab",
- "socket2 0.5.3",
+ "socket2 0.5.6",
  "waker-fn",
  "winapi",
 ]
 
 [[package]]
 name = "gst-plugin-togglerecord"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "either",
  "gio",
@@ -2590,23 +2793,25 @@ dependencies = [
  "gstreamer-check",
  "gstreamer-video",
  "gtk4",
+ "once_cell",
  "parking_lot",
 ]
 
 [[package]]
 name = "gst-plugin-tracers"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "gst-plugin-version-helper",
  "gstreamer",
+ "once_cell",
  "regex",
  "signal-hook",
 ]
 
 [[package]]
 name = "gst-plugin-tutorial"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "byte-slice-cast",
  "gst-plugin-version-helper",
@@ -2615,11 +2820,12 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video",
  "num-traits",
+ "once_cell",
 ]
 
 [[package]]
 name = "gst-plugin-uriplaylistbin"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "clap",
@@ -2627,20 +2833,22 @@ dependencies = [
  "gstreamer",
  "gstreamer-app",
  "more-asserts",
+ "once_cell",
  "thiserror",
  "url",
 ]
 
 [[package]]
 name = "gst-plugin-version-helper"
-version = "0.7.5"
+version = "0.8.2"
 dependencies = [
  "chrono",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
 name = "gst-plugin-videofx"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "atomic_refcell",
  "cairo-rs",
@@ -2654,24 +2862,26 @@ dependencies = [
  "gstreamer-video",
  "image",
  "image_hasher",
+ "once_cell",
  "rgb",
 ]
 
 [[package]]
 name = "gst-plugin-webp"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "gst-plugin-version-helper",
  "gstreamer",
  "gstreamer-check",
  "gstreamer-video",
  "libwebp-sys2",
+ "once_cell",
  "pretty_assertions",
 ]
 
 [[package]]
 name = "gst-plugin-webrtc"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "async-recursion",
@@ -2680,12 +2890,13 @@ dependencies = [
  "aws-credential-types",
  "aws-sdk-kinesisvideo",
  "aws-sdk-kinesisvideosignaling",
- "aws-sig-auth",
+ "aws-sigv4",
  "aws-smithy-http",
  "aws-smithy-types",
  "aws-types",
  "chrono",
  "clap",
+ "crossbeam-channel",
  "data-encoding",
  "fastrand",
  "futures",
@@ -2693,19 +2904,22 @@ dependencies = [
  "gst-plugin-webrtc-signalling-protocol",
  "gstreamer",
  "gstreamer-app",
+ "gstreamer-audio",
  "gstreamer-base",
  "gstreamer-rtp",
  "gstreamer-sdp",
  "gstreamer-utils",
  "gstreamer-video",
  "gstreamer-webrtc",
- "http",
+ "http 1.1.0",
  "human_bytes",
  "livekit-api",
  "livekit-protocol",
+ "once_cell",
  "parse_link_header",
+ "rand",
  "regex",
- "reqwest",
+ "reqwest 0.11.27",
  "serde",
  "serde_json",
  "thiserror",
@@ -2718,11 +2932,12 @@ dependencies = [
  "url",
  "url-escape",
  "uuid",
+ "warp",
 ]
 
 [[package]]
 name = "gst-plugin-webrtc-signalling"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "anyhow",
  "async-tungstenite",
@@ -2744,7 +2959,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-webrtc-signalling-protocol"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "serde",
  "serde_json",
@@ -2752,7 +2967,7 @@ dependencies = [
 
 [[package]]
 name = "gst-plugin-webrtchttp"
-version = "0.11.0"
+version = "0.12.4"
 dependencies = [
  "async-recursion",
  "bytes",
@@ -2761,15 +2976,16 @@ dependencies = [
  "gstreamer",
  "gstreamer-sdp",
  "gstreamer-webrtc",
+ "once_cell",
  "parse_link_header",
- "reqwest",
+ "reqwest 0.12.3",
  "tokio",
 ]
 
 [[package]]
 name = "gstreamer"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -2777,14 +2993,15 @@ dependencies = [
  "futures-util",
  "glib",
  "gstreamer-sys",
- "itertools 0.11.0",
+ "itertools 0.12.1",
  "libc",
  "muldiv",
  "num-integer",
  "num-rational",
+ "once_cell",
  "option-operations",
  "paste",
- "pretty-hex",
+ "pin-project-lite",
  "serde",
  "serde_bytes",
  "smallvec",
@@ -2793,8 +3010,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-app"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "futures-core",
  "futures-sink",
@@ -2807,8 +3024,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-app-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-base-sys",
@@ -2819,8 +3036,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-audio"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "cfg-if",
  "glib",
@@ -2828,12 +3045,15 @@ dependencies = [
  "gstreamer-audio-sys",
  "gstreamer-base",
  "libc",
+ "once_cell",
+ "serde",
+ "smallvec",
 ]
 
 [[package]]
 name = "gstreamer-audio-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2845,8 +3065,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "atomic_refcell",
  "cfg-if",
@@ -2858,8 +3078,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2870,8 +3090,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-check"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2880,8 +3100,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-check-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2892,8 +3112,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2901,12 +3121,13 @@ dependencies = [
  "gstreamer-gl-sys",
  "gstreamer-video",
  "libc",
+ "once_cell",
 ]
 
 [[package]]
 name = "gstreamer-gl-egl"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2917,8 +3138,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-egl-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-gl-sys",
@@ -2928,8 +3149,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -2942,8 +3163,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-wayland"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2954,8 +3175,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-wayland-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-gl-sys",
@@ -2965,8 +3186,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-x11"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -2977,8 +3198,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-gl-x11-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-gl-sys",
@@ -2988,8 +3209,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-net"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "gio",
  "glib",
@@ -2999,8 +3220,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-net-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "gio-sys",
  "glib-sys",
@@ -3011,8 +3232,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-pbutils"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -3025,8 +3246,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-pbutils-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -3039,8 +3260,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-rtp"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -3050,8 +3271,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-rtp-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-base-sys",
@@ -3062,8 +3283,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sdp"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -3072,8 +3293,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sdp-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-sys",
@@ -3083,8 +3304,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -3094,19 +3315,20 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-utils"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "gstreamer",
  "gstreamer-app",
  "gstreamer-video",
+ "once_cell",
  "thiserror",
 ]
 
 [[package]]
 name = "gstreamer-video"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "cfg-if",
  "futures-channel",
@@ -3115,13 +3337,15 @@ dependencies = [
  "gstreamer-base",
  "gstreamer-video-sys",
  "libc",
+ "once_cell",
  "serde",
+ "thiserror",
 ]
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -3133,8 +3357,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-webrtc"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib",
  "gstreamer",
@@ -3145,8 +3369,8 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-webrtc-sys"
-version = "0.21.0"
-source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.21#5022d85b8385814669aa797249dce94193eeccc0"
+version = "0.22.4"
+source = "git+https://gitlab.freedesktop.org/gstreamer/gstreamer-rs?branch=0.22#f2d3128bf9d0170288ce479bea021f0886617fac"
 dependencies = [
  "glib-sys",
  "gstreamer-sdp-sys",
@@ -3157,8 +3381,8 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "cairo-rs",
  "field-offset",
@@ -3177,8 +3401,8 @@ dependencies = [
 
 [[package]]
 name = "gtk4-macros"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "anyhow",
  "proc-macro-crate",
@@ -3190,8 +3414,8 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.7.1"
-source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.7#9cf490a3afcad0a61233d4f65cfc2f5d2d369e9f"
+version = "0.8.1"
+source = "git+https://github.com/gtk-rs/gtk4-rs?branch=0.8#05d26f6a97a0ccf856b565b4fd796cdf57059084"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
@@ -3208,17 +3432,36 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
  "futures-core",
  "futures-sink",
  "futures-util",
- "http",
- "indexmap 1.9.3",
+ "http 0.2.12",
+ "indexmap 2.2.6",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "h2"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "816ec7294445779408f36fe57bc5b7fc1cf59664059096c65f905c1c61f58069"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http 1.1.0",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -3233,21 +3476,39 @@ checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.0"
+version = "0.14.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a"
+checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+dependencies = [
+ "ahash",
+ "allocator-api2",
+]
 
 [[package]]
 name = "headers"
-version = "0.3.8"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584"
+checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
 dependencies = [
- "base64 0.13.1",
- "bitflags 1.3.2",
+ "base64 0.21.7",
  "bytes",
- "headers-core",
- "http",
+ "headers-core 0.2.0",
+ "http 0.2.12",
+ "httpdate",
+ "mime",
+ "sha1",
+]
+
+[[package]]
+name = "headers"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "322106e6bd0cba2d5ead589ddb8150a13d7c4217cf80d7c4f682ca994ccc6aa9"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "headers-core 0.3.0",
+ "http 1.1.0",
  "httpdate",
  "mime",
  "sha1",
@@ -3259,7 +3520,16 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
 dependencies = [
- "http",
+ "http 0.2.12",
+]
+
+[[package]]
+name = "headers-core"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54b4a22553d4242c49fddb9ba998a99962b5cc6f22cb5a3482bec22522403ce4"
+dependencies = [
+ "http 1.1.0",
 ]
 
 [[package]]
@@ -3269,6 +3539,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
 name = "hermit-abi"
 version = "0.1.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3279,9 +3555,9 @@ dependencies = [
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.2"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
 name = "hex"
@@ -3321,9 +3597,9 @@ dependencies = [
 
 [[package]]
 name = "hrtf"
-version = "0.8.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73088c4a5d7c9d21ee942a54611696f247c4bafc85e9261bf8c409b6857e75be"
+checksum = "0f4de47a84fd55fa33aa5ef337016814fdc869fdad23e7898b5322fa290248e6"
 dependencies = [
  "byteorder",
  "rubato",
@@ -3332,9 +3608,20 @@ dependencies = [
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21b9ddb458710bc376481b842f5da65cdf31522de232c1ca8146abce2a358258"
 dependencies = [
  "bytes",
  "fnv",
@@ -3343,12 +3630,35 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "0.4.5"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
 dependencies = [
  "bytes",
- "http",
+ "http 0.2.12",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-body"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+dependencies = [
+ "bytes",
+ "http 1.1.0",
+]
+
+[[package]]
+name = "http-body-util"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0475f8b2ac86659c21b64320d5d653f9efe42acd2a4e560073ec61a155a34f1d"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "http 1.1.0",
+ "http-body 1.0.0",
  "pin-project-lite",
 ]
 
@@ -3360,15 +3670,15 @@ checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904"
 
 [[package]]
 name = "httpdate"
-version = "1.0.2"
+version = "1.0.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "human_bytes"
-version = "0.4.2"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27e2b089f28ad15597b48d8c0a8fe94eeb1c1cb26ca99b6f66ac9582ae10c5e6"
+checksum = "91f255a4535024abf7640cb288260811fc14794f62b063652ed349f9a6c2348e"
 
 [[package]]
 name = "humantime"
@@ -3378,22 +3688,22 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
 
 [[package]]
 name = "hyper"
-version = "0.14.27"
+version = "0.14.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffb1cfd654a8219eaef89881fdb3bb3b1cdc5fa75ded05d6933b2b382e395468"
+checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80"
 dependencies = [
  "bytes",
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
  "httparse",
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2 0.4.9",
+ "socket2 0.5.6",
  "tokio",
  "tower-service",
  "tracing",
@@ -3401,6 +3711,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "hyper"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "186548d73ac615b32a73aafe38fb4f56c0d340e110e5a200bcadbaf2e199263a"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "h2 0.4.4",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "smallvec",
+ "tokio",
+ "want",
+]
+
+[[package]]
 name = "hyper-proxy"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3408,22 +3739,22 @@ checksum = "ca815a891b24fdfb243fa3239c86154392b0953ee584aa1a2a1f66d20cbe75cc"
 dependencies = [
  "bytes",
  "futures",
- "headers",
- "http",
- "hyper",
+ "headers 0.3.9",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "tokio",
  "tower-service",
 ]
 
 [[package]]
 name = "hyper-rustls"
-version = "0.24.1"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d78e1e73ec14cf7375674f74d7dde185c8206fd9dea6fb6295e8a98098aaa97"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
 dependencies = [
  "futures-util",
- "http",
- "hyper",
+ "http 0.2.12",
+ "hyper 0.14.28",
  "log",
  "rustls",
  "rustls-native-certs",
@@ -3438,13 +3769,49 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"
 dependencies = [
  "bytes",
- "hyper",
+ "hyper 0.14.28",
  "native-tls",
  "tokio",
  "tokio-native-tls",
 ]
 
 [[package]]
+name = "hyper-tls"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
+dependencies = [
+ "bytes",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "native-tls",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+]
+
+[[package]]
+name = "hyper-util"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "hyper 1.2.0",
+ "pin-project-lite",
+ "socket2 0.5.6",
+ "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
 name = "hyphenation"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3469,16 +3836,16 @@ dependencies = [
 
 [[package]]
 name = "iana-time-zone"
-version = "0.1.57"
+version = "0.1.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fad5b825842d2b38bd206f3e81d6957625fd7f0a361e345c30e01a0ae2dd613"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
 dependencies = [
  "android_system_properties",
  "core-foundation-sys",
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows",
+ "windows-core",
 ]
 
 [[package]]
@@ -3498,17 +3865,6 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "idna"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "418a0a6fab821475f634efe3ccc45c013f742efe03d853e8d3355d5cb850ecf8"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "idna"
 version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
@@ -3519,9 +3875,9 @@ dependencies = [
 
 [[package]]
 name = "idna"
-version = "0.4.0"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
 dependencies = [
  "unicode-bidi",
  "unicode-normalization",
@@ -3539,14 +3895,13 @@ dependencies = [
 
 [[package]]
 name = "image"
-version = "0.24.7"
+version = "0.24.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f3dfdbdd72063086ff443e297b61695500514b1e41095b6fb9a5ab48a70a711"
+checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
- "num-rational",
  "num-traits",
 ]
 
@@ -3556,7 +3911,7 @@ version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f9e64a8c472ea9f81ac448e3b488fd82dcdfce6434cf880882bf36bfb5c268a"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
  "image",
  "rustdct",
  "serde",
@@ -3565,9 +3920,9 @@ dependencies = [
 
 [[package]]
 name = "imgref"
-version = "1.9.4"
+version = "1.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2cf49df1085dcfb171460e4592597b84abe50d900fb83efb6e41b20fefd6c2c"
+checksum = "44feda355f4159a7c757171a77de25daf6411e217b4cabd03bd6650690468126"
 
 [[package]]
 name = "indexmap"
@@ -3582,41 +3937,41 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.0.0"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
- "hashbrown 0.14.0",
+ "hashbrown 0.14.3",
  "serde",
 ]
 
 [[package]]
 name = "interpolate_name"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4b35f4a811037cfdcd44c5db40678464b2d5d248fc1abeeaaa125b370d47f17"
+checksum = "c34819042dc3d3971c46c2190835914dfbe0c3c13f61449b2997f4e9722dfa60"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "ipnet"
-version = "2.8.0"
+version = "2.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28b29a3cd74f0f4598934efe3aeba42bae0eb4680554128851ebbecb02af14e6"
+checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3"
 
 [[package]]
 name = "is-terminal"
-version = "0.4.9"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "hermit-abi 0.3.2",
- "rustix",
- "windows-sys",
+ "hermit-abi 0.3.9",
+ "libc",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -3630,53 +3985,54 @@ dependencies = [
 
 [[package]]
 name = "itertools"
-version = "0.10.5"
+version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itertools"
-version = "0.11.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
 dependencies = [
  "either",
 ]
 
 [[package]]
 name = "itoa"
-version = "1.0.9"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "jobserver"
-version = "0.1.26"
+version = "0.1.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+checksum = "ab46a6e9526ddef3ae7f787c06f0f2600639ba80ea3eade3d8e670a2230f51d6"
 dependencies = [
  "libc",
 ]
 
 [[package]]
 name = "js-sys"
-version = "0.3.64"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f195fe497f702db0f318b07fdd68edb16955aed830df8363d837542f8f935a"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "jsonwebtoken"
-version = "8.3.0"
+version = "9.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
+checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
+ "js-sys",
  "ring",
  "serde",
  "serde_json",
@@ -3684,9 +4040,9 @@ dependencies = [
 
 [[package]]
 name = "khronos-egl"
-version = "5.0.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d1382b16c04aeb821453d6215a3c80ba78f24c6595c5aa85653378aabe0c83e3"
+checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
 dependencies = [
  "libc",
 ]
@@ -3710,35 +4066,36 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.153"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
 
 [[package]]
 name = "libfuzzer-sys"
-version = "0.3.5"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcf184a4b6b274f82a5df6b357da6055d3e82272327bba281c28bbba6f1664ef"
+checksum = "a96cfd5557eb82f2b83fed4955246c988d331975a002961b07c81584d107e7f7"
 dependencies = [
  "arbitrary",
  "cc",
+ "once_cell",
 ]
 
 [[package]]
 name = "libloading"
-version = "0.8.0"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d580318f95776505201b28cf98eb1fa5e4be3b689633ba6a3e6cd880ff22d8cb"
+checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
 dependencies = [
  "cfg-if",
- "windows-sys",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
 name = "libm"
-version = "0.2.7"
+version = "0.2.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
 
 [[package]]
 name = "libmdns"
@@ -3751,10 +4108,10 @@ dependencies = [
  "hostname",
  "if-addrs",
  "log",
- "multimap",
+ "multimap 0.8.3",
  "nix",
  "rand",
- "socket2 0.4.9",
+ "socket2 0.4.10",
  "thiserror",
  "tokio",
  "winapi",
@@ -3771,7 +4128,7 @@ dependencies = [
  "futures-util",
  "getopts",
  "hex",
- "hyper",
+ "hyper 0.14.28",
  "librespot-audio",
  "librespot-connect",
  "librespot-core",
@@ -3838,9 +4195,9 @@ dependencies = [
  "futures-core",
  "futures-util",
  "hmac 0.11.0",
- "http",
+ "http 0.2.12",
  "httparse",
- "hyper",
+ "hyper 0.14.28",
  "hyper-proxy",
  "librespot-protocol",
  "log",
@@ -3876,7 +4233,7 @@ dependencies = [
  "form_urlencoded",
  "futures-core",
  "hmac 0.11.0",
- "hyper",
+ "hyper 0.14.28",
  "libmdns",
  "librespot-core",
  "log",
@@ -3922,7 +4279,7 @@ dependencies = [
  "shell-words",
  "thiserror",
  "tokio",
- "zerocopy",
+ "zerocopy 0.6.6",
 ]
 
 [[package]]
@@ -3950,9 +4307,9 @@ dependencies = [
 
 [[package]]
 name = "libwebp-sys2"
-version = "0.1.7"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74f9c6964201c51319f16a796dc947a73961646eba49f584187b12de9970d077"
+checksum = "0e2ae528b6c8f543825990b24c00cfd8fe64dde126c8288f4972b18e3d558072"
 dependencies = [
  "cc",
  "cfg-if",
@@ -3963,15 +4320,15 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.5"
+version = "0.4.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
 
 [[package]]
 name = "livekit-api"
-version = "0.1.3"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0d4c5d731bb0da7b313c982ee32300e7caf1ee0595c0d1e57d00f43248c0c47"
+checksum = "e20c3fc3de5944ce6b5c8da4084cf828bbae7216671e32e83b767ce61feeb7e0"
 dependencies = [
  "futures-util",
  "jsonwebtoken",
@@ -3979,34 +4336,38 @@ dependencies = [
  "log",
  "parking_lot",
  "prost",
- "reqwest",
+ "reqwest 0.11.27",
+ "scopeguard",
  "serde",
- "serde_json",
  "sha2",
  "thiserror",
  "tokio",
- "tokio-tungstenite",
+ "tokio-tungstenite 0.20.1",
  "url",
 ]
 
 [[package]]
 name = "livekit-protocol"
-version = "0.1.3"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bd731959a8dccc17248499b9952693f593bee4bb79186bf60d180b4097be59"
+checksum = "1a1bd23257110be29d024d8d816adff70df18ea1d22ceb1aab6f3ad4aab0d523"
 dependencies = [
  "futures-util",
  "parking_lot",
+ "pbjson",
+ "pbjson-types",
  "prost",
  "prost-types",
+ "serde",
+ "thiserror",
  "tokio",
 ]
 
 [[package]]
 name = "lock_api"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"
+checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -4014,15 +4375,24 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lru"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+dependencies = [
+ "hashbrown 0.14.3",
+]
 
 [[package]]
 name = "m3u8-rs"
-version = "5.0.4"
+version = "5.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d39af8845edca961e3286dcbafeb9e6407d3df6a616ef086847162d46f438d75"
+checksum = "0c1d7ba86f7ea62f17f4310c55e93244619ddc7dadfc7e565de1967e4e41e6e7"
 dependencies = [
  "chrono",
  "nom",
@@ -4044,12 +4414,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "matches"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
-
-[[package]]
 name = "maybe-rayon"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4061,18 +4425,19 @@ dependencies = [
 
 [[package]]
 name = "md-5"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf"
 dependencies = [
+ "cfg-if",
  "digest 0.10.7",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "memoffset"
@@ -4085,9 +4450,9 @@ dependencies = [
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -4099,6 +4464,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
 
 [[package]]
+name = "mime_guess"
+version = "2.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
 name = "minimal-lexical"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4106,9 +4481,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
 [[package]]
 name = "miniz_oxide"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7"
+checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7"
 dependencies = [
  "adler",
  "simd-adler32",
@@ -4116,13 +4491,13 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.8"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "927a765cd3fc26206e66b296465fa9d3e5ab003e651c1b3c060e7956d96b19d2"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
 dependencies = [
  "libc",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "windows-sys",
+ "wasi",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
@@ -4138,6 +4513,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "956787520e75e9bd233246045d19f42fb73242759cc57fba9611d940ae96d4b0"
 
 [[package]]
+name = "multer"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01acbdc23469fd8fe07ab135923371d5f5a422fbf9c522158677c8eb15bc51c2"
+dependencies = [
+ "bytes",
+ "encoding_rs",
+ "futures-util",
+ "http 0.2.12",
+ "httparse",
+ "log",
+ "memchr",
+ "mime",
+ "spin",
+ "version_check",
+]
+
+[[package]]
 name = "multimap"
 version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4147,6 +4540,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "multimap"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
+
+[[package]]
 name = "nanorand"
 version = "0.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4184,9 +4583,9 @@ dependencies = [
 
 [[package]]
 name = "new_debug_unreachable"
-version = "1.0.4"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
 
 [[package]]
 name = "nix"
@@ -4239,9 +4638,9 @@ dependencies = [
 
 [[package]]
 name = "num-bigint"
-version = "0.4.3"
+version = "0.4.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -4251,42 +4650,36 @@ dependencies = [
 
 [[package]]
 name = "num-complex"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d"
+checksum = "23c6602fda94a57c990fe0df199a035d83576b496aa29f4e634a8ac6004e68a6"
 dependencies = [
  "num-traits",
 ]
 
 [[package]]
-name = "num-derive"
-version = "0.3.3"
+name = "num-conv"
+version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn 1.0.109",
-]
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
 name = "num-derive"
-version = "0.4.0"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "num-integer"
-version = "0.1.45"
+version = "0.1.46"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
 dependencies = [
- "autocfg",
  "num-traits",
 ]
 
@@ -4305,9 +4698,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.16"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
  "libm",
@@ -4319,15 +4712,15 @@ version = "1.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
 dependencies = [
- "hermit-abi 0.3.2",
+ "hermit-abi 0.3.9",
  "libc",
 ]
 
 [[package]]
 name = "object"
-version = "0.31.1"
+version = "0.32.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
 dependencies = [
  "memchr",
 ]
@@ -4343,23 +4736,23 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.18.0"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "opaque-debug"
-version = "0.3.0"
+version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
+checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "openssl"
-version = "0.10.56"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "729b745ad4a5575dd06a3e1af1414bd330ee561c01b3899eb584baeaa8def17e"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.5.0",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -4376,7 +4769,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -4387,9 +4780,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.91"
+version = "0.9.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
 dependencies = [
  "cc",
  "libc",
@@ -4419,21 +4812,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
 
 [[package]]
+name = "p256"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594"
+dependencies = [
+ "ecdsa",
+ "elliptic-curve",
+ "sha2",
+]
+
+[[package]]
 name = "pango"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "gio",
  "glib",
  "libc",
- "once_cell",
  "pango-sys",
 ]
 
 [[package]]
 name = "pango-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "glib-sys",
  "gobject-sys",
@@ -4443,8 +4846,8 @@ dependencies = [
 
 [[package]]
 name = "pangocairo"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "cairo-rs",
  "glib",
@@ -4455,8 +4858,8 @@ dependencies = [
 
 [[package]]
 name = "pangocairo-sys"
-version = "0.18.1"
-source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.18#854c9b0592fb3a3865caa3e8538a5dda98399c0c"
+version = "0.19.3"
+source = "git+https://github.com/gtk-rs/gtk-rs-core?branch=0.19#5e944f2eff8b344591666754f7ea3b359943ee8c"
 dependencies = [
  "cairo-sys-rs",
  "glib-sys",
@@ -4466,6 +4869,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "parking"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
+
+[[package]]
 name = "parking_lot"
 version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4477,18 +4886,18 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.8"
+version = "0.9.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"
+checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 dependencies = [
  "backtrace",
  "cfg-if",
  "libc",
  "petgraph",
- "redox_syscall 0.3.5",
+ "redox_syscall",
  "smallvec",
  "thread-id",
- "windows-targets",
+ "windows-targets 0.48.5",
 ]
 
 [[package]]
@@ -4497,7 +4906,7 @@ version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3687fe9debbbf2a019f381a8bc6b42049b22647449b39af54b3013985c0cf6de"
 dependencies = [
- "http",
+ "http 0.2.12",
  "lazy_static",
  "regex",
  "url",
@@ -4510,6 +4919,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
+name = "pbjson"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90"
+dependencies = [
+ "base64 0.21.7",
+ "serde",
+]
+
+[[package]]
+name = "pbjson-build"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735"
+dependencies = [
+ "heck 0.4.1",
+ "itertools 0.11.0",
+ "prost",
+ "prost-types",
+]
+
+[[package]]
+name = "pbjson-types"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12"
+dependencies = [
+ "bytes",
+ "chrono",
+ "pbjson",
+ "pbjson-build",
+ "prost",
+ "prost-build",
+ "serde",
+]
+
+[[package]]
 name = "pbkdf2"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4521,45 +4967,45 @@ dependencies = [
 
 [[package]]
 name = "percent-encoding"
-version = "2.3.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
 name = "petgraph"
-version = "0.6.3"
+version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4"
+checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
 name = "pin-project"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fda4ed1c6c173e3fc7a83629421152e01d7b1f9b7f65fb301e490e8cfc656422"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.3"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4359fd9c9171ec6e8c62926d6faaf553a8dc3f64e1507e76da7911b4f6a04405"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.12"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
 
 [[package]]
 name = "pin-utils"
@@ -4568,16 +5014,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "pkcs8"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
+dependencies = [
+ "der",
+ "spki",
+]
+
+[[package]]
 name = "pkg-config"
-version = "0.3.27"
+version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964"
+checksum = "d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec"
 
 [[package]]
 name = "png"
-version = "0.17.9"
+version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59871cc5b6cce7eaccca5a802b4173377a1c2ba90654246789a8fa2334426d11"
+checksum = "06e4b0d3d1312775e782c86c91a111aa1f910cbb65e1337f9975b5f9a554b5e1"
 dependencies = [
  "bitflags 1.3.2",
  "crc32fast",
@@ -4594,31 +5050,30 @@ checksum = "c135f38778ad324d9e9ee68690bac2c1a51f340fdf96ca13e2ab3914eb2e51d8"
 
 [[package]]
 name = "polling"
-version = "2.8.0"
+version = "3.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce"
+checksum = "e0c976a60b2d7e99d6f229e414670a9b85d13ac305cc6d1e9c134de58c5aaaf6"
 dependencies = [
- "autocfg",
- "bitflags 1.3.2",
  "cfg-if",
  "concurrent-queue",
- "libc",
- "log",
+ "hermit-abi 0.3.9",
  "pin-project-lite",
- "windows-sys",
+ "rustix",
+ "tracing",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "ppv-lite86"
-version = "0.2.17"
+name = "powerfmt"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
-name = "pretty-hex"
-version = "0.3.0"
+name = "ppv-lite86"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
 name = "pretty_assertions"
@@ -4631,6 +5086,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "prettyplease"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d3928fb5db768cb86f891ff014f0144589297e3c6a1aba6ed7cecfdace270c7"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.58",
+]
+
+[[package]]
 name = "primal-check"
 version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4641,9 +5106,9 @@ dependencies = [
 
 [[package]]
 name = "priority-queue"
-version = "1.3.2"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fff39edfcaec0d64e8d0da38564fad195d2d51b680940295fcc307366e101e61"
+checksum = "a0bda9164fe05bc9225752d54aae413343c36f684380005398a6a8fde95fe785"
 dependencies = [
  "autocfg",
  "indexmap 1.9.3",
@@ -4651,12 +5116,11 @@ dependencies = [
 
 [[package]]
 name = "proc-macro-crate"
-version = "1.3.1"
+version = "3.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919"
+checksum = "6d37c51ca738a55da99dc0c4a34860fd675453b8b36209178c2249bb13651284"
 dependencies = [
- "once_cell",
- "toml_edit",
+ "toml_edit 0.21.1",
 ]
 
 [[package]]
@@ -4685,41 +5149,81 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.79"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
+name = "profiling"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43d84d1d7a6ac92673717f9f6d1518374ef257669c24ebc5ac25d5033828be58"
+dependencies = [
+ "profiling-procmacros",
+]
+
+[[package]]
+name = "profiling-procmacros"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8021cf59c8ec9c432cfc2526ac6b8aa508ecaf29cd415f271b8406c1b851c3fd"
+dependencies = [
+ "quote",
+ "syn 2.0.58",
+]
+
+[[package]]
 name = "prost"
-version = "0.11.9"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd"
+checksum = "d0f5d036824e4761737860779c906171497f6d55681139d8312388f8fe398922"
 dependencies = [
  "bytes",
  "prost-derive",
 ]
 
 [[package]]
+name = "prost-build"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80b776a1b2dc779f5ee0641f8ade0125bc1298dd41a9a0c16d8bd57b42d222b1"
+dependencies = [
+ "bytes",
+ "heck 0.4.1",
+ "itertools 0.12.1",
+ "log",
+ "multimap 0.10.0",
+ "once_cell",
+ "petgraph",
+ "prettyplease",
+ "prost",
+ "prost-types",
+ "regex",
+ "syn 2.0.58",
+ "tempfile",
+]
+
+[[package]]
 name = "prost-derive"
-version = "0.11.9"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4"
+checksum = "19de2de2a00075bf566bee3bd4db014b11587e84184d3f7a791bc17f1a8e9e48"
 dependencies = [
  "anyhow",
- "itertools 0.10.5",
+ "itertools 0.12.1",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "prost-types"
-version = "0.11.9"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13"
+checksum = "3235c33eb02c1f1e212abdbe34c78b264b038fb58ca612664343271e36e55ffe"
 dependencies = [
  "prost",
 ]
@@ -4767,9 +5271,9 @@ dependencies = [
 
 [[package]]
 name = "quick-xml"
-version = "0.30.0"
+version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
 dependencies = [
  "memchr",
  "serde",
@@ -4777,9 +5281,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.32"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f3b39ccfb720540debaa0164757101c08ecb8d326b15358ce76a62c7e85965"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
@@ -4826,15 +5330,15 @@ dependencies = [
 
 [[package]]
 name = "raptorq"
-version = "1.7.0"
+version = "1.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "655b020bbf5c89791160a30f0d4706d8ec7aa5718d6a198f6df19c400e4f4470"
+checksum = "7cc8cd0bcb2d520fff368264b5a6295e064c60955349517d09b14473afae4856"
 
 [[package]]
 name = "rav1e"
-version = "0.6.6"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16c383692a5e7abd9f6d1eddb1a5e0269f859392387883361bb09e5555852ec1"
+checksum = "cd87ce80a7665b1cce111f8a16c1f3929f6547ce91ade6addf4ec86a8dda5ce9"
 dependencies = [
  "arbitrary",
  "arg_enum_proc_macro",
@@ -4845,7 +5349,7 @@ dependencies = [
  "cc",
  "cfg-if",
  "interpolate_name",
- "itertools 0.10.5",
+ "itertools 0.12.1",
  "libc",
  "libfuzzer-sys",
  "log",
@@ -4853,14 +5357,13 @@ dependencies = [
  "nasm-rs",
  "new_debug_unreachable",
  "noop_proc_macro",
- "num-derive 0.3.3",
+ "num-derive",
  "num-traits",
  "once_cell",
  "paste",
+ "profiling",
  "rand",
  "rand_chacha",
- "rust_hawktracer",
- "rustc_version",
  "simd_helpers",
  "system-deps",
  "thiserror",
@@ -4869,9 +5372,9 @@ dependencies = [
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
  "either",
  "rayon-core",
@@ -4879,53 +5382,42 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "realfft"
-version = "2.0.1"
+version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7695c87f31dc3644760f23fb59a3fed47659703abf76cf2d111f03b9e712342"
+checksum = "953d9f7e5cdd80963547b456251296efc2626ed4e3cbf36c869d9564e0220571"
 dependencies = [
  "rustfft",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags 1.3.2",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.3.5"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
 dependencies = [
  "bitflags 1.3.2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-automata 0.3.6",
- "regex-syntax 0.7.4",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
@@ -4939,16 +5431,22 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.6"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
  "aho-corasick",
  "memchr",
- "regex-syntax 0.7.4",
+ "regex-syntax 0.8.3",
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4956,29 +5454,71 @@ checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.4"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "reqwest"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2 0.3.26",
+ "http 0.2.12",
+ "http-body 0.4.6",
+ "hyper 0.14.28",
+ "hyper-tls 0.5.0",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "native-tls",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls-pemfile 1.0.4",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-native-tls",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg 0.50.0",
+]
 
 [[package]]
 name = "reqwest"
-version = "0.11.18"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19"
 dependencies = [
  "async-compression",
- "base64 0.21.2",
+ "base64 0.22.0",
  "bytes",
  "cookie",
  "cookie_store",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2",
- "http",
- "http-body",
- "hyper",
- "hyper-tls",
+ "h2 0.4.4",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-tls 0.6.0",
+ "hyper-util",
  "ipnet",
  "js-sys",
  "log",
@@ -4987,9 +5527,12 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
+ "rustls-pemfile 2.1.2",
  "serde",
  "serde_json",
  "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
  "tokio",
  "tokio-native-tls",
  "tokio-util",
@@ -4998,31 +5541,42 @@ dependencies = [
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg",
+ "winreg 0.52.0",
+]
+
+[[package]]
+name = "rfc6979"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb"
+dependencies = [
+ "crypto-bigint 0.4.9",
+ "hmac 0.12.1",
+ "zeroize",
 ]
 
 [[package]]
 name = "rgb"
-version = "0.8.36"
+version = "0.8.37"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59"
+checksum = "05aaa8004b64fd573fc9d002f4e632d51ad4f026c2b5ba95fcb6c2f32c2c47d8"
 dependencies = [
  "bytemuck",
 ]
 
 [[package]]
 name = "ring"
-version = "0.16.20"
+version = "0.17.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
 dependencies = [
  "cc",
+ "cfg-if",
+ "getrandom",
  "libc",
- "once_cell",
- "spin 0.5.2",
+ "spin",
  "untrusted",
- "web-sys",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -5038,41 +5592,30 @@ dependencies = [
 ]
 
 [[package]]
-name = "rubato"
-version = "0.10.1"
+name = "rtsp-types"
+version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "610bbefcfef7f43cbe275995b6077b74f34480efce293c30327bf44fdad871ed"
+checksum = "6c5c11e0af63f1ac6057f9029f7ddf1c677bade51e449f75be25c8b29f59474c"
 dependencies = [
- "log",
- "num-complex",
- "num-integer",
- "num-traits",
- "realfft",
+ "cookie-factory",
+ "nom",
+ "tinyvec",
+ "url",
 ]
 
 [[package]]
-name = "rust_hawktracer"
-version = "0.7.0"
+name = "rubato"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3480a29b927f66c6e06527be7f49ef4d291a01d694ec1fe85b0de71d6b02ac1"
+checksum = "e6dd52e80cfc21894deadf554a5673002938ae4625f7a283e536f9cf7c17b0d5"
 dependencies = [
- "rust_hawktracer_normal_macro",
- "rust_hawktracer_proc_macro",
+ "num-complex",
+ "num-integer",
+ "num-traits",
+ "realfft",
 ]
 
 [[package]]
-name = "rust_hawktracer_normal_macro"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a570059949e1dcdc6f35228fa389f54c2c84dfe0c94c05022baacd56eacd2e9"
-
-[[package]]
-name = "rust_hawktracer_proc_macro"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb626abdbed5e93f031baae60d72032f56bc964e11ac2ff65f2ba3ed98d6d3e1"
-
-[[package]]
 name = "rustc-demangle"
 version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5098,9 +5641,9 @@ dependencies = [
 
 [[package]]
 name = "rustfft"
-version = "6.1.0"
+version = "6.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d4f6cbdb180c9f4b2a26bbf01c4e647f1e1dea22fe8eb9db54198b32f9434"
+checksum = "43806561bc506d0c5d160643ad742e3161049ac01027b5e6d7524091fd401d86"
 dependencies = [
  "num-complex",
  "num-integer",
@@ -5113,22 +5656,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.38.7"
+version = "0.38.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "172891ebdceb05aa0005f533a6cbfca599ddd7d966f6f5d4d9b2e70478e70399"
+checksum = "65e04861e65f21776e67888bfbea442b3642beaa0138fdb1dd7a84a52dffdb89"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.5.0",
  "errno",
  "libc",
  "linux-raw-sys",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "rustls"
-version = "0.21.6"
+version = "0.21.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d1feddffcfcc0b33f5c6ce9a29e341e4cd59c3f78e7ee45f4a40c038b1d6cbb"
+checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
 dependencies = [
  "log",
  "ring",
@@ -5143,25 +5686,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "schannel",
  "security-framework",
 ]
 
 [[package]]
 name = "rustls-pemfile"
-version = "1.0.3"
+version = "1.0.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3987094b1d07b653b7dfdc3f70ce9a1da9c51ac18c1b06b662e4f9a0e9f4b2"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+dependencies = [
+ "base64 0.22.0",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+
+[[package]]
 name = "rustls-webpki"
-version = "0.101.3"
+version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "261e9e0888cba427c3316e6322805653c9425240b6fd96cee7cb671ab70ab8d0"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
 dependencies = [
  "ring",
  "untrusted",
@@ -5169,9 +5728,9 @@ dependencies = [
 
 [[package]]
 name = "ryu"
-version = "1.0.15"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -5184,14 +5743,20 @@ dependencies = [
 
 [[package]]
 name = "schannel"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88"
+checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534"
 dependencies = [
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
+name = "scoped-tls"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294"
+
+[[package]]
 name = "scopeguard"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5199,19 +5764,43 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sct"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
 dependencies = [
  "ring",
  "untrusted",
 ]
 
 [[package]]
+name = "sdp-types"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bc1e17b07a224c21a31b5f7ed74cbbb189d26a0b8cdbfc8b57fa5940c89f086"
+dependencies = [
+ "bstr",
+ "fallible-iterator",
+]
+
+[[package]]
+name = "sec1"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928"
+dependencies = [
+ "base16ct",
+ "der",
+ "generic-array",
+ "pkcs8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "security-framework"
-version = "2.9.2"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
+checksum = "770452e37cad93e0a50d5abc3990d2bc351c36d0328f86cefec2f2fb206eaef6"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -5222,9 +5811,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.1"
+version = "2.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
+checksum = "41f3cc463c0ef97e11c3461a9d3787412d30e8e7eb907c79180c4a57bf7c04ef"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -5232,47 +5821,44 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.18"
+version = "1.0.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
-dependencies = [
- "serde",
-]
+checksum = "92d43fe69e652f3df9bdc2b85b2854a0825b86e4fb76bc44d945137d053639ca"
 
 [[package]]
 name = "serde"
-version = "1.0.183"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c"
+checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_bytes"
-version = "0.11.12"
+version = "0.11.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab33ec92f677585af6d88c65593ae2375adde54efdbf16d597f2cbc7a6d368ff"
+checksum = "8b8497c313fd43ab992087548117643f6fcd935cbf36f176ffda0aacf9591734"
 dependencies = [
  "serde",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.183"
+version = "1.0.197"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816"
+checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.104"
+version = "1.0.115"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "076066c5f1078eac5b722a31827a8832fe108bed65dfa75e233c89f8206e976c"
+checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
 dependencies = [
  "itoa",
  "ryu",
@@ -5280,10 +5866,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "serde_path_to_error"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af99884400da37c88f5e9146b7f1fd0fbcae8f6eec4e9da38b67d05486f814a6"
+dependencies = [
+ "itoa",
+ "serde",
+]
+
+[[package]]
 name = "serde_spanned"
-version = "0.6.3"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96426c9936fd7a0124915f9185ea1d20aa9445cc9821142f0a73bc9207a2e186"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
 dependencies = [
  "serde",
 ]
@@ -5302,31 +5898,57 @@ dependencies = [
 
 [[package]]
 name = "serde_with"
-version = "3.2.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1402f54f9a3b9e2efe71c1cea24e648acce55887983553eeb858cf3115acfd49"
+checksum = "ee80b0e361bbf88fd2f6e242ccd19cfda072cb0faa6ae694ecee08199938569a"
 dependencies = [
- "base64 0.21.2",
+ "base64 0.21.7",
  "chrono",
  "hex",
  "indexmap 1.9.3",
- "indexmap 2.0.0",
+ "indexmap 2.2.6",
  "serde",
+ "serde_derive",
  "serde_json",
  "serde_with_macros",
- "time 0.3.25",
+ "time",
 ]
 
 [[package]]
 name = "serde_with_macros"
-version = "3.2.0"
+version = "3.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9197f1ad0e3c173a0222d3c4404fb04c3afe87e962bcb327af73e8301fa203c7"
+checksum = "6561dc161a9224638a31d876ccdfefbc1df91d3f3a8342eddb35f055d48c7655"
 dependencies = [
  "darling",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "953ad9342b3aaca7cb43c45c097dd008d4907070394bd0751a0aa8817e5a018d"
+dependencies = [
+ "dashmap",
+ "futures",
+ "lazy_static",
+ "log",
+ "parking_lot",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93fb4adc70021ac1b47f7d45e8cc4169baaa7ea58483bc5b721d19a26202212"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -5344,9 +5966,9 @@ dependencies = [
 
 [[package]]
 name = "sha1"
-version = "0.10.5"
+version = "0.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -5355,9 +5977,9 @@ dependencies = [
 
 [[package]]
 name = "sha2"
-version = "0.10.7"
+version = "0.10.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 dependencies = [
  "cfg-if",
  "cpufeatures",
@@ -5375,9 +5997,9 @@ dependencies = [
 
 [[package]]
 name = "sharded-slab"
-version = "0.1.4"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
 dependencies = [
  "lazy_static",
 ]
@@ -5412,6 +6034,10 @@ name = "signature"
 version = "1.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
+dependencies = [
+ "digest 0.10.7",
+ "rand_core",
+]
 
 [[package]]
 name = "simd-adler32"
@@ -5430,30 +6056,30 @@ dependencies = [
 
 [[package]]
 name = "slab"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
 name = "smallvec"
-version = "1.11.0"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smawk"
-version = "0.3.1"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+checksum = "b7c388c1b5e93756d0c740965c41e8822f866621d41acbdf6336a6a168f8840c"
 
 [[package]]
 name = "socket2"
-version = "0.4.9"
+version = "0.4.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662"
+checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d"
 dependencies = [
  "libc",
  "winapi",
@@ -5461,12 +6087,12 @@ dependencies = [
 
 [[package]]
 name = "socket2"
-version = "0.5.3"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
 dependencies = [
  "libc",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -5483,12 +6109,6 @@ dependencies = [
 
 [[package]]
 name = "spin"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
-
-[[package]]
-name = "spin"
 version = "0.9.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
@@ -5497,6 +6117,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "spki"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
+dependencies = [
+ "base64ct",
+ "der",
+]
+
+[[package]]
+name = "sprintf"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c0cdea5a20a06e7c57f627094e7b1618e5665592cd88f2d45fa4014e348db58"
+
+[[package]]
 name = "strength_reduce"
 version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5510,9 +6146,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "subtle"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
 name = "syn"
@@ -5527,9 +6163,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.28"
+version = "2.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04361975b3f5e348b2189d8dc55bc942f278b2d482a6a0365de5bdd62d351567"
+checksum = "44cfb93f38070beee36b3fef7d4f5a16f27751d94b187b666a5cc5e9b0d30687"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -5537,75 +6173,111 @@ dependencies = [
 ]
 
 [[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "system-deps"
-version = "6.1.1"
+version = "6.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30c2de8a4d8f4b823d634affc9cd2a74ec98c53a756f317e529a48046cbf71f3"
+checksum = "a3e535eb8dded36d55ec13eddacd30dec501792ff23a0b1682c38601b8cf2349"
 dependencies = [
  "cfg-expr",
- "heck",
+ "heck 0.5.0",
  "pkg-config",
- "toml 0.7.6",
+ "toml",
  "version-compare",
 ]
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.11"
+version = "0.12.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "tempfile"
-version = "3.7.1"
+version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc02fddf48964c42031a0b3fe0428320ecf3a73c401040fc0096f97794310651"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
  "fastrand",
- "redox_syscall 0.3.5",
  "rustix",
- "windows-sys",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "termcolor"
-version = "1.2.0"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
 dependencies = [
  "winapi-util",
 ]
 
 [[package]]
 name = "test-log"
-version = "0.2.12"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9601d162c1d77e62c1ea0bc8116cd1caf143ce3af947536c3c9052a1677fe0c"
+checksum = "6159ab4116165c99fc88cce31f99fa2c9dbe08d3691cb38da02fc3b45f357d2b"
+dependencies = [
+ "test-log-macros",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "test-log-macros"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ba277e77219e9eea169e8508942db1bf5d8a41ff2db9b20aab5a5aadc9fa25d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "test-with"
-version = "0.10.0"
+version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ea821854cf861c2bd28c19253b5b036fa4a6990745897bdb18a511b787c0187"
+checksum = "5a3a0c1b477619de2a1bf72990195561a06f7b68bbf272cea676236ad7cfb9e8"
 dependencies = [
  "proc-macro-error",
  "proc-macro2",
  "quote",
  "regex",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "textwrap"
-version = "0.16.0"
+version = "0.16.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+checksum = "23d434d3f8967a09480fb04132ebe0a3e088c173e6d0ee7897abbdf4eab0f8b9"
 dependencies = [
  "hyphenation",
  "smawk",
@@ -5615,40 +6287,39 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.44"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "611040a08a0439f8248d1990b111c95baa9c704c805fa1f62104b39655fd7f90"
+checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.44"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "090198534930841fab3a5d1bb637cde49e339654e606195f8d9c76eeb081dc96"
+checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "thread-id"
-version = "4.1.0"
+version = "4.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ee93aa2b8331c0fec9091548843f2c90019571814057da3b783f9de09349d73"
+checksum = "f0ec81c46e9eb50deaa257be2f148adf052d1fb7701cfd55ccfab2525280b70b"
 dependencies = [
  "libc",
- "redox_syscall 0.2.16",
  "winapi",
 ]
 
 [[package]]
 name = "thread_local"
-version = "1.1.7"
+version = "1.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
 dependencies = [
  "cfg-if",
  "once_cell",
@@ -5656,23 +6327,14 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.1.45"
+version = "0.3.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
-dependencies = [
- "libc",
- "wasi 0.10.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "time"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0fdd63d58b18d663fbdf70e049f00a22c8e42be082203be7f26589213cd75ea"
+checksum = "c8248b6521bb14bc45b4067159b9b6ad792e2d6d754d6c41fb50e29fefe38749"
 dependencies = [
  "deranged",
  "itoa",
+ "num-conv",
+ "powerfmt",
  "serde",
  "time-core",
  "time-macros",
@@ -5680,16 +6342,17 @@ dependencies = [
 
 [[package]]
 name = "time-core"
-version = "0.1.1"
+version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
 
 [[package]]
 name = "time-macros"
-version = "0.2.11"
+version = "0.2.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb71511c991639bb078fd5bf97757e03914361c48100d52878b8e52b46fb92cd"
+checksum = "7ba3a3ef41e6672a2f0f001392bb5dcd3ff0a9992d618ca761a11c3121547774"
 dependencies = [
+ "num-conv",
  "time-core",
 ]
 
@@ -5710,9 +6373,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.30.0"
+version = "1.37.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d3ce25f50619af8b0aec2eb23deebe84249e19e2ddd393a6e16e3300a6dadfd"
+checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5722,20 +6385,20 @@ dependencies = [
  "parking_lot",
  "pin-project-lite",
  "signal-hook-registry",
- "socket2 0.5.3",
+ "socket2 0.5.6",
  "tokio-macros",
- "windows-sys",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.1.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
@@ -5760,9 +6423,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -5771,23 +6434,35 @@ dependencies = [
 
 [[package]]
 name = "tokio-tungstenite"
-version = "0.19.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec509ac96e9a0c43427c74f003127d953a265737636129424288d27cb5c4b12c"
+checksum = "212d5dcb2a1ce06d81107c3d0ffa3121fe974b73f068c8282cb1c32328113b6c"
 dependencies = [
  "futures-util",
  "log",
  "native-tls",
  "tokio",
  "tokio-native-tls",
- "tungstenite 0.19.0",
+ "tungstenite 0.20.1",
+]
+
+[[package]]
+name = "tokio-tungstenite"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c83b561d025642014097b66e6c1bb422783339e0909e4429cde4749d1990bc38"
+dependencies = [
+ "futures-util",
+ "log",
+ "tokio",
+ "tungstenite 0.21.0",
 ]
 
 [[package]]
 name = "tokio-util"
-version = "0.7.8"
+version = "0.7.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d"
+checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
 dependencies = [
  "bytes",
  "futures-core",
@@ -5799,45 +6474,47 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.5.11"
+version = "0.8.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
 dependencies = [
  "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit 0.22.9",
 ]
 
 [[package]]
-name = "toml"
-version = "0.7.6"
+name = "toml_datetime"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
 dependencies = [
  "serde",
- "serde_spanned",
- "toml_datetime",
- "toml_edit",
 ]
 
 [[package]]
-name = "toml_datetime"
-version = "0.6.3"
+name = "toml_edit"
+version = "0.21.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7cda73e2f1397b1262d6dfdcef8aafae14d1de7748d66822d3bfeeb6d03e5e4b"
+checksum = "6a8534fd7f78b5405e860340ad6575217ce99f38d4d5c8f2442cb5ecb50090e1"
 dependencies = [
- "serde",
+ "indexmap 2.2.6",
+ "toml_datetime",
+ "winnow 0.5.40",
 ]
 
 [[package]]
 name = "toml_edit"
-version = "0.19.14"
+version = "0.22.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
+checksum = "8e40bb779c5187258fd7aad0eb68cb8706a0a81fa712fbea808ab43c4b8374c4"
 dependencies = [
- "indexmap 2.0.0",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow",
+ "winnow 0.6.5",
 ]
 
 [[package]]
@@ -5870,11 +6547,10 @@ checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
 
 [[package]]
 name = "tracing"
-version = "0.1.37"
+version = "0.1.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
 dependencies = [
- "cfg-if",
  "log",
  "pin-project-lite",
  "tracing-attributes",
@@ -5883,20 +6559,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.26"
+version = "0.1.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4f31f56159e98206da9efd823404b79b6ef3143b4a7ab76e67b1751b25a4ab"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "tracing-core"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0955b8137a1df6f1a2e9a37d8a6656291ff0297c1a97c24e0d8425fe2312f79a"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
 dependencies = [
  "once_cell",
  "valuable",
@@ -5904,20 +6580,20 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.3"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
 dependencies = [
- "lazy_static",
  "log",
+ "once_cell",
  "tracing-core",
 ]
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.17"
+version = "0.3.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
 dependencies = [
  "matchers",
  "nu-ansi-term",
@@ -5933,9 +6609,9 @@ dependencies = [
 
 [[package]]
 name = "transpose"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6522d49d03727ffb138ae4cbc1283d3774f0d10aa7f9bf52e6784c45daf9b23"
+checksum = "1ad61aed86bc3faea4300c7aee358b4c6d0c8d6ccc36524c96e4c92ccf26e77e"
 dependencies = [
  "num-integer",
  "strength_reduce",
@@ -5943,20 +6619,20 @@ dependencies = [
 
 [[package]]
 name = "try-lock"
-version = "0.2.4"
+version = "0.2.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "tungstenite"
-version = "0.19.0"
+version = "0.20.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15fba1a6d6bb030745759a9a2a588bfe8490fc8b4751a277db3a0be1c9ebbf67"
+checksum = "9e3dac10fd62eaf6617d3a904ae222845979aec67c615d1c842b4002c7666fb9"
 dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http",
+ "http 0.2.12",
  "httparse",
  "log",
  "native-tls",
@@ -5969,14 +6645,14 @@ dependencies = [
 
 [[package]]
 name = "tungstenite"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e862a1c4128df0112ab625f55cd5c934bcb4312ba80b39ae4b4835a3fd58e649"
+checksum = "9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1"
 dependencies = [
  "byteorder",
  "bytes",
  "data-encoding",
- "http",
+ "http 1.1.0",
  "httparse",
  "log",
  "native-tls",
@@ -5989,21 +6665,30 @@ dependencies = [
 
 [[package]]
 name = "typenum"
-version = "1.16.0"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
 
 [[package]]
 name = "unicode-bidi"
-version = "0.3.13"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "unicode-linebreak"
@@ -6013,33 +6698,33 @@ checksum = "3b09c83c3c29d37506a3e260c08c03743a6bb66a9cd432c6934ab501a190571f"
 
 [[package]]
 name = "unicode-normalization"
-version = "0.1.22"
+version = "0.1.23"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
 dependencies = [
  "tinyvec",
 ]
 
 [[package]]
 name = "unicode-width"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85"
 
 [[package]]
 name = "untrusted"
-version = "0.7.1"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
 dependencies = [
  "form_urlencoded",
- "idna 0.4.0",
+ "idna 0.5.0",
  "percent-encoding",
 ]
 
@@ -6072,24 +6757,22 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.4.1"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79daa5ed5740825c40b389c5e50312b9c86df53fccd33f281df655642b43869d"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom",
 ]
 
 [[package]]
 name = "v_frame"
-version = "0.3.6"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85db69f33d00031c1b07f7292e56317d5aa9475bdbd3d27ef18f3633438a697e"
+checksum = "d6f32aaa24bacd11e488aa9ba66369c7cd514885742c9fe08cfe85884db3e92b"
 dependencies = [
- "cfg-if",
- "noop_proc_macro",
- "num-derive 0.4.0",
+ "aligned-vec",
  "num-traits",
- "rust_hawktracer",
+ "wasm-bindgen",
 ]
 
 [[package]]
@@ -6123,9 +6806,9 @@ dependencies = [
 
 [[package]]
 name = "version-compare"
-version = "0.1.1"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "579a42fc0b8e0c63b76519a339be31bed574929511fa53c1a3acae26eb258f29"
+checksum = "852e951cb7832cb45cb1169900d19760cfa39b82bc0ea9c0e5a14ae88411c98b"
 
 [[package]]
 name = "version_check"
@@ -6141,15 +6824,15 @@ checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64"
 
 [[package]]
 name = "waker-fn"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
+checksum = "f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690"
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -6165,10 +6848,33 @@ dependencies = [
 ]
 
 [[package]]
-name = "wasi"
-version = "0.10.0+wasi-snapshot-preview1"
+name = "warp"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
+checksum = "4378d202ff965b011c64817db11d5829506d3404edeadb61f190d111da3f231c"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-util",
+ "headers 0.3.9",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "log",
+ "mime",
+ "mime_guess",
+ "multer",
+ "percent-encoding",
+ "pin-project",
+ "scoped-tls",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "tokio",
+ "tokio-tungstenite 0.21.0",
+ "tokio-util",
+ "tower-service",
+ "tracing",
+]
 
 [[package]]
 name = "wasi"
@@ -6178,9 +6884,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7706a72ab36d8cb1f80ffbf0e071533974a60d0a308d01a5d0375bf60499a342"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -6188,24 +6894,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ef2b6d3c510e9625e5fe6f509ab07d66a760f0885d858736483c32ed7809abd"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.37"
+version = "0.4.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c02dbc21516f9f1f04f187958890d7e6026df8d16540b7ad9492bc34a67cea03"
+checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -6215,9 +6921,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dee495e55982a3bd48105a7b947fd2a9b4a8ae3010041b9e0faab3f9cd028f1d"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -6225,28 +6931,28 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.87"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.64"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b85cbef8c220a6abc02aefd892dfc0fc23afb1c6a426316ec33253a3877249b"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -6254,9 +6960,9 @@ dependencies = [
 
 [[package]]
 name = "weezl"
-version = "0.1.7"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9193164d4de03a926d909d3bc7c30543cecb35400c02114792c2cae20d5e2dbb"
+checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
 
 [[package]]
 name = "winapi"
@@ -6276,9 +6982,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.5"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596"
 dependencies = [
  "winapi",
 ]
@@ -6290,12 +6996,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
 [[package]]
-name = "windows"
-version = "0.48.0"
+name = "windows-core"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
@@ -6304,104 +7010,192 @@ version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "windows-targets",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.4",
 ]
 
 [[package]]
 name = "windows-targets"
-version = "0.48.1"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
 dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.4",
+ "windows_aarch64_msvc 0.52.4",
+ "windows_i686_gnu 0.52.4",
+ "windows_i686_msvc 0.52.4",
+ "windows_x86_64_gnu 0.52.4",
+ "windows_x86_64_gnullvm 0.52.4",
+ "windows_x86_64_msvc 0.52.4",
 ]
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.0"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
 
 [[package]]
 name = "winnow"
-version = "0.5.4"
+version = "0.5.40"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "acaaa1190073b2b101e15083c38ee8ec891b5e05cbee516521e94ec008f61e64"
+checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winnow"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dffa400e67ed5a4dd237983829e66475f0a4a26938c4b04c21baede6262215b8"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
 name = "winreg"
-version = "0.10.1"
+version = "0.50.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
 dependencies = [
- "winapi",
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
 ]
 
 [[package]]
 name = "xattr"
-version = "1.0.1"
+version = "1.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4686009f71ff3e5c4dbcf1a282d0a44db3f021ba69350cd42086b3e5f1c6985"
+checksum = "8da84f1a25939b27f6820d92aed108f83ff920fdf11a7b19366c27c4cda81d4f"
 dependencies = [
  "libc",
+ "linux-raw-sys",
+ "rustix",
 ]
 
 [[package]]
 name = "xml-rs"
-version = "0.8.16"
+version = "0.8.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
 
 [[package]]
 name = "xmlparser"
-version = "0.13.5"
+version = "0.13.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
+checksum = "66fee0b777b0f5ac1c69bb06d361268faafa61cd4682ae064a171c16c433e9e4"
 
 [[package]]
 name = "xmltree"
@@ -6420,27 +7214,47 @@ checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec"
 
 [[package]]
 name = "zerocopy"
-version = "0.6.3"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3b9c234616391070b0b173963ebc65a9195068e7ed3731c6edac2ec45ebe106"
+checksum = "854e949ac82d619ee9a14c66a1b674ac730422372ccb759ce0c39cabcf2bf8e6"
 dependencies = [
  "byteorder",
- "zerocopy-derive",
+ "zerocopy-derive 0.6.6",
+]
+
+[[package]]
+name = "zerocopy"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+dependencies = [
+ "zerocopy-derive 0.7.32",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.6.3"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f7f3a471f98d0a61c34322fbbfd10c384b07687f680d4119813713f72308d91"
+checksum = "125139de3f6b9d625c39e2efdd73d41bdac468ccd556556440e322be0e1bbd91"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.28",
+ "syn 2.0.58",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.58",
 ]
 
 [[package]]
 name = "zeroize"
-version = "1.6.0"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9"
+checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"
diff --git a/pkgs/development/libraries/gstreamer/rs/default.nix b/pkgs/development/libraries/gstreamer/rs/default.nix
index eeef11e9a464d..d4afb8ce7618a 100644
--- a/pkgs/development/libraries/gstreamer/rs/default.nix
+++ b/pkgs/development/libraries/gstreamer/rs/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchFromGitHub
 , fetchpatch
 , rustPlatform
 , meson
@@ -23,10 +24,12 @@
 , openssl
 , pango
 , Security
+, SystemConfiguration
 , gst-plugins-good
 , nix-update-script
 # specifies a limited subset of plugins to build (the default `null` means all plugins supported on the stdenv platform)
 , plugins ? null
+, withGtkPlugins ? true
 # Checks meson.is_cross_build(), so even canExecute isn't enough.
 , enableDocumentation ? stdenv.hostPlatform == stdenv.buildPlatform && plugins == null
 , hotdoc
@@ -60,8 +63,8 @@ let
     raptorq = [ ];
     reqwest = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
     rtp = [ ];
-    webrtc = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
-    webrtchttp = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
+    webrtc = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
+    webrtchttp = [ gst-plugins-bad openssl ] ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
     # text
     textahead = [ ];
@@ -79,7 +82,19 @@ let
     # video
     cdg = [ ];
     closedcaption = [ pango ];
-    dav1d = [ dav1d ];
+    dav1d = [
+      # Only dav1d < 1.3 is supported for now.
+      # https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/merge_requests/1393
+      (dav1d.overrideAttrs rec {
+        version = "1.2.1";
+        src = fetchFromGitHub {
+          owner = "videolan";
+          repo = "dav1d";
+          rev = version;
+          hash = "sha256-RrEim3HXXjx2RUU7K3wPH3QbhNTRN9ZX/oAcyE9aV8I=";
+        };
+      })
+    ];
     ffv1 = [ ];
     gif = [ ];
     gtk4 = [ gtk4 ];
@@ -100,7 +115,7 @@ let
       "reqwest" # tests hang on darwin
       "threadshare" # tests cannot bind to localhost on darwin
       "webp" # not supported on darwin (upstream crate issue)
-    ] ++ lib.optionals (!gst-plugins-base.glEnabled) [
+    ] ++ lib.optionals (!gst-plugins-base.glEnabled || !withGtkPlugins) [
       # these require gstreamer-gl
       "gtk4"
       "livesync"
@@ -126,9 +141,9 @@ in
   assert lib.assertMsg (invalidPlugins == [])
     "Invalid gst-plugins-rs plugin${lib.optionalString (lib.length invalidPlugins > 1) "s"}: ${lib.concatStringsSep ", " invalidPlugins}";
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gst-plugins-rs";
-  version = "0.11.0+fixup";
+  version = "0.12.4";
 
   outputs = [ "out" "dev" ];
 
@@ -136,8 +151,8 @@ stdenv.mkDerivation rec {
     domain = "gitlab.freedesktop.org";
     owner = "gstreamer";
     repo = "gst-plugins-rs";
-    rev = version;
-    hash = "sha256-nvDvcY/WyVhcxitcoqgEUT8A1synZqxG2e51ct7Fgss=";
+    rev = finalAttrs.version;
+    hash = "sha256-Qnp+e1Vww2kWjDG0x2tcigwDdG67I4xnm8+QrBI+o08=";
     # TODO: temporary workaround for case-insensitivity problems with color-name crate - https://github.com/annymosse/color-name/pull/2
     postFetch = ''
       sedSearch="$(cat <<\EOF | sed -ze 's/\n/\\n/g'
@@ -162,12 +177,12 @@ stdenv.mkDerivation rec {
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "cairo-rs-0.18.1" = "sha256-k+YIAZXxejbxPQqbUU91qbx2AR98gTrseknLHtNZDEE=";
+      "cairo-rs-0.19.3" = "sha256-TjVXdnlYEfPLbUx1pC84rCC2MlNecECMK2Yo9XKwz9M=";
       "color-name-1.1.0" = "sha256-RfMStbe2wX5qjPARHIFHlSDKjzx8DwJ+RjzyltM5K7A=";
       "ffv1-0.0.0" = "sha256-af2VD00tMf/hkfvrtGrHTjVJqbl+VVpLaR0Ry+2niJE=";
       "flavors-0.2.0" = "sha256-zBa0X75lXnASDBam9Kk6w7K7xuH9fP6rmjWZBUB5hxk=";
-      "gdk4-0.7.1" = "sha256-UMGmZivVdvmKRAjIGlj6pjDxwfNJyz8/6C0eYH1OOw4=";
-      "gstreamer-0.21.0" = "sha256-2uilK8wYG8e59fdL3q+kmixc1zw+EBwqvGs/EgfCGhk=";
+      "gdk4-0.8.1" = "sha256-VPmegFZ/bC8x1vkl3YU208jQ8FCEKLwe6ZDatz4mIvM=";
+      "gstreamer-0.22.4" = "sha256-r5+wOEhTVztDMEu6t47yJ9HIlbXyjdvswUND4l7kPl8=";
     };
   };
 
@@ -202,36 +217,26 @@ stdenv.mkDerivation rec {
     map (plugin: lib.mesonEnable plugin true) selectedPlugins
   ) ++ [
     (lib.mesonOption "sodium-source" "system")
+    (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck)
     (lib.mesonEnable "doc" enableDocumentation)
   ];
 
   # turn off all auto plugins since we use a list of plugins we generate
   mesonAutoFeatures = "disabled";
 
-  doCheck = true;
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   # csound lib dir must be manually specified for it to build
-  # webrtc and webrtchttp plugins are the only that need gstreamer-webrtc (from gst-plugins-bad, a heavy set)
   preConfigure = ''
     export CARGO_BUILD_JOBS=$NIX_BUILD_CORES
 
     patchShebangs dependencies.py
   '' + lib.optionalString (lib.elem "csound" selectedPlugins) ''
     export CSOUND_LIB_DIR=${lib.getLib csound}/lib
-  '' + lib.optionalString (lib.mutuallyExclusive [ "webrtc" "webrtchttp" ] selectedPlugins) ''
-    sed -i "/\['gstreamer-webrtc-1\.0', 'gst-plugins-bad', 'gstwebrtc_dep', 'gstwebrtc'\]/d" meson.build
-  '' + lib.optionalString (!gst-plugins-base.glEnabled) ''
-    sed -i "/\['gstreamer-gl-1\.0', 'gst-plugins-base', 'gst_gl_dep', 'gstgl'\]/d" meson.build
   '';
 
-  # run tests ourselves to avoid meson timing out by default
-  checkPhase = ''
-    runHook preCheck
-
-    meson test --no-rebuild --verbose --timeout-multiplier 12
-
-    runHook postCheck
-  '';
+  # give meson longer before timing out for tests
+  mesonCheckFlags = [ "--verbose" "--timeout-multiplier" "12" ];
 
   doInstallCheck = (lib.elem "webp" selectedPlugins) && !stdenv.hostPlatform.isStatic &&
     stdenv.hostPlatform.isElf;
@@ -243,6 +248,7 @@ stdenv.mkDerivation rec {
 
   passthru.updateScript = nix-update-script {
     # use numbered releases rather than gstreamer-* releases
+    # this matches upstream's recommendation: https://gitlab.freedesktop.org/gstreamer/gst-plugins-rs/-/issues/470#note_2202772
     extraArgs = [ "--version-regex" "([0-9.]+)" ];
   };
 
@@ -254,4 +260,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ lilyinstarlight ];
   };
-}
+})
diff --git a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index b49da94955e3a..db56d895f7876 100644
--- a/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-rtsp-server";
-  version = "1.22.9";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-gIrxSPiUBP90hQ+MpScr7Uv+Z/liAjHcRRT9B+sm0KQ=";
+    hash = "sha256-YmKOzKeLj1tRxZpNYCxl6SBf/FDDyDzWH6sfY0i2NWU=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/ugly/default.nix b/pkgs/development/libraries/gstreamer/ugly/default.nix
index d64fcae68965b..0b39bad01020b 100644
--- a/pkgs/development/libraries/gstreamer/ugly/default.nix
+++ b/pkgs/development/libraries/gstreamer/ugly/default.nix
@@ -15,7 +15,6 @@
 , x264
 , libintl
 , lib
-, opencore-amr
 , IOKit
 , CoreFoundation
 , DiskArbitration
@@ -26,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gst-plugins-ugly";
-  version = "1.22.9";
+  version = "1.24.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-C/aF1mAVoB3T/BZxtkocissyHdnUq54Fopqxl4KqYjY=";
+    hash = "sha256-TJUTQcTGSGMLb+EjTsET2B3S0khSm/K1R44K0HfIDtM=";
   };
 
   nativeBuildInputs = [
@@ -49,7 +48,6 @@ stdenv.mkDerivation rec {
     gst-plugins-base
     orc
     libintl
-    opencore-amr
   ] ++ lib.optionals enableGplPlugins [
     a52dec
     libcdio
diff --git a/pkgs/development/libraries/gstreamer/vaapi/default.nix b/pkgs/development/libraries/gstreamer/vaapi/default.nix
index 1a63588397075..cdad2eaf232d9 100644
--- a/pkgs/development/libraries/gstreamer/vaapi/default.nix
+++ b/pkgs/development/libraries/gstreamer/vaapi/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gstreamer-vaapi";
-  version = "1.22.9";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-i6INqMTL9bKVPbqQRnLEJ10AU+FSj5f9+OWZQseIPKg=";
+    hash = "sha256-hF8u/g3KjasjTd6PsJHaLNBqnSpoNCK1bctoiVT5Bw4=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/gstreamer/viperfx/default.nix b/pkgs/development/libraries/gstreamer/viperfx/default.nix
index 83c7d75e98c1a..0f8e8914e2e9c 100644
--- a/pkgs/development/libraries/gstreamer/viperfx/default.nix
+++ b/pkgs/development/libraries/gstreamer/viperfx/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , pkg-config
-, wrapGAppsHook
+, wrapGAppsHook3
 , gst_all_1
 , cmake
 }:
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-0so4jV56nl3tZHuZpvtyMrpOZ4tNJ59Pyj6zbV5bJ5Y=";
   };
 
-  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook ];
+  nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 ];
 
   propagatedBuildInputs = [
     gst_all_1.gstreamer
diff --git a/pkgs/development/libraries/gtest/default.nix b/pkgs/development/libraries/gtest/default.nix
index 51e0c685a43d2..7e44794620c03 100644
--- a/pkgs/development/libraries/gtest/default.nix
+++ b/pkgs/development/libraries/gtest/default.nix
@@ -3,6 +3,21 @@
 , fetchFromGitHub
 , cmake
 , ninja
+# Enable C++17 support
+#     https://github.com/google/googletest/issues/3081
+# Projects that require a higher standard can override this package.
+# For an example why that may be necessary, see:
+#     https://github.com/mhx/dwarfs/issues/188#issuecomment-1907574427
+# Setting this to `null` does not pass any flags to set this.
+, cxx_standard ? (
+    if (
+      (stdenv.cc.isGNU && (lib.versionOlder stdenv.cc.version "11.0"))
+      ||
+      (stdenv.cc.isClang && (lib.versionOlder stdenv.cc.version "16.0"))
+    )
+      then "17"
+      else null
+  )
 , static ? stdenv.hostPlatform.isStatic,
 }:
 
@@ -27,13 +42,8 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_SHARED_LIBS=${if static then "OFF" else "ON"}"
-  ] ++ lib.optionals (
-    (stdenv.cc.isGNU && (lib.versionOlder stdenv.cc.version "11.0"))
-    || (stdenv.cc.isClang && (lib.versionOlder stdenv.cc.version "16.0"))
-  ) [
-    # Enable C++17 support
-    # https://github.com/google/googletest/issues/3081
-    "-DCMAKE_CXX_STANDARD=17"
+  ] ++ lib.optionals (cxx_standard != null) [
+    "-DCMAKE_CXX_STANDARD=${cxx_standard}"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/gtk-engine-murrine/default.nix b/pkgs/development/libraries/gtk-engine-murrine/default.nix
index 5cbd4302dbaa7..9c83bc4f47c88 100644
--- a/pkgs/development/libraries/gtk-engine-murrine/default.nix
+++ b/pkgs/development/libraries/gtk-engine-murrine/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gtk2 ];
 
   meta = {
-    description = "A very flexible theme engine";
+    description = "Very flexible theme engine";
     homepage = "https://gitlab.gnome.org/Archive/murrine";
     license = lib.licenses.lgpl3;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/gtk-frdp/default.nix b/pkgs/development/libraries/gtk-frdp/default.nix
index 72cefea7e59a6..b3edf0ba48537 100644
--- a/pkgs/development/libraries/gtk-frdp/default.nix
+++ b/pkgs/development/libraries/gtk-frdp/default.nix
@@ -8,21 +8,21 @@
 , gobject-introspection
 , glib
 , gtk3
-, freerdp
+, freerdp3
 , fuse3
 , unstableGitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "gtk-frdp";
-  version = "unstable-2023-09-16";
+  version = "3.37.1-unstable-2024-03-01";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
-    rev = "62fc62c5ccb7634f0bc87c57a4673877c24c94ed";
-    sha256 = "H+ebFWjpmp4Ua22Bd6K3LsxNHqEbtpawnzA5ry8+XFc=";
+    rev = "11e9fcbee8ca5ec70456dd5b616b2560d7f73adc";
+    sha256 = "2e/bAZFRTbBU4ZfgMFHiN9JwVm4qXSRtirPvbC3oT5s=";
   };
 
   nativeBuildInputs = [
@@ -36,12 +36,14 @@ stdenv.mkDerivation rec {
   buildInputs = [
     glib
     gtk3
-    freerdp
+    freerdp3
     fuse3
   ];
 
   passthru = {
-    updateScript = unstableGitUpdater { };
+    updateScript = unstableGitUpdater {
+      tagPrefix = "v";
+    };
   };
 
   env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/libraries/gtk-layer-shell/default.nix b/pkgs/development/libraries/gtk-layer-shell/default.nix
index c137eb608132a..f2ce10e589181 100644
--- a/pkgs/development/libraries/gtk-layer-shell/default.nix
+++ b/pkgs/development/libraries/gtk-layer-shell/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol";
+    description = "Library to create panels and other desktop components for Wayland using the Layer Shell protocol";
     mainProgram = "gtk-layer-demo";
     homepage = "https://github.com/wmww/gtk-layer-shell";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/gtk-sharp/2.0.nix b/pkgs/development/libraries/gtk-sharp/2.0.nix
index 219028d4ab902..1331fcff0e656 100644
--- a/pkgs/development/libraries/gtk-sharp/2.0.nix
+++ b/pkgs/development/libraries/gtk-sharp/2.0.nix
@@ -54,6 +54,10 @@ stdenv.mkDerivation rec {
     ./bootstrap-${lib.versions.majorMinor version}
   '';
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=int-conversion"
+  ]);
+
   dontStrip = true;
 
   inherit monoDLLFixer;
diff --git a/pkgs/development/libraries/gtk/2.x.nix b/pkgs/development/libraries/gtk/2.x.nix
index b2afb21b6214e..9d9b855c9da89 100644
--- a/pkgs/development/libraries/gtk/2.x.nix
+++ b/pkgs/development/libraries/gtk/2.x.nix
@@ -134,7 +134,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://www.gtk.org/";
-    description = "A multi-platform toolkit for creating graphical user interfaces";
+    description = "Multi-platform toolkit for creating graphical user interfaces";
     longDescription = ''
       GTK is a highly usable, feature rich toolkit for creating graphical user
       interfaces which boasts cross platform compatibility and an easy to use
diff --git a/pkgs/development/libraries/gtk/3.x.nix b/pkgs/development/libraries/gtk/3.x.nix
index b2b156051bf89..f194dee9c9ec8 100644
--- a/pkgs/development/libraries/gtk/3.x.nix
+++ b/pkgs/development/libraries/gtk/3.x.nix
@@ -64,7 +64,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk+3";
-  version = "3.24.41";
+  version = "3.24.42";
 
   outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
   outputBin = "dev";
@@ -78,7 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
     inherit (finalAttrs) version;
   in fetchurl {
     url = "mirror://gnome/sources/gtk+/${lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "sha256-R9phSHrzCHqUvEkpb9AlygvAL5bvBsVW58iYi9ZRtvo=";
+    sha256 = "sha256-UPifYVCS1N0Bu9dZcZ+L04Dl8Un2/XipRyXi3hEjd+I=";
   };
 
   patches = [
@@ -242,7 +242,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A multi-platform toolkit for creating graphical user interfaces";
+    description = "Multi-platform toolkit for creating graphical user interfaces";
     longDescription = ''
       GTK is a highly usable, feature rich toolkit for creating
       graphical user interfaces which boasts cross platform
diff --git a/pkgs/development/libraries/gtk/4.x.nix b/pkgs/development/libraries/gtk/4.x.nix
index 036d1ab0d49d0..b70e270ba6ffa 100644
--- a/pkgs/development/libraries/gtk/4.x.nix
+++ b/pkgs/development/libraries/gtk/4.x.nix
@@ -39,10 +39,11 @@
 , waylandSupport ? stdenv.isLinux
 , libGL
 # experimental and can cause crashes in inspector
-, vulkanSupport ? false
+, vulkanSupport ? stdenv.isLinux
 , shaderc
 , vulkan-loader
 , vulkan-headers
+, libdrm
 , wayland
 , wayland-protocols
 , wayland-scanner
@@ -69,7 +70,7 @@ in
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtk4";
-  version = "4.12.5";
+  version = "4.14.4";
 
   outputs = [ "out" "dev" ] ++ lib.optionals x11Support [ "devdoc" ];
   outputBin = "dev";
@@ -81,7 +82,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = with finalAttrs; "mirror://gnome/sources/gtk/${lib.versions.majorMinor version}/gtk-${version}.tar.xz";
-    sha256 = "KLNW1ZDuaO9ibi75ggst0hRBSEqaBCpaPwxA6d/E9Pg=";
+    hash = "sha256-RDUYuX6DSPn2QwrENbEBD5psUgf03Gp81dJOOCDO5jM=";
   };
 
   depsBuildBuild = [
@@ -116,6 +117,7 @@ stdenv.mkDerivation (finalAttrs: {
     isocodes
   ] ++ lib.optionals vulkanSupport [
     vulkan-headers
+    libdrm
   ] ++ [
     gst_all_1.gst-plugins-base
     gst_all_1.gst-plugins-bad
@@ -161,24 +163,21 @@ stdenv.mkDerivation (finalAttrs: {
     vulkan-loader
   ] ++ [
     # Required for GSettings schemas at runtime.
-    # Will be picked up by wrapGAppsHook.
+    # Will be picked up by wrapGAppsHook4.
     gsettings-desktop-schemas
   ];
 
   mesonFlags = [
     # ../docs/tools/shooter.c:4:10: fatal error: 'cairo-xlib.h' file not found
-    "-Ddocumentation=${lib.boolToString x11Support}"
+    (lib.mesonBool "documentation" x11Support)
     "-Dbuild-tests=false"
-    "-Dtracker=${if trackerSupport then "enabled" else "disabled"}"
-    "-Dbroadway-backend=${lib.boolToString broadwaySupport}"
-  ] ++ lib.optionals vulkanSupport [
-    "-Dvulkan=enabled"
-  ] ++ lib.optionals (!cupsSupport) [
-    "-Dprint-cups=disabled"
+    (lib.mesonEnable "tracker" trackerSupport)
+    (lib.mesonBool "broadway-backend" broadwaySupport)
+    (lib.mesonEnable "vulkan" vulkanSupport)
+    (lib.mesonEnable "print-cups" cupsSupport)
+    (lib.mesonBool "x11-backend" x11Support)
   ] ++ lib.optionals (stdenv.isDarwin && !stdenv.isAarch64) [
     "-Dmedia-gstreamer=disabled" # requires gstreamer-gl
-  ] ++ lib.optionals (!x11Support) [
-    "-Dx11-backend=false"
   ];
 
   doCheck = false; # needs X11
@@ -199,7 +198,7 @@ stdenv.mkDerivation (finalAttrs: {
       --replace 'if not meson.is_cross_build()' 'if ${lib.boolToString compileSchemas}'
 
     files=(
-      build-aux/meson/gen-demo-header.py
+      build-aux/meson/gen-profile-conf.py
       build-aux/meson/gen-visibility-macros.py
       demos/gtk-demo/geninclude.py
       gdk/broadway/gen-c-array.py
@@ -262,7 +261,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A multi-platform toolkit for creating graphical user interfaces";
+    description = "Multi-platform toolkit for creating graphical user interfaces";
     longDescription = ''
       GTK is a highly usable, feature rich toolkit for creating
       graphical user interfaces which boasts cross platform
diff --git a/pkgs/development/libraries/gtk4-layer-shell/default.nix b/pkgs/development/libraries/gtk4-layer-shell/default.nix
index e41735fb71291..067bbad8dd247 100644
--- a/pkgs/development/libraries/gtk4-layer-shell/default.nix
+++ b/pkgs/development/libraries/gtk4-layer-shell/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol and GTK4";
+    description = "Library to create panels and other desktop components for Wayland using the Layer Shell protocol and GTK4";
     mainProgram = "gtk4-layer-demo";
     license = licenses.mit;
     maintainers = with maintainers; [ donovanglover ];
diff --git a/pkgs/development/libraries/gtkextra/default.nix b/pkgs/development/libraries/gtkextra/default.nix
index ed860b7dde3fc..66516add6d9cf 100644
--- a/pkgs/development/libraries/gtkextra/default.nix
+++ b/pkgs/development/libraries/gtkextra/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gtkextra.sourceforge.net/";
-    description = "GtkExtra is a useful set of widgets for creating GUI's for GTK+.";
+    description = "GtkExtra is a useful set of widgets for creating GUI's for GTK+";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ tesq0 ];
diff --git a/pkgs/development/libraries/gtkmm/4.x.nix b/pkgs/development/libraries/gtkmm/4.x.nix
index 21bfdd858c294..36ff98d9f1654 100644
--- a/pkgs/development/libraries/gtkmm/4.x.nix
+++ b/pkgs/development/libraries/gtkmm/4.x.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkmm";
-  version = "4.12.0";
+  version = "4.14.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "+8PnYYEjNFwBSO9xq7ZUjUIfUrsiT72jSHW2d9wDLJI=";
+    hash = "sha256-k1CgREt0TKPcaVhuvRtnB1IJIrbZ9PIyEDzmA6Jx7No=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/gtksourceview/5.x.nix b/pkgs/development/libraries/gtksourceview/5.x.nix
index c54017312e1ed..d4ac1e9bb09f1 100644
--- a/pkgs/development/libraries/gtksourceview/5.x.nix
+++ b/pkgs/development/libraries/gtksourceview/5.x.nix
@@ -24,15 +24,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "gtksourceview";
-  version = "5.10.0";
+  version = "5.12.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
-  src = let
-    inherit (finalAttrs) pname version;
-  in fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "s4owEMNPWeE7BRdenSDKAqMRBEP+wrHldHQTgBvJwj8=";
+  src = fetchurl {
+    url = "mirror://gnome/sources/gtksourceview/${lib.versions.majorMinor finalAttrs.version}/gtksourceview-${finalAttrs.version}.tar.xz";
+    hash = "sha256-hMgqrZhcWq2ufOp4BJBKdjQeyCsmjUZZTBpHjzm0LB8=";
   };
 
   patches = [
@@ -75,7 +73,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   mesonFlags = [
-    "-Dgtk_doc=true"
+    "-Ddocumentation=true"
   ];
 
   doCheck = stdenv.isLinux;
@@ -115,5 +113,7 @@ stdenv.mkDerivation (finalAttrs: {
     platforms = platforms.unix;
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
+    # https://hydra.nixos.org/build/258191535/nixlog/1
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 })
diff --git a/pkgs/development/libraries/gupnp-av/default.nix b/pkgs/development/libraries/gupnp-av/default.nix
index c43f69fd97b52..97c7ed790ac42 100644
--- a/pkgs/development/libraries/gupnp-av/default.nix
+++ b/pkgs/development/libraries/gupnp-av/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://gupnp.org/";
-    description = "A collection of helpers for building AV (audio/video) applications using GUPnP";
+    description = "Collection of helpers for building AV (audio/video) applications using GUPnP";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/gupnp/1.6.nix b/pkgs/development/libraries/gupnp/1.6.nix
index 44ae478e42f59..9d90624aae6d7 100644
--- a/pkgs/development/libraries/gupnp/1.6.nix
+++ b/pkgs/development/libraries/gupnp/1.6.nix
@@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.gupnp.org/";
-    description = "An implementation of the UPnP specification";
+    description = "Implementation of the UPnP specification";
     mainProgram = "gupnp-binding-tool-1.6";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/gupnp/default.nix b/pkgs/development/libraries/gupnp/default.nix
index d9e9f483a63b3..08b2925b0ea3b 100644
--- a/pkgs/development/libraries/gupnp/default.nix
+++ b/pkgs/development/libraries/gupnp/default.nix
@@ -95,7 +95,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.gupnp.org/";
-    description = "An implementation of the UPnP specification";
+    description = "Implementation of the UPnP specification";
     mainProgram = "gupnp-binding-tool-1.2";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/gvfs/default.nix b/pkgs/development/libraries/gvfs/default.nix
index 20278435cedfa..d60f95c548391 100644
--- a/pkgs/development/libraries/gvfs/default.nix
+++ b/pkgs/development/libraries/gvfs/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchurl
-, fetchpatch2
 , meson
 , ninja
 , pkg-config
@@ -29,10 +28,10 @@
 , libmtp
 , gnomeSupport ? false
 , gnome
-, gcr
+, gcr_4
 , glib-networking
 , gnome-online-accounts
-, wrapGAppsHook
+, wrapGAppsHook3
 , libimobiledevice
 , libbluray
 , libcdio-paranoia
@@ -40,17 +39,19 @@
 , openssh
 , libsecret
 , libgdata
+, libmsgraph
 , python3
+, python3Packages
 , gsettings-desktop-schemas
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "gvfs";
-  version = "1.52.2";
+  version = "1.54.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor version}/gvfs-${version}.tar.xz";
-    hash = "sha256-pkOs6qBTyqwNjv+aAV9jbkvRuwnP4nhk40fbZ0YOe5E=";
+    url = "mirror://gnome/sources/gvfs/${lib.versions.majorMinor finalAttrs.version}/gvfs-${finalAttrs.version}.tar.xz";
+    hash = "sha256-rEo7zLf+FQIVjvD95cl5q0RxJVfQKKjk8wop8PvZ0Z8=";
   };
 
   patches = [
@@ -70,7 +71,7 @@ stdenv.mkDerivation rec {
     python3
     pkg-config
     gettext
-    wrapGAppsHook
+    wrapGAppsHook3
     libxslt
     docbook_xsl
     docbook_xml_dtd_42
@@ -100,11 +101,12 @@ stdenv.mkDerivation rec {
     polkit
     libcdio-paranoia
   ] ++ lib.optionals gnomeSupport [
-    gcr
+    gcr_4
     glib-networking # TLS support
     gnome-online-accounts
     libsecret
     libgdata
+    libmsgraph
   ];
 
   mesonFlags = [
@@ -126,6 +128,7 @@ stdenv.mkDerivation rec {
     "-Dgoa=false"
     "-Dkeyring=false"
     "-Dgoogle=false"
+    "-Donedrive=false"
   ] ++ lib.optionals (avahi == null) [
     "-Ddnssd=false"
   ] ++ lib.optionals (samba == null) [
@@ -134,13 +137,13 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = false; # fails with "ModuleNotFoundError: No module named 'gi'"
-  doInstallCheck = doCheck;
+  doInstallCheck = finalAttrs.doCheck;
 
   separateDebugInfo = true;
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "gvfs";
       versionPolicy = "odd-unstable";
     };
   };
@@ -151,4 +154,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = teams.gnome.members;
   };
-}
+})
diff --git a/pkgs/development/libraries/harfbuzz/default.nix b/pkgs/development/libraries/harfbuzz/default.nix
index e558428c67e0b..657ea82f0b85b 100644
--- a/pkgs/development/libraries/harfbuzz/default.nix
+++ b/pkgs/development/libraries/harfbuzz/default.nix
@@ -109,7 +109,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An OpenType text shaping engine";
+    description = "OpenType text shaping engine";
     homepage = "https://harfbuzz.github.io/";
     changelog = "https://github.com/harfbuzz/harfbuzz/raw/${finalAttrs.version}/NEWS";
     maintainers = [ maintainers.eelco ];
diff --git a/pkgs/development/libraries/hax11/default.nix b/pkgs/development/libraries/hax11/default.nix
index 42851f0cf3004..fba0a560e9931 100644
--- a/pkgs/development/libraries/hax11/default.nix
+++ b/pkgs/development/libraries/hax11/default.nix
@@ -9,7 +9,7 @@
 
 multiStdenv.mkDerivation (finalAttrs: {
   pname = "hax11";
-  version = "unstable-2023-09-25";
+  version = "0-unstable-2023-09-25";
 
   src = fetchFromGitHub {
     owner = "CyberShadow";
diff --git a/pkgs/development/libraries/herqq/default.nix b/pkgs/development/libraries/herqq/default.nix
index 3e84432cd5077..de446eb9527de 100644
--- a/pkgs/development/libraries/herqq/default.nix
+++ b/pkgs/development/libraries/herqq/default.nix
@@ -19,7 +19,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://herqq.org";
-    description = "A software library for building UPnP devices and control points";
+    description = "Software library for building UPnP devices and control points";
     platforms = platforms.linux;
     maintainers = [ ];
   };
diff --git a/pkgs/development/libraries/hiredis-vip/default.nix b/pkgs/development/libraries/hiredis-vip/default.nix
index a4c7575ac0411..32fd7d0db751f 100644
--- a/pkgs/development/libraries/hiredis-vip/default.nix
+++ b/pkgs/development/libraries/hiredis-vip/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   makeFlags = [ "PREFIX=$(out)" ];
 
   meta = {
-    description = "A C client library for the Redis database";
+    description = "C client library for the Redis database";
     homepage = "https://github.com/vipshop/hiredis-vip";
     license = lib.licenses.bsd3;
   };
diff --git a/pkgs/development/libraries/hmat-oss/default.nix b/pkgs/development/libraries/hmat-oss/default.nix
index f24dc8777a73d..7aca6227e81bc 100644
--- a/pkgs/development/libraries/hmat-oss/default.nix
+++ b/pkgs/development/libraries/hmat-oss/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A hierarchical matrix C/C++ library";
+    description = "Hierarchical matrix C/C++ library";
     homepage = "https://github.com/jeromerobert/hmat-oss";
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/howard-hinnant-date/default.nix b/pkgs/development/libraries/howard-hinnant-date/default.nix
index f7af4975de561..953dd472210a7 100644
--- a/pkgs/development/libraries/howard-hinnant-date/default.nix
+++ b/pkgs/development/libraries/howard-hinnant-date/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     license = licenses.mit;
-    description = "A date and time library based on the C++11/14/17 <chrono> header";
+    description = "Date and time library based on the C++11/14/17 <chrono> header";
     homepage = "https://github.com/HowardHinnant/date";
     platforms = platforms.unix;
     maintainers = with maintainers; [ r-burns ];
diff --git a/pkgs/development/libraries/hpp-fcl/default.nix b/pkgs/development/libraries/hpp-fcl/default.nix
index 59bf04f726091..024461046f461 100644
--- a/pkgs/development/libraries/hpp-fcl/default.nix
+++ b/pkgs/development/libraries/hpp-fcl/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , doxygen
 , boost
@@ -64,7 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
 
 
   meta = with lib; {
-    description = "An extension of the Flexible Collision Library";
+    description = "Extension of the Flexible Collision Library";
     homepage = "https://github.com/humanoid-path-planner/hpp-fcl";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nim65s ];
diff --git a/pkgs/development/libraries/hpx/default.nix b/pkgs/development/libraries/hpx/default.nix
index bcaf1233d3006..cef877d286a62 100644
--- a/pkgs/development/libraries/hpx/default.nix
+++ b/pkgs/development/libraries/hpx/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.9.1";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = "v${version}";
-    hash = "sha256-1gLDwgCqv+3+rOSG7a3fFsnjqfKpnPpWnBmrW+z+jWw=";
+    hash = "sha256-yrKG0n5BhrUNXjFWZRpb38/GYQlvMr0PSqUbhmZlgm0=";
   };
 
   propagatedBuildInputs = [ hwloc ];
diff --git a/pkgs/development/libraries/htmlcxx/default.nix b/pkgs/development/libraries/htmlcxx/default.nix
index f42674e902f04..4b01162bf25bc 100644
--- a/pkgs/development/libraries/htmlcxx/default.nix
+++ b/pkgs/development/libraries/htmlcxx/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://htmlcxx.sourceforge.net/";
-    description = "A simple non-validating css1 and html parser for C++";
+    description = "Simple non-validating css1 and html parser for C++";
     mainProgram = "htmlcxx";
     license = licenses.lgpl2;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/http-parser/default.nix b/pkgs/development/libraries/http-parser/default.nix
index 65ac1fe92c130..6ba2b8fc1ace7 100644
--- a/pkgs/development/libraries/http-parser/default.nix
+++ b/pkgs/development/libraries/http-parser/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An HTTP message parser written in C";
+    description = "HTTP message parser written in C";
     homepage = "https://github.com/nodejs/http-parser";
     maintainers = with maintainers; [ matthewbauer ];
     license = licenses.mit;
diff --git a/pkgs/development/libraries/httplib/default.nix b/pkgs/development/libraries/httplib/default.nix
index 4736326b4a302..95c15fdc610af 100644
--- a/pkgs/development/libraries/httplib/default.nix
+++ b/pkgs/development/libraries/httplib/default.nix
@@ -7,20 +7,20 @@
 
 stdenv.mkDerivation rec {
   pname = "httplib";
-  version = "0.15.3";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "yhirose";
     repo = "cpp-httplib";
     rev = "v${version}";
-    hash = "sha256-+YAjmsZvBkOk5bsjE07weTNUmevHd1ZXP0bv5QbkZMs=";
+    hash = "sha256-1w7uu2E4YIcGWNq//BZ2wtDKj9/tgmIhkJgadvCKmVg=";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ openssl ];
 
   meta = with lib; {
-    description = "A C++ header-only HTTP/HTTPS server and client library";
+    description = "C++ header-only HTTP/HTTPS server and client library";
     homepage = "https://github.com/yhirose/cpp-httplib";
     changelog = "https://github.com/yhirose/cpp-httplib/releases/tag/v${version}";
     maintainers = with maintainers; [ aidalgol ];
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index 78c9ad7fe7b59..6b6640ddfb712 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -967,4 +967,58 @@ rec {
       platforms = platforms.all;
     };
   };
+
+  /* ROMANIAN */
+  ro_RO = ro-ro;
+  ro-ro = mkDict rec {
+    pname = "hunspell-dict-ro-ro";
+    version = "3.3.10";
+    shortName = "ro-ro";
+    dictFileName = "ro_RO";
+    fileName = "${dictFileName}.${version}.zip";
+    shortDescription = "Romanian (Romania)";
+    readmeFile = "README";
+
+    src = fetchurl {
+      url = "https://downloads.sourceforge.net/rospell/${fileName}";
+      hash = "sha256-fxKNZOoGyeZxHDCxGMCv7vsBTY8zyS2szfRVq6LQRRk=";
+    };
+
+    nativeBuildInputs = [ unzip ];
+    unpackCmd = ''
+      unzip $src ${dictFileName}.aff ${dictFileName}.dic ${readmeFile} -d ${dictFileName}
+    '';
+
+    meta = {
+      description = "Hunspell dictionary for ${shortDescription} from rospell";
+      homepage = "https://sourceforge.net/projects/rospell/";
+      license = with lib.licenses; [ gpl2Only ];
+      maintainers = with lib.maintainers; [ Andy3153 ];
+    };
+  };
+
+  /* Turkish */
+  tr_TR = tr-tr;
+  tr-tr = mkDict rec {
+    pname = "hunspell-dict-tr-tr";
+    version = "1.1.1";
+
+    src = fetchFromGitHub {
+      owner = "tdd-ai";
+      repo = "hunspell-tr";
+      rev = "7302eca5f3652fe7ae3d3ec06c44697c97342b4e";
+      hash = "sha256-r/I5T/1e7gcp2XZ4UvnpFmWMTsNqLZSCbkqPcgC13PE=";
+    };
+
+    dictFileName = "tr_TR";
+    readmeFile = "README.md";
+
+    meta = with lib; {
+      description = "Hunspell dictionary for Turkish (Turkey) from tdd-ai";
+      homepage = "https://github.com/tdd-ai/hunspell-tr/";
+      license = licenses.mpl20;
+      maintainers = with maintainers; [ samemrecebi ];
+      platforms = platforms.all;
+    };
+  };
 }
diff --git a/pkgs/development/libraries/hyena/default.nix b/pkgs/development/libraries/hyena/default.nix
index 0a4e89b3b2de3..cb962212ffea6 100644
--- a/pkgs/development/libraries/hyena/default.nix
+++ b/pkgs/development/libraries/hyena/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/Archive/hyena";
-    description = "A C# library which contains a hodge-podge of random stuff";
+    description = "C# library which contains a hodge-podge of random stuff";
     longDescription = ''
       Hyena is a C# library used to make awesome applications. It contains a lot of random things,
       including useful data structures, a Sqlite-based db layer, cool widgets, a JSON library,
diff --git a/pkgs/development/libraries/hyphen/default.nix b/pkgs/development/libraries/hyphen/default.nix
index 122834570cfa3..2759ad9af7374 100644
--- a/pkgs/development/libraries/hyphen/default.nix
+++ b/pkgs/development/libraries/hyphen/default.nix
@@ -18,7 +18,7 @@ in stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A text hyphenation library";
+    description = "Text hyphenation library";
     mainProgram = "substrings.pl";
     homepage = "https://sourceforge.net/projects/hunspell/files/Hyphen/";
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/icu/make-icu.nix b/pkgs/development/libraries/icu/make-icu.nix
index 836a7e3c73a69..3e65e80ef7c4d 100644
--- a/pkgs/development/libraries/icu/make-icu.nix
+++ b/pkgs/development/libraries/icu/make-icu.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, buildPackages, fetchurl, fixDarwinDylibNames, testers }:
 
-{ version, hash, patches ? [], patchFlags ? [] }:
+{ version, hash, patches ? [], patchFlags ? [], withStatic ? stdenv.hostPlatform.isStatic }:
 
 let
   # Cross-compiled icu4c requires a build-root of a native compile
@@ -36,9 +36,12 @@ let
       sed -e 's/LDFLAGSICUDT=-nodefaultlibs -nostdlib/LDFLAGSICUDT=/' -i config/mh-linux
     '';
 
+    dontDisableStatic = withStatic;
+
     configureFlags = [ "--disable-debug" ]
       ++ lib.optional (stdenv.isFreeBSD || stdenv.isDarwin) "--enable-rpath"
-      ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--with-cross-build=${nativeBuildRoot}";
+      ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--with-cross-build=${nativeBuildRoot}"
+      ++ lib.optional withStatic "--enable-static";
 
     enableParallelBuilding = true;
 
@@ -58,7 +61,7 @@ let
   realAttrs = baseAttrs // {
     name = pname + "-" + version;
 
-    outputs = [ "out" "dev" ];
+    outputs = [ "out" "dev" ] ++ lib.optional withStatic "static";
     outputBin = "dev";
 
     # FIXME: This fixes dylib references in the dylibs themselves, but
@@ -66,7 +69,10 @@ let
     nativeBuildInputs = lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
 
     # remove dependency on bootstrap-tools in early stdenv build
-    postInstall = lib.optionalString stdenv.isDarwin ''
+    postInstall = lib.optionalString withStatic ''
+      mkdir -p $static/lib
+      mv -v lib/*.a $static/lib
+    '' + lib.optionalString stdenv.isDarwin ''
       sed -i 's/INSTALL_CMD=.*install/INSTALL_CMD=install/' $out/lib/icu/${version}/pkgdata.inc
     '' + (let
       replacements = [
@@ -75,6 +81,8 @@ let
         { from = "\${pkglibdir}/pkgdata.inc"; to = "${placeholder "dev"}/lib/icu/pkgdata.inc"; } # --incpkgdatafile
       ];
     in ''
+      rm $out/share/icu/${version}/install-sh $out/share/icu/${version}/mkinstalldirs # Avoid having a runtime dependency on bash
+
       substituteInPlace "$dev/bin/icu-config" \
         ${lib.concatMapStringsSep " " (r: "--replace '${r.from}' '${r.to}'") replacements}
     '');
diff --git a/pkgs/development/libraries/igraph/default.nix b/pkgs/development/libraries/igraph/default.nix
index 5f0dbaec153c0..c55f3ee186614 100644
--- a/pkgs/development/libraries/igraph/default.nix
+++ b/pkgs/development/libraries/igraph/default.nix
@@ -26,13 +26,13 @@ assert (blas.isILP64 == lapack.isILP64 &&
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "igraph";
-  version = "0.10.11";
+  version = "0.10.12";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = finalAttrs.pname;
     rev = finalAttrs.version;
-    hash = "sha256-RUxA9j2VDzwuYO/1HtyF3/ejGCJ7Gdjm7U8/Q8JxTbI=";
+    hash = "sha256-ITXkdCyUtuFhgHHmy3P4ZX6GgzyxVUYz4knCCPHGClc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/imgui/default.nix b/pkgs/development/libraries/imgui/default.nix
index ed15d6229d9e2..e5d4f54e9a006 100644
--- a/pkgs/development/libraries/imgui/default.nix
+++ b/pkgs/development/libraries/imgui/default.nix
@@ -1,32 +1,145 @@
-{ stdenv, lib, fetchFromGitHub }:
+{
+  stdenv,
+  lib,
+  applyPatches,
+  callPackage,
+  cmake,
+  fetchFromGitHub,
+  fetchpatch,
+  darwin,
+  glfw,
+  libGL,
+  SDL2,
+  vcpkg,
+  vulkan-headers,
+  vulkan-loader,
+
+  # The intent is to mirror vcpkg's flags[^1],
+  # but we only actually support Linux and glfw3 until someone contributes the rest
+  # [^1]: https://github.com/microsoft/vcpkg/blob/095ee06e7f60dceef7d713e3f8b1c2eb10d650d7/ports/imgui/CMakeLists.txt#L33-L108
+  IMGUI_BUILD_ALLEGRO5_BINDING ? false,
+  IMGUI_BUILD_ANDROID_BINDING ? stdenv.hostPlatform.isAndroid,
+  IMGUI_BUILD_DX9_BINDING ? false,
+  IMGUI_BUILD_DX10_BINDING ? false,
+  IMGUI_BUILD_DX11_BINDING ? false,
+  IMGUI_BUILD_DX12_BINDING ? false,
+  IMGUI_BUILD_GLFW_BINDING ? !stdenv.isDarwin,
+  IMGUI_BUILD_GLUT_BINDING ? false,
+  IMGUI_BUILD_METAL_BINDING ? stdenv.isDarwin,
+  IMGUI_BUILD_OPENGL2_BINDING ? false,
+  IMGUI_BUILD_OPENGL3_BINDING ?
+    IMGUI_BUILD_SDL2_BINDING || IMGUI_BUILD_GLFW_BINDING || IMGUI_BUILD_GLUT_BINDING,
+  IMGUI_BUILD_OSX_BINDING ? stdenv.isDarwin,
+  IMGUI_BUILD_SDL2_BINDING ?
+    !IMGUI_BUILD_GLFW_BINDING && !stdenv.isDarwin,
+  IMGUI_BUILD_SDL2_RENDERER_BINDING ? IMGUI_BUILD_SDL2_BINDING,
+  IMGUI_BUILD_VULKAN_BINDING ? false,
+  IMGUI_BUILD_WIN32_BINDING ? false,
+  IMGUI_FREETYPE ? false,
+  IMGUI_FREETYPE_LUNASVG ? false,
+  IMGUI_USE_WCHAR32 ? false,
+}@args:
+
+let
+  vcpkgSource = applyPatches {
+    inherit (vcpkg) src;
+    patches = [
+      # Install imgui into split outputs:
+      (fetchpatch {
+        url = "https://github.com/microsoft/vcpkg/commit/e91750f08383112e8850f209e55ed2f960181fa6.patch";
+        hash = "sha256-T+DN42PRl2gWGM8zJb9wZEsDl7+XNT6CFypNX3lBHNc=";
+      })
+    ];
+  };
+in
 
 stdenv.mkDerivation rec {
   pname = "imgui";
-  version = "1.90.5";
+  version = "1.90.6";
+  outputs = [
+    # Note: no "dev" because vcpkg installs include/ and imgui-config.cmake
+    # into different prefixes but expects the merged layout at import time
+    "out"
+    "lib"
+  ];
 
   src = fetchFromGitHub {
     owner = "ocornut";
     repo = "imgui";
     rev = "v${version}";
-    sha256 = "sha256-iTs8bcCAR8lvN1tcKmwyB3CcFmqR1QpqdGqdER920rM=";
+    sha256 = "sha256-FSob6FPfg0tF0n72twA5/moLvEaB251BPkIDJUXhYbg=";
   };
 
-  dontBuild = true;
+  cmakeRules = "${vcpkgSource}/ports/imgui";
+  postPatch = ''
+    cp "$cmakeRules"/{CMakeLists.txt,*.cmake.in} ./
+  '';
 
-  installPhase = ''
-    mkdir -p $out/include/imgui
+  nativeBuildInputs = [ cmake ];
 
-    cp *.h $out/include/imgui
-    cp *.cpp $out/include/imgui
-    cp -a backends $out/include/imgui/
-    cp -a misc $out/include/imgui/
-  '';
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.ApplicationServices
+    darwin.apple_sdk.frameworks.Cocoa
+    darwin.apple_sdk.frameworks.GameController
+  ];
+
+  propagatedBuildInputs =
+    lib.optionals (IMGUI_BUILD_OPENGL2_BINDING || IMGUI_BUILD_OPENGL3_BINDING) [ libGL ]
+    ++ lib.optionals IMGUI_BUILD_GLFW_BINDING [ glfw ]
+    ++ lib.optionals IMGUI_BUILD_SDL2_BINDING [ SDL2 ]
+    ++ lib.optionals IMGUI_BUILD_VULKAN_BINDING [
+      vulkan-headers
+      vulkan-loader
+    ]
+    ++ lib.optionals IMGUI_BUILD_METAL_BINDING [ darwin.apple_sdk.frameworks.Metal ];
+
+  cmakeFlags = [
+    (lib.cmakeBool "IMGUI_BUILD_GLFW_BINDING" IMGUI_BUILD_GLFW_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_ALLEGRO5_BINDING" IMGUI_BUILD_ALLEGRO5_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_ANDROID_BINDING" IMGUI_BUILD_ANDROID_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX9_BINDING" IMGUI_BUILD_DX9_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX10_BINDING" IMGUI_BUILD_DX10_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX11_BINDING" IMGUI_BUILD_DX11_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_DX12_BINDING" IMGUI_BUILD_DX12_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_GLFW_BINDING" IMGUI_BUILD_GLFW_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_GLUT_BINDING" IMGUI_BUILD_GLUT_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_METAL_BINDING" IMGUI_BUILD_METAL_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_OPENGL2_BINDING" IMGUI_BUILD_OPENGL2_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_OPENGL3_BINDING" IMGUI_BUILD_OPENGL3_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_OSX_BINDING" IMGUI_BUILD_OSX_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_SDL2_BINDING" IMGUI_BUILD_SDL2_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_SDL2_RENDERER_BINDING" IMGUI_BUILD_SDL2_RENDERER_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_VULKAN_BINDING" IMGUI_BUILD_VULKAN_BINDING)
+    (lib.cmakeBool "IMGUI_BUILD_WIN32_BINDING" IMGUI_BUILD_WIN32_BINDING)
+    (lib.cmakeBool "IMGUI_FREETYPE" IMGUI_FREETYPE)
+    (lib.cmakeBool "IMGUI_FREETYPE_LUNASVG" IMGUI_FREETYPE_LUNASVG)
+    (lib.cmakeBool "IMGUI_USE_WCHAR32" IMGUI_USE_WCHAR32)
+  ];
+
+  passthru = {
+    tests = {
+      demo = callPackage ./demo { };
+    };
+  };
 
-  meta = with lib; {
+  meta = {
+    # These flags haven't been tested:
+    broken =
+      IMGUI_FREETYPE
+      || IMGUI_FREETYPE_LUNASVG
+      || IMGUI_BUILD_DX9_BINDING
+      || IMGUI_BUILD_DX10_BINDING
+      || IMGUI_BUILD_DX11_BINDING
+      || IMGUI_BUILD_DX12_BINDING
+      || IMGUI_BUILD_WIN32_BINDING
+      || IMGUI_BUILD_ALLEGRO5_BINDING
+      || IMGUI_BUILD_ANDROID_BINDING;
     description = "Bloat-free Graphical User interface for C++ with minimal dependencies";
     homepage = "https://github.com/ocornut/imgui";
-    license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
-    platforms = platforms.all;
+    license = lib.licenses.mit; # vcpkg licensed as MIT too
+    maintainers = with lib.maintainers; [
+      SomeoneSerge
+    ];
+    platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/imgui/demo/CMakeLists.txt b/pkgs/development/libraries/imgui/demo/CMakeLists.txt
new file mode 100644
index 0000000000000..9345dd9897a9c
--- /dev/null
+++ b/pkgs/development/libraries/imgui/demo/CMakeLists.txt
@@ -0,0 +1,11 @@
+project(ImguiDemo LANGUAGES CXX)
+cmake_minimum_required(VERSION 3.20)
+
+add_executable(demo ./main.cpp)
+
+find_package(imgui REQUIRED)
+find_package(glfw3 REQUIRED)
+find_package(OpenGL REQUIRED)
+target_link_libraries(demo PRIVATE imgui glfw OpenGL::GL)
+
+install(TARGETS demo RUNTIME DESTINATION bin)
diff --git a/pkgs/development/libraries/imgui/demo/default.nix b/pkgs/development/libraries/imgui/demo/default.nix
new file mode 100644
index 0000000000000..a250155758aa3
--- /dev/null
+++ b/pkgs/development/libraries/imgui/demo/default.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  stdenv,
+  cmake,
+  imgui,
+}:
+
+stdenv.mkDerivation {
+  pname = "${imgui.pname}-demo";
+  inherit (imgui) version;
+
+  src = "${imgui.src}/examples/example_glfw_opengl3";
+  postPatch = ''
+    rm Makefile*
+    cp ${./CMakeLists.txt} CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ (imgui.override { IMGUI_BUILD_GLFW_BINDING = true; }) ];
+
+  meta = with lib; {
+    description = "Standalone ImPlot Demos";
+    homepage = "https://github.com/ocornut/imgui/tree/master/examples/example_glfw_opengl3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SomeoneSerge ];
+    mainProgram = "demo";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/impy/default.nix b/pkgs/development/libraries/impy/default.nix
index 8682e95a57586..5be23b0a96f4c 100644
--- a/pkgs/development/libraries/impy/default.nix
+++ b/pkgs/development/libraries/impy/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple library for loading/saving images and animations, written in C";
+    description = "Simple library for loading/saving images and animations, written in C";
     homepage = "https://github.com/bcampbell/impy";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/pkgs/development/libraries/imtui/default.nix b/pkgs/development/libraries/imtui/default.nix
index 86b488c1a888d..a4f477543b89e 100644
--- a/pkgs/development/libraries/imtui/default.nix
+++ b/pkgs/development/libraries/imtui/default.nix
@@ -30,7 +30,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
 
   postPatch = ''
-    cp -r ${imgui}/include/imgui third-party/imgui
+    cp -r ${imgui.src}/* third-party/imgui/imgui
+    chmod -R u+w third-party/imgui
   '' + lib.optionalString (lib.versionAtLeast imgui.version "1.90.1") ''
     substituteInPlace src/imtui-impl-{emscripten,ncurses}.cpp \
       --replace "ImGuiKey_KeyPadEnter" "ImGuiKey_KeypadEnter"
@@ -45,10 +46,6 @@ stdenv.mkDerivation rec {
     "-DIMTUI_INSTALL_IMGUI_HEADERS:BOOL=OFF"
   ];
 
-  postInstall = ''
-    rm -rf $out/include/imgui
-  '';
-
   meta = with lib; {
     description = "Immediate mode text-based user interface library";
     longDescription = ''
diff --git a/pkgs/development/libraries/iniparser/default.nix b/pkgs/development/libraries/iniparser/default.nix
index 62deaeb1c2815..18057753efbd0 100644
--- a/pkgs/development/libraries/iniparser/default.nix
+++ b/pkgs/development/libraries/iniparser/default.nix
@@ -1,51 +1,79 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitLab
+, fetchpatch
+, fetchFromGitHub
+, substituteAll
+, symlinkJoin
+, cmake
+, doxygen
+, ruby
+, validatePkgConfig
+, testers
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "iniparser";
-  version = "4.1";
+  version = "4.2.3";
 
-  src = fetchFromGitHub {
-    owner = "ndevilla";
+  src = fetchFromGitLab {
+    owner = "iniparser";
     repo = "iniparser";
-    rev = "v${version}";
-    sha256 = "0dhab6pad6wh816lr7r3jb6z273njlgw2vpw8kcfnmi7ijaqhnr5";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-rCp9whYPYmVd7saVFILmpdn041u6fYGqe1/Oqc7RaeA=";
   };
 
-  patches = ./no-usr.patch;
+  patches = [
+    (fetchpatch {
+      name = "fix-paths-pkgconfig-file.patch";
+      url = "https://gitlab.com/iniparser/iniparser/-/commit/6a76cd5e97b32014b22d87039bf6f4ee425c79a2.patch";
+      hash = "sha256-KlTxeOzwBZiLNmuwbbem5c/xspxsflyYfeUaQnGyarI=";
+    })
+  ] ++ lib.optionals finalAttrs.doCheck [
+    (substituteAll {
+      # Do not let cmake's fetchContent download unity
+      src = ./remove-fetchcontent-usage.patch;
+      unitySrc = symlinkJoin {
+        name = "unity-with-iniparser-config";
+        paths = [
+          (fetchFromGitHub {
+            owner = "throwtheswitch";
+            repo = "unity";
+            rev = "v2.6.0";
+            hash = "sha256-SCcUGNN/UJlu3ALJiZ9bQKxYRZey3cm9QG+NOehp6Ow=";
+          })
+        ];
+        postBuild = ''
+          ln -s ${finalAttrs.src}/test/unity_config.h $out/src/unity_config.h
+        '';
+      };
+    })
+  ];
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile \
-        --replace -Wl,-soname= -Wl,-install_name,
-  '';
-
-  doCheck = true;
-  preCheck = "patchShebangs test/make-tests.sh";
-
-  installPhase = ''
-    mkdir -p $out/lib
+  nativeBuildInputs = [ cmake doxygen validatePkgConfig ] ++ lib.optionals finalAttrs.doCheck [ ruby ];
 
-    mkdir -p $out/include
-    cp src/*.h $out/include
+  cmakeFlags = [
+    "-DBUILD_TESTING=${if finalAttrs.doCheck then "ON" else "OFF"}"
+  ];
 
-    mkdir -p $out/share/doc/${pname}-${version}
-    for i in AUTHORS INSTALL LICENSE README.md; do
-      bzip2 -c -9 $i > $out/share/doc/${pname}-${version}/$i.bz2;
-    done;
-    cp -r html $out/share/doc/${pname}-${version}
+  doCheck = false;
 
-    cp libiniparser.a $out/lib
-    cp libiniparser.so.1 $out/lib
-    ln -s libiniparser.so.1 $out/lib/libiniparser.so
-
-    mkdir -p $out/lib/pkgconfig
-    substituteAll ${./iniparser.pc.in} $out/lib/pkgconfig/iniparser.pc
+  postFixup = ''
+    ln -sv $out/include/iniparser/*.h $out/include/
   '';
 
+  passthru.tests = {
+    pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+    iniparser-with-tests = finalAttrs.overrideAttrs (_: { doCheck = true; });
+  };
+
   meta = with lib; {
-    inherit (src.meta) homepage;
+    homepage = "https://gitlab.com/iniparser/iniparser";
     description = "Free standalone ini file parsing library";
+    changelog = "https://gitlab.com/iniparser/iniparser/-/releases/v${finalAttrs.version}";
     license = licenses.mit;
     platforms = platforms.unix;
+    pkgConfigModules = [ "iniparser" ];
     maintainers = [ maintainers.primeos ];
   };
-}
+})
diff --git a/pkgs/development/libraries/iniparser/iniparser.pc.in b/pkgs/development/libraries/iniparser/iniparser.pc.in
deleted file mode 100644
index fb94188fff711..0000000000000
--- a/pkgs/development/libraries/iniparser/iniparser.pc.in
+++ /dev/null
@@ -1,12 +0,0 @@
-prefix=@out@
-exec_prefix=@out@
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-datarootdir=${prefix}/share
-datadir=${datarootdir}
-
-Name: libiniparser
-Description: Iniparser library
-Version: @version@
-Libs: -L${libdir} -liniparser
-Cflags: -I${includedir}
diff --git a/pkgs/development/libraries/iniparser/no-usr.patch b/pkgs/development/libraries/iniparser/no-usr.patch
deleted file mode 100644
index a3c568cdde436..0000000000000
--- a/pkgs/development/libraries/iniparser/no-usr.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/Makefile	2017-10-20 20:30:41.494608284 +0200
-+++ b/Makefile	2017-10-20 20:33:22.279212026 +0200
-@@ -20,8 +20,8 @@
- ARFLAGS = rcv
- 
- SHLD = ${CC} ${CFLAGS}
--LDSHFLAGS = -shared -Wl,-Bsymbolic
--LDFLAGS += -Wl,-rpath -Wl,/usr/lib -Wl,-rpath,/usr/lib
-+LDSHFLAGS = -shared
-+LDFLAGS =
- 
- # .so.0 is for version 3.x, .so.1 is 4.x
- SO_TARGET ?= libiniparser.so.1
diff --git a/pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch b/pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch
new file mode 100644
index 0000000000000..db96c37e6b2ca
--- /dev/null
+++ b/pkgs/development/libraries/iniparser/remove-fetchcontent-usage.patch
@@ -0,0 +1,17 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index b28d151..33a6bcf 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -28,10 +28,8 @@ set(FETCHCONTENT_QUIET OFF)
+ 
+ FetchContent_Declare(
+   unity
+-  GIT_REPOSITORY "https://github.com/throwtheswitch/unity.git"
+-  GIT_PROGRESS TRUE
+-  PATCH_COMMAND ${CMAKE_COMMAND} -E copy
+-                ${CMAKE_CURRENT_LIST_DIR}/unity_config.h ./src/)
++  SOURCE_DIR @unitySrc@
++)
+ 
+ FetchContent_MakeAvailable(unity)
+ target_compile_definitions(unity PUBLIC UNITY_INCLUDE_CONFIG_H)
diff --git a/pkgs/development/libraries/intel-gmmlib/default.nix b/pkgs/development/libraries/intel-gmmlib/default.nix
index 5c647aaadfe62..2cfce8ed20405 100644
--- a/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "22.3.19";
+  version = "22.3.20";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "gmmlib";
     rev = "intel-gmmlib-${version}";
-    sha256 = "sha256-y35rcAo1CR8HvKD4hCtdMSSPSSnGaUf4l2Tdzbq5fFw=";
+    sha256 = "sha256-AqHzWm0ZWCJK0gMXxxBSHemKx3U1fOXCUGo/ORny2hI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/intel-media-sdk/default.nix b/pkgs/development/libraries/intel-media-sdk/default.nix
index 506281a7e6e93..37c0e7253ad1f 100644
--- a/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -13,6 +13,9 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    # Search oneVPL-intel-gpu in NixOS specific /run/opengl-driver/lib directory
+    # See https://github.com/NixOS/nixpkgs/pull/315425
+    ./nixos-search-onevplrt-in-run-opengl-driver-lib.patch
     # https://github.com/Intel-Media-SDK/MediaSDK/pull/3005
     (fetchpatch {
       name = "include-cstdint-explicitly.patch";
@@ -39,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "Intel Media SDK";
     mainProgram = "mfx-tracer-config";
     license = licenses.mit;
-    maintainers = with maintainers; [ midchildan ];
+    maintainers = with maintainers; [ midchildan pjungkamp ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch b/pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch
new file mode 100644
index 0000000000000..5057de1e1e489
--- /dev/null
+++ b/pkgs/development/libraries/intel-media-sdk/nixos-search-onevplrt-in-run-opengl-driver-lib.patch
@@ -0,0 +1,45 @@
+From aceb689ae69857def8a26a8d1ceb114ccfbb2569 Mon Sep 17 00:00:00 2001
+From: Philipp Jungkamp <p.jungkamp@gmx.net>
+Date: Tue, 28 May 2024 19:22:29 +0200
+Subject: [PATCH] NixOS: Search ONEVPLRT in /run/opengl-driver/lib
+
+---
+ api/mfx_dispatch/linux/mfxloader.cpp                            | 2 ++
+ .../suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp  | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/api/mfx_dispatch/linux/mfxloader.cpp b/api/mfx_dispatch/linux/mfxloader.cpp
+index 39b6bff1..f76ed65d 100644
+--- a/api/mfx_dispatch/linux/mfxloader.cpp
++++ b/api/mfx_dispatch/linux/mfxloader.cpp
+@@ -193,6 +193,7 @@ mfxStatus LoaderCtx::Init(mfxInitParam& par)
+   if (selected_runtime && strcmp(selected_runtime, "ONEVPL") == 0) {
+     libs.emplace_back(ONEVPLRT);
+     libs.emplace_back(MFX_MODULES_DIR "/" ONEVPLRT);
++    libs.emplace_back("/run/opengl-driver/lib/" ONEVPLRT);
+   } else if ((selected_runtime && strcmp(selected_runtime, "MSDK") == 0) || (platform != MFX_HW_UNKNOWN)) {
+     if (MFX_IMPL_BASETYPE(par.Implementation) == MFX_IMPL_AUTO ||
+         MFX_IMPL_BASETYPE(par.Implementation) == MFX_IMPL_AUTO_ANY) {
+@@ -213,6 +214,7 @@ mfxStatus LoaderCtx::Init(mfxInitParam& par)
+   } else {
+     libs.emplace_back(ONEVPLRT);
+     libs.emplace_back(MFX_MODULES_DIR "/" ONEVPLRT);
++    libs.emplace_back("/run/opengl-driver/lib/" ONEVPLRT);
+   }
+ 
+   mfxStatus mfx_res = MFX_ERR_UNSUPPORTED;
+diff --git a/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp b/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
+index dedee0b3..9657da4b 100644
+--- a/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
++++ b/tests/unit/suites/mfx_dispatch/linux/mfx_dispatch_test_cases_libs.cpp
+@@ -123,6 +123,7 @@ TEST_P(DispatcherLibsTestParametrized, ShouldEnumerateCorrectLibNames)
+     {
+         libs.emplace_back(ONEVPLRT);
+         libs.emplace_back(modules_dir + "/" + ONEVPLRT);
++        libs.emplace_back("/run/opengl-driver/lib/" + ONEVPLRT);
+     }
+ 
+     for (const std::string& lib : libs)
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/ipu6-camera-hal/default.nix b/pkgs/development/libraries/ipu6-camera-hal/default.nix
index 3ec63fd0807d3..ff490414da858 100644
--- a/pkgs/development/libraries/ipu6-camera-hal/default.nix
+++ b/pkgs/development/libraries/ipu6-camera-hal/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation {
     description = "HAL for processing of images in userspace";
     homepage = "https://github.com/intel/ipu6-camera-hal";
     license = licenses.asl20;
-    maintainers = with maintainers; [ hexa ];
+    maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/libraries/isa-l/default.nix b/pkgs/development/libraries/isa-l/default.nix
index 88fcbc04d586c..9a112fb1c4d93 100644
--- a/pkgs/development/libraries/isa-l/default.nix
+++ b/pkgs/development/libraries/isa-l/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A collection of optimised low-level functions targeting storage applications";
+    description = "Collection of optimised low-level functions targeting storage applications";
     mainProgram = "igzip";
     license = licenses.bsd3;
     homepage = "https://github.com/intel/isa-l";
diff --git a/pkgs/development/libraries/isl/generic.nix b/pkgs/development/libraries/isl/generic.nix
index 31bd990645b59..8974839dca26a 100644
--- a/pkgs/development/libraries/isl/generic.nix
+++ b/pkgs/development/libraries/isl/generic.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://libisl.sourceforge.io/";
     license = lib.licenses.lgpl21;
-    description = "A library for manipulating sets and relations of integer points bounded by linear constraints";
+    description = "Library for manipulating sets and relations of integer points bounded by linear constraints";
     platforms = lib.platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/itk/5.x.nix b/pkgs/development/libraries/itk/5.x.nix
index 765b464e46a1c..c3086d86ac11f 100644
--- a/pkgs/development/libraries/itk/5.x.nix
+++ b/pkgs/development/libraries/itk/5.x.nix
@@ -1,5 +1,5 @@
 import ./generic.nix rec {
-  version = "5.3.0";
-  rev = "v${version}";
-  sourceSha256 = "sha256-+qCd8Jzpl5fEPTUpLyjjFBkfgCn3+Lf4pi8QnjCwofs=";
+  version = "5.4.0";
+  rev = "refs/tags/v${version}";
+  sourceSha256 = "sha256-1RSWgH0iQ2NQNsieW2m37udXWQlqYslJNM3TXC9xeP4=";
 }
diff --git a/pkgs/development/libraries/itk/generic.nix b/pkgs/development/libraries/itk/generic.nix
index be59969aaecbe..54f725683a2e3 100644
--- a/pkgs/development/libraries/itk/generic.nix
+++ b/pkgs/development/libraries/itk/generic.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
     sha256 = sourceSha256;
   };
 
-  patches = [
+  patches = lib.optionals (lib.versionOlder version "5.4") [
     (fetchpatch {
       name = "fix-gcc13-build";
       url = "https://github.com/InsightSoftwareConsortium/ITK/commit/9a719a0d2f5f489eeb9351b0ef913c3693147a4f.patch";
diff --git a/pkgs/development/libraries/jabcode/default.nix b/pkgs/development/libraries/jabcode/default.nix
index dba1fba20df60..1fc0e6fd0886c 100644
--- a/pkgs/development/libraries/jabcode/default.nix
+++ b/pkgs/development/libraries/jabcode/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A high-capacity 2D color bar code (${subproject})";
+    description = "High-capacity 2D color bar code (${subproject})";
     longDescription = "JAB Code (Just Another Bar Code) is a high-capacity 2D color bar code, which can encode more data than traditional black/white (QR) codes. This is the ${subproject} part.";
     homepage = "https://jabcode.org/";
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/java/commons/bcel/default.nix b/pkgs/development/libraries/java/commons/bcel/default.nix
index f25f4a552b7c0..0387b5dd9e306 100644
--- a/pkgs/development/libraries/java/commons/bcel/default.nix
+++ b/pkgs/development/libraries/java/commons/bcel/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "6.8.1";
+  version = "6.8.2";
   pname = "commons-bcel";
 
   src = fetchurl {
     url    = "mirror://apache/commons/bcel/binaries/bcel-${version}-bin.tar.gz";
-    hash   = "sha256-a7PqcVvS+7tHSU2uXi5gLpl82ZN9hA03VEnCnc5cnRc=";
+    hash   = "sha256-VRCRxy+P3uPW9gWy9xHfJ35muhWCHtXNimRmTfba+04=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/java/commons/compress/default.nix b/pkgs/development/libraries/java/commons/compress/default.nix
index 4a226a22c4dee..f5c5922e800ad 100644
--- a/pkgs/development/libraries/java/commons/compress/default.nix
+++ b/pkgs/development/libraries/java/commons/compress/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "1.26.1";
+  version = "1.26.2";
   pname = "commons-compress";
 
   src = fetchurl {
     url    = "mirror://apache/commons/compress/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-PVZ4hltIprOeT3UEH3+xJ+TcZLekHV7cuw16rMmx/Rk=";
+    sha256 = "sha256-EyGbVhcsuEhLfKh0TPFjySFd9/Z8BEBhkslpfdu4er8=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/java/commons/daemon/default.nix b/pkgs/development/libraries/java/commons/daemon/default.nix
index be61630d17f4f..68b1c924214db 100644
--- a/pkgs/development/libraries/java/commons/daemon/default.nix
+++ b/pkgs/development/libraries/java/commons/daemon/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-daemon";
-    description = "Apache Commons Daemon software is a set of utilities and Java support classes for running Java applications as server processes.";
+    description = "Apache Commons Daemon software is a set of utilities and Java support classes for running Java applications as server processes";
     maintainers = with lib.maintainers; [ rsynnest ];
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/commons/fileupload/default.nix b/pkgs/development/libraries/java/commons/fileupload/default.nix
index 40c66909213e1..6c9235117355a 100644
--- a/pkgs/development/libraries/java/commons/fileupload/default.nix
+++ b/pkgs/development/libraries/java/commons/fileupload/default.nix
@@ -1,12 +1,12 @@
 {lib, stdenv, fetchurl}:
 
 stdenv.mkDerivation rec {
-  version = "1.4";
+  version = "1.5";
   pname = "commons-fileupload";
 
   src = fetchurl {
     url    = "mirror://apache/commons/fileupload/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "1avfv4gljp7flra767yzas54vfb6az9s1nhxfjv48jj2x0llxxkx";
+    sha256 = "sha256-r7EGiih4qOCbjaL7Wg+plbe0m3CuFWXs/RmbfGLmj1g=";
   };
   installPhase = ''
     tar xf ${src}
diff --git a/pkgs/development/libraries/java/commons/io/default.nix b/pkgs/development/libraries/java/commons/io/default.nix
index 4c010829c6ff4..160388f97b518 100644
--- a/pkgs/development/libraries/java/commons/io/default.nix
+++ b/pkgs/development/libraries/java/commons/io/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "2.15.1";
+  version = "2.16.1";
   pname = "commons-io";
 
   src = fetchurl {
     url    = "mirror://apache/commons/io/binaries/${pname}-${version}-bin.tar.gz";
-    sha256 = "sha256-nYoYGHetdd3vFryFXLxuvvSUCIs6VZyPwWb8s0h+edg=";
+    sha256 = "sha256-4+YYSDyCHwUwlw71nAnGy4g9GOl1Z8qr3gHQEyv8EPo=";
   };
 
   installPhase = ''
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-io";
-    description = "A library of utilities to assist with developing IO functionality";
+    description = "Library of utilities to assist with developing IO functionality";
     maintainers = with lib.maintainers; [ copumpkin ];
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/commons/logging/default.nix b/pkgs/development/libraries/java/commons/logging/default.nix
index 085efc6e52b5f..f7debe8a7bdc7 100644
--- a/pkgs/development/libraries/java/commons/logging/default.nix
+++ b/pkgs/development/libraries/java/commons/logging/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "commons-logging";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchurl {
     url    = "mirror://apache/commons/logging/binaries/commons-logging-${version}-bin.tar.gz";
-    sha256 = "sha256-ij6jOi1Y/iQ/9Ht41nKtmOdZCvf0NmNseFGxBpyq1fg=";
+    sha256 = "sha256-mM85vfWDc88fNwwflvnRvoh/tb+jDH3o+96RZa9Sp7w=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/java/commons/math/default.nix b/pkgs/development/libraries/java/commons/math/default.nix
index 4f928db4cf3b5..ddb3b17c1dae2 100644
--- a/pkgs/development/libraries/java/commons/math/default.nix
+++ b/pkgs/development/libraries/java/commons/math/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage    = "https://commons.apache.org/proper/commons-math/";
-    description = "A library of lightweight, self-contained mathematics and statistics components";
+    description = "Library of lightweight, self-contained mathematics and statistics components";
     maintainers = with lib.maintainers; [ copumpkin ];
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     license     = lib.licenses.asl20;
diff --git a/pkgs/development/libraries/java/hsqldb/default.nix b/pkgs/development/libraries/java/hsqldb/default.nix
index a2484ce830775..c4f9bf9773020 100644
--- a/pkgs/development/libraries/java/hsqldb/default.nix
+++ b/pkgs/development/libraries/java/hsqldb/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://hsqldb.org";
-    description = "A relational, embedable database management system written in Java and a set of related tools";
+    description = "Relational, embedable database management system written in Java and a set of related tools";
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index f08c860f57f6e..de197b7966ef0 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library that can write a lot of boilerplate for your Java project";
+    description = "Library that can write a lot of boilerplate for your Java project";
     mainProgram = "lombok";
     platforms = lib.platforms.all;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
diff --git a/pkgs/development/libraries/java/rhino/default.nix b/pkgs/development/libraries/java/rhino/default.nix
index e67425208657a..6fb5f8a14c676 100644
--- a/pkgs/development/libraries/java/rhino/default.nix
+++ b/pkgs/development/libraries/java/rhino/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "An implementation of JavaScript written in Java";
+    description = "Implementation of JavaScript written in Java";
 
     longDescription =
       '' Rhino is an open-source implementation of JavaScript written
diff --git a/pkgs/development/libraries/java/smack/default.nix b/pkgs/development/libraries/java/smack/default.nix
index fd263d91d426e..3adfd4c710e2e 100644
--- a/pkgs/development/libraries/java/smack/default.nix
+++ b/pkgs/development/libraries/java/smack/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A XMPP (Jabber) client library for instant messaging and presence";
+    description = "XMPP (Jabber) client library for instant messaging and presence";
     homepage = "http://www.igniterealtime.org/projects/smack/";
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/jbigkit/default.nix b/pkgs/development/libraries/jbigkit/default.nix
index 40a46041caa2c..8678cde4370ae 100644
--- a/pkgs/development/libraries/jbigkit/default.nix
+++ b/pkgs/development/libraries/jbigkit/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.cl.cam.ac.uk/~mgk25/jbigkit/";
-    description = "A software implementation of the JBIG1 data compression standard";
+    description = "Software implementation of the JBIG1 data compression standard";
     license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/jellyfin-ffmpeg/default.nix b/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
index 1b2bd8a3e866e..4498a995a4d7a 100644
--- a/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
+++ b/pkgs/development/libraries/jellyfin-ffmpeg/default.nix
@@ -1,10 +1,11 @@
 { ffmpeg_6-full
 , fetchFromGitHub
+, fetchpatch
 , lib
 }:
 
 let
-  version = "6.0.1-5";
+  version = "6.0.1-6";
 in
 
 (ffmpeg_6-full.override {
@@ -13,13 +14,19 @@ in
     owner = "jellyfin";
     repo = "jellyfin-ffmpeg";
     rev = "v${version}";
-    hash = "sha256-y/J4iBbqtyyMnTb6R3lTVSOQD8oPo8liyVA5GQ5BvmM=";
+    hash = "sha256-jy5LPurjuSIMZlzVZcuaqAwAZunbYc9/6aJf+hna0Kw=";
   };
 }).overrideAttrs (old: {
   pname = "jellyfin-ffmpeg";
 
   # Clobber upstream patches as they don't apply to the Jellyfin fork
-  patches = [];
+  patches = [
+    (fetchpatch {
+      name = "fix_build_failure_due_to_libjxl_version_to_new";
+      url = "https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/75b1a555a70c178a9166629e43ec2f6250219eb2";
+      hash = "sha256-+2kzfPJf5piim+DqEgDuVEEX5HLwRsxq0dWONJ4ACrU=";
+    })
+  ];
 
   configureFlags = old.configureFlags ++ [
     "--extra-version=Jellyfin"
diff --git a/pkgs/development/libraries/jemalloc/default.nix b/pkgs/development/libraries/jemalloc/default.nix
index 902c0d77739c2..7541e6b0c1a31 100644
--- a/pkgs/development/libraries/jemalloc/default.nix
+++ b/pkgs/development/libraries/jemalloc/default.nix
@@ -26,6 +26,12 @@ stdenv.mkDerivation rec {
       url = "https://github.com/jemalloc/jemalloc/commit/d00ecee6a8dfa90afcb1bbc0858985c17bef6559.patch";
       hash = "sha256-N5i4IxGJ4SSAgFiq5oGRnrNeegdk2flw9Sh2mP0yl4c=";
     })
+    # fix linking with libc++, can be removed in the next update (after 5.3.0).
+    # https://github.com/jemalloc/jemalloc/pull/2348
+    (fetchpatch {
+      url = "https://github.com/jemalloc/jemalloc/commit/4422f88d17404944a312825a1aec96cd9dc6c165.patch";
+      hash = "sha256-dunkE7XHzltn5bOb/rSHqzpRniAFuGubBStJeCxh0xo=";
+    })
   ];
 
   configureFlags =
diff --git a/pkgs/development/libraries/jitterentropy/default.nix b/pkgs/development/libraries/jitterentropy/default.nix
index edf46fa4f51b7..fb6dbcea64782 100644
--- a/pkgs/development/libraries/jitterentropy/default.nix
+++ b/pkgs/development/libraries/jitterentropy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jitterentropy";
-  version = "3.4.1";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "smuellerDD";
     repo = "jitterentropy-library";
     rev = "v${version}";
-    hash = "sha256-GSGlupTN1o8BbTN287beqYSRFDaXOk6SlIRvtjpvmhQ=";
+    hash = "sha256-USc9e/GyajJe58/Z201AO3Y+t3IPOOdJAaifEwvgm2Q=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/jose/default.nix b/pkgs/development/libraries/jose/default.nix
index 967886ae86c6d..39e10e2dbebd4 100644
--- a/pkgs/development/libraries/jose/default.nix
+++ b/pkgs/development/libraries/jose/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jose";
-  version = "13";
+  version = "14";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XkYvBjPmwhwo2p8/jTXazHRAgSGkI7LTLUlqbxMxlys=";
+    hash = "sha256-rMNPJaCtVpbwIkMQzBNpmRct6S/NelTwjmsuB0RP6R8=";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja asciidoc ];
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index ab3d2be6f0102..943712e2b8dba 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A JSON implementation in C";
+    description = "JSON implementation in C";
     longDescription = ''
       JSON-C implements a reference counting object model that allows you to
       easily construct JSON objects in C, output them as JSON formatted strings
diff --git a/pkgs/development/libraries/json-fortran/default.nix b/pkgs/development/libraries/json-fortran/default.nix
index 410a767f99919..52ec487c06369 100644
--- a/pkgs/development/libraries/json-fortran/default.nix
+++ b/pkgs/development/libraries/json-fortran/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "json-fortran";
-  version = "8.4.0";
+  version = "9.0.1";
 
   src = fetchFromGitHub {
     owner = "jacobwilliams";
     repo = pname;
     rev = version;
-    hash = "sha256-qy3CK8Op3YVNpXjq60UYq9V9qWBEXpX/li/lYxXW9Fk=";
+    hash = "sha256-nhT2zLyt3ORi35h9KzOiIuD50GGUCZ/Z5SX8UF3rqQs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/json-glib/default.nix b/pkgs/development/libraries/json-glib/default.nix
index 1f36ccdc051d4..9a04f8b1f4ef8 100644
--- a/pkgs/development/libraries/json-glib/default.nix
+++ b/pkgs/development/libraries/json-glib/default.nix
@@ -97,7 +97,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library providing (de)serialization support for the JavaScript Object Notation (JSON) format";
+    description = "Library providing (de)serialization support for the JavaScript Object Notation (JSON) format";
     homepage = "https://gitlab.gnome.org/GNOME/json-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/jsoncpp/default.nix b/pkgs/development/libraries/jsoncpp/default.nix
index 59572afc627ce..ea530a955f75d 100644
--- a/pkgs/development/libraries/jsoncpp/default.nix
+++ b/pkgs/development/libraries/jsoncpp/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/open-source-parsers/jsoncpp";
-    description = "A C++ library for interacting with JSON";
+    description = "C++ library for interacting with JSON";
     maintainers = with maintainers; [ ttuegel cpages ];
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/jsonrpc-glib/default.nix b/pkgs/development/libraries/jsonrpc-glib/default.nix
index 855c3cfcf2cd2..e17498031da6e 100644
--- a/pkgs/development/libraries/jsonrpc-glib/default.nix
+++ b/pkgs/development/libraries/jsonrpc-glib/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to communicate using the JSON-RPC 2.0 specification";
+    description = "Library to communicate using the JSON-RPC 2.0 specification";
     homepage = "https://gitlab.gnome.org/GNOME/jsonrpc-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/kcp/default.nix b/pkgs/development/libraries/kcp/default.nix
index 29bab0087989a..2468ba22d3051 100644
--- a/pkgs/development/libraries/kcp/default.nix
+++ b/pkgs/development/libraries/kcp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A Fast and Reliable ARQ Protocol";
+    description = "Fast and Reliable ARQ Protocol";
     homepage = "https://github.com/skywind3000/kcp";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/kdb/default.nix b/pkgs/development/libraries/kdb/default.nix
index d3688442f898d..3364d4926873f 100644
--- a/pkgs/development/libraries/kdb/default.nix
+++ b/pkgs/development/libraries/kdb/default.nix
@@ -41,7 +41,7 @@ mkDerivation rec {
   propagatedBuildInputs = [ qtbase ];
 
   meta = with lib; {
-    description = "A database connectivity and creation framework for various database vendors";
+    description = "Database connectivity and creation framework for various database vendors";
     mainProgram = "kdb3_sqlite3_dump";
     license = licenses.lgpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/kddockwidgets/default.nix b/pkgs/development/libraries/kddockwidgets/default.nix
index a1020fe986797..a5cf5cb6fef2d 100644
--- a/pkgs/development/libraries/kddockwidgets/default.nix
+++ b/pkgs/development/libraries/kddockwidgets/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "KDDockWidgets";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-V4BMD1kYyaMlqNBo8otpV5yBt/PICzhBTkEMX9N3lbk=";
+    sha256 = "sha256-gKtW4UjeMUVzBIbV3GuSMtgzIy+N/VlaCc7PPZEHmmg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/kde-frameworks/baloo.nix b/pkgs/development/libraries/kde-frameworks/baloo.nix
index 2a264d47c24c9..c7a813058454c 100644
--- a/pkgs/development/libraries/kde-frameworks/baloo.nix
+++ b/pkgs/development/libraries/kde-frameworks/baloo.nix
@@ -1,6 +1,5 @@
 { mkDerivation
 , lib
-, fetchpatch
 , extra-cmake-modules
 , kauth
 , kconfig
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index 358803e37355d..256d90e6ac7e1 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.115/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.116/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/kde-frameworks/kded.nix b/pkgs/development/libraries/kde-frameworks/kded.nix
index 02364ba72f367..e369b8fbae41f 100644
--- a/pkgs/development/libraries/kde-frameworks/kded.nix
+++ b/pkgs/development/libraries/kde-frameworks/kded.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, propagate, wrapGAppsHook,
+  mkDerivation, lib, propagate, wrapGAppsHook3,
   extra-cmake-modules, kdoctools,
   gsettings-desktop-schemas, kconfig, kcoreaddons, kcrash, kdbusaddons,
   kservice, qtbase,
@@ -7,7 +7,7 @@
 
 mkDerivation {
   pname = "kded";
-  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook3 ];
   buildInputs = [
     gsettings-desktop-schemas kconfig kcoreaddons kcrash kdbusaddons
     kservice qtbase
diff --git a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
index 6e554b5faaadf..0e1633b2f1c12 100644
--- a/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
+++ b/pkgs/development/libraries/kde-frameworks/knewstuff/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
   kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
diff --git a/pkgs/development/libraries/kde-frameworks/krunner.nix b/pkgs/development/libraries/kde-frameworks/krunner.nix
index a56e56a2fe092..1ed8619a2fa27 100644
--- a/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
   qtdeclarative, solid, threadweaver, kwindowsystem
diff --git a/pkgs/development/libraries/kde-frameworks/purpose.nix b/pkgs/development/libraries/kde-frameworks/purpose.nix
index ee4e9584641c1..cdc8d4d32d23f 100644
--- a/pkgs/development/libraries/kde-frameworks/purpose.nix
+++ b/pkgs/development/libraries/kde-frameworks/purpose.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, extra-cmake-modules, intltool, qtbase
 , accounts-qt, qtdeclarative, kaccounts-integration, kconfig, kcoreaddons, ki18n, kio, kirigami2
-, fetchpatch, signond
+, signond
 }:
 
 mkDerivation {
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index 713e43920e7c9..320ad4796e9f6 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/attica-5.115.0.tar.xz";
-      sha256 = "0n54m7sx2nagplr6ps9b3cvwy6cg0yqrba5xl90j1gg4ya14j1db";
-      name = "attica-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/attica-5.116.0.tar.xz";
+      sha256 = "1shzs985fimd15w2d9cxpcbq7by33v05hb00rp79k6cqvp20f4b8";
+      name = "attica-5.116.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/baloo-5.115.0.tar.xz";
-      sha256 = "0261a7c81pavnq27ww5q5z8acpl18zr2nnfm2wx2zcy4xww21jwm";
-      name = "baloo-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/baloo-5.116.0.tar.xz";
+      sha256 = "0g33rjvri7xj336zs8mwvrj8ldfpbhjjnmz4a5q2m2hwww0rmxbf";
+      name = "baloo-5.116.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/bluez-qt-5.115.0.tar.xz";
-      sha256 = "18b4pjjgr9fbmdyacz8p078j6wm5vk5lkx18jikhrgkm84ad6zxx";
-      name = "bluez-qt-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/bluez-qt-5.116.0.tar.xz";
+      sha256 = "09wn0dp3f1a3zw8zfnvwi181zz8izdpwsm3ka7ncpx44d46r1aqv";
+      name = "bluez-qt-5.116.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/breeze-icons-5.115.0.tar.xz";
-      sha256 = "1f89dw05mfmlir8dvabnvxwszq1wqnrrgb7yw54wh7cnxah8gz64";
-      name = "breeze-icons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/breeze-icons-5.116.0.tar.xz";
+      sha256 = "1lpkbfvpyxqbdv6l9ywck6gri9xhikwam5d3005cw1jn2g8glhdx";
+      name = "breeze-icons-5.116.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/extra-cmake-modules-5.115.0.tar.xz";
-      sha256 = "1vj5rsq029qjp1by9cal715yza180lcxv1m0jn4nnljplbv3agpf";
-      name = "extra-cmake-modules-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/extra-cmake-modules-5.116.0.tar.xz";
+      sha256 = "026d4c5vmv1cjj8qgbjbzpvyhmjwmlinadsxhhgify7ldqdd3xp8";
+      name = "extra-cmake-modules-5.116.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/frameworkintegration-5.115.0.tar.xz";
-      sha256 = "0vk3j6ivwk2y9jik54jxa4wm1c9179yrapia979a48zi5ibrlabf";
-      name = "frameworkintegration-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/frameworkintegration-5.116.0.tar.xz";
+      sha256 = "1hz2bpshk1ccjzins7d0g674dzbf1gz0zzm58yk4a1np6i5yww1g";
+      name = "frameworkintegration-5.116.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kactivities-5.115.0.tar.xz";
-      sha256 = "06wxmg085czrx2cyds7gwgdksvy5nchyshkgr2lxck20asjgn5p0";
-      name = "kactivities-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kactivities-5.116.0.tar.xz";
+      sha256 = "0zbjs4sysfaf6zsdnfmkbpxsc2bg5ncnhkzfn1dyhrsqk68lwz3s";
+      name = "kactivities-5.116.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kactivities-stats-5.115.0.tar.xz";
-      sha256 = "0rp6j4nr4y5ijf4khsha98pvp8zy6fzjzhdjyj9z67jjpb045sd4";
-      name = "kactivities-stats-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kactivities-stats-5.116.0.tar.xz";
+      sha256 = "1sswyynpkmbnr0w3as5yk3hpzafl3wrcxyhfga3gkxjw8q1f2jr4";
+      name = "kactivities-stats-5.116.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kapidox-5.115.0.tar.xz";
-      sha256 = "0kp1z0cz60d6sb2wcqa3wawvqqijjyndyn21l2lrrdfz256m5fil";
-      name = "kapidox-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kapidox-5.116.0.tar.xz";
+      sha256 = "0ypp7g8zbyvjb8mihg9pqis9ljqx693z4j6bwr467j7h654q9qyq";
+      name = "kapidox-5.116.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/karchive-5.115.0.tar.xz";
-      sha256 = "0xdlsqkxsn3jjkbklhyys8sbbygg5f5qnfls5f0gk8gcig2m36g8";
-      name = "karchive-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/karchive-5.116.0.tar.xz";
+      sha256 = "02m3vvw58qsgmaps184xwy97bg4pgjl4i1gjwzn66h5qf34y6qqn";
+      name = "karchive-5.116.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kauth-5.115.0.tar.xz";
-      sha256 = "18jsygwkd4irdsz2lpdmsnjpj3dcz9fzajknl5z4csn6xxmzbaak";
-      name = "kauth-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kauth-5.116.0.tar.xz";
+      sha256 = "1x0zd6lqv855jkihxpzhxs732qiva31kzjah9hf2j6xaq0dfxqdc";
+      name = "kauth-5.116.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kbookmarks-5.115.0.tar.xz";
-      sha256 = "1h6yihcc0jczi51imw4a3zvyglvvzaksc1yjam44via84nli2kqn";
-      name = "kbookmarks-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kbookmarks-5.116.0.tar.xz";
+      sha256 = "01cg6qsfjr59ncrxwmiid36cpzynjwxgfydgk23j29bk9gjml2jl";
+      name = "kbookmarks-5.116.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcalendarcore-5.115.0.tar.xz";
-      sha256 = "18sl7yg8xsnba6aar7q1w31jsxsmhz9d4hv67m1w86qv8wn8gn2r";
-      name = "kcalendarcore-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcalendarcore-5.116.0.tar.xz";
+      sha256 = "0g5576snwfxf8ap447b26q3kiy9siq63aj29xbkiq2vj7acylmrg";
+      name = "kcalendarcore-5.116.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcmutils-5.115.0.tar.xz";
-      sha256 = "07jx2yc820d9xj5pcywx7nwccm5f1r7wjgqvjr6l3d9irjpm54q3";
-      name = "kcmutils-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcmutils-5.116.0.tar.xz";
+      sha256 = "06aw308wv3fyl1g60n1i2hxx74f0isdsfwwzidsjk79danyqsa4i";
+      name = "kcmutils-5.116.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcodecs-5.115.0.tar.xz";
-      sha256 = "1gq4335w4bxz0al7diql5mlam7vgvvwdvm0iy3hqr6czk135wf4l";
-      name = "kcodecs-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcodecs-5.116.0.tar.xz";
+      sha256 = "03k8scmswxhx7bng5fh3niq84gqzksb19sf6ah4bdz6aj4pd52d4";
+      name = "kcodecs-5.116.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcompletion-5.115.0.tar.xz";
-      sha256 = "1iqdf67mcmf1vq0z2c13gzvrssywrp8nqa4lwshwi2amag4sad5i";
-      name = "kcompletion-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcompletion-5.116.0.tar.xz";
+      sha256 = "1sh9gpbi65mbs8bszrxh7a9ifgcr7z5jrhsac3670905a6mdmfjj";
+      name = "kcompletion-5.116.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kconfig-5.115.0.tar.xz";
-      sha256 = "04l6g2qy2qc3ykwvx2gbikgsh9n3rnz05m72n47lmianvwm2nsdx";
-      name = "kconfig-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kconfig-5.116.0.tar.xz";
+      sha256 = "03j7cw0c05rpxrnblrc5ziq7vy1v193l5gj9bix1dakkj9hf6p9c";
+      name = "kconfig-5.116.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kconfigwidgets-5.115.0.tar.xz";
-      sha256 = "0nwmgva1zwfbr36slhziq4a84nhh4swckm6ajcg6imksv41k5nwd";
-      name = "kconfigwidgets-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kconfigwidgets-5.116.0.tar.xz";
+      sha256 = "1f65ayyyadiajf7xgf7369rly2yzigh6gqlb0nkgg8cp2bq9fmp4";
+      name = "kconfigwidgets-5.116.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcontacts-5.115.0.tar.xz";
-      sha256 = "1xwp77nzcjxrk97mqzyfc5b1zvv9s76fvhv6fb8wnmm80l21w7r7";
-      name = "kcontacts-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcontacts-5.116.0.tar.xz";
+      sha256 = "1jxlar0n0jjwd287ly8d3fcb3f73ay79b70mk4j3dxsjizngs1zi";
+      name = "kcontacts-5.116.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcoreaddons-5.115.0.tar.xz";
-      sha256 = "1jcriqndsbi1jpvb3pn2hs9cnq66v9qgpilsa7lqvnp9wg9y3l4c";
-      name = "kcoreaddons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcoreaddons-5.116.0.tar.xz";
+      sha256 = "0x1inzglgpz2z2w25bp46hzjv74gp3vyd3i911xczz7wd30b9yyy";
+      name = "kcoreaddons-5.116.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kcrash-5.115.0.tar.xz";
-      sha256 = "1b83dvmflvjiqhjz6i1b007ah4sg85d57mmz3m9zdyjicfygbsmj";
-      name = "kcrash-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kcrash-5.116.0.tar.xz";
+      sha256 = "0rg8g50y44gq3hjl5fc36siyyq3czd2zrf4c70fspk33svwldlw1";
+      name = "kcrash-5.116.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kdav-5.115.0.tar.xz";
-      sha256 = "02aqs24q4skh6ngm7bhkqqa3l1xf9bgxdr95v9mgc20hyavy22pv";
-      name = "kdav-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kdav-5.116.0.tar.xz";
+      sha256 = "1lqvllgni9f5j68149cbx2g2ydzlm06cx1rdzs59sh0phjzfshn6";
+      name = "kdav-5.116.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kdbusaddons-5.115.0.tar.xz";
-      sha256 = "0x4vsw43irxy00mvda7kah0d3nrs1vgbimz6d9d2a8rzkf61vizc";
-      name = "kdbusaddons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kdbusaddons-5.116.0.tar.xz";
+      sha256 = "0mlfphk8knbvpyns3ixd8da9zjvsms29mv5z2xgif9y20i5kmdq3";
+      name = "kdbusaddons-5.116.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kdeclarative-5.115.0.tar.xz";
-      sha256 = "0i530dij27g0w8rcqq81bml2dpacgd2czsjcx1dzf9i2x83arv36";
-      name = "kdeclarative-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kdeclarative-5.116.0.tar.xz";
+      sha256 = "0py5x9ia8p7ngk1q3nqwqi1b9zv6jdxc23qam8xyqbfjqcm9qzwy";
+      name = "kdeclarative-5.116.0.tar.xz";
     };
   };
   kded = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kded-5.115.0.tar.xz";
-      sha256 = "1cr3mx5lkhp4zsr85n0cl5m9p1zgmwlvapdpyb161z5k6402mhla";
-      name = "kded-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kded-5.116.0.tar.xz";
+      sha256 = "0gd0dy748zw12xksk7xmv1xkra2g9s3av4d0i1d7dbb6z1ap5djw";
+      name = "kded-5.116.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kdelibs4support-5.115.0.tar.xz";
-      sha256 = "051ga7jn18nwiybvvrkkfrw9csgi35g9wd4gajkzykq4r4bgm8kj";
-      name = "kdelibs4support-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kdelibs4support-5.116.0.tar.xz";
+      sha256 = "1r6120fd4i0nvl0d8i2xb7wsr3gp0i6r0qns2ql2c47b8v8mv4gd";
+      name = "kdelibs4support-5.116.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kdesignerplugin-5.115.0.tar.xz";
-      sha256 = "1s788wz6i3ngk44a0fy9cp0vvidgp5f4yid470v85jfkpm1nxv50";
-      name = "kdesignerplugin-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kdesignerplugin-5.116.0.tar.xz";
+      sha256 = "0pkkpa2rxqx4rlvg70v70yddhc9ivhhdpk3pp64h87g5ia24zkz3";
+      name = "kdesignerplugin-5.116.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kdesu-5.115.0.tar.xz";
-      sha256 = "0qlbd7q69pdqc46ydpmn63sxac1lf9v0rllkj5ir49607fbbgqh3";
-      name = "kdesu-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kdesu-5.116.0.tar.xz";
+      sha256 = "1jyqw384h8259zma86bz0pjmqzd0mm2p9nlmpk53zqljzy2cij81";
+      name = "kdesu-5.116.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kdewebkit-5.115.0.tar.xz";
-      sha256 = "039wcylnz1wx26r4d5bppzx51gknv3fj2xvw1mb5d29036dp9q1h";
-      name = "kdewebkit-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kdewebkit-5.116.0.tar.xz";
+      sha256 = "0s7399kbndcz80hyckh02diinh1gbp7nndllwz05vwarq4jvm1cx";
+      name = "kdewebkit-5.116.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kdnssd-5.115.0.tar.xz";
-      sha256 = "1psjrvxnaw2r9fh2kikpbw71scch0b7vjdiwv0a8mhyr6g163qxj";
-      name = "kdnssd-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kdnssd-5.116.0.tar.xz";
+      sha256 = "1z2xyir6xvyyq3j48wmra3zka6hlpjr2rnfc4gbijl0aazv6srrm";
+      name = "kdnssd-5.116.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kdoctools-5.115.0.tar.xz";
-      sha256 = "0hz25yfz64qabmd9gw8344ljzi8658483a3194rlbbswyw80ksai";
-      name = "kdoctools-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kdoctools-5.116.0.tar.xz";
+      sha256 = "1cvb39ggc79fpfa84rshm6vl10h0avn2rf6qxaxb41r9887ad81n";
+      name = "kdoctools-5.116.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kemoticons-5.115.0.tar.xz";
-      sha256 = "163p3mbmhzd0pzggh13kj0qrl7bid84pabb8p59w42f3rhzdv3fb";
-      name = "kemoticons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kemoticons-5.116.0.tar.xz";
+      sha256 = "0lv8cb7h7v4fbf8vyrsf9kygnhjxznf5sj92nv5is5gy0wdk8qxc";
+      name = "kemoticons-5.116.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kfilemetadata-5.115.0.tar.xz";
-      sha256 = "03694d8sn0c5629llw6ikpcs0x7gj4nd08c6jh4zca4g0v3hxzgy";
-      name = "kfilemetadata-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kfilemetadata-5.116.0.tar.xz";
+      sha256 = "13yfcy02rmhrhf8lxv7smk1n9rg1ywsh60hwzm94b8hq9a62qp0r";
+      name = "kfilemetadata-5.116.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kglobalaccel-5.115.0.tar.xz";
-      sha256 = "1hxcd6pbymmq7z8bwbhyykgd3r54gkwzlvg896ix9phdgm2dacy5";
-      name = "kglobalaccel-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kglobalaccel-5.116.0.tar.xz";
+      sha256 = "0rlqclaq4szzqa2kz7c9ad81rm0b2byr806l5v0xz968h8jampzn";
+      name = "kglobalaccel-5.116.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kguiaddons-5.115.0.tar.xz";
-      sha256 = "0qpj7yvvxv8dswmg8m4jgd6hk2r5m3702cvhgagqyb0qx8vdlvag";
-      name = "kguiaddons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kguiaddons-5.116.0.tar.xz";
+      sha256 = "1rpw6glgchf7qs4rh7jxy9sas73708yllba1q880gdicn1nda42w";
+      name = "kguiaddons-5.116.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kholidays-5.115.0.tar.xz";
-      sha256 = "1921nr4k758v4ci7rz1napsg6y2spv8z00qqjrqmka0grwrdgw6d";
-      name = "kholidays-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kholidays-5.116.0.tar.xz";
+      sha256 = "1h7x2ldi94zbclas4kyga4bvnp1gk0k84fv9015rl25x9nga33w9";
+      name = "kholidays-5.116.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/khtml-5.115.0.tar.xz";
-      sha256 = "0q6gx0xwq98cdqby4k4cgfqm4m7n915mfanf5vlhalld01jrjakl";
-      name = "khtml-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/khtml-5.116.0.tar.xz";
+      sha256 = "13nc5dcj536xyd87prla30mpbzsyjnylb34a979qn7qvpr0zn8c9";
+      name = "khtml-5.116.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.115.1";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/ki18n-5.115.1.tar.xz";
-      sha256 = "0x40z8jkr7bvn4fjnqrdqf0914286zbxpcn7bdqg2rqr982ksdvy";
-      name = "ki18n-5.115.1.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/ki18n-5.116.0.tar.xz";
+      sha256 = "1kbb3rq85hbw1h5bd1w9cmdgz8bdg47w9b133ha41qlhh1i50clk";
+      name = "ki18n-5.116.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kiconthemes-5.115.0.tar.xz";
-      sha256 = "0bwxf4491hi0qz000ymajshhzxnqvq4a1bdb7mmvzf3byx5i69b9";
-      name = "kiconthemes-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kiconthemes-5.116.0.tar.xz";
+      sha256 = "0q859zbjys7lajwpgl78ji4dif7cxdxirqb8b6f7k7bk53ignvly";
+      name = "kiconthemes-5.116.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kidletime-5.115.0.tar.xz";
-      sha256 = "0mmf6ybs4ajhkphdxwxnwyf3d3skjz88g2cqwvgbq3bldam2k04x";
-      name = "kidletime-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kidletime-5.116.0.tar.xz";
+      sha256 = "15s9nxpkqy3i182xk82bpl92iaqcilsckja7301854fw6ppl8vvh";
+      name = "kidletime-5.116.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kimageformats-5.115.0.tar.xz";
-      sha256 = "10vjmbhy6p4vks5wmrn91vjdi3sykjil4kp1ph88nszqcq6h4qcz";
-      name = "kimageformats-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kimageformats-5.116.0.tar.xz";
+      sha256 = "174g32s3m7irzv2h3lk7bmp3yfc7zrmp7lmp02n3m5ppbv6rn4bw";
+      name = "kimageformats-5.116.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kinit-5.115.0.tar.xz";
-      sha256 = "1bbxcbd6g1jhh5c2i127xzn77q3a4ia2180kymc6wyiqa3z7vj3q";
-      name = "kinit-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kinit-5.116.0.tar.xz";
+      sha256 = "0b5w7pk7wbyzix2jvn3yk89f9r620wrx55v3cgvj4p83c73ar974";
+      name = "kinit-5.116.0.tar.xz";
     };
   };
   kio = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kio-5.115.0.tar.xz";
-      sha256 = "02zrixb73ranj08xk14m5pa198w54h3c3dqhvgrwwgw8b9xkhlqg";
-      name = "kio-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kio-5.116.0.tar.xz";
+      sha256 = "0nhins85cqlr3xz4xi0g54rshagphin3pjjx2qxs0fcwcpb1kdzg";
+      name = "kio-5.116.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kirigami2-5.115.0.tar.xz";
-      sha256 = "1fd2q08a40xy5rv297q7084hbkgfkyq05k8y9gpk77460px45qhm";
-      name = "kirigami2-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kirigami2-5.116.0.tar.xz";
+      sha256 = "1q69b1qd2qs9hpwgw0y0ig93ag41l50dghribsnqhi0c9aklsn4b";
+      name = "kirigami2-5.116.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kitemmodels-5.115.0.tar.xz";
-      sha256 = "037gd15y93m4rcjxc6r4y5l3mgalyg6ryib837jcv0dv825x3ypz";
-      name = "kitemmodels-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kitemmodels-5.116.0.tar.xz";
+      sha256 = "1wcznkj24553spkl202zwifk6hgrvdd60j3y47jp2m6zpadywz2k";
+      name = "kitemmodels-5.116.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kitemviews-5.115.0.tar.xz";
-      sha256 = "1nb58pz1xhg7nyxjb22w6j60cjf34qpwqbg5ycy6n4n5wp15nbkf";
-      name = "kitemviews-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kitemviews-5.116.0.tar.xz";
+      sha256 = "1sq1kvqb9g0gzlyfyix9xsjq6wl2i1s3mfqkpdc0rdns13sgn3kc";
+      name = "kitemviews-5.116.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kjobwidgets-5.115.0.tar.xz";
-      sha256 = "0q9h9sz7xwv0zdvszqmfwq3zv0w12gci88jprwp5gk09sgl7pqyf";
-      name = "kjobwidgets-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kjobwidgets-5.116.0.tar.xz";
+      sha256 = "11xy7n2sz340wili21ia92ihfq76irh8c7db8x1qsgqq09ypzhza";
+      name = "kjobwidgets-5.116.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kjs-5.115.0.tar.xz";
-      sha256 = "0ch42gwl9py7bcrx8liryp2w2sz6c46c7r6m44xg8sjqf00f1x4w";
-      name = "kjs-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kjs-5.116.0.tar.xz";
+      sha256 = "1dz1v5gizjywp452q98r4ka6iafa3b3c24ck8jv1xcym64zg7d4z";
+      name = "kjs-5.116.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kjsembed-5.115.0.tar.xz";
-      sha256 = "0l9i7rjjbdllzbcxb1wmg8vspcjy5jiai87kkqhy873yrhfsrbpn";
-      name = "kjsembed-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kjsembed-5.116.0.tar.xz";
+      sha256 = "0zlc10q8kj6daajhhb07d40jpkwpjd9v5f4ifynahvix85lbl92k";
+      name = "kjsembed-5.116.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kmediaplayer-5.115.0.tar.xz";
-      sha256 = "1ydadms12xhjxkm5c7shk7ssw327nkv3qlg5rn9bbzq35nc79llm";
-      name = "kmediaplayer-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kmediaplayer-5.116.0.tar.xz";
+      sha256 = "04zb2dvc8l7l2h093yydndphkjv98yffqyimj5vn97dd2r75346d";
+      name = "kmediaplayer-5.116.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/knewstuff-5.115.0.tar.xz";
-      sha256 = "1zqwblssr03kdk9swsc4jqmzgfyixrhby05mb0df07hdh29938cb";
-      name = "knewstuff-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/knewstuff-5.116.0.tar.xz";
+      sha256 = "02n7429ldkyyzbk9rbr9h4ss80zhc3vnir29q2yksyhcyqkkjc42";
+      name = "knewstuff-5.116.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/knotifications-5.115.0.tar.xz";
-      sha256 = "0hh6ay8nfm1ak6w74wdhwixxjdpywg7qrckf694hjmxvpgzp30pv";
-      name = "knotifications-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/knotifications-5.116.0.tar.xz";
+      sha256 = "0jxld7f82psa48r0n9qv1cks6w1vd6krjnyb4mw68vgm38030na8";
+      name = "knotifications-5.116.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/knotifyconfig-5.115.0.tar.xz";
-      sha256 = "1mh8phfixddi1h06kd42xfmdxgd2g9cqq8d1h9kp2vw5g4i9hiq5";
-      name = "knotifyconfig-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/knotifyconfig-5.116.0.tar.xz";
+      sha256 = "0zwrcdl565nlzf6q2zljq6xn8929frrhqr8jlmb6kcv5i93yals0";
+      name = "knotifyconfig-5.116.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kpackage-5.115.0.tar.xz";
-      sha256 = "0zbw8akrhx4g8sdlbh02qjwbxg0mzk7nbs5isrhi3s34xhzqg03y";
-      name = "kpackage-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kpackage-5.116.0.tar.xz";
+      sha256 = "1gpixfkyaflmzk8lkxnknydm4x6w5339yrgs2n9g229bqy2v21ap";
+      name = "kpackage-5.116.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kparts-5.115.0.tar.xz";
-      sha256 = "153xrci1fp7y4iby8d8izx70572h2rj8psf3xbpx6hqqsxwk7bd2";
-      name = "kparts-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kparts-5.116.0.tar.xz";
+      sha256 = "0czrlqh5cxnj1mlbz839c7hifhnpzl476d92lv4hxji50wnjlfqr";
+      name = "kparts-5.116.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kpeople-5.115.0.tar.xz";
-      sha256 = "0bvijsd14r153x2fjjk8slznwdxlxb4s3vwdfbimhp8vxln83hdq";
-      name = "kpeople-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kpeople-5.116.0.tar.xz";
+      sha256 = "1w369xwvwhqizbyd2hhpqfy3i6zfnsmwvhvk6ib5xckf44gi8zbl";
+      name = "kpeople-5.116.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kplotting-5.115.0.tar.xz";
-      sha256 = "1wz1y32y2lfhjbwz9lz721w1rdlwqb19qfg2zkj15j64m5s5qvl3";
-      name = "kplotting-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kplotting-5.116.0.tar.xz";
+      sha256 = "0yg55dvhh41xq14gwpdyxhm75ci1dmm4gac1x2jxdnfmrkr06dxw";
+      name = "kplotting-5.116.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kpty-5.115.0.tar.xz";
-      sha256 = "06alh2i1j2k07rdxdm6rx1ajvd1355sz4nh1ba0a0vr6ic306k44";
-      name = "kpty-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kpty-5.116.0.tar.xz";
+      sha256 = "0c26y3c4kkkyk5vlg6vkwb90yddcxbzqcg80034wfragahi66kxd";
+      name = "kpty-5.116.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kquickcharts-5.115.0.tar.xz";
-      sha256 = "1fv64m86s5srcdqf37blhz3fdf7zx1z4l3xm0cc6f0xgwhfdhy5a";
-      name = "kquickcharts-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kquickcharts-5.116.0.tar.xz";
+      sha256 = "1bd20kpypji6053fwn5a1b41rjf7r1b3wk85swb0xlmm2kji236j";
+      name = "kquickcharts-5.116.0.tar.xz";
     };
   };
   kross = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kross-5.115.0.tar.xz";
-      sha256 = "0vqb4kbxlncj90n93akz4m3svhbx4p16mpzaxb9xsc8y8bl2fvz2";
-      name = "kross-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kross-5.116.0.tar.xz";
+      sha256 = "0kxyck1996vs36jx7fd18gmgsxrqh81hfyckd8hxvvsjf61qbjcn";
+      name = "kross-5.116.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/krunner-5.115.0.tar.xz";
-      sha256 = "0agsqs3x218jwmn1237bh70w50l99xyxn1w75md31v6sxszkkqhm";
-      name = "krunner-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/krunner-5.116.0.tar.xz";
+      sha256 = "0h889a4bj7vqhvy9hkqxd9v437zly73phyav10gv5b2l8fgb4zxq";
+      name = "krunner-5.116.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kservice-5.115.0.tar.xz";
-      sha256 = "1zayvj1f95azan48l1mhs9zm8rm7f4s20gpn61qqfn5abvxq7jwv";
-      name = "kservice-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kservice-5.116.0.tar.xz";
+      sha256 = "0sd8yj9a1ja97c515g9shjqyzdz0jd7rn3r06g5659nh2z1w5dsj";
+      name = "kservice-5.116.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/ktexteditor-5.115.0.tar.xz";
-      sha256 = "1hxnwbpwf0bsfxn0g0yd6d2n5i0rf60871n9yyzxn6i7hzbprxll";
-      name = "ktexteditor-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/ktexteditor-5.116.0.tar.xz";
+      sha256 = "0rph5nwp7d02xicjxrqpbz3kjb9kqqa40pp1w81fnq8jgln3hhh5";
+      name = "ktexteditor-5.116.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/ktextwidgets-5.115.0.tar.xz";
-      sha256 = "13lxlc8g6hjk9vnyan12z9fjgzgj50ddf2bz6d2p18y01j68hj33";
-      name = "ktextwidgets-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/ktextwidgets-5.116.0.tar.xz";
+      sha256 = "0lkm27g1dc6vmyjz7jaiqh2z1cfgvzlnk58wcs2bkny05i87x01l";
+      name = "ktextwidgets-5.116.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kunitconversion-5.115.0.tar.xz";
-      sha256 = "0x4fjsh4ms1qnlrsyrlhrkkl56wdmbcq6sqc2pldzxks6f5yp2cz";
-      name = "kunitconversion-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kunitconversion-5.116.0.tar.xz";
+      sha256 = "150w7b2dpgd0kl3nxygni1kvlai5n3xxc1qinkjvcmvyl8lrns7g";
+      name = "kunitconversion-5.116.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kwallet-5.115.0.tar.xz";
-      sha256 = "0gggxbhck1s7sqrhq1px22jiyikprf5rm4h30wlwjh4lr0hzrczj";
-      name = "kwallet-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kwallet-5.116.0.tar.xz";
+      sha256 = "12s4rnybadpcjmw3dvdn68vm369h1yk7yp7mv736mj1brdg8pkhy";
+      name = "kwallet-5.116.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kwayland-5.115.0.tar.xz";
-      sha256 = "0g34nihnim0a20fbsc0fxnpp4wxm8dhw5h8kdp6cm8airvci5d87";
-      name = "kwayland-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kwayland-5.116.0.tar.xz";
+      sha256 = "1n5fq0gppx6rzgzkkskd077jygzj7cindb7zwr35yvbg5l69gdc8";
+      name = "kwayland-5.116.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kwidgetsaddons-5.115.0.tar.xz";
-      sha256 = "0mdfp15iv2mqrkwbq2b3g653y4k5gs2s2mx2xg822bnfcx2q8ng3";
-      name = "kwidgetsaddons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kwidgetsaddons-5.116.0.tar.xz";
+      sha256 = "0rcm27wra9s7kzlk67y0f57l0rnh5vb9c2w39h6yjq37y5af1qd8";
+      name = "kwidgetsaddons-5.116.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kwindowsystem-5.115.0.tar.xz";
-      sha256 = "0lsz6pxmkgvpmq76a30wg4p4bj8id6wivnsxncsfag7vnlcnp870";
-      name = "kwindowsystem-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kwindowsystem-5.116.0.tar.xz";
+      sha256 = "0d2kxcpcvpzv07ldd1kb5gjclhmn6gcn5ms0bd8f5g9gflrpdjby";
+      name = "kwindowsystem-5.116.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/kxmlgui-5.115.0.tar.xz";
-      sha256 = "0gbqndnc1w0fjkpazg5p565izb9p5dwsgnhi6n00y8a4shi2swbb";
-      name = "kxmlgui-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/kxmlgui-5.116.0.tar.xz";
+      sha256 = "0h3s3jcmn4pzcfxs4hywrgk92dd5hfx9hzyy14f03c0dafi6crb3";
+      name = "kxmlgui-5.116.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/portingAids/kxmlrpcclient-5.115.0.tar.xz";
-      sha256 = "021j52d62z2lc1hqqw8dhcn7acxmrzn1m643586m06bi2rfgsx40";
-      name = "kxmlrpcclient-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/portingAids/kxmlrpcclient-5.116.0.tar.xz";
+      sha256 = "01svkfj8dgbpf673siamczyznp8gfi2b7s5z48z80s7x884wj11p";
+      name = "kxmlrpcclient-5.116.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/modemmanager-qt-5.115.0.tar.xz";
-      sha256 = "14ahzp2vn7xdhk9wcxfccn80a3ca6a652g1y0whp0szy0pnpajx0";
-      name = "modemmanager-qt-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/modemmanager-qt-5.116.0.tar.xz";
+      sha256 = "103g27fjp8p8fks7gixr75ll0jmvmbyv6j0gyrfpby56yd8m6186";
+      name = "modemmanager-qt-5.116.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/networkmanager-qt-5.115.0.tar.xz";
-      sha256 = "0ygbvbdrxrb1nblgddkwsmvskg48y7ri816w9hbi3wxhjniag4hx";
-      name = "networkmanager-qt-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/networkmanager-qt-5.116.0.tar.xz";
+      sha256 = "0s8vc3qqx76f70vql77hb3nxkn6b3hvzdm6bgcpnnxqhw6j80khb";
+      name = "networkmanager-qt-5.116.0.tar.xz";
     };
   };
   oxygen-icons = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/oxygen-icons-5.115.0.tar.xz";
-      sha256 = "1f54wqz2ypi9qca9rrac3d0rnzzxay1x8cl2zdar2lk4qas304qj";
-      name = "oxygen-icons-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/oxygen-icons-5.116.0.tar.xz";
+      sha256 = "1dcxny00aa0fwc1zbidrfr85apsm3smxb6xrs4n0fm3vav4wm0zw";
+      name = "oxygen-icons-5.116.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/plasma-framework-5.115.0.tar.xz";
-      sha256 = "1xqijqn7a92abp4zk1f8glbrhk4y3jpzblildxq6nix626xk0vrc";
-      name = "plasma-framework-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/plasma-framework-5.116.0.tar.xz";
+      sha256 = "0kwza2n9vbzf9p9dq7j448ynlfgg65918fvxw1n209zmlm6jr4vy";
+      name = "plasma-framework-5.116.0.tar.xz";
     };
   };
   prison = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/prison-5.115.0.tar.xz";
-      sha256 = "1pkk8azcwadiqcmd3g61v076f928dz2037gf5kb46dibpa8gqr49";
-      name = "prison-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/prison-5.116.0.tar.xz";
+      sha256 = "0wpla7daz0whiprg0cgjava1gg3yhx923lp990hq6qmyl4bkd7ys";
+      name = "prison-5.116.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/purpose-5.115.0.tar.xz";
-      sha256 = "03z0vq8h2244mmsj1nkjwkk71dhsisx7aw497i09y7hypggaa1ms";
-      name = "purpose-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/purpose-5.116.0.tar.xz";
+      sha256 = "1g0xip1khclinx3vb835krdsj66jllgbx1fka8d9f55n68d6rmk2";
+      name = "purpose-5.116.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/qqc2-desktop-style-5.115.0.tar.xz";
-      sha256 = "001pnzchm5h73h10p4nbv11gp71n9wnkvr2mxn96qmqw3976aisq";
-      name = "qqc2-desktop-style-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/qqc2-desktop-style-5.116.0.tar.xz";
+      sha256 = "06rd7xzwxfbglz89cma2dy4czfks6ibymmhzq2s8rhs5mx8n6yyg";
+      name = "qqc2-desktop-style-5.116.0.tar.xz";
     };
   };
   solid = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/solid-5.115.0.tar.xz";
-      sha256 = "0yrxfzj2qgm8pc7jqgpxdkbc2p7c2zm6fg3mwdvbh9zgl3vcd8d7";
-      name = "solid-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/solid-5.116.0.tar.xz";
+      sha256 = "04359x7rhhl68xcrspxywxywb900dvlkna5fb442npwiqaxdxhy6";
+      name = "solid-5.116.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/sonnet-5.115.0.tar.xz";
-      sha256 = "054ra5kvmwv6f21cf3fd7x4z0sfar7hm4vi33rn6hzsh0b7q4qfy";
-      name = "sonnet-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/sonnet-5.116.0.tar.xz";
+      sha256 = "0jja3wxk4h62ik5pkf0i5v9012d0qjaljyaab2a9g0j2wy070hcq";
+      name = "sonnet-5.116.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/syndication-5.115.0.tar.xz";
-      sha256 = "0imr1n0jc0lc0jr5r2r7yzbniq6wbmzlsf8l85d8sinb2d1wgdhv";
-      name = "syndication-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/syndication-5.116.0.tar.xz";
+      sha256 = "03aw9l5n5c11iqn069r21pvs4vx0nvqpcl0rzqhr5j0asj9qbmvl";
+      name = "syndication-5.116.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/syntax-highlighting-5.115.0.tar.xz";
-      sha256 = "02nyyb9x53mnzc2bxdwswz3cjsn6alf2k4hmgaw26c14mhcsf8h6";
-      name = "syntax-highlighting-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/syntax-highlighting-5.116.0.tar.xz";
+      sha256 = "19zs3n6cn83rjs0bpyrn6f5r75qcflavf8rb1c2wxj8dpp7cm33g";
+      name = "syntax-highlighting-5.116.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.115.0";
+    version = "5.116.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.115/threadweaver-5.115.0.tar.xz";
-      sha256 = "1f2fs946scr34kvrb5qrw5mg2id25lwysd3q45wkigxmymc8dl4z";
-      name = "threadweaver-5.115.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.116/threadweaver-5.116.0.tar.xz";
+      sha256 = "1q7ax3dhsayz35j0l9pdmarkwfyyy1dsy2crdf5xz8pr5mjxq8wp";
+      name = "threadweaver-5.116.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/kdsoap/default.nix b/pkgs/development/libraries/kdsoap/default.nix
index 5dc6b5f962e1f..2cb371588b870 100644
--- a/pkgs/development/libraries/kdsoap/default.nix
+++ b/pkgs/development/libraries/kdsoap/default.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt-based client-side and server-side SOAP component";
+    description = "Qt-based client-side and server-side SOAP component";
     longDescription = ''
       KD Soap is a Qt-based client-side and server-side SOAP component.
 
diff --git a/pkgs/development/libraries/kerberos/heimdal.nix b/pkgs/development/libraries/kerberos/heimdal.nix
index ff211b6b9c34a..73bb856de4163 100644
--- a/pkgs/development/libraries/kerberos/heimdal.nix
+++ b/pkgs/development/libraries/kerberos/heimdal.nix
@@ -89,6 +89,8 @@ stdenv.mkDerivation {
   ];
 
   configureFlags = [
+    "--with-hdbdir=/var/lib/heimdal"
+
     "--with-libedit-include=${libedit.dev}/include"
     "--with-libedit-lib=${libedit}/lib"
     "--with-berkeley-db-include=${db.dev}/include"
@@ -170,7 +172,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.heimdal.software";
     changelog = "https://github.com/heimdal/heimdal/releases";
-    description = "An implementation of Kerberos 5 (and some more stuff)";
+    description = "Implementation of Kerberos 5 (and some more stuff)";
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ h7x4 ];
diff --git a/pkgs/development/libraries/kerberos/krb5.nix b/pkgs/development/libraries/kerberos/krb5.nix
index bfa2974bdc5b9..8dd68af4fd1d5 100644
--- a/pkgs/development/libraries/kerberos/krb5.nix
+++ b/pkgs/development/libraries/kerberos/krb5.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
     ++ lib.optionals staticOnly [ "--enable-static" "--disable-shared" ]
     ++ lib.optional withLdap "--with-ldap"
     ++ lib.optional withVerto "--with-system-verto"
-    ++ lib.optional stdenv.isFreeBSD ''WARN_CFLAGS=""''
+    ++ lib.optional stdenv.isFreeBSD ''WARN_CFLAGS=''
     ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform)
        [ "krb5_cv_attr_constructor_destructor=yes,yes"
          "ac_cv_func_regcomp=yes"
@@ -74,6 +74,11 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace config/shlib.conf \
         --replace "'ld " "'${stdenv.cc.targetPrefix}ld "
+  ''
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  + ''
+    substituteInPlace ./config/config.guess --replace-fail /usr/bin/uname uname
   '';
 
   libFolders = [ "util" "include" "lib" "build-tools" ];
diff --git a/pkgs/development/libraries/kirigami-addons/default.nix b/pkgs/development/libraries/kirigami-addons/default.nix
index 8cefa310b61ac..403267a4eb56e 100644
--- a/pkgs/development/libraries/kirigami-addons/default.nix
+++ b/pkgs/development/libraries/kirigami-addons/default.nix
@@ -38,7 +38,7 @@ mkDerivation rec {
     homepage = "https://invent.kde.org/libraries/kirigami-addons";
     # https://invent.kde.org/libraries/kirigami-addons/-/blob/b197d98fdd079b6fc651949bd198363872d1be23/src/treeview/treeviewplugin.cpp#L1-5
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ samueldr matthiasbeyer ];
+    maintainers = with maintainers; [ matthiasbeyer ];
   };
 }
 
diff --git a/pkgs/development/libraries/kissfft/default.nix b/pkgs/development/libraries/kissfft/default.nix
index 503cad45fd9e5..df2b9d5561f52 100644
--- a/pkgs/development/libraries/kissfft/default.nix
+++ b/pkgs/development/libraries/kissfft/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A mixed-radix Fast Fourier Transform based up on the KISS principle";
+    description = "Mixed-radix Fast Fourier Transform based up on the KISS principle";
     homepage = "https://github.com/mborgerding/kissfft";
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/kproperty/default.nix b/pkgs/development/libraries/kproperty/default.nix
index 991fd4d27a74b..6187d201f2598 100644
--- a/pkgs/development/libraries/kproperty/default.nix
+++ b/pkgs/development/libraries/kproperty/default.nix
@@ -21,7 +21,7 @@ mkDerivation rec {
   propagatedBuildInputs = [ qtbase ];
 
   meta = with lib; {
-    description = "A property editing framework with editor widget similar to what is known from Qt Designer";
+    description = "Property editing framework with editor widget similar to what is known from Qt Designer";
     license = licenses.lgpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/pkgs/development/libraries/kreport/default.nix b/pkgs/development/libraries/kreport/default.nix
index 1c8470204f803..19f2b89a56e04 100644
--- a/pkgs/development/libraries/kreport/default.nix
+++ b/pkgs/development/libraries/kreport/default.nix
@@ -18,7 +18,7 @@ mkDerivation rec {
   buildInputs = [ qtdeclarative qtwebkit kconfig kcoreaddons kwidgetsaddons kguiaddons kproperty marble python3 ];
 
   meta = with lib; {
-    description = "A framework for creation and generation of reports in multiple formats";
+    description = "Framework for creation and generation of reports in multiple formats";
     license = licenses.lgpl2;
     platforms = platforms.linux;
     maintainers = with maintainers; [ zraexy ];
diff --git a/pkgs/development/libraries/kweathercore/default.nix b/pkgs/development/libraries/kweathercore/default.nix
index 943dee42c0e93..6c957b6fc9e5d 100644
--- a/pkgs/development/libraries/kweathercore/default.nix
+++ b/pkgs/development/libraries/kweathercore/default.nix
@@ -29,7 +29,7 @@ mkDerivation rec {
 
   meta = with lib; {
     license = [ licenses.cc0 ];
-    maintainers = [ maintainers.samueldr ];
+    maintainers = [ ];
     description = ''
       Library to facilitate retrieval of weather information including forecasts and alerts
     '';
diff --git a/pkgs/development/libraries/kyotocabinet/default.nix b/pkgs/development/libraries/kyotocabinet/default.nix
index 37c918785fb9b..5c5ab34bc24cb 100644
--- a/pkgs/development/libraries/kyotocabinet/default.nix
+++ b/pkgs/development/libraries/kyotocabinet/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://dbmx.net/kyotocabinet";
-    description = "A library of routines for managing a database";
+    description = "Library of routines for managing a database";
     license = licenses.gpl3Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/lame/default.nix b/pkgs/development/libraries/lame/default.nix
index 576d166f0ca74..6032e7051b990 100644
--- a/pkgs/development/libraries/lame/default.nix
+++ b/pkgs/development/libraries/lame/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A high quality MPEG Audio Layer III (MP3) encoder";
+    description = "High quality MPEG Audio Layer III (MP3) encoder";
     homepage    = "http://lame.sourceforge.net";
     license     = licenses.lgpl2;
     maintainers = with maintainers; [ codyopel ];
diff --git a/pkgs/development/libraries/languagemachines/frog.nix b/pkgs/development/libraries/languagemachines/frog.nix
index 50167f28a9db2..fffc7d8da23a4 100644
--- a/pkgs/development/libraries/languagemachines/frog.nix
+++ b/pkgs/development/libraries/languagemachines/frog.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch";
+    description = "Tagger-Lemmatizer-Morphological-Analyzer-Dependency-Parser for Dutch";
     homepage    = "https://languagemachines.github.io/frog";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/languagemachines/libfolia.nix b/pkgs/development/libraries/languagemachines/libfolia.nix
index ec7129396540f..76bdcb7b9ba54 100644
--- a/pkgs/development/libraries/languagemachines/libfolia.nix
+++ b/pkgs/development/libraries/languagemachines/libfolia.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ];
 
   meta = with lib; {
-    description = "A C++ API for FoLiA documents; an XML-based linguistic annotation format.";
+    description = "C++ API for FoLiA documents; an XML-based linguistic annotation format";
     mainProgram = "folialint";
     homepage    = "https://proycon.github.io/folia/";
     license     = licenses.gpl3;
diff --git a/pkgs/development/libraries/languagemachines/ticcutils.nix b/pkgs/development/libraries/languagemachines/ticcutils.nix
index 0b5fef292fcff..8fd3749ba1c3e 100644
--- a/pkgs/development/libraries/languagemachines/ticcutils.nix
+++ b/pkgs/development/libraries/languagemachines/ticcutils.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   preConfigure = "sh bootstrap.sh";
 
   meta = with lib; {
-    description = "This module contains useful functions for general use in the TiCC software stack and beyond.";
+    description = "This module contains useful functions for general use in the TiCC software stack and beyond";
     homepage    = "https://github.com/LanguageMachines/ticcutils";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/languagemachines/ucto.nix b/pkgs/development/libraries/languagemachines/ucto.nix
index 6a3e31bcd5536..3bf40e6007e69 100644
--- a/pkgs/development/libraries/languagemachines/ucto.nix
+++ b/pkgs/development/libraries/languagemachines/ucto.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    description = "A rule-based tokenizer for natural language";
+    description = "Rule-based tokenizer for natural language";
     mainProgram = "ucto";
     homepage    = "https://languagemachines.github.io/ucto/";
     license     = licenses.gpl3;
diff --git a/pkgs/development/libraries/languagemachines/uctodata.nix b/pkgs/development/libraries/languagemachines/uctodata.nix
index a274b6193eddc..b1f15df58a173 100644
--- a/pkgs/development/libraries/languagemachines/uctodata.nix
+++ b/pkgs/development/libraries/languagemachines/uctodata.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   preConfigure = "sh bootstrap.sh";
 
   meta = with lib; {
-    description = "A rule-based tokenizer for natural language";
+    description = "Rule-based tokenizer for natural language";
     homepage    = "https://languagemachines.github.io/ucto/";
     license     = licenses.gpl3;
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/lcrq/default.nix b/pkgs/development/libraries/lcrq/default.nix
index 865ec4697326f..3d1818cf779db 100644
--- a/pkgs/development/libraries/lcrq/default.nix
+++ b/pkgs/development/libraries/lcrq/default.nix
@@ -4,7 +4,7 @@
   lib
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "lcrq";
+  pname = "lcrq";
   version = "0.1.2";
 
   src = fetchFromGitea {
@@ -19,7 +19,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://codeberg.org/librecast/lcrq/src/tag/v${finalAttrs.version}/CHANGELOG.md";
-    description = "Librecast RaptorQ library.";
+    description = "Librecast RaptorQ library";
     homepage = "https://librecast.net/lcrq.html";
     license = [ lib.licenses.gpl2 lib.licenses.gpl3 ];
     maintainers = with lib.maintainers; [ albertchae aynish DMills27 jasonodoom jleightcap ];
diff --git a/pkgs/development/libraries/ldb/default.nix b/pkgs/development/libraries/ldb/default.nix
index cdcf21edd799c..6c5fa48affc1a 100644
--- a/pkgs/development/libraries/ldb/default.nix
+++ b/pkgs/development/libraries/ldb/default.nix
@@ -12,6 +12,7 @@
 , docbook_xml_dtd_42
 , cmocka
 , wafHook
+, buildPackages
 , libxcrypt
 , testers
 }:
@@ -62,6 +63,9 @@ stdenv.mkDerivation (finalAttrs: {
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
     "--without-ldb-lmdb"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
@@ -77,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A LDAP-like embedded database";
+    description = "LDAP-like embedded database";
     homepage = "https://ldb.samba.org/";
     license = licenses.lgpl3Plus;
     pkgConfigModules = [ "ldb" ];
diff --git a/pkgs/development/libraries/ldutils/default.nix b/pkgs/development/libraries/ldutils/default.nix
index 0268aa8ce62db..157c86ec553e1 100644
--- a/pkgs/development/libraries/ldutils/default.nix
+++ b/pkgs/development/libraries/ldutils/default.nix
@@ -1,41 +1,41 @@
-{ mkDerivation
-, lib
-, fetchFromGitLab
-, qtcharts
-, qtsvg
-, qmake
+{
+  mkDerivation,
+  lib,
+  fetchFromGitLab,
+  libsForQt5,
+  cmake,
 }:
-
 mkDerivation rec {
   pname = "ldutils";
-  version = "1.10";
+  version = "1.15";
 
   src = fetchFromGitLab {
     owner = "ldutils-projects";
     repo = pname;
-    rev = "v_${version}";
-    sha256 = "sha256-fP+tZY+ayaeuxPvywO/639sNE+IwrxaEJ245q9HTOCU=";
+    rev = "4fc416f694ce888c5bd4c4432a7730bb6260475c";
+    #rev = "v_${version}";
+    sha256 = "sha256-UMDayvz9RlcR4HVJNn7tN4FKbiKAFRSPaK0osA6OGTI=";
   };
 
-  buildInputs = [
+  buildInputs = with libsForQt5.qt5; [
     qtcharts
     qtsvg
   ];
 
   nativeBuildInputs = [
-    qmake
+    cmake
   ];
 
-  qmakeFlags = [ "ldutils.pro" ];
+  qmakeFlags = ["ldutils.pro"];
 
-  LDUTILS_LIB=placeholder "out";
-  LDUTILS_INCLUDE=placeholder "out";
+  LDUTILS_LIB = placeholder "out";
+  LDUTILS_INCLUDE = placeholder "out";
 
   meta = with lib; {
     description = "Headers and link library for other ldutils projects";
     homepage = "https://gitlab.com/ldutils-projects/ldutils";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ sohalt ];
+    maintainers = with maintainers; [sohalt];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/leatherman/default.nix b/pkgs/development/libraries/leatherman/default.nix
index 80038b79442af..d3bd349cc8e01 100644
--- a/pkgs/development/libraries/leatherman/default.nix
+++ b/pkgs/development/libraries/leatherman/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/puppetlabs/leatherman/";
-    description = "A collection of C++ and CMake utility libraries";
+    description = "Collection of C++ and CMake utility libraries";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/lensfun/default.nix b/pkgs/development/libraries/lensfun/default.nix
index efd65c1695d49..82e519f6f100e 100644
--- a/pkgs/development/libraries/lensfun/default.nix
+++ b/pkgs/development/libraries/lensfun/default.nix
@@ -1,7 +1,7 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, pkg-config, glib, zlib, libpng, cmake, libxml2, python3 }:
+{ lib, stdenv, fetchFromGitHub, pkg-config, glib, zlib, libpng, cmake, libxml2, python3 }:
 
 let
-  version = "0.3.3";
+  version = "0.3.4";
   pname = "lensfun";
 
   # Fetch a more recent version of the repo containing a more recent lens
@@ -9,8 +9,8 @@ let
   lensfunDatabase = fetchFromGitHub {
     owner = "lensfun";
     repo = "lensfun";
-    rev = "ec9412d27d5fa8f377848a59c768b12c243cb80d";
-    sha256 = "sha256-/u/3oQzac/dQrgFaiYvzT5uQ108XarkXnA2DByA5sic=";
+    rev = "a1510e6f33ce9bc8b5056a823c6d5bc6b8cba033";
+    sha256 = "sha256-qdONyKk873Tq11M33JmznhJMAGd4dqp5KdXdVhfy/Ak=";
   };
 
 in
@@ -21,19 +21,11 @@ stdenv.mkDerivation {
     owner = "lensfun";
     repo = "lensfun";
     rev = "v${version}";
-    sha256 = "0ixf0f7qv0mc7zrw9w1sb60w833g4rqrfj8cjxwzv2vimqcksccz";
+    sha256 = "sha256-FyYilIz9ssSHG6S02Z2bXy7fjSY51+SWW3v8bm7sLvY=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-compilation-with-clang.patch";
-      url = "https://github.com/lensfun/lensfun/commit/5c2065685a22f19f8138365c0e5acf0be8329c02.patch";
-      sha256 = "sha256-tAOCNL37pKE7hfQCu+hUTKLFnRHWF5Dplqf+GaucG+4=";
-    })
-  ];
-
   # replace database with a more recent snapshot
-  # the mastr branch uses version 2 profiles, while 0.3.3 requires version 1 profiles,
+  # the master branch uses version 2 profiles, while 0.3.3 requires version 1 profiles,
   # so we run the conversion tool the project provides,
   # then untar the verson 1 profiles into the source dir before we build
   prePatch = ''
@@ -45,19 +37,22 @@ stdenv.mkDerivation {
   '';
 
   nativeBuildInputs = [
-    cmake pkg-config
-    python3 python3.pkgs.lxml # For the db converison
+    cmake
+    pkg-config
+    python3
+    python3.pkgs.setuptools
+    python3.pkgs.lxml # For the db converison
   ];
 
   buildInputs = [ glib zlib libpng ];
 
-  cmakeFlags = [ "-DINSTALL_HELPER_SCRIPTS=OFF" ];
+  cmakeFlags = [ "-DINSTALL_HELPER_SCRIPTS=OFF" "-DCMAKE_BUILD_TYPE=RELEASE" ];
 
   meta = with lib; {
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ flokli ];
+    maintainers = with maintainers; [ flokli paperdigits ];
     license = lib.licenses.lgpl3;
-    description = "An opensource database of photographic lenses and their characteristics";
+    description = "Opensource database of photographic lenses and their characteristics";
     homepage = "https://lensfun.github.io";
   };
 }
diff --git a/pkgs/development/libraries/lesstif/default.nix b/pkgs/development/libraries/lesstif/default.nix
index e0bd674e4daad..33c2f220e40df 100644
--- a/pkgs/development/libraries/lesstif/default.nix
+++ b/pkgs/development/libraries/lesstif/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "An open source clone of the Motif widget set";
+    description = "Open source clone of the Motif widget set";
     homepage = "https://lesstif.sourceforge.net";
     platforms = platforms.unix;
     license = with licenses; [ gpl2 lgpl2 ];
diff --git a/pkgs/development/libraries/level-zero/default.nix b/pkgs/development/libraries/level-zero/default.nix
index a098a0ea5b6b3..db99f73cd796b 100644
--- a/pkgs/development/libraries/level-zero/default.nix
+++ b/pkgs/development/libraries/level-zero/default.nix
@@ -2,38 +2,32 @@
 , addOpenGLRunpath
 , cmake
 , fetchFromGitHub
-, fmt_9
-, spdlog
+, intel-compute-runtime
+, openvino
 , stdenv
-, substituteAll
 }:
 
 stdenv.mkDerivation rec {
   pname = "level-zero";
-  version = "1.16.15";
+  version = "1.17.6";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "level-zero";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J+XIqaV1ThD0RqqcyIkzvTWCkIztjkHzGzUbj0qojJs=";
+    hash = "sha256-vtijha0nXHEp5oLnmdtbD80Qa2dgMykZXhQ2yfbk+mY=";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./system-spdlog.diff;
-      spdlog = lib.getDev spdlog;
-    })
-  ];
-
   nativeBuildInputs = [ cmake addOpenGLRunpath ];
 
-  buildInputs = [ fmt_9 ];
-
   postFixup = ''
     addOpenGLRunpath $out/lib/libze_loader.so
   '';
 
+  passthru.tests = {
+    inherit intel-compute-runtime openvino;
+  };
+
   meta = with lib; {
     description = "oneAPI Level Zero Specification Headers and Loader";
     homepage = "https://github.com/oneapi-src/level-zero";
diff --git a/pkgs/development/libraries/level-zero/system-spdlog.diff b/pkgs/development/libraries/level-zero/system-spdlog.diff
deleted file mode 100644
index dee5432d0f7f9..0000000000000
--- a/pkgs/development/libraries/level-zero/system-spdlog.diff
+++ /dev/null
@@ -1,66 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 5e4af80..a54eecb 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -1,6 +1,9 @@
- # Copyright (C) 2020-2024 Intel Corporation
- # SPDX-License-Identifier: MIT
- 
-+add_compile_definitions(SPDLOG_FMT_EXTERNAL)
-+add_compile_definitions(FMT_HEADER_ONLY)
-+
- cmake_minimum_required(VERSION 3.2.0 FATAL_ERROR)
- set(CMAKE_CXX_STANDARD 14)
- set(CMAKE_CXX_STANDARD_REQUIRED ON)
-@@ -58,7 +60,7 @@ elseif(Git_FOUND)
- endif()
- 
- include(FetchContent)
--set(SPDLOG_ROOT "${FETCHCONTENT_BASE_DIR}/spdlog-src")
-+set(SPDLOG_ROOT "@spdlog@")
- 
- # Update other relevant variables to include the patch
- set(PROJECT_VERSION "${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}")
-diff --git a/source/utils/CMakeLists.txt b/source/utils/CMakeLists.txt
-index cb6cfb1..599338a 100644
---- a/source/utils/CMakeLists.txt
-+++ b/source/utils/CMakeLists.txt
-@@ -1,16 +1,6 @@
- # Copyright (C) 2024 Intel Corporation
- # SPDX-License-Identifier: MIT
- 
--include(FetchContent)
--set(SPDLOG_REPO https://github.com/gabime/spdlog)
--set(SPDLOG_TAG v1.13.0)
--FetchContent_Declare(
--    spdlog
--    GIT_REPOSITORY ${SPDLOG_REPO}
--    GIT_TAG ${SPDLOG_TAG}
--)
--FetchContent_makeAvailable(spdlog)
--
- add_library(utils
-   STATIC
-   "logging.h"
-@@ -19,5 +9,5 @@ add_library(utils
- 
- target_include_directories(utils
-   PUBLIC
--  ${FETCHCONTENT_BASE_DIR}/spdlog-src/include
-+  @spdlog@/include
- )
-diff --git a/source/utils/logging.h b/source/utils/logging.h
-index 4aad451..c8c4cc3 100644
---- a/source/utils/logging.h
-+++ b/source/utils/logging.h
-@@ -16,8 +16,8 @@
- #include <string>
- #include <vector>
- 
--#include "spdlog/sinks/basic_file_sink.h"
--#include "spdlog/spdlog.h"
-+#include <spdlog/sinks/basic_file_sink.h>
-+#include <spdlog/spdlog.h>
- 
- namespace loader {
- 
diff --git a/pkgs/development/libraries/libAfterImage/default.nix b/pkgs/development/libraries/libAfterImage/default.nix
deleted file mode 100644
index 828a6891e293c..0000000000000
--- a/pkgs/development/libraries/libAfterImage/default.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook, giflib, libjpeg, libpng, libX11, zlib
-, static ? stdenv.hostPlatform.isStatic
-, withX ? !stdenv.isDarwin }:
-
-stdenv.mkDerivation {
-  pname = "libAfterImage";
-  version = "1.20";
-
-  src = fetchurl {
-    name = "libAfterImage-1.20.tar.bz2";
-    urls = [
-      "https://sourceforge.net/projects/afterstep/files/libAfterImage/1.20/libAfterImage-1.20.tar.bz2/download"
-      "ftp://ftp.afterstep.org/stable/libAfterImage/libAfterImage-1.20.tar.bz2"
-    ];
-    sha256 = "0n74rxidwig3yhr6fzxsk7y19n1nq1f296lzrvgj5pfiyi9k48vf";
-  };
-
-  patches = [
-    # add back --with-gif option
-    (fetchpatch {
-      name = "libafterimage-gif.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-gif.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "16pa94wlqpd7h6mzs4f0qm794yk1xczrwsgf93kdd3g0zbjq3rnr";
-    })
-
-    # fix build with newer giflib
-    (fetchpatch {
-      name = "libafterimage-giflib5-v2.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-giflib5-v2.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "0qwydqy9bm73cg5n3vm97aj4jfi70p7fxqmfbi54vi78z593brln";
-      stripLen = 1;
-    })
-
-    # fix build with newer libpng
-    (fetchpatch {
-      name = "libafterimage-libpng15.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-libpng15.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "1qyvf7786hayasfnnilfbri3p99cfz5wjpbli3gdqj2cvk6mpydv";
-    })
-
-    # fix an ldconfig problem
-    (fetchpatch {
-      name = "libafterimage-makefile.patch";
-      url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/media-libs/libafterimage/files/libafterimage-makefile.in.patch?id=4aa4fca00611b0b3a4007870da43cc5fd63f76c4";
-      sha256 = "1n6fniz6dldms615046yhc4mlg9gb53y4yfia8wfz6szgq5zicj4";
-    })
-
-    # Fix build failure against binutils-2.36:
-    #  https://sourceforge.net/p/afterstep/bugs/5/
-    (fetchpatch {
-      name = "binutils-2.36.patch";
-      url = "https://sourceforge.net/p/afterstep/bugs/5/attachment/libafterimage-binutils-2.36-support.patch";
-      sha256 = "1cfgm2ffwlsmhvvfmrxlglddaigr99k88d5xqva9pkl3mmzy3jym";
-      # workaround '-p0' patchflags below.
-      stripLen = 1;
-    })
-
-    # fix https://github.com/root-project/root/issues/10990
-    (fetchpatch {
-      url = "https://github.com/root-project/root/pull/11243/commits/e177a477b0be05ef139094be1e96a99ece06350a.diff";
-      hash = "sha256-2DQmJGHmATHawl3dk9dExncVe1sXzJQyy4PPwShoLTY=";
-      stripLen = 5;
-    })
-  ];
-  patchFlags = [ "-p0" ];
-
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ giflib libjpeg libpng zlib ] ++ lib.optional withX libX11;
-
-  preConfigure = ''
-    rm -rf {libjpeg,libpng,libungif,zlib}/
-    substituteInPlace Makefile.in \
-      --replace "include .depend" ""
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace Makefile.in \
-      --replace "-soname," "-install_name,$out/lib/"
-  '';
-
-  configureFlags = [
-    "--with-gif"
-    "--disable-mmx-optimization"
-    "--${if static then "enable" else "disable"}-staticlibs"
-    "--${if !static then "enable" else "disable"}-sharedlibs"
-    "--${if withX then "with" else "without"}-x"
-  ];
-
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-Wno-error=implicit-function-declaration";
-  };
-
-  meta = with lib; {
-    homepage = "http://www.afterstep.org/afterimage/";
-    description = "A generic image manipulation library";
-    platforms = platforms.unix;
-    maintainers = [ maintainers.veprbl ];
-    license = licenses.lgpl21;
-  };
-}
diff --git a/pkgs/development/libraries/libLAS/default.nix b/pkgs/development/libraries/libLAS/default.nix
index 195f77d19231e..4b00de8115735 100644
--- a/pkgs/development/libraries/libLAS/default.nix
+++ b/pkgs/development/libraries/libLAS/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, boost, cmake, libgeotiff, libtiff, LASzip2, fixDarwinDylibNames }:
+{ lib, stdenv, fetchurl, fetchpatch, boost, cmake, libgeotiff, libtiff, laszip_2, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "libLAS";
@@ -35,13 +35,13 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ cmake ] ++ lib.optional stdenv.hostPlatform.isDarwin fixDarwinDylibNames;
-  buildInputs = [ boost libgeotiff libtiff LASzip2 ];
+  buildInputs = [ boost libgeotiff libtiff laszip_2 ];
 
   cmakeFlags = [
     "-DWITH_LASZIP=ON"
     # libLAS is currently not compatible with LASzip 3,
     # see https://github.com/libLAS/libLAS/issues/144.
-    "-DLASZIP_INCLUDE_DIR=${LASzip2}/include"
+    "-DLASZIP_INCLUDE_DIR=${laszip_2}/include"
     "-DCMAKE_EXE_LINKER_FLAGS=-pthread"
   ];
 
diff --git a/pkgs/development/libraries/libaccounts-glib/default.nix b/pkgs/development/libraries/libaccounts-glib/default.nix
index 310d13c978b30..cfac6c97ac74a 100644
--- a/pkgs/development/libraries/libaccounts-glib/default.nix
+++ b/pkgs/development/libraries/libaccounts-glib/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru.updateScript = gitUpdater {
-    rev = "VERSION_";
+    rev-prefix = "VERSION_";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index bb520e7c2274f..449176cfd9e5e 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -14,6 +14,7 @@
 , gtk4
 , gnome
 , gsettings-desktop-schemas
+, desktop-file-utils
 , xvfb-run
 , AppKit
 , Foundation
@@ -22,7 +23,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libadwaita";
-  version = "1.4.4";
+  version = "1.5.1";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -32,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "GNOME";
     repo = "libadwaita";
     rev = finalAttrs.version;
-    hash = "sha256-AZP5OH/LIroBeKioe7AIVx0FvFdTpWJ1INdRPZcjmHQ=";
+    hash = "sha256-dH0VPIt6SGTDcb1I72cKnNlyqZ3dptvKmMDjOd17BfA=";
   };
 
   depsBuildBuild = [
@@ -47,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
     sassc
     vala
     gobject-introspection
+    desktop-file-utils  # for validate-desktop-file
   ];
 
   mesonFlags = [
@@ -104,6 +106,11 @@ stdenv.mkDerivation (finalAttrs: {
   postFixup = ''
     # Cannot be in postInstall, otherwise _multioutDocs hook in preFixup will move right back.
     moveToOutput "share/doc" "$devdoc"
+
+    # Put all resources related to demo app into devdoc output.
+    for d in applications icons metainfo; do
+      moveToOutput "share/$d" "$devdoc"
+    done
   '';
 
   passthru = {
diff --git a/pkgs/development/libraries/libagar/libagar_test.nix b/pkgs/development/libraries/libagar/libagar_test.nix
index e365479f90a52..0582019d72f53 100644
--- a/pkgs/development/libraries/libagar/libagar_test.nix
+++ b/pkgs/development/libraries/libagar/libagar_test.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, bsdbuild, libagar, perl, libjpeg, libpng, openssl }:
+{ lib, stdenv, bsdbuild, libagar, perl, libjpeg, libpng, openssl }:
 
 stdenv.mkDerivation {
   pname = "libagar-test";
diff --git a/pkgs/development/libraries/libajantv2/default.nix b/pkgs/development/libraries/libajantv2/default.nix
index 89d609b327abe..278752b18738d 100644
--- a/pkgs/development/libraries/libajantv2/default.nix
+++ b/pkgs/development/libraries/libajantv2/default.nix
@@ -28,6 +28,21 @@ stdenv.mkDerivation rec {
     pkg-config
   ];
 
+  postInstall = ''
+    mkdir -p "$out/lib/pkgconfig"
+    cat >"$out/lib/pkgconfig/libajantv2.pc" <<EOF
+    prefix=$out
+    libdir=\''${prefix}/lib
+    includedir=\''${prefix}/include/ajalibraries
+
+    Name: libajantv2
+    Description: Library for controlling AJA NTV2 video devices
+    Version: ${version}
+    Libs: -L\''${libdir} -lajantv2
+    Cflags: -I\''${includedir} -I\''${includedir}/ajantv2/includes
+    EOF
+  '';
+
   meta = with lib; {
     description = "AJA NTV2 Open Source Static Libs and Headers for building applications that only wish to statically link against";
     homepage = "https://github.com/aja-video/ntv2";
diff --git a/pkgs/development/libraries/libaom/default.nix b/pkgs/development/libraries/libaom/default.nix
index ffac6412ef950..16a9e872aae8f 100644
--- a/pkgs/development/libraries/libaom/default.nix
+++ b/pkgs/development/libraries/libaom/default.nix
@@ -1,6 +1,11 @@
 { lib, stdenv, fetchzip, yasm, perl, cmake, pkg-config, python3
 , enableVmaf ? true, libvmaf
 , gitUpdater
+
+# for passthru.tests
+, ffmpeg
+, libavif
+, libheif
 }:
 
 let
@@ -8,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libaom";
-  version = "3.8.2";
+  version = "3.9.0";
 
   src = fetchzip {
     url = "https://aomedia.googlesource.com/aom/+archive/v${version}.tar.gz";
-    hash = "sha256-x152jIe7QxeprFEFJnXBfou8yHuW0oHImLIVkSxByWw=";
+    hash = "sha256-ON/BWCO2k7fADW3ZANKjnRE8SrQZpjdyUF1N0fD/xnc=";
     stripRoot = false;
   };
 
@@ -42,9 +47,6 @@ stdenv.mkDerivation rec {
     "-DENABLE_TESTS=OFF"
   ] ++ lib.optionals enableVmaf [
     "-DCONFIG_TUNE_VMAF=1"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # CPU detection isn't supported on Darwin and breaks the aarch64-darwin build:
-    "-DCONFIG_RUNTIME_CPU_DETECT=0"
   ] ++ lib.optionals (isCross && !stdenv.hostPlatform.isx86) [
     "-DCMAKE_ASM_COMPILER=${stdenv.cc.targetPrefix}as"
   ] ++ lib.optionals stdenv.isAarch32 [
@@ -67,6 +69,10 @@ stdenv.mkDerivation rec {
       rev-prefix = "v";
       ignoredVersions = "(alpha|beta|rc).*";
     };
+    tests = {
+      inherit libavif libheif;
+      ffmpeg = ffmpeg.override { withAom = true; };
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libappindicator/default.nix b/pkgs/development/libraries/libappindicator/default.nix
index 8e68ea3f9cb63..e2cd9624bc40f 100644
--- a/pkgs/development/libraries/libappindicator/default.nix
+++ b/pkgs/development/libraries/libappindicator/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A library to allow applications to export a menu into the Unity Menu bar";
+    description = "Library to allow applications to export a menu into the Unity Menu bar";
     homepage = "https://launchpad.net/libappindicator";
     license = with licenses; [ lgpl21 lgpl3 ];
     pkgConfigModules = {
diff --git a/pkgs/development/libraries/libarchive-qt/default.nix b/pkgs/development/libraries/libarchive-qt/default.nix
index 77f498967ecc9..767d9228f33ad 100644
--- a/pkgs/development/libraries/libarchive-qt/default.nix
+++ b/pkgs/development/libraries/libarchive-qt/default.nix
@@ -25,7 +25,7 @@ mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Qt based archiving solution with libarchive backend";
+    description = "Qt based archiving solution with libarchive backend";
     mainProgram = "archiver";
     homepage = "https://gitlab.com/marcusbritanicus/libarchive-qt";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/libraries/libarchive/default.nix b/pkgs/development/libraries/libarchive/default.nix
index ac8ebcb3eb1cb..5e37255d235bb 100644
--- a/pkgs/development/libraries/libarchive/default.nix
+++ b/pkgs/development/libraries/libarchive/default.nix
@@ -1,12 +1,12 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , acl
 , attr
 , autoreconfHook
 , bzip2
 , e2fsprogs
+, glibcLocalesUtf8
 , lzo
 , openssl
 , pkg-config
@@ -28,29 +28,15 @@
 assert xarSupport -> libxml2 != null;
 stdenv.mkDerivation (finalAttrs: {
   pname = "libarchive";
-  version = "3.7.2";
+  version = "3.7.4";
 
   src = fetchFromGitHub {
     owner = "libarchive";
     repo = "libarchive";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-p2JgJ/rvqaQ6yyXSh+ehScUH565ud5bQncl+lOnsWfc=";
+    hash = "sha256-czNKXHoEn1x4deNErnqp/NZfCglF1CxNoLtZ8tcl394=";
   };
 
-  patches = [
-    # Pull fix for test failure on 32-bit systems:
-    (fetchpatch {
-      name = "32-bit-tests-fix.patch";
-      url = "https://github.com/libarchive/libarchive/commit/3bd918d92f8c34ba12de9c6604d96f9e262a59fc.patch";
-      hash = "sha256-RM3xFM6S2DkM5DJ0kAba8eLzEXuY5/7AaU06maHJ6rM=";
-    })
-    (fetchpatch {
-      name = "fix-suspicious-commit-from-known-bad-actor.patch";
-      url = "https://github.com/libarchive/libarchive/commit/6110e9c82d8ba830c3440f36b990483ceaaea52c.patch";
-      hash = "sha256-/j6rJ0xWhtXU0YCu1LOokxxNppy5Of6Q0XyO4U6la7M=";
-    })
-  ];
-
   outputs = [ "out" "lib" "dev" ];
 
   postPatch = let
@@ -70,17 +56,18 @@ stdenv.mkDerivation (finalAttrs: {
       "cpio/test/test_format_newc.c"
     ];
     removeTest = testPath: ''
-      substituteInPlace Makefile.am --replace "${testPath}" ""
+      substituteInPlace Makefile.am --replace-fail "${testPath}" ""
       rm "${testPath}"
     '';
   in ''
-    substituteInPlace Makefile.am --replace '/bin/pwd' "$(type -P pwd)"
+    substituteInPlace Makefile.am --replace-fail '/bin/pwd' "$(type -P pwd)"
 
     ${lib.concatStringsSep "\n" (map removeTest skipTestPaths)}
   '';
 
   nativeBuildInputs = [
     autoreconfHook
+    glibcLocalesUtf8 # test_I test requires an UTF-8 locale
     pkg-config
   ];
 
@@ -107,6 +94,11 @@ stdenv.mkDerivation (finalAttrs: {
   # https://github.com/libarchive/libarchive/issues/1475
   doCheck = !stdenv.hostPlatform.isMusl;
 
+  preCheck = ''
+    # Need an UTF-8 locale for test_I test.
+    export LANG=en_US.UTF-8
+  '';
+
   preFixup = ''
     sed -i $lib/lib/libarchive.la \
       -e 's|-lcrypto|-L${lib.getLib openssl}/lib -lcrypto|' \
diff --git a/pkgs/development/libraries/libargon2/default.nix b/pkgs/development/libraries/libargon2/default.nix
index ae9ba47cdc3fa..6e2ef83c5eace 100644
--- a/pkgs/development/libraries/libargon2/default.nix
+++ b/pkgs/development/libraries/libargon2/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A key derivation function that was selected as the winner of the Password Hashing Competition in July 2015";
+    description = "Key derivation function that was selected as the winner of the Password Hashing Competition in July 2015";
     longDescription = ''
       A password-hashing function created by by Alex Biryukov, Daniel Dinu, and
       Dmitry Khovratovich. Argon2 was declared the winner of the Password
diff --git a/pkgs/development/libraries/libargs/default.nix b/pkgs/development/libraries/libargs/default.nix
index 5247aa5a94f57..0ad0a264f0074 100644
--- a/pkgs/development/libraries/libargs/default.nix
+++ b/pkgs/development/libraries/libargs/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple header-only C++ argument parser library";
+    description = "Simple header-only C++ argument parser library";
     homepage = "https://github.com/Taywee/args";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/libasyncns/default.nix b/pkgs/development/libraries/libasyncns/default.nix
index 423b8cca69150..09e056373d27e 100644
--- a/pkgs/development/libraries/libasyncns/default.nix
+++ b/pkgs/development/libraries/libasyncns/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://0pointer.de/lennart/projects/libasyncns/";
-    description = "A C library for Linux/Unix for executing name service queries asynchronously";
+    description = "C library for Linux/Unix for executing name service queries asynchronously";
     license = licenses.lgpl21;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libatomic_ops/default.nix b/pkgs/development/libraries/libatomic_ops/default.nix
index e7170953d0ca5..bf83a9e8456ac 100644
--- a/pkgs/development/libraries/libatomic_ops/default.nix
+++ b/pkgs/development/libraries/libatomic_ops/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library for semi-portable access to hardware-provided atomic memory update operations";
+    description = "Library for semi-portable access to hardware-provided atomic memory update operations";
     license = lib.licenses.gpl2Plus ;
     maintainers = [lib.maintainers.raskin];
     platforms = with lib.platforms; unix ++ windows;
diff --git a/pkgs/development/libraries/libaudec/default.nix b/pkgs/development/libraries/libaudec/default.nix
index 5340f62a32edc..ffe5f785acd5d 100644
--- a/pkgs/development/libraries/libaudec/default.nix
+++ b/pkgs/development/libraries/libaudec/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ meson ninja pkg-config ];
 
   meta = with lib; {
-    description = "A library for reading and resampling audio files";
+    description = "Library for reading and resampling audio files";
     homepage = "https://www.zrythm.org";
     license = licenses.agpl3Plus;
     mainProgram = "audec";
diff --git a/pkgs/development/libraries/libav/default.nix b/pkgs/development/libraries/libav/default.nix
index 283c2034be7e4..8cc098d81087a 100644
--- a/pkgs/development/libraries/libav/default.nix
+++ b/pkgs/development/libraries/libav/default.nix
@@ -123,7 +123,7 @@ let
 
     meta = with lib; {
       homepage = "https://libav.org/";
-      description = "A complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
+      description = "Complete, cross-platform solution to record, convert and stream audio and video (fork of ffmpeg)";
       license = with licenses; if enableUnfree then unfree #ToDo: redistributable or not?
         else if enableGPL then gpl2Plus else lgpl21Plus;
       platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/libb2/default.nix b/pkgs/development/libraries/libb2/default.nix
index 9e507188aad39..39697b4af521a 100644
--- a/pkgs/development/libraries/libb2/default.nix
+++ b/pkgs/development/libraries/libb2/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "The BLAKE2 family of cryptographic hash functions";
+    description = "BLAKE2 family of cryptographic hash functions";
     homepage = "https://blake2.net/";
     pkgConfigModules = [ "libb2" ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libbacktrace/default.nix b/pkgs/development/libraries/libbacktrace/default.nix
index 32c199a57c4e5..1be572671e029 100644
--- a/pkgs/development/libraries/libbacktrace/default.nix
+++ b/pkgs/development/libraries/libbacktrace/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A C library that may be linked into a C/C++ program to produce symbolic backtraces";
+    description = "C library that may be linked into a C/C++ program to produce symbolic backtraces";
     homepage = "https://github.com/ianlancetaylor/libbacktrace";
     maintainers = with maintainers; [ twey ];
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/development/libraries/libbap/default.nix b/pkgs/development/libraries/libbap/default.nix
index 3ed92edd78e11..13f65a082bd69 100644
--- a/pkgs/development/libraries/libbap/default.nix
+++ b/pkgs/development/libraries/libbap/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/binaryanalysisplatform/bap-bindings";
-    description = "A C library for interacting with BAP";
+    description = "C library for interacting with BAP";
     maintainers = [ maintainers.maurer ];
     platforms = platforms.unix;
     license = licenses.mit;
diff --git a/pkgs/development/libraries/libbladeRF/default.nix b/pkgs/development/libraries/libbladeRF/default.nix
index ce570b76bc082..158493b80e905 100644
--- a/pkgs/development/libraries/libbladeRF/default.nix
+++ b/pkgs/development/libraries/libbladeRF/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake, git, doxygen, help2man, ncurses, tecla
+{ stdenv, lib, fetchFromGitHub, pkg-config, cmake, git, doxygen, help2man, ncurses, tecla
 , libusb1, udev }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/libraries/libblockdev/default.nix b/pkgs/development/libraries/libblockdev/default.nix
index 8ec4b709b162f..7679aefe5b95a 100644
--- a/pkgs/development/libraries/libblockdev/default.nix
+++ b/pkgs/development/libraries/libblockdev/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     changelog = "https://github.com/storaged-project/libblockdev/raw/${finalAttrs.src.rev}/NEWS.rst";
-    description = "A library for manipulating block devices";
+    description = "Library for manipulating block devices";
     homepage = "http://storaged.org/libblockdev/";
     license = with lib.licenses; [ lgpl2Plus gpl2Plus ]; # lgpl2Plus for the library, gpl2Plus for the utils
     maintainers = with lib.maintainers; [ johnazoidberg ];
diff --git a/pkgs/development/libraries/libbluray/default.nix b/pkgs/development/libraries/libbluray/default.nix
index 552259ce3babe..f50172851d618 100644
--- a/pkgs/development/libraries/libbluray/default.nix
+++ b/pkgs/development/libraries/libbluray/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, pkg-config, fontconfig, autoreconfHook, DiskArbitration
+{ lib, stdenv, fetchurl, pkg-config, fontconfig, autoreconfHook, DiskArbitration
 , withJava ? false, jdk17, ant, stripJavaArchivesHook
 , withAACS ? false, libaacs
 , withBDplus ? false, libbdplus
diff --git a/pkgs/development/libraries/libbsd/default.nix b/pkgs/development/libraries/libbsd/default.nix
index 9e80d17b8a033..fa8b6b65950bc 100644
--- a/pkgs/development/libraries/libbsd/default.nix
+++ b/pkgs/development/libraries/libbsd/default.nix
@@ -35,6 +35,9 @@ stdenv.mkDerivation rec {
     url = "https://gitlab.freedesktop.org/libbsd/libbsd.git";
   };
 
+  # Fix undefined reference errors with version script under LLVM.
+  configureFlags = lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [ "LDFLAGS=-Wl,--undefined-version" ];
+
   meta = with lib; {
     description = "Common functions found on BSD systems";
     homepage = "https://libbsd.freedesktop.org/";
diff --git a/pkgs/development/libraries/libbytesize/default.nix b/pkgs/development/libraries/libbytesize/default.nix
index 08fc569312501..f0af39cc88108 100644
--- a/pkgs/development/libraries/libbytesize/default.nix
+++ b/pkgs/development/libraries/libbytesize/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/storaged-project/libbytesize";
-    description = "A tiny library providing a C 'class' for working with arbitrary big sizes in bytes";
+    description = "Tiny library providing a C 'class' for working with arbitrary big sizes in bytes";
     mainProgram = "bscalc";
     license = lib.licenses.lgpl2Plus;
     maintainers = with lib.maintainers; [ AndersonTorres ];
diff --git a/pkgs/development/libraries/libcaca/default.nix b/pkgs/development/libraries/libcaca/default.nix
index 26d8c79443a04..6b99439fe017e 100644
--- a/pkgs/development/libraries/libcaca/default.nix
+++ b/pkgs/development/libraries/libcaca/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://caca.zoy.org/wiki/libcaca";
-    description = "A graphics library that outputs text instead of pixels";
+    description = "Graphics library that outputs text instead of pixels";
     longDescription = ''
       libcaca is a graphics library that outputs text instead of pixels, so that
       it can work on older video cards or text terminals. It is not unlike the
diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix
index 684c6d9d242ed..6bfb780d31a35 100644
--- a/pkgs/development/libraries/libcanberra/default.nix
+++ b/pkgs/development/libraries/libcanberra/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An implementation of the XDG Sound Theme and Name Specifications";
+    description = "Implementation of the XDG Sound Theme and Name Specifications";
     mainProgram = "canberra-gtk-play";
     longDescription = ''
       libcanberra is an implementation of the XDG Sound Theme and Name
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://0pointer.de/lennart/projects/libcanberra/";
     license = licenses.lgpl2Plus;
-    maintainers = [ ];
+    maintainers = with maintainers; [ RossComputerGuy ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libcangjie/default.nix b/pkgs/development/libraries/libcangjie/default.nix
index 5b68a6526f1d1..ab562d9c1999c 100644
--- a/pkgs/development/libraries/libcangjie/default.nix
+++ b/pkgs/development/libraries/libcangjie/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A C library implementing the Cangjie input method";
+    description = "C library implementing the Cangjie input method";
     longDescription = ''
       libcangjie is a library implementing the Cangjie input method.
     '';
diff --git a/pkgs/development/libraries/libcdaudio/default.nix b/pkgs/development/libraries/libcdaudio/default.nix
index fa873672dbcfa..8e7bb7e2964a9 100644
--- a/pkgs/development/libraries/libcdaudio/default.nix
+++ b/pkgs/development/libraries/libcdaudio/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A portable library for controlling audio CDs";
+    description = "Portable library for controlling audio CDs";
     mainProgram = "libcdaudio-config";
     homepage = "https://libcdaudio.sourceforge.net";
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libcdio/default.nix b/pkgs/development/libraries/libcdio/default.nix
index 2124e696d343e..820ac97a434f3 100644
--- a/pkgs/development/libraries/libcdio/default.nix
+++ b/pkgs/development/libraries/libcdio/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A library for OS-independent CD-ROM and CD image access";
+    description = "Library for OS-independent CD-ROM and CD image access";
     longDescription = ''
       GNU libcdio is a library for OS-independent CD-ROM and
       CD image access.  It includes a library for working with
diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix
index 64695aaa55d72..885413982dad8 100644
--- a/pkgs/development/libraries/libcdr/default.nix
+++ b/pkgs/development/libraries/libcdr/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
+{ lib, stdenv, fetchurl, libwpg, libwpd, lcms, pkg-config, librevenge, icu, boost, cppunit }:
 
 stdenv.mkDerivation rec {
   pname = "libcdr";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   CXXFLAGS="--std=gnu++0x"; # For c++11 constants in lcms2.h
 
   meta = {
-    description = "A library providing ability to interpret and import Corel Draw drawings into various applications";
+    description = "Library providing ability to interpret and import Corel Draw drawings into various applications";
     homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libcdr";
     platforms = lib.platforms.all;
     license = lib.licenses.mpl20;
diff --git a/pkgs/development/libraries/libcifpp/default.nix b/pkgs/development/libraries/libcifpp/default.nix
index a41736004ecb3..a5dbf01492a54 100644
--- a/pkgs/development/libraries/libcifpp/default.nix
+++ b/pkgs/development/libraries/libcifpp/default.nix
@@ -3,20 +3,19 @@
 , boost
 , cmake
 , fetchFromGitHub
-, fetchpatch
 , eigen
 , zlib
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libcifpp";
-  version = "7.0.3";
+  version = "7.0.4";
 
   src = fetchFromGitHub {
     owner = "PDB-REDO";
     repo = "libcifpp";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-YRK648gJ2UlgeG5GHMjTid1At0lYt7Zqu4/+O5WG/OM=";
+    hash = "sha256-/dX77KRYmTIj8jxRzQRlpG/ktqDL1jjySux/JqHnE3I=";
   };
 
   nativeBuildInputs = [
@@ -34,6 +33,11 @@ stdenv.mkDerivation (finalAttrs: {
     zlib
   ];
 
+  # cmake requires the existence of this directory when building dssp
+  postInstall = ''
+    mkdir -p $out/share/libcifpp
+  '';
+
   meta = with lib; {
     description = "Manipulate mmCIF and PDB files";
     homepage = "https://github.com/PDB-REDO/libcifpp";
diff --git a/pkgs/development/libraries/libcloudproviders/default.nix b/pkgs/development/libraries/libcloudproviders/default.nix
index 6161ea78174d4..8b6722d9cde7d 100644
--- a/pkgs/development/libraries/libcloudproviders/default.nix
+++ b/pkgs/development/libraries/libcloudproviders/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/libcloudproviders/${lib.versions.majorMinor version}/libcloudproviders-${version}.tar.xz";
-    sha256 = "O3URCzpP3vTFxaRA5IcB/gVNKuBh0VbIkTa7W6BedLc=";
+    hash = "sha256-O3URCzpP3vTFxaRA5IcB/gVNKuBh0VbIkTa7W6BedLc=";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/pkgs/development/libraries/libcommuni/default.nix b/pkgs/development/libraries/libcommuni/default.nix
index f7d064e0de384..c33fdcf00f33c 100644
--- a/pkgs/development/libraries/libcommuni/default.nix
+++ b/pkgs/development/libraries/libcommuni/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   preFixup = "rm -rf lib";
 
   meta = with lib; {
-    description = "A cross-platform IRC framework written with Qt";
+    description = "Cross-platform IRC framework written with Qt";
     homepage = "https://communi.github.io";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libconfig/default.nix b/pkgs/development/libraries/libconfig/default.nix
index 5c06808f67c3e..c0f02320c7796 100644
--- a/pkgs/development/libraries/libconfig/default.nix
+++ b/pkgs/development/libraries/libconfig/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.hyperrealm.com/libconfig";
-    description = "A simple library for processing structured configuration files";
+    description = "Simple library for processing structured configuration files";
     license = licenses.lgpl3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libcork/default.nix b/pkgs/development/libraries/libcork/default.nix
index 87a068c24d1a9..c013775fcaeb0 100644
--- a/pkgs/development/libraries/libcork/default.nix
+++ b/pkgs/development/libraries/libcork/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/dcreager/libcork";
-    description = "A simple, easily embeddable cross-platform C library";
+    description = "Simple, easily embeddable cross-platform C library";
     mainProgram = "cork-hash";
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libcs50/default.nix b/pkgs/development/libraries/libcs50/default.nix
index 14c8190ccbf2a..a7dd7c6879b5e 100644
--- a/pkgs/development/libraries/libcs50/default.nix
+++ b/pkgs/development/libraries/libcs50/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libcs50";
-  version = "11.0.2";
+  version = "11.0.3";
 
   src = fetchFromGitHub {
     owner = "cs50";
     repo = "libcs50";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-A4CEU5wfwykVTDIsKZnQ8co+6RwBGYGZEZxRFzQTKBI=";
+    hash = "sha256-G6QayPGR4lkeFuUYsFszekLAzzpA3hhIRmqt/OB0cdY=";
   };
 
   installPhase = ''
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
     mkdir $out
     cp -R build/lib $out/lib
     cp -R build/include $out/include
-    ln -sf $out/lib/libcs50.so.11.0.2 $out/lib/libcs50.so.11
+    ln -sf $out/lib/libcs50.so.11.0.3 $out/lib/libcs50.so.11
     runHook postInstall
   '';
 
diff --git a/pkgs/development/libraries/libctemplate/default.nix b/pkgs/development/libraries/libctemplate/default.nix
index 2aa36bfe99146..816bbe41708a9 100644
--- a/pkgs/development/libraries/libctemplate/default.nix
+++ b/pkgs/development/libraries/libctemplate/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A simple but powerful template language for C++";
+    description = "Simple but powerful template language for C++";
     longDescription = ''
       CTemplate is a simple but powerful template language for C++. It
       emphasizes separating logic from presentation: it is impossible to
diff --git a/pkgs/development/libraries/libcxxrt/default.nix b/pkgs/development/libraries/libcxxrt/default.nix
index cd9e7778a80be..1858ca1e97e92 100644
--- a/pkgs/development/libraries/libcxxrt/default.nix
+++ b/pkgs/development/libraries/libcxxrt/default.nix
@@ -2,20 +2,22 @@
 
 stdenv.mkDerivation {
   pname = "libcxxrt";
-  version = "unstable-2024-04-15";
+  version = "4.0.10-unstable-2024-05-26";
 
   src = fetchFromGitHub {
     owner = "libcxxrt";
     repo = "libcxxrt";
-    rev = "25541e312f7094e9c90895000d435af520d42418";
-    sha256 = "d5uhtlO+28uc2Xnf5trXsy43jgmzBHs2jZhCK57qRM4=";
+    rev = "c62fe9963148f283b2fbb7eb9888785cfb16d77c";
+    sha256 = "XxXH6pE2v6WTh1ATJ7Fgd3SFw49L44YchtMlPKX4kYw=";
   };
 
   nativeBuildInputs = [ cmake ];
 
+  outputs = [ "out" "dev" ];
+
   installPhase = ''
-    mkdir -p $out/include $out/lib
-    cp ../src/cxxabi.h $out/include
+    mkdir -p $dev/include $out/lib
+    cp ../src/cxxabi.h $dev/include
     cp lib/libcxxrt${stdenv.hostPlatform.extensions.library} $out/lib
   '';
 
diff --git a/pkgs/development/libraries/libdatachannel/default.nix b/pkgs/development/libraries/libdatachannel/default.nix
index 6179bdac6d10f..cc6a340355bab 100644
--- a/pkgs/development/libraries/libdatachannel/default.nix
+++ b/pkgs/development/libraries/libdatachannel/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libdatachannel";
-  version = "0.20.3";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "paullouisageneau";
     repo = "libdatachannel";
     rev = "v${version}";
-    hash = "sha256-QVyHDeT5gh+e3jOx9PjubIVq1xQ9eA7CxbP91X/xxT8=";
+    hash = "sha256-sTdA4kCIdY3l/YUNKbXzRDS1O0AFx90k94W3cJpfLIY=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libdazzle/default.nix b/pkgs/development/libraries/libdazzle/default.nix
index 1e7bb7d05e3ab..c947079038722 100644
--- a/pkgs/development/libraries/libdazzle/default.nix
+++ b/pkgs/development/libraries/libdazzle/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to delight your users with fancy features";
+    description = "Library to delight your users with fancy features";
     mainProgram = "dazzle-list-counters";
     longDescription = ''
       The libdazzle library is a companion library to GObject and GTK. It
diff --git a/pkgs/development/libraries/libdeltachat/Cargo.lock b/pkgs/development/libraries/libdeltachat/Cargo.lock
index ae5294d3104f7..4f9efb6bec40c 100644
--- a/pkgs/development/libraries/libdeltachat/Cargo.lock
+++ b/pkgs/development/libraries/libdeltachat/Cargo.lock
@@ -17,9 +17,9 @@ dependencies = [
 
 [[package]]
 name = "addr2line"
-version = "0.21.0"
+version = "0.22.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb"
+checksum = "6e4503c46a5c0c7844e948c9a4d6acd9f50cccb4de1c48eb9e291ea17470c678"
 dependencies = [
  "gimli",
 ]
@@ -31,6 +31,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
+name = "aead"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0"
+dependencies = [
+ "bytes",
+ "crypto-common",
+ "generic-array",
+]
+
+[[package]]
 name = "aes"
 version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -55,9 +66,9 @@ dependencies = [
 
 [[package]]
 name = "aho-corasick"
-version = "1.1.2"
+version = "1.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
 dependencies = [
  "memchr",
 ]
@@ -114,16 +125,58 @@ dependencies = [
 ]
 
 [[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
 name = "anstyle"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "anyhow"
-version = "1.0.80"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad32ce52e4161730f7098c077cd2ed6229b5804ccf99e5366be1ab72a98b4e1"
+checksum = "b3d1d046238990b9cf5bcde22a3fb3584ee5cf65fb2765f454ed428c7a0063da"
 dependencies = [
  "backtrace",
 ]
@@ -152,8 +205,24 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0"
 dependencies = [
- "asn1-rs-derive",
- "asn1-rs-impl",
+ "asn1-rs-derive 0.4.0",
+ "asn1-rs-impl 0.1.0",
+ "displaydoc",
+ "nom",
+ "num-traits",
+ "rusticata-macros",
+ "thiserror",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "asn1-rs"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ad1373757efa0f70ec53939aabc7152e1591cb485208052993070ac8d2429d"
+dependencies = [
+ "asn1-rs-derive 0.5.0",
+ "asn1-rs-impl 0.2.0",
  "displaydoc",
  "nom",
  "num-traits",
@@ -171,7 +240,19 @@ dependencies = [
  "proc-macro2",
  "quote",
  "syn 1.0.109",
- "synstructure",
+ "synstructure 0.12.6",
+]
+
+[[package]]
+name = "asn1-rs-derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7378575ff571966e99a744addeff0bff98b8ada0dedf1956d59e634db95eaac1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "synstructure 0.13.1",
 ]
 
 [[package]]
@@ -186,6 +267,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "asn1-rs-impl"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b18050c2cd6fe86c3a76584ef5e0baf286d038cda203eb6223df2cc413565f7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "async-broadcast"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "258b52a1aa741b9f09783b2d86cf0aeeb617bbf847f6933340a39644227acbdb"
+dependencies = [
+ "event-listener 5.2.0",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "async-channel"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -198,12 +302,11 @@ dependencies = [
 
 [[package]]
 name = "async-channel"
-version = "2.2.0"
+version = "2.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
 dependencies = [
  "concurrent-queue",
- "event-listener 5.2.0",
  "event-listener-strategy",
  "futures-core",
  "pin-project-lite",
@@ -228,7 +331,7 @@ version = "0.9.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98892ebee4c05fc66757e600a7466f0d9bfcde338f645d64add323789f26cb36"
 dependencies = [
- "async-channel 2.2.0",
+ "async-channel 2.3.1",
  "base64 0.21.7",
  "bytes",
  "chrono",
@@ -267,9 +370,9 @@ dependencies = [
 
 [[package]]
 name = "async-smtp"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8709c0d4432be428a88a06746689a9cb543e8e27ef7f61ca4d0455003a3d8c5b"
+checksum = "928ea96f04e1260036cb01f82c1e5dc7c3b478e7b9463c87712297784ce3cdc6"
 dependencies = [
  "anyhow",
  "base64 0.13.1",
@@ -290,7 +393,7 @@ checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -308,6 +411,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "attohttpc"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d9a9bf8b79a749ee0b911b91b671cc2b6c670bdbc7e3dfd537576ddc94bb2a2"
+dependencies = [
+ "http 0.2.12",
+ "log",
+ "url",
+]
+
+[[package]]
 name = "autocfg"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -315,9 +429,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "axum"
-version = "0.7.4"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
+checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
 dependencies = [
  "async-trait",
  "axum-core",
@@ -341,7 +455,7 @@ dependencies = [
  "serde_path_to_error",
  "serde_urlencoded",
  "sha1",
- "sync_wrapper",
+ "sync_wrapper 1.0.0",
  "tokio",
  "tokio-tungstenite",
  "tower",
@@ -365,17 +479,28 @@ dependencies = [
  "mime",
  "pin-project-lite",
  "rustversion",
- "sync_wrapper",
+ "sync_wrapper 0.1.2",
  "tower-layer",
  "tower-service",
  "tracing",
 ]
 
 [[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "getrandom 0.2.12",
+ "instant",
+ "rand 0.8.5",
+]
+
+[[package]]
 name = "backtrace"
-version = "0.3.69"
+version = "0.3.72"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
+checksum = "17c6a35df3749d2e8bb1b7b21a976d82b15548788d2735b9d82f329268f71a11"
 dependencies = [
  "addr2line",
  "cc",
@@ -423,6 +548,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
 
 [[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
 name = "base64ct"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -456,6 +587,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
 
 [[package]]
+name = "bitvec"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c"
+dependencies = [
+ "funty",
+ "radium",
+ "tap",
+ "wyz",
+]
+
+[[package]]
 name = "blake3"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -506,10 +649,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "bounded-integer"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78a6932c88f1d2c29533a3b8a5f5a2f84cc19c3339b431677c3160c5c2e6ca85"
+
+[[package]]
 name = "brotli"
-version = "3.4.0"
+version = "6.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f"
+checksum = "74f7971dbd9326d58187408ab83117d8ac1bb9c17b085fdacd1cf2f598719b6b"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -518,9 +667,9 @@ dependencies = [
 
 [[package]]
 name = "brotli-decompressor"
-version = "2.5.1"
+version = "4.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f"
+checksum = "e6221fe77a248b9117d431ad93761222e1cf8ff282d9d1d5d9f53d6299a1cf76"
 dependencies = [
  "alloc-no-stdlib",
  "alloc-stdlib",
@@ -568,6 +717,9 @@ name = "bytes"
 version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223"
+dependencies = [
+ "serde",
+]
 
 [[package]]
 name = "camellia"
@@ -627,12 +779,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.83"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
-dependencies = [
- "libc",
-]
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
 
 [[package]]
 name = "cfb-mode"
@@ -650,6 +799,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chacha20"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818"
+dependencies = [
+ "cfg-if",
+ "cipher",
+ "cpufeatures",
+]
+
+[[package]]
 name = "charset"
 version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -661,16 +827,17 @@ dependencies = [
 
 [[package]]
 name = "chrono"
-version = "0.4.34"
+version = "0.4.38"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
  "js-sys",
  "num-traits",
+ "serde",
  "wasm-bindgen",
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -708,6 +875,7 @@ checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad"
 dependencies = [
  "crypto-common",
  "inout",
+ "zeroize",
 ]
 
 [[package]]
@@ -757,10 +925,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
 name = "concurrent-queue"
-version = "2.4.0"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
 dependencies = [
  "crossbeam-utils",
 ]
@@ -835,6 +1009,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "crc"
+version = "3.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
+dependencies = [
+ "crc-catalog",
+]
+
+[[package]]
+name = "crc-catalog"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
+
+[[package]]
 name = "crc24"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -949,10 +1138,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
 dependencies = [
  "generic-array",
+ "rand_core 0.6.4",
  "typenum",
 ]
 
 [[package]]
+name = "crypto_box"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16182b4f39a82ec8a6851155cc4c0cda3065bb1db33651726a29e1951de0f009"
+dependencies = [
+ "aead",
+ "chacha20",
+ "crypto_secretbox",
+ "curve25519-dalek 4.1.2",
+ "salsa20",
+ "serdect",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "crypto_secretbox"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9d6cf87adf719ddf43a805e92c6870a531aedda35ff640442cbaf8674e141e1"
+dependencies = [
+ "aead",
+ "chacha20",
+ "cipher",
+ "generic-array",
+ "poly1305",
+ "salsa20",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "curve25519-dalek"
 version = "3.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -990,7 +1212,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1064,10 +1286,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "dashmap"
+version = "5.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856"
+dependencies = [
+ "cfg-if",
+ "hashbrown",
+ "lock_api",
+ "once_cell",
+ "parking_lot_core",
+]
+
+[[package]]
 name = "data-encoding"
-version = "2.5.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5"
+checksum = "e8566979429cf69b49a5c740c60791108e86440e8be149bbea4fe54d2c32d6e2"
 
 [[package]]
 name = "default-net"
@@ -1075,33 +1310,35 @@ version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a4898b43aed56499fad6b294d15b3e76a51df68079bf492e5daae38ca084e003"
 dependencies = [
- "dlopen2",
+ "dlopen2 0.4.1",
  "libc",
  "memalloc",
- "netlink-packet-core",
- "netlink-packet-route",
+ "netlink-packet-core 0.5.0",
+ "netlink-packet-route 0.15.0",
  "netlink-sys",
  "once_cell",
- "system-configuration",
- "windows",
+ "system-configuration 0.5.1",
+ "windows 0.32.0",
 ]
 
 [[package]]
 name = "deltachat"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "ansi_term",
  "anyhow",
- "async-channel 2.2.0",
+ "async-broadcast",
+ "async-channel 2.3.1",
  "async-imap",
  "async-native-tls",
  "async-smtp",
  "async_zip",
  "backtrace",
- "base64 0.21.7",
+ "base64 0.22.1",
  "brotli",
  "chrono",
  "criterion",
+ "deltachat-contact-tools",
  "deltachat-time",
  "deltachat_derive",
  "email",
@@ -1111,12 +1348,14 @@ dependencies = [
  "fd-lock",
  "format-flowed",
  "futures",
- "futures-lite",
+ "futures-lite 2.3.0",
  "hex",
  "hickory-resolver",
  "humansize",
  "image",
  "iroh",
+ "iroh-gossip",
+ "iroh-net",
  "kamadak-exif",
  "lettre_email",
  "libc",
@@ -1127,21 +1366,19 @@ dependencies = [
  "num-traits",
  "num_cpus",
  "once_cell",
- "openssl-src",
  "parking_lot",
  "percent-encoding",
  "pgp",
- "pin-project",
  "pretty_assertions",
- "pretty_env_logger",
  "proptest",
  "qrcodegen",
  "quick-xml",
+ "quinn",
  "quoted_printable",
  "rand 0.8.5",
  "ratelimit",
  "regex",
- "reqwest",
+ "reqwest 0.11.27",
  "rusqlite",
  "rust-hsluv",
  "sanitize-filename",
@@ -1168,14 +1405,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "deltachat-contact-tools"
+version = "0.0.0"
+dependencies = [
+ "anyhow",
+ "chrono",
+ "once_cell",
+ "regex",
+ "rusqlite",
+]
+
+[[package]]
 name = "deltachat-jsonrpc"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "anyhow",
- "async-channel 2.2.0",
+ "async-channel 2.3.1",
  "axum",
- "base64 0.21.7",
+ "base64 0.22.1",
  "deltachat",
+ "deltachat-contact-tools",
  "env_logger",
  "futures",
  "log",
@@ -1193,33 +1442,33 @@ dependencies = [
 
 [[package]]
 name = "deltachat-repl"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "ansi_term",
  "anyhow",
  "deltachat",
  "dirs",
  "log",
- "pretty_env_logger",
  "rusqlite",
  "rustyline",
  "tokio",
+ "tracing-subscriber",
 ]
 
 [[package]]
 name = "deltachat-rpc-server"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "anyhow",
  "deltachat",
  "deltachat-jsonrpc",
- "env_logger",
- "futures-lite",
+ "futures-lite 2.3.0",
  "log",
  "serde",
  "serde_json",
  "tokio",
  "tokio-util",
+ "tracing-subscriber",
  "yerpc",
 ]
 
@@ -1232,12 +1481,12 @@ name = "deltachat_derive"
 version = "2.0.0"
 dependencies = [
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "deltachat_ffi"
-version = "1.136.3"
+version = "1.140.2"
 dependencies = [
  "anyhow",
  "deltachat",
@@ -1260,7 +1509,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
 dependencies = [
  "const-oid",
- "der_derive",
+ "der_derive 0.6.1",
  "pem-rfc7468 0.6.0",
  "zeroize",
 ]
@@ -1272,6 +1521,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
 dependencies = [
  "const-oid",
+ "der_derive 0.7.2",
  "pem-rfc7468 0.7.0",
  "zeroize",
 ]
@@ -1282,7 +1532,21 @@ version = "8.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e"
 dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
+ "displaydoc",
+ "nom",
+ "num-bigint",
+ "num-traits",
+ "rusticata-macros",
+]
+
+[[package]]
+name = "der-parser"
+version = "9.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5cd0a5c643689626bec213c4d8bd4d96acc8ffdb4ad4bb6bc16abf27d5f4b553"
+dependencies = [
+ "asn1-rs 0.6.1",
  "displaydoc",
  "nom",
  "num-bigint",
@@ -1303,12 +1567,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "der_derive"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5fe87ce4529967e0ba1dcf8450bab64d97dfd5010a6256187ffe2e43e6f0e049"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "deranged"
 version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
 dependencies = [
  "powerfmt",
+ "serde",
 ]
 
 [[package]]
@@ -1356,6 +1632,27 @@ dependencies = [
 ]
 
 [[package]]
+name = "derive_more"
+version = "1.0.0-beta.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7abbfc297053be59290e3152f8cbcd52c8642e0728b69ee187d991d4c1af08d"
+dependencies = [
+ "derive_more-impl",
+]
+
+[[package]]
+name = "derive_more-impl"
+version = "1.0.0-beta.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bba3e9872d7c58ce7ef0fcf1844fcc3e23ef2a58377b50df35dd98e42a5726e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+ "unicode-xid",
+]
+
+[[package]]
 name = "des"
 version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1441,7 +1738,7 @@ checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1457,6 +1754,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "dlopen2"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b4f5f101177ff01b8ec4ecc81eead416a8aa42819a2869311b3420fa114ffa"
+dependencies = [
+ "libc",
+ "once_cell",
+ "winapi",
+]
+
+[[package]]
 name = "dlopen2_derive"
 version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1484,6 +1792,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "dtoa"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcbb2bf8e87535c23f7a8a321e364ce21462d0ff10cb6407820e8e96dfff6653"
+
+[[package]]
+name = "duct"
+version = "0.13.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4ab5718d1224b63252cd0c6f74f6480f9ffeb117438a2e0f5cf6d9a4798929c"
+dependencies = [
+ "libc",
+ "once_cell",
+ "os_pipe",
+ "shared_child",
+]
+
+[[package]]
 name = "dyn-clone"
 version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1532,6 +1858,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53"
 dependencies = [
  "pkcs8 0.10.2",
+ "serde",
  "signature 2.2.0",
 ]
 
@@ -1558,6 +1885,7 @@ checksum = "4a3daa8e81a3963a60642bcc1f90a670680bd4a77535faa384e9d1c79d620871"
 dependencies = [
  "curve25519-dalek 4.1.2",
  "ed25519 2.2.3",
+ "rand_core 0.6.4",
  "serde",
  "sha2 0.10.8",
  "subtle",
@@ -1750,7 +2078,7 @@ dependencies = [
  "heck",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -1763,20 +2091,50 @@ dependencies = [
  "num-traits",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "enumflags2"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3278c9d5fb675e0a51dabcf4c0d355f692b064171535ba72361be1528a9d8e8d"
+dependencies = [
+ "enumflags2_derive",
+]
+
+[[package]]
+name = "enumflags2_derive"
+version = "0.7.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c785274071b1b420972453b306eeca06acf4633829db4223b58a2a8c5953bc4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "env_filter"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a009aa4810eb158359dda09d0c87378e4bbb89b5a801f016885a4707ba24f7ea"
+dependencies = [
+ "log",
+ "regex",
 ]
 
 [[package]]
 name = "env_logger"
-version = "0.10.2"
+version = "0.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580"
+checksum = "38b35839ba51819680ba087cd351788c9a3c476841207e0b8cee0b04722343b9"
 dependencies = [
+ "anstream",
+ "anstyle",
+ "env_filter",
  "humantime",
- "is-terminal",
  "log",
- "regex",
- "termcolor",
 ]
 
 [[package]]
@@ -1786,6 +2144,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
+name = "erased-serde"
+version = "0.3.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c138974f9d5e7fe373eb04df7cae98833802ae4b11c24ac7039a21d5af4b26c"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "erased_set"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76a5aa24577083f8190ad401e376b55887c7cd9083ae95d83ceec5d28ea78125"
+
+[[package]]
 name = "errno"
 version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1818,6 +2191,17 @@ checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "event-listener"
+version = "4.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener"
 version = "5.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2b5fb89194fa3cad959b833185b3063ba881dbfc7030680b314250779fb4cc91"
@@ -1829,9 +2213,9 @@ dependencies = [
 
 [[package]]
 name = "event-listener-strategy"
-version = "0.5.0"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
 dependencies = [
  "event-listener 5.2.0",
  "pin-project-lite",
@@ -1851,9 +2235,9 @@ checksum = "7360491ce676a36bf9bb3c56c1aa791658183a54d2744120f27285738d90465a"
 
 [[package]]
 name = "fast-socks5"
-version = "0.9.5"
+version = "0.9.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbcc731f3c17a5053e07e6a2290918da75cd8b9b1217b419721f715674ac520c"
+checksum = "f89f36d4ee12370d30d57b16c7e190950a1a916e7dbbb5fd5a412f5ef913fe84"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -1874,6 +2258,15 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+dependencies = [
+ "instant",
+]
+
+[[package]]
+name = "fastrand"
 version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
@@ -1993,6 +2386,12 @@ name = "format-flowed"
 version = "1.0.0"
 
 [[package]]
+name = "funty"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
+
+[[package]]
 name = "futures"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2008,6 +2407,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-buffered"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "02dcae03ee5afa5ea17b1aebc793806b8ddfc6dc500e0b8e8e1eb30b9dad22c0"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "pin-project-lite",
+]
+
+[[package]]
 name = "futures-channel"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2018,6 +2428,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "futures-concurrency"
+version = "7.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51ee14e256b9143bfafbf2fddeede6f396650bacf95d06fc1b3f2b503df129a0"
+dependencies = [
+ "bitvec",
+ "futures-core",
+ "futures-lite 1.13.0",
+ "pin-project",
+ "slab",
+ "smallvec",
+]
+
+[[package]]
 name = "futures-core"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2042,11 +2466,26 @@ checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
 
 [[package]]
 name = "futures-lite"
-version = "2.2.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba"
+checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce"
 dependencies = [
- "fastrand",
+ "fastrand 1.9.0",
+ "futures-core",
+ "futures-io",
+ "memchr",
+ "parking",
+ "pin-project-lite",
+ "waker-fn",
+]
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand 2.0.1",
  "futures-core",
  "futures-io",
  "parking",
@@ -2061,7 +2500,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -2077,6 +2516,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
 
 [[package]]
+name = "futures-timer"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
+
+[[package]]
 name = "futures-util"
 version = "0.3.30"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2095,6 +2540,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "genawaiter"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c86bd0361bcbde39b13475e6e36cb24c329964aa2611be285289d1e4b751c1a0"
+dependencies = [
+ "futures-core",
+ "genawaiter-macro",
+]
+
+[[package]]
+name = "genawaiter-macro"
+version = "0.99.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b32dfe1fdfc0bbde1f22a5da25355514b5e450c33a6af6770884c8750aedfbc"
+
+[[package]]
 name = "generic-array"
 version = "0.14.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2141,9 +2602,35 @@ dependencies = [
 
 [[package]]
 name = "gimli"
-version = "0.28.1"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
+checksum = "40ecd4077b5ae9fd2e9e169b102c6c330d0605168eb0e8bf79952b256dbefffd"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "governor"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68a7f542ee6b35af73b06abc0dad1c1bae89964e4e253bc4b587b91c9637867b"
+dependencies = [
+ "cfg-if",
+ "dashmap",
+ "futures",
+ "futures-timer",
+ "no-std-compat",
+ "nonzero_ext",
+ "parking_lot",
+ "portable-atomic",
+ "quanta",
+ "rand 0.8.5",
+ "smallvec",
+ "spinning_top",
+]
 
 [[package]]
 name = "group"
@@ -2169,9 +2656,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.24"
+version = "0.3.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
 dependencies = [
  "bytes",
  "fnv",
@@ -2187,25 +2674,6 @@ dependencies = [
 ]
 
 [[package]]
-name = "h2"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31d030e59af851932b72ceebadf4a2b5986dba4c3b99dd2493f8273a0f151943"
-dependencies = [
- "bytes",
- "fnv",
- "futures-core",
- "futures-sink",
- "futures-util",
- "http 1.1.0",
- "indexmap",
- "slab",
- "tokio",
- "tokio-util",
- "tracing",
-]
-
-[[package]]
 name = "half"
 version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2278,9 +2746,9 @@ dependencies = [
 
 [[package]]
 name = "hickory-resolver"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35b8f021164e6a984c9030023544c57789c51760065cd510572fedcfb04164e8"
+checksum = "28757f23aa75c98f254cf0405e6d8c25b831b32921b050a66692427679b1f243"
 dependencies = [
  "cfg-if",
  "futures-util",
@@ -2316,6 +2784,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "hmac-sha1"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b05da5b9e5d4720bfb691eebb2b9d42da3570745da71eac8a1f5bb7e59aab88"
+dependencies = [
+ "hmac",
+ "sha1",
+]
+
+[[package]]
+name = "hmac-sha256"
+version = "1.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3688e69b38018fec1557254f64c8dc2cc8ec502890182f395dbb0aa997aa5735"
+
+[[package]]
 name = "home"
 version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2336,6 +2820,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "hostname-validator"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f558a64ac9af88b5ba400d99b579451af0d39c6d360980045b91aac966d705e2"
+
+[[package]]
 name = "http"
 version = "0.2.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2405,9 +2895,9 @@ checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
 
 [[package]]
 name = "human-panic"
-version = "1.2.3"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4f016c89920bbb30951a8405ecacbb4540db5524313b9445736e7e1855cf370"
+checksum = "a4c5d0e9120f6bca6120d142c7ede1ba376dd6bf276d69dd3dbe6cbeb7824179"
 dependencies = [
  "backtrace",
  "os_info",
@@ -2442,7 +2932,7 @@ dependencies = [
  "futures-channel",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
+ "h2",
  "http 0.2.12",
  "http-body 0.4.6",
  "httparse",
@@ -2465,7 +2955,6 @@ dependencies = [
  "bytes",
  "futures-channel",
  "futures-util",
- "h2 0.4.2",
  "http 1.1.0",
  "http-body 1.0.0",
  "httparse",
@@ -2474,6 +2963,38 @@ dependencies = [
  "pin-project-lite",
  "smallvec",
  "tokio",
+ "want",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "rustls 0.21.11",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.26.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0bea761b46ae2b24eb4aef630d8d1c398157b6fc29e6350ecf090a0b70c952c"
+dependencies = [
+ "futures-util",
+ "http 1.1.0",
+ "hyper 1.2.0",
+ "hyper-util",
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
 ]
 
 [[package]]
@@ -2496,6 +3017,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa"
 dependencies = [
  "bytes",
+ "futures-channel",
  "futures-util",
  "http 1.1.0",
  "http-body 1.0.0",
@@ -2503,6 +3025,9 @@ dependencies = [
  "pin-project-lite",
  "socket2",
  "tokio",
+ "tower",
+ "tower-service",
+ "tracing",
 ]
 
 [[package]]
@@ -2516,7 +3041,7 @@ dependencies = [
  "iana-time-zone-haiku",
  "js-sys",
  "wasm-bindgen",
- "windows-core",
+ "windows-core 0.52.0",
 ]
 
 [[package]]
@@ -2564,25 +3089,56 @@ dependencies = [
 ]
 
 [[package]]
+name = "igd-next"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "064d90fec10d541084e7b39ead8875a5a80d9114a2b18791565253bae25f49e4"
+dependencies = [
+ "async-trait",
+ "attohttpc",
+ "bytes",
+ "futures",
+ "http 0.2.12",
+ "hyper 0.14.28",
+ "log",
+ "rand 0.8.5",
+ "tokio",
+ "url",
+ "xmltree",
+]
+
+[[package]]
 name = "image"
-version = "0.24.9"
+version = "0.25.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
+checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
  "gif",
- "jpeg-decoder",
+ "image-webp",
  "num-traits",
  "png",
+ "zune-core",
+ "zune-jpeg",
+]
+
+[[package]]
+name = "image-webp"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a84a25dcae3ac487bc24ef280f9e20c79c9b1a3e5e32cbed3041d1c514aa87c"
+dependencies = [
+ "byteorder",
+ "thiserror",
 ]
 
 [[package]]
 name = "imap-proto"
-version = "0.16.4"
+version = "0.16.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e70cd66882c8cb1c9802096ba75212822153c51478dc61621e1a22f6c92361"
+checksum = "de555d9526462b6f9ece826a26fb7c67eca9a0245bd9ff84fa91972a5d5d8856"
 dependencies = [
  "nom",
 ]
@@ -2607,6 +3163,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "instant"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
 name = "ipconfig"
 version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2615,7 +3180,7 @@ dependencies = [
  "socket2",
  "widestring",
  "windows-sys 0.48.0",
- "winreg",
+ "winreg 0.50.0",
 ]
 
 [[package]]
@@ -2637,7 +3202,7 @@ dependencies = [
  "bytes",
  "default-net",
  "der 0.6.1",
- "derive_more",
+ "derive_more 0.99.17",
  "dirs-next",
  "ed25519-dalek 1.0.1",
  "futures",
@@ -2648,13 +3213,13 @@ dependencies = [
  "quic-rpc",
  "quinn",
  "rand 0.7.3",
- "rcgen",
+ "rcgen 0.10.0",
  "ring 0.16.20",
- "rustls",
- "rustls-webpki",
+ "rustls 0.21.11",
+ "rustls-webpki 0.101.7",
  "serde",
  "serde-error",
- "ssh-key",
+ "ssh-key 0.5.1",
  "tempfile",
  "thiserror",
  "tokio",
@@ -2664,11 +3229,224 @@ dependencies = [
  "tracing-futures",
  "tracing-subscriber",
  "walkdir",
- "x509-parser",
+ "x509-parser 0.14.0",
  "zeroize",
 ]
 
 [[package]]
+name = "iroh-base"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1be0b442ed44d20905cf77c673169906c883e05c829e3fb303b131e925139fc"
+dependencies = [
+ "aead",
+ "anyhow",
+ "crypto_box",
+ "data-encoding",
+ "derive_more 1.0.0-beta.6",
+ "ed25519-dalek 2.1.1",
+ "getrandom 0.2.12",
+ "hex",
+ "iroh-blake3",
+ "once_cell",
+ "postcard",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "serde",
+ "serde-error",
+ "ssh-key 0.6.6",
+ "thiserror",
+ "ttl_cache",
+ "url",
+ "zeroize",
+]
+
+[[package]]
+name = "iroh-blake3"
+version = "1.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbba31f40a650f58fa28dd585a8ca76d8ae3ba63aacab4c8269004a0c803930"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "cc",
+ "cfg-if",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "iroh-gossip"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "857aa77a0b29283edf99224bd12cd739684c5873e639b85adb38b8d1d777162d"
+dependencies = [
+ "anyhow",
+ "bytes",
+ "derive_more 1.0.0-beta.6",
+ "ed25519-dalek 2.1.1",
+ "futures-lite 2.3.0",
+ "genawaiter",
+ "indexmap",
+ "iroh-base",
+ "iroh-blake3",
+ "iroh-metrics",
+ "iroh-net",
+ "postcard",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "serde",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-metrics"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd54b9cf342b2618efc8d3ff6cdcd083fa5a2cf6cc78bb473bd32e228eabb40e"
+dependencies = [
+ "anyhow",
+ "erased_set",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "once_cell",
+ "prometheus-client",
+ "reqwest 0.12.4",
+ "serde",
+ "struct_iterable",
+ "time 0.3.34",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-net"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a744000e6c5704479eeb4751eb23b9b8e7e56a0fc484beb8831694fc93e378f"
+dependencies = [
+ "aead",
+ "anyhow",
+ "axum",
+ "backoff",
+ "base64 0.22.1",
+ "bytes",
+ "der 0.7.8",
+ "derive_more 1.0.0-beta.6",
+ "duct",
+ "flume",
+ "futures-buffered",
+ "futures-concurrency",
+ "futures-lite 2.3.0",
+ "futures-sink",
+ "futures-util",
+ "governor",
+ "hex",
+ "hickory-proto",
+ "hickory-resolver",
+ "hostname",
+ "http 1.1.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-util",
+ "igd-next",
+ "iroh-base",
+ "iroh-metrics",
+ "iroh-quinn",
+ "iroh-quinn-proto",
+ "iroh-quinn-udp",
+ "libc",
+ "netdev",
+ "netlink-packet-core 0.7.0",
+ "netlink-packet-route 0.17.1",
+ "netlink-sys",
+ "num_enum",
+ "once_cell",
+ "parking_lot",
+ "pin-project",
+ "pkarr",
+ "postcard",
+ "rand 0.8.5",
+ "rand_core 0.6.4",
+ "rcgen 0.12.1",
+ "reqwest 0.12.4",
+ "ring 0.17.8",
+ "rtnetlink",
+ "rustls 0.21.11",
+ "rustls-webpki 0.101.7",
+ "serde",
+ "smallvec",
+ "socket2",
+ "strum",
+ "stun-rs",
+ "surge-ping",
+ "thiserror",
+ "time 0.3.34",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-rustls-acme",
+ "tokio-util",
+ "tracing",
+ "url",
+ "watchable",
+ "webpki-roots 0.25.4",
+ "windows 0.51.1",
+ "wmi",
+ "x509-parser 0.15.1",
+ "z32",
+]
+
+[[package]]
+name = "iroh-quinn"
+version = "0.10.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "906875956feb75d3d41d708ddaffeb11fdb10cd05f23efbcb17600037e411779"
+dependencies = [
+ "bytes",
+ "iroh-quinn-proto",
+ "iroh-quinn-udp",
+ "pin-project-lite",
+ "rustc-hash",
+ "rustls 0.21.11",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-quinn-proto"
+version = "0.10.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6bf92478805e67f2320459285496e1137edf5171411001a0d4d85f9bbafb792"
+dependencies = [
+ "bytes",
+ "rand 0.8.5",
+ "ring 0.17.8",
+ "rustc-hash",
+ "rustls 0.21.11",
+ "rustls-native-certs",
+ "slab",
+ "thiserror",
+ "tinyvec",
+ "tracing",
+]
+
+[[package]]
+name = "iroh-quinn-udp"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edc7915b3a31f08ee0bc02f73f4d61a5d5be146a1081ef7f70622a11627fd314"
+dependencies = [
+ "bytes",
+ "libc",
+ "socket2",
+ "tracing",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
 name = "is-terminal"
 version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2701,12 +3479,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
 
 [[package]]
-name = "jpeg-decoder"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
-
-[[package]]
 name = "js-sys"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2782,9 +3554,9 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.155"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
 
 [[package]]
 name = "libm"
@@ -2854,9 +3626,9 @@ dependencies = [
 
 [[package]]
 name = "mailparse"
-version = "0.14.1"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2d096594926cab442e054e047eb8c1402f7d5b2272573b97ba68aa40629f9757"
+checksum = "3da03d5980411a724e8aaf7b61a7b5e386ec55a7fb49ee3d0ff79efc7e5e7c7e"
 dependencies = [
  "charset",
  "data-encoding",
@@ -2895,6 +3667,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "md5"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
+
+[[package]]
 name = "memalloc"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2973,6 +3751,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "netdev"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fb353f5a5a852d5cc779c1c80bec0bd14a696ef832f3a761cb10091802c37109"
+dependencies = [
+ "dlopen2 0.5.0",
+ "libc",
+ "memalloc",
+ "netlink-packet-core 0.7.0",
+ "netlink-packet-route 0.17.1",
+ "netlink-sys",
+ "once_cell",
+ "system-configuration 0.6.0",
+ "windows 0.54.0",
+]
+
+[[package]]
 name = "netlink-packet-core"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2985,6 +3780,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "netlink-packet-core"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72724faf704479d67b388da142b186f916188505e7e0b26719019c525882eda4"
+dependencies = [
+ "anyhow",
+ "byteorder",
+ "netlink-packet-utils",
+]
+
+[[package]]
 name = "netlink-packet-route"
 version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2994,7 +3800,21 @@ dependencies = [
  "bitflags 1.3.2",
  "byteorder",
  "libc",
- "netlink-packet-core",
+ "netlink-packet-core 0.5.0",
+ "netlink-packet-utils",
+]
+
+[[package]]
+name = "netlink-packet-route"
+version = "0.17.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053998cea5a306971f88580d0829e90f270f940befd7cf928da179d4187a5a66"
+dependencies = [
+ "anyhow",
+ "bitflags 1.3.2",
+ "byteorder",
+ "libc",
+ "netlink-packet-core 0.7.0",
  "netlink-packet-utils",
 ]
 
@@ -3011,14 +3831,31 @@ dependencies = [
 ]
 
 [[package]]
+name = "netlink-proto"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b33524dc0968bfad349684447bfce6db937a9ac3332a1fe60c0c5a5ce63f21"
+dependencies = [
+ "bytes",
+ "futures",
+ "log",
+ "netlink-packet-core 0.7.0",
+ "netlink-sys",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
 name = "netlink-sys"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411"
 dependencies = [
  "bytes",
+ "futures",
  "libc",
  "log",
+ "tokio",
 ]
 
 [[package]]
@@ -3032,16 +3869,40 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.27.1"
+version = "0.26.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "598beaf3cc6fdd9a5dfb1630c2800c7acd31df7aaf0f565796fba2b53ca1af1b"
+dependencies = [
+ "bitflags 1.3.2",
+ "cfg-if",
+ "libc",
+]
+
+[[package]]
+name = "nix"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
+ "cfg_aliases",
  "libc",
 ]
 
 [[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
+name = "no-std-net"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43794a0ace135be66a25d3ae77d41b91615fb68ae937f904090203e81f755b65"
+
+[[package]]
 name = "nom"
 version = "7.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3052,6 +3913,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "nonzero_ext"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21"
+
+[[package]]
 name = "ntapi"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3113,7 +3980,7 @@ checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3138,9 +4005,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
  "libm",
@@ -3174,14 +4041,14 @@ dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "object"
-version = "0.32.2"
+version = "0.35.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441"
+checksum = "b8ec7ab813848ba4522158d5517a6093db1ded27575b070f4177b8d12b41db5e"
 dependencies = [
  "memchr",
 ]
@@ -3192,7 +4059,16 @@ version = "0.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff"
 dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
+]
+
+[[package]]
+name = "oid-registry"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c958dd45046245b9c3c2547369bb634eb461670b2e7e0de552905801a648d1d"
+dependencies = [
+ "asn1-rs 0.6.1",
 ]
 
 [[package]]
@@ -3215,9 +4091,9 @@ checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381"
 
 [[package]]
 name = "openssl"
-version = "0.10.63"
+version = "0.10.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8"
+checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
@@ -3236,7 +4112,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3247,18 +4123,18 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-src"
-version = "300.1.6+3.1.4"
+version = "300.3.0+3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "439fac53e092cd7442a3660c85dde4643ab3b5bd39040912388dcdabf6b88085"
+checksum = "eba8804a1c5765b18c4b3f907e6897ebabeedebc9830e1a0046c4a4cf44663e1"
 dependencies = [
  "cc",
 ]
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.99"
+version = "0.9.102"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae"
+checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
 dependencies = [
  "cc",
  "libc",
@@ -3285,6 +4161,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "os_pipe"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57119c3b893986491ec9aa85056780d3a0f3cf4da7cc09dd3650dbd6c6738fb9"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
 name = "overload"
 version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3337,6 +4223,20 @@ dependencies = [
 ]
 
 [[package]]
+name = "p521"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fc9e2161f1f215afdfce23677034ae137bbd45016a880c2eb3ba8eb95f085b2"
+dependencies = [
+ "base16ct 0.2.0",
+ "ecdsa 0.16.9",
+ "elliptic-curve 0.13.8",
+ "primeorder",
+ "rand_core 0.6.4",
+ "sha2 0.10.8",
+]
+
+[[package]]
 name = "parking"
 version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3344,9 +4244,9 @@ checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -3381,6 +4281,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "pem"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
+dependencies = [
+ "base64 0.22.1",
+ "serde",
+]
+
+[[package]]
 name = "pem-rfc7468"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3405,6 +4315,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
 
 [[package]]
+name = "pest"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "560131c633294438da9f7c4b08189194b20946c8274c6b9e38881a7874dc8ee8"
+dependencies = [
+ "memchr",
+ "thiserror",
+ "ucd-trie",
+]
+
+[[package]]
+name = "pest_derive"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26293c9193fbca7b1a3bf9b79dc1e388e927e6cacaa78b4a3ab705a1d3d41459"
+dependencies = [
+ "pest",
+ "pest_generator",
+]
+
+[[package]]
+name = "pest_generator"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3ec22af7d3fb470a85dd2ca96b7c577a1eb4ef6f1683a9fe9a8c16e136c04687"
+dependencies = [
+ "pest",
+ "pest_meta",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pest_meta"
+version = "2.7.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7a240022f37c361ec1878d646fc5b7d7c4d28d5946e1a80ad5a7a4f4ca0bdcd"
+dependencies = [
+ "once_cell",
+ "pest",
+ "sha2 0.10.8",
+]
+
+[[package]]
 name = "pgp"
 version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3462,22 +4417,22 @@ dependencies = [
 
 [[package]]
 name = "pin-project"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
 dependencies = [
  "pin-project-internal",
 ]
 
 [[package]]
 name = "pin-project-internal"
-version = "1.1.4"
+version = "1.1.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -3493,6 +4448,23 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
+name = "pkarr"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "242ae92dfb9d2ba3aaa9caf4723e72043bc50729ad05a763771771ba03196ffb"
+dependencies = [
+ "bytes",
+ "ed25519-dalek 2.1.1",
+ "rand 0.8.5",
+ "reqwest 0.11.27",
+ "self_cell",
+ "simple-dns",
+ "thiserror",
+ "url",
+ "z32",
+]
+
+[[package]]
 name = "pkcs1"
 version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3576,6 +4548,48 @@ dependencies = [
 ]
 
 [[package]]
+name = "pnet_base"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe4cf6fb3ab38b68d01ab2aea03ed3d1132b4868fa4e06285f29f16da01c5f4c"
+dependencies = [
+ "no-std-net",
+]
+
+[[package]]
+name = "pnet_macros"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "688b17499eee04a0408aca0aa5cba5fc86401d7216de8a63fdf7a4c227871804"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "regex",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "pnet_macros_support"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eea925b72f4bd37f8eab0f221bbe4c78b63498350c983ffa9dd4bcde7e030f56"
+dependencies = [
+ "pnet_base",
+]
+
+[[package]]
+name = "pnet_packet"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9a005825396b7fe7a38a8e288dbc342d5034dac80c15212436424fef8ea90ba"
+dependencies = [
+ "glob",
+ "pnet_base",
+ "pnet_macros",
+ "pnet_macros_support",
+]
+
+[[package]]
 name = "png"
 version = "0.17.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3589,6 +4603,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "poly1305"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
+dependencies = [
+ "cpufeatures",
+ "opaque-debug",
+ "universal-hash",
+]
+
+[[package]]
 name = "portable-atomic"
 version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3631,23 +4656,47 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
 
 [[package]]
-name = "pretty_assertions"
-version = "1.4.0"
+name = "precis-core"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+checksum = "d73e9dd26361c32e7cd13d1032bb01c4e26a23287274e8a4e2f228cf2c9ff77b"
 dependencies = [
- "diff",
- "yansi",
+ "precis-tools",
+ "ucd-parse",
+ "unicode-normalization",
 ]
 
 [[package]]
-name = "pretty_env_logger"
-version = "0.5.0"
+name = "precis-profiles"
+version = "0.1.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c"
+checksum = "bde4bd6624c60cb0abe2bea1dbdbb9085f629a853861e64df4abb099f8076ad4"
 dependencies = [
- "env_logger",
- "log",
+ "lazy_static",
+ "precis-core",
+ "precis-tools",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "precis-tools"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d07ecadec70b0f560f09abf815ae0ee1a940d38d2354c938ba7229ac7c9f5f52"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "ucd-parse",
+]
+
+[[package]]
+name = "pretty_assertions"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
+dependencies = [
+ "diff",
+ "yansi",
 ]
 
 [[package]]
@@ -3694,14 +4743,37 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.78"
+version = "1.0.85"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae"
+checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
+name = "prometheus-client"
+version = "0.22.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c1ca959da22a332509f2a73ae9e5f23f9dcfc31fd3a54d71f159495bd5909baa"
+dependencies = [
+ "dtoa",
+ "itoa",
+ "parking_lot",
+ "prometheus-client-derive-encode",
+]
+
+[[package]]
+name = "prometheus-client-derive-encode"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "440f724eba9f6996b75d63681b0a92b06947f1457076d503a4d2e2c8f56442b8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "proptest"
 version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3724,6 +4796,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4339fc7a1021c9c1621d87f5e3505f2805c8c105420ba2f2a4df86814590c142"
 
 [[package]]
+name = "quanta"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e5167a477619228a0b284fac2674e3c388cba90631d7b7de620e6f1fcd08da5"
+dependencies = [
+ "crossbeam-utils",
+ "libc",
+ "once_cell",
+ "raw-cpuid",
+ "wasi 0.11.0+wasi-snapshot-preview1",
+ "web-sys",
+ "winapi",
+]
+
+[[package]]
 name = "quic-rpc"
 version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3768,7 +4855,7 @@ dependencies = [
  "quinn-proto",
  "quinn-udp",
  "rustc-hash",
- "rustls",
+ "rustls 0.21.11",
  "thiserror",
  "tokio",
  "tracing",
@@ -3784,7 +4871,7 @@ dependencies = [
  "rand 0.8.5",
  "ring 0.16.20",
  "rustc-hash",
- "rustls",
+ "rustls 0.21.11",
  "rustls-native-certs",
  "slab",
  "thiserror",
@@ -3807,20 +4894,36 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
+name = "quoted-string-parser"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dc75379cdb451d001f1cb667a9f74e8b355e9df84cc5193513cbe62b96fc5e9"
+dependencies = [
+ "pest",
+ "pest_derive",
+]
+
+[[package]]
 name = "quoted_printable"
 version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "79ec282e887b434b68c18fe5c121d38e72a5cf35119b59e54ec5b992ea9c8eb0"
 
 [[package]]
+name = "radium"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
+
+[[package]]
 name = "radix_trie"
 version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3915,6 +5018,15 @@ name = "ratelimit"
 version = "1.0.0"
 
 [[package]]
+name = "raw-cpuid"
+version = "11.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e29830cbb1290e404f24c73af91c5d8d631ce7e128691e9477556b540cd01ecd"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
 name = "rayon"
 version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3940,13 +5052,25 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b"
 dependencies = [
- "pem",
+ "pem 1.1.1",
  "ring 0.16.20",
  "time 0.3.34",
  "yasna",
 ]
 
 [[package]]
+name = "rcgen"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48406db8ac1f3cbc7dcdb56ec355343817958a356ff430259bb07baf7607e1e1"
+dependencies = [
+ "pem 3.0.4",
+ "ring 0.17.8",
+ "time 0.3.34",
+ "yasna",
+]
+
+[[package]]
 name = "redox_syscall"
 version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3977,9 +5101,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.3"
+version = "1.10.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4008,6 +5132,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "regex-lite"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b661b2f27137bdbc16f00eda72866a92bb28af1753ffbd56744fb6e2e9cd8e"
+
+[[package]]
 name = "regex-syntax"
 version = "0.6.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4021,19 +5151,20 @@ checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "reqwest"
-version = "0.11.24"
+version = "0.11.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6920094eb85afde5e4a138be3f2de8bbdf28000f0029e72c45025a56b042251"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
 dependencies = [
  "base64 0.21.7",
  "bytes",
  "encoding_rs",
  "futures-core",
  "futures-util",
- "h2 0.3.24",
+ "h2",
  "http 0.2.12",
  "http-body 0.4.6",
  "hyper 0.14.28",
+ "hyper-rustls 0.24.2",
  "hyper-tls",
  "ipnet",
  "js-sys",
@@ -4043,20 +5174,64 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls-pemfile",
+ "rustls 0.21.11",
+ "rustls-pemfile 1.0.4",
  "serde",
  "serde_json",
  "serde_urlencoded",
- "sync_wrapper",
- "system-configuration",
+ "sync_wrapper 0.1.2",
+ "system-configuration 0.5.1",
  "tokio",
  "tokio-native-tls",
+ "tokio-rustls 0.24.1",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
  "web-sys",
- "winreg",
+ "webpki-roots 0.25.4",
+ "winreg 0.50.0",
+]
+
+[[package]]
+name = "reqwest"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
+dependencies = [
+ "base64 0.22.1",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http 1.1.0",
+ "http-body 1.0.0",
+ "http-body-util",
+ "hyper 1.2.0",
+ "hyper-rustls 0.26.0",
+ "hyper-util",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.22.4",
+ "rustls-pemfile 2.1.2",
+ "rustls-pki-types",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper 0.1.2",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "webpki-roots 0.26.1",
+ "winreg 0.52.0",
 ]
 
 [[package]]
@@ -4164,6 +5339,7 @@ dependencies = [
  "pkcs1 0.7.5",
  "pkcs8 0.10.2",
  "rand_core 0.6.4",
+ "sha2 0.10.8",
  "signature 2.2.0",
  "spki 0.7.3",
  "subtle",
@@ -4171,6 +5347,24 @@ dependencies = [
 ]
 
 [[package]]
+name = "rtnetlink"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a552eb82d19f38c3beed3f786bd23aa434ceb9ac43ab44419ca6d67a7e186c0"
+dependencies = [
+ "futures",
+ "log",
+ "netlink-packet-core 0.7.0",
+ "netlink-packet-route 0.17.1",
+ "netlink-packet-utils",
+ "netlink-proto",
+ "netlink-sys",
+ "nix 0.26.4",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
 name = "rusqlite"
 version = "0.31.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4192,9 +5386,9 @@ checksum = "efe2374f2385cdd8755a446f80b2a646de603c9d8539ca38734879b5c71e378b"
 
 [[package]]
 name = "rustc-demangle"
-version = "0.1.23"
+version = "0.1.24"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
 
 [[package]]
 name = "rustc-hash"
@@ -4235,23 +5429,38 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
+ "log",
  "ring 0.17.8",
- "rustls-webpki",
+ "rustls-webpki 0.101.7",
  "sct",
 ]
 
 [[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.4",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
 name = "rustls-native-certs"
 version = "0.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
 dependencies = [
  "openssl-probe",
- "rustls-pemfile",
+ "rustls-pemfile 1.0.4",
  "schannel",
  "security-framework",
 ]
@@ -4266,6 +5475,22 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-pemfile"
+version = "2.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+dependencies = [
+ "base64 0.22.1",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+
+[[package]]
 name = "rustls-webpki"
 version = "0.101.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4276,6 +5501,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "rustls-webpki"
+version = "0.102.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
+dependencies = [
+ "ring 0.17.8",
+ "rustls-pki-types",
+ "untrusted 0.9.0",
+]
+
+[[package]]
 name = "rustversion"
 version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4283,9 +5519,9 @@ checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4"
 
 [[package]]
 name = "rustyline"
-version = "13.0.0"
+version = "14.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02a2d683a4ac90aeef5b1013933f6d977bd37d51ff3f4dad829d4931a7e6be86"
+checksum = "7803e8936da37efd9b6d4478277f4b2b9bb5cdb37a113e8d63222e58da647e63"
 dependencies = [
  "bitflags 2.4.2",
  "cfg-if",
@@ -4295,12 +5531,12 @@ dependencies = [
  "libc",
  "log",
  "memchr",
- "nix",
+ "nix 0.28.0",
  "radix_trie",
  "unicode-segmentation",
  "unicode-width",
  "utf8parse",
- "winapi",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -4310,6 +5546,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
+name = "salsa20"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
+dependencies = [
+ "cipher",
+]
+
+[[package]]
 name = "same-file"
 version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4339,9 +5584,9 @@ dependencies = [
 
 [[package]]
 name = "schemars"
-version = "0.8.16"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "45a28f4c49489add4ce10783f7911893516f15afe45d015608d41faca6bc4d29"
+checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92"
 dependencies = [
  "dyn-clone",
  "schemars_derive",
@@ -4351,14 +5596,14 @@ dependencies = [
 
 [[package]]
 name = "schemars_derive"
-version = "0.8.16"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c767fd6fa65d9ccf9cf026122c1b555f2ef9a4f0cea69da4d7dbc3e258d30967"
+checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e"
 dependencies = [
  "proc-macro2",
  "quote",
  "serde_derive_internals",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4445,9 +5690,9 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
 dependencies = [
  "serde_derive",
 ]
@@ -4472,31 +5717,31 @@ dependencies = [
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.203"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_derive_internals"
-version = "0.26.0"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c"
+checksum = "330f01ce65a3a5fe59a60c82f3c9a024b573b8a6e875bd233fe5f934e71d54e3"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.66",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.117"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
 dependencies = [
  "itoa",
  "ryu",
@@ -4515,9 +5760,9 @@ dependencies = [
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
 dependencies = [
  "serde",
 ]
@@ -4535,6 +5780,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "serdect"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177"
+dependencies = [
+ "base16ct 0.2.0",
+ "serde",
+]
+
+[[package]]
 name = "sha-1"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4600,6 +5855,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "shared_child"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
 name = "signal-hook-registry"
 version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4635,6 +5900,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
 
 [[package]]
+name = "simple-dns"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01607fe2e61894468c6dc0b26103abb073fb08b79a3d9e4b6d76a1a341549958"
+dependencies = [
+ "bitflags 2.4.2",
+]
+
+[[package]]
 name = "slab"
 version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4645,9 +5919,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "smawk"
@@ -4681,6 +5955,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "spinning_top"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96d2d1d716fb500937168cc09353ffdc7a012be8475ac7308e1bdf0e3923300"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
 name = "spki"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4701,6 +5984,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "ssh-cipher"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "caac132742f0d33c3af65bfcde7f6aa8f62f0e991d80db99149eb9d44708784f"
+dependencies = [
+ "cipher",
+ "ssh-encoding 0.2.0",
+]
+
+[[package]]
 name = "ssh-encoding"
 version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4712,6 +6005,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "ssh-encoding"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb9242b9ef4108a78e8cd1a2c98e193ef372437f8c22be363075233321dd4a15"
+dependencies = [
+ "base64ct",
+ "pem-rfc7468 0.7.0",
+ "sha2 0.10.8",
+]
+
+[[package]]
 name = "ssh-key"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4725,7 +6029,28 @@ dependencies = [
  "sec1 0.3.0",
  "sha2 0.10.8",
  "signature 1.6.4",
- "ssh-encoding",
+ "ssh-encoding 0.1.0",
+ "zeroize",
+]
+
+[[package]]
+name = "ssh-key"
+version = "0.6.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca9b366a80cf18bb6406f4cf4d10aebfb46140a8c0c33f666a144c5c76ecbafc"
+dependencies = [
+ "ed25519-dalek 2.1.1",
+ "p256 0.13.2",
+ "p384 0.13.0",
+ "p521",
+ "rand_core 0.6.4",
+ "rsa 0.9.6",
+ "sec1 0.7.3",
+ "sha2 0.10.8",
+ "signature 2.2.0",
+ "ssh-cipher",
+ "ssh-encoding 0.2.0",
+ "subtle",
  "zeroize",
 ]
 
@@ -4748,22 +6073,78 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
+name = "struct_iterable"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "849a064c6470a650b72e41fa6c057879b68f804d113af92900f27574828e7712"
+dependencies = [
+ "struct_iterable_derive",
+ "struct_iterable_internal",
+]
+
+[[package]]
+name = "struct_iterable_derive"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8bb939ce88a43ea4e9d012f2f6b4cc789deb2db9d47bad697952a85d6978662c"
+dependencies = [
+ "erased-serde",
+ "proc-macro2",
+ "quote",
+ "struct_iterable_internal",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "struct_iterable_internal"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9426b2a0c03e6cc2ea8dbc0168dbbf943f88755e409fb91bcb8f6a268305f4a"
+
+[[package]]
 name = "strum"
-version = "0.26.1"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "723b93e8addf9aa965ebe2d11da6d7540fa2283fcea14b3371ff055f7ba13f5f"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
 
 [[package]]
 name = "strum_macros"
-version = "0.26.1"
+version = "0.26.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a3417fc93d76740d974a01654a09777cb500428cc874ca9f45edfe0c4d4cd18"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
 dependencies = [
  "heck",
  "proc-macro2",
  "quote",
  "rustversion",
- "syn 2.0.52",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "stun-rs"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0adebf9fb8fba5c39ee34092b0383f247e4d1255b98fcffec94b4b797b85b677"
+dependencies = [
+ "base64 0.22.1",
+ "bounded-integer",
+ "byteorder",
+ "crc",
+ "enumflags2",
+ "fallible-iterator",
+ "hmac-sha1",
+ "hmac-sha256",
+ "hostname-validator",
+ "lazy_static",
+ "md5",
+ "paste",
+ "precis-core",
+ "precis-profiles",
+ "quoted-string-parser",
+ "rand 0.8.5",
 ]
 
 [[package]]
@@ -4773,6 +6154,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
 
 [[package]]
+name = "surge-ping"
+version = "0.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "efbf95ce4c7c5b311d2ce3f088af2b93edef0f09727fa50fbe03c7a979afce77"
+dependencies = [
+ "hex",
+ "parking_lot",
+ "pnet_packet",
+ "rand 0.8.5",
+ "socket2",
+ "thiserror",
+ "tokio",
+ "tracing",
+]
+
+[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4785,9 +6182,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.52"
+version = "2.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07"
+checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4801,6 +6198,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
 
 [[package]]
+name = "sync_wrapper"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c"
+
+[[package]]
 name = "synstructure"
 version = "0.12.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4813,6 +6216,17 @@ dependencies = [
 ]
 
 [[package]]
+name = "synstructure"
+version = "0.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8af7666ab7b6390ab78131fb5b0fce11d6b7a6951602017c35fa82800708971"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
 name = "sysinfo"
 version = "0.26.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4834,7 +6248,18 @@ checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
- "system-configuration-sys",
+ "system-configuration-sys 0.5.0",
+]
+
+[[package]]
+name = "system-configuration"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "658bc6ee10a9b4fcf576e9b0819d95ec16f4d2c02d39fd83ac1c8789785c4a42"
+dependencies = [
+ "bitflags 2.4.2",
+ "core-foundation",
+ "system-configuration-sys 0.6.0",
 ]
 
 [[package]]
@@ -4848,33 +6273,40 @@ dependencies = [
 ]
 
 [[package]]
+name = "system-configuration-sys"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
 name = "tagger"
 version = "4.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "094c9f64d6de9a8506b1e49b63a29333b37ed9e821ee04be694d431b3264c3c5"
 
 [[package]]
+name = "tap"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
+
+[[package]]
 name = "tempfile"
 version = "3.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
 dependencies = [
  "cfg-if",
- "fastrand",
+ "fastrand 2.0.1",
  "rustix",
  "windows-sys 0.52.0",
 ]
 
 [[package]]
-name = "termcolor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
 name = "testdir"
 version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4901,22 +6333,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b"
+checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.57"
+version = "1.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81"
+checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -4998,9 +6430,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.36.0"
+version = "1.38.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
+checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
 dependencies = [
  "backtrace",
  "bytes",
@@ -5027,13 +6459,13 @@ dependencies = [
 
 [[package]]
 name = "tokio-macros"
-version = "2.2.0"
+version = "2.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b"
+checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5047,6 +6479,55 @@ dependencies = [
 ]
 
 [[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.11",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls-acme"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ebc06d846f8367f24c3a8882328707d1a5e507ef4f40943723ddbe2c17b9f24"
+dependencies = [
+ "async-trait",
+ "base64 0.21.7",
+ "chrono",
+ "futures",
+ "log",
+ "num-bigint",
+ "pem 3.0.4",
+ "proc-macro2",
+ "rcgen 0.12.1",
+ "reqwest 0.11.27",
+ "ring 0.17.8",
+ "rustls 0.21.11",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "url",
+ "webpki-roots 0.25.4",
+ "x509-parser 0.16.0",
+]
+
+[[package]]
 name = "tokio-serde"
 version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5063,9 +6544,9 @@ dependencies = [
 
 [[package]]
 name = "tokio-stream"
-version = "0.1.14"
+version = "0.1.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842"
+checksum = "267ac89e0bec6e691e5813911606935d77c476ff49024f98abcea3e7b15e37af"
 dependencies = [
  "futures-core",
  "pin-project-lite",
@@ -5101,35 +6582,34 @@ dependencies = [
 
 [[package]]
 name = "tokio-util"
-version = "0.7.10"
+version = "0.7.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15"
+checksum = "9cf6b47b3771c49ac75ad09a6162f53ad4b8088b76ac60e8ec1455b31a189fe1"
 dependencies = [
  "bytes",
  "futures-core",
  "futures-sink",
  "pin-project-lite",
  "tokio",
- "tracing",
 ]
 
 [[package]]
 name = "toml"
-version = "0.8.10"
+version = "0.8.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a9aad4a3066010876e8dcf5a8a06e70a558751117a145c6ce2b82c2e2054290"
+checksum = "a4e43f8cc456c9704c851ae29c67e17ef65d2c30017c17a9765b89c382dc8bba"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.6",
+ "toml_edit 0.22.13",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.5"
+version = "0.6.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
 dependencies = [
  "serde",
 ]
@@ -5147,9 +6627,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.6"
+version = "0.22.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2c1b5fd4128cc8d3e0cb74d4ed9a9cc7c7284becd4df68f5f940e1ad123606f6"
+checksum = "c127785850e8c20836d49732ae6abfa47616e60bf9d9f57c43c250361a9db96c"
 dependencies = [
  "indexmap",
  "serde",
@@ -5206,7 +6686,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5265,6 +6745,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
+name = "ttl_cache"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4189890526f0168710b6ee65ceaedf1460c48a14318ceec933cb26baa492096a"
+dependencies = [
+ "linked-hash-map",
+]
+
+[[package]]
 name = "tungstenite"
 version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5323,6 +6812,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "ucd-parse"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06ff81122fcbf4df4c1660b15f7e3336058e7aec14437c9f85c6b31a0f279b9"
+dependencies = [
+ "regex-lite",
+]
+
+[[package]]
+name = "ucd-trie"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed646292ffc8188ef8ea4d1e0e0150fb15a5c2e12ad9b8fc191ae7a8a7f3c4b9"
+
+[[package]]
 name = "unarray"
 version = "0.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5374,6 +6878,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
 
 [[package]]
+name = "universal-hash"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea"
+dependencies = [
+ "crypto-common",
+ "subtle",
+]
+
+[[package]]
 name = "untrusted"
 version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5394,6 +6908,7 @@ dependencies = [
  "form_urlencoded",
  "idna 0.5.0",
  "percent-encoding",
+ "serde",
 ]
 
 [[package]]
@@ -5410,9 +6925,9 @@ checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
 
 [[package]]
 name = "uuid"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
 dependencies = [
  "getrandom 0.2.12",
  "serde",
@@ -5437,6 +6952,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
 
 [[package]]
+name = "waker-fn"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "317211a0dc0ceedd78fb2ca9a44aed3d7b9b26f81870d485c07122b4350673b7"
+
+[[package]]
 name = "walkdir"
 version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5500,7 +7021,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
  "wasm-bindgen-shared",
 ]
 
@@ -5534,7 +7055,7 @@ checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -5546,6 +7067,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
+name = "watchable"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45b42a2f611916b5965120a9cde2b60f2db4454826dd9ad5e6f47c24a5b3b259"
+dependencies = [
+ "event-listener 4.0.3",
+ "futures-util",
+ "parking_lot",
+ "thiserror",
+]
+
+[[package]]
 name = "web-sys"
 version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5556,6 +7089,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "webpki-roots"
+version = "0.25.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1"
+
+[[package]]
+name = "webpki-roots"
+version = "0.26.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3de34ae270483955a94f4b21bdaaeb83d508bb84a01435f393818edb0012009"
+dependencies = [
+ "rustls-pki-types",
+]
+
+[[package]]
 name = "weezl"
 version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5623,12 +7171,94 @@ dependencies = [
 ]
 
 [[package]]
+name = "windows"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca229916c5ee38c2f2bc1e9d8f04df975b4bd93f9955dc69fabb5d91270045c9"
+dependencies = [
+ "windows-core 0.51.1",
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
+dependencies = [
+ "windows-core 0.52.0",
+ "windows-implement",
+ "windows-interface",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
+dependencies = [
+ "windows-core 0.54.0",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.51.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1f8cf84f35d2db49a46868f947758c7a1138116f7fac3bc844f43ade1292e64"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
 name = "windows-core"
 version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-implement"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12168c33176773b86799be25e2a2ba07c7aab9968b37541f1094dbd7a60c8946"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "windows-interface"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d8dc32e0095a7eeccebd0e3f09e9509365ecb3fc6ac4d6f5f14a3f6392942d1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "windows-result"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "749f0da9cc72d82e600d8d2e44cadd0b9eedb9038f71a1c58556ac1c5791813b"
+dependencies = [
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -5646,7 +7276,7 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.4",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -5666,17 +7296,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7dd37b7e5ab9018759f893a1952c9420d060016fc19a472b4bb20d1bdd694d1b"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.4",
- "windows_aarch64_msvc 0.52.4",
- "windows_i686_gnu 0.52.4",
- "windows_i686_msvc 0.52.4",
- "windows_x86_64_gnu 0.52.4",
- "windows_x86_64_gnullvm 0.52.4",
- "windows_x86_64_msvc 0.52.4",
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
 ]
 
 [[package]]
@@ -5687,9 +7318,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcf46cf4c365c6f2d1cc93ce535f2c8b244591df96ceee75d8e83deb70a9cac9"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -5705,9 +7336,9 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da9f259dd3bcf6990b55bffd094c4f7235817ba4ceebde8e6d11cd0c5633b675"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
@@ -5723,9 +7354,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b474d8268f99e0995f25b9f095bc7434632601028cf86590aea5c8a5cb7801d3"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -5741,9 +7378,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1515e9a29e5bed743cb4415a9ecf5dfca648ce85ee42e15873c3cd8610ff8e02"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -5759,9 +7396,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5eee091590e89cc02ad514ffe3ead9eb6b660aedca2183455434b93546371a03"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -5771,9 +7408,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77ca79f2451b49fa9e2af39f0747fe999fcda4f5e241b2898624dca97a1f2177"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -5789,9 +7426,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.4"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32b752e52a2da0ddfbdbcc6fceadfeede4c939ed16d13e648833a61dfb611ed8"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "winnow"
@@ -5822,6 +7459,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "winreg"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a277a57398d4bfa075df44f501a17cfdf8542d224f0d36095a2adc7aee4ef0a5"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "wmi"
+version = "0.13.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc2f0a4062ca522aad4705a2948fd4061b3857537990202a8ddd5af21607f79a"
+dependencies = [
+ "chrono",
+ "futures",
+ "log",
+ "serde",
+ "thiserror",
+ "windows 0.52.0",
+]
+
+[[package]]
+name = "wyz"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
+dependencies = [
+ "tap",
+]
+
+[[package]]
 name = "x25519-dalek"
 version = "2.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5839,13 +7509,47 @@ version = "0.14.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8"
 dependencies = [
- "asn1-rs",
+ "asn1-rs 0.5.2",
  "base64 0.13.1",
  "data-encoding",
- "der-parser",
+ "der-parser 8.2.0",
+ "lazy_static",
+ "nom",
+ "oid-registry 0.6.1",
+ "rusticata-macros",
+ "thiserror",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "x509-parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7069fba5b66b9193bd2c5d3d4ff12b839118f6bcbef5328efafafb5395cf63da"
+dependencies = [
+ "asn1-rs 0.5.2",
+ "data-encoding",
+ "der-parser 8.2.0",
  "lazy_static",
  "nom",
- "oid-registry",
+ "oid-registry 0.6.1",
+ "rusticata-macros",
+ "thiserror",
+ "time 0.3.34",
+]
+
+[[package]]
+name = "x509-parser"
+version = "0.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fcbc162f30700d6f3f82a24bf7cc62ffe7caea42c0b2cba8bf7f3ae50cf51f69"
+dependencies = [
+ "asn1-rs 0.6.1",
+ "data-encoding",
+ "der-parser 9.0.0",
+ "lazy_static",
+ "nom",
+ "oid-registry 0.7.0",
  "rusticata-macros",
  "thiserror",
  "time 0.3.34",
@@ -5863,6 +7567,21 @@ dependencies = [
 ]
 
 [[package]]
+name = "xml-rs"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
+
+[[package]]
+name = "xmltree"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7d8a75eaf6557bb84a65ace8609883db44a29951042ada9b393151532e41fcb"
+dependencies = [
+ "xml-rs",
+]
+
+[[package]]
 name = "yansi"
 version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5914,6 +7633,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "z32"
+version = "1.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edb37266251c28b03d08162174a91c3a092e3bd4f476f8205ee1c507b78b7bdc"
+
+[[package]]
 name = "zerocopy"
 version = "0.7.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -5930,7 +7655,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
 ]
 
 [[package]]
@@ -5950,5 +7675,20 @@ checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.52",
+ "syn 2.0.66",
+]
+
+[[package]]
+name = "zune-core"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f423a2c17029964870cfaabb1f13dfab7d092a62a29a89264f4d36990ca414a"
+
+[[package]]
+name = "zune-jpeg"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec866b44a2a1fd6133d363f073ca1b179f438f99e7e5bfb1e33f7181facfe448"
+dependencies = [
+ "zune-core",
 ]
diff --git a/pkgs/development/libraries/libdeltachat/default.nix b/pkgs/development/libraries/libdeltachat/default.nix
index 75ba9ab621b2f..4f303ba3ff4b2 100644
--- a/pkgs/development/libraries/libdeltachat/default.nix
+++ b/pkgs/development/libraries/libdeltachat/default.nix
@@ -5,6 +5,7 @@
 , cmake
 , deltachat-desktop
 , deltachat-repl
+, deltachat-rpc-server
 , openssl
 , perl
 , pkg-config
@@ -30,13 +31,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "libdeltachat";
-  version = "1.136.3";
+  version = "1.140.2";
 
   src = fetchFromGitHub {
     owner = "deltachat";
     repo = "deltachat-core-rust";
     rev = "v${version}";
-    hash = "sha256-/ZWpPpxnOCLGswrfbEPvfUn1LpdBQeR5LecRAB0PEhI=";
+    hash = "sha256-BSbvgKiI89B+nxp5McBKTJAwgePt27C1QvSQLhTL7pQ=";
   };
 
   patches = [
@@ -81,7 +82,7 @@ in stdenv.mkDerivation rec {
   passthru = {
     inherit cargoLock;
     tests = {
-      inherit deltachat-desktop deltachat-repl;
+      inherit deltachat-desktop deltachat-repl deltachat-rpc-server;
       python = python3.pkgs.deltachat;
     };
   };
diff --git a/pkgs/development/libraries/libdeltachat/no-static-lib.patch b/pkgs/development/libraries/libdeltachat/no-static-lib.patch
index 14ea1106138f9..9dc4ffd0ec074 100644
--- a/pkgs/development/libraries/libdeltachat/no-static-lib.patch
+++ b/pkgs/development/libraries/libdeltachat/no-static-lib.patch
@@ -1,33 +1,33 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 44ca43e7..8b6960dd 100644
+index 5587e391..a18092f5 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -14,7 +14,6 @@ find_program(CARGO cargo)
+@@ -20,7 +20,6 @@ endif()
  
  add_custom_command(
  	OUTPUT
--	"target/release/libdeltachat.a"
- 	"target/release/libdeltachat.${DYNAMIC_EXT}"
- 	"target/release/pkgconfig/deltachat.pc"
+-	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.a"
+ 	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.${DYNAMIC_EXT}"
+ 	"${CMAKE_BINARY_DIR}/target/release/pkgconfig/deltachat.pc"
          COMMAND
-@@ -39,12 +38,10 @@ add_custom_target(
+@@ -35,12 +34,10 @@ add_custom_target(
  	lib_deltachat
  	ALL
  	DEPENDS
--	"target/release/libdeltachat.a"
- 	"target/release/libdeltachat.${DYNAMIC_EXT}"
- 	"target/release/pkgconfig/deltachat.pc"
+-	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.a"
+ 	"${CMAKE_BINARY_DIR}/target/release/libdeltachat.${DYNAMIC_EXT}"
+ 	"${CMAKE_BINARY_DIR}/target/release/pkgconfig/deltachat.pc"
  )
  
  install(FILES "deltachat-ffi/deltachat.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
--install(FILES "target/release/libdeltachat.a" DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(FILES "target/release/libdeltachat.${DYNAMIC_EXT}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(FILES "target/release/pkgconfig/deltachat.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+-install(FILES "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release/libdeltachat.a" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release/libdeltachat.${DYNAMIC_EXT}" DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ install(FILES "${CMAKE_BINARY_DIR}/target/${ARCH_DIR}/release/pkgconfig/deltachat.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
 diff --git a/deltachat-ffi/Cargo.toml b/deltachat-ffi/Cargo.toml
-index de0fbafe..120efec9 100644
+index d66cb00f..48347a48 100644
 --- a/deltachat-ffi/Cargo.toml
 +++ b/deltachat-ffi/Cargo.toml
-@@ -12,7 +12,7 @@ categories = ["cryptography", "std", "email"]
+@@ -11,7 +11,7 @@ categories = ["cryptography", "std", "email"]
  
  [lib]
  name = "deltachat"
diff --git a/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch b/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch
new file mode 100644
index 0000000000000..a1826354f88ba
--- /dev/null
+++ b/pkgs/development/libraries/libdevil/0001-il_endian.h-Fix-endian-handling.patch
@@ -0,0 +1,35 @@
+From 85ca659a59ae5be6fc0824b0684967ec94727e2a Mon Sep 17 00:00:00 2001
+From: toonn <toonn@toonn.io>
+Date: Wed, 12 Jun 2024 11:39:35 +0000
+Subject: [PATCH] il_endian.h: Fix endian handling
+
+Based on https://sourceforge.net/p/resil/tickets/8/, which has also been
+incorporated in the MacPort for libdevil 1.7.8,
+https://trac.macports.org/export/154482/trunk/dports/devel/libdevil/files/patch-src-IL-include-il_endian.h.diff,
+but updated for the header included in release 1.8.0 of libdevil.
+---
+ src-IL/include/il_endian.h | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src-IL/include/il_endian.h b/src-IL/include/il_endian.h
+index c4e6d86..a3cd57f 100644
+--- a/src-IL/include/il_endian.h
++++ b/src-IL/include/il_endian.h
+@@ -23,9 +23,13 @@ extern "C" {
+ #ifndef __BIG_ENDIAN__
+ #define __BIG_ENDIAN__ 1
+ #endif
++#else
++#ifndef __LITTLE_ENDIAN__
++#define __LITTLE_ENDIAN__ 1
++#endif
+ #endif
+ 
+-#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __BIG_ENDIAN__) \
++#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \
+   || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__))
+ #undef __LITTLE_ENDIAN__
+ #define Short(s) iSwapShort(s)
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/libdevil/default.nix b/pkgs/development/libraries/libdevil/default.nix
index 36bd2f9ef12f1..63ca4877da65f 100644
--- a/pkgs/development/libraries/libdevil/default.nix
+++ b/pkgs/development/libraries/libdevil/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, cmake
 , libjpeg
 , libpng
 , libmng
@@ -18,16 +19,18 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libdevil";
-  version = "1.7.8";
+  version = "1.8.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/openil/DevIL-${finalAttrs.version}.tar.gz";
-    sha256 = "1zd850nn7nvkkhasrv7kn17kzgslr5ry933v6db62s4lr0zzlbv8";
+    hash = "sha256-AHWXPufdifBQeHPiWArHgzZFLSnTSgcTSyCPROL+twk=";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  sourceRoot = "DevIL/DevIL";
+
+  nativeBuildInputs = [ cmake pkg-config ];
 
   buildInputs = [ libjpeg libpng libmng lcms1 libtiff openexr ]
     ++ lib.optionals withXorg [ libX11 libGL ]
@@ -35,30 +38,20 @@ stdenv.mkDerivation (finalAttrs: {
 
   configureFlags = [ "--enable-ILU" "--enable-ILUT" ];
 
+  CXXFLAGS = lib.optionalString stdenv.cc.isClang "-Wno-register";
+
   preConfigure = ''
-    sed -i 's, -std=gnu99,,g' configure
     sed -i 's,malloc.h,stdlib.h,g' src-ILU/ilur/ilur.c
-  '' + lib.optionalString stdenv.cc.isClang ''
-    sed -i 's/libIL_la_CXXFLAGS = $(AM_CFLAGS)/libIL_la_CXXFLAGS =/g' lib/Makefile.in
-  '';
-
-  postConfigure = ''
-    sed -i '/RESTRICT_KEYWORD/d' include/IL/config.h
   '';
 
   patches = [
-    (fetchurl {
-        url = "https://sources.debian.org/data/main/d/devil/1.7.8-10/debian/patches/03_CVE-2009-3994.diff";
-        sha256 = "0qkx2qfv02igbrmsn6z5a3lbrbwjfh3rb0c2sj54wy0j1f775hbc";
-    })
-    ./ftbfs-libpng15.patch
-    ./il_endian.h.patch
+    ./0001-il_endian.h-Fix-endian-handling.patch
   ];
 
   enableParallelBuilding = true;
 
   postPatch = ''
-    for a in test/Makefile.in test/format_test/format_checks.sh.in ; do
+    for a in test/Makefile.am test/format_test/format_checks.sh.in ; do
       substituteInPlace $a \
         --replace /bin/bash ${runtimeShell}
     done
@@ -68,7 +61,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://openil.sourceforge.net/";
-    description = "An image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
+    description = "Image library which can can load, save, convert, manipulate, filter and display a wide variety of image formats";
     mainProgram = "ilur";
     license = licenses.lgpl2;
     pkgConfigModules = [ "IL" ];
diff --git a/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch b/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch
deleted file mode 100644
index 5fc53c2dc6a70..0000000000000
--- a/pkgs/development/libraries/libdevil/ftbfs-libpng15.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Source: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649554
---- devil-1.7.8.orig/src-IL/src/il_icon.c
-+++ devil-1.7.8/src-IL/src/il_icon.c
-@@ -525,7 +525,11 @@
- 
- 	// Expand low-bit-depth grayscale images to 8 bits
- 	if (ico_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
-+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
-+		png_set_expand_gray_1_2_4_to_8(ico_png_ptr);
-+#else
- 		png_set_gray_1_2_4_to_8(ico_png_ptr);
-+#endif
- 	}
- 
- 	// Expand RGB images with transparency to full alpha channels
-only in patch2:
-unchanged:
---- devil-1.7.8.orig/src-IL/src/il_png.c
-+++ devil-1.7.8/src-IL/src/il_png.c
-@@ -278,7 +278,11 @@
- 
- 	// Expand low-bit-depth grayscale images to 8 bits
- 	if (png_color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) {
-+#if PNG_LIBPNG_VER_MAJOR >= 1 && PNG_LIBPNG_VER_MINOR >= 4
-+		png_set_expand_gray_1_2_4_to_8(png_ptr);
-+#else
- 		png_set_gray_1_2_4_to_8(png_ptr);
-+#endif
- 	}
- 
- 	// Expand RGB images with transparency to full alpha channels
diff --git a/pkgs/development/libraries/libdevil/il_endian.h.patch b/pkgs/development/libraries/libdevil/il_endian.h.patch
deleted file mode 100644
index c220e6802fd9f..0000000000000
--- a/pkgs/development/libraries/libdevil/il_endian.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Source: http://sourceforge.net/p/resil/tickets/8/
---- devil-1.7.8.orig/src-IL/include/il_endian.h.orig	2009-03-08 01:10:08.000000000 -0600
-+++ devil-1.7.8/src-IL/include/il_endian.h	2013-11-03 01:52:37.000000000 -0600
-@@ -19,9 +19,13 @@
- 	#ifndef __BIG_ENDIAN__
- 	#define __BIG_ENDIAN__ 1
- 	#endif
-+#else
-+	#ifndef __LITTLE_ENDIAN__
-+	#define __LITTLE_ENDIAN__ 1
-+	#endif
- #endif
- 
--#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __BIG_ENDIAN__) \
-+#if (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__) \
-   || (defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__))
-  	#undef __LITTLE_ENDIAN__
- 	#define Short(s) iSwapShort(s)
-@@ -39,8 +43,6 @@
- 	#define BigDouble(d)  
- #else
- 	#undef __BIG_ENDIAN__
--	#undef __LITTLE_ENDIAN__  // Not sure if it's defined by any compiler...
--	#define __LITTLE_ENDIAN__
- 	#define Short(s)  
- 	#define UShort(s)  
- 	#define Int(i)  
diff --git a/pkgs/development/libraries/libdex/default.nix b/pkgs/development/libraries/libdex/default.nix
index 2837086934217..373fae4876b1e 100644
--- a/pkgs/development/libraries/libdex/default.nix
+++ b/pkgs/development/libraries/libdex/default.nix
@@ -1,6 +1,6 @@
 { stdenv
 , lib
-, fetchFromGitLab
+, fetchurl
 , gi-docgen
 , gobject-introspection
 , meson
@@ -12,18 +12,15 @@
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libdex";
-  version = "0.4.3";
+  version = "0.6.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "libdex";
-    rev = version;
-    sha256 = "0GNlgJgAOE3JGwu/6Zsh4sjFapA7nUcGD3lgZZJ0BfQ=";
+  src = fetchurl {
+    url = "mirror://gnome/sources/libdex/${lib.versions.majorMinor finalAttrs.version}/libdex-${finalAttrs.version}.tar.xz";
+    hash = "sha256-0XbeZXhXHjKowLYDtqWhP6X4f7a1RCV1s47FrxaxepI=";
   };
 
   nativeBuildInputs = [
@@ -60,7 +57,7 @@ stdenv.mkDerivation rec {
     description = "Library supporting deferred execution for GNOME and GTK";
     homepage = "https://gitlab.gnome.org/GNOME/libdex";
     maintainers = teams.gnome.members;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.lgpl21Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/libdigidocpp/default.nix b/pkgs/development/libraries/libdigidocpp/default.nix
index 90a169df77348..d957d2d05d0d2 100644
--- a/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/pkgs/development/libraries/libdigidocpp/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, minizip, pcsclite, opensc, openssl
+{ lib, stdenv, fetchurl, cmake, minizip, pcsclite, opensc, openssl
 , xercesc, xml-security-c, pkg-config, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
-  version = "3.16.0";
+  version = "3.17.1";
   pname = "libdigidocpp";
 
   src = fetchurl {
      url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-     hash = "sha256-XgObeVQJ2X7hNIelGK55RTtkKvU6D+RkLMc24/PZCzY=";
+     hash = "sha256-3qDsIAOiWMZDj2zLE+Os7BoeCPeC4JQ6p8jSBd7PdV0=";
   };
 
   nativeBuildInputs = [ cmake pkg-config xxd ];
diff --git a/pkgs/development/libraries/libdiscid/default.nix b/pkgs/development/libraries/libdiscid/default.nix
index 11cbdc1d89616..926973bb5739d 100644
--- a/pkgs/development/libraries/libdiscid/default.nix
+++ b/pkgs/development/libraries/libdiscid/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation -framework IOKit";
 
   meta = with lib; {
-    description = "A C library for creating MusicBrainz DiscIDs from audio CDs";
+    description = "C library for creating MusicBrainz DiscIDs from audio CDs";
     homepage = "http://musicbrainz.org/doc/libdiscid";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/libdisplay-info/default.nix b/pkgs/development/libraries/libdisplay-info/default.nix
index 20376ba6a4b3b..68cca4ea13558 100644
--- a/pkgs/development/libraries/libdisplay-info/default.nix
+++ b/pkgs/development/libraries/libdisplay-info/default.nix
@@ -11,14 +11,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libdisplay-info";
-  version = "0.1.1";
+  version = "0.2.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "emersion";
     repo = pname;
     rev = version;
-    sha256 = "sha256-7t1CoLus3rPba9paapM7+H3qpdsw7FlzJsSHFwM/2Lk=";
+    sha256 = "sha256-6xmWBrPHghjok43eIDGeshpUEQTuwWLXNHg7CnBUt3Q=";
   };
 
   depsBuildBuild = [ pkg-config ];
diff --git a/pkgs/development/libraries/libdivecomputer/default.nix b/pkgs/development/libraries/libdivecomputer/default.nix
index f79e3dc717a58..8824061dee86b 100644
--- a/pkgs/development/libraries/libdivecomputer/default.nix
+++ b/pkgs/development/libraries/libdivecomputer/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.libdivecomputer.org";
-    description = "A cross-platform and open source library for communication with dive computers from various manufacturers";
+    description = "Cross-platform and open source library for communication with dive computers from various manufacturers";
     mainProgram = "dctool";
     maintainers = [ maintainers.mguentner ];
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/libdmtx/default.nix b/pkgs/development/libraries/libdmtx/default.nix
index 4c5ef2c33140c..bd7eb2359ef7f 100644
--- a/pkgs/development/libraries/libdmtx/default.nix
+++ b/pkgs/development/libraries/libdmtx/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   meta = {
-    description = "An open source software for reading and writing Data Matrix barcodes";
+    description = "Open source software for reading and writing Data Matrix barcodes";
     homepage = "https://github.com/dmtx/libdmtx";
     changelog = "https://github.com/dmtx/libdmtx/blob/v${version}/ChangeLog";
     platforms = lib.platforms.all;
diff --git a/pkgs/development/libraries/libdovi/Cargo.lock b/pkgs/development/libraries/libdovi/Cargo.lock
index 417a92d2d1663..13d06de98ed40 100644
--- a/pkgs/development/libraries/libdovi/Cargo.lock
+++ b/pkgs/development/libraries/libdovi/Cargo.lock
@@ -3,45 +3,43 @@
 version = 3
 
 [[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "anes"
 version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299"
 
 [[package]]
-name = "anyhow"
-version = "1.0.70"
+name = "anstyle"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
 
 [[package]]
-name = "atty"
-version = "0.2.14"
+name = "anyhow"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi 0.1.19",
- "libc",
- "winapi",
-]
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
 
 [[package]]
 name = "bitstream-io"
-version = "1.6.0"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d28070975aaf4ef1fd0bd1f29b739c06c2cdd9972e090617fb6dca3b2cb564e"
+checksum = "06c9989a51171e2e81038ab168b6ae22886fe9ded214430dbb4f41c28cf176da"
 
 [[package]]
 name = "bitvec"
@@ -57,18 +55,18 @@ dependencies = [
 
 [[package]]
 name = "bitvec_helpers"
-version = "3.1.2"
+version = "3.1.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ef6883bd86b4112b56be19de3a1628de6c4063be7be6e641d484c83069efb4a"
+checksum = "c810ea0801e8aabb86ded7f207b0d5a7f23c804cd1b7719aba2b4970899c099a"
 dependencies = [
  "bitstream-io",
 ]
 
 [[package]]
 name = "bumpalo"
-version = "3.12.0"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "cast"
@@ -84,9 +82,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "ciborium"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f"
+checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e"
 dependencies = [
  "ciborium-io",
  "ciborium-ll",
@@ -95,15 +93,15 @@ dependencies = [
 
 [[package]]
 name = "ciborium-io"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369"
+checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757"
 
 [[package]]
 name = "ciborium-ll"
-version = "0.2.0"
+version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b"
+checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9"
 dependencies = [
  "ciborium-io",
  "half",
@@ -111,55 +109,59 @@ dependencies = [
 
 [[package]]
 name = "clap"
-version = "3.2.23"
+version = "4.5.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
 dependencies = [
- "bitflags",
- "clap_lex",
- "indexmap",
- "textwrap",
+ "clap_builder",
 ]
 
 [[package]]
-name = "clap_lex"
-version = "0.2.4"
+name = "clap_builder"
+version = "4.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
 dependencies = [
- "os_str_bytes",
+ "anstyle",
+ "clap_lex",
 ]
 
 [[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
 name = "crc"
-version = "3.0.1"
+version = "3.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe"
+checksum = "69e6e4d7b33a94f0991c26729976b10ebde1d34c3ee82408fb536164fa10d636"
 dependencies = [
  "crc-catalog",
 ]
 
 [[package]]
 name = "crc-catalog"
-version = "2.2.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484"
+checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5"
 
 [[package]]
 name = "criterion"
-version = "0.4.0"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb"
+checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f"
 dependencies = [
  "anes",
- "atty",
  "cast",
  "ciborium",
  "clap",
  "criterion-plot",
+ "is-terminal",
  "itertools",
- "lazy_static",
  "num-traits",
+ "once_cell",
  "oorandom",
  "plotters",
  "rayon",
@@ -182,51 +184,39 @@ dependencies = [
 ]
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf2b3e8478797446514c91ef04bafcb59faba183e621ad488df88983cc14128c"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
 name = "crossbeam-deque"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
 dependencies = [
- "cfg-if",
  "crossbeam-epoch",
  "crossbeam-utils",
 ]
 
 [[package]]
 name = "crossbeam-epoch"
-version = "0.9.14"
+version = "0.9.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
 dependencies = [
- "autocfg",
- "cfg-if",
  "crossbeam-utils",
- "memoffset",
- "scopeguard",
 ]
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.15"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
-dependencies = [
- "cfg-if",
-]
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
 
 [[package]]
 name = "dolby_vision"
-version = "3.1.2"
+version = "3.3.0"
 dependencies = [
  "anyhow",
  "bitvec",
@@ -241,9 +231,15 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "funty"
@@ -253,42 +249,45 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c"
 
 [[package]]
 name = "half"
-version = "1.8.2"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7"
+checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
+dependencies = [
+ "cfg-if",
+ "crunchy",
+]
 
 [[package]]
 name = "hashbrown"
-version = "0.12.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 
 [[package]]
 name = "hermit-abi"
-version = "0.1.19"
+version = "0.3.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
 
 [[package]]
-name = "hermit-abi"
-version = "0.2.6"
+name = "indexmap"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
- "libc",
+ "equivalent",
+ "hashbrown",
 ]
 
 [[package]]
-name = "indexmap"
-version = "1.9.3"
+name = "is-terminal"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+checksum = "f23ff5ef2b80d608d61efee834934d862cd92461afc0560dedf493e4c033738b"
 dependencies = [
- "autocfg",
- "hashbrown",
+ "hermit-abi",
+ "libc",
+ "windows-sys",
 ]
 
 [[package]]
@@ -302,73 +301,51 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.6"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "js-sys"
-version = "0.3.61"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
 dependencies = [
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
 name = "libc"
-version = "0.2.141"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3304a64d199bb964be99741b7a14d26972741915b3649639149b2479bb46f4b5"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "log"
-version = "0.4.17"
+version = "0.4.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if",
-]
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
-name = "memoffset"
-version = "0.8.0"
+name = "memchr"
+version = "2.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
-dependencies = [
- "autocfg",
-]
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
 dependencies = [
  "autocfg",
 ]
 
 [[package]]
-name = "num_cpus"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
-dependencies = [
- "hermit-abi 0.2.6",
- "libc",
-]
-
-[[package]]
 name = "once_cell"
-version = "1.17.1"
+version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "oorandom"
@@ -377,16 +354,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575"
 
 [[package]]
-name = "os_str_bytes"
-version = "6.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
-
-[[package]]
 name = "plotters"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97"
+checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45"
 dependencies = [
  "num-traits",
  "plotters-backend",
@@ -397,33 +368,33 @@ dependencies = [
 
 [[package]]
 name = "plotters-backend"
-version = "0.3.4"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142"
+checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609"
 
 [[package]]
 name = "plotters-svg"
-version = "0.3.3"
+version = "0.3.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f"
+checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab"
 dependencies = [
  "plotters-backend",
 ]
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.56"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.26"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
@@ -436,9 +407,9 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09"
 
 [[package]]
 name = "rayon"
-version = "1.7.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
 dependencies = [
  "either",
  "rayon-core",
@@ -446,45 +417,54 @@ dependencies = [
 
 [[package]]
 name = "rayon-core"
-version = "1.11.0"
+version = "1.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
 dependencies = [
- "crossbeam-channel",
  "crossbeam-deque",
  "crossbeam-utils",
- "num_cpus",
 ]
 
 [[package]]
 name = "regex"
-version = "1.7.3"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8b1f693b24f6ac912f4893ef08244d70b6067480d2f1a46e950c9691e6749d1d"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
 dependencies = [
+ "aho-corasick",
+ "memchr",
  "regex-syntax",
 ]
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.29"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
 
 [[package]]
 name = "roxmltree"
-version = "0.18.0"
+version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8f595a457b6b8c6cda66a48503e92ee8d19342f905948f29c383200ec9eb1d8"
-dependencies = [
- "xmlparser",
-]
+checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
 
 [[package]]
 name = "ryu"
-version = "1.0.13"
+version = "1.0.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
 
 [[package]]
 name = "same-file"
@@ -496,36 +476,30 @@ dependencies = [
 ]
 
 [[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
 name = "serde"
-version = "1.0.159"
+version = "1.0.199"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c04e8343c3daeec41f58990b9d77068df31209f2af111e059e9fe9646693065"
+checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.159"
+version = "1.0.199"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c614d17805b093df4b147b51339e7e44bf05ef59fba1e45d83500bcfb4d8585"
+checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.13",
+ "syn",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.95"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d721eca97ac802aa7777b701877c8004d950fc142651367300d21c1cc0194744"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
  "indexmap",
  "itoa",
@@ -535,20 +509,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "1.0.109"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "syn"
-version = "2.0.13"
+version = "2.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -562,12 +525,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
 
 [[package]]
-name = "textwrap"
-version = "0.16.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
-
-[[package]]
 name = "tinytemplate"
 version = "1.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -579,15 +536,15 @@ dependencies = [
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.8"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "walkdir"
-version = "2.3.3"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
 dependencies = [
  "same-file",
  "winapi-util",
@@ -595,9 +552,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
 dependencies = [
  "cfg-if",
  "wasm-bindgen-macro",
@@ -605,24 +562,24 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -630,63 +587,114 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.84"
+version = "0.2.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "web-sys"
-version = "0.3.61"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97"
+checksum = "77afa9a11836342370f4817622a2f0f418b134426d91a82dfb48f532d2ec13ef"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
 ]
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
+name = "winapi-util"
+version = "0.1.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
 dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows-sys",
 ]
 
 [[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-sys"
+version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets",
+]
 
 [[package]]
-name = "winapi-util"
-version = "0.1.5"
+name = "windows-targets"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
- "winapi",
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
 ]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "wyz"
@@ -696,9 +704,3 @@ checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed"
 dependencies = [
  "tap",
 ]
-
-[[package]]
-name = "xmlparser"
-version = "0.13.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd"
diff --git a/pkgs/development/libraries/libdovi/default.nix b/pkgs/development/libraries/libdovi/default.nix
index c70a217f6fce3..38cf72b2acce2 100644
--- a/pkgs/development/libraries/libdovi/default.nix
+++ b/pkgs/development/libraries/libdovi/default.nix
@@ -8,12 +8,12 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "libdovi";
-  version = "3.1.2";
+  version = "3.3.0";
 
   src = fetchCrate {
     pname = "dolby_vision";
     inherit version;
-    hash = "sha256-eLmGswgxtmqGc9f8l/9qvwSm+8bi06q+Ryvo7Oyr7s0=";
+    hash = "sha256-224fX+9klmWVoakU+XM7HrGa4iP4xsBJtn+686cH0qc=";
   };
 
   cargoLock.lockFile = ./Cargo.lock;
diff --git a/pkgs/development/libraries/libdrm/default.nix b/pkgs/development/libraries/libdrm/default.nix
index 8d8a932f4994e..8791203881468 100644
--- a/pkgs/development/libraries/libdrm/default.nix
+++ b/pkgs/development/libraries/libdrm/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, pkg-config, meson, ninja, docutils
-, libpthreadstubs, libpciaccess
+, libpthreadstubs
+, withIntel ? lib.meta.availableOn stdenv.hostPlatform libpciaccess, libpciaccess
 , withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light, valgrind-light
 , gitUpdater
 }:
@@ -16,12 +17,14 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "bin" ];
 
   nativeBuildInputs = [ pkg-config meson ninja docutils ];
-  buildInputs = [ libpthreadstubs libpciaccess ]
+  buildInputs = [ libpthreadstubs ]
+    ++ lib.optional withIntel libpciaccess
     ++ lib.optional withValgrind valgrind-light;
 
   mesonFlags = [
     "-Dinstall-test-programs=true"
     "-Dcairo-tests=disabled"
+    (lib.mesonEnable "intel" withIntel)
     (lib.mesonEnable "omap" stdenv.hostPlatform.isLinux)
     (lib.mesonEnable "valgrind" withValgrind)
   ] ++ lib.optionals stdenv.hostPlatform.isAarch [
diff --git a/pkgs/development/libraries/libdvbcsa/default.nix b/pkgs/development/libraries/libdvbcsa/default.nix
index 7da80a75d6a7f..f9daa860cf479 100644
--- a/pkgs/development/libraries/libdvbcsa/default.nix
+++ b/pkgs/development/libraries/libdvbcsa/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = {
-    description = "A free implementation of the DVB Common Scrambling Algorithm with encryption and decryption capabilities";
+    description = "Free implementation of the DVB Common Scrambling Algorithm with encryption and decryption capabilities";
     homepage = "http://www.videolan.org/developers/libdvbcsa.html";
     platforms = lib.platforms.unix;
     license = lib.licenses.gpl2Only;
diff --git a/pkgs/development/libraries/libdvbpsi/default.nix b/pkgs/development/libraries/libdvbpsi/default.nix
index 5d539a7a48829..6ec8aab8943ce 100644
--- a/pkgs/development/libraries/libdvbpsi/default.nix
+++ b/pkgs/development/libraries/libdvbpsi/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A simple library designed for decoding and generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818 and ITU-T H.222.0";
+    description = "Simple library designed for decoding and generation of MPEG TS and DVB PSI tables according to standards ISO/IEC 13818 and ITU-T H.222.0";
     homepage = "http://www.videolan.org/developers/libdvbpsi.html";
     platforms = lib.platforms.unix;
     license = lib.licenses.lgpl21;
diff --git a/pkgs/development/libraries/libdvdcss/default.nix b/pkgs/development/libraries/libdvdcss/default.nix
index b43c0ccdd0fe9..6c832250fc1c8 100644
--- a/pkgs/development/libraries/libdvdcss/default.nix
+++ b/pkgs/development/libraries/libdvdcss/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.videolan.org/developers/libdvdcss.html";
-    description = "A library for decrypting DVDs";
+    description = "Library for decrypting DVDs";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
   };
diff --git a/pkgs/development/libraries/libdvdnav/4.2.1.nix b/pkgs/development/libraries/libdvdnav/4.2.1.nix
index 5567d7c39c286..852ab2ea73099 100644
--- a/pkgs/development/libraries/libdvdnav/4.2.1.nix
+++ b/pkgs/development/libraries/libdvdnav/4.2.1.nix
@@ -12,15 +12,34 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [libdvdread];
 
-  configureScript = "./configure2"; # wtf?
+  # The upstream supports two configuration workflow:
+  # one is to generate ./configure via `autoconf`,
+  # the other is to run ./configure2.
+  # ./configure2 is a configureation script included in the upstream source
+  # that supports common "--<name>" flags and generates config.mak and config.h.
+  # See INSTALL inside the upstream source for detail.
+  configureScript = "./configure2";
+
+  configureFlags = [
+    "--cc=${stdenv.cc.targetPrefix}cc"
+    # Let's strip the binaries ourselves,
+    # as unprefixed `strip` command is not available during cross compilation.
+    "--disable-strip"
+  ];
 
   preConfigure = ''
     mkdir -p $out
   '';
 
+  makeFlags = [
+    "AR=${stdenv.cc.targetPrefix}ar"
+    "LD=${stdenv.cc.targetPrefix}ld"
+    "RANLIB=${stdenv.cc.targetPrefix}ranlib"
+  ];
+
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library that implements DVD navigation features such as DVD menus";
+    description = "Library that implements DVD navigation features such as DVD menus";
     mainProgram = "dvdnav-config";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
diff --git a/pkgs/development/libraries/libdvdnav/default.nix b/pkgs/development/libraries/libdvdnav/default.nix
index 8414605593def..96f78d73ae3c6 100644
--- a/pkgs/development/libraries/libdvdnav/default.nix
+++ b/pkgs/development/libraries/libdvdnav/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library that implements DVD navigation features such as DVD menus";
+    description = "Library that implements DVD navigation features such as DVD menus";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libdvdread/4.9.9.nix b/pkgs/development/libraries/libdvdread/4.9.9.nix
index 87ab724796c7a..47e44c5711a56 100644
--- a/pkgs/development/libraries/libdvdread/4.9.9.nix
+++ b/pkgs/development/libraries/libdvdread/4.9.9.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library for reading DVDs";
+    description = "Library for reading DVDs";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libdvdread/default.nix b/pkgs/development/libraries/libdvdread/default.nix
index f07af1fa575b1..14b534b2fe289 100644
--- a/pkgs/development/libraries/libdvdread/default.nix
+++ b/pkgs/development/libraries/libdvdread/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://dvdnav.mplayerhq.hu/";
-    description = "A library for reading DVDs";
+    description = "Library for reading DVDs";
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.wmertens ];
     platforms = with lib.platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/libe57format/default.nix b/pkgs/development/libraries/libe57format/default.nix
index cbbdd4dcc0263..41fda970294da 100644
--- a/pkgs/development/libraries/libe57format/default.nix
+++ b/pkgs/development/libraries/libe57format/default.nix
@@ -1,51 +1,68 @@
 {
   lib, stdenv,
   cmake,
-  fetchpatch,
   fetchFromGitHub,
-  boost,
+  fetchpatch,
   xercesc,
-  icu,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libe57format";
-  version = "2.2.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "asmaloney";
     repo = "libE57Format";
-    rev = "v${version}";
-    sha256 = "15l23spjvak5h3n7aj3ggy0c3cwcg8mvnc9jlbd9yc2ra43bx7bp";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-bOuWh9Nkxva2v0M6+vnAya8EW/G3WQePxHakQt8T9NE=";
+    fetchSubmodules = true; # for submodule-vendored libraries such as `gtest`
+  };
+
+  # Repository of E57 files used for testing.
+  libE57Format-test-data_src = fetchFromGitHub {
+    owner = "asmaloney";
+    repo = "libE57Format-test-data";
+    rev = "4960564a732c6444c50dfae5b2273e68837399cd";
+    hash = "sha256-k26yVbYSQJ3EMgcpjm35N1OAxarFmfMvzfTN2Hdyu8c=";
   };
 
-  patches = [
-    # gcc11 header fix
-    (fetchpatch {
-      url = "https://github.com/asmaloney/libE57Format/commit/13f6a16394ce3eb50ea4cd21f31f77f53294e8d0.patch";
-      sha256 = "sha256-4vVhKrCxnWO106DSAk+xxo4uk6zC89m9VQAPaDJ8Ed4=";
-    })
-  ];
   CXXFLAGS = [
     # GCC 13: error: 'int16_t' has not been declared in 'std'
     "-include cstdint"
   ];
 
+  patches = [
+    # TODO: Remove with the next release: https://github.com/asmaloney/libE57Format/pull/299
+    (fetchpatch {
+      name = "libE57Format-Dont-force-warnings-as-errors-when-building-self.patch"; # https://github.com/apache/thrift/pull/2726
+      url = "https://github.com/asmaloney/libE57Format/commit/66bb5af15937b4c10a7f412ca4d1673f42bbad28.patch";
+      hash = "sha256-2cNURjMLP0TijYY5gbuWLE7H/PlMW936wAeOqJ/w9C0=";
+    })
+
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
 
   buildInputs = [
-    boost
-    icu
+    xercesc
   ];
 
-  propagatedBuildInputs = [
-    # Necessary for projects that try to find libE57Format via CMake
-    # due to the way that libe57format's CMake config is written.
-    xercesc
+  cmakeFlags = [
+    # See https://github.com/asmaloney/libE57Format/blob/9372bdea8db2cc0c032a08f6d655a53833d484b8/test/README.md
+    (if finalAttrs.doCheck
+      then "-DE57_TEST_DATA_PATH=${finalAttrs.libE57Format-test-data_src}"
+      else "-DE57_BUILD_TEST=OFF"
+    )
   ];
 
+  doCheck = true;
+
+  postCheck = ''
+    ./testE57
+  '';
+
   # The build system by default builds ONLY static libraries, and with
   # `-DE57_BUILD_SHARED=ON` builds ONLY shared libraries, see:
   #     https://github.com/asmaloney/libE57Format/issues/48
@@ -70,4 +87,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ chpatrick nh2 ];
     platforms = platforms.linux; # because of the .so buiding in `postInstall` above
   };
-}
+})
diff --git a/pkgs/development/libraries/libeatmydata/default.nix b/pkgs/development/libraries/libeatmydata/default.nix
index 9e8d5970431c9..2a76731829a7f 100644
--- a/pkgs/development/libraries/libeatmydata/default.nix
+++ b/pkgs/development/libraries/libeatmydata/default.nix
@@ -1,8 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch2
-, fetchurl
 , autoreconfHook
 , strace
 , which
@@ -19,24 +17,6 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-0lrYDW51/KSr809whGwg9FYhzcLRfmoxipIgrK1zFCc=";
   };
 
-  patches = [
-    # Fixes "error: redefinition of 'open'" on musl
-    (fetchpatch2 {
-      url = "https://raw.githubusercontent.com/void-linux/void-packages/861ac185a6b60134292ff93d40e40b5391d0aa8e/srcpkgs/libeatmydata/patches/musl.patch";
-      hash = "sha256-MZfTgf2Qn94UpPlYNRM2zK99iKQorKQrlbU5/1WJhJM=";
-    })
-
-    # Don't use transitional LFS64 API, removed in musl 1.2.4.
-    (fetchurl {
-      url = "https://git.alpinelinux.org/aports/plain/main/libeatmydata/lfs64.patch?id=f87f2c59384cc4a8a1b71aaa875be2b3ae2dbce0";
-      hash = "sha256-5Jhy9gunKcbrSmLh0DoP/uwJLgaLd+zKV2iVxiDwiHs=";
-    })
-  ];
-
-  configureFlags = [
-    "CFLAGS=-D_FILE_OFFSET_BITS=64"
-  ];
-
   postPatch = ''
     patchShebangs .
   '';
diff --git a/pkgs/development/libraries/libee/default.nix b/pkgs/development/libraries/libee/default.nix
index 1269f6f0eff3b..246fb73090b9e 100644
--- a/pkgs/development/libraries/libee/default.nix
+++ b/pkgs/development/libraries/libee/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libestr];
 
   meta = {
-    description = "An Event Expression Library inspired by CEE";
+    description = "Event Expression Library inspired by CEE";
     homepage = "http://www.libee.org/";
     license = lib.licenses.lgpl21Plus;
     mainProgram = "libee-convert";
diff --git a/pkgs/development/libraries/libepoxy/default.nix b/pkgs/development/libraries/libepoxy/default.nix
index 9fab4c72947ed..95c3959d9dfb5 100644
--- a/pkgs/development/libraries/libepoxy/default.nix
+++ b/pkgs/development/libraries/libepoxy/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for handling OpenGL function pointer management";
+    description = "Library for handling OpenGL function pointer management";
     homepage = "https://github.com/anholt/libepoxy";
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/libraries/libesmtp/default.nix b/pkgs/development/libraries/libesmtp/default.nix
index 3193f383d610a..0fb8890cf129d 100644
--- a/pkgs/development/libraries/libesmtp/default.nix
+++ b/pkgs/development/libraries/libesmtp/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A Library for Posting Electronic Mail";
+    description = "Library for Posting Electronic Mail";
     longDescription = ''
       libESMTP is an SMTP client library which manages submission of electronic mail
       via a preconfigured Mail Transport Agent (MTA) such as Exim or Postfix.
diff --git a/pkgs/development/libraries/libev/default.nix b/pkgs/development/libraries/libev/default.nix
index 750cb3974cf75..32960de8919d7 100644
--- a/pkgs/development/libraries/libev/default.nix
+++ b/pkgs/development/libraries/libev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook
 , # Note: -static hasn’t work on darwin
   static ? with stdenv.hostPlatform; isStatic && !isDarwin
 }:
@@ -17,10 +17,12 @@ stdenv.mkDerivation rec {
     sha256 = "1sjs4324is7fp21an4aas2z4dwsvs6z4xwrmp72vwpq1s6wbfzjh";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = lib.optional (static) "LDFLAGS=-static";
 
   meta = {
-    description = "A high-performance event loop/event model with lots of features";
+    description = "High-performance event loop/event model with lots of features";
     maintainers = [ lib.maintainers.raskin ];
     platforms = lib.platforms.all;
     license = lib.licenses.bsd2; # or GPL2+
diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix
index c8db600dce810..34af29955abbf 100644
--- a/pkgs/development/libraries/libevdev/default.nix
+++ b/pkgs/development/libraries/libevdev/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, python3 }:
+{ lib, stdenv, fetchurl, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
diff --git a/pkgs/development/libraries/libewf/default.nix b/pkgs/development/libraries/libewf/default.nix
index dffacc7d276c7..6c149b0186ee2 100644
--- a/pkgs/development/libraries/libewf/default.nix
+++ b/pkgs/development/libraries/libewf/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, fetchpatch, lib, stdenv, zlib, openssl, libuuid, pkg-config, bzip2 }:
+{ fetchurl, lib, stdenv, zlib, openssl, libuuid, pkg-config, bzip2 }:
 
 stdenv.mkDerivation rec {
   version = "20231119";
diff --git a/pkgs/development/libraries/libexif/default.nix b/pkgs/development/libraries/libexif/default.nix
index 0ab1f8fa984ab..8b9e889d3e2b7 100644
--- a/pkgs/development/libraries/libexif/default.nix
+++ b/pkgs/development/libraries/libexif/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libexif.github.io/";
-    description = "A library to read and manipulate EXIF data in digital photographs";
+    description = "Library to read and manipulate EXIF data in digital photographs";
     license = licenses.lgpl21;
     platforms = platforms.unix;
     maintainers = with maintainers; [ erictapen ];
diff --git a/pkgs/development/libraries/libexttextcat/default.nix b/pkgs/development/libraries/libexttextcat/default.nix
index 39369c5c3b6be..6ed3603dd184d 100644
--- a/pkgs/development/libraries/libexttextcat/default.nix
+++ b/pkgs/development/libraries/libexttextcat/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An N-Gram-Based Text Categorization library primarily intended for language guessing";
+    description = "N-Gram-Based Text Categorization library primarily intended for language guessing";
     homepage = "https://wiki.documentfoundation.org/Libexttextcat";
     license = licenses.bsd3;
     mainProgram = "createfp";
diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix
index f44702582f27a..2cb94d11fd670 100644
--- a/pkgs/development/libraries/libfaketime/default.nix
+++ b/pkgs/development/libraries/libfaketime/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
       url = "https://github.com/wolfcw/libfaketime/commit/e0e6b79568d36a8fd2b3c41f7214769221182128.patch";
       sha256 = "sha256-KwwP76v0DXNW73p/YBvwUOPdKMAcVdbQSKexD/uFOYo=";
     })
+    (fetchpatch {
+      name = "LFS64.patch";
+      url = "https://github.com/wolfcw/libfaketime/commit/f32986867addc9d22b0fab29c1c927f079d44ac1.patch";
+      hash = "sha256-fIXuxxcV9J2IcgwcwSrMo4maObkH9WYv1DC/wdtbq/g=";
+    })
   ] ++ (lib.optionals stdenv.cc.isClang [
     # https://github.com/wolfcw/libfaketime/issues/277
     ./0001-Remove-unsupported-clang-flags.patch
diff --git a/pkgs/development/libraries/libffi/3.3.nix b/pkgs/development/libraries/libffi/3.3.nix
index 294717d1fb1cd..50bec9edd0503 100644
--- a/pkgs/development/libraries/libffi/3.3.nix
+++ b/pkgs/development/libraries/libffi/3.3.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoreconfHook
+{ lib, stdenv, fetchurl
 
 , doCheck ? true # test suite depends on dejagnu which cannot be used during bootstrapping
 , dejagnu
@@ -44,7 +43,7 @@ stdenv.mkDerivation rec {
   nativeCheckInputs = [ dejagnu ];
 
   meta = with lib; {
-    description = "A foreign function call interface library";
+    description = "Foreign function call interface library";
     longDescription = ''
       The libffi library provides a portable, high level programming
       interface to various calling conventions.  This allows a
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index edd16ec21506e..9293077b1aa73 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -1,5 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoreconfHook
+{ lib, stdenv, fetchurl
 
   # test suite depends on dejagnu which cannot be used during bootstrapping
   # dejagnu also requires tcl which can't be built statically at the moment
@@ -59,7 +58,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A foreign function call interface library";
+    description = "Foreign function call interface library";
     longDescription = ''
       The libffi library provides a portable, high level programming
       interface to various calling conventions.  This allows a
diff --git a/pkgs/development/libraries/libfilezilla/default.nix b/pkgs/development/libraries/libfilezilla/default.nix
index 9024be0f259ce..4076e5325c930 100644
--- a/pkgs/development/libraries/libfilezilla/default.nix
+++ b/pkgs/development/libraries/libfilezilla/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://lib.filezilla-project.org/";
-    description = "A modern C++ library, offering some basic functionality to build high-performing, platform-independent programs";
+    description = "Modern C++ library, offering some basic functionality to build high-performing, platform-independent programs";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libfishsound/default.nix b/pkgs/development/libraries/libfishsound/default.nix
index bf578b969effa..e8ceb261a4fec 100644
--- a/pkgs/development/libraries/libfishsound/default.nix
+++ b/pkgs/development/libraries/libfishsound/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://xiph.org/fishsound/";
-    description = "A simple programming interface for decoding and encoding audio data using Xiph.org codecs (FLAC, Speex and Vorbis)";
+    description = "Simple programming interface for decoding and encoding audio data using Xiph.org codecs (FLAC, Speex and Vorbis)";
     longDescription = ''libfishsound by itself is designed to handle raw codec streams from a lower level layer such as UDP datagrams. When these codecs are used in files, they are commonly encapsulated in Ogg to produce Ogg FLAC, Speex and Ogg Vorbis files.
 
 libfishsound is a wrapper around the existing codec libraries and provides a consistent, higher-level programming interface. It has been designed for use in a wide variety of applications; it has no direct dependencies on Ogg encapsulation, though it is most commonly used in conjunction with liboggz to decode or encode FLAC, Speex or Vorbis audio tracks in Ogg files, including Ogg Theora and Annodex.
diff --git a/pkgs/development/libraries/libfm/default.nix b/pkgs/development/libraries/libfm/default.nix
index f8f79d99e4570..64928de4d4fe7 100644
--- a/pkgs/development/libraries/libfm/default.nix
+++ b/pkgs/development/libraries/libfm/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     broken = stdenv.isDarwin;
     homepage = "https://blog.lxde.org/category/pcmanfm/";
     license = licenses.lgpl21Plus;
-    description = "A glib-based library for file management";
+    description = "Glib-based library for file management";
     maintainers = [ maintainers.ttuegel ];
     platforms = platforms.linux ++ platforms.darwin;
   };
diff --git a/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix b/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix
index 840f8e2271532..e40fa4c3df76f 100644
--- a/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix
+++ b/pkgs/development/libraries/libfprint-2-tod1-vfs0090/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
   passthru.driverPath = "/lib/libfprint-2/tod-1";
 
   meta = with lib; {
-    description = "A libfprint-2-tod Touch OEM Driver for 2016 ThinkPad's fingerprint readers";
+    description = "Libfprint-2-tod Touch OEM Driver for 2016 ThinkPad's fingerprint readers";
     homepage = "https://gitlab.freedesktop.org/3v1n0/libfprint-tod-vfs0090";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libfprint-tod/default.nix b/pkgs/development/libraries/libfprint-tod/default.nix
index bffafc5e44f40..538df33ff2814 100644
--- a/pkgs/development/libraries/libfprint-tod/default.nix
+++ b/pkgs/development/libraries/libfprint-tod/default.nix
@@ -34,7 +34,7 @@ in  {
 
   meta = with lib; {
     homepage = "https://gitlab.freedesktop.org/3v1n0/libfprint";
-    description = "A library designed to make it easy to add support for consumer fingerprint readers, with support for loaded drivers";
+    description = "Library designed to make it easy to add support for consumer fingerprint readers, with support for loaded drivers";
     license = licenses.lgpl21;
     platforms = platforms.linux;
     maintainers = with maintainers; [ grahamc ];
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index 41eef399162a2..fd7797ca0f14c 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -85,7 +85,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://fprint.freedesktop.org/";
-    description = "A library designed to make it easy to add support for consumer fingerprint readers";
+    description = "Library designed to make it easy to add support for consumer fingerprint readers";
     license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/libfpx/default.nix b/pkgs/development/libraries/libfpx/default.nix
index 5c77e0139e8a8..6f79ec1b9465c 100644
--- a/pkgs/development/libraries/libfpx/default.nix
+++ b/pkgs/development/libraries/libfpx/default.nix
@@ -24,11 +24,18 @@ stdenv.mkDerivation rec {
       url = "https://github.com/ImageMagick/libfpx/commit/c32b340581ba6c88c5092f374f655c7579b598a6.patch";
       sha256 = "1gbc0qb2ri1mj9r66wx0yn28fsr7zhhlyz2mwbica8wh34xijgz9";
     })
+    # fix clang build: remove register keyword
+    # remove on next update
+    (fetchpatch {
+      name = "remove-register-keyword.patch";
+      url = "https://github.com/ImageMagick/libfpx/commit/5f340b0a490450b40302cc9948c7dfac60d40041.patch";
+      hash = "sha256-6m9MFb1eWGK5cMvPmTu7uh3Pac65r2HPB8wJ8xc1O5o=";
+    })
   ];
 
   meta = with lib; {
     homepage = "http://www.imagemagick.org";
-    description = "A library for manipulating FlashPIX images";
+    description = "Library for manipulating FlashPIX images";
     license = "Flashpix";
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/libfreefare/default.nix b/pkgs/development/libraries/libfreefare/default.nix
index f1466dd5a9f53..b05ea5bbe2d5c 100644
--- a/pkgs/development/libraries/libfreefare/default.nix
+++ b/pkgs/development/libraries/libfreefare/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
   buildInputs = [ libnfc openssl ] ++ lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
 
   meta = with lib; {
-    description = "The libfreefare project aims to provide a convenient API for MIFARE card manipulations";
+    description = "Libfreefare project aims to provide a convenient API for MIFARE card manipulations";
     license = licenses.lgpl3;
     homepage = "https://github.com/nfc-tools/libfreefare";
     maintainers = with maintainers; [bobvanderlinden];
diff --git a/pkgs/development/libraries/libftdi/1.x.nix b/pkgs/development/libraries/libftdi/1.x.nix
index 1e35d4124615c..116f1dca1bbbb 100644
--- a/pkgs/development/libraries/libftdi/1.x.nix
+++ b/pkgs/development/libraries/libftdi/1.x.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library to talk to FTDI chips using libusb";
+    description = "Library to talk to FTDI chips using libusb";
     homepage = "https://www.intra2net.com/en/developer/libftdi/";
     license = with licenses; [ lgpl2Only gpl2Only ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libftdi/default.nix b/pkgs/development/libraries/libftdi/default.nix
index ffc33d0247d15..27b23f9d54bce 100644
--- a/pkgs/development/libraries/libftdi/default.nix
+++ b/pkgs/development/libraries/libftdi/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library to talk to FTDI chips using libusb";
+    description = "Library to talk to FTDI chips using libusb";
     homepage = "https://www.intra2net.com/en/developer/libftdi/";
     license = lib.licenses.lgpl21;
     platforms = lib.platforms.all;
diff --git a/pkgs/development/libraries/libgadu/default.nix b/pkgs/development/libraries/libgadu/default.nix
index 72bf067b2db4b..65f8b26c5a378 100644
--- a/pkgs/development/libraries/libgadu/default.nix
+++ b/pkgs/development/libraries/libgadu/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook ];
 
   meta = {
-    description = "A library to deal with gadu-gadu protocol (most popular polish IM protocol)";
+    description = "Library to deal with gadu-gadu protocol (most popular polish IM protocol)";
     homepage = "https://libgadu.net/index.en.html";
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl21;
diff --git a/pkgs/development/libraries/libgbinder/default.nix b/pkgs/development/libraries/libgbinder/default.nix
index 3f30a443e0946..cfdfd7482b42d 100644
--- a/pkgs/development/libraries/libgbinder/default.nix
+++ b/pkgs/development/libraries/libgbinder/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgbinder";
-  version = "1.1.38";
+  version = "1.1.39";
 
   src = fetchFromGitHub {
     owner = "mer-hybris";
     repo = pname;
     rev = version;
-    sha256 = "sha256-k5oCwi1KvyRVawH0d4Kp+MCxkymAtl6zVk7DVRXFVMg=";
+    sha256 = "sha256-O+Fg6NtWdBe0k+XhE/h62C1tvC6Y1BQZWva63sXJDfY=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgcrypt/default.nix b/pkgs/development/libraries/libgcrypt/default.nix
index 3605d48a2fd1b..41e420f173fb4 100644
--- a/pkgs/development/libraries/libgcrypt/default.nix
+++ b/pkgs/development/libraries/libgcrypt/default.nix
@@ -39,7 +39,9 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   configureFlags = [ "--with-libgpg-error-prefix=${libgpg-error.dev}" ]
-      ++ lib.optional (stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--disable-asm"; # for darwin see https://dev.gnupg.org/T5157
+      ++ lib.optional (stdenv.hostPlatform.isMusl || (stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64)) "--disable-asm" # for darwin see https://dev.gnupg.org/T5157
+      # Fix undefined reference errors with version script under LLVM.
+      ++ lib.optional (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "LDFLAGS=-Wl,--undefined-version";
 
   # Necessary to generate correct assembly when compiling for aarch32 on
   # aarch64
diff --git a/pkgs/development/libraries/libgdiplus/default.nix b/pkgs/development/libraries/libgdiplus/default.nix
index e71aedd2cbcfa..4d315b042ee99 100644
--- a/pkgs/development/libraries/libgdiplus/default.nix
+++ b/pkgs/development/libraries/libgdiplus/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchzip, pkg-config, glib, cairo, Carbon, fontconfig
 , libtiff, giflib, libjpeg, libpng
-, libXrender, libexif, autoreconfHook, fetchpatch }:
+, libXrender, libexif, autoreconfHook }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libgdiplus";
diff --git a/pkgs/development/libraries/libgeotiff/default.nix b/pkgs/development/libraries/libgeotiff/default.nix
index 9b160e6b29e89..37e726fa23bb9 100644
--- a/pkgs/development/libraries/libgeotiff/default.nix
+++ b/pkgs/development/libraries/libgeotiff/default.nix
@@ -10,14 +10,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.7.1";
+  version = "1.7.3";
   pname = "libgeotiff";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "libgeotiff";
     rev = version;
-    hash = "sha256-bE6UAUKiorriTgYrqhxbMAN2NEtmV/8IIfF02RUghSI=";
+    hash = "sha256-FUvWZR5BrGEMnApxCBQBwmmi9NU7Tx6Ziq3mbIxjqfc=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libgit2-glib/default.nix b/pkgs/development/libraries/libgit2-glib/default.nix
index 26b0a9907d111..cd2f10d157823 100644
--- a/pkgs/development/libraries/libgit2-glib/default.nix
+++ b/pkgs/development/libraries/libgit2-glib/default.nix
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A glib wrapper library around the libgit2 git access library";
+    description = "Glib wrapper library around the libgit2 git access library";
     homepage = "https://gitlab.gnome.org/GNOME/libgit2-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libgit2/default.nix b/pkgs/development/libraries/libgit2/default.nix
index 7e70b65423a96..58212e00d89e7 100644
--- a/pkgs/development/libraries/libgit2/default.nix
+++ b/pkgs/development/libraries/libgit2/default.nix
@@ -76,7 +76,7 @@ stdenv.mkDerivation rec {
     description = "Linkable library implementation of Git that you can use in your application";
     mainProgram = "git2";
     homepage = "https://libgit2.org/";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl2Only;
     platforms = platforms.all;
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
diff --git a/pkgs/development/libraries/libglibutil/default.nix b/pkgs/development/libraries/libglibutil/default.nix
index 66fa722573fd3..59434902d78d5 100644
--- a/pkgs/development/libraries/libglibutil/default.nix
+++ b/pkgs/development/libraries/libglibutil/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libglibutil";
-  version = "1.0.77";
+  version = "1.0.79";
 
   src = fetchFromGitHub {
     owner = "sailfishos";
     repo = pname;
     rev = version;
-    sha256 = "sha256-SLpyQsRl7yfCAgK3udSSQo8OZOf6FRCzFKIDDUKg1gs=";
+    sha256 = "sha256-UJsKjvigZuwDL4DyjUE6fXEecgoHrTE+5pO0hVyCwP4=";
   };
 
   outputs = [ "out" "dev" ];
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "Library of glib utilities.";
+    description = "Library of glib utilities";
     homepage = "https://git.sailfishos.org/mer-core/libglibutil";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libglvnd/default.nix b/pkgs/development/libraries/libglvnd/default.nix
index a7480d6ffb95a..9a9c3b861d6d4 100644
--- a/pkgs/development/libraries/libglvnd/default.nix
+++ b/pkgs/development/libraries/libglvnd/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit (addOpenGLRunpath) driverLink; };
 
   meta = with lib; {
-    description = "The GL Vendor-Neutral Dispatch library";
+    description = "GL Vendor-Neutral Dispatch library";
     longDescription = ''
       libglvnd is a vendor-neutral dispatch layer for arbitrating OpenGL API
       calls between multiple vendors. It allows multiple drivers from different
diff --git a/pkgs/development/libraries/libgnomekbd/default.nix b/pkgs/development/libraries/libgnomekbd/default.nix
index fc9924b508342..a5c278956f2d7 100644
--- a/pkgs/development/libraries/libgnomekbd/default.nix
+++ b/pkgs/development/libraries/libgnomekbd/default.nix
@@ -8,7 +8,7 @@
 , glib
 , gtk3
 , libxklavier
-, wrapGAppsHook
+, wrapGAppsHook3
 , gnome
 }:
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     glib
     gobject-introspection
   ];
diff --git a/pkgs/development/libraries/libgnt/default.nix b/pkgs/development/libraries/libgnt/default.nix
index 33ce7fbaa1139..104a22beab74d 100644
--- a/pkgs/development/libraries/libgnt/default.nix
+++ b/pkgs/development/libraries/libgnt/default.nix
@@ -2,20 +2,24 @@
 , gtk-doc, docbook-xsl-nons
 , glib, ncurses, libxml2
 , buildDocs ? true
+, mesonEmulatorHook
 }:
 stdenv.mkDerivation rec {
   pname = "libgnt";
-  version = "2.14.1";
+  version = "2.14.3";
 
   outputs = [ "out" "dev" ] ++ lib.optional buildDocs "devdoc";
 
   src = fetchurl {
     url = "mirror://sourceforge/pidgin/${pname}-${version}.tar.xz";
-    sha256 = "1n2bxg0ignn53c08cp69pj4sdg53kwlqn23rincyjmpr327fdhsy";
+    hash = "sha256-V/VFf3KZnQuxoTmjfydG7BtaAsCU8nEKM52LzqQjYSM=";
   };
 
-  nativeBuildInputs = [ meson ninja pkg-config ]
-    ++ lib.optionals buildDocs [ gtk-doc docbook-xsl-nons ];
+  nativeBuildInputs = [ glib meson ninja pkg-config ]
+    ++ lib.optionals buildDocs [ gtk-doc docbook-xsl-nons ]
+    ++ lib.optionals (buildDocs && !stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+      mesonEmulatorHook
+    ];
 
   buildInputs = [ glib ncurses libxml2 ];
 
@@ -23,12 +27,14 @@ stdenv.mkDerivation rec {
     substituteInPlace meson.build --replace \
       "ncurses_sys_prefix = '/usr'" \
       "ncurses_sys_prefix = '${lib.getDev ncurses}'"
-  '' + lib.optionalString (!buildDocs) ''
-    sed "/^subdir('doc')$/d" -i meson.build
   '';
+  mesonFlags = [
+    (lib.mesonBool "doc" buildDocs)
+    (lib.mesonBool "python2" false)
+  ];
 
   meta = with lib; {
-    description = "An ncurses toolkit for creating text-mode graphical user interfaces";
+    description = "Ncurses toolkit for creating text-mode graphical user interfaces";
     homepage = "https://keep.imfreedom.org/libgnt/libgnt/";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libgnurl/default.nix b/pkgs/development/libraries/libgnurl/default.nix
index f2d3d15f9e806..e0de7acd38bad 100644
--- a/pkgs/development/libraries/libgnurl/default.nix
+++ b/pkgs/development/libraries/libgnurl/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A fork of libcurl used by GNUnet";
+    description = "Fork of libcurl used by GNUnet";
     homepage    = "https://gnunet.org/en/gnurl.html";
     maintainers = with maintainers; [ vrthra ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libgourou/default.nix b/pkgs/development/libraries/libgourou/default.nix
index 78b5654873bdb..bfd483e5d31c8 100644
--- a/pkgs/development/libraries/libgourou/default.nix
+++ b/pkgs/development/libraries/libgourou/default.nix
@@ -10,11 +10,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "libgourou";
+  pname = "libgourou";
   version = "0.8.2";
 
   src = fetchzip {
-    url = "https://indefero.soutade.fr/p/${name}/source/download/v${version}/";
+    url = "https://indefero.soutade.fr/p/libgourou/source/download/v${version}/";
     sha256 = "sha256-adkrvBCgN07Ir+J3JFCy+X9p9609lj1w8nElrlHXTxc";
     extension = "zip";
   };
diff --git a/pkgs/development/libraries/libgpg-error/default.nix b/pkgs/development/libraries/libgpg-error/default.nix
index 1d262a0a44023..a990546108cff 100644
--- a/pkgs/development/libraries/libgpg-error/default.nix
+++ b/pkgs/development/libraries/libgpg-error/default.nix
@@ -17,11 +17,11 @@
   };
 in stdenv.mkDerivation (rec {
   pname = "libgpg-error";
-  version = "1.48";
+  version = "1.49";
 
   src = fetchurl {
     url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-ic4a6JPhIpJLhY3oTcT2eq4p/6YQ6/Zo1apTkEVmPW8=";
+    sha256 = "sha256-i3nVRjnb9KvAi1QG+y835mmi3sCR3QJPuH3TZxMcY6k=";
   };
 
   postPatch = ''
@@ -63,7 +63,7 @@ in stdenv.mkDerivation (rec {
   meta = with lib; {
     homepage = "https://www.gnupg.org/software/libgpg-error/index.html";
     changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=NEWS;hb=refs/tags/libgpg-error-${version}";
-    description = "A small library that defines common error values for all GnuPG components";
+    description = "Small library that defines common error values for all GnuPG components";
     mainProgram = "gen-posix-lock-obj";
 
     longDescription = ''
diff --git a/pkgs/development/libraries/libgphoto2/default.nix b/pkgs/development/libraries/libgphoto2/default.nix
index 4897934860b1f..c196b137555dd 100644
--- a/pkgs/development/libraries/libgphoto2/default.nix
+++ b/pkgs/development/libraries/libgphoto2/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.gphoto.org/proj/libgphoto2/";
-    description = "A library for accessing digital cameras";
+    description = "Library for accessing digital cameras";
     longDescription = ''
       This is the library backend for gphoto2. It contains the code for PTP,
       MTP, and other vendor specific protocols for controlling and transferring data
diff --git a/pkgs/development/libraries/libgpiod/default.nix b/pkgs/development/libraries/libgpiod/default.nix
index 519448b72e3d7..fe131f469f0b3 100644
--- a/pkgs/development/libraries/libgpiod/default.nix
+++ b/pkgs/development/libraries/libgpiod/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgpiod";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
-    hash = "sha256-CvQ6YInWn50HXPZ8oq5ZcrkIHjjms9Rs6jfWfi32+5s=";
+    hash = "sha256-sb3x4/dSOGlfk+RCBiuvwGkXDyv08M1LjgScpnExofA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libgringotts/default.nix b/pkgs/development/libraries/libgringotts/default.nix
index faa478b568c76..268ada87ac6ea 100644
--- a/pkgs/development/libraries/libgringotts/default.nix
+++ b/pkgs/development/libraries/libgringotts/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ zlib bzip2 libmcrypt libmhash ];
 
   meta = with lib; {
-    description = "A small library to encapsulate data in an encrypted structure";
+    description = "Small library to encapsulate data in an encrypted structure";
     homepage = "https://libgringotts.sourceforge.net/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libgtop/default.nix b/pkgs/development/libraries/libgtop/default.nix
index ae49384835909..a265d366ab768 100644
--- a/pkgs/development/libraries/libgtop/default.nix
+++ b/pkgs/development/libraries/libgtop/default.nix
@@ -10,15 +10,15 @@
 , deterministic-uname
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libgtop";
-  version = "2.41.2";
+  version = "2.41.3";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-2QJs2KSNJ83/0zL41gqSdktWQk5SLEIM0ToB9A2vksM=";
+    url = "mirror://gnome/sources/libgtop/${lib.versions.majorMinor finalAttrs.version}/libgtop-${finalAttrs.version}.tar.xz";
+    hash = "sha256-d1Z235WOLqJFL3Vo8osupYEGPTEnc91cC3Ykwbmy2ow=";
   };
 
   nativeBuildInputs = [
@@ -37,15 +37,15 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libgtop";
       versionPolicy = "odd-unstable";
     };
   };
 
   meta = with lib; {
-    description = "A library that reads information about processes and the running system";
+    description = "Library that reads information about processes and the running system";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libgudev/default.nix b/pkgs/development/libraries/libgudev/default.nix
index 99ca086792fb0..d3d3ae043e04e 100644
--- a/pkgs/development/libraries/libgudev/default.nix
+++ b/pkgs/development/libraries/libgudev/default.nix
@@ -6,11 +6,13 @@
 , ninja
 , udev
 , glib
+, glibcLocales
+, umockdev
 , gnome
 , vala
 , gobject-introspection
-, glibcLocales
-, umockdev
+, buildPackages
+, withIntrospection ? lib.meta.availableOn stdenv.hostPlatform gobject-introspection && stdenv.hostPlatform.emulatorAvailable buildPackages
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -42,9 +44,10 @@ stdenv.mkDerivation (finalAttrs: {
     pkg-config
     meson
     ninja
-    vala
     glib # for glib-mkenums needed during the build
+  ] ++ lib.optionals withIntrospection [
     gobject-introspection
+    vala
   ];
 
   buildInputs = [
@@ -57,8 +60,12 @@ stdenv.mkDerivation (finalAttrs: {
     umockdev
   ];
 
-  doCheck = true;
-  mesonFlags = lib.optional (!finalAttrs.finalPackage.doCheck) "-Dtests=disabled";
+  doCheck = withIntrospection;
+  mesonFlags = [
+    (lib.mesonEnable "introspection" withIntrospection)
+    (lib.mesonEnable "vapi" withIntrospection)
+    (lib.mesonEnable "tests" finalAttrs.finalPackage.doCheck)
+  ];
 
   passthru = {
     updateScript = gnome.updateScript {
@@ -68,7 +75,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library that provides GObject bindings for libudev";
+    description = "Library that provides GObject bindings for libudev";
     homepage = "https://gitlab.gnome.org/GNOME/libgudev";
     maintainers = [ maintainers.eelco ] ++ teams.gnome.members;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix
index 58fb14167bd39..42b9272115437 100644
--- a/pkgs/development/libraries/libgweather/default.nix
+++ b/pkgs/development/libraries/libgweather/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgweather";
-  version = "4.4.0";
+  version = "4.4.2";
 
   outputs = [ "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Nm6Gb/KnCLiUz+qUdbjo/1TLPitHfqcqit4Nq+5fSKQ=";
+    hash = "sha256-puQntHcK2kiUXzqpBq9xD8gzz/DULfkfGCgwJ0DXlOw=";
   };
 
   patches = [
@@ -100,7 +100,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to access weather information from online services for numerous locations";
+    description = "Library to access weather information from online services for numerous locations";
     homepage = "https://gitlab.gnome.org/GNOME/libgweather";
     license = licenses.gpl2Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libgxps/default.nix b/pkgs/development/libraries/libgxps/default.nix
index 041431651c3e2..cff74fbb47416 100644
--- a/pkgs/development/libraries/libgxps/default.nix
+++ b/pkgs/development/libraries/libgxps/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject based library for handling and rendering XPS documents";
+    description = "GObject based library for handling and rendering XPS documents";
     homepage = "https://gitlab.gnome.org/GNOME/libgxps";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libhandy/0.x.nix b/pkgs/development/libraries/libhandy/0.x.nix
index 1ae6c72afc3e1..e2b4ce381b7fb 100644
--- a/pkgs/development/libraries/libhandy/0.x.nix
+++ b/pkgs/development/libraries/libhandy/0.x.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library full of GTK widgets for mobile phones";
+    description = "Library full of GTK widgets for mobile phones";
     mainProgram = "handy-0.0-demo";
     homepage = "https://source.puri.sm/Librem5/libhandy";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libhandy/default.nix b/pkgs/development/libraries/libhandy/default.nix
index 19dcb4248f9b5..a43ee0986be81 100644
--- a/pkgs/development/libraries/libhandy/default.nix
+++ b/pkgs/development/libraries/libhandy/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-BbSXIpBz/1V/ELMm4HTFBm+HQ6MC1IIKuXvLXNLasIc=";
+    hash = "sha256-BbSXIpBz/1V/ELMm4HTFBm+HQ6MC1IIKuXvLXNLasIc=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/libhv/default.nix b/pkgs/development/libraries/libhv/default.nix
index e48b836b7cd79..c64c8e6e291f8 100644
--- a/pkgs/development/libraries/libhv/default.nix
+++ b/pkgs/development/libraries/libhv/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server";
+    description = "C/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server";
     homepage = "https://github.com/ithewei/libhv";
     license = licenses.bsd3;
     maintainers = with maintainers; [ sikmir ];
diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix
index 9cfe47fcb4d53..d3ee9581305c7 100644
--- a/pkgs/development/libraries/libical/default.nix
+++ b/pkgs/development/libraries/libical/default.nix
@@ -81,6 +81,14 @@ stdenv.mkDerivation rec {
     ./respect-env-tzdir.patch
   ];
 
+  postPatch = ''
+    # Fix typo in test env setup
+    # https://github.com/libical/libical/commit/03c02ced21494413920744a400c638b0cb5d493f
+    substituteInPlace src/test/libical-glib/CMakeLists.txt \
+      --replace-fail "''${CMAKE_BINARY_DIR}/src/libical-glib;\$ENV{GI_TYPELIB_PATH}" "''${CMAKE_BINARY_DIR}/src/libical-glib:\$ENV{GI_TYPELIB_PATH}" \
+      --replace-fail "''${LIBRARY_OUTPUT_PATH};\$ENV{LD_LIBRARY_PATH}" "''${LIBRARY_OUTPUT_PATH}:\$ENV{LD_LIBRARY_PATH}"
+  '';
+
   # Using install check so we do not have to manually set
   # LD_LIBRARY_PATH and GI_TYPELIB_PATH variables
   # Musl does not support TZDIR.
@@ -104,7 +112,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libical/libical";
-    description = "An Open Source implementation of the iCalendar protocols";
+    description = "Open Source implementation of the iCalendar protocols";
     changelog = "https://github.com/libical/libical/raw/v${version}/ReleaseNotes.txt";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libiconv/default.nix b/pkgs/development/libraries/libiconv/default.nix
index ed162d115298c..b59887381f49e 100644
--- a/pkgs/development/libraries/libiconv/default.nix
+++ b/pkgs/development/libraries/libiconv/default.nix
@@ -63,8 +63,10 @@ stdenv.mkDerivation rec {
     (lib.enableFeature enableShared "shared")
   ] ++ lib.optional stdenv.isFreeBSD "--with-pic";
 
+  passthru = { inherit setupHooks; };
+
   meta = {
-    description = "An iconv(3) implementation";
+    description = "Iconv(3) implementation";
 
     longDescription = ''
       Some programs, like mailers and web browsers, must be able to convert
diff --git a/pkgs/development/libraries/libimagequant/default.nix b/pkgs/development/libraries/libimagequant/default.nix
index 3473a7aa4e166..e4d3f4d0fe01a 100644
--- a/pkgs/development/libraries/libimagequant/default.nix
+++ b/pkgs/development/libraries/libimagequant/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchurl
 , rust
 , rustPlatform
 , cargo-c
diff --git a/pkgs/development/libraries/libime/default.nix b/pkgs/development/libraries/libime/default.nix
index 69a6a033fc095..a1f7f50a25756 100644
--- a/pkgs/development/libraries/libime/default.nix
+++ b/pkgs/development/libraries/libime/default.nix
@@ -29,13 +29,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libime";
-  version = "1.1.7";
+  version = "1.1.8";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "libime";
     rev = version;
-    hash = "sha256-I8zznZlMz1U2DAVYkvtF1thEYz/tIEbA682y7czK5ck=";
+    hash = "sha256-uT0V1CXPaF2FctsndxVszS7Qske6vObbOA4aOnmbdQY=";
     fetchSubmodules = true;
   };
 
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library to support generic input method implementation";
+    description = "Library to support generic input method implementation";
     homepage = "https://github.com/fcitx/libime";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ poscat ];
diff --git a/pkgs/development/libraries/libimobiledevice/default.nix b/pkgs/development/libraries/libimobiledevice/default.nix
index 9a97bb0a67a20..59ee89c95422a 100644
--- a/pkgs/development/libraries/libimobiledevice/default.nix
+++ b/pkgs/development/libraries/libimobiledevice/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libimobiledevice/libimobiledevice";
-    description = "A software library that talks the protocols to support iPhone®, iPod Touch® and iPad® devices on Linux";
+    description = "Software library that talks the protocols to support iPhone®, iPod Touch® and iPad® devices on Linux";
     longDescription = ''
       libimobiledevice is a software library that talks the protocols to support
       iPhone®, iPod Touch® and iPad® devices on Linux. Unlike other projects, it
@@ -77,6 +77,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
-    maintainers = [ ];
+    maintainers = with maintainers; [ RossComputerGuy ];
   };
 }
diff --git a/pkgs/development/libraries/libindicator/default.nix b/pkgs/development/libraries/libindicator/default.nix
index 99b6542fa3e82..767b7a1d8cf24 100644
--- a/pkgs/development/libraries/libindicator/default.nix
+++ b/pkgs/development/libraries/libindicator/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails 8 out of 8 tests
 
   meta = with lib; {
-    description = "A set of symbols and convenience functions for Ayatana indicators";
+    description = "Set of symbols and convenience functions for Ayatana indicators";
     homepage = "https://launchpad.net/libindicator";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libinfinity/default.nix b/pkgs/development/libraries/libinfinity/default.nix
index c4285220af3d9..e720ee8b07262 100644
--- a/pkgs/development/libraries/libinfinity/default.nix
+++ b/pkgs/development/libraries/libinfinity/default.nix
@@ -42,7 +42,7 @@ let
 
     meta = {
       homepage = "https://gobby.github.io/";
-      description = "An implementation of the Infinote protocol written in GObject-based C";
+      description = "Implementation of the Infinote protocol written in GObject-based C";
       mainProgram = "infinoted-0.7";
       license = lib.licenses.lgpl2Plus;
       maintainers = [ ];
diff --git a/pkgs/development/libraries/libinklevel/default.nix b/pkgs/development/libraries/libinklevel/default.nix
index 0179009be3f9b..945fa0df5962d 100644
--- a/pkgs/development/libraries/libinklevel/default.nix
+++ b/pkgs/development/libraries/libinklevel/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "doc" ];
 
   meta = with lib; {
-    description = "A library for checking the ink level of your printer";
+    description = "Library for checking the ink level of your printer";
     longDescription = ''
       Libinklevel is a library for checking the ink level of your printer on a
       system which runs Linux or FreeBSD. It supports printers attached via
diff --git a/pkgs/development/libraries/libipfix/default.nix b/pkgs/development/libraries/libipfix/default.nix
index 96fd190e15bbb..e6ddb9b471c7c 100644
--- a/pkgs/development/libraries/libipfix/default.nix
+++ b/pkgs/development/libraries/libipfix/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://libipfix.sourceforge.net/";
-    description = "The libipfix C-library implements the IPFIX protocol defined by the IP Flow Information Export working group of the IETF";
+    description = "Libipfix C-library implements the IPFIX protocol defined by the IP Flow Information Export working group of the IETF";
     mainProgram = "ipfix_collector";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libircclient/default.nix b/pkgs/development/libraries/libircclient/default.nix
index 56a9f1b961cf9..9d64b53c13f4b 100644
--- a/pkgs/development/libraries/libircclient/default.nix
+++ b/pkgs/development/libraries/libircclient/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A small but extremely powerful library which implements the client IRC protocol";
+    description = "Small but extremely powerful library which implements the client IRC protocol";
     homepage    = "http://www.ulduzsoft.com/libircclient/";
     license     = licenses.lgpl3;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/development/libraries/libirecovery/default.nix b/pkgs/development/libraries/libirecovery/default.nix
index c2a8e16e1d48a..45a4a2b93acf3 100644
--- a/pkgs/development/libraries/libirecovery/default.nix
+++ b/pkgs/development/libraries/libirecovery/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libirecovery";
-  version = "1.1.0";
+  version = "1.2.0";
 
   outputs = [ "out" "dev" ];
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "libimobiledevice";
     repo = pname;
     rev = version;
-    hash = "sha256-84xwSOLwPU2Py6X2r6FYESxdc1EuuD6xHEXTUUEdvTE=";
+    hash = "sha256-3C66oNjIZA6Byf1Y2cVQUSLz6Css1y4xFZuQmo7QxMo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libjaylink/default.nix b/pkgs/development/libraries/libjaylink/default.nix
index 5d461940dcea9..f313241d6d865 100644
--- a/pkgs/development/libraries/libjaylink/default.nix
+++ b/pkgs/development/libraries/libjaylink/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.zapb.de/libjaylink/libjaylink";
-    description = "libjaylink is a shared library written in C to access SEGGER J-Link and compatible devices.";
+    description = "libjaylink is a shared library written in C to access SEGGER J-Link and compatible devices";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ felixsinger ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch b/pkgs/development/libraries/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch
index 7753150180642..552914a51cd5b 100644
--- a/pkgs/development/libraries/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch
+++ b/pkgs/development/libraries/libjpeg-turbo/0001-Compile-transupp.c-as-part-of-the-library.patch
@@ -26,7 +26,7 @@ index adb0ca45..46fc16dd 100644
    ${CMAKE_CURRENT_SOURCE_DIR}/jerror.h ${CMAKE_CURRENT_SOURCE_DIR}/jmorecfg.h
 -  ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h
 +  ${CMAKE_CURRENT_SOURCE_DIR}/jpeglib.h ${CMAKE_CURRENT_SOURCE_DIR}/transupp.h
-   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
+   DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include)
  
  include(cmakescripts/BuildPackages.cmake)
 -- 
diff --git a/pkgs/development/libraries/libjpeg-turbo/default.nix b/pkgs/development/libraries/libjpeg-turbo/default.nix
index a34a60b11bf15..9055e75de47f8 100644
--- a/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , nasm
 , openjdk
@@ -33,22 +32,16 @@ assert !(enableJpeg7 && enableJpeg8);  # pick only one or none, not both
 stdenv.mkDerivation (finalAttrs: {
 
   pname = "libjpeg-turbo";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchFromGitHub {
     owner = "libjpeg-turbo";
     repo = "libjpeg-turbo";
     rev = finalAttrs.version;
-    hash = "sha256-xHjd0WHN50b75wdWPHUwfmJGsiWKmj+zA59UwakIo74=";
+    hash = "sha256-w2wJaVf4sjJ9pPPqc9R4TE6Q6Yl0U6+fI5KLpQKwEXI=";
   };
 
   patches = [
-    (fetchpatch {
-      name = "CMAKE_CROSSCOMPILING_EMULATOR=env-fix.patch";
-      url = "https://github.com/libjpeg-turbo/libjpeg-turbo/compare/36c51dd3eb60ebde3ca77d3cfa7df3422f1aaaf1..b6ee1016abbc55116304ad396cf88aa19391e10a.patch";
-      hash = "sha256-dNwXicvZEsG02TBaM5nYMlZ+VczT/Dfx6ZM/6huZpwE=";
-    })
-
     # This is needed by freeimage
     ./0001-Compile-transupp.c-as-part-of-the-library.patch
   ] ++ lib.optionals (!stdenv.hostPlatform.isMinGW) [
@@ -108,7 +101,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://libjpeg-turbo.org/";
-    description = "A faster (using SIMD) libjpeg implementation";
+    description = "Faster (using SIMD) libjpeg implementation";
     license = licenses.ijg; # and some parts under other BSD-style licenses
     pkgConfigModules = [ "libjpeg" "libturbojpeg" ];
     maintainers = with maintainers; [ vcunat colemickens kamadorueda ];
diff --git a/pkgs/development/libraries/libjpeg/default.nix b/pkgs/development/libraries/libjpeg/default.nix
index d161ff362bcbc..6b1c80c6db2a3 100644
--- a/pkgs/development/libraries/libjpeg/default.nix
+++ b/pkgs/development/libraries/libjpeg/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.ijg.org/";
-    description = "A library that implements the JPEG image file format";
+    description = "Library that implements the JPEG image file format";
     maintainers = with maintainers; [ ];
     license = licenses.free;
     pkgConfigModules = [ "libjpeg" ];
diff --git a/pkgs/development/libraries/libjson/default.nix b/pkgs/development/libraries/libjson/default.nix
index 30e36e9658583..dd68957616b6f 100644
--- a/pkgs/development/libraries/libjson/default.nix
+++ b/pkgs/development/libraries/libjson/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://libjson.sourceforge.net/";
-    description = "A JSON reader and writer";
+    description = "JSON reader and writer";
     longDescription = ''
       A JSON reader and writer which is super-efficient and
       usually runs circles around other JSON libraries.
diff --git a/pkgs/development/libraries/libjwt/default.nix b/pkgs/development/libraries/libjwt/default.nix
index 3d26d6a090c69..5643efb7079f7 100644
--- a/pkgs/development/libraries/libjwt/default.nix
+++ b/pkgs/development/libraries/libjwt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libjwt";
-  version = "1.17.0";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "benmcollins";
     repo = "libjwt";
     rev = "v${version}";
-    sha256 = "sha256-ZMmXn/vKARz9Erg3XS2YICSq5u38NZFMDAafXXzE1Ss=";
+    sha256 = "sha256-yMnk4gfUa5c6Inppz9I1h6it41nuJ4By3eDO0YrdB2Y=";
   };
 
   buildInputs = [ jansson openssl ];
diff --git a/pkgs/development/libraries/libjxl/default.nix b/pkgs/development/libraries/libjxl/default.nix
index c91ae27f68054..1b0888348c594 100644
--- a/pkgs/development/libraries/libjxl/default.nix
+++ b/pkgs/development/libraries/libjxl/default.nix
@@ -27,7 +27,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "libjxl";
-  version = "0.9.1";
+  version = "0.10.2";
 
   outputs = [ "out" "dev" ];
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     owner = "libjxl";
     repo = "libjxl";
     rev = "v${version}";
-    hash = "sha256-n5KNbbw6NQRROEM7Cojla/igRCFNawUq7nfhzJlMlPI=";
+    hash = "sha256-Ip/5fbzt6OfIrHJajnxEe14ppvX1hJ1FSJUBEE/h5YQ=";
     # There are various submodules in `third_party/`.
     fetchSubmodules = true;
   };
@@ -140,7 +140,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libjxl/libjxl";
-    description = "JPEG XL image format reference implementation.";
+    description = "JPEG XL image format reference implementation";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nh2 ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libkate/default.nix b/pkgs/development/libraries/libkate/default.nix
index d2ef623bf1577..d1a9711ddd891 100644
--- a/pkgs/development/libraries/libkate/default.nix
+++ b/pkgs/development/libraries/libkate/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libogg libpng ];
 
   meta = with lib; {
-    description = "A library for encoding and decoding Kate streams";
+    description = "Library for encoding and decoding Kate streams";
     longDescription = ''
       This is libkate, the reference implementation of a codec for the Kate
       bitstream format. Kate is a karaoke and text codec meant for encapsulation
diff --git a/pkgs/development/libraries/libkrun/default.nix b/pkgs/development/libraries/libkrun/default.nix
index 6a66320299279..9549edc2caebf 100644
--- a/pkgs/development/libraries/libkrun/default.nix
+++ b/pkgs/development/libraries/libkrun/default.nix
@@ -13,18 +13,18 @@
 
 stdenv.mkDerivation rec {
   pname = "libkrun";
-  version = "1.8.1";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "libkrun";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rrNiqwx4aEOB3fTyv8xcZEDsNJX4NNPhp13W0qnl1O0=";
+    hash = "sha256-R8JofaoqEM6IL4mr10kOWH0GfqwuyG2qkFjGR1+0fXw=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit pname version src;
-    hash = "sha256-6Zfy0LtxUDZzwlhul2fZpsI1c7GWntAMfsT6j+QefVs=";
+    hash = "sha256-gPWTFl5YrlWDBXyksc9TidOzQf42bSJ05pdqtErk844=";
   };
 
   nativeBuildInputs = [
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A dynamic library providing Virtualization-based process isolation capabilities";
+    description = "Dynamic library providing Virtualization-based process isolation capabilities";
     homepage = "https://github.com/containers/libkrun";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/libraries/libkrunfw/default.nix b/pkgs/development/libraries/libkrunfw/default.nix
index f4f67db652cac..0485c82ffb41e 100644
--- a/pkgs/development/libraries/libkrunfw/default.nix
+++ b/pkgs/development/libraries/libkrunfw/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A dynamic library bundling the guest payload consumed by libkrun";
+    description = "Dynamic library bundling the guest payload consumed by libkrun";
     homepage = "https://github.com/containers/libkrunfw";
     license = with licenses; [ lgpl2Only lgpl21Only ];
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/libraries/liblangtag/default.nix b/pkgs/development/libraries/liblangtag/default.nix
index 0988bb9259d74..38f1cc03cac48 100644
--- a/pkgs/development/libraries/liblangtag/default.nix
+++ b/pkgs/development/libraries/liblangtag/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook gtk-doc gettext pkg-config unzip gobject-introspection ];
 
   meta = with lib; {
-    description = "An interface library to access tags for identifying languages";
+    description = "Interface library to access tags for identifying languages";
     license = licenses.mpl20;
     maintainers = [ maintainers.raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/liblc3/default.nix b/pkgs/development/libraries/liblc3/default.nix
index bcefd8311fbf2..3e1be4ba272ec 100644
--- a/pkgs/development/libraries/liblc3/default.nix
+++ b/pkgs/development/libraries/liblc3/default.nix
@@ -7,7 +7,7 @@
 
 let
   name = "liblc3";
-  version = "1.1.0";
+  version = "1.1.1";
 in
 stdenv.mkDerivation {
   pname = name;
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     owner = "google";
     repo = "liblc3";
     rev = "v${version}";
-    sha256 = "sha256-pKd9wOrDjKhWX8vTsg6qkE71FQlsC7VM/uq0ss1vsAQ=";
+    sha256 = "sha256-h9qy04FqlHXp0bOUoP4+WqI0yrM78e56S+DEn3HztYo=";
   };
 
   outputs = [ "out" "dev" ];
@@ -27,11 +27,14 @@ stdenv.mkDerivation {
     ninja
   ];
 
+  # LTO does not work on Darwin: https://github.com/NixOS/nixpkgs/issues/19098
+  mesonFlags = lib.optionals stdenv.isDarwin [ "-Db_lto=false" ];
+
   meta = with lib; {
     description = "LC3 (Low Complexity Communication Codec) is an efficient low latency audio codec";
     homepage = "https://github.com/google/liblc3";
     license = licenses.asl20;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ jansol ];
   };
 }
diff --git a/pkgs/development/libraries/libliftoff/default.nix b/pkgs/development/libraries/libliftoff/default.nix
index 08b7ab13a2758..4bcf6ae166a05 100644
--- a/pkgs/development/libraries/libliftoff/default.nix
+++ b/pkgs/development/libraries/libliftoff/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libdrm ];
 
   meta = with lib; {
-    description = "A lightweight KMS plane library";
+    description = "Lightweight KMS plane library";
     longDescription = ''
       libliftoff eases the use of KMS planes from userspace without standing in
       your way. Users create "virtual planes" called layers, set KMS properties
diff --git a/pkgs/development/libraries/liblinear/default.nix b/pkgs/development/libraries/liblinear/default.nix
index b75aba83de691..449792a07e826 100644
--- a/pkgs/development/libraries/liblinear/default.nix
+++ b/pkgs/development/libraries/liblinear/default.nix
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for large linear classification";
+    description = "Library for large linear classification";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/liblouis/default.nix b/pkgs/development/libraries/liblouis/default.nix
index a5c0bf92751fa..8d2a4044458e5 100644
--- a/pkgs/development/libraries/liblouis/default.nix
+++ b/pkgs/development/libraries/liblouis/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "liblouis";
-  version = "3.29.0";
+  version = "3.30.0";
 
   outputs = [ "out" "dev" "info" "doc" ]
     # configure: WARNING: cannot generate manual pages while cross compiling
@@ -23,7 +23,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-TaMPl53FlUSZIsjhoTYcv3Y+j86fDHuBTjiyr/uP1tM=";
+    hash = "sha256-VeDthGET1PcKXzXkztJCcN6yXgf51bcIyawuyUurwBs=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/libraries/liblxi/default.nix b/pkgs/development/libraries/liblxi/default.nix
index 8531c8ea7c4c5..24c454d4ee7e8 100644
--- a/pkgs/development/libraries/liblxi/default.nix
+++ b/pkgs/development/libraries/liblxi/default.nix
@@ -3,17 +3,24 @@
 , libtirpc, rpcsvc-proto, avahi, libxml2
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "liblxi";
   version = "1.20";
 
   src = fetchFromGitHub {
     owner = "lxi-tools";
     repo = "liblxi";
-    rev = "v${version}";
+    rev = "v${finalAttrs.version}";
     hash = "sha256-jS0huNkbyKrsJ3NkenrYtjkzLakOsTJpwlgSo98ribE=";
   };
 
+  postPatch = ''
+    # needed by darwin
+    sed -e 1i'#include <string.h>' \
+        -e 1i'#include <stdlib.h>' \
+        -i src/bonjour.c
+  '';
+
   nativeBuildInputs = [ meson ninja cmake pkg-config rpcsvc-proto ];
 
   buildInputs = lib.optionals (!stdenv.isDarwin) [
@@ -36,4 +43,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     maintainers = [ maintainers.vq ];
   };
-}
+})
diff --git a/pkgs/development/libraries/libmad/default.nix b/pkgs/development/libraries/libmad/default.nix
index b9096fce9ef0c..a8c212ea84639 100644
--- a/pkgs/development/libraries/libmad/default.nix
+++ b/pkgs/development/libraries/libmad/default.nix
@@ -7,7 +7,6 @@
 # for passthru.tests
 , audacity
 , mpd
-, mpg321
 , normalize
 , ocamlPackages
 , streamripper
@@ -70,13 +69,13 @@ stdenv.mkDerivation rec {
   preConfigure = "autoconf";
 
   passthru.tests = {
-    inherit audacity mpd mpg321 normalize streamripper vlc;
+    inherit audacity mpd normalize streamripper vlc;
     ocaml-mad = ocamlPackages.mad;
   };
 
   meta = with lib; {
     homepage    = "https://sourceforge.net/projects/mad/";
-    description = "A high-quality, fixed-point MPEG audio decoder supporting MPEG-1 and MPEG-2";
+    description = "High-quality, fixed-point MPEG audio decoder supporting MPEG-1 and MPEG-2";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/libmanette/default.nix b/pkgs/development/libraries/libmanette/default.nix
index ee8891d051f0c..cd30b61f1c1fd 100644
--- a/pkgs/development/libraries/libmanette/default.nix
+++ b/pkgs/development/libraries/libmanette/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A simple GObject game controller library";
+    description = "Simple GObject game controller library";
     mainProgram = "manette-test";
     homepage = "https://gnome.pages.gitlab.gnome.org/libmanette/";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libmatheval/default.nix b/pkgs/development/libraries/libmatheval/default.nix
index c2084b007a619..7ee8b86566472 100644
--- a/pkgs/development/libraries/libmatheval/default.nix
+++ b/pkgs/development/libraries/libmatheval/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   env.NIX_LDFLAGS = "-L${guile}/lib -lguile-${guile.effectiveVersion}";
 
   meta = {
-    description = "A library to parse and evaluate symbolic expressions input as text";
+    description = "Library to parse and evaluate symbolic expressions input as text";
     longDescription = ''
       GNU libmatheval is a library (callable from C and Fortran) to parse and evaluate symbolic
       expressions input as text. It supports expressions in any number of variables of arbitrary
diff --git a/pkgs/development/libraries/libmatroska/default.nix b/pkgs/development/libraries/libmatroska/default.nix
index aee9176790e2e..8bbd6d9d9df03 100644
--- a/pkgs/development/libraries/libmatroska/default.nix
+++ b/pkgs/development/libraries/libmatroska/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library to parse Matroska files";
+    description = "Library to parse Matroska files";
     homepage = "https://matroska.org/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/libmbim/default.nix b/pkgs/development/libraries/libmbim/default.nix
index 8ceb1b3b03bf3..ee4acc094e668 100644
--- a/pkgs/development/libraries/libmbim/default.nix
+++ b/pkgs/development/libraries/libmbim/default.nix
@@ -7,7 +7,6 @@
 , glib
 , python3
 , help2man
-, systemd
 , bash-completion
 , bash
 , buildPackages
@@ -52,7 +51,6 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    systemd
     bash-completion
     bash
   ];
diff --git a/pkgs/development/libraries/libmcfp/default.nix b/pkgs/development/libraries/libmcfp/default.nix
index 7a76fabaa4336..37d667ffee9a4 100644
--- a/pkgs/development/libraries/libmcfp/default.nix
+++ b/pkgs/development/libraries/libmcfp/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmcfp";
-  version = "1.2.4";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "mhekkel";
     repo = "libmcfp";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-Xz7M3TmUHGqiYZbFGSDxsVvg4VhgoVvr9TW03UxdFBw=";
+    hash = "sha256-hAY560uFrrM3gH3r4ArprWEsK/1w/XXDeyTMIYUv+qY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libmd/default.nix b/pkgs/development/libraries/libmd/default.nix
index bf156fb1c55dd..867bd5dc9ba3e 100644
--- a/pkgs/development/libraries/libmd/default.nix
+++ b/pkgs/development/libraries/libmd/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook }:
+{ lib, stdenv, fetchurl, autoreconfHook }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libmd";
diff --git a/pkgs/development/libraries/libmikmod/default.nix b/pkgs/development/libraries/libmikmod/default.nix
index 90b548bef73ab..f3122d8ab2105 100644
--- a/pkgs/development/libraries/libmikmod/default.nix
+++ b/pkgs/development/libraries/libmikmod/default.nix
@@ -27,7 +27,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for playing tracker music module files";
+    description = "Library for playing tracker music module files";
     mainProgram = "libmikmod-config";
     homepage    = "https://mikmod.shlomifish.org/";
     license     = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/libmodulemd/default.nix b/pkgs/development/libraries/libmodulemd/default.nix
index ce16753cf5405..7011f30bcf9d5 100644
--- a/pkgs/development/libraries/libmodulemd/default.nix
+++ b/pkgs/development/libraries/libmodulemd/default.nix
@@ -1,6 +1,7 @@
-{ lib, stdenv
-, substituteAll
+{ stdenv
+, lib
 , fetchFromGitHub
+, fetchpatch2
 , pkg-config
 , meson
 , ninja
@@ -29,10 +30,20 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    # Use proper glib devdoc path.
-    (substituteAll {
-      src = ./glib-devdoc.patch;
-      glib_devdoc = glib.devdoc;
+    # Adapt to GLib 2.79 documentation
+    # https://github.com/fedora-modularity/libmodulemd/pull/612
+    (fetchpatch2 {
+      url = "https://github.com/fedora-modularity/libmodulemd/commit/9d2809090cc0cccd7bab67453dc00cf43a289082.patch";
+      hash = "sha256-dMtc6GN6lIDjUReFUhEFJ/8wosASo3tLu4ve72BCXQ8=";
+    })
+    (fetchpatch2 {
+      url = "https://github.com/fedora-modularity/libmodulemd/commit/29c339a31b1c753dcdef041e5c2e0e600e48b59d.patch";
+      hash = "sha256-uniHrQdbcXlJk2hq106SgV/E330LfxDc07E4FbOMLr0=";
+    })
+    # Adapt to GLib 2.80.1 documentation
+    (fetchpatch2 {
+      url = "https://github.com/fedora-modularity/libmodulemd/commit/f3336199b4e69af3305f156abc7533bed9e9a762.patch";
+      hash = "sha256-Rvg+/KTKiEBXVEK7tlcTDf53HkaW462g/rg1rHPzaZA=";
     })
   ];
 
@@ -57,6 +68,12 @@ stdenv.mkDerivation rec {
     "-Dgobject_overrides_dir_py3=${placeholder "py"}/${python3.sitePackages}/gi/overrides"
   ];
 
+  postPatch = ''
+    # Use proper glib devdoc path
+    substituteInPlace meson.build --replace-fail \
+      "glib_docpath = join_paths(glib_prefix," "glib_docpath = join_paths('${lib.getOutput "devdoc" glib}',"
+  '';
+
   postFixup = ''
     # Python overrides depend our own typelibs and other packages
     mkdir -p "$py/nix-support"
@@ -69,6 +86,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/fedora-modularity/libmodulemd";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
-    platforms = platforms.linux ++ platforms.darwin ;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/libraries/libmodulemd/glib-devdoc.patch b/pkgs/development/libraries/libmodulemd/glib-devdoc.patch
deleted file mode 100644
index cde42d8e0b2e8..0000000000000
--- a/pkgs/development/libraries/libmodulemd/glib-devdoc.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/meson.build b/meson.build
-index a8b02b4..dd31a76 100644
---- a/meson.build
-+++ b/meson.build
-@@ -67,7 +67,7 @@ test = find_program('test')
- with_docs = get_option('with_docs')
- if with_docs
-   gtkdoc = dependency('gtk-doc')
--  glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
-+  glib_docpath = join_paths('@glib_devdoc@', 'share', 'gtk-doc', 'html')
- 
-   ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
-   if ret.returncode() != 0
diff --git a/pkgs/development/libraries/libmowgli/default.nix b/pkgs/development/libraries/libmowgli/default.nix
index a2a3971844bc1..5c999c4c1d484 100644
--- a/pkgs/development/libraries/libmowgli/default.nix
+++ b/pkgs/development/libraries/libmowgli/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A development framework for C providing high performance and highly flexible algorithms";
+    description = "Development framework for C providing high performance and highly flexible algorithms";
     homepage = "https://github.com/atheme/libmowgli-2";
     license = licenses.isc;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libmpeg2/default.nix b/pkgs/development/libraries/libmpeg2/default.nix
index bf5f25ca43f8a..289d5beac8d74 100644
--- a/pkgs/development/libraries/libmpeg2/default.nix
+++ b/pkgs/development/libraries/libmpeg2/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://libmpeg2.sourceforge.net/";
-    description = "A free library for decoding mpeg-2 and mpeg-1 video streams";
+    description = "Free library for decoding mpeg-2 and mpeg-1 video streams";
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
     platforms = with lib.platforms; unix;
diff --git a/pkgs/development/libraries/libmspack/default.nix b/pkgs/development/libraries/libmspack/default.nix
index d03cdd635cd13..136a303109162 100644
--- a/pkgs/development/libraries/libmspack/default.nix
+++ b/pkgs/development/libraries/libmspack/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A de/compression library for various Microsoft formats";
+    description = "De/compression library for various Microsoft formats";
     homepage = "https://www.cabextract.org.uk/libmspack";
     license = lib.licenses.lgpl2Only;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libmtp/default.nix b/pkgs/development/libraries/libmtp/default.nix
index cd6820fdab06a..ea61234333b81 100644
--- a/pkgs/development/libraries/libmtp/default.nix
+++ b/pkgs/development/libraries/libmtp/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libmtp/libmtp";
-    description = "An implementation of Microsoft's Media Transfer Protocol";
+    description = "Implementation of Microsoft's Media Transfer Protocol";
     longDescription = ''
       libmtp is an implementation of Microsoft's Media Transfer Protocol (MTP)
       in the form of a library suitable primarily for POSIX compliant operating
diff --git a/pkgs/development/libraries/libmx/default.nix b/pkgs/development/libraries/libmx/default.nix
index c6bbde6940b13..c178e152d2304 100644
--- a/pkgs/development/libraries/libmx/default.nix
+++ b/pkgs/development/libraries/libmx/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.clutter-project.org/";
-    description = "A Clutter-based toolkit";
+    description = "Clutter-based toolkit";
     mainProgram = "mx-create-image-cache";
     longDescription =
       ''Mx is a widget toolkit using Clutter that provides a set of standard
diff --git a/pkgs/development/libraries/libnabo/default.nix b/pkgs/development/libraries/libnabo/default.nix
index 90ed45178d1fa..8be83148b5140 100644
--- a/pkgs/development/libraries/libnabo/default.nix
+++ b/pkgs/development/libraries/libnabo/default.nix
@@ -1,14 +1,14 @@
 {lib, stdenv, fetchFromGitHub, cmake, eigen, boost}:
 
 stdenv.mkDerivation rec {
-  version = "1.1.1";
+  version = "1.1.2";
   pname = "libnabo";
 
   src = fetchFromGitHub {
     owner = "ethz-asl";
     repo = "libnabo";
     rev = version;
-    sha256 = "sha256-EVbvNwj1aRhRr5PhF6Kkb/UTn4JzF174WX1C+tvBv2Q=";
+    sha256 = "sha256-/XXRwiLLaEvp+Q+c6lBiuWBb9by6o0pDf8wFtBNp7o8=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A fast K Nearest Neighbor library for low-dimensional spaces";
+    description = "Fast K Nearest Neighbor library for low-dimensional spaces";
     license = licenses.bsd3;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ cryptix ];
diff --git a/pkgs/development/libraries/libnatspec/default.nix b/pkgs/development/libraries/libnatspec/default.nix
index 4124422c85bdc..1ec57144b1a07 100644
--- a/pkgs/development/libraries/libnatspec/default.nix
+++ b/pkgs/development/libraries/libnatspec/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://natspec.sourceforge.net/";
-    description = "A library intended to smooth national specificities in using of programs";
+    description = "Library intended to smooth national specificities in using of programs";
     mainProgram = "natspec";
     platforms = platforms.unix;
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/libnbd/default.nix b/pkgs/development/libraries/libnbd/default.nix
index 5889c8ef12d55..c7e9e2b087e34 100644
--- a/pkgs/development/libraries/libnbd/default.nix
+++ b/pkgs/development/libraries/libnbd/default.nix
@@ -4,6 +4,7 @@
 , bash-completion
 , pkg-config
 , perl
+, buildPythonBindings ? false, python3
 , libxml2
 , fuse
 , fuse3
@@ -12,18 +13,19 @@
 
 stdenv.mkDerivation rec {
   pname = "libnbd";
-  version = "1.18.2";
+  version = "1.20.1";
 
   src = fetchurl {
     url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
-    hash = "sha256-OYtNHAIGgwJuapoJNEMVkurUK9bQ7KO+V223bGC0TFI=";
+    hash = "sha256-AoTfX6Ov9Trj9a9i+K+NYCwxhQ9C5YYqx/15RBtgJYw=";
   };
 
   nativeBuildInputs = [
     bash-completion
     pkg-config
     perl
-  ];
+  ]
+    ++ lib.optionals buildPythonBindings [ python3 ];
 
   buildInputs = [
     fuse
@@ -32,8 +34,16 @@ stdenv.mkDerivation rec {
     libxml2
   ];
 
+  configureFlags = lib.optionals buildPythonBindings [ "--with-python-installdir=${placeholder "out"}/${python3.sitePackages}" ];
+
   installFlags = [ "bashcompdir=$(out)/share/bash-completion/completions" ];
 
+  postInstall = lib.optionalString buildPythonBindings ''
+    LIBNBD_PYTHON_METADATA='${placeholder "out"}/${python3.sitePackages}/nbd-${version}.dist-info/METADATA'
+    install -Dm644 -T ${./libnbd-metadata} $LIBNBD_PYTHON_METADATA
+    substituteAllInPlace $LIBNBD_PYTHON_METADATA
+  '';
+
   meta = with lib; {
     homepage = "https://gitlab.com/nbdkit/libnbd";
     description = "Network Block Device client library in userspace";
@@ -59,5 +69,4 @@ stdenv.mkDerivation rec {
 }
 # TODO: package the 1.6-stable version too
 # TODO: git version needs ocaml
-# TODO: bindings for go, ocaml and python
-
+# TODO: bindings for go and ocaml
diff --git a/pkgs/development/libraries/libnbd/libnbd-metadata b/pkgs/development/libraries/libnbd/libnbd-metadata
new file mode 100644
index 0000000000000..7d91ab88d2015
--- /dev/null
+++ b/pkgs/development/libraries/libnbd/libnbd-metadata
@@ -0,0 +1,3 @@
+Metadata-Version: 2.1
+Name: nbd
+Version: @version@
diff --git a/pkgs/development/libraries/libndp/default.nix b/pkgs/development/libraries/libndp/default.nix
index b04b22da12369..436045da89fb2 100644
--- a/pkgs/development/libraries/libndp/default.nix
+++ b/pkgs/development/libraries/libndp/default.nix
@@ -11,6 +11,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "ac_cv_func_malloc_0_nonnull=yes"
+  ];
+
   meta = with lib; {
     homepage = "http://libndp.org/";
     description = "Library for Neighbor Discovery Protocol";
diff --git a/pkgs/development/libraries/libnftnl/default.nix b/pkgs/development/libraries/libnftnl/default.nix
index 941ef5dad79f8..3fb02abfb5337 100644
--- a/pkgs/development/libraries/libnftnl/default.nix
+++ b/pkgs/development/libraries/libnftnl/default.nix
@@ -9,11 +9,13 @@ stdenv.mkDerivation rec {
     hash = "sha256-zurqLNkhR9oZ8To1p/GkvCdn/4l+g45LR5z1S1nHd/Q=";
   };
 
+  configureFlags = lib.optional (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "LDFLAGS=-Wl,--undefined-version";
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libmnl ];
 
   meta = with lib; {
-    description = "A userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
+    description = "Userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem";
     homepage = "https://netfilter.org/projects/libnftnl/";
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libngspice/default.nix b/pkgs/development/libraries/libngspice/default.nix
index 6da456b26ed66..eb6a057dcae35 100644
--- a/pkgs/development/libraries/libngspice/default.nix
+++ b/pkgs/development/libraries/libngspice/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "The Next Generation Spice (Electronic Circuit Simulator)";
+    description = "Next Generation Spice (Electronic Circuit Simulator)";
     mainProgram = "ngspice";
     homepage = "http://ngspice.sourceforge.net";
     license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ]; # See https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/COPYING
diff --git a/pkgs/development/libraries/libnotify/default.nix b/pkgs/development/libraries/libnotify/default.nix
index 589703f574c61..cb8506dca6ca5 100644
--- a/pkgs/development/libraries/libnotify/default.nix
+++ b/pkgs/development/libraries/libnotify/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library that sends desktop notifications to a notification daemon";
+    description = "Library that sends desktop notifications to a notification daemon";
     homepage = "https://gitlab.gnome.org/GNOME/libnotify";
     license = licenses.lgpl21;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/libnut/default.nix b/pkgs/development/libraries/libnut/default.nix
index 401327b0158a0..c89206209963c 100644
--- a/pkgs/development/libraries/libnut/default.nix
+++ b/pkgs/development/libraries/libnut/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library to read/write the NUT video container format";
+    description = "Library to read/write the NUT video container format";
     homepage = "https://git.ffmpeg.org/gitweb/nut.git";
     license = licenses.mit;
     maintainers = with maintainers; [quag];
diff --git a/pkgs/development/libraries/libodfgen/default.nix b/pkgs/development/libraries/libodfgen/default.nix
index d4a6aab24c871..4f9574e079081 100644
--- a/pkgs/development/libraries/libodfgen/default.nix
+++ b/pkgs/development/libraries/libodfgen/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A base library for generating ODF documents";
+    description = "Base library for generating ODF documents";
     license = licenses.mpl20;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/liboggz/default.nix b/pkgs/development/libraries/liboggz/default.nix
index ecf013363ad73..d458590179dd2 100644
--- a/pkgs/development/libraries/liboggz/default.nix
+++ b/pkgs/development/libraries/liboggz/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://xiph.org/oggz/";
-    description = "A C library and tools for manipulating with Ogg files and streams";
+    description = "C library and tools for manipulating with Ogg files and streams";
     longDescription = ''
       Oggz comprises liboggz and the tool oggz, which provides commands to
       inspect, edit and validate Ogg files. The oggz-chop tool can also be used
diff --git a/pkgs/development/libraries/liboil/default.nix b/pkgs/development/libraries/liboil/default.nix
index 7a28ac119c345..4b112b70e7ad3 100644
--- a/pkgs/development/libraries/liboil/default.nix
+++ b/pkgs/development/libraries/liboil/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   buildFlags = lib.optional stdenv.isDarwin "CFLAGS=-fheinous-gnu-extensions";
 
   meta = with lib; {
-    description = "A library of simple functions that are optimized for various CPUs";
+    description = "Library of simple functions that are optimized for various CPUs";
     mainProgram = "oil-bugreport";
     homepage    = "https://liboil.freedesktop.org";
     license     = licenses.bsd2;
diff --git a/pkgs/development/libraries/libomxil-bellagio/default.nix b/pkgs/development/libraries/libomxil-bellagio/default.nix
index 027c0b8f499d1..78f37bbbb67dd 100644
--- a/pkgs/development/libraries/libomxil-bellagio/default.nix
+++ b/pkgs/development/libraries/libomxil-bellagio/default.nix
@@ -35,11 +35,13 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE =
     # stringop-truncation: see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1028978
     if stdenv.cc.isGNU then "-Wno-error=array-bounds -Wno-error=stringop-overflow=8 -Wno-error=stringop-truncation"
-    else "-Wno-error=absolute-value -Wno-error=enum-conversion -Wno-error=logical-not-parentheses -Wno-error=non-literal-null-conversion";
+    else let
+      isLLVM17 = stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17";
+    in "-Wno-error=absolute-value -Wno-error=enum-conversion -Wno-error=logical-not-parentheses -Wno-error=non-literal-null-conversion${lib.optionalString (isLLVM17) " -Wno-error=unused-but-set-variable"}";
 
   meta = with lib; {
     homepage = "https://omxil.sourceforge.net/";
-    description = "An opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components";
+    description = "Opensource implementation of the Khronos OpenMAX Integration Layer API to access multimedia components";
     mainProgram = "omxregister-bellagio";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libopenshot-audio/default.nix b/pkgs/development/libraries/libopenshot-audio/default.nix
index bbec90a4055ae..005422295236e 100644
--- a/pkgs/development/libraries/libopenshot-audio/default.nix
+++ b/pkgs/development/libraries/libopenshot-audio/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , alsa-lib
 , cmake
 , doxygen
diff --git a/pkgs/development/libraries/libopus/default.nix b/pkgs/development/libraries/libopus/default.nix
deleted file mode 100644
index 3592c537ac441..0000000000000
--- a/pkgs/development/libraries/libopus/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ lib
-, stdenv
-, fetchpatch
-, fetchurl
-, gitUpdater
-, meson
-, python3
-, ninja
-, fixedPoint ? false
-, withCustomModes ? true
-, withIntrinsics ? stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isx86
-, withAsm ? false
-
-# tests
-, ffmpeg-headless
-, testers
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "libopus";
-  version = "1.5.1";
-
-  src = fetchurl {
-    url = "https://downloads.xiph.org/releases/opus/opus-${finalAttrs.version}.tar.gz";
-    hash = "sha256-uEYQlZuNQXthGqEqIlZeCjcyCXxjidGQmNhEVD40D4U=";
-  };
-
-  patches = [
-    ./fix-pkg-config-paths.patch
-    # Some tests time out easily on slower machines
-    ./test-timeout.patch
-  ];
-
-  postPatch = ''
-    patchShebangs meson/
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [
-    meson
-    python3
-    ninja
-  ];
-
-  mesonFlags = [
-    (lib.mesonBool "fixed-point" fixedPoint)
-    (lib.mesonBool "custom-modes" withCustomModes)
-    (lib.mesonEnable "intrinsics" withIntrinsics)
-    (lib.mesonEnable "rtcd" (withIntrinsics || withAsm))
-    (lib.mesonEnable "asm" withAsm)
-    (lib.mesonEnable "docs" false)
-  ];
-
-  doCheck = !stdenv.isi686 && !stdenv.isAarch32; # test_unit_LPC_inv_pred_gain fails
-
-  passthru = {
-    updateScript = gitUpdater {
-      url = "https://gitlab.xiph.org/xiph/opus.git";
-      rev-prefix = "v";
-    };
-
-    tests = {
-      inherit ffmpeg-headless;
-
-      pkg-config = testers.hasPkgConfigModules {
-        package = finalAttrs.finalPackage;
-        moduleNames = [ "opus" ];
-      };
-    };
-  };
-
-  meta = with lib; {
-    description = "Open, royalty-free, highly versatile audio codec";
-    homepage = "https://opus-codec.org/";
-    changelog = "https://gitlab.xiph.org/xiph/opus/-/releases/v${finalAttrs.version}";
-    license = licenses.bsd3;
-    platforms = platforms.all;
-    maintainers = [ ];
-  };
-})
diff --git a/pkgs/development/libraries/libopus/fix-pkg-config-paths.patch b/pkgs/development/libraries/libopus/fix-pkg-config-paths.patch
deleted file mode 100644
index d54b7f5558c9f..0000000000000
--- a/pkgs/development/libraries/libopus/fix-pkg-config-paths.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- i/meson.build
-+++ w/meson.build
-@@ -591,8 +591,8 @@ pkgconf = configuration_data()
- 
- pkgconf.set('prefix', join_paths(get_option('prefix')))
- pkgconf.set('exec_prefix', '${prefix}')
--pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
--pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
-+pkgconf.set('libdir', '${prefix}' / get_option('libdir'))
-+pkgconf.set('includedir', '${prefix}' / get_option('includedir'))
- pkgconf.set('VERSION', opus_version)
- pkgconf.set('PC_BUILD', pc_build)
- pkgconf.set('LIBM', libm.found() ? '-lm' : '')
diff --git a/pkgs/development/libraries/libopus/test-timeout.patch b/pkgs/development/libraries/libopus/test-timeout.patch
deleted file mode 100644
index 76025e648d8f5..0000000000000
--- a/pkgs/development/libraries/libopus/test-timeout.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/tests/meson.build
-+++ b/tests/meson.build
-@@ -1,6 +1,5 @@
- # Tests that link to libopus
- opus_tests = [
--  ['test_opus_api'],
-   ['test_opus_decode', [], 120],
-   ['test_opus_encode', 'opus_encode_regressions.c', 240],
-   ['test_opus_extensions', [], 120],
diff --git a/pkgs/development/libraries/liboqs/default.nix b/pkgs/development/libraries/liboqs/default.nix
deleted file mode 100644
index e703dc3647faa..0000000000000
--- a/pkgs/development/libraries/liboqs/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{
-  lib,
-  stdenv,
-  fetchFromGitHub,
-  cmake,
-  openssl,
-  enableStatic ? stdenv.hostPlatform.isStatic,
-}:
-
-stdenv.mkDerivation rec {
-  pname = "liboqs";
-  version = "0.8.0";
-
-  src = fetchFromGitHub {
-    owner = "open-quantum-safe";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-h3mXoGRYgPg0wKQ1u6uFP7wlEUMQd5uIBt4Hr7vjNtA=";
-  };
-
-  patches = [ ./fix-openssl-detection.patch ];
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ openssl ];
-
-  cmakeFlags = [
-    "-DBUILD_SHARED_LIBS=${if enableStatic then "OFF" else "ON"}"
-    "-DOQS_DIST_BUILD=ON"
-    "-DOQS_BUILD_ONLY_LIB=ON"
-  ];
-
-  dontFixCmake = true; # fix CMake file will give an error
-
-  meta = with lib; {
-    description = "C library for prototyping and experimenting with quantum-resistant cryptography";
-    homepage = "https://openquantumsafe.org";
-    license = licenses.mit;
-    platforms = platforms.all;
-    maintainers = [ maintainers.sigmanificient ];
-  };
-}
diff --git a/pkgs/development/libraries/liboqs/fix-openssl-detection.patch b/pkgs/development/libraries/liboqs/fix-openssl-detection.patch
deleted file mode 100644
index 33be7188370f9..0000000000000
--- a/pkgs/development/libraries/liboqs/fix-openssl-detection.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 6bdcf53de74ac2afba42deea63522939ca51f871 Mon Sep 17 00:00:00 2001
-From: Raphael Robatsch <raphael-git@tapesoftware.net>
-Date: Mon, 25 Dec 2023 16:15:29 +0000
-Subject: [PATCH] Do not forcibly set OPENSSL_ROOT_DIR.
-
-CMake can already find OpenSSL via pkg-config. Setting OPENSSL_ROOT_DIR
-forcibly to "/usr" breaks this.
----
- CMakeLists.txt | 11 -----------
- 1 file changed, 11 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 288bcbe8..9750fae6 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -119,17 +119,6 @@ include(.CMake/compiler_opts.cmake)
- include(.CMake/alg_support.cmake)
- 
- if(${OQS_USE_OPENSSL})
--    if(NOT DEFINED OPENSSL_ROOT_DIR)
--        if(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Darwin")
--            if(EXISTS "/usr/local/opt/openssl@1.1")
--                set(OPENSSL_ROOT_DIR "/usr/local/opt/openssl@1.1")
--            elseif(EXISTS "/opt/homebrew/opt/openssl@1.1")
--                set(OPENSSL_ROOT_DIR "/opt/homebrew/opt/openssl@1.1")
--            endif()
--        elseif(${CMAKE_HOST_SYSTEM_NAME} STREQUAL "Linux")
--            set(OPENSSL_ROOT_DIR "/usr")
--        endif()
--    endif()
-     find_package(OpenSSL 1.1.1 REQUIRED)
- endif()
- 
--- 
-2.42.0
-
diff --git a/pkgs/development/libraries/libowfat/default.nix b/pkgs/development/libraries/libowfat/default.nix
index a04050458edfd..9cf52b2cc04e2 100644
--- a/pkgs/development/libraries/libowfat/default.nix
+++ b/pkgs/development/libraries/libowfat/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A GPL reimplementation of libdjb";
+    description = "GPL reimplementation of libdjb";
     homepage = "https://www.fefe.de/libowfat/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libowlevelzs/default.nix b/pkgs/development/libraries/libowlevelzs/default.nix
index 7bf8386f252f0..e3a4ffb11e8e8 100644
--- a/pkgs/development/libraries/libowlevelzs/default.nix
+++ b/pkgs/development/libraries/libowlevelzs/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     description = "Zscheile Lowlevel (utility) library";
     homepage = "https://github.com/fogti/libowlevelzs";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/libpanel/default.nix b/pkgs/development/libraries/libpanel/default.nix
index 05b863ad20114..55faa7e628603 100644
--- a/pkgs/development/libraries/libpanel/default.nix
+++ b/pkgs/development/libraries/libpanel/default.nix
@@ -15,14 +15,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libpanel";
-  version = "1.4.1";
+  version = "1.6.0";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "mirror://gnome/sources/libpanel/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "mEENAOc0hX7N8zuaIN17D7ONi20x1Dabr8HGc5Krud4=";
+    hash = "sha256-t3NJSjxpMANFzY4nAnRI0RiRgwJswTeAL4hkF8bqMLY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libpar2/default.nix b/pkgs/development/libraries/libpar2/default.nix
index 772f3ff719d58..7def28b924603 100644
--- a/pkgs/development/libraries/libpar2/default.nix
+++ b/pkgs/development/libraries/libpar2/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://parchive.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
-    description = "A library for using Parchives (parity archive volume sets)";
+    description = "Library for using Parchives (parity archive volume sets)";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/libpeas/2.x.nix b/pkgs/development/libraries/libpeas/2.x.nix
index 61fe424e2c224..e2d1bf0f82311 100644
--- a/pkgs/development/libraries/libpeas/2.x.nix
+++ b/pkgs/development/libraries/libpeas/2.x.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libpeas";
-  version = "2.0.1";
+  version = "2.0.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    hash = "sha256-ndwdUfOGY9pN9SFjBRt7LOo6JCz67p9afhQPB4TIqnc=";
+    hash = "sha256-8w3/7WPKL0BHe0DhccCjH4DZFCW6Hh5HMg7mQlSA7MM=";
   };
 
   patches = [
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject-based plugins engine";
+    description = "GObject-based plugins engine";
     homepage = "https://gitlab.gnome.org/GNOME/libpeas";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libpeas/default.nix b/pkgs/development/libraries/libpeas/default.nix
index 922bfba9ad232..71996ce7f81be 100644
--- a/pkgs/development/libraries/libpeas/default.nix
+++ b/pkgs/development/libraries/libpeas/default.nix
@@ -13,7 +13,7 @@
 , gobject-introspection
 , python3
 , ncurses
-, wrapGAppsHook
+, wrapGAppsHook3
 }:
 
 stdenv.mkDerivation rec {
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     gettext
     gi-docgen
     gobject-introspection
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A GObject-based plugins engine";
+    description = "GObject-based plugins engine";
     mainProgram = "peas-demo";
     homepage = "https://gitlab.gnome.org/GNOME/libpeas";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/libphonenumber/default.nix b/pkgs/development/libraries/libphonenumber/default.nix
index edd3379617279..ceda871932abc 100644
--- a/pkgs/development/libraries/libphonenumber/default.nix
+++ b/pkgs/development/libraries/libphonenumber/default.nix
@@ -1,14 +1,26 @@
-{ lib, stdenv, fetchFromGitHub, cmake, gtest, boost, pkg-config, protobuf, icu, Foundation, buildPackages }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPackages
+, cmake
+, gtest
+, jre
+, pkg-config
+, boost
+, icu
+, protobuf
+, Foundation
+}:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libphonenumber";
-  version = "8.12.37";
+  version = "8.13.37";
 
   src = fetchFromGitHub {
-    owner = "googlei18n";
+    owner = "google";
     repo = "libphonenumber";
-    rev = "v${version}";
-    sha256 = "sha256-xLxadSxVY3DjFDQrqj3BuOvdMaKdFSLjocfzovJCBB0=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-TQ9Hz9fnKZhZkg+hkXgFqH4TDCWMe+fcEWE6ShwSBBU=";
   };
 
   patches = [
@@ -19,29 +31,35 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
+    gtest
+    jre
     pkg-config
   ];
 
   buildInputs = [
     boost
-    protobuf
     icu
-    gtest
-  ] ++ lib.optional stdenv.isDarwin Foundation;
+    protobuf
+  ] ++ lib.optionals stdenv.isDarwin [
+    Foundation
+  ];
 
   cmakeDir = "../cpp";
-  cmakeFlags =
-    lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-      "-DBUILD_GEOCODER=OFF"
-      "-DPROTOC_BIN=${buildPackages.protobuf}/bin/protoc"
-    ];
 
-  checkPhase = "./libphonenumber_test";
+  doCheck = true;
+
+  checkTarget = "tests";
+
+  cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+    (lib.cmakeFeature "CMAKE_CROSSCOMPILING_EMULATOR" (stdenv.hostPlatform.emulator buildPackages))
+    (lib.cmakeFeature "PROTOC_BIN" (lib.getExe buildPackages.protobuf))
+  ];
 
   meta = with lib; {
+    changelog = "https://github.com/google/libphonenumber/blob/${finalAttrs.src.rev}/release_notes.txt";
     description = "Google's i18n library for parsing and using phone numbers";
     homepage = "https://github.com/google/libphonenumber";
     license = licenses.asl20;
     maintainers = with maintainers; [ illegalprime ];
   };
-}
+})
diff --git a/pkgs/development/libraries/libplacebo/default.nix b/pkgs/development/libraries/libplacebo/default.nix
index 558acc4bbbeb8..5759d9bed505b 100644
--- a/pkgs/development/libraries/libplacebo/default.nix
+++ b/pkgs/development/libraries/libplacebo/default.nix
@@ -15,6 +15,7 @@
 , libdovi
 , xxHash
 , fast-float
+, vulkanSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -33,13 +34,11 @@ stdenv.mkDerivation rec {
     meson
     ninja
     pkg-config
-    vulkan-headers
     python3Packages.jinja2
     python3Packages.glad2
   ];
 
   buildInputs = [
-    vulkan-loader
     shaderc
     lcms2
     libGL
@@ -47,15 +46,19 @@ stdenv.mkDerivation rec {
     libunwind
     libdovi
     xxHash
+    vulkan-headers
+  ] ++ lib.optionals vulkanSupport [
+    vulkan-loader
   ] ++ lib.optionals (!stdenv.cc.isGNU) [
     fast-float
   ];
 
   mesonFlags = with lib; [
-    (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml")
     (mesonBool "demos" false) # Don't build and install the demo programs
     (mesonEnable "d3d11" false) # Disable the Direct3D 11 based renderer
     (mesonEnable "glslang" false) # rely on shaderc for GLSL compilation instead
+    (mesonEnable "vk-proc-addr" vulkanSupport)
+    (mesonOption "vulkan-registry" "${vulkan-headers}/share/vulkan/registry/vk.xml")
   ] ++ optionals stdenv.isDarwin [
     (mesonEnable "unwind" false) # libplacebo doesn’t build with `darwin.libunwind`
   ];
diff --git a/pkgs/development/libraries/libplctag/default.nix b/pkgs/development/libraries/libplctag/default.nix
index de71d021d015d..1e0fa3160e5a1 100644
--- a/pkgs/development/libraries/libplctag/default.nix
+++ b/pkgs/development/libraries/libplctag/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libplctag";
-  version = "2.5.5";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "libplctag";
     repo = "libplctag";
     rev = "v${version}";
-    sha256 = "sha256-eWtQaYUWZNQYQOUXnbUfjrtpoO6CnNJ8WjlowA49sG0=";
+    sha256 = "sha256-+lsRYKA1FIXQXv0nfDNCAqIbqPunrzlpSC5FoF3VIsg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/libplist/default.nix b/pkgs/development/libraries/libplist/default.nix
index 8e38347c722e1..9a69af13d2fd1 100644
--- a/pkgs/development/libraries/libplist/default.nix
+++ b/pkgs/development/libraries/libplist/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library to handle Apple Property List format in binary or XML";
+    description = "Library to handle Apple Property List format in binary or XML";
     homepage = "https://github.com/libimobiledevice/libplist";
     license = licenses.lgpl21Plus;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libpng/12.nix b/pkgs/development/libraries/libpng/12.nix
index e94bd026a7a6b..9792447bcc888 100644
--- a/pkgs/development/libraries/libpng/12.nix
+++ b/pkgs/development/libraries/libpng/12.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The official reference implementation for the PNG file format";
+    description = "Official reference implementation for the PNG file format";
     homepage = "http://www.libpng.org/pub/png/libpng.html";
     license = licenses.libpng;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libpng/default.nix b/pkgs/development/libraries/libpng/default.nix
index 34d7a3e580b79..11e3fb31604f7 100644
--- a/pkgs/development/libraries/libpng/default.nix
+++ b/pkgs/development/libraries/libpng/default.nix
@@ -20,7 +20,11 @@ in stdenv.mkDerivation (finalAttrs: {
     url = "mirror://sourceforge/libpng/libpng-${finalAttrs.version}.tar.xz";
     hash = "sha256-alygZSOSotfJ2yrltAIQhDwLvAgcvUEIJasAzFnxSmw=";
   };
-  postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1";
+  postPatch = whenPatched "gunzip < ${patch_src} | patch -Np1"
+  + lib.optionalString stdenv.isFreeBSD ''
+
+    sed -i 1i'int feenableexcept(int __mask);' contrib/libtests/pngvalid.c
+  '';
 
   outputs = [ "out" "dev" "man" ];
   outputBin = "dev";
@@ -36,7 +40,7 @@ in stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "The official reference implementation for the PNG file format" + whenPatched " with animation patch";
+    description = "Official reference implementation for the PNG file format" + whenPatched " with animation patch";
     homepage = "http://www.libpng.org/pub/png/libpng.html";
     changelog = "https://github.com/pnggroup/libpng/blob/v${finalAttrs.version}/CHANGES";
     license = licenses.libpng2;
diff --git a/pkgs/development/libraries/libpointmatcher/default.nix b/pkgs/development/libraries/libpointmatcher/default.nix
index 92e1585373479..709ca6876048a 100644
--- a/pkgs/development/libraries/libpointmatcher/default.nix
+++ b/pkgs/development/libraries/libpointmatcher/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "An \"Iterative Closest Point\" library for 2-D/3-D mapping in robotic";
+    description = "\"Iterative Closest Point\" library for 2-D/3-D mapping in robotic";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ cryptix ];
diff --git a/pkgs/development/libraries/libpostal/default.nix b/pkgs/development/libraries/libpostal/default.nix
index fbeb60022a1dc..1d0ea162d1d6b 100644
--- a/pkgs/development/libraries/libpostal/default.nix
+++ b/pkgs/development/libraries/libpostal/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.hostPlatform.isAarch64 [ "--disable-sse2" ];
 
   meta = with lib; {
-    description = "A C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data";
+    description = "C library for parsing/normalizing street addresses around the world. Powered by statistical NLP and open geo data";
     homepage = "https://github.com/openvenues/libpostal";
     license = licenses.mit;
     maintainers = [ maintainers.Thra11 ];
diff --git a/pkgs/development/libraries/libpqxx/6.nix b/pkgs/development/libraries/libpqxx/6.nix
index 1c2a98fcb3c99..ff394526ea207 100644
--- a/pkgs/development/libraries/libpqxx/6.nix
+++ b/pkgs/development/libraries/libpqxx/6.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--enable-shared" ];
 
   meta = {
-    description = "A C++ library to access PostgreSQL databases";
+    description = "C++ library to access PostgreSQL databases";
     homepage = "https://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index acb0013035cbf..13fecb9b56bfc 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   CXXFLAGS = [ "-std=c++17" ];
 
   meta = {
-    description = "A C++ library to access PostgreSQL databases";
+    description = "C++ library to access PostgreSQL databases";
     homepage = "https://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix
index 340cfafee3271..1183f46799ef5 100644
--- a/pkgs/development/libraries/libproxy/default.nix
+++ b/pkgs/development/libraries/libproxy/default.nix
@@ -4,7 +4,6 @@
 , darwin
 , duktape
 , fetchFromGitHub
-, fetchpatch
 , gi-docgen
 , gitUpdater
 , glib
@@ -21,7 +20,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libproxy";
-  version = "0.5.3";
+  version = "0.5.6";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -29,18 +28,10 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "libproxy";
     repo = "libproxy";
     rev = finalAttrs.version;
-    hash = "sha256-qdYB6HJkgboS8kkTvTqLy6Z3JYY5SOJsRl6nZM0iuvw=";
+    hash = "sha256-2uDlKjxzrKlyZKV0BSUDzmLSo2voJKDerbZZkamgNYk=";
   };
 
   patches = [
-    # Minor refactoring. Allows the following patches to apply without rebasing.
-    (fetchpatch {
-      url = "https://github.com/libproxy/libproxy/commit/397f4dc72607cc1bb3b584ffd3de49f8ba80491a.patch";
-      hash = "sha256-iUMBMpcVOLG+NxEj8Nd7JtKZFmoGXn0t6A2r2ayiteg=";
-      includes = [
-        "src/backend/plugins/config-gnome/config-gnome.c"
-      ];
-    })
   ]
   ++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
     # Disable schema presence detection, it would fail because it cannot be autopatched,
@@ -87,7 +78,11 @@ stdenv.mkDerivation (finalAttrs: {
     gsettings-desktop-schemas
   ]);
 
-  mesonFlags = lib.optionals stdenv.hostPlatform.isDarwin [
+  mesonFlags = [
+    # Prevent installing commit hook.
+    "-Drelease=true"
+  ]
+  ++ lib.optionals stdenv.hostPlatform.isDarwin [
     "-Dconfig-gnome=false"
   ];
 
@@ -122,7 +117,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library that provides automatic proxy configuration management";
+    description = "Library that provides automatic proxy configuration management";
     homepage = "https://libproxy.github.io/libproxy/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/libpst/default.nix b/pkgs/development/libraries/libpst/default.nix
index d6d33957b9a62..9b2ff09850262 100644
--- a/pkgs/development/libraries/libpst/default.nix
+++ b/pkgs/development/libraries/libpst/default.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://www.five-ten-sg.com/libpst/";
-    description = "A library to read PST (MS Outlook Personal Folders) files";
+    description = "Library to read PST (MS Outlook Personal Folders) files";
     license = licenses.gpl2Plus;
     maintainers = [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libqalculate/default.nix b/pkgs/development/libraries/libqalculate/default.nix
index 34e34a7eeebf6..b8df75b3c1781 100644
--- a/pkgs/development/libraries/libqalculate/default.nix
+++ b/pkgs/development/libraries/libqalculate/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libqalculate";
-  version = "5.0.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-VhaGgtSU6+7eMY7ksQMpybmt2JBI80Nwgu7PCKrTorA=";
+    hash = "sha256-cmH92gdQ+fmtOLgx5ibKqLZaQFzx2z+GuXhR62dtftk=";
   };
 
   outputs = [ "out" "dev" "doc" ];
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An advanced calculator library";
+    description = "Advanced calculator library";
     homepage = "http://qalculate.github.io";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ gebner doronbehar alyaeanyx ];
diff --git a/pkgs/development/libraries/libqb/default.nix b/pkgs/development/libraries/libqb/default.nix
index fe54cdf3d338f..080078d2b7fac 100644
--- a/pkgs/development/libraries/libqb/default.nix
+++ b/pkgs/development/libraries/libqb/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/clusterlabs/libqb";
-    description = "A library providing high performance logging, tracing, ipc, and poll";
+    description = "Library providing high performance logging, tracing, ipc, and poll";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libqofono/default.nix b/pkgs/development/libraries/libqofono/default.nix
index 361421466e892..ff72711c8a75f 100644
--- a/pkgs/development/libraries/libqofono/default.nix
+++ b/pkgs/development/libraries/libqofono/default.nix
@@ -52,7 +52,7 @@ mkDerivation rec {
     description = "Library for accessing the ofono daemon, and declarative plugin for it";
     homepage = "https://git.sailfishos.org/mer-core/libqofono/";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ samueldr ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libqtav/default.nix b/pkgs/development/libraries/libqtav/default.nix
index afae47c96d3d7..17862e23b75bc 100644
--- a/pkgs/development/libraries/libqtav/default.nix
+++ b/pkgs/development/libraries/libqtav/default.nix
@@ -61,7 +61,7 @@ mkDerivation rec {
   stripDebugList = [ "lib" "libexec" "bin" "qml" ];
 
   meta =  with lib; {
-    description = "A multimedia playback framework based on Qt + FFmpeg";
+    description = "Multimedia playback framework based on Qt + FFmpeg";
     #license = licenses.lgpl21; # For the libraries / headers only.
     license = licenses.gpl3; # With the examples (under bin) and most likely some of the optional dependencies used.
     homepage = "http://www.qtav.org/";
diff --git a/pkgs/development/libraries/libquotient/default.nix b/pkgs/development/libraries/libquotient/default.nix
index e388f2fbacb66..916fa4a3847e7 100644
--- a/pkgs/development/libraries/libquotient/default.nix
+++ b/pkgs/development/libraries/libquotient/default.nix
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt5/Qt6 library to write cross-platform clients for Matrix";
+    description = "Qt5/Qt6 library to write cross-platform clients for Matrix";
     homepage = "https://quotient-im.github.io/libQuotient/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ colemickens matthiasbeyer ];
diff --git a/pkgs/development/libraries/libr3/default.nix b/pkgs/development/libraries/libr3/default.nix
index 34ac547f49209..78934bbdcfb89 100644
--- a/pkgs/development/libraries/libr3/default.nix
+++ b/pkgs/development/libraries/libr3/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   strictDeps = true;
 
   meta = {
-    description = "A high-performance path dispatching library";
+    description = "High-performance path dispatching library";
     homepage = "https://github.com/c9s/r3";
     license = [ lib.licenses.mit ];
   };
diff --git a/pkgs/development/libraries/libraqm/default.nix b/pkgs/development/libraries/libraqm/default.nix
index 4ce422858f5bd..98769f2e374a0 100644
--- a/pkgs/development/libraries/libraqm/default.nix
+++ b/pkgs/development/libraries/libraqm/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library for complex text layout";
+    description = "Library for complex text layout";
     homepage = "https://github.com/HOST-Oman/libraqm";
     license = licenses.mit;
     maintainers = with maintainers; [ sifmelcara ];
diff --git a/pkgs/development/libraries/libraspberrypi/default.nix b/pkgs/development/libraries/libraspberrypi/default.nix
index 14f02d8481e95..bb7508b1cec5f 100644
--- a/pkgs/development/libraries/libraspberrypi/default.nix
+++ b/pkgs/development/libraries/libraspberrypi/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 }:
diff --git a/pkgs/development/libraries/librdf/raptor.nix b/pkgs/development/libraries/librdf/raptor.nix
index 1dde9402f9026..2afdb5d32bede 100644
--- a/pkgs/development/libraries/librdf/raptor.nix
+++ b/pkgs/development/libraries/librdf/raptor.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "The RDF Parser Toolkit";
+    description = "RDF Parser Toolkit";
     homepage = "https://librdf.org/raptor";
     license = with lib.licenses; [ lgpl21 asl20 ];
     maintainers = [ lib.maintainers.marcweber ];
diff --git a/pkgs/development/libraries/librdf/raptor2.nix b/pkgs/development/libraries/librdf/raptor2.nix
index b9d5252215cc6..424022b7ab4bc 100644
--- a/pkgs/development/libraries/librdf/raptor2.nix
+++ b/pkgs/development/libraries/librdf/raptor2.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libxml2 libxslt ];
 
   meta = {
-    description = "The RDF Parser Toolkit";
+    description = "RDF Parser Toolkit";
     mainProgram = "rapper";
     homepage = "https://librdf.org/raptor";
     license = with lib.licenses; [ lgpl21 asl20 ];
diff --git a/pkgs/development/libraries/libre/default.nix b/pkgs/development/libraries/libre/default.nix
index ace7d5f5f7866..fa419830f3c7c 100644
--- a/pkgs/development/libraries/libre/default.nix
+++ b/pkgs/development/libraries/libre/default.nix
@@ -31,9 +31,9 @@ stdenv.mkDerivation rec {
   ;
   enableParallelBuilding = true;
   meta = {
-    description = "A library for real-time communications with async IO support and a complete SIP stack";
+    description = "Library for real-time communications with async IO support and a complete SIP stack";
     homepage = "https://github.com/baresip/re";
-    maintainers = with lib.maintainers; [ elohmeier raskin ];
+    maintainers = with lib.maintainers; [ raskin ];
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index cb69770f054a0..527f61b603937 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300)";
+    description = "Cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300)";
     homepage = "https://github.com/IntelRealSense/librealsense";
     license = licenses.asl20;
     maintainers = with maintainers; [ brian-dawn pbsds ];
diff --git a/pkgs/development/libraries/librecast/default.nix b/pkgs/development/libraries/librecast/default.nix
index 563a77f3a29cb..df053e0ad9031 100644
--- a/pkgs/development/libraries/librecast/default.nix
+++ b/pkgs/development/libraries/librecast/default.nix
@@ -6,15 +6,15 @@
   libsodium,
 }:
 stdenv.mkDerivation (finalAttrs: {
-  name = "librecast";
-  version = "0.7.0";
+  pname = "librecast";
+  version = "0.8.0";
 
   src = fetchFromGitea {
     domain = "codeberg.org";
     owner = "librecast";
     repo = "librecast";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-NlwYJJn1yewx92y6UKJcj6R2MnPn+XuEiKOmsR2oE3g=";
+    hash = "sha256-8Qit1KFazVG+2TEmSGXiBNawvpc7Ihr/0mx4KCzBoAY=";
   };
   buildInputs = [ lcrq libsodium ];
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/development/libraries/librelp/default.nix b/pkgs/development/libraries/librelp/default.nix
index 59836861e7cdf..258067c083002 100644
--- a/pkgs/development/libraries/librelp/default.nix
+++ b/pkgs/development/libraries/librelp/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ gnutls zlib openssl ];
 
   meta = with lib; {
-    description = "A reliable logging library";
+    description = "Reliable logging library";
     homepage = "https://www.librelp.com/";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/librem/default.nix b/pkgs/development/libraries/librem/default.nix
index 8a1d24948aa4a..10dba7e7a59dd 100644
--- a/pkgs/development/libraries/librem/default.nix
+++ b/pkgs/development/libraries/librem/default.nix
@@ -25,9 +25,9 @@ stdenv.mkDerivation rec {
   ;
   enableParallelBuilding = true;
   meta = {
-    description = "A library for real-time audio and video processing";
+    description = "Library for real-time audio and video processing";
     homepage = "https://github.com/baresip/rem";
-    maintainers = with lib.maintainers; [ elohmeier raskin ];
+    maintainers = with lib.maintainers; [ raskin ];
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/libraries/libremidi/default.nix b/pkgs/development/libraries/libremidi/default.nix
index 4c19375a07f15..48014bea07416 100644
--- a/pkgs/development/libraries/libremidi/default.nix
+++ b/pkgs/development/libraries/libremidi/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A modern C++ MIDI real-time & file I/O library";
+    description = "Modern C++ MIDI real-time & file I/O library";
     homepage = "https://github.com/jcelerier/libremidi";
     maintainers = [ ];
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/libraries/libresample/default.nix b/pkgs/development/libraries/libresample/default.nix
index f466229cfe8e8..6ca1d09ef202f 100644
--- a/pkgs/development/libraries/libresample/default.nix
+++ b/pkgs/development/libraries/libresample/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = {
-    description = "A real-time library for sampling rate conversion library";
+    description = "Real-time library for sampling rate conversion library";
     license = lib.licenses.lgpl2Plus;
     homepage = "https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html";
     maintainers = [ lib.maintainers.sander ];
diff --git a/pkgs/development/libraries/libressl/default.nix b/pkgs/development/libraries/libressl/default.nix
index 59bcae1cd87ab..f8350f7c4a53f 100644
--- a/pkgs/development/libraries/libressl/default.nix
+++ b/pkgs/development/libraries/libressl/default.nix
@@ -103,11 +103,25 @@ in {
   libressl_3_6 = generic {
     version = "3.6.3";
     hash = "sha256-h7G7426e7I0K5fBMg9NrLFsOWBeEx+sIFwJe0p6t6jc=";
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/libressl/portable/commit/86e4965d7f20c3a6afc41d95590c9f6abb4fe788.patch";
+        includes = [ "tests/tlstest.sh" ];
+        hash = "sha256-XmmKTvP6+QaWxyGFCX6/gDfME9GqBWSx4X8RH8QbDXA=";
+      })
+    ];
   };
 
   libressl_3_7 = generic {
     version = "3.7.3";
     hash = "sha256-eUjIVqkMglvXJotvhWdKjc0lS65C4iF4GyTj+NwzXbM=";
+    patches = [
+      (fetchpatch {
+        url = "https://github.com/libressl/portable/commit/86e4965d7f20c3a6afc41d95590c9f6abb4fe788.patch";
+        includes = [ "tests/tlstest.sh" ];
+        hash = "sha256-XmmKTvP6+QaWxyGFCX6/gDfME9GqBWSx4X8RH8QbDXA=";
+      })
+    ];
   };
 
   libressl_3_8 = generic {
@@ -116,7 +130,7 @@ in {
   };
 
   libressl_3_9 = generic {
-    version = "3.9.1";
-    hash = "sha256-baC5VGlffuYrA/ZCAKik8Cr5Nxe2DM4Eq2yN8mLAelE=";
+    version = "3.9.2";
+    hash = "sha256-ewMdrGSlnrbuMwT3/7ddrTOrjJ0nnIR/ksifuEYGj5c=";
   };
 }
diff --git a/pkgs/development/libraries/librevenge/default.nix b/pkgs/development/libraries/librevenge/default.nix
index 1dd71d1e311b1..e8733a324cabc 100644
--- a/pkgs/development/libraries/librevenge/default.nix
+++ b/pkgs/development/libraries/librevenge/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A base library for writing document import filters";
+    description = "Base library for writing document import filters";
     license = licenses.mpl20;
     maintainers = with maintainers; [ raskin ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/librist/default.nix b/pkgs/development/libraries/librist/default.nix
index 3f56ff3248767..788e75eafddae 100644
--- a/pkgs/development/libraries/librist/default.nix
+++ b/pkgs/development/libraries/librist/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library that can be used to easily add the RIST protocol to your application.";
+    description = "Library that can be used to easily add the RIST protocol to your application";
     homepage = "https://code.videolan.org/rist/librist";
     license = with licenses; [ bsd2 mit isc ];
     maintainers = with maintainers; [ raphaelr sebtm ];
diff --git a/pkgs/development/libraries/librsvg/default.nix b/pkgs/development/libraries/librsvg/default.nix
index ee840b8e7f39b..e9a9eb977db3f 100644
--- a/pkgs/development/libraries/librsvg/default.nix
+++ b/pkgs/development/libraries/librsvg/default.nix
@@ -42,7 +42,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "librsvg";
-  version = "2.58.0";
+  version = "2.58.1";
 
   outputs = [ "out" "dev" ] ++ lib.optionals withIntrospection [
     "devdoc"
@@ -50,13 +50,13 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "mirror://gnome/sources/librsvg/${lib.versions.majorMinor finalAttrs.version}/librsvg-${finalAttrs.version}.tar.xz";
-    hash = "sha256-18REqSZAa1l5C+DerhluGO0mBZ2lc/oaqeycp2WKVZw=";
+    hash = "sha256-NyhZYpCoV20wXQbsiv30c1Fv7unf8i4DI16sQz1Wgk4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit (finalAttrs) src;
     name = "librsvg-deps-${finalAttrs.version}";
-    hash = "sha256-ta+3KkDtqTLGoKknUn89c+3XHzvcZyPFPFpgLH5f5uw=";
+    hash = "sha256-FIW92Cr83YkGTOe/xjyZGZvHYSrG70GBpHc9l0sMjLg=";
     # TODO: move this to fetchCargoTarball
     dontConfigure = true;
   };
@@ -184,14 +184,7 @@ stdenv.mkDerivation (finalAttrs: {
                 jq
                 nix
               ]}
-              # update-source-version does not allow updating to the same version so we need to clear it temporarily.
-              # Get the current version so that we can restore it later.
-              latestVersion=$(nix-instantiate --eval -A librsvg.version | jq --raw-output)
-              # Clear the version. Provide hash so that we do not need to do pointless TOFU.
-              # Needs to be a fake SRI hash that is non-zero, since u-s-v uses zero as a placeholder.
-              # Also cannot be here verbatim or u-s-v would be confused what to replace.
-              update-source-version librsvg 0 "sha256-${lib.fixedWidthString 44 "B" "="}" --source-key=cargoDeps > /dev/null
-              update-source-version librsvg "$latestVersion" --source-key=cargoDeps > /dev/null
+              update-source-version librsvg --ignore-same-version --source-key=cargoDeps > /dev/null
             ''
           ];
           # Experimental feature: do not copy!
@@ -216,8 +209,8 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A small library to render SVG images to Cairo surfaces";
-    homepage = "hhttps://gitlab.gnome.org/GNOME/librsvg";
+    description = "Small library to render SVG images to Cairo surfaces";
+    homepage = "https://gitlab.gnome.org/GNOME/librsvg";
     license = licenses.lgpl2Plus;
     maintainers = teams.gnome.members;
     mainProgram = "rsvg-convert";
diff --git a/pkgs/development/libraries/libs3/default.nix b/pkgs/development/libraries/libs3/default.nix
index 4bea630c1b278..10b10529f7ba0 100644
--- a/pkgs/development/libraries/libs3/default.nix
+++ b/pkgs/development/libraries/libs3/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/bji/libs3";
-    description = "A library for interfacing with amazon s3";
+    description = "Library for interfacing with amazon s3";
     mainProgram = "s3";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libsass/default.nix b/pkgs/development/libraries/libsass/default.nix
index 005e74289df7e..027cfa2b5c8be 100644
--- a/pkgs/development/libraries/libsass/default.nix
+++ b/pkgs/development/libraries/libsass/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A C/C++ implementation of a Sass compiler";
+    description = "C/C++ implementation of a Sass compiler";
     homepage = "https://github.com/sass/libsass";
     license = licenses.mit;
     maintainers = with maintainers; [ codyopel offline ];
diff --git a/pkgs/development/libraries/libschrift/default.nix b/pkgs/development/libraries/libschrift/default.nix
index 443550e8a0a16..376c0abbcdf94 100644
--- a/pkgs/development/libraries/libschrift/default.nix
+++ b/pkgs/development/libraries/libschrift/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch }:
+{ lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "libschrift";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tomolt/libschrift";
-    description = "A lightweight TrueType font rendering library";
+    description = "Lightweight TrueType font rendering library";
     license = licenses.isc;
     platforms = platforms.all;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/libraries/libsearpc/default.nix b/pkgs/development/libraries/libsearpc/default.nix
index 6d4675717f0d2..94034d6167cbf 100644
--- a/pkgs/development/libraries/libsearpc/default.nix
+++ b/pkgs/development/libraries/libsearpc/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/haiwen/libsearpc";
-    description = "A simple and easy-to-use C language RPC framework based on GObject System";
+    description = "Simple and easy-to-use C language RPC framework based on GObject System";
     mainProgram = "searpc-codegen.py";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libsecret/default.nix b/pkgs/development/libraries/libsecret/default.nix
index 040722ea406e8..d0b1515d0bad9 100644
--- a/pkgs/development/libraries/libsecret/default.nix
+++ b/pkgs/development/libraries/libsecret/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , lib
 , fetchurl
+, fetchpatch2
 , glib
 , meson
 , ninja
@@ -33,6 +34,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-Fj0I14O+bUq5qXnOtaT+y8HZZg08NBaMWBMBzVORKyA=";
   };
 
+  patches = [
+    # https://gitlab.gnome.org/GNOME/libsecret/-/merge_requests/141
+    (fetchpatch2 {
+      url = "https://gitlab.gnome.org/GNOME/libsecret/-/commit/208989323211c756dff690115e5cbde5ef7491ce.patch";
+      hash = "sha256-DtRbqyyoMttEYf6B16m9O72Yjurv6rpbnqH7AlrAU4k=";
+    })
+  ];
+
   depsBuildBuild = [
     pkg-config
   ];
@@ -120,7 +129,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "A library for storing and retrieving passwords and other secrets";
+    description = "Library for storing and retrieving passwords and other secrets";
     homepage = "https://gitlab.gnome.org/GNOME/libsecret";
     license = lib.licenses.lgpl21Plus;
     mainProgram = "secret-tool";
diff --git a/pkgs/development/libraries/libsegfault/default.nix b/pkgs/development/libraries/libsegfault/default.nix
index 721570f330b3c..58896c3e2bc27 100644
--- a/pkgs/development/libraries/libsegfault/default.nix
+++ b/pkgs/development/libraries/libsegfault/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libsegfault";
-  version = "unstable-2022-11-13";
+  version = "0-unstable-2022-11-13";
 
   src = fetchFromGitHub {
     owner = "jonathanpoelen";
diff --git a/pkgs/development/libraries/libserdes/default.nix b/pkgs/development/libraries/libserdes/default.nix
index cc66f4cc13084..11d10ff64d7c2 100644
--- a/pkgs/development/libraries/libserdes/default.nix
+++ b/pkgs/development/libraries/libserdes/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A schema-based serializer/deserializer C/C++ library with support for Avro and the Confluent Platform Schema Registry";
+    description = "Schema-based serializer/deserializer C/C++ library with support for Avro and the Confluent Platform Schema Registry";
     homepage = "https://github.com/confluentinc/libserdes";
     license = licenses.asl20;
     maintainers = with maintainers; [ liff ];
diff --git a/pkgs/development/libraries/libshumate/default.nix b/pkgs/development/libraries/libshumate/default.nix
index 6306fd2a55487..d0e6e95ad0c7b 100644
--- a/pkgs/development/libraries/libshumate/default.nix
+++ b/pkgs/development/libraries/libshumate/default.nix
@@ -1,35 +1,35 @@
 { lib
 , stdenv
-, fetchFromGitLab
+, fetchurl
 , gi-docgen
 , meson
 , ninja
 , pkg-config
 , vala
 , gobject-introspection
+, gperf
 , glib
 , cairo
 , sqlite
 , libsoup_3
 , gtk4
 , libsysprof-capture
+, json-glib
+, protobufc
 , xvfb-run
 , gnome
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "libshumate";
-  version = "1.1.3";
+  version = "1.2.2";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
 
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = "libshumate";
-    rev = version;
-    sha256 = "+h0dKLECtvfsxwD5aRTIgiNI9jG/tortUJYFiYMe60g=";
+  src = fetchurl {
+    url = "mirror://gnome/sources/libshumate/${lib.versions.majorMinor finalAttrs.version}/libshumate-${finalAttrs.version}.tar.xz";
+    hash = "sha256-b1h1effy1gs40/RyfrGo0v6snL3AGOU/9fdyqGCPpEs=";
   };
 
   depsBuildBuild = [
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
     pkg-config
     vala
     gobject-introspection
+    gperf
   ];
 
   buildInputs = [
@@ -53,6 +54,8 @@ stdenv.mkDerivation rec {
     libsoup_3
     gtk4
     libsysprof-capture
+    json-glib
+    protobufc
   ];
 
   nativeCheckInputs = [
@@ -83,7 +86,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "libshumate";
     };
   };
 
@@ -95,4 +98,4 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.unix;
   };
-}
+})
diff --git a/pkgs/development/libraries/libsidplayfp/default.nix b/pkgs/development/libraries/libsidplayfp/default.nix
index 01062398246bd..095406cd5fbb9 100644
--- a/pkgs/development/libraries/libsidplayfp/default.nix
+++ b/pkgs/development/libraries/libsidplayfp/default.nix
@@ -18,14 +18,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libsidplayfp";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchFromGitHub {
     owner = "libsidplayfp";
     repo = "libsidplayfp";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-f0c9rZ5QA4A7zKdXz6ImyPU0TnYi41cmjoqDqF9zYdA=";
+    hash = "sha256-qZharhEZ16q3Vd2PwVsKQaP/b6bT/okwEPKKwvRl5D8=";
   };
 
   outputs = [
@@ -95,7 +95,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library to play Commodore 64 music derived from libsidplay2";
+    description = "Library to play Commodore 64 music derived from libsidplay2";
     longDescription = ''
       libsidplayfp is a C64 music player library which integrates
       the reSID SID chip emulation into a cycle-based emulator
diff --git a/pkgs/development/libraries/libsieve/default.nix b/pkgs/development/libraries/libsieve/default.nix
index 8253d1df74fe1..12838b6269f7f 100644
--- a/pkgs/development/libraries/libsieve/default.nix
+++ b/pkgs/development/libraries/libsieve/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An interpreter for RFC 3028 Sieve and various extensions";
+    description = "Interpreter for RFC 3028 Sieve and various extensions";
     homepage = "http://sodabrew.com/libsieve/";
     license = licenses.lgpl21;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libsigcxx/3.0.nix b/pkgs/development/libraries/libsigcxx/3.0.nix
index 5515901a1cf2a..672cb984b8ee4 100644
--- a/pkgs/development/libraries/libsigcxx/3.0.nix
+++ b/pkgs/development/libraries/libsigcxx/3.0.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libsigcplusplus.github.io/libsigcplusplus/";
-    description = "A typesafe callback system for standard C++";
+    description = "Typesafe callback system for standard C++";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libsigcxx/default.nix b/pkgs/development/libraries/libsigcxx/default.nix
index c73cbaa55dc30..7e2746fb7f4c6 100644
--- a/pkgs/development/libraries/libsigcxx/default.nix
+++ b/pkgs/development/libraries/libsigcxx/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libsigcplusplus.github.io/libsigcplusplus/";
-    description = "A typesafe callback system for standard C++";
+    description = "Typesafe callback system for standard C++";
     license = licenses.lgpl21Plus;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/libsignon-glib/default.nix b/pkgs/development/libraries/libsignon-glib/default.nix
index 9f0496262f2a2..bdb6df0e52f89 100644
--- a/pkgs/development/libraries/libsignon-glib/default.nix
+++ b/pkgs/development/libraries/libsignon-glib/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library for managing single signon credentials which can be used from GLib applications";
+    description = "Library for managing single signon credentials which can be used from GLib applications";
     homepage = "https://gitlab.com/accounts-sso/libsignon-glib";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/libsixel/default.nix b/pkgs/development/libraries/libsixel/default.nix
index d4fa2a4d6ffe3..5bdaafc9f15c6 100644
--- a/pkgs/development/libraries/libsixel/default.nix
+++ b/pkgs/development/libraries/libsixel/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The SIXEL library for console graphics, and converter programs";
+    description = "SIXEL library for console graphics, and converter programs";
     homepage = "https://github.com/libsixel/libsixel";
     maintainers = with maintainers; [ vrthra ];
     license = licenses.mit;
diff --git a/pkgs/development/libraries/libskk/default.nix b/pkgs/development/libraries/libskk/default.nix
index 2f6e98e7dd0a0..8256f0525bbc6 100644
--- a/pkgs/development/libraries/libskk/default.nix
+++ b/pkgs/development/libraries/libskk/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A library to deal with Japanese kana-to-kanji conversion method";
+    description = "Library to deal with Japanese kana-to-kanji conversion method";
     mainProgram = "skk";
     longDescription = ''
       Libskk is a library that implements basic features of SKK including:
diff --git a/pkgs/development/libraries/libsmi/default.nix b/pkgs/development/libraries/libsmi/default.nix
index 14139d849dc72..5750e6677b347 100644
--- a/pkgs/development/libraries/libsmi/default.nix
+++ b/pkgs/development/libraries/libsmi/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-std=gnu90";
 
   meta = with lib; {
-    description = "A Library to Access SMI MIB Information";
+    description = "Library to Access SMI MIB Information";
     homepage = "https://www.ibr.cs.tu-bs.de/projects/libsmi/index.html";
     license = licenses.free;
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/development/libraries/libsndfile/default.nix b/pkgs/development/libraries/libsndfile/default.nix
index 02dbd633281c0..0e1dfb0bc08b0 100644
--- a/pkgs/development/libraries/libsndfile/default.nix
+++ b/pkgs/development/libraries/libsndfile/default.nix
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A C library for reading and writing files containing sampled sound";
+    description = "C library for reading and writing files containing sampled sound";
     homepage    = "https://libsndfile.github.io/libsndfile/";
     changelog   = "https://github.com/libsndfile/libsndfile/releases/tag/${version}";
     license     = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/libsodium/default.nix b/pkgs/development/libraries/libsodium/default.nix
index 4570b10db39c7..ac304ce31a048 100644
--- a/pkgs/development/libraries/libsodium/default.nix
+++ b/pkgs/development/libraries/libsodium/default.nix
@@ -1,28 +1,18 @@
-{ lib, stdenv, fetchurl, fetchpatch, autoreconfHook
+{ lib, stdenv, fetchurl, autoreconfHook
 , testers
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libsodium";
-  version = "1.0.19";
+  version = "1.0.20";
 
   src = fetchurl {
     url = "https://download.libsodium.org/libsodium/releases/${finalAttrs.pname}-${finalAttrs.version}.tar.gz";
-    hash = "sha256-AY15/goEXMoHMx03vQy1ey6DjFG8SP2DehRy5QBou+o=";
+    hash = "sha256-67Ze9spDkzPCu0GgwZkFhyiNoH9sf9B8s6GMwY0wzhk=";
   };
 
   outputs = [ "out" "dev" ];
 
-  patches = [
-    # Drop -Ofast as it breaks floating point arithmetics in downstream
-    # users.
-    (fetchpatch {
-      name = "drop-Ofast.patch";
-      url  = "https://github.com/jedisct1/libsodium/commit/ffd1e374989197b44d815ac8b5d8f0b43b6ce534.patch";
-      hash = "sha256-jG0VirIoFBwYmRx6zHSu2xe6pXYwbeqNVhPJxO6eJEY=";
-    })
-  ];
-
   nativeBuildInputs = [ autoreconfHook ];
 
   separateDebugInfo = stdenv.isLinux && stdenv.hostPlatform.libc != "musl";
@@ -39,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "A modern and easy-to-use crypto library";
+    description = "Modern and easy-to-use crypto library";
     homepage = "https://doc.libsodium.org/";
     license = licenses.isc;
     maintainers = with maintainers; [ raskin ];
diff --git a/pkgs/development/libraries/libsolv/default.nix b/pkgs/development/libraries/libsolv/default.nix
index 60e7da2907263..d8c49efd43caa 100644
--- a/pkgs/development/libraries/libsolv/default.nix
+++ b/pkgs/development/libraries/libsolv/default.nix
@@ -17,14 +17,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.28";
+  version = "0.7.29";
   pname = "libsolv";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "libsolv";
     rev = version;
-    hash = "sha256-cL7SDwCzXM2qJQfiu/3nfAiFbcFNn1YXD23Sl3n9nzY=";
+    hash = "sha256-867sCGFvKib1As9BCiCi6LYVrLUK0pjtM5Bw9Yuu0D8=";
   };
 
   cmakeFlags = [
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional withRpm rpm;
 
   meta = with lib; {
-    description = "A free package dependency solver";
+    description = "Free package dependency solver";
     homepage = "https://github.com/openSUSE/libsolv";
     license = licenses.bsd3;
     platforms = platforms.linux ++ platforms.darwin;
diff --git a/pkgs/development/libraries/libspiro/default.nix b/pkgs/development/libraries/libspiro/default.nix
index 780ca0ebdc73e..f583900e35d95 100644
--- a/pkgs/development/libraries/libspiro/default.nix
+++ b/pkgs/development/libraries/libspiro/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config autoreconfHook ];
 
   meta = with lib; {
-    description = "A library that simplifies the drawing of beautiful curves";
+    description = "Library that simplifies the drawing of beautiful curves";
     homepage = "https://github.com/fontforge/libspiro";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.erictapen ];
diff --git a/pkgs/development/libraries/libsrs2/default.nix b/pkgs/development/libraries/libsrs2/default.nix
index 5cb0974af9f1d..e6fd748362e90 100644
--- a/pkgs/development/libraries/libsrs2/default.nix
+++ b/pkgs/development/libraries/libsrs2/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = {
-    description = "The next generation SRS library from the original designer of SRS";
+    description = "Next generation SRS library from the original designer of SRS";
     mainProgram = "srs";
     license = with lib.licenses; [ gpl2 bsd3 ];
     homepage = "https://www.libsrs2.org/";
diff --git a/pkgs/development/libraries/libssh2/default.nix b/pkgs/development/libraries/libssh2/default.nix
index f7a51da9fa672..65770cb657101 100644
--- a/pkgs/development/libraries/libssh2/default.nix
+++ b/pkgs/development/libraries/libssh2/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation rec {
     ./CVE-2023-48795.patch
   ];
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   outputs = [ "out" "dev" "devdoc" ];
 
   propagatedBuildInputs = [ openssl ]; # see Libs: in libssh2.pc
@@ -22,7 +28,7 @@ stdenv.mkDerivation rec {
     ++ lib.optional stdenv.hostPlatform.isMinGW windows.mingw_w64;
 
   meta = with lib; {
-    description = "A client-side C library implementing the SSH2 protocol";
+    description = "Client-side C library implementing the SSH2 protocol";
     homepage = "https://www.libssh2.org";
     platforms = platforms.all;
     license = with licenses; [ bsd3 libssh2 ];
diff --git a/pkgs/development/libraries/libstatgrab/default.nix b/pkgs/development/libraries/libstatgrab/default.nix
index d2a94d7168a8d..e5a17b68e0831 100644
--- a/pkgs/development/libraries/libstatgrab/default.nix
+++ b/pkgs/development/libraries/libstatgrab/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.i-scream.org/libstatgrab/";
-    description = "A library that provides cross platforms access to statistics about the running system";
+    description = "Library that provides cross platforms access to statistics about the running system";
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libstroke/default.nix b/pkgs/development/libraries/libstroke/default.nix
index 698fa5c579f70..13b117b5e0128 100644
--- a/pkgs/development/libraries/libstroke/default.nix
+++ b/pkgs/development/libraries/libstroke/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = {
-    description = "A library for simple gesture recognition";
+    description = "Library for simple gesture recognition";
     homepage = "https://web.archive.org/web/20161204100704/http://etla.net/libstroke/";
     license = lib.licenses.gpl2;
 
diff --git a/pkgs/development/libraries/libsvm/default.nix b/pkgs/development/libraries/libsvm/default.nix
index cd14660fb9f7b..c3e168999e32a 100644
--- a/pkgs/development/libraries/libsvm/default.nix
+++ b/pkgs/development/libraries/libsvm/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
     '';
 
   meta = with lib; {
-    description = "A library for support vector machines";
+    description = "Library for support vector machines";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/libsvm/";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libsystemtap/default.nix b/pkgs/development/libraries/libsystemtap/default.nix
index 4ec9fea5a0e65..8290cee53a470 100644
--- a/pkgs/development/libraries/libsystemtap/default.nix
+++ b/pkgs/development/libraries/libsystemtap/default.nix
@@ -6,12 +6,12 @@
 
 stdenv.mkDerivation {
   pname = "libsystemtap";
-  version = "5.0";
+  version = "5.1";
 
   src = fetchgit {
     url = "git://sourceware.org/git/systemtap.git";
-    rev = "release-5.0";
-    hash = "sha256-dIBpySBTFn01CNtYwbXEramUlcYHPF6O/Ffr1BxdAH0=";
+    rev = "release-5.1";
+    hash = "sha256-3rhDllsgYGfh1gb5frUrlkzdz57A6lcvBELtgvb5Q7M=";
   };
 
   dontBuild = true;
diff --git a/pkgs/development/libraries/libtap/default.nix b/pkgs/development/libraries/libtap/default.nix
index 47ca65e8490e8..46b2e492cb353 100644
--- a/pkgs/development/libraries/libtap/default.nix
+++ b/pkgs/development/libraries/libtap/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs = [ cmake perl ];
 
   meta = with lib; {
-    description = "A library to implement a test protocol";
+    description = "Library to implement a test protocol";
     longDescription = ''
       libtap is a library to implement the Test Anything Protocol for
       C originally created by Nik Clayton. This is a maintenance
diff --git a/pkgs/development/libraries/libtasn1/default.nix b/pkgs/development/libraries/libtasn1/default.nix
index a0b9cebef4d76..3c630bac630de 100644
--- a/pkgs/development/libraries/libtasn1/default.nix
+++ b/pkgs/development/libraries/libtasn1/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.gnu.org/software/libtasn1/";
-    description = "An ASN.1 library";
+    description = "ASN.1 library";
     longDescription = ''
       Libtasn1 is the ASN.1 library used by GnuTLS, GNU Shishi and some
       other packages.  The goal of this implementation is to be highly
diff --git a/pkgs/development/libraries/libthreadar/default.nix b/pkgs/development/libraries/libthreadar/default.nix
index 05aff273400e8..8c93e414ed5d9 100644
--- a/pkgs/development/libraries/libthreadar/default.nix
+++ b/pkgs/development/libraries/libthreadar/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libthreadar.sourceforge.net/";
-    description = "A C++ library that provides several classes to manipulate threads";
+    description = "C++ library that provides several classes to manipulate threads";
     longDescription = ''
       Libthreadar is a C++ library providing a small set of C++ classes to manipulate
       threads in a very simple and efficient way from your C++ code.
diff --git a/pkgs/development/libraries/libtickit/default.nix b/pkgs/development/libraries/libtickit/default.nix
index 54386e57a0acf..eaecc2d6d8bdd 100644
--- a/pkgs/development/libraries/libtickit/default.nix
+++ b/pkgs/development/libraries/libtickit/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = with lib; {
-    description = "A terminal interface construction kit";
+    description = "Terminal interface construction kit";
     longDescription = ''
       This library provides an abstracted mechanism for building interactive full-screen terminal
       programs. It provides a full set of output drawing functions, and handles keyboard and mouse
diff --git a/pkgs/development/libraries/libtiff/default.nix b/pkgs/development/libraries/libtiff/default.nix
index c8871a4ba68e8..f1e5c7da1803d 100644
--- a/pkgs/development/libraries/libtiff/default.nix
+++ b/pkgs/development/libraries/libtiff/default.nix
@@ -10,8 +10,10 @@
 , lerc
 , libdeflate
 , libjpeg
+, libwebp
 , xz
 , zlib
+, zstd
 
   # for passthru.tests
 , libgeotiff
@@ -62,14 +64,19 @@ stdenv.mkDerivation (finalAttrs: {
 
   buildInputs = [
     lerc
+    zstd
   ];
 
   # TODO: opengl support (bogus configure detection)
   propagatedBuildInputs = [
     libdeflate
     libjpeg
+    # libwebp depends on us; this will cause infinite
+    # recursion otherwise
+    (libwebp.override { tiffSupport = false; })
     xz
     zlib
+    zstd
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libtiger/default.nix b/pkgs/development/libraries/libtiger/default.nix
index 7876c23bcc1dc..cd198dac309d1 100644
--- a/pkgs/development/libraries/libtiger/default.nix
+++ b/pkgs/development/libraries/libtiger/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://code.google.com/archive/p/libtiger/";
-    description = "A rendering library for Kate streams using Pango and Cairo";
+    description = "Rendering library for Kate streams using Pango and Cairo";
     platforms = lib.platforms.unix;
     license = lib.licenses.lgpl21Plus;
     maintainers = with lib.maintainers; [ matthewbauer ];
diff --git a/pkgs/development/libraries/libtomcrypt/default.nix b/pkgs/development/libraries/libtomcrypt/default.nix
index 9bfd42e7a71c2..1457030f874cb 100644
--- a/pkgs/development/libraries/libtomcrypt/default.nix
+++ b/pkgs/development/libraries/libtomcrypt/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A fairly comprehensive, modular and portable cryptographic toolkit";
+    description = "Fairly comprehensive, modular and portable cryptographic toolkit";
     homepage = "https://www.libtom.net/LibTomCrypt/";
     changelog = "https://github.com/libtom/libtomcrypt/raw/v${version}/changes";
     license = with licenses; [ publicDomain wtfpl ];
diff --git a/pkgs/development/libraries/libtommath/default.nix b/pkgs/development/libraries/libtommath/default.nix
index fc0c9608cf4f7..2501bc827faed 100644
--- a/pkgs/development/libraries/libtommath/default.nix
+++ b/pkgs/development/libraries/libtommath/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.libtom.net/LibTomMath/";
-    description = "A library for integer-based number-theoretic applications";
+    description = "Library for integer-based number-theoretic applications";
     license = with licenses; [ publicDomain wtfpl ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
index adea75b02e945..6b4be4b832a44 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/1.2.nix
@@ -45,7 +45,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://libtorrent.org/";
-    description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
+    description = "C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
     maintainers = [ ];
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
index 75f365ddcb38c..118d143e2cd5e 100644
--- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix
+++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix
@@ -55,7 +55,7 @@ in stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://libtorrent.org/";
-    description = "A C++ BitTorrent implementation focusing on efficiency and scalability";
+    description = "C++ BitTorrent implementation focusing on efficiency and scalability";
     license = licenses.bsd3;
     maintainers = [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libu2f-host/default.nix b/pkgs/development/libraries/libu2f-host/default.nix
index 9acbaa4790630..724a3b6b3118b 100644
--- a/pkgs/development/libraries/libu2f-host/default.nix
+++ b/pkgs/development/libraries/libu2f-host/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A C library and command-line tool that implements the host-side of the U2F protocol";
+    description = "C library and command-line tool that implements the host-side of the U2F protocol";
     homepage = "https://developers.yubico.com/libu2f-host";
     license = with licenses; [ gpl3Plus lgpl21Plus ];
     mainProgram = "u2f-host";
diff --git a/pkgs/development/libraries/libu2f-server/default.nix b/pkgs/development/libraries/libu2f-server/default.nix
index 96506dfb85c91..86f0245b2ed74 100644
--- a/pkgs/development/libraries/libu2f-server/default.nix
+++ b/pkgs/development/libraries/libu2f-server/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://developers.yubico.com/libu2f-server/";
-    description = "A C library that implements the server-side of the U2F protocol";
+    description = "C library that implements the server-side of the U2F protocol";
     mainProgram = "u2f-server";
     license = licenses.bsd2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libubox/default.nix b/pkgs/development/libraries/libubox/default.nix
index 09837cd0c1d87..e48748308bb2c 100644
--- a/pkgs/development/libraries/libubox/default.nix
+++ b/pkgs/development/libraries/libubox/default.nix
@@ -22,6 +22,10 @@ stdenv.mkDerivation {
     done
   '';
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-Wno-error=gnu-folding-constant"
+  ]);
+
   meta = with lib; {
     description = "C utility functions for OpenWrt";
     homepage = "https://git.openwrt.org/?p=project/libubox.git;a=summary";
diff --git a/pkgs/development/libraries/libuiohook/default.nix b/pkgs/development/libraries/libuiohook/default.nix
index 3f1f48317fdc8..4fe42dad6c898 100644
--- a/pkgs/development/libraries/libuiohook/default.nix
+++ b/pkgs/development/libraries/libuiohook/default.nix
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C library to provide global keyboard and mouse hooks from userland";
+    description = "C library to provide global keyboard and mouse hooks from userland";
     homepage = "https://github.com/kwhat/libuiohook";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libunarr/default.nix b/pkgs/development/libraries/libunarr/default.nix
index c1e0881bf3ff2..d73bed773dffc 100644
--- a/pkgs/development/libraries/libunarr/default.nix
+++ b/pkgs/development/libraries/libunarr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/selmf/unarr";
-    description = "A lightweight decompression library with support for rar, tar and zip archives";
+    description = "Lightweight decompression library with support for rar, tar and zip archives";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ wegank ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libuninameslist/default.nix b/pkgs/development/libraries/libuninameslist/default.nix
index 3cbb78d83ce9b..f0d153c700800 100644
--- a/pkgs/development/libraries/libuninameslist/default.nix
+++ b/pkgs/development/libraries/libuninameslist/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libuninameslist";
-  version = "20230916";
+  version = "20240524";
 
   src = fetchFromGitHub {
     owner = "fontforge";
     repo = pname;
     rev = version;
-    sha256 = "sha256-8mLXTvi4KbU4NiCPaJINTeFbnTAabGDg8ufpSHSqy0Y=";
+    sha256 = "sha256-LANwM0fhCsscXAdI/qGOmUWDzAhe3g9w3J68g4szDZQ=";
   };
 
   nativeBuildInputs = [
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/fontforge/libuninameslist/";
-    description = "A Library of Unicode names and annotation data";
+    description = "Library of Unicode names and annotation data";
     license = licenses.bsd3;
     maintainers = with maintainers; [ erictapen ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/libunique/3.x.nix b/pkgs/development/libraries/libunique/3.x.nix
index 678f685d4882d..ffc46599cab0c 100644
--- a/pkgs/development/libraries/libunique/3.x.nix
+++ b/pkgs/development/libraries/libunique/3.x.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/Archive/unique";
-    description = "A library for writing single instance applications";
+    description = "Library for writing single instance applications";
     license = lib.licenses.lgpl21;
     maintainers = [ lib.maintainers.AndersonTorres ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libunique/default.nix b/pkgs/development/libraries/libunique/default.nix
index f75aed442a852..2e9f2a8a12047 100644
--- a/pkgs/development/libraries/libunique/default.nix
+++ b/pkgs/development/libraries/libunique/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://gitlab.gnome.org/Archive/unique";
-    description = "A library for writing single instance applications";
+    description = "Library for writing single instance applications";
     license = lib.licenses.lgpl21;
     platforms = with lib.platforms; linux ++ darwin;
   };
diff --git a/pkgs/development/libraries/libunity/default.nix b/pkgs/development/libraries/libunity/default.nix
index c27fce32ec005..066f23cf542aa 100644
--- a/pkgs/development/libraries/libunity/default.nix
+++ b/pkgs/development/libraries/libunity/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A library for instrumenting and integrating with all aspects of the Unity shell";
+    description = "Library for instrumenting and integrating with all aspects of the Unity shell";
     homepage = "https://launchpad.net/libunity";
     license = licenses.lgpl3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index 5144abc6dc5b6..7999fa4971877 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, xz, buildPackages }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, xz, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "libunwind";
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.nongnu.org/libunwind";
-    description = "A portable and efficient API to determine the call-chain of a program";
+    description = "Portable and efficient API to determine the call-chain of a program";
     maintainers = with maintainers; [ orivej ];
     # https://github.com/libunwind/libunwind#libunwind
     platforms = [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-freebsd" "i686-linux" "loongarch64-linux" "mips64el-linux" "mipsel-linux" "powerpc64-linux" "powerpc64le-linux" "riscv64-linux" "s390x-linux" "x86_64-freebsd" "x86_64-linux" "x86_64-solaris" ];
diff --git a/pkgs/development/libraries/liburcu/default.nix b/pkgs/development/libraries/liburcu/default.nix
index 722a1534e92ca..b1a091d12b3d9 100644
--- a/pkgs/development/libraries/liburcu/default.nix
+++ b/pkgs/development/libraries/liburcu/default.nix
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
     homepage = "https://lttng.org/urcu";
     changelog = "https://github.com/urcu/userspace-rcu/raw/v${version}/ChangeLog";
     license = licenses.lgpl21Plus;
-    platforms = platforms.unix;
+    # https://git.liburcu.org/?p=userspace-rcu.git;a=blob;f=include/urcu/arch.h
+    platforms = intersectLists platforms.unix (platforms.x86 ++ platforms.power ++ platforms.s390 ++ platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.m68k ++ platforms.riscv);
     maintainers = [ maintainers.bjornfor ];
   };
 
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 9103689546173..bd8561e0e8a3f 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -1,8 +1,8 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , autoreconfHook
+, doxygen
 , pkg-config
 , enableUdev ? stdenv.isLinux && !stdenv.hostPlatform.isStatic
 , udev
@@ -11,6 +11,7 @@
 , Security
 , withExamples ? false
 , withStatic ? false
+, withDocs ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
 }:
 
 stdenv.mkDerivation rec {
@@ -24,9 +25,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-OtzYxWwiba0jRK9X+4deWWDDTeZWlysEt0qMyGUarDo=";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" ] ++ lib.optionals withDocs [ "doc" ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook ];
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+  ] ++ lib.optionals withDocs [ doxygen ];
   propagatedBuildInputs =
     lib.optional enableUdev udev ++
     lib.optionals stdenv.isDarwin [ libobjc IOKit Security ];
@@ -40,6 +44,12 @@ stdenv.mkDerivation rec {
     lib.optional (!enableUdev) "--disable-udev"
     ++ lib.optional (withExamples) "--enable-examples-build";
 
+  postBuild = lib.optionalString withDocs ''
+    make -C doc
+    mkdir -p "$doc/share/doc/libusb"
+    cp -r doc/api-1.0/* "$doc/share/doc/libusb/"
+  '';
+
   preFixup = lib.optionalString enableUdev ''
     sed 's,-ludev,-L${lib.getLib udev}/lib -ludev,' -i $out/lib/libusb-1.0.la
   '';
diff --git a/pkgs/development/libraries/libusbgx/default.nix b/pkgs/development/libraries/libusbgx/default.nix
index 676870aee5047..1f6e8f1697729 100644
--- a/pkgs/development/libraries/libusbgx/default.nix
+++ b/pkgs/development/libraries/libusbgx/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
       lgpl21Plus # library
       gpl2Plus # examples
     ];
-    maintainers = with lib.maintainers; [ lheckemann ];
+    maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libusbmuxd/default.nix b/pkgs/development/libraries/libusbmuxd/default.nix
index 9230e79c46d04..33c821302cb2e 100644
--- a/pkgs/development/libraries/libusbmuxd/default.nix
+++ b/pkgs/development/libraries/libusbmuxd/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A client library to multiplex connections from and to iOS devices";
+    description = "Client library to multiplex connections from and to iOS devices";
     homepage = "https://github.com/libimobiledevice/libusbmuxd";
     license = licenses.lgpl21Plus;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libuv/default.nix b/pkgs/development/libraries/libuv/default.nix
index fcfeaa81d1ec6..82a37d0434d0a 100644
--- a/pkgs/development/libraries/libuv/default.nix
+++ b/pkgs/development/libraries/libuv/default.nix
@@ -11,7 +11,7 @@
 , bind
 , cmake
 , knot-resolver
-, lispPackages
+, sbclPackages
 , luajitPackages
 , mosquitto
 , neovim
@@ -105,7 +105,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru.tests = {
     inherit bind cmake knot-resolver mosquitto neovim nodejs;
-    inherit (lispPackages) cl-libuv;
+    inherit (sbclPackages) cl-libuv;
     luajit-libluv = luajitPackages.libluv;
     luajit-luv = luajitPackages.luv;
     ocaml-luv = ocamlPackages.luv;
@@ -116,7 +116,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A multi-platform support library with a focus on asynchronous I/O";
+    description = "Multi-platform support library with a focus on asynchronous I/O";
     homepage    = "https://libuv.org/";
     changelog   = "https://github.com/libuv/libuv/blob/v${finalAttrs.version}/ChangeLog";
     pkgConfigModules = [ "libuv" ];
diff --git a/pkgs/development/libraries/vaapi-vdpau/default.nix b/pkgs/development/libraries/libva-vdpau-driver/default.nix
index 2e3976e3a4d23..2e3976e3a4d23 100644
--- a/pkgs/development/libraries/vaapi-vdpau/default.nix
+++ b/pkgs/development/libraries/libva-vdpau-driver/default.nix
diff --git a/pkgs/development/libraries/libva/default.nix b/pkgs/development/libraries/libva/default.nix
index e9faec42cd318..eceba4ac8ebf0 100644
--- a/pkgs/development/libraries/libva/default.nix
+++ b/pkgs/development/libraries/libva/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An implementation for VA-API (Video Acceleration API)";
+    description = "Implementation for VA-API (Video Acceleration API)";
     longDescription = ''
       VA-API is an open-source library and API specification, which provides
       access to graphics hardware acceleration capabilities for video
@@ -61,5 +61,9 @@ stdenv.mkDerivation (finalAttrs: {
       "libva-glx" "libva-wayland" "libva-x11"
     ];
     platforms = platforms.unix;
+    badPlatforms = [
+      # Mandatory libva shared library.
+      lib.systems.inspect.platformPatterns.isStatic
+    ];
   };
 })
diff --git a/pkgs/development/libraries/libva/utils.nix b/pkgs/development/libraries/libva/utils.nix
index 25db3a1149acf..96373327ca0ed 100644
--- a/pkgs/development/libraries/libva/utils.nix
+++ b/pkgs/development/libraries/libva/utils.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libva-utils";
-  version = "2.21.0";
+  version = "2.22.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "sha256-+Ayx5Csgeip2qj1ywE7cBxupXiYJTNXhRo17009vG4I=";
+    sha256 = "sha256-CmhdhNNRO2j8lH7awp9YiKWMvV17GTBsXdrNY06jT2w=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libdrm libva libX11 libXext libXfixes wayland ];
 
   meta = with lib; {
-    description = "A collection of utilities and examples for VA-API";
+    description = "Collection of utilities and examples for VA-API";
     longDescription = ''
       libva-utils is a collection of utilities and examples to exercise VA-API
       in accordance with the libva project.
diff --git a/pkgs/development/libraries/libvgm/default.nix b/pkgs/development/libraries/libvgm/default.nix
index 0f45c39e0aeb1..895a382c96a35 100644
--- a/pkgs/development/libraries/libvgm/default.nix
+++ b/pkgs/development/libraries/libvgm/default.nix
@@ -42,13 +42,13 @@ let
 in
 stdenv.mkDerivation {
   pname = "libvgm";
-  version = "unstable-2024-04-24";
+  version = "0-unstable-2024-06-08";
 
   src = fetchFromGitHub {
     owner = "ValleyBell";
     repo = "libvgm";
-    rev = "1271ab3a0ec1440d2e537ead46165e189671dfd0";
-    hash = "sha256-vle9h7+izdpu9fe6LWD06j8oVQIL/lOApPrdjILmPX4=";
+    rev = "34c368cde98f33c42455fbbfbec07073ba79bf5c";
+    hash = "sha256-eX2k2cUtapHhx8dLaFk63Si0Di1q0uDWvdOI0+FgqEY=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/libviperfx/default.nix b/pkgs/development/libraries/libviperfx/default.nix
index 580329754b668..2778726a4bf7c 100644
--- a/pkgs/development/libraries/libviperfx/default.nix
+++ b/pkgs/development/libraries/libviperfx/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/vipersaudio/viperfx_core_binary";
-    description = "The ViPER FX core";
+    description = "ViPER FX core";
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ rewine ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/libraries/libvirt/default.nix b/pkgs/development/libraries/libvirt/default.nix
index 81dacdb493c91..ec35e5727c8b5 100644
--- a/pkgs/development/libraries/libvirt/default.nix
+++ b/pkgs/development/libraries/libvirt/default.nix
@@ -387,7 +387,7 @@ stdenv.mkDerivation rec {
   passthru.tests.libvirtd = nixosTests.libvirtd;
 
   meta = with lib; {
-    description = "A toolkit to interact with the virtualization capabilities of recent versions of Linux and other OSes";
+    description = "Toolkit to interact with the virtualization capabilities of recent versions of Linux and other OSes";
     homepage = "https://libvirt.org/";
     changelog = "https://gitlab.com/libvirt/libvirt/-/raw/v${version}/NEWS.rst";
     license = licenses.lgpl2Plus;
diff --git a/pkgs/development/libraries/libvisio/default.nix b/pkgs/development/libraries/libvisio/default.nix
index b9856e90edc92..e6a425660cc8d 100644
--- a/pkgs/development/libraries/libvisio/default.nix
+++ b/pkgs/development/libraries/libvisio/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A library providing ability to interpret and import visio diagrams into various applications";
+    description = "Library providing ability to interpret and import visio diagrams into various applications";
     homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libvisio";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libvisual/default.nix b/pkgs/development/libraries/libvisual/default.nix
index 2a84b4da0ea1b..12fae974312be 100644
--- a/pkgs/development/libraries/libvisual/default.nix
+++ b/pkgs/development/libraries/libvisual/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "An abstraction library for audio visualisations";
+    description = "Abstraction library for audio visualisations";
     homepage = "https://sourceforge.net/projects/libvisual/";
     license = lib.licenses.lgpl21Plus;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/libvmi/default.nix b/pkgs/development/libraries/libvmi/default.nix
index b1eb5764dba46..265e19a1ae77b 100644
--- a/pkgs/development/libraries/libvmi/default.nix
+++ b/pkgs/development/libraries/libvmi/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://libvmi.com/";
-    description = "A C library for virtual machine introspection";
+    description = "C library for virtual machine introspection";
     longDescription = ''
       LibVMI is a C library with Python bindings that makes it easy to monitor the low-level
       details of a running virtual machine by viewing its memory, trapping on hardware events,
diff --git a/pkgs/development/libraries/libvncserver/default.nix b/pkgs/development/libraries/libvncserver/default.nix
index 4880c835a1eb3..84e0dba1dd252 100644
--- a/pkgs/development/libraries/libvncserver/default.nix
+++ b/pkgs/development/libraries/libvncserver/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , libjpeg
 , openssl
diff --git a/pkgs/development/libraries/libvpx/default.nix b/pkgs/development/libraries/libvpx/default.nix
index dda6b13c1bf6c..5f5fc710d14dc 100644
--- a/pkgs/development/libraries/libvpx/default.nix
+++ b/pkgs/development/libraries/libvpx/default.nix
@@ -54,12 +54,26 @@ let
     else if stdenv.hostPlatform.osxMinVersion == "10.5"  then "9"
     else "8";
 
+  cpu =
+    /**/ if stdenv.hostPlatform.isArmv7 then "armv7"
+    else if stdenv.hostPlatform.isAarch64 then "arm64"
+    else if stdenv.hostPlatform.isx86_32 then "x86"
+    else stdenv.hostPlatform.parsed.cpu.name;
+
   kernel =
     # Build system doesn't understand BSD, so pretend to be Linux.
     /**/ if stdenv.isBSD then "linux"
     else if stdenv.isDarwin then "darwin${darwinVersion}"
     else stdenv.hostPlatform.parsed.kernel.name;
 
+  isGeneric =
+    /**/ (stdenv.hostPlatform.isPower && stdenv.hostPlatform.isLittleEndian)
+    || stdenv.hostPlatform.parsed.cpu.name == "armv6l";
+
+  target =
+    /**/ if (stdenv.isBSD || stdenv.hostPlatform != stdenv.buildPlatform) then
+      (if isGeneric then "generic-gnu" else "${cpu}-${kernel}-gcc")
+    else null;
 in
 
 assert vp8DecoderSupport || vp8EncoderSupport || vp9DecoderSupport || vp9EncoderSupport;
@@ -163,8 +177,8 @@ stdenv.mkDerivation rec {
     (enableFeature (experimentalSpatialSvcSupport ||
                     experimentalFpMbStatsSupport ||
                     experimentalEmulateHardwareSupport) "experimental")
-  ] ++ optionals (stdenv.isBSD || stdenv.hostPlatform != stdenv.buildPlatform) [
-    "--force-target=${stdenv.hostPlatform.parsed.cpu.name}-${kernel}-gcc"
+  ] ++ optionals (target != null) [
+    "--target=${target}"
     (lib.optionalString stdenv.hostPlatform.isCygwin "--enable-static-msvcrt")
   ] # Experimental features
     ++ optional experimentalSpatialSvcSupport "--enable-spatial-svc"
diff --git a/pkgs/development/libraries/libwacom/default.nix b/pkgs/development/libraries/libwacom/default.nix
index 8e9840325bb96..58c9b7c7f6669 100644
--- a/pkgs/development/libraries/libwacom/default.nix
+++ b/pkgs/development/libraries/libwacom/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libwacom";
-  version = "2.10.0";
+  version = "2.11.0";
 
   outputs = [ "out" "dev" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    hash = "sha256-mH0aBDXeaz0tZLwNPSWUepHu52DnlvPyQFw3EByIwys=";
+    hash = "sha256-TQOe954Zos3VpAG5M/O5je9dr8d4gOXIwy4xl3o+e1g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/libwacom/surface.nix b/pkgs/development/libraries/libwacom/surface.nix
index 22707a375954e..54f5c424fda31 100644
--- a/pkgs/development/libraries/libwacom/surface.nix
+++ b/pkgs/development/libraries/libwacom/surface.nix
@@ -7,8 +7,8 @@ let
   libwacom-surface = fetchFromGitHub {
     owner = "linux-surface";
     repo = "libwacom-surface";
-    rev = "v2.7.0-1";
-    hash = "sha256-LgJ8YFQQN05kyd6kxBakIIiGgZ9icW27xKK3Dz6TwLs=";
+    rev = "v2.10.0-1";
+    hash = "sha256-5/9X20veXazXEdSDGY5aMGQixulqMlC5Av0NGOF9m98=";
   };
 in libwacom.overrideAttrs (old: {
   pname = "libwacom-surface";
@@ -23,11 +23,15 @@ in libwacom.overrideAttrs (old: {
     "0005-data-Add-Microsoft-Surface-Pro-5.patch"
     "0006-data-Add-Microsoft-Surface-Pro-6.patch"
     "0007-data-Add-Microsoft-Surface-Pro-7.patch"
-    "0008-data-Add-Microsoft-Surface-Book.patch"
-    "0009-data-Add-Microsoft-Surface-Book-2-13.5.patch"
-    "0010-data-Add-Microsoft-Surface-Book-2-15.patch"
-    "0011-data-Add-Microsoft-Surface-Book-3-13.5.patch"
-    "0012-data-Add-Microsoft-Surface-Book-3-15.patch"
+    "0008-data-Add-Microsoft-Surface-Pro-7.patch"
+    "0009-data-Add-Microsoft-Surface-Pro-8.patch"
+    "0010-data-Add-Microsoft-Surface-Pro-9.patch"
+    "0011-data-Add-Microsoft-Surface-Book.patch"
+    "0012-data-Add-Microsoft-Surface-Book-2-13.5.patch"
+    "0013-data-Add-Microsoft-Surface-Book-2-15.patch"
+    "0014-data-Add-Microsoft-Surface-Book-3-13.5.patch"
+    "0015-data-Add-Microsoft-Surface-Book-3-15.patch"
+    "0016-data-Add-Microsoft-Surface-Laptop-Studio.patch"
   ];
 
   meta = old.meta // {
diff --git a/pkgs/development/libraries/libwbxml/default.nix b/pkgs/development/libraries/libwbxml/default.nix
index b5dc8c18208a6..446735c5eec71 100644
--- a/pkgs/development/libraries/libwbxml/default.nix
+++ b/pkgs/development/libraries/libwbxml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libwbxml";
-  version = "0.11.8";
+  version = "0.11.9";
 
   src = fetchFromGitHub {
     owner = "libwbxml";
     repo = "libwbxml";
     rev = "${pname}-${version}";
-    sha256 = "sha256-WCVKfIk6R2rVaz1SbJL9eLqNC0f4VzL74Sw2IKdDE9I=";
+    sha256 = "sha256-zmMsp5xS13rqfSWXXb0FGQcGZkrSMRYc/GQppO4/+Z4=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/libwbxml/libwbxml";
-    description = "The WBXML Library (aka libwbxml) contains a library and its associated tools to Parse, Encode and Handle WBXML documents";
+    description = "WBXML Library (aka libwbxml) contains a library and its associated tools to Parse, Encode and Handle WBXML documents";
     maintainers = with maintainers; [ mh ];
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libwebp/default.nix b/pkgs/development/libraries/libwebp/default.nix
index 2605dabf125a0..2662d4e940081 100644
--- a/pkgs/development/libraries/libwebp/default.nix
+++ b/pkgs/development/libraries/libwebp/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libwebp";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner  = "webmproject";
     repo   = pname;
     rev    = "v${version}";
-    hash   = "sha256-UYO2Fmm8nzQR8VBC26wEwWd3qZTD+6MHKcmKBoNcpEE=";
+    hash   = "sha256-OR/VzKNn3mnwjf+G+RkEGAaaKrhVlAu1e2oTRwdsPj8=";
   };
 
   configureFlags = [
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   passthru.tests = {
-    inherit freeimage gd graphicsmagick imagemagick imlib2 libjxl opencv vips;
+    inherit gd graphicsmagick imagemagick imlib2 libjxl opencv vips;
     inherit (python3.pkgs) pillow imread;
     haskell-webp = haskellPackages.webp;
   };
diff --git a/pkgs/development/libraries/libwnck/2.nix b/pkgs/development/libraries/libwnck/2.nix
index a1f54006beb58..bc5a89dc120dc 100644
--- a/pkgs/development/libraries/libwnck/2.nix
+++ b/pkgs/development/libraries/libwnck/2.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-introspection" ]; # not needed anywhere AFAIK
 
   meta = {
-    description = "A library for creating task lists and pagers";
+    description = "Library for creating task lists and pagers";
     homepage = "https://gitlab.gnome.org/GNOME/libwnck";
     license = lib.licenses.lgpl21;
     maintainers = with lib.maintainers; [ johnazoidberg ];
diff --git a/pkgs/development/libraries/libwpd/default.nix b/pkgs/development/libraries/libwpd/default.nix
index 99d81870cce0e..0aa0b746978c8 100644
--- a/pkgs/development/libraries/libwpd/default.nix
+++ b/pkgs/development/libraries/libwpd/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config ];
 
   meta = with lib; {
-    description = "A library for importing and exporting WordPerfect documents";
+    description = "Library for importing and exporting WordPerfect documents";
     homepage = "https://libwpd.sourceforge.net/";
     license = licenses.lgpl21;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libwpe/default.nix b/pkgs/development/libraries/libwpe/default.nix
index a29dd6b2627bb..c78ee91a20926 100644
--- a/pkgs/development/libraries/libwpe/default.nix
+++ b/pkgs/development/libraries/libwpe/default.nix
@@ -7,7 +7,6 @@
 , libGL
 , ninja
 , libX11
-, webkitgtk
 }:
 
 stdenv.mkDerivation rec {
@@ -35,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "General-purpose library for WPE WebKit";
     license = licenses.bsd2;
     homepage = "https://wpewebkit.org";
-    maintainers = webkitgtk.meta.maintainers ++ (with maintainers; [ matthewbauer ]);
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libwpe/fdo.nix b/pkgs/development/libraries/libwpe/fdo.nix
index 3e2fada38c327..d54d9706cbd18 100644
--- a/pkgs/development/libraries/libwpe/fdo.nix
+++ b/pkgs/development/libraries/libwpe/fdo.nix
@@ -11,7 +11,6 @@
 , libxkbcommon
 , libGL
 , libX11
-, webkitgtk
  }:
 
 stdenv.mkDerivation rec {
@@ -48,7 +47,7 @@ stdenv.mkDerivation rec {
     description = "Freedesktop.org backend for WPE WebKit";
     license = licenses.bsd2;
     homepage = "https://wpewebkit.org";
-    maintainers = webkitgtk.meta.maintainers ++ (with maintainers; [ matthewbauer ]);
+    maintainers = with maintainers; [ matthewbauer ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/libxcrypt/default.nix b/pkgs/development/libraries/libxcrypt/default.nix
index 067141883977d..efd3acb643fbe 100644
--- a/pkgs/development/libraries/libxcrypt/default.nix
+++ b/pkgs/development/libraries/libxcrypt/default.nix
@@ -15,6 +15,12 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-5eH0yu4KAd4q7ibjE4gH1tPKK45nKHlm0f79ZeH9iUM=";
   };
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./build-aux/m4-autogen/config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   outputs = [
     "out"
     "man"
@@ -28,8 +34,18 @@ stdenv.mkDerivation (finalAttrs: {
     "--disable-werror"
   ];
 
-  # fixes: can't build x86_64-w64-mingw32 shared library unless -no-undefined is specified
-  makeFlags = lib.optionals stdenv.hostPlatform.isWindows [ "LDFLAGS=-no-undefined"] ;
+  makeFlags = let
+    lld17Plus = stdenv.cc.bintools.isLLVM
+      && lib.versionAtLeast stdenv.cc.bintools.version "17";
+  in []
+    # fixes: can't build x86_64-w64-mingw32 shared library unless -no-undefined is specified
+    ++ lib.optionals stdenv.hostPlatform.isWindows [ "LDFLAGS+=-no-undefined" ]
+
+    # lld 17 sets `--no-undefined-version` by default and `libxcrypt`'s
+    # version script unconditionally lists legacy compatibility symbols, even
+    # when not exported: https://github.com/besser82/libxcrypt/issues/181
+    ++ lib.optionals lld17Plus [ "LDFLAGS+=-Wl,--undefined-version" ]
+  ;
 
   nativeBuildInputs = [
     perl
diff --git a/pkgs/development/libraries/libxkbcommon/default.nix b/pkgs/development/libraries/libxkbcommon/default.nix
index 03064a7e7b2a8..7c635eb98b694 100644
--- a/pkgs/development/libraries/libxkbcommon/default.nix
+++ b/pkgs/development/libraries/libxkbcommon/default.nix
@@ -13,6 +13,7 @@
 , libX11
   # To enable the "interactive-wayland" subcommand of xkbcli. This is the
   # wayland equivalent of `xev` on X11.
+, xorgserver # for Xvfb in tests
 , withWaylandTools ? stdenv.isLinux
 , wayland
 , wayland-protocols
@@ -22,17 +23,22 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libxkbcommon";
-  version = "1.5.0";
+  version = "1.7.0";
 
   src = fetchurl {
     url = with finalAttrs; "https://xkbcommon.org/download/${pname}-${version}.tar.xz";
-    sha256 = "sha256-Vg8RxLu8oQ9JXz7306aqTKYrT4+wtS59RZ0Yom5G4Bc=";
+    hash = "sha256-ZXgvChCktFWvnGuqtwQOL1N1IMqi7CCSgFzf02hjskc=";
   };
 
+  patches = [
+    # Disable one Xvfb test as it fails for permission checks.
+    ./disable-x11com.patch
+  ];
+
   outputs = [ "out" "dev" "doc" ];
 
   depsBuildBuild = [ pkg-config ];
-  nativeBuildInputs = [ meson ninja pkg-config bison doxygen ]
+  nativeBuildInputs = [ meson ninja pkg-config bison doxygen xorgserver ]
     ++ lib.optional withWaylandTools wayland-scanner;
   buildInputs = [ xkeyboard_config libxcb libxml2 ]
     ++ lib.optionals withWaylandTools [ wayland wayland-protocols ];
@@ -42,6 +48,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-Dxkb-config-root=${xkeyboard_config}/etc/X11/xkb"
     "-Dxkb-config-extra-path=/etc/xkb" # default=$sysconfdir/xkb ($out/etc)
     "-Dx-locale-root=${libX11.out}/share/X11/locale"
+    "-Denable-docs=true"
     "-Denable-wayland=${lib.boolToString withWaylandTools}"
   ];
 
@@ -57,7 +64,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library to handle keyboard descriptions";
+    description = "Library to handle keyboard descriptions";
     longDescription = ''
       libxkbcommon is a keyboard keymap compiler and support library which
       processes a reduced subset of keymaps as defined by the XKB (X Keyboard
diff --git a/pkgs/development/libraries/libxkbcommon/disable-x11com.patch b/pkgs/development/libraries/libxkbcommon/disable-x11com.patch
new file mode 100644
index 0000000000000..fb5c8458b5dd1
--- /dev/null
+++ b/pkgs/development/libraries/libxkbcommon/disable-x11com.patch
@@ -0,0 +1,17 @@
+On nixpkgs /tmp/.X11-unix is not compatible with Xvfb requirement and the
+test fails.
+--- a/meson.build
++++ b/meson.build
+@@ -775,12 +775,6 @@ if get_option('enable-x11')
+         env: test_env,
+         is_parallel : false,
+     )
+-    test(
+-        'x11comp',
+-        executable('test-x11comp', 'test/x11comp.c', dependencies: x11_test_dep),
+-        env: test_env,
+-        is_parallel : false,
+-    )
+ endif
+ if get_option('enable-xkbregistry')
+     test(
diff --git a/pkgs/development/libraries/libxl/default.nix b/pkgs/development/libraries/libxl/default.nix
index 601c27c98eedb..0263b25f3ba4d 100644
--- a/pkgs/development/libraries/libxl/default.nix
+++ b/pkgs/development/libraries/libxl/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library for parsing Excel files";
+    description = "Library for parsing Excel files";
     homepage    = "https://www.libxl.com/";
     license     = licenses.unfree;
     platforms   = platforms.linux;
diff --git a/pkgs/development/libraries/libxlsxwriter/default.nix b/pkgs/development/libraries/libxlsxwriter/default.nix
index 3716090a30d7f..6859caff61aa9 100644
--- a/pkgs/development/libraries/libxlsxwriter/default.nix
+++ b/pkgs/development/libraries/libxlsxwriter/default.nix
@@ -8,19 +8,15 @@
 
 stdenv.mkDerivation rec {
   pname = "libxlsxwriter";
-  version = "1.1.5";
+  version = "1.1.7";
 
   src = fetchFromGitHub {
     owner = "jmcnamara";
     repo = "libxlsxwriter";
     rev = "RELEASE_${version}";
-    hash = "sha256-fC03LwZIUkEsAs9TN0n2z0iSOGPAtVCeuW5rxC7Ek7Q=";
+    hash = "sha256-bJ0NMbK9c21YYdcg/TW3ePSDVi5hly6lSW7wXFskI8M=";
   };
 
-  nativeBuildInputs = [
-    python3.pkgs.pytest
-  ];
-
   buildInputs = [
     minizip
     zlib
@@ -36,6 +32,10 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  nativeCheckInputs = [
+    python3.pkgs.pytest
+  ];
+
   checkTarget = "test";
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/libxmi/default.nix b/pkgs/development/libraries/libxmi/default.nix
index 2d2a0089c4433..2446df52a2bc9 100644
--- a/pkgs/development/libraries/libxmi/default.nix
+++ b/pkgs/development/libraries/libxmi/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "03d4ikh29l38rl1wavb0icw7m5pp7yilnv7bb2k8qij1dinsymlx";
   };
 
+  CFLAGS = "-std=gnu89";
+
   # For the x86_64 GNU/Linux arch to be recognized by 'configure'
   preConfigure = "cp ${libtool}/share/libtool/build-aux/config.sub .";
 
diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix
index 1cca2d9222dbb..79fe8c9f52dac 100644
--- a/pkgs/development/libraries/libxml2/default.nix
+++ b/pkgs/development/libraries/libxml2/default.nix
@@ -4,7 +4,6 @@
 , zlib
 , pkg-config
 , autoreconfHook
-, xz
 , libintl
 , python
 , gettext
@@ -25,7 +24,7 @@
 
 stdenv.mkDerivation (finalAttrs: rec {
   pname = "libxml2";
-  version = "2.12.6";
+  version = "2.12.7";
 
   outputs = [ "bin" "dev" "out" "doc" ]
     ++ lib.optional pythonSupport "py"
@@ -34,9 +33,14 @@ stdenv.mkDerivation (finalAttrs: rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/libxml2/${lib.versions.majorMinor version}/libxml2-${version}.tar.xz";
-    hash = "sha256-iJxZOogaPbX92WzJMYyH3zTrZI7fxFgnKtRv1gc1P7s=";
+    hash = "sha256-JK54/xNjqXPm2L66lBp5RdoqwFbhm1OVautpJ/1s+1Y=";
   };
 
+  # https://gitlab.gnome.org/GNOME/libxml2/-/issues/725
+  postPatch = if stdenv.hostPlatform.isFreeBSD then ''
+    substituteInPlace ./configure.ac --replace-fail pthread_join pthread_create
+  '' else null;
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -52,11 +56,6 @@ stdenv.mkDerivation (finalAttrs: rec {
     ncurses
   ] ++ lib.optionals (stdenv.isDarwin && pythonSupport && python?isPy2 && python.isPy2) [
     libintl
-  ] ++ lib.optionals stdenv.isFreeBSD [
-    # Libxml2 has an optional dependency on liblzma.  However, on impure
-    # platforms, it may end up using that from /usr/lib, and thus lack a
-    # RUNPATH for that, leading to undefined references for its users.
-    xz
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix
index d3f6f311df94d..4cc4e2b15c43b 100644
--- a/pkgs/development/libraries/libxmlb/default.nix
+++ b/pkgs/development/libraries/libxmlb/default.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libxmlb";
-  version = "0.3.15";
+  version = "0.3.19";
 
   outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
 
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    hash = "sha256-S0wBVhfRa81mAmqpYYAKAyKLnfnVsXJEcGA21i5tdzo=";
+    hash = "sha256-gXLWHkT+h/wvmmi7PyIx16gbeYznVOT7CwuBgF3bjOY=";
   };
 
   patches = [
@@ -70,7 +70,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library to help create and query binary XML blobs";
+    description = "Library to help create and query binary XML blobs";
     mainProgram = "xb-tool";
     homepage = "https://github.com/hughsie/libxmlb";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/libxmlb/installed-tests-path.patch b/pkgs/development/libraries/libxmlb/installed-tests-path.patch
index e9bd27e1fff14..b35c8dfc8cdfc 100644
--- a/pkgs/development/libraries/libxmlb/installed-tests-path.patch
+++ b/pkgs/development/libraries/libxmlb/installed-tests-path.patch
@@ -15,6 +15,5 @@
 @@ -3,4 +3,5 @@ option('introspection', type : 'boolean', value : true, description : 'generate
  option('tests', type : 'boolean', value : true, description : 'enable tests')
  option('stemmer', type : 'boolean', value : false, description : 'enable stemmer support')
- option('cli', type : 'boolean', value : true, description : 'build and install the xb-tool CLI')
- option('zstd', type : 'boolean', value : true, description : 'enable zstd support')
 +option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')
+ option('cli', type : 'boolean', value : true, description : 'build and install the xb-tool CLI')
diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix
index 95ecbbc44deea..1938c523006b2 100644
--- a/pkgs/development/libraries/libxslt/default.nix
+++ b/pkgs/development/libraries/libxslt/default.nix
@@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.gnome.org/GNOME/libxslt";
-    description = "A C library and tools to do XSL transformations";
+    description = "C library and tools to do XSL transformations";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ eelco jtojnar ];
diff --git a/pkgs/development/libraries/libyaml/default.nix b/pkgs/development/libraries/libyaml/default.nix
index 9a9c5e0311f16..dc58226edea4b 100644
--- a/pkgs/development/libraries/libyaml/default.nix
+++ b/pkgs/development/libraries/libyaml/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://pyyaml.org/";
-    description = "A YAML 1.1 parser and emitter written in C";
+    description = "YAML 1.1 parser and emitter written in C";
     license = licenses.mit;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/libykneomgr/default.nix b/pkgs/development/libraries/libykneomgr/default.nix
index d0fc1cfd9fbd1..8278b3d8a8418 100644
--- a/pkgs/development/libraries/libykneomgr/default.nix
+++ b/pkgs/development/libraries/libykneomgr/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A C library to interact with the CCID-part of the Yubikey NEO";
+    description = "C library to interact with the CCID-part of the Yubikey NEO";
     homepage = "https://developers.yubico.com/libykneomgr";
     license = licenses.bsd3;
     mainProgram = "ykneomgr";
diff --git a/pkgs/development/libraries/libz/default.nix b/pkgs/development/libraries/libz/default.nix
index 6b3e1dacdc00e..ac859e1a0bb8b 100644
--- a/pkgs/development/libraries/libz/default.nix
+++ b/pkgs/development/libraries/libz/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "libz";
-  version = "unstable-2018-03-31";
+  version = "1.2.8.2015.12.26-unstable-2018-03-31";
 
   src = fetchFromGitLab {
     owner = "sortix";
@@ -18,11 +18,13 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" ];
   outputDoc = "dev"; # single tiny man3 page
 
-  passthru.updateScript = unstableGitUpdater { };
+  passthru.updateScript = unstableGitUpdater {
+    tagPrefix = "libz-";
+  };
 
   meta = {
     homepage = "https://sortix.org/libz/";
-    description = "A clean fork of zlib";
+    description = "Clean fork of zlib";
     license = [ lib.licenses.zlib ];
     maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/libzdb/default.nix b/pkgs/development/libraries/libzdb/default.nix
index cfd4d38ac5745..b90a2691e4cec 100644
--- a/pkgs/development/libraries/libzdb/default.nix
+++ b/pkgs/development/libraries/libzdb/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec
   meta =
   {
     homepage = "http://www.tildeslash.com/libzdb/";
-    description = "A small, easy to use Open Source Database Connection Pool Library";
+    description = "Small, easy to use Open Source Database Connection Pool Library";
     license = lib.licenses.gpl3;
     platforms = lib.platforms.linux;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/libzim/default.nix b/pkgs/development/libraries/libzim/default.nix
index 80d3db6d2e322..bf3a640bd8217 100644
--- a/pkgs/development/libraries/libzim/default.nix
+++ b/pkgs/development/libraries/libzim/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libzim";
-  version = "9.2.0";
+  version = "9.2.2";
 
   src = fetchFromGitHub {
     owner = "openzim";
     repo = "libzim";
     rev = "refs/tags/${version}";
-    hash = "sha256-WAbNSrgm/lTARD7Ml4vVLChQLNR23vEZtyE4MXnhnB4=";
+    hash = "sha256-V81TzoYUFiI+07ooDQtG7ahxQFEh/6Y8IgoceHMSgOk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libzip/default.nix b/pkgs/development/libraries/libzip/default.nix
index b343184760330..82f7f88b19a69 100644
--- a/pkgs/development/libraries/libzip/default.nix
+++ b/pkgs/development/libraries/libzip/default.nix
@@ -56,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://libzip.org/";
-    description = "A C library for reading, creating and modifying zip archives";
+    description = "C library for reading, creating and modifying zip archives";
     license = licenses.bsd3;
     pkgConfigModules = [ "libzip" ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/libzmf/default.nix b/pkgs/development/libraries/libzmf/default.nix
index 378a7202f3715..0e139ad529261 100644
--- a/pkgs/development/libraries/libzmf/default.nix
+++ b/pkgs/development/libraries/libzmf/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--disable-werror" ];
 
   meta = {
-    description = "A library that parses the file format of Zoner Callisto/Draw documents";
+    description = "Library that parses the file format of Zoner Callisto/Draw documents";
     license = lib.licenses.mpl20;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/lightgbm/default.nix b/pkgs/development/libraries/lightgbm/default.nix
index 57d3407aef91f..abb52eb5f0aa1 100644
--- a/pkgs/development/libraries/lightgbm/default.nix
+++ b/pkgs/development/libraries/lightgbm/default.nix
@@ -23,14 +23,14 @@ stdenv.mkDerivation rec {
   #   in \
   #   rWrapper.override{ packages = [ lgbm ]; }"
   pname = lib.optionalString rLibrary "r-" + pnameBase;
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = pnameBase;
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-hEoGdzC6n8t14ZUFWFrdljEkQRo9qaDGYTamvIAgrbg=";
+    hash = "sha256-i4mtJwSwnbGMXVfQ8a9jZZPUBBibXyQPgMVJ3uXxeGQ=";
   };
 
   nativeBuildInputs = [ cmake ]
diff --git a/pkgs/development/libraries/lime/default.nix b/pkgs/development/libraries/lime/default.nix
index 0ac3e0f81ecd3..d40ac0a05c540 100644
--- a/pkgs/development/libraries/lime/default.nix
+++ b/pkgs/development/libraries/lime/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "End-to-end encryption library for instant messaging. Part of the Linphone project.";
+    description = "End-to-end encryption library for instant messaging. Part of the Linphone project";
     homepage = "https://www.linphone.org/technical-corner/lime";
     license = licenses.gpl3Only;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/linenoise-ng/default.nix b/pkgs/development/libraries/linenoise-ng/default.nix
index 276756822746e..0832ef5c6caf2 100644
--- a/pkgs/development/libraries/linenoise-ng/default.nix
+++ b/pkgs/development/libraries/linenoise-ng/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/arangodb/linenoise-ng";
-    description = "A small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters";
+    description = "Small, portable GNU readline replacement for Linux, Windows and MacOS which is capable of handling UTF-8 characters";
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.all;
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/libraries/linenoise/default.nix b/pkgs/development/libraries/linenoise/default.nix
index a934ec19d7c13..42017e5e17182 100644
--- a/pkgs/development/libraries/linenoise/default.nix
+++ b/pkgs/development/libraries/linenoise/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
 
   meta = {
     homepage = "https://github.com/antirez/linenoise";
-    description = "A minimal, zero-config, BSD licensed, readline replacement";
+    description = "Minimal, zero-config, BSD licensed, readline replacement";
     maintainers = with lib.maintainers; [ fstamour remexre ];
     platforms = lib.platforms.unix;
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/libraries/llhttp/default.nix b/pkgs/development/libraries/llhttp/default.nix
index 8bd80151c0940..dfdd8200b5565 100644
--- a/pkgs/development/libraries/llhttp/default.nix
+++ b/pkgs/development/libraries/llhttp/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, cmake, testers }:
+{ lib, stdenv, fetchFromGitHub, cmake, testers, python3 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "llhttp";
-  version = "9.2.0";
+  version = "9.2.1";
 
   src = fetchFromGitHub {
     owner = "nodejs";
     repo = "llhttp";
     rev = "release/v${finalAttrs.version}";
-    hash = "sha256-DX/CuTyvc2OfAVWvlJr6wVHwSuqWmqQt34vM1FEazwE=";
+    hash = "sha256-cnEp7Ds32bqu3jeUU/rqJOr/VW3KNmJU4pmNNaTpXRs=";
   };
 
   outputs = [ "out" "dev" ];
@@ -21,8 +21,13 @@ stdenv.mkDerivation (finalAttrs: {
     "-DBUILD_STATIC_LIBS=ON"
   ];
 
-  passthru.tests.pkg-config = testers.hasPkgConfigModules {
-    package = finalAttrs.finalPackage;
+  passthru.tests = {
+    inherit (python3.pkgs) aiohttp;
+
+    pkg-config = testers.hasPkgConfigModules {
+      package = finalAttrs.finalPackage;
+      moduleNames = [ "libllhttp" ];
+    };
   };
 
   meta = with lib; {
@@ -30,7 +35,6 @@ stdenv.mkDerivation (finalAttrs: {
     homepage = "https://llhttp.org/";
     changelog = "https://github.com/nodejs/llhttp/releases/tag/release/v${finalAttrs.version}";
     license = licenses.mit;
-    pkgConfigModules = [ "libllhttp" ];
     maintainers = [ ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/lmdb/default.nix b/pkgs/development/libraries/lmdb/default.nix
index 8c65d02bf565b..7c907e9ef70f4 100644
--- a/pkgs/development/libraries/lmdb/default.nix
+++ b/pkgs/development/libraries/lmdb/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "lmdb";
-  version = "0.9.32";
+  version = "0.9.33";
 
   src = fetchFromGitLab {
     domain = "git.openldap.org";
     owner = "openldap";
     repo = "openldap";
     rev = "LMDB_${version}";
-    sha256 = "sha256-29ZrGIiGqrvX+WsPRs2V25hPmAJSHTHaGo19nMldsb8=";
+    sha256 = "sha256-5IBoJ3jaNXao5zVzb0LDM8RGid4s8DGQpjVqrVPLpXQ=";
   };
 
   postUnpack = "sourceRoot=\${sourceRoot}/libraries/liblmdb";
diff --git a/pkgs/development/libraries/log4cplus/default.nix b/pkgs/development/libraries/log4cplus/default.nix
index df5fab1839cda..0dc8051c35f2c 100644
--- a/pkgs/development/libraries/log4cplus/default.nix
+++ b/pkgs/development/libraries/log4cplus/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://log4cplus.sourceforge.net/";
-    description = "A port the log4j library from Java to C++";
+    description = "Port the log4j library from Java to C++";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/log4cpp/default.nix b/pkgs/development/libraries/log4cpp/default.nix
index 1a024a80cca0f..e300a607d7b6c 100644
--- a/pkgs/development/libraries/log4cpp/default.nix
+++ b/pkgs/development/libraries/log4cpp/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://log4cpp.sourceforge.net/";
-    description = "A logging framework for C++ patterned after Apache log4j";
+    description = "Logging framework for C++ patterned after Apache log4j";
     mainProgram = "log4cpp-config";
     license     = licenses.lgpl21Plus;
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/log4cxx/default.nix b/pkgs/development/libraries/log4cxx/default.nix
index d557d5d07e4e7..34e00295000a8 100644
--- a/pkgs/development/libraries/log4cxx/default.nix
+++ b/pkgs/development/libraries/log4cxx/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://logging.apache.org/log4cxx/index.html";
-    description = "A logging framework for C++ patterned after Apache log4j";
+    description = "Logging framework for C++ patterned after Apache log4j";
     license = lib.licenses.asl20;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/log4shib/default.nix b/pkgs/development/libraries/log4shib/default.nix
index 26313ddae5801..41d16e28ff44b 100644
--- a/pkgs/development/libraries/log4shib/default.nix
+++ b/pkgs/development/libraries/log4shib/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation {
   CXXFLAGS = "-std=c++11";
 
   meta = with lib; {
-    description = "A forked version of log4cpp that has been created for the Shibboleth project";
+    description = "Forked version of log4cpp that has been created for the Shibboleth project";
     mainProgram = "log4shib-config";
     maintainers = [ ];
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/loki/default.nix b/pkgs/development/libraries/loki/default.nix
index 55be8f9451d1e..ce011b4ba1b60 100644
--- a/pkgs/development/libraries/loki/default.nix
+++ b/pkgs/development/libraries/loki/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A C++ library of designs, containing flexible implementations of common design patterns and idioms";
+    description = "C++ library of designs, containing flexible implementations of common design patterns and idioms";
     homepage = "https://loki-lib.sourceforge.net";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/loudmouth/default.nix b/pkgs/development/libraries/loudmouth/default.nix
index d1a8c48872492..21dd9db2797c4 100644
--- a/pkgs/development/libraries/loudmouth/default.nix
+++ b/pkgs/development/libraries/loudmouth/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A lightweight C library for the Jabber protocol";
+    description = "Lightweight C library for the Jabber protocol";
     platforms = platforms.all;
     downloadPage = "http://mcabber.com/files/loudmouth/";
     license = licenses.lgpl21;
diff --git a/pkgs/development/libraries/luabind/default.nix b/pkgs/development/libraries/luabind/default.nix
index f7f0878bdffae..a6ce0903469d7 100644
--- a/pkgs/development/libraries/luabind/default.nix
+++ b/pkgs/development/libraries/luabind/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://github.com/Oberon00/luabind";
-    description = "A library that helps you create bindings between C++ and Lua";
+    description = "Library that helps you create bindings between C++ and Lua";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
   };
diff --git a/pkgs/development/libraries/luabridge/default.nix b/pkgs/development/libraries/luabridge/default.nix
index c16f56065ca70..268c89c390f31 100644
--- a/pkgs/development/libraries/luabridge/default.nix
+++ b/pkgs/development/libraries/luabridge/default.nix
@@ -25,7 +25,7 @@ stdenvNoCC.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight, dependency-free library for binding Lua to C++";
+    description = "Lightweight, dependency-free library for binding Lua to C++";
     homepage = "https://github.com/vinniefalco/LuaBridge";
     changelog = "https://github.com/vinniefalco/LuaBridge/blob/${version}/CHANGES.md";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/lyra/default.nix b/pkgs/development/libraries/lyra/default.nix
index bb0c61ba12510..0a907bf4d2858 100644
--- a/pkgs/development/libraries/lyra/default.nix
+++ b/pkgs/development/libraries/lyra/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/bfgroup/Lyra";
-    description = "A simple to use, composable, command line parser for C++ 11 and beyond";
+    description = "Simple to use, composable, command line parser for C++ 11 and beyond";
     platforms = platforms.unix;
     license = licenses.boost;
     maintainers = with maintainers; [ davidtwco ];
diff --git a/pkgs/development/libraries/lzo/default.nix b/pkgs/development/libraries/lzo/default.nix
index 480e2bb909cd3..43d551819a657 100644
--- a/pkgs/development/libraries/lzo/default.nix
+++ b/pkgs/development/libraries/lzo/default.nix
@@ -1,4 +1,4 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "lzo";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "0wm04519pd3g8hqpjqhfr72q8qmbiwqaxcs3cndny9h86aa95y60";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = lib.optional (!stdenv.hostPlatform.isStatic) "--enable-shared" ;
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/mailcore2/default.nix b/pkgs/development/libraries/mailcore2/default.nix
index 86b4a320b68f8..dddd224ca6faa 100644
--- a/pkgs/development/libraries/mailcore2/default.nix
+++ b/pkgs/development/libraries/mailcore2/default.nix
@@ -63,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple and asynchronous API to work with e-mail protocols IMAP, POP and SMTP";
+    description = "Simple and asynchronous API to work with e-mail protocols IMAP, POP and SMTP";
     homepage    = "http://libmailcore.com";
     license     = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix
index 34d1731e8a097..2f4044aaed349 100644
--- a/pkgs/development/libraries/malcontent/default.nix
+++ b/pkgs/development/libraries/malcontent/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitLab
-, fetchpatch
 , meson
 , ninja
 , pkg-config
@@ -19,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "malcontent";
-  version = "0.11.1";
+  version = "0.12.0";
 
   outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
 
@@ -28,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "pwithnall";
     repo = "malcontent";
     rev = version;
-    hash = "sha256-NZwVCnQrEG2gecUjuWe1+cyWFR3OdYJCmj87V14Uwjw=";
+    hash = "sha256-UK/WVqDMkwIqkTFFjzh7PRCA/Ej8Iyu33FasnAEApRs=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch b/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch
deleted file mode 100644
index 1df64216d20b3..0000000000000
--- a/pkgs/development/libraries/mapnik/datasource-ogr-test-should-fail.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/test/unit/datasource/ogr.cpp b/test/unit/datasource/ogr.cpp
-index 8441ecc55..8dabc67b0 100644
---- a/test/unit/datasource/ogr.cpp
-+++ b/test/unit/datasource/ogr.cpp
-@@ -30,7 +30,7 @@
- #include <mapnik/image_util.hpp>
- #include <mapnik/datasource_cache.hpp>
- 
--TEST_CASE("ogr")
-+TEST_CASE("ogr", "[!shouldfail]")
- {
-     const bool have_ogr_plugin = mapnik::datasource_cache::instance().plugin_registered("ogr");
-     if (have_ogr_plugin)
diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix
index 14ecb984da59b..0428dd585c661 100644
--- a/pkgs/development/libraries/mapnik/default.nix
+++ b/pkgs/development/libraries/mapnik/default.nix
@@ -22,17 +22,19 @@
 , zlib
 , catch2
 , postgresql
+, protozero
+, sparsehash
 }:
 
 stdenv.mkDerivation rec {
   pname = "mapnik";
-  version = "unstable-2023-11-28";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "mapnik";
     repo = "mapnik";
-    rev = "2e1b32512b1f8b52331994f2a809d8a383c0c984";
-    hash = "sha256-qGdUfu6gFWum/Id/W3ICeGZroMQ3Tz9PQf1tt+gaaXM=";
+    rev = "v${version}";
+    hash = "sha256-CNFNGMJU3kzkRrOGsf8/uv5ebHPEQ0tkA+5OubRVEjs=";
     fetchSubmodules = true;
   };
 
@@ -40,6 +42,8 @@ stdenv.mkDerivation rec {
     substituteInPlace configure \
       --replace '$PYTHON scons/scons.py' ${buildPackages.scons}/bin/scons
     rm -r scons
+    # Remove bundled 'sparsehash' directory in favor of 'sparsehash' package
+    rm -r deps/mapnik/sparsehash
   '';
 
   # a distinct dev output makes python-mapnik fail
@@ -57,11 +61,10 @@ stdenv.mkDerivation rec {
       src = ./catch2-src.patch;
       catch2_src = catch2.src;
     })
-    # Disable broken test
-    # See discussion: https://github.com/mapnik/mapnik/issues/4329#issuecomment-1248778398
-    ./datasource-ogr-test-should-fail.patch
     # Account for full paths when generating libmapnik.pc
     ./export-pkg-config-full-paths.patch
+    # Use 'sparsehash' package.
+    ./use-sparsehash-package.patch
   ];
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -83,21 +86,31 @@ stdenv.mkDerivation rec {
     zlib
     libxml2
     postgresql
+    protozero
+    sparsehash
   ];
 
   cmakeFlags = [
-    # Would require qt otherwise.
-    "-DBUILD_DEMO_VIEWER:BOOL=OFF"
+    # Save time by not building some development-related code.
+    (lib.cmakeBool "BUILD_BENCHMARK" false)
+    (lib.cmakeBool "BUILD_DEMO_CPP" false)
+    ## Would require QT otherwise.
+    (lib.cmakeBool "BUILD_DEMO_VIEWER" false)
+    # Use 'protozero' package.
+    (lib.cmakeBool "USE_EXTERNAL_MAPBOX_PROTOZERO" true)
+    # macOS builds fail when using memory mapped file cache.
+    (lib.cmakeBool "USE_MEMORY_MAPPED_FILE" (!stdenv.isDarwin))
   ];
 
   doCheck = true;
 
   # mapnik-config is currently not build with CMake. So we use the SCons for
   # this one. We can't add SCons to nativeBuildInputs though, as stdenv would
-  # then try to build everything with scons.
+  # then try to build everything with scons. C++17 is the minimum supported
+  # C++ version.
   preBuild = ''
     cd ..
-    ${buildPackages.scons}/bin/scons utils/mapnik-config
+    env CXX_STD=17 ${buildPackages.scons}/bin/scons utils/mapnik-config
     cd build
   '';
 
@@ -107,7 +120,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open source toolkit for developing mapping applications";
+    description = "Open source toolkit for developing mapping applications";
     homepage = "https://mapnik.org";
     maintainers = with maintainers; [ hrdinka hummeltech ];
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/mapnik/use-sparsehash-package.patch b/pkgs/development/libraries/mapnik/use-sparsehash-package.patch
new file mode 100644
index 0000000000000..3bb5d3e996cfc
--- /dev/null
+++ b/pkgs/development/libraries/mapnik/use-sparsehash-package.patch
@@ -0,0 +1,19 @@
+commit c1cea9e10ffec54d0f675478e541ee4a6e87f653
+Author: Tom Hughes <tom@compton.nu>
+Date:   Wed Jun 5 18:45:57 2013 +0100
+
+    Use system sparsehash
+
+diff --git a/include/mapnik/palette.hpp b/include/mapnik/palette.hpp
+index 5f96272..44d06aa 100644
+--- a/include/mapnik/palette.hpp
++++ b/include/mapnik/palette.hpp
+@@ -33,7 +33,7 @@
+ #pragma GCC diagnostic push
+ #include <mapnik/warning_ignore.hpp>
+ #ifdef USE_DENSE_HASH_MAP
+-#include <mapnik/sparsehash/dense_hash_map>
++#include <google/dense_hash_map>
+ using rgba_hash_table = google::dense_hash_map<unsigned int, unsigned char>;
+ #else
+ #include <unordered_map>
diff --git a/pkgs/development/libraries/marl/default.nix b/pkgs/development/libraries/marl/default.nix
index 4545264aad9e1..7ff28a9d5221f 100644
--- a/pkgs/development/libraries/marl/default.nix
+++ b/pkgs/development/libraries/marl/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/google/marl";
-    description = "A hybrid thread / fiber task scheduler written in C++ 11";
+    description = "Hybrid thread / fiber task scheduler written in C++ 11";
     platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ breakds ];
diff --git a/pkgs/development/libraries/mathgl/default.nix b/pkgs/development/libraries/mathgl/default.nix
index 811395d27588b..e2dc599c4f3bf 100644
--- a/pkgs/development/libraries/mathgl/default.nix
+++ b/pkgs/development/libraries/mathgl/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A library for scientific data visualization";
+    description = "Library for scientific data visualization";
     homepage = "https://mathgl.sourceforge.net/";
     license = with licenses; [ gpl3 lgpl3 ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/matio/default.nix b/pkgs/development/libraries/matio/default.nix
index aebd147806367..3a2fde3157797 100644
--- a/pkgs/development/libraries/matio/default.nix
+++ b/pkgs/development/libraries/matio/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchurl }:
 stdenv.mkDerivation rec {
   pname = "matio";
-  version = "1.5.26";
+  version = "1.5.27";
   src = fetchurl {
     url = "mirror://sourceforge/matio/${pname}-${version}.tar.gz";
-    sha256 = "sha256-i0fCn1jkaNunpVVTccanKtTGqosV9FmysLZaMDwGOTM=";
+    sha256 = "sha256-CmqgCxjEUStjqNJ5BrB5yMbtQdSyhE96SuWY4Y0i07M=";
   };
 
   meta = with lib; {
-    description = "A C library for reading and writing Matlab MAT files";
+    description = "C library for reading and writing Matlab MAT files";
     homepage = "http://matio.sourceforge.net/";
     license = licenses.bsd2;
     maintainers = [ ];
diff --git a/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix b/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix
index b7cac02bb6c56..63e9861421ab2 100644
--- a/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix
+++ b/pkgs/development/libraries/matrix-sdk-crypto-nodejs/generic.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A no-network-IO implementation of a state machine that handles E2EE for Matrix clients";
+    description = "No-network-IO implementation of a state machine that handles E2EE for Matrix clients";
     homepage = "https://github.com/matrix-org/matrix-rust-sdk/tree/${src.rev}/bindings/matrix-sdk-crypto-nodejs";
     license = licenses.asl20;
     maintainers = with maintainers; [ winter ];
diff --git a/pkgs/development/libraries/mdds/default.nix b/pkgs/development/libraries/mdds/default.nix
index ea60c32a08cd3..53b60dd3159e4 100644
--- a/pkgs/development/libraries/mdds/default.nix
+++ b/pkgs/development/libraries/mdds/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://gitlab.com/mdds/mdds";
-    description = "A collection of multi-dimensional data structure and indexing algorithms";
+    description = "Collection of multi-dimensional data structure and indexing algorithms";
     changelog = "https://gitlab.com/mdds/mdds/-/blob/${finalAttrs.version}/CHANGELOG";
     license = licenses.mit;
     maintainers = [ maintainers.AndersonTorres ];
diff --git a/pkgs/development/libraries/mdk-sdk/default.nix b/pkgs/development/libraries/mdk-sdk/default.nix
index 1dd85da495387..89038628f2f91 100644
--- a/pkgs/development/libraries/mdk-sdk/default.nix
+++ b/pkgs/development/libraries/mdk-sdk/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mdk-sdk";
-  version = "0.26.0";
+  version = "0.27.0";
 
   src = fetchurl {
     url = "https://github.com/wang-bin/mdk-sdk/releases/download/v${version}/mdk-sdk-linux-x64.tar.xz";
-    hash = "sha256-DZiipuGXhzrlm49doNeFExApHMDI7ILfOumgXA8useA=";
+    hash = "sha256-JGYZ+Rodvyo/PkQfuW7xM0aIa3Gql75TwRUU1yZHJJ8=";
   };
 
   nativeBuildInputs = [ autoPatchelfHook ];
diff --git a/pkgs/development/libraries/medfile/default.nix b/pkgs/development/libraries/medfile/default.nix
index 9593781f2270e..8c07b2aad31a1 100644
--- a/pkgs/development/libraries/medfile/default.nix
+++ b/pkgs/development/libraries/medfile/default.nix
@@ -1,19 +1,39 @@
 { lib, stdenv, fetchurl, cmake, hdf5 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "medfile";
-  version = "4.1.1";
+  version = "5.0.0";
 
   src = fetchurl {
-    url = "http://files.salome-platform.org/Salome/other/med-${version}.tar.gz";
-    sha256 = "sha256-3CtdVOvwZm4/8ul0BB0qsNqQYGEyNTcCOrFl1XM4ndA=";
+    url = "https://files.salome-platform.org/Salome/medfile/med-${finalAttrs.version}.tar.bz2";
+    hash = "sha256-Jn520MZ+xRwQ4xmUhOwVCLqo1e2EXGKK32YFKdzno9Q=";
   };
 
-  patches = [
-    ./hdf5-1.14.patch
-  ];
+  outputs = [ "out" "doc" "dev" ];
+
+  postPatch = ''
+    # Patch cmake and source files to work with hdf5
+    substituteInPlace config/cmake_files/medMacros.cmake --replace-fail \
+      "IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 12 OR NOT HDF_VERSION_RELEASE_REF GREATER 0)" \
+      "IF (HDF5_VERSION VERSION_LESS 1.12.0)"
+    substituteInPlace src/*/*.c --replace-warn \
+      "#if H5_VERS_MINOR > 12" \
+      "#if H5_VERS_MINOR > 14"
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Some medfile test files #define _a, which
+    # breaks system header files that use _a as a function parameter
+    substituteInPlace tests/c/*.c \
+      --replace-warn "_a" "_A" \
+      --replace-warn "_b" "_B"
+    # Fix compiler errors in test files
+    substituteInPlace tests/c/*.c \
+      --replace-warn "med_Bool" "med_bool" \
+      --replace-warn "med_Axis_type" "med_axis_type" \
+      --replace-warn "med_Access_mode" "med_access_mode"
+  '';
 
   nativeBuildInputs = [ cmake ];
+
   buildInputs = [ hdf5 ];
 
   checkPhase = "make test";
@@ -22,8 +42,8 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "Library to read and write MED files";
-    homepage = "http://salome-platform.org/";
-    platforms = platforms.linux;
+    homepage = "https://salome-platform.org/";
+    platforms = platforms.linux ++ platforms.darwin;
     license = licenses.lgpl3Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/medfile/hdf5-1.14.patch b/pkgs/development/libraries/medfile/hdf5-1.14.patch
deleted file mode 100644
index 294e87c023a7a..0000000000000
--- a/pkgs/development/libraries/medfile/hdf5-1.14.patch
+++ /dev/null
@@ -1,86 +0,0 @@
---- a/config/cmake_files/medMacros.cmake
-+++ b/config/cmake_files/medMacros.cmake
-@@ -447,7 +447,7 @@ MACRO(MED_FIND_HDF5)
-     ##
-     ## Requires 1.10.x version
-     ##
--    IF (NOT HDF_VERSION_MAJOR_REF EQUAL 1 OR NOT HDF_VERSION_MINOR_REF EQUAL 10 OR NOT HDF_VERSION_RELEASE_REF GREATER 1)
-+    IF (HDF5_VERSION VERSION_LESS 1.10.2)
-         MESSAGE(FATAL_ERROR "HDF5 version is ${HDF_VERSION_REF}. Only versions >= 1.10.2 are supported.")
-     ENDIF()
-     ##
---- a/src/ci/MEDfileCompatibility.c
-+++ b/src/ci/MEDfileCompatibility.c
-@@ -71,7 +71,7 @@ MEDfileCompatibility(const char* const filename,
-   _hversionMMR=10000*_hmajeur+100*_hmineur+_hrelease;
-   /* ISCRUTE(_hversionMMR); */
-   /* ISCRUTE(HDF_VERSION_NUM_REF); */
--  if ( (_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF) ) *hdfok = MED_TRUE;
-+  if ( ((_hversionMMR >= HDF_VERSION_NUM_REF) && (_hmineur == HDF_VERSION_MINOR_REF)) || _hversionMMR > HDF_VERSION_NUM_REF ) *hdfok = MED_TRUE;
- 
-   /* TODO : Vérifier si la version mineure HDF du fichier est supérieure
-      à la version mineure de la bibliothèque HDF utilisée :
-@@ -113,7 +113,7 @@ MEDfileCompatibility(const char* const filename,
- #if MED_NUM_MAJEUR != 4
- #error "Don't forget to update the test version here when you change the major version of the library !"
- #endif
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to check the compatibility version of the library, depending on the internal hdf model choice !"
- #error "Cf. _MEDfileCreate ..."
- #endif
---- a/src/hdfi/_MEDfileCreate.c
-+++ b/src/hdfi/_MEDfileCreate.c
-@@ -159,7 +159,7 @@ med_idt _MEDfileCreate(const char * const filename, const med_access_mode access
-    * En HDF5-1.10.0p1 cela n'a aucun effet ! 
-    * Un test autoconf permet de fixer un intervalle de version HDF à MED.
-    */
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-    
---- a/src/hdfi/_MEDfileOpen.c
-+++ b/src/hdfi/_MEDfileOpen.c
-@@ -72,7 +72,7 @@ med_idt _MEDfileOpen(const char * const filename,const med_access_mode accessmod
- 
-    •   The creation order tracking property, H5P_CRT_ORDER_TRACKED, has been set in the group creation property list (see H5Pset_link_creation_order). 
-   */
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
- /* L'avantage de bloquer le modèle interne HDF5 
---- a/src/hdfi/_MEDmemFileOpen.c
-+++ b/src/hdfi/_MEDmemFileOpen.c
-@@ -434,7 +434,7 @@ med_idt _MEDmemFileOpen(const char * const filename, med_memfile * const memfile
-     goto ERROR;
-   }
- 
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-   if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18) ) {
---- a/src/hdfi/_MEDparFileCreate.c
-+++ b/src/hdfi/_MEDparFileCreate.c
-@@ -64,7 +64,7 @@ med_idt _MEDparFileCreate(const char * const filename, const med_access_mode acc
-    * En HDF5-1.10.0p1 cela n'a aucun effet ! 
-    * Un test autoconf permet de fixer un intervalle de version HDF à MED.
-    */
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-    
---- a/src/hdfi/_MEDparFileOpen.c
-+++ b/src/hdfi/_MEDparFileOpen.c
-@@ -55,7 +55,7 @@ med_idt _MEDparFileOpen(const char * const filename,const med_access_mode access
-     MED_ERR_(_fid,MED_ERR_INIT,MED_ERR_PROPERTY,MED_ERR_PARALLEL_MSG);
-     goto ERROR;
-   }
--#if H5_VERS_MINOR > 10
-+#if H5_VERS_MINOR > 14
- #error "Don't forget to change the compatibility version of the library !"
- #endif
-   if ( H5Pset_libver_bounds( _fapl, H5F_LIBVER_18, H5F_LIBVER_18 ) ) {
diff --git a/pkgs/development/libraries/mediastreamer/default.nix b/pkgs/development/libraries/mediastreamer/default.nix
index f1c109b244b36..f7549376d0bdd 100644
--- a/pkgs/development/libraries/mediastreamer/default.nix
+++ b/pkgs/development/libraries/mediastreamer/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "-lXext";
 
   meta = with lib; {
-    description = "A powerful and lightweight streaming engine specialized for voice/video telephony applications. Part of the Linphone project";
+    description = "Powerful and lightweight streaming engine specialized for voice/video telephony applications. Part of the Linphone project";
     homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/mediastreamer/msopenh264.nix b/pkgs/development/libraries/mediastreamer/msopenh264.nix
index 83a96175cba55..55ae2c8d9899e 100644
--- a/pkgs/development/libraries/mediastreamer/msopenh264.nix
+++ b/pkgs/development/libraries/mediastreamer/msopenh264.nix
@@ -1,7 +1,6 @@
 { autoreconfHook
 , cmake
 , fetchFromGitLab
-, fetchpatch
 , mediastreamer
 , openh264
 , pkg-config
@@ -39,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "H.264 encoder/decoder plugin for mediastreamer2. Part of the Linphone project.";
+    description = "H.264 encoder/decoder plugin for mediastreamer2. Part of the Linphone project";
     homepage = "https://www.linphone.org/technical-corner/mediastreamer2";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/mesa/darwin.patch b/pkgs/development/libraries/mesa/darwin.patch
new file mode 100644
index 0000000000000..4649e09afb5ff
--- /dev/null
+++ b/pkgs/development/libraries/mesa/darwin.patch
@@ -0,0 +1,17 @@
+diff --git a/src/glx/glxext.c b/src/glx/glxext.c
+index 8770863eb7c..537f0af112c 100644
+--- a/src/glx/glxext.c
++++ b/src/glx/glxext.c
+@@ -886,10 +886,11 @@ __glXInitialize(Display * dpy)
+    Bool zink = False;
+    Bool try_zink = False;
+ 
++   const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
++
+ #if defined(GLX_DIRECT_RENDERING) && (!defined(GLX_USE_APPLEGL) || defined(GLX_USE_APPLE))
+    Bool glx_direct = !debug_get_bool_option("LIBGL_ALWAYS_INDIRECT", false);
+    Bool glx_accel = !debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false);
+-   const char *env = getenv("MESA_LOADER_DRIVER_OVERRIDE");
+ 
+    zink = env && !strcmp(env, "zink");
+    try_zink = False;
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index a544e1b25466e..af5baf1bc3a5f 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -1,88 +1,120 @@
-{ stdenv, lib, fetchurl, fetchpatch, fetchCrate, buildPackages
-, meson, pkg-config, ninja
-, intltool, bison, flex, file, python3Packages, wayland-scanner
-, expat, libdrm, xorg, wayland, wayland-protocols, openssl
-, llvmPackages, libffi, libomxil-bellagio, libva-minimal
-, elfutils, libvdpau
-, libglvnd, libunwind, lm_sensors
-, vulkan-loader, glslang
-, galliumDrivers ?
-  if stdenv.isLinux then
-    [
-      "d3d12" # WSL emulated GPU (aka Dozen)
-      "kmsro" # special "render only" driver for GPUs without a display controller
-      "nouveau" # Nvidia
-      "radeonsi" # new AMD (GCN+)
-      "r300" # very old AMD
-      "r600" # less old AMD
-      "swrast" # software renderer (aka LLVMPipe)
-      "svga" # VMWare virtualized GPU
-      "virgl" # QEMU virtualized GPU (aka VirGL)
-      "zink" # generic OpenGL over Vulkan, experimental
-    ] ++ lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [
-      "etnaviv" # Vivante GPU designs (mostly NXP/Marvell SoCs)
-      "freedreno" # Qualcomm Adreno (all Qualcomm SoCs)
-      "lima" # ARM Mali 4xx
-      "panfrost" # ARM Mali Midgard and up (T/G series)
-      "vc4" # Broadcom VC4 (Raspberry Pi 0-3)
-    ] ++ lib.optionals stdenv.isAarch64 [
-      "tegra" # Nvidia Tegra SoCs
-      "v3d" # Broadcom VC5 (Raspberry Pi 4)
-    ] ++ lib.optionals stdenv.hostPlatform.isx86 [
-      "iris" # new Intel, could work on non-x86 with PCIe cards, but doesn't build as of 22.3.4
-      "crocus" # Intel legacy, x86 only
-      "i915" # Intel extra legacy, x86 only
-    ]
-  else [ "auto" ]
-, vulkanDrivers ?
-  if stdenv.isLinux then
-    [
-      "amd" # AMD (aka RADV)
-      "microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen)
-      "nouveau-experimental" # Nouveau (aka NVK)
-      "swrast" # software renderer (aka Lavapipe)
-    ]
-    ++ lib.optionals (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") [
-      # QEMU virtualized GPU (aka VirGL)
-      # Requires ATOMIC_INT_LOCK_FREE == 2.
-      "virtio"
-    ]
-    ++ lib.optionals stdenv.isAarch64 [
-      "broadcom" # Broadcom VC5 (Raspberry Pi 4, aka V3D)
-      "freedreno" # Qualcomm Adreno (all Qualcomm SoCs)
-      "imagination-experimental" # PowerVR Rogue (currently N/A)
-      "panfrost" # ARM Mali Midgard and up (T/G series)
-    ]
-    ++ lib.optionals stdenv.hostPlatform.isx86 [
-      "intel" # Intel (aka ANV), could work on non-x86 with PCIe cards, but doesn't build
-      "intel_hasvk" # Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code)
-    ]
-  else [ "auto" ]
-, eglPlatforms ? [ "x11" ] ++ lib.optionals stdenv.isLinux [ "wayland" ]
-, vulkanLayers ? lib.optionals (!stdenv.isDarwin) [ "device-select" "overlay" "intel-nullhw" ] # No Vulkan support on Darwin
-, OpenGL, Xplugin
-, withValgrind ? lib.meta.availableOn stdenv.hostPlatform valgrind-light && !valgrind-light.meta.broken, valgrind-light
-, withLibunwind ? lib.meta.availableOn stdenv.hostPlatform libunwind
-, enableGalliumNine ? stdenv.isLinux
-, enableOSMesa ? stdenv.isLinux
-, enableOpenCL ? stdenv.isLinux && stdenv.isx86_64
-, enablePatentEncumberedCodecs ? true
+{ lib
+, OpenGL
+, Xplugin
+, bison
+, buildPackages
+, directx-headers
+, elfutils
+, expat
+, fetchCrate
+, fetchurl
+, file
+, flex
+, glslang
+, intltool
 , jdupes
-, rustPlatform
+, libdrm
+, libffi
+, libglvnd
+, libomxil-bellagio
+, libunwind
+, libva-minimal
+, libvdpau
+, llvmPackages
+, lm_sensors
+, meson
+, ninja
+, openssl
+, pkg-config
+, python3Packages
 , rust-bindgen
+, rust-cbindgen
+, rustPlatform
 , rustc
 , spirv-llvm-translator
-, zstd
-, directx-headers
+, stdenv
 , udev
+, valgrind-light
+, vulkan-loader
+, wayland
+, wayland-protocols
+, wayland-scanner
+, xcbutilkeysyms
+, xorg
+, zstd
+, withValgrind ?
+  lib.meta.availableOn stdenv.hostPlatform valgrind-light
+  && !valgrind-light.meta.broken
+, withLibunwind ? lib.meta.availableOn stdenv.hostPlatform libunwind
+, enableGalliumNine ? stdenv.isLinux
+, enableOSMesa ? stdenv.isLinux
+, enableOpenCL ? stdenv.isLinux && stdenv.isx86_64
+, enableTeflon ? stdenv.isLinux && stdenv.isAarch64  # currently only supports aarch64 SoCs, may change in the future
+, enablePatentEncumberedCodecs ? true
+
+, galliumDrivers ?
+  if stdenv.isLinux
+  then [
+    "d3d12" # WSL emulated GPU (aka Dozen)
+    "iris" # new Intel (Broadwell+)
+    "kmsro" # special "render only" driver for GPUs without a display controller
+    "nouveau" # Nvidia
+    "radeonsi" # new AMD (GCN+)
+    "r300" # very old AMD
+    "r600" # less old AMD
+    "swrast" # software renderer (aka LLVMPipe)
+    "svga" # VMWare virtualized GPU
+    "virgl" # QEMU virtualized GPU (aka VirGL)
+    "zink" # generic OpenGL over Vulkan, experimental
+  ] ++ lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [
+    "etnaviv" # Vivante GPU designs (mostly NXP/Marvell SoCs)
+    "freedreno" # Qualcomm Adreno (all Qualcomm SoCs)
+    "lima" # ARM Mali 4xx
+    "panfrost" # ARM Mali Midgard and up (T/G series)
+    "vc4" # Broadcom VC4 (Raspberry Pi 0-3)
+  ] ++ lib.optionals stdenv.isAarch64 [
+    "tegra" # Nvidia Tegra SoCs
+    "v3d" # Broadcom VC5 (Raspberry Pi 4)
+  ] ++ lib.optionals stdenv.hostPlatform.isx86 [
+    "crocus" # Intel legacy, x86 only
+    "i915" # Intel extra legacy, x86 only
+  ]
+  else [ "auto" ]
+, vulkanDrivers ?
+  if stdenv.isLinux
+  then [
+    "amd" # AMD (aka RADV)
+    "intel" # new Intel (aka ANV)
+    "microsoft-experimental" # WSL virtualized GPU (aka DZN/Dozen)
+    "nouveau" # Nouveau (aka NVK)
+    "swrast" # software renderer (aka Lavapipe)
+  ] ++ lib.optionals (stdenv.hostPlatform.isAarch -> lib.versionAtLeast stdenv.hostPlatform.parsed.cpu.version "6") [
+    # QEMU virtualized GPU (aka VirGL)
+    # Requires ATOMIC_INT_LOCK_FREE == 2.
+    "virtio"
+  ] ++ lib.optionals stdenv.isAarch64 [
+    "broadcom" # Broadcom VC5 (Raspberry Pi 4, aka V3D)
+    "freedreno" # Qualcomm Adreno (all Qualcomm SoCs)
+    "imagination-experimental" # PowerVR Rogue (currently N/A)
+    "panfrost" # ARM Mali Midgard and up (T/G series)
+  ] ++ lib.optionals stdenv.hostPlatform.isx86 [
+    "intel_hasvk" # Intel Haswell/Broadwell, "legacy" Vulkan driver (https://www.phoronix.com/news/Intel-HasVK-Drop-Dead-Code)
+  ]
+  else [ "auto" ]
+, eglPlatforms ? [ "x11" ] ++ lib.optionals stdenv.isLinux [ "wayland" ]
+, vulkanLayers ? lib.optionals (!stdenv.isDarwin) [ # No Vulkan support on Darwin
+  "device-select"
+  "overlay"
+  "intel-nullhw"
+]
 }:
 
 # When updating this package, please verify at least these build (assuming x86_64-linux):
 # nix build .#mesa .#pkgsi686Linux.mesa .#pkgsCross.aarch64-multiplatform.mesa .#pkgsMusl.mesa
 
 let
-  version = "24.0.5";
-  hash = "sha256-OMwkXKj6o8adptJof4kGN3AB9jNlNIpizG9/r7HowBg=";
+  version = "24.1.1";
+  hash = "sha256-ADiCbG9+iNkLTOb3GRkvpYyn3t9O3KoRdM972SDvieo=";
 
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
@@ -96,6 +128,11 @@ let
 
   rustDeps = [
     {
+      pname = "paste";
+      version = "1.0.14";
+      hash = "sha256-+J1h7New5MEclUBvwDQtTYJCHKKqAEOeQkuKy+g0vEc=";
+    }
+    {
       pname = "proc-macro2";
       version = "1.0.70";
       hash = "sha256-e4ZgyZUTu5nAtaH5QVkLelqJQX/XPj/rWkzf/g2c+1g=";
@@ -106,7 +143,7 @@ let
       hash = "sha256-VWRCZJO0/DJbNu0/V9TLaqlwMot65YjInWT9VWg57DY=";
     }
     {
-    pname = "syn";
+      pname = "syn";
       version = "2.0.39";
       hash = "sha256-Mjen2L/omhVbhU/+Ao65mogs3BP3fY+Bodab3uU63EI=";
     }
@@ -124,6 +161,7 @@ let
 
   copyRustDeps = lib.concatStringsSep "\n" (builtins.map copyRustDep rustDeps);
 
+  needNativeCLC = !stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 self = stdenv.mkDerivation {
   pname = "mesa";
   inherit version;
@@ -141,6 +179,11 @@ self = stdenv.mkDerivation {
 
   patches = [
     ./opencl.patch
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Reorder things to make it build on Darwin again
+    # Submitted upstream: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29592
+    # FIXME: remove when merged or otherwise addressed
+    ./darwin.patch
   ];
 
   postPatch = ''
@@ -157,14 +200,22 @@ self = stdenv.mkDerivation {
     ${copyRustDeps}
   '';
 
-  outputs = [ "out" "dev" "drivers" ]
-    ++ lib.optional enableOSMesa "osmesa"
-    ++ lib.optional stdenv.isLinux "driversdev"
-    ++ lib.optional enableOpenCL "opencl"
+  outputs = [
+    "out" "dev" "drivers"
+  ] ++ lib.optionals enableOSMesa [
+    "osmesa"
+  ] ++ lib.optionals stdenv.isLinux [
+    "driversdev"
+  ] ++ lib.optionals enableTeflon [
+    "teflon"
+  ] ++ lib.optionals enableOpenCL [
+    "opencl"
+  ] ++ lib.optionals haveDozen [
     # the Dozen drivers depend on libspirv2dxil, but link it statically, and
-    # libspirv2dxil itself is pretty chonky, so relocate it to its own output
-    # in case anything wants to use it at some point
-    ++ lib.optional haveDozen "spirv2dxil";
+    # libspirv2dxil itself is pretty chonky, so relocate it to its own output in
+    # case anything wants to use it at some point
+    "spirv2dxil"
+  ];
 
   # Keep build-ids so drivers can use them for caching, etc.
   # Also some drivers segfault without this.
@@ -181,101 +232,167 @@ self = stdenv.mkDerivation {
 
     # Don't build in debug mode
     # https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L327
-    "-Db_ndebug=true"
+    (lib.mesonBool "b_ndebug" true)
 
-    "-Ddri-search-path=${libglvnd.driverLink}/lib/dri"
+    (lib.mesonOption "dri-search-path" "${libglvnd.driverLink}/lib/dri")
 
-    "-Dplatforms=${lib.concatStringsSep "," eglPlatforms}"
-    "-Dgallium-drivers=${lib.concatStringsSep "," galliumDrivers}"
-    "-Dvulkan-drivers=${lib.concatStringsSep "," vulkanDrivers}"
+    (lib.mesonOption "platforms" (lib.concatStringsSep "," eglPlatforms))
+    (lib.mesonOption "gallium-drivers" (lib.concatStringsSep "," galliumDrivers))
+    (lib.mesonOption "vulkan-drivers" (lib.concatStringsSep "," vulkanDrivers))
 
-    "-Ddri-drivers-path=${placeholder "drivers"}/lib/dri"
-    "-Dvdpau-libs-path=${placeholder "drivers"}/lib/vdpau"
-    "-Domx-libs-path=${placeholder "drivers"}/lib/bellagio"
-    "-Dva-libs-path=${placeholder "drivers"}/lib/dri"
-    "-Dd3d-drivers-path=${placeholder "drivers"}/lib/d3d"
+    (lib.mesonOption "dri-drivers-path" "${placeholder "drivers"}/lib/dri")
+    (lib.mesonOption "vdpau-libs-path" "${placeholder "drivers"}/lib/vdpau")
+    (lib.mesonOption "omx-libs-path" "${placeholder "drivers"}/lib/bellagio")
+    (lib.mesonOption "va-libs-path" "${placeholder "drivers"}/lib/dri")
+    (lib.mesonOption "d3d-drivers-path" "${placeholder "drivers"}/lib/d3d")
 
-    "-Dgallium-nine=${lib.boolToString enableGalliumNine}" # Direct3D in Wine
-    "-Dosmesa=${lib.boolToString enableOSMesa}" # used by wine
-    "-Dmicrosoft-clc=disabled" # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
+    (lib.mesonBool "gallium-nine" enableGalliumNine) # Direct3D in Wine
+    (lib.mesonBool "osmesa" enableOSMesa) # used by wine
+    (lib.mesonBool "teflon" enableTeflon) # TensorFlow frontend
+    (lib.mesonEnable "microsoft-clc" false) # Only relevant on Windows (OpenCL 1.2 API on top of D3D12)
 
     # To enable non-mesa gbm backends to be found (e.g. Nvidia)
-    "-Dgbm-backends-path=${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm"
+    (lib.mesonOption "gbm-backends-path" "${libglvnd.driverLink}/lib/gbm:${placeholder "out"}/lib/gbm")
 
     # meson auto_features enables these features, but we do not want them
-    "-Dandroid-libbacktrace=disabled"
-
+    (lib.mesonEnable "android-libbacktrace" false)
   ] ++ lib.optionals stdenv.isLinux [
-    "-Dglvnd=true"
-
-    # Enable RT for Intel hardware
-    # https://gitlab.freedesktop.org/mesa/mesa/-/issues/9080
-    (lib.mesonEnable "intel-clc" (stdenv.buildPlatform == stdenv.hostPlatform))
+    (lib.mesonEnable "glvnd" true)
+    (lib.mesonBool "install-intel-clc" true)
+    (lib.mesonEnable "intel-rt" stdenv.isx86_64)
+    (lib.mesonOption "clang-libdir" "${llvmPackages.clang-unwrapped.lib}/lib")
   ] ++ lib.optionals stdenv.isDarwin [
     # Disable features that are explicitly unsupported on the platform
-    "-Dgbm=disabled"
-    "-Dxlib-lease=disabled"
-    "-Degl=disabled"
-    "-Dgallium-vdpau=disabled"
-    "-Dgallium-va=disabled"
-    "-Dgallium-xa=disabled"
-    "-Dlmsensors=disabled"
+    (lib.mesonEnable "gbm" false)
+    (lib.mesonEnable "xlib-lease" false)
+    (lib.mesonEnable "egl" false)
+    (lib.mesonEnable "gallium-vdpau" false)
+    (lib.mesonEnable "gallium-va" false)
+    (lib.mesonEnable "gallium-xa" false)
+    (lib.mesonEnable "lmsensors" false)
+    # Don’t build with glvnd support to make sure Mesa builds libGL on Darwin
+    (lib.mesonEnable "glvnd" false)
+    # This gets enabled by mesonAutoFeatures and fails on aarch64-darwin,
+    # which makes no sense because Darwin has neither Intel nor RT, but OK
+    (lib.mesonEnable "intel-rt" false)
   ] ++ lib.optionals enableOpenCL [
     # Clover, old OpenCL frontend
-    "-Dgallium-opencl=icd"
-    "-Dopencl-spirv=true"
+    (lib.mesonOption "gallium-opencl" "icd")
+    (lib.mesonBool "opencl-spirv" true)
 
     # Rusticl, new OpenCL frontend
-    "-Dgallium-rusticl=true"
-    "-Dclang-libdir=${llvmPackages.clang-unwrapped.lib}/lib"
-  ]  ++ lib.optionals (!withValgrind) [
-    "-Dvalgrind=disabled"
-  ]  ++ lib.optionals (!withLibunwind) [
-    "-Dlibunwind=disabled"
-  ] ++ lib.optional enablePatentEncumberedCodecs
-    "-Dvideo-codecs=all"
-  ++ lib.optional (vulkanLayers != []) "-D vulkan-layers=${builtins.concatStringsSep "," vulkanLayers}";
+    (lib.mesonBool "gallium-rusticl" true)
+  ] ++ lib.optionals (!withValgrind) [
+    (lib.mesonEnable "valgrind" false)
+  ] ++ lib.optionals (!withLibunwind) [
+    (lib.mesonEnable "libunwind" false)
+  ]
+  ++ lib.optionals enablePatentEncumberedCodecs [
+    (lib.mesonOption "video-codecs" "all")
+  ] ++ lib.optionals (vulkanLayers != []) [
+    (lib.mesonOption "vulkan-layers" (builtins.concatStringsSep "," vulkanLayers))
+  ] ++ lib.optionals needNativeCLC [
+    (lib.mesonOption "intel-clc" "system")
+  ];
 
   strictDeps = true;
 
   buildInputs = with xorg; [
-    expat glslang llvmPackages.libllvm libglvnd xorgproto
-    libX11 libXext libxcb libXt libXfixes libxshmfence libXrandr
-    libffi libvdpau libXvMC
-    libpthreadstubs openssl
+    expat
+    glslang
+    libffi
+    libglvnd
+    libvdpau
+    llvmPackages.libllvm
+    openssl
     zstd
-  ] ++ lib.optionals withLibunwind [
+  ] ++ (with xorg; [
+    libX11
+    libXext
+    libXfixes
+    libXrandr
+    libXt
+    libXvMC
+    libpthreadstubs
+    libxcb
+    libxshmfence
+    xcbutilkeysyms
+    xorgproto
+  ]) ++ lib.optionals withLibunwind [
     libunwind
   ] ++ [
     python3Packages.python # for shebang
-  ] ++ lib.optionals haveWayland [ wayland wayland-protocols ]
-    ++ lib.optionals stdenv.isLinux [ libomxil-bellagio libva-minimal udev lm_sensors ]
-    ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [ elfutils ]
-    ++ lib.optionals enableOpenCL [ llvmPackages.libclc llvmPackages.clang llvmPackages.clang-unwrapped spirv-llvm-translator ]
-    ++ lib.optional withValgrind valgrind-light
-    ++ lib.optional haveZink vulkan-loader
-    ++ lib.optional haveDozen directx-headers;
-
-  depsBuildBuild = [ pkg-config ]
-    # Adding this unconditionally makes x86_64-darwin pick up an older toolchain, as
-    # we explicitly call Mesa with 11.0 stdenv, but buildPackages is still 10.something,
-    # and Mesa can't build with that.
+  ] ++ lib.optionals haveWayland [
+    wayland
+    wayland-protocols
+  ] ++ lib.optionals stdenv.isLinux [
+    libomxil-bellagio
+    libva-minimal
+    llvmPackages.clang-unwrapped
+    llvmPackages.libclc
+    lm_sensors
+    spirv-llvm-translator
+    udev
+  ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform elfutils) [
+    elfutils
+  ] ++ lib.optionals enableOpenCL [
+    llvmPackages.clang
+  ] ++ lib.optionals withValgrind [
+    valgrind-light
+  ] ++ lib.optionals haveZink [
+    vulkan-loader
+  ] ++ lib.optionals haveDozen [
+    directx-headers
+  ];
+
+  depsBuildBuild = [
+    pkg-config
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    # Adding this unconditionally makes x86_64-darwin pick up an older
+    # toolchain, as we explicitly call Mesa with 11.0 stdenv, but buildPackages
+    # is still 10.something, and Mesa can't build with that.
     # FIXME: figure this out, or figure out how to get rid of Mesa on Darwin,
     # whichever is easier.
-    ++ lib.optional (!stdenv.isDarwin) buildPackages.stdenv.cc;
+    buildPackages.stdenv.cc
+  ];
 
   nativeBuildInputs = [
-    meson pkg-config ninja
-    intltool bison flex file
-    python3Packages.python python3Packages.mako python3Packages.ply
-    jdupes glslang
-    rustc rust-bindgen rustPlatform.bindgenHook
-  ] ++ lib.optional haveWayland wayland-scanner;
-
-  propagatedBuildInputs = with xorg; [
-    libXdamage libXxf86vm
-  ] ++ lib.optional withLibdrm libdrm
-    ++ lib.optionals stdenv.isDarwin [ OpenGL Xplugin ];
+    meson
+    pkg-config
+    ninja
+    intltool
+    bison
+    flex
+    file
+    python3Packages.python
+    python3Packages.pycparser
+    python3Packages.mako
+    python3Packages.ply
+    jdupes
+    glslang
+    rustc
+    rust-bindgen
+    rust-cbindgen
+    rustPlatform.bindgenHook
+  ] ++ lib.optionals haveWayland [
+    wayland-scanner
+  ] ++ lib.optionals needNativeCLC [
+    buildPackages.mesa.driversdev
+  ];
+
+  disallowedRequisites = lib.optionals needNativeCLC [
+    buildPackages.mesa.driversdev
+  ];
+
+  propagatedBuildInputs = (with xorg; [
+    libXdamage
+    libXxf86vm
+  ]) ++ lib.optionals withLibdrm [
+    libdrm
+  ] ++ lib.optionals stdenv.isDarwin [
+    OpenGL
+    Xplugin
+  ];
 
   doCheck = false;
 
@@ -354,6 +471,8 @@ self = stdenv.mkDerivation {
       fi
     done
 
+    moveToOutput bin/intel_clc $driversdev
+
     # Don't depend on build python
     patchShebangs --host --update $out/bin/*
 
@@ -371,11 +490,18 @@ self = stdenv.mkDerivation {
     ${lib.optionalString haveZink ''
       patchelf --add-rpath ${vulkan-loader}/lib $drivers/lib/dri/zink_dri.so
     ''}
+
+    ${lib.optionalString enableTeflon ''
+      moveToOutput lib/libteflon.so $teflon
+    ''}
   '';
 
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.isDarwin [ "-fno-common" ] ++ lib.optionals enableOpenCL [
-    "-UPIPE_SEARCH_DIR"
-    "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\""
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optionals stdenv.isDarwin [
+      "-fno-common"
+    ] ++ lib.optionals enableOpenCL [
+      "-UPIPE_SEARCH_DIR"
+      "-DPIPE_SEARCH_DIR=\"${placeholder "opencl"}/lib/gallium-pipe\""
   ]);
 
   passthru = {
@@ -395,8 +521,8 @@ self = stdenv.mkDerivation {
     };
   };
 
-  meta = with lib; {
-    description = "An open source 3D graphics library";
+  meta = {
+    description = "Open source 3D graphics library";
     longDescription = ''
       The Mesa project began as an open-source implementation of the OpenGL
       specification - a system for rendering interactive 3D graphics. Over the
@@ -408,9 +534,10 @@ self = stdenv.mkDerivation {
     '';
     homepage = "https://www.mesa3d.org/";
     changelog = "https://www.mesa3d.org/relnotes/${version}.html";
-    license = licenses.mit; # X11 variant, in most files
-    platforms = platforms.mesaPlatforms;
-    maintainers = with maintainers; [ primeos vcunat ]; # Help is welcome :)
+    license = with lib.licenses; [ mit ]; # X11 variant, in most files
+    platforms = lib.platforms.mesaPlatforms;
+    badPlatforms = []; # Load bearing for libGL meta on Darwin.
+    maintainers = with lib.maintainers; [ primeos vcunat ]; # Help is welcome :)
   };
 };
 
diff --git a/pkgs/development/libraries/mesa/stubs.nix b/pkgs/development/libraries/mesa/stubs.nix
index 773897548a427..f9c462e9b3267 100644
--- a/pkgs/development/libraries/mesa/stubs.nix
+++ b/pkgs/development/libraries/mesa/stubs.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation (finalAttrs: {
     description = "Stub bindings using " + (if stdenv.hostPlatform.isDarwin then "mesa" else "libglvnd");
     pkgConfigModules = [ "gl" "egl" "glesv1_cm" "glesv2" ];
   } // {
-    inherit (if stdenv.hostPlatform.isDarwin then mesa.meta else libglvnd.meta) homepage license platforms;
+    inherit (if stdenv.hostPlatform.isDarwin then mesa.meta else libglvnd.meta)
+      homepage license platforms badPlatforms;
   };
 })
diff --git a/pkgs/development/libraries/mimalloc/default.nix b/pkgs/development/libraries/mimalloc/default.nix
index e0e1421c476e0..29fd2b662e694 100644
--- a/pkgs/development/libraries/mimalloc/default.nix
+++ b/pkgs/development/libraries/mimalloc/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "mimalloc";
-  version = "2.1.2";
+  version = "2.1.7";
 
   src = fetchFromGitHub {
     owner  = "microsoft";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-kYhfufffM4r+ZVgcjnulqFlf1756pirlPysGZnUBzt8=";
+    sha256 = "sha256-slAi8Ht/jwpsFy5zC3CpfTdAkxEMpHJlgmNqMgz+psU=";
   };
 
   doCheck = !stdenv.hostPlatform.isStatic;
diff --git a/pkgs/development/libraries/minilibx/default.nix b/pkgs/development/libraries/minilibx/default.nix
index 0551993e438a2..b088aed10921d 100644
--- a/pkgs/development/libraries/minilibx/default.nix
+++ b/pkgs/development/libraries/minilibx/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation {
   pname = "minilibx";
-  version = "unstable-2021-10-30";
+  version = "0-unstable-2021-10-30";
 
   src = fetchFromGitHub {
     owner = "42Paris";
@@ -53,7 +53,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A simple X-Window (X11R6) programming API in C";
+    description = "Simple X-Window (X11R6) programming API in C";
     homepage = "https://github.com/42Paris/minilibx-linux";
     license = licenses.bsd2;
     maintainers = with maintainers; [ wegank ];
diff --git a/pkgs/development/libraries/minixml/default.nix b/pkgs/development/libraries/minixml/default.nix
index 1c9a4ab110b4a..4d06613f1de8e 100644
--- a/pkgs/development/libraries/minixml/default.nix
+++ b/pkgs/development/libraries/minixml/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A small XML library";
+    description = "Small XML library";
     homepage = "https://www.msweet.org/mxml/";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/miniz/default.nix b/pkgs/development/libraries/miniz/default.nix
index 0c4d902f40bb2..0cb5087c4f7a0 100644
--- a/pkgs/development/libraries/miniz/default.nix
+++ b/pkgs/development/libraries/miniz/default.nix
@@ -28,7 +28,10 @@ stdenv.mkDerivation (finalAttrs: {
       --replace-fail '=''${exec_prefix}//' '=/'
   '';
 
-  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+  passthru.tests.pkg-config = testers.hasPkgConfigModules {
+    package = finalAttrs.finalPackage;
+    versionCheck = true;
+  };
 
   meta = with lib; {
     description = "Single C source file zlib-replacement library";
diff --git a/pkgs/development/libraries/minizip-ng/default.nix b/pkgs/development/libraries/minizip-ng/default.nix
index 5be1f2e519253..baf6a4f687a43 100644
--- a/pkgs/development/libraries/minizip-ng/default.nix
+++ b/pkgs/development/libraries/minizip-ng/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , gtest
 , pkg-config
diff --git a/pkgs/development/libraries/minizip/default.nix b/pkgs/development/libraries/minizip/default.nix
index 586dd113f1d10..44cba9767b36e 100644
--- a/pkgs/development/libraries/minizip/default.nix
+++ b/pkgs/development/libraries/minizip/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, zlib, autoreconfHook, fetchpatch }:
+{ lib, stdenv, zlib, autoreconfHook }:
 
 stdenv.mkDerivation {
   pname = "minizip";
diff --git a/pkgs/development/libraries/mitama-cpp-result/default.nix b/pkgs/development/libraries/mitama-cpp-result/default.nix
index bc30b6de9f4af..7700483529a9b 100644
--- a/pkgs/development/libraries/mitama-cpp-result/default.nix
+++ b/pkgs/development/libraries/mitama-cpp-result/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://github.com/LoliGothick/mitama-cpp-result";
-    description = "A Library that provides `result<T, E>` and `maybe<T>` and monadic functions for them";
+    description = "Library that provides `result<T, E>` and `maybe<T>` and monadic functions for them";
     longDescription = ''
       mitama-cpp-result is the C++17 libraries for error handling without exceptions.
 
diff --git a/pkgs/development/libraries/mlib/default.nix b/pkgs/development/libraries/mlib/default.nix
index f3415adadf74d..91e1271278333 100644
--- a/pkgs/development/libraries/mlib/default.nix
+++ b/pkgs/development/libraries/mlib/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mlib";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchFromGitHub {
     owner = "P-p-H-d";
     repo = pname;
     rev = "V${version}";
-    hash = "sha256-wt/wLtvAZ19ZiLIjPrKbqVztLyXEa8hy6cEkaCO+tuY=";
+    hash = "sha256-r8ol923tNkZ13QXWjWpMrN6rBjjjg5XoBCho4OKdyvY=";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" "PREFIX=$(out)" ];
diff --git a/pkgs/development/libraries/mlt/default.nix b/pkgs/development/libraries/mlt/default.nix
index 672bb36609ec5..af397eb3c5c29 100644
--- a/pkgs/development/libraries/mlt/default.nix
+++ b/pkgs/development/libraries/mlt/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    (opencv4.override { inherit ffmpeg; })
     ffmpeg
     fftw
     frei0r
@@ -73,7 +74,6 @@ stdenv.mkDerivation rec {
     libvorbis
     libxml2
     movit
-    opencv4
     rtaudio
     rubberband
     sox
diff --git a/pkgs/development/libraries/mongoc/default.nix b/pkgs/development/libraries/mongoc/default.nix
index 9f9b4ad6ff4e2..e99671b4fcfa7 100644
--- a/pkgs/development/libraries/mongoc/default.nix
+++ b/pkgs/development/libraries/mongoc/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mongoc";
-  version = "1.26.2";
+  version = "1.27.2";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-c-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-4+PXvWYEy4Bi+qpyp7PvqtsOxJuYhjiHrmwmdn5RiX8=";
+    hash = "sha256-l3iZeu6Y+ZB9bYIg4ivG1o0ou3pXaBZ9dg61b6ie2Jw=";
   };
 
   nativeBuildInputs = [
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The official C client library for MongoDB";
+    description = "Official C client library for MongoDB";
     homepage = "http://mongoc.org";
     license = licenses.asl20;
     mainProgram = "mongoc-stat";
diff --git a/pkgs/development/libraries/mongocxx/default.nix b/pkgs/development/libraries/mongocxx/default.nix
index ad96e81159a70..a17e7f8d037f6 100644
--- a/pkgs/development/libraries/mongocxx/default.nix
+++ b/pkgs/development/libraries/mongocxx/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
 
   meta = with lib; {
-    description = "The official C++ client library for MongoDB";
+    description = "Official C++ client library for MongoDB";
     homepage = "http://mongocxx.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ adriandole ];
diff --git a/pkgs/development/libraries/mono-addins/default.nix b/pkgs/development/libraries/mono-addins/default.nix
index 9a31fbb69eeb2..23e613be08878 100644
--- a/pkgs/development/libraries/mono-addins/default.nix
+++ b/pkgs/development/libraries/mono-addins/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.mono-project.com/archived/monoaddins/";
-    description = "A generic framework for creating extensible applications";
+    description = "Generic framework for creating extensible applications";
     mainProgram = "mautil";
     longDescription = ''
       Mono.Addins is a generic framework for creating extensible applications,
diff --git a/pkgs/development/libraries/monocypher/default.nix b/pkgs/development/libraries/monocypher/default.nix
index b37cfffabc0ee..f5853385ba913 100644
--- a/pkgs/development/libraries/monocypher/default.nix
+++ b/pkgs/development/libraries/monocypher/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch }:
+{ lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "monocypher";
diff --git a/pkgs/development/libraries/motif/default.nix b/pkgs/development/libraries/motif/default.nix
index 92d0098fc9840..8551510b476ca 100644
--- a/pkgs/development/libraries/motif/default.nix
+++ b/pkgs/development/libraries/motif/default.nix
@@ -26,8 +26,8 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [ libXp libXau ];
 
-  prePatch = lib.optionalString (!demoSupport) ''
-    sed '/^SUBDIRS =,^$/s/\<demos\>//' -i Makefile.{am,in}
+  postPatch = lib.optionalString (!demoSupport) ''
+    sed 's/\<demos\>//' -i Makefile.{am,in}
   '';
 
   patches = [
@@ -38,6 +38,27 @@ stdenv.mkDerivation rec {
       url = "https://raw.githubusercontent.com/void-linux/void-packages/b9a1110dabb01c052dadc1abae1413bd4afe3652/srcpkgs/motif/patches/02-${name}";
       sha256 = "13vzpf8yxvhf4gl7q0yzlr6ak1yzx382fsqsrv5lc8jbbg4nwrrq";
     })
+    (fetchpatch {
+      name = "missing-headers.patch";
+      url = "https://gitlab.freedesktop.org/xorg/lib/libxpm/-/commit/4cedf181bcfe13e5d206554c51edb82cb17e7ad5.patch";
+      extraPrefix = "lib/Xm/";
+      stripLen = 2;
+      hash = "sha256-WlagHOgf2gZDxXN+SSEW6de1FuN4fbpd9zviMwo1+HI=";
+    })
+    (fetchurl {
+      name = "noreturn.patch";
+      url = "https://dev.gentoo.org/~ulm/distfiles/motif-2.3.8-patches-5.tar.xz";
+      downloadToTemp = true;
+      postFetch = ''
+        tar -xOf $downloadedFile patch/12_all_noreturn.patch > $out
+      '';
+      hash = "sha256-FyaBfqD/TuJVFFHZlp1/b1MyL8BJAfV43ktuusgxbfE=";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/acc8c7cb2247d9892bf5a52eb92431a4c0c8e1cd/x11/openmotif/files/wcs-functions.patch";
+      extraPrefix = "";
+      hash = "sha256-w3zCUs/RbnRoUJ0sNCI00noEOkov/IGV/zIygakSQqc=";
+    })
   ];
 
   enableParallelBuilding = true;
@@ -48,5 +69,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = with licenses; [ lgpl21Plus ];
     maintainers = with maintainers; [ qyliss ];
+    broken = demoSupport && stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16";
   };
 }
diff --git a/pkgs/development/libraries/mp4v2/default.nix b/pkgs/development/libraries/mp4v2/default.nix
index b9b0589bd80d3..1fdb48dab4c42 100644
--- a/pkgs/development/libraries/mp4v2/default.nix
+++ b/pkgs/development/libraries/mp4v2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchurl }:
+{ stdenv, lib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "mp4v2";
diff --git a/pkgs/development/libraries/mpdecimal/default.nix b/pkgs/development/libraries/mpdecimal/default.nix
index 514c61ffcb0c0..687abab7d45b9 100644
--- a/pkgs/development/libraries/mpdecimal/default.nix
+++ b/pkgs/development/libraries/mpdecimal/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, updateAutotoolsGnuConfigScriptsHook }:
 
 stdenv.mkDerivation rec {
   pname = "mpdecimal";
@@ -10,6 +10,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-lCRFwyRbInMP1Bpnp8XCMdEcsbmTa5wPdjNPt9C0Row=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   configureFlags = [ "LD=${stdenv.cc.targetPrefix}cc" ];
 
   postInstall = ''
diff --git a/pkgs/development/libraries/mpfi/default.nix b/pkgs/development/libraries/mpfi/default.nix
index 54abf134d3660..802a89c4c5e4e 100644
--- a/pkgs/development/libraries/mpfi/default.nix
+++ b/pkgs/development/libraries/mpfi/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ mpfr ];
 
   meta = {
-    description = "A multiple precision interval arithmetic library based on MPFR";
+    description = "Multiple precision interval arithmetic library based on MPFR";
     homepage = "http://perso.ens-lyon.fr/nathalie.revol/software.html";
     license = lib.licenses.lgpl21Plus;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index 02e587661890b..bb7f9f5807d69 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchurl, perl, gfortran
 , openssh, hwloc, python3
+, darwin
 # either libfabric or ucx work for ch4backend on linux. On darwin, neither of
 # these libraries currently build so this argument is ignored on Darwin.
 , ch4backend
@@ -44,10 +45,11 @@ stdenv.mkDerivation  rec {
   nativeBuildInputs = [ gfortran python3 ];
   buildInputs = [ perl openssh hwloc ]
     ++ lib.optional (!stdenv.isDarwin) ch4backend
-    ++ lib.optional pmixSupport pmix;
+    ++ lib.optional pmixSupport pmix
+    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Foundation;
 
-
-  doCheck = true;
+  # test_double_serializer.test fails on darwin
+  doCheck = !stdenv.isDarwin;
 
   preFixup = ''
     # Ensure the default compilers are the ones mpich was built with
diff --git a/pkgs/development/libraries/mpir/default.nix b/pkgs/development/libraries/mpir/default.nix
index 6dd105bdb3027..26f22fd9968f2 100644
--- a/pkgs/development/libraries/mpir/default.nix
+++ b/pkgs/development/libraries/mpir/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.isLinux [ "--enable-fat" ];
 
   meta = {
-    description = "A highly optimised library for bignum arithmetic forked from GMP";
+    description = "Highly optimised library for bignum arithmetic forked from GMP";
     license = lib.licenses.lgpl3Plus;
     maintainers = [lib.maintainers.raskin];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/mps/default.nix b/pkgs/development/libraries/mps/default.nix
index fd6e5d60bf7b8..049868c9381b6 100644
--- a/pkgs/development/libraries/mps/default.nix
+++ b/pkgs/development/libraries/mps/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ sqlite ];
 
   meta = {
-    description = "A flexible memory management and garbage collection library";
+    description = "Flexible memory management and garbage collection library";
     homepage    = "https://www.ravenbrook.com/project/mps";
     license     = lib.licenses.sleepycat;
     platforms   = lib.platforms.linux;
diff --git a/pkgs/development/libraries/msgpack-c/default.nix b/pkgs/development/libraries/msgpack-c/default.nix
index 41d174bce7d9f..63a712b0881e3 100644
--- a/pkgs/development/libraries/msgpack-c/default.nix
+++ b/pkgs/development/libraries/msgpack-c/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "msgpack-c";
-  version = "6.0.0";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "msgpack";
     repo = "msgpack-c";
     rev = "refs/tags/c-${finalAttrs.version}";
-    hash = "sha256-TfC37QKwqvHxsLPgsEqJYkb7mpRQekbntbBPV4v4FO8=";
+    hash = "sha256-BXnK7xNRdZvbSz7tERf/PDJkmxbqAC6trH+h36O/v6k=";
   };
 
   strictDeps = true;
@@ -24,8 +24,9 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DMSGPACK_BUILD_EXAMPLES=OFF" # examples are not installed even if built
-  ] ++ lib.optional (!finalAttrs.finalPackage.doCheck) "-DMSGPACK_BUILD_TESTS=OFF";
+    (lib.cmakeBool "MSGPACK_BUILD_EXAMPLES" false) # examples are not installed even if built
+    (lib.cmakeBool "MSGPACK_BUILD_TESTS" finalAttrs.finalPackage.doCheck)
+  ];
 
   checkInputs = [
     gtest
diff --git a/pkgs/development/libraries/msgpuck/default.nix b/pkgs/development/libraries/msgpuck/default.nix
index cc7b056bb988b..a21dd799e0fc8 100644
--- a/pkgs/development/libraries/msgpuck/default.nix
+++ b/pkgs/development/libraries/msgpuck/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-     description = "A simple and efficient MsgPack binary serialization library in a self-contained header file";
+     description = "Simple and efficient MsgPack binary serialization library in a self-contained header file";
      homepage = "https://github.com/rtsisyk/msgpuck";
      license = licenses.bsd2;
      platforms = platforms.all;
diff --git a/pkgs/development/libraries/mtxclient/default.nix b/pkgs/development/libraries/mtxclient/default.nix
index 13816faefce9a..dff005d9eb1bc 100644
--- a/pkgs/development/libraries/mtxclient/default.nix
+++ b/pkgs/development/libraries/mtxclient/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , coeurl
@@ -16,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.9.2";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    hash = "sha256-r+bD2L5+3AwkdYa3FwsM+yf7V5w+6ZJC92CMdVeYLJQ=";
+    hash = "sha256-luWcbYCv5OM3aidxiO7glqD+VYnCZMElZYaPKbtvMYI=";
   };
 
   postPatch = ''
@@ -54,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "Client API library for the Matrix protocol.";
+    description = "Client API library for the Matrix protocol";
     homepage = "https://github.com/Nheko-Reborn/mtxclient";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz pstn ];
diff --git a/pkgs/development/libraries/muparserx/default.nix b/pkgs/development/libraries/muparserx/default.nix
index 8a7d2c8f36463..957e49c4d6d77 100644
--- a/pkgs/development/libraries/muparserx/default.nix
+++ b/pkgs/development/libraries/muparserx/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more";
+    description = "C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more";
     homepage = "https://beltoforion.de/en/muparserx/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/libraries/mutest/default.nix b/pkgs/development/libraries/mutest/default.nix
index f8e02b65774c5..63a1628cc40d7 100644
--- a/pkgs/development/libraries/mutest/default.nix
+++ b/pkgs/development/libraries/mutest/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/ebassi/mutest";
-    description = "A BDD testing framework for C, inspired by Mocha";
+    description = "BDD testing framework for C, inspired by Mocha";
     license = licenses.mit;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/mvfst/default.nix b/pkgs/development/libraries/mvfst/default.nix
index 45b432a2dc9e6..0a784fff339ac 100644
--- a/pkgs/development/libraries/mvfst/default.nix
+++ b/pkgs/development/libraries/mvfst/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An implementation of the QUIC transport protocol";
+    description = "Implementation of the QUIC transport protocol";
     homepage = "https://github.com/facebook/mvfst";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix b/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
index 9eca4dbb93688..c2ffe6135fbb5 100644
--- a/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
+++ b/pkgs/development/libraries/nanopb/test-message-with-annotations/default.nix
@@ -1,9 +1,12 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-message-with-annotations";
   meta.timeout = 60;
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [ ./withannotations.proto ];
+  };
 
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
diff --git a/pkgs/development/libraries/nanopb/test-message-with-options/default.nix b/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
index 0030158df91b3..f6bf28f3b6457 100644
--- a/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
+++ b/pkgs/development/libraries/nanopb/test-message-with-options/default.nix
@@ -1,9 +1,15 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-message-with-options";
   meta.timeout = 60;
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./withoptions.proto
+      ./withoptions.options
+    ];
+  };
 
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix b/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
index d1d3e1a855a70..f8cd35cbf3979 100644
--- a/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
+++ b/pkgs/development/libraries/nanopb/test-simple-proto2/default.nix
@@ -1,9 +1,12 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-simple-proto2";
   meta.timeout = 60;
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [ ./simple.proto ];
+  };
 
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
diff --git a/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix b/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
index 71507054458fe..d92698d21ece5 100644
--- a/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
+++ b/pkgs/development/libraries/nanopb/test-simple-proto3/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, protobuf, nanopb }:
+{ lib, stdenv, protobuf, nanopb }:
 
 stdenv.mkDerivation {
   name = "nanopb-test-simple-proto3";
   meta.timeout = 60;
-  src = ./.;
-
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [ ./simple.proto ];
+  };
   # protoc requires any .proto file to be compiled to reside within it's
   # proto_path. By default the current directory is automatically added to the
   # proto_path. I tried using --proto_path ${./.} ${./simple.proto} and it did
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 2d383c876cba4..85bf4bee634e0 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , buildPackages
+, updateAutotoolsGnuConfigScriptsHook
 , ncurses
 , pkg-config
 , abiVersion ? "6"
@@ -13,11 +14,11 @@
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-  version = "6.4";
+  version = "6.4.20221231";
   pname = "ncurses" + lib.optionalString (abiVersion == "5") "-abi5-compat";
 
   src = fetchurl {
-    url = "https://invisible-island.net/archives/ncurses/ncurses-${finalAttrs.version}.tar.gz";
+    url = "https://invisible-island.net/archives/ncurses/ncurses-${lib.versions.majorMinor finalAttrs.version}.tar.gz";
     hash = "sha256-aTEoPZrIfFBz8wtikMTHXyFjK7T8NgOsgQCBK+0kgVk=";
   };
 
@@ -39,7 +40,7 @@ stdenv.mkDerivation (finalAttrs: {
     ++ lib.optionals stdenv.hostPlatform.isWindows [
       "--enable-sp-funcs"
       "--enable-term-driver"
-  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [
+  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && enableStatic) [
       # For static binaries, the point is to have a standalone binary with
       # minimum dependencies. So here we make sure that binaries using this
       # package won't depend on a terminfo database located in the Nix store.
@@ -51,7 +52,16 @@ stdenv.mkDerivation (finalAttrs: {
       ]}"
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     "--with-build-cc=${buildPackages.stdenv.cc}/bin/${buildPackages.stdenv.cc.targetPrefix}cc"
-  ];
+  ] ++ (lib.optionals (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") [
+      # lld17+ passes `--no-undefined-version` by default and makes this a hard
+      # error; ncurses' `resulting.map` version script references symbols that
+      # aren't present.
+      #
+      # See: https://lists.gnu.org/archive/html/bug-ncurses/2024-05/msg00086.html
+      #
+      # For now we allow this with `--undefined-version`:
+      "LDFLAGS=-Wl,--undefined-version"
+  ]);
 
   # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris:
   CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED";
@@ -59,6 +69,7 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
 
   nativeBuildInputs = [
+    updateAutotoolsGnuConfigScriptsHook
     pkg-config
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
    # for `tic`, build already depends on for build `cc` so it's weird the build doesn't just build `tic`.
diff --git a/pkgs/development/libraries/ndi/default.nix b/pkgs/development/libraries/ndi/default.nix
index 06eb1b8150691..b691f2b10afa4 100644
--- a/pkgs/development/libraries/ndi/default.nix
+++ b/pkgs/development/libraries/ndi/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, requireFile, avahi, obs-studio-plugins }:
+{ lib, stdenv, fetchurl, avahi, obs-studio-plugins }:
 
 let
   versionJSON = lib.importJSON ./version.json;
@@ -15,20 +15,10 @@ stdenv.mkDerivation rec {
   majorVersion = builtins.head (builtins.splitVersion version);
   installerName = "Install_NDI_SDK_v${majorVersion}_Linux";
 
-  src = requireFile rec {
-    name    = "${installerName}.tar.gz";
-    sha256  = versionJSON.hash;
-    message = ''
-      In order to use NDI SDK version ${version}, you need to comply with
-      NewTek's license and download the appropriate Linux tarball from:
-
-        ${meta.homepage}
-
-      Once you have downloaded the file, please use the following command and
-      re-run the installation:
-
-        \$ nix-prefetch-url file://\$PWD/${name}
-    '';
+  src = fetchurl {
+    name = "${pname}-${version}.tar.gz";
+    url = "https://downloads.ndi.tv/SDK/NDI_SDK_Linux/${installerName}.tar.gz";
+    hash = versionJSON.hash;
   };
 
   buildInputs = [ avahi ];
@@ -52,6 +42,8 @@ stdenv.mkDerivation rec {
       if [ -L "$i" ]; then continue; fi
       patchelf --set-rpath "${avahi}/lib:${stdenv.cc.libc}/lib" "$i"
     done
+    rm $out/bin/libndi.so.${majorVersion}
+    ln -s $out/lib/libndi.so.${version} $out/bin/libndi.so.${majorVersion}
     mv include examples $out/
     mkdir -p $out/share/doc/${pname}-${version}
     mv licenses $out/share/doc/${pname}-${version}/licenses
diff --git a/pkgs/development/libraries/ndi/version.json b/pkgs/development/libraries/ndi/version.json
index 686abdb2c2b76..1631cd03e8fb3 100644
--- a/pkgs/development/libraries/ndi/version.json
+++ b/pkgs/development/libraries/ndi/version.json
@@ -1 +1 @@
-{"hash": "sha256:4ff4b92f2c5f42d234aa7d142e2de7e9b045c72b46ad5149a459d48efd9218de", "version": "5.6.0"}
+{"hash": "sha256:0wh5bqy9xx08wnfah92pgs4f6xn6mwfyhwdzbhf5ghkbw8pc7z0w", "version": "5.6.1"}
diff --git a/pkgs/development/libraries/ndn-cxx/default.nix b/pkgs/development/libraries/ndn-cxx/default.nix
index d7b31426c4f68..01be5106eca90 100644
--- a/pkgs/development/libraries/ndn-cxx/default.nix
+++ b/pkgs/development/libraries/ndn-cxx/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://named-data.net/";
-    description = "A Named Data Networking (NDN) or Content Centric Networking (CCN) abstraction";
+    description = "Named Data Networking (NDN) or Content Centric Networking (CCN) abstraction";
     longDescription = ''
       ndn-cxx is a C++ library, implementing Named Data Networking (NDN)
       primitives that can be used to implement various NDN applications.
diff --git a/pkgs/development/libraries/ndpi/default.nix b/pkgs/development/libraries/ndpi/default.nix
index 94e249425717b..23eb0945555e8 100644
--- a/pkgs/development/libraries/ndpi/default.nix
+++ b/pkgs/development/libraries/ndpi/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A library for deep-packet inspection";
+    description = "Library for deep-packet inspection";
     longDescription = ''
       nDPI is a library for deep-packet inspection based on OpenDPI.
     '';
diff --git a/pkgs/development/libraries/neatvnc/default.nix b/pkgs/development/libraries/neatvnc/default.nix
index 2680dbd1ae92a..d8b439847ad47 100644
--- a/pkgs/development/libraries/neatvnc/default.nix
+++ b/pkgs/development/libraries/neatvnc/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A VNC server library";
+    description = "VNC server library";
     longDescription = ''
       This is a liberally licensed VNC server library that's intended to be
       fast and neat. Goals:
diff --git a/pkgs/development/libraries/neon/default.nix b/pkgs/development/libraries/neon/default.nix
index cbc8d3207e016..3185ff4158ee9 100644
--- a/pkgs/development/libraries/neon/default.nix
+++ b/pkgs/development/libraries/neon/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   passthru = {inherit compressionSupport sslSupport;};
 
   meta = with lib; {
-    description = "An HTTP and WebDAV client library";
+    description = "HTTP and WebDAV client library";
     mainProgram = "neon-config";
     homepage = "https://notroj.github.io/neon/";
     changelog = "https://github.com/notroj/${pname}/blob/${version}/NEWS";
diff --git a/pkgs/development/libraries/netcdf-fortran/default.nix b/pkgs/development/libraries/netcdf-fortran/default.nix
index 978f906b7adc1..0edc956eee60f 100644
--- a/pkgs/development/libraries/netcdf-fortran/default.nix
+++ b/pkgs/development/libraries/netcdf-fortran/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, netcdf, hdf5, curl, gfortran, CoreFoundation }:
+{ lib, stdenv, fetchFromGitHub, netcdf, hdf5, curl, gfortran, CoreFoundation, CoreServices, SystemConfiguration }:
 stdenv.mkDerivation rec {
   pname = "netcdf-fortran";
   version = "4.4.5";
@@ -12,7 +12,15 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ gfortran ];
   buildInputs = [ netcdf hdf5 curl ]
-    ++ lib.optional stdenv.isDarwin CoreFoundation;
+    ++ lib.optionals stdenv.isDarwin [
+      CoreFoundation
+      CoreServices
+      SystemConfiguration
+    ];
+  env.NIX_LDFLAGS = toString (lib.optionals stdenv.isDarwin [
+    "-F${CoreServices}/Library/Frameworks"
+    "-F${SystemConfiguration}/Library/Frameworks"
+  ]);
   doCheck = true;
 
   FFLAGS = [ "-std=legacy" ];
diff --git a/pkgs/development/libraries/nghttp2/default.nix b/pkgs/development/libraries/nghttp2/default.nix
index 5566b0c8f67df..0fe8f1d88d513 100644
--- a/pkgs/development/libraries/nghttp2/default.nix
+++ b/pkgs/development/libraries/nghttp2/default.nix
@@ -67,6 +67,12 @@ stdenv.mkDerivation rec {
     export TZDIR=${tzdata}/share/zoneinfo
   '';
 
+  # this could be accomplished by updateAutotoolsGnuConfigScriptsHook, but that causes infinite recursion
+  # necessary for FreeBSD code path in configure
+  postPatch = ''
+    substituteInPlace ./config.guess --replace-fail /usr/bin/uname uname
+  '';
+
   postInstall = lib.optionalString (enableApp) ''
     installShellCompletion --bash doc/bash_completion/{h2load,nghttp,nghttpd,nghttpx}
   '' + lib.optionalString (!enableApp) ''
diff --git a/pkgs/development/libraries/nghttp3/default.nix b/pkgs/development/libraries/nghttp3/default.nix
index 849a464b1c0dc..cff650f5971df 100644
--- a/pkgs/development/libraries/nghttp3/default.nix
+++ b/pkgs/development/libraries/nghttp3/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nghttp3";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kJt4aQGNiJ0XhlEKunR8jYKytv3rh23jRrNelCDe/Kk=";
+    hash = "sha256-ZbgByLTkQWd3gfWW2V1kkboblfF9v+0HcNhxrjYpX28=";
     fetchSubmodules = true;
   };
 
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ngtcp2/nghttp3";
-    description = "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C.";
+    description = "nghttp3 is an implementation of HTTP/3 mapping over QUIC and QPACK in C";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ izorkin ];
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
index 6a0e15dfcd9c2..25b35bd72fe47 100644
--- a/pkgs/development/libraries/ngtcp2/default.nix
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.4.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-te/kFt7/09QpmkHZ7dJxyKvvxP+mHtIQIgESkJATR38=";
+    hash = "sha256-alS6M4sSyyytnzu9RTjDAioqkafEmgt/HpFUQ4MniCI=";
     fetchSubmodules = true;
   };
 
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ngtcp2/ngtcp2";
-    description = "ngtcp2 project is an effort to implement QUIC protocol which is now being discussed in IETF QUICWG for its standardization.";
+    description = "ngtcp2 project is an effort to implement QUIC protocol which is now being discussed in IETF QUICWG for its standardization";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ izorkin ];
diff --git a/pkgs/development/libraries/ngtcp2/gnutls.nix b/pkgs/development/libraries/ngtcp2/gnutls.nix
index b52156977411e..5fd52b1f592a1 100644
--- a/pkgs/development/libraries/ngtcp2/gnutls.nix
+++ b/pkgs/development/libraries/ngtcp2/gnutls.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "1.4.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = "ngtcp2";
     rev = "v${version}";
-    hash = "sha256-C1Rk0KzTvFpwCz8vXvhSqGjYmGyLZxmnzZhPLZiL97M=";
+    hash = "sha256-Oaz5LX4R0vriURueQNklZ1dx1r8SWDaeK8oaUadlGtI=";
   };
 
   outputs = [ "out" "dev" ];
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/ngtcp2/ngtcp2";
-    description = "an effort to implement RFC9000 QUIC protocol.";
+    description = "Effort to implement RFC9000 QUIC protocol";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ vcunat/* for knot-dns */ ];
diff --git a/pkgs/development/libraries/npapi-sdk/default.nix b/pkgs/development/libraries/npapi-sdk/default.nix
index 6611f99bdfc28..a61bd0088052a 100644
--- a/pkgs/development/libraries/npapi-sdk/default.nix
+++ b/pkgs/development/libraries/npapi-sdk/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A bundle of NPAPI headers by Mozilla";
+    description = "Bundle of NPAPI headers by Mozilla";
 
     homepage = "https://bitbucket.org/mgorny/npapi-sdk"; # see also https://github.com/mozilla/npapi-sdk
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/npth/default.nix b/pkgs/development/libraries/npth/default.nix
index 1ca747048e332..815c3dff031ec 100644
--- a/pkgs/development/libraries/npth/default.nix
+++ b/pkgs/development/libraries/npth/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "The New GNU Portable Threads Library";
+    description = "New GNU Portable Threads Library";
     mainProgram = "npth-config";
     longDescription = ''
       This is a library to provide the GNU Pth API and thus a non-preemptive
diff --git a/pkgs/development/libraries/nspr/default.nix b/pkgs/development/libraries/nspr/default.nix
index 59a3b49757932..586c4ddb94fc1 100644
--- a/pkgs/development/libraries/nspr/default.nix
+++ b/pkgs/development/libraries/nspr/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Reference/NSPR_functions";
+    homepage = "https://firefox-source-docs.mozilla.org/nspr/index.html";
     description = "Netscape Portable Runtime, a platform-neutral API for system-level and libc-like functions";
     maintainers = with maintainers; [ ajs124 hexa ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/nss/generic.nix b/pkgs/development/libraries/nss/generic.nix
index cab8a0ff2bc10..b0a633869abc7 100644
--- a/pkgs/development/libraries/nss/generic.nix
+++ b/pkgs/development/libraries/nss/generic.nix
@@ -187,7 +187,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS";
-    description = "A set of libraries for development of security-enabled client and server applications";
+    description = "Set of libraries for development of security-enabled client and server applications";
     changelog = "https://github.com/nss-dev/nss/blob/master/doc/rst/releases/nss_${underscoreVersion}.rst";
     maintainers = with maintainers; [ hexa ajs124 ];
     license = licenses.mpl20;
diff --git a/pkgs/development/libraries/nss/latest.nix b/pkgs/development/libraries/nss/latest.nix
index 8ac5a3b23a850..3f45d2e39c79a 100644
--- a/pkgs/development/libraries/nss/latest.nix
+++ b/pkgs/development/libraries/nss/latest.nix
@@ -5,6 +5,6 @@
 #       Example: nix-shell ./maintainers/scripts/update.nix --argstr package cacert
 
 import ./generic.nix {
-  version = "3.99";
-  hash = "sha256-6JocWJpA+VjEPZOxmD74toyEBLOTzCxSWUzrxPi52bU=";
+  version = "3.101";
+  hash = "sha256-lO+81zYBBFwqcjh4cd/fpiznHZ9rTJpfDW/yF8phYts=";
 }
diff --git a/pkgs/development/libraries/nss_wrapper/default.nix b/pkgs/development/libraries/nss_wrapper/default.nix
index 8faa50f83b725..3c1a2b33b18f0 100644
--- a/pkgs/development/libraries/nss_wrapper/default.nix
+++ b/pkgs/development/libraries/nss_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A wrapper for the user, group and hosts NSS API";
+    description = "Wrapper for the user, group and hosts NSS API";
     mainProgram = "nss_wrapper.pl";
     homepage = "https://git.samba.org/?p=nss_wrapper.git;a=summary;";
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/nsync/default.nix b/pkgs/development/libraries/nsync/default.nix
index a984058e9b10f..e188e8a0e01df 100644
--- a/pkgs/development/libraries/nsync/default.nix
+++ b/pkgs/development/libraries/nsync/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nsync";
-  version = "1.26.0";
+  version = "1.28.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
     rev = version;
-    hash = "sha256-pE9waDI+6LQwbyPJ4zROoF93Vt6+SETxxJ/UxeZE5WE=";
+    hash = "sha256-PAUgT1SoMiPMA4MH8zHxBtTFdg8Jn6H+w0HA64i2vPk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/ntbtls/default.nix b/pkgs/development/libraries/ntbtls/default.nix
index bdc2a919613c2..e04d2ae435374 100644
--- a/pkgs/development/libraries/ntbtls/default.nix
+++ b/pkgs/development/libraries/ntbtls/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A tiny TLS 1.2 only implementation";
+    description = "Tiny TLS 1.2 only implementation";
     mainProgram = "ntbtls-config";
     homepage = "https://www.gnupg.org/software/ntbtls/";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/libraries/ntirpc/default.nix b/pkgs/development/libraries/ntirpc/default.nix
index 39acba13d73e1..5ae6380849c8f 100644
--- a/pkgs/development/libraries/ntirpc/default.nix
+++ b/pkgs/development/libraries/ntirpc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ntirpc";
-  version = "5.0";
+  version = "5.8";
 
   src = fetchFromGitHub {
     owner = "nfs-ganesha";
     repo = "ntirpc";
     rev = "v${version}";
-    sha256 = "sha256-xqnfo07EHwendzibIz187vdaenHwxg078D6zJvoyewc=";
+    sha256 = "sha256-t9InlnlwVts9mlrH8sHaaTYSrjJKlkFlGs1YCmZzjdE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/ntl/default.nix b/pkgs/development/libraries/ntl/default.nix
index 8fa37141628cc..776608c4ad961 100644
--- a/pkgs/development/libraries/ntl/default.nix
+++ b/pkgs/development/libraries/ntl/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   doCheck = true; # takes some time
 
   meta = with lib; {
-    description = "A Library for doing Number Theory";
+    description = "Library for doing Number Theory";
     longDescription = ''
       NTL is a high-performance, portable C++ library providing data
       structures and algorithms for manipulating signed, arbitrary
diff --git a/pkgs/development/libraries/numcpp/default.nix b/pkgs/development/libraries/numcpp/default.nix
index 6b0b0304d4238..b8dea0f3662b8 100644
--- a/pkgs/development/libraries/numcpp/default.nix
+++ b/pkgs/development/libraries/numcpp/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: {
   NIX_CFLAGS_COMPILE="-Wno-error";
 
   meta = with lib; {
-    description = "A Templatized Header Only C++ Implementation of the Python NumPy Library";
+    description = "Templatized Header Only C++ Implementation of the Python NumPy Library";
     homepage = "https://github.com/dpilger26/NumCpp";
     license = licenses.mit;
     maintainers = with maintainers; [spalf];
diff --git a/pkgs/development/libraries/nvidia-vaapi-driver/default.nix b/pkgs/development/libraries/nvidia-vaapi-driver/default.nix
index 60ef649ec5ad3..92f447a32422e 100644
--- a/pkgs/development/libraries/nvidia-vaapi-driver/default.nix
+++ b/pkgs/development/libraries/nvidia-vaapi-driver/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvidia-vaapi-driver";
-  version = "0.0.11";
+  version = "0.0.12";
 
   src = fetchFromGitHub {
     owner = "elFarto";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mVVRpCyT374P1Vql0yPY0e5tNktHNJ8XHoixvxp3b20=";
+    sha256 = "sha256-ETdHbPI3rZR4026rOT5K9/pjKTZxD5+RioKzUVGMwsA=";
   };
 
   patches = [
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib;{
     homepage = "https://github.com/elFarto/nvidia-vaapi-driver";
-    description = "A VA-API implemention using NVIDIA's NVDEC";
+    description = "VA-API implemention using NVIDIA's NVDEC";
     changelog = "https://github.com/elFarto/nvidia-vaapi-driver/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers;[ nickcao ];
diff --git a/pkgs/development/libraries/octomap/default.nix b/pkgs/development/libraries/octomap/default.nix
index 8321028508a61..af668d279e27a 100644
--- a/pkgs/development/libraries/octomap/default.nix
+++ b/pkgs/development/libraries/octomap/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A probabilistic, flexible, and compact 3D mapping library for robotic systems";
+    description = "Probabilistic, flexible, and compact 3D mapping library for robotic systems";
     homepage = "https://octomap.github.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix
index 890170c28808b..93db5470b0f73 100644
--- a/pkgs/development/libraries/ogre/default.nix
+++ b/pkgs/development/libraries/ogre/default.nix
@@ -112,9 +112,9 @@ let
 in
 {
   ogre_14 = common {
-    version = "14.2.4";
-    hash = "sha256-Gr72KNjxZPZtFrgsbevPYiVog/fQNvJHvQEH0WA2DW4=";
-    # https://github.com/OGRECave/ogre/blob/v14.2.2/Components/Overlay/CMakeLists.txt
+    version = "14.2.6";
+    hash = "sha256-kxvrRigSe6sPa3lAH+6zKTY4YEU9javlKHK8Zf6jxZE=";
+    # https://github.com/OGRECave/ogre/blob/v14.2.5/Components/Overlay/CMakeLists.txt
     imguiVersion = "1.90.4";
     imguiHash = "sha256-7+Ay7H97tIO6CUsEyaQv4i9q2FCw98eQUq/KYZyfTAw=";
   };
diff --git a/pkgs/development/libraries/oneDNN/default.nix b/pkgs/development/libraries/oneDNN/default.nix
index 1fcf4a1f00e2a..639ff62887a0b 100644
--- a/pkgs/development/libraries/oneDNN/default.nix
+++ b/pkgs/development/libraries/oneDNN/default.nix
@@ -9,13 +9,13 @@
 # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
 stdenv.mkDerivation (finalAttrs: {
   pname = "oneDNN";
-  version = "3.4.1";
+  version = "3.4.3";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "oneDNN";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-6iPcytsRWvDn2hg5tkSG6A3cv/aOhmEVd5rS2uOKCPk=";
+    hash = "sha256-Ak49oFZkWNVjt98KXKqBGwKh7nz13/FO5riY7MIDR8g=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/onnxruntime/default.nix b/pkgs/development/libraries/onnxruntime/default.nix
index 43a7f79504739..b3117364984e9 100644
--- a/pkgs/development/libraries/onnxruntime/default.nix
+++ b/pkgs/development/libraries/onnxruntime/default.nix
@@ -15,7 +15,7 @@
 , re2
 , zlib
 , microsoft-gsl
-, iconv
+, libiconv
 , protobuf_21
 , pythonSupport ? true
 , cudaSupport ? config.cudaSupport
@@ -138,7 +138,7 @@ effectiveStdenv.mkDerivation rec {
     packaging
   ]) ++ lib.optionals effectiveStdenv.isDarwin [
     Foundation
-    iconv
+    libiconv
   ] ++ lib.optionals cudaSupport (with cudaPackages; [
     cuda_cccl # cub/cub.cuh
     libcublas # cublas_v2.h
diff --git a/pkgs/development/libraries/open62541/default.nix b/pkgs/development/libraries/open62541/default.nix
deleted file mode 100644
index 0ddc010deb65a..0000000000000
--- a/pkgs/development/libraries/open62541/default.nix
+++ /dev/null
@@ -1,163 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, pkg-config
-, check
-, libxcrypt
-, subunit
-, python3Packages
-, nix-update-script
-
-, withDoc ? false
-, graphviz-nox
-
-, withExamples ? false
-
-, withEncryption ? false # or "openssl" or "mbedtls"
-, openssl
-, mbedtls
-
-, withPubSub ? false
-
-# for passthru.tests only
-, open62541
-}:
-
-let
-  encryptionBackend = {
-    inherit openssl mbedtls;
-  }."${withEncryption}" or (throw "Unsupported encryption backend: ${withEncryption}");
-in
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "open62541";
-  version = "1.3.10";
-
-  src = fetchFromGitHub {
-    owner = "open62541";
-    repo = "open62541";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-FekO0cKgpYulMXz4r0/TUPz2tawC4k3Sq07Og4xqh4I=";
-    fetchSubmodules = true;
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "Ensure-absolute-paths-in-pkg-config-file.patch";
-      url = "https://github.com/open62541/open62541/commit/023d4b6b8bdec987f8f3ffee6c09801bbee4fa2d.patch";
-      sha256 = "sha256-mq4h32js2RjI0Ljown/01SXA3gc+7+zX8meIcvDPvoA=";
-    })
-  ];
-
-  cmakeFlags = [
-    "-DOPEN62541_VERSION=v${finalAttrs.version}"
-
-    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
-    "-DUA_NAMESPACE_ZERO=FULL"
-
-    "-DUA_BUILD_UNIT_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}"
-  ]
-  ++ lib.optional withExamples "-DUA_BUILD_EXAMPLES=ON"
-  ++ lib.optional (withEncryption != false)
-    "-DUA_ENABLE_ENCRYPTION=${lib.toUpper withEncryption}"
-  ++ lib.optional withPubSub "-DUA_ENABLE_PUBSUB=ON"
-  ;
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-    python3Packages.python
-  ]
-  ++ lib.optionals withDoc (with python3Packages; [
-    sphinx
-    sphinx_rtd_theme
-    graphviz-nox
-  ]);
-
-  buildInputs = lib.optional (withEncryption != false) encryptionBackend;
-
-  buildFlags = [ "all" ] ++ lib.optional withDoc "doc";
-
-  doCheck = true;
-
-  checkInputs = [
-    check
-    libxcrypt
-    subunit
-  ];
-
-  # Tests must run sequentially to avoid port collisions on localhost
-  enableParallelChecking = false;
-
-  preCheck = let
-    disabledTests = lib.optionals withPubSub [
-      # "Cannot set socket option IP_ADD_MEMBERSHIP"
-      "pubsub_publish"
-      "check_pubsub_get_state"
-      "check_pubsub_publish_rt_levels"
-      "check_pubsub_subscribe_config_freeze"
-      "check_pubsub_subscribe_rt_levels"
-      "check_pubsub_multiple_subscribe_rt_levels"
-    ];
-    regex = "^(${builtins.concatStringsSep "|" disabledTests})\$";
-  in lib.optionalString (disabledTests != []) ''
-    checkFlagsArray+=(ARGS="-E ${lib.escapeRegex regex}")
-  '';
-
-  postInstall = lib.optionalString withDoc ''
-    # excluded files, see doc/CMakeLists.txt
-    rm -r doc/{_sources/,CMakeFiles/,cmake_install.cmake}
-
-    # doc is not installed automatically
-    mkdir -p $out/share/doc/open62541
-    cp -r doc/ $out/share/doc/open62541/html
-  '' + lib.optionalString withExamples ''
-    # install sources of examples
-    mkdir -p $out/share/open62541
-    cp -r ../examples $out/share/open62541
-
-    ${lib.optionalString (!stdenv.hostPlatform.isWindows) ''
-    # remove .exe suffix
-    mv -v $out/bin/ua_server_ctt.exe $out/bin/ua_server_ctt
-    ''}
-
-    # remove duplicate libraries in build/bin/, which cause forbidden
-    # references to /build/ in ua_server_ctt
-    rm -r bin/libopen62541*
-  '';
-
-  passthru.updateScript = nix-update-script { };
-
-  passthru.tests = let
-    open62541Full = encBackend: open62541.override {
-      withDoc = true;
-      # if (withExamples && withPubSub), one of the example currently fails to build
-      #withExamples = true;
-      withEncryption = encBackend;
-      withPubSub = true;
-    };
-  in {
-    open62541Full = open62541Full false;
-    open62541Full-openssl = open62541Full "openssl";
-    open62541Full-mbedtls = open62541Full "mbedtls";
-  };
-
-  meta = with lib; {
-    description = "Open source implementation of OPC UA";
-    longDescription = ''
-      open62541 (http://open62541.org) is an open source and free implementation
-      of OPC UA (OPC Unified Architecture) written in the common subset of the
-      C99 and C++98 languages.
-      The library is usable with all major compilers and provides the necessary
-      tools to implement dedicated OPC UA clients and servers, or to integrate
-      OPC UA-based communication into existing applications.
-    '';
-    homepage = "https://www.open62541.org";
-    changelog = "https://github.com/open62541/open62541/releases/tag/v${finalAttrs.version}";
-    license = licenses.mpl20;
-    maintainers = with maintainers; [ panicgh ];
-    platforms = platforms.linux;
-  };
-})
diff --git a/pkgs/development/libraries/openbabel/2.nix b/pkgs/development/libraries/openbabel/2.nix
index 0cc752d993fb2..b27960779cad0 100644
--- a/pkgs/development/libraries/openbabel/2.nix
+++ b/pkgs/development/libraries/openbabel/2.nix
@@ -25,10 +25,12 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib libxml2 eigen python3 cairo pcre ];
 
+  cmakeFlags = [ "-DCMAKE_CXX_STANDARD=14" ];
+
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A toolbox designed to speak the many languages of chemical data";
+    description = "Toolbox designed to speak the many languages of chemical data";
     homepage = "http://openbabel.org";
     platforms = platforms.all;
     maintainers = with maintainers; [ danielbarter ];
diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix
index f472f7b06364a..0030b1cfa1713 100644
--- a/pkgs/development/libraries/openbabel/default.nix
+++ b/pkgs/development/libraries/openbabel/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A toolbox designed to speak the many languages of chemical data";
+    description = "Toolbox designed to speak the many languages of chemical data";
     homepage = "http://openbabel.org";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/openbsm/default.nix b/pkgs/development/libraries/openbsm/default.nix
index 627e9b830714c..f30fcac869f17 100644
--- a/pkgs/development/libraries/openbsm/default.nix
+++ b/pkgs/development/libraries/openbsm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "ac_cv_file__usr_include_mach_audit_triggers_defs=no" ];
 
   meta = {
-    description = "An implementation of Sun's Basic Security Module (BSM) security audit API and file format";
+    description = "Implementation of Sun's Basic Security Module (BSM) security audit API and file format";
     homepage = "http://www.openbsm.org/";
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ matthewbauer ];
diff --git a/pkgs/development/libraries/opencascade-occt/default.nix b/pkgs/development/libraries/opencascade-occt/default.nix
index 2a8d49d9d1348..a09cacaf39286 100644
--- a/pkgs/development/libraries/opencascade-occt/default.nix
+++ b/pkgs/development/libraries/opencascade-occt/default.nix
@@ -1,20 +1,43 @@
-{ lib, stdenv, fetchurl, fetchpatch, cmake, ninja, tcl, tk,
-  libGL, libGLU, libXext, libXmu, libXi, darwin }:
+{ lib
+, stdenv
+, fetchurl
+, cmake
+, ninja
+, tcl
+, tk
+, libGL
+, libGLU
+, libXext
+, libXmu
+, libXi
+, darwin
+}:
 
 stdenv.mkDerivation rec {
   pname = "opencascade-occt";
-  version = "7.6.2";
+  version = "7.8.1";
   commit = "V${builtins.replaceStrings ["."] ["_"] version}";
 
   src = fetchurl {
     name = "occt-${commit}.tar.gz";
     url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
-    sha256 = "sha256-n3KFrN/mN1SVXfuhEUAQ1fJzrCvhiclxfEIouyj9Z18=";
+    hash = "sha256-AGMZqTLLjXbzJFW/RSTsohAGV8sMxlUmdU/Y2oOzkk8=";
   };
 
-  nativeBuildInputs = [ cmake ninja ];
-  buildInputs = [ tcl tk libGL libGLU libXext libXmu libXi ]
-    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
+  nativeBuildInputs = [
+    cmake
+    ninja
+  ];
+
+  buildInputs = [
+    tcl
+    tk
+    libGL
+    libGLU
+    libXext
+    libXmu
+    libXi
+  ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa;
 
   meta = with lib; {
     description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
diff --git a/pkgs/development/libraries/opencl-clang/default.nix b/pkgs/development/libraries/opencl-clang/default.nix
index 70b80e3a84ddc..1c90cc386733f 100644
--- a/pkgs/development/libraries/opencl-clang/default.nix
+++ b/pkgs/development/libraries/opencl-clang/default.nix
@@ -109,7 +109,7 @@ stdenv.mkDerivation {
 
   meta = with lib; {
     homepage = "https://github.com/intel/opencl-clang/";
-    description = "A clang wrapper library with an OpenCL-oriented API and the ability to compile OpenCL C kernels to SPIR-V modules";
+    description = "Clang wrapper library with an OpenCL-oriented API and the ability to compile OpenCL C kernels to SPIR-V modules";
     license = licenses.ncsa;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/opencollada/default.nix b/pkgs/development/libraries/opencollada/default.nix
index d822050c08a21..bee15715fcfcc 100644
--- a/pkgs/development/libraries/opencollada/default.nix
+++ b/pkgs/development/libraries/opencollada/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A library for handling the COLLADA file format";
+    description = "Library for handling the COLLADA file format";
     homepage = "https://github.com/KhronosGroup/OpenCOLLADA/";
     maintainers = [ lib.maintainers.eelco ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/opencolorio/1.x.nix b/pkgs/development/libraries/opencolorio/1.x.nix
index 0355b99774489..61ce9cff661ae 100644
--- a/pkgs/development/libraries/opencolorio/1.x.nix
+++ b/pkgs/development/libraries/opencolorio/1.x.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://opencolorio.org";
-    description = "A color management framework for visual effects and animation";
+    description = "Color management framework for visual effects and animation";
     license = licenses.bsd3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/opencolorio/default.nix b/pkgs/development/libraries/opencolorio/default.nix
index a5661d6e44e65..d5270b655ca1e 100644
--- a/pkgs/development/libraries/opencolorio/default.nix
+++ b/pkgs/development/libraries/opencolorio/default.nix
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://opencolorio.org";
-    description = "A color management framework for visual effects and animation";
+    description = "Color management framework for visual effects and animation";
     license = licenses.bsd3;
     maintainers = [ maintainers.rytone ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/opencv/3.x.nix b/pkgs/development/libraries/opencv/3.x.nix
index 5e9409368cc70..adb6532bd6825 100644
--- a/pkgs/development/libraries/opencv/3.x.nix
+++ b/pkgs/development/libraries/opencv/3.x.nix
@@ -1,6 +1,5 @@
 { lib, stdenv
 , fetchFromGitHub
-, fetchpatch
 , callPackage
 , cmake, pkg-config, unzip, zlib, pcre, hdf5
 , glog, boost, gflags, protobuf_21
@@ -16,7 +15,7 @@
 , enableContrib   ? true
 
 , enableCuda      ? config.cudaSupport
-, cudaPackages ? { }
+, cudaPackages
 , enableUnfree    ? false
 , enableIpp       ? false
 , enablePython    ? false, pythonPackages ? null
@@ -296,6 +295,8 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = "https://opencv.org/";
+    # OpenCV 3 won't build with CUDA 12+
+    broken = enableCuda && cudaPackages.cudaAtLeast "12";
     license = with licenses; if enableUnfree then unfree else bsd3;
     maintainers = with maintainers; [mdaiter basvandijk];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/opencv/4.x.nix b/pkgs/development/libraries/opencv/4.x.nix
index 2f24d984c062b..a4961163c9ad3 100644
--- a/pkgs/development/libraries/opencv/4.x.nix
+++ b/pkgs/development/libraries/opencv/4.x.nix
@@ -80,6 +80,12 @@
 , doxygen
 , graphviz-nox
 
+, runAccuracyTests ? true
+, runPerformanceTests ? false
+# Modules to enable via BUILD_LIST to build a customized opencv.
+# An empty lists means this setting is ommited which matches upstreams default.
+, enabledModules ? [ ]
+
 , AVFoundation
 , Cocoa
 , VideoDecodeAcceleration
@@ -234,8 +240,6 @@ let
 
   opencvFlag = name: enabled: "-DWITH_${name}=${printEnabled enabled}";
 
-  runAccuracyTests = true;
-  runPerformanceTests = false;
   printEnabled = enabled: if enabled then "ON" else "OFF";
   withOpenblas = (enableBlas && blas.provider.pname == "openblas");
   #multithreaded openblas conflicts with opencv multithreading, which manifest itself in hung tests
@@ -254,6 +258,7 @@ effectiveStdenv.mkDerivation {
   outputs = [
     "out"
     "cxxdev"
+  ] ++ lib.optionals (runAccuracyTests || runPerformanceTests) [
     "package_tests"
   ];
   cudaPropagateToOutput = "cxxdev";
@@ -479,6 +484,8 @@ effectiveStdenv.mkDerivation {
     "-DOPENCL_LIBRARY=${ocl-icd}/lib/libOpenCL.so"
   ] ++ lib.optionals enablePython [
     "-DOPENCV_SKIP_PYTHON_LOADER=ON"
+  ] ++ lib.optionals (enabledModules != [ ]) [
+    "-DBUILD_LIST=${lib.concatStringsSep "," enabledModules}"
   ];
 
   postBuild = lib.optionalString enableDocs ''
diff --git a/pkgs/development/libraries/opendht/default.nix b/pkgs/development/libraries/opendht/default.nix
index 7209c2d2e2535..3bd5c76e56920 100644
--- a/pkgs/development/libraries/opendht/default.nix
+++ b/pkgs/development/libraries/opendht/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opendht";
-  version = "3.1.4";
+  version = "3.1.11";
 
   src = fetchFromGitHub {
     owner = "savoirfairelinux";
     repo = "opendht";
     rev = "v${version}";
-    hash = "sha256-KtsQ25uStmlf7RZLAcabhPMyGbxKxvpR6Vm632+EBvw=";
+    hash = "sha256-lJaQGkhpKfSSNVbP+NqommagtoWyi8CdauVxEhiI9Bc=";
   };
 
   nativeBuildInputs = [
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "lib" "dev" "man" ];
 
   meta = with lib; {
-    description = "A C++11 Kademlia distributed hash table implementation";
+    description = "C++11 Kademlia distributed hash table implementation";
     homepage = "https://github.com/savoirfairelinux/opendht";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ taeer olynch thoughtpolice ];
diff --git a/pkgs/development/libraries/opendmarc/default.nix b/pkgs/development/libraries/opendmarc/default.nix
index 5a61af6c4dba8..d8af86b6cdb57 100644
--- a/pkgs/development/libraries/opendmarc/default.nix
+++ b/pkgs/development/libraries/opendmarc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free open source software implementation of the DMARC specification";
+    description = "Free open source software implementation of the DMARC specification";
     homepage = "http://www.trusteddomain.org/opendmarc/";
     license = with licenses; [ bsd3 sendmail ];
     maintainers = teams.helsinki-systems.members;
diff --git a/pkgs/development/libraries/openexr/3.nix b/pkgs/development/libraries/openexr/3.nix
index 074fdf4222d3e..9e6d6eaa65da9 100644
--- a/pkgs/development/libraries/openexr/3.nix
+++ b/pkgs/development/libraries/openexr/3.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A high dynamic-range (HDR) image file format";
+    description = "High dynamic-range (HDR) image file format";
     homepage = "https://www.openexr.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ paperdigits ];
diff --git a/pkgs/development/libraries/openexr/default.nix b/pkgs/development/libraries/openexr/default.nix
index 6d45ca33e982c..b45557b95c1b2 100644
--- a/pkgs/development/libraries/openexr/default.nix
+++ b/pkgs/development/libraries/openexr/default.nix
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
   doCheck = !stdenv.isAarch32 && !stdenv.isi686;
 
   meta = with lib; {
-    description = "A high dynamic-range (HDR) image file format";
+    description = "High dynamic-range (HDR) image file format";
     homepage = "https://www.openexr.com/";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/openfec/default.nix b/pkgs/development/libraries/openfec/default.nix
index dd6b0ce10c0b0..35ce5806aea77 100644
--- a/pkgs/development/libraries/openfec/default.nix
+++ b/pkgs/development/libraries/openfec/default.nix
@@ -20,10 +20,13 @@ stdenv.mkDerivation rec {
     cmake
   ];
 
-  cmakeFlags = [ "-DDEBUG:STRING=OFF" ];
+  cmakeFlags = [
+    "-DDEBUG:STRING=OFF"
+    (lib.cmakeBool "BUILD_STATIC_LIBS" stdenv.hostPlatform.isStatic)
+  ];
 
   installPhase =
-    let so = stdenv.hostPlatform.extensions.sharedLibrary;
+    let so = stdenv.hostPlatform.extensions.library;
     in ''
       # This is pretty horrible but sadly there is not installation procedure
       # provided.
diff --git a/pkgs/development/libraries/openimagedenoise/default.nix b/pkgs/development/libraries/openimagedenoise/default.nix
index e2d9b66004ed6..ad68505ad609f 100644
--- a/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/pkgs/development/libraries/openimagedenoise/default.nix
@@ -3,34 +3,54 @@
   config,
   cudaPackages,
   cudaSupport ? config.cudaSupport,
+  darwin,
   fetchzip,
   ispc,
   lib,
   python3,
   stdenv,
   tbb,
+  xcodebuild,
 }:
 
-stdenv.mkDerivation rec {
+let
+  stdenv' = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+in
+stdenv'.mkDerivation (finalAttrs: {
   pname = "openimagedenoise";
   version = "2.2.2";
 
   # The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
   src = fetchzip {
-    url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${version}/oidn-${version}.src.tar.gz";
+    url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${finalAttrs.version}/oidn-${finalAttrs.version}.src.tar.gz";
     sha256 = "sha256-ZIrs4oEb+PzdMh2x2BUFXKyu/HBlFb3CJX24ciEHy3Q=";
   };
 
   patches = lib.optional cudaSupport ./cuda.patch;
 
+  postPatch =
+    ''
+      substituteInPlace devices/metal/CMakeLists.txt \
+        --replace-fail "AppleClang" "Clang"
+    '';
+
   nativeBuildInputs = [
     cmake
     python3
     ispc
-  ] ++ lib.optional cudaSupport cudaPackages.cuda_nvcc;
+  ] ++ lib.optional cudaSupport cudaPackages.cuda_nvcc
+    ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
 
   buildInputs =
     [ tbb ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk_11_0.frameworks;
+      [
+        Accelerate
+        MetalKit
+        MetalPerformanceShadersGraph
+      ]
+    )
     ++ lib.optionals cudaSupport [
       cudaPackages.cuda_cudart
       cudaPackages.cuda_cccl
@@ -50,4 +70,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     changelog = "https://github.com/OpenImageDenoise/oidn/blob/v${version}/CHANGELOG.md";
   };
-}
+})
diff --git a/pkgs/development/libraries/openimageio/default.nix b/pkgs/development/libraries/openimageio/default.nix
index 7d2e78794d8a0..3d2dc9b8f0e73 100644
--- a/pkgs/development/libraries/openimageio/default.nix
+++ b/pkgs/development/libraries/openimageio/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://openimageio.org";
-    description = "A library and tools for reading and writing images";
+    description = "Library and tools for reading and writing images";
     license = licenses.bsd3;
     maintainers = with maintainers; [ goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index aa04ff683bfd4..266b6900934ea 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -133,7 +133,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.openldap.org/";
-    description = "An open source implementation of the Lightweight Directory Access Protocol";
+    description = "Open source implementation of the Lightweight Directory Access Protocol";
     license = licenses.openldap;
     maintainers = with maintainers; [ hexa ] ++ teams.helsinki-systems.members;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/openpam/default.nix b/pkgs/development/libraries/openpam/default.nix
index 3d1cff05a0859..9f7f1b7bf4153 100644
--- a/pkgs/development/libraries/openpam/default.nix
+++ b/pkgs/development/libraries/openpam/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.openpam.org";
-    description = "An open source PAM library that focuses on simplicity, correctness, and cleanliness";
+    description = "Open source PAM library that focuses on simplicity, correctness, and cleanliness";
     platforms = platforms.unix;
     maintainers = with maintainers; [ matthewbauer ];
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/opensaml-cpp/default.nix b/pkgs/development/libraries/opensaml-cpp/default.nix
index 7e44f2a50eebb..5e7de98efc461 100644
--- a/pkgs/development/libraries/opensaml-cpp/default.nix
+++ b/pkgs/development/libraries/opensaml-cpp/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchgit, autoreconfHook, pkg-config
-, boost, openssl, log4shib, xercesc, xml-security-c, xml-tooling-c, zlib
+, darwin, boost, openssl, log4shib, xercesc, xml-security-c, xml-tooling-c, zlib
 }:
 
 stdenv.mkDerivation rec {
@@ -14,7 +14,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     boost openssl log4shib xercesc xml-security-c xml-tooling-c zlib
-  ];
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+    CoreServices
+    SystemConfiguration
+  ]);
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   configureFlags = [ "--with-xmltooling=${xml-tooling-c}" ];
@@ -25,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage    = "https://shibboleth.net/products/opensaml-cpp.html";
-    description = "A low-level library written in C++ that provides support for producing and consuming SAML messages";
+    description = "Low-level library written in C++ that provides support for producing and consuming SAML messages";
     mainProgram = "samlsign";
     platforms   = platforms.unix;
     license     = licenses.asl20;
diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix
index 05a5591035760..3566e458598c5 100644
--- a/pkgs/development/libraries/openscenegraph/default.nix
+++ b/pkgs/development/libraries/openscenegraph/default.nix
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = lib.optional (!withApps) "-DBUILD_OSG_APPLICATIONS=OFF" ++ lib.optional withExamples "-DBUILD_OSG_EXAMPLES=ON";
 
   meta = with lib; {
-    description = "A 3D graphics toolkit";
+    description = "3D graphics toolkit";
     homepage = "http://www.openscenegraph.org/";
     maintainers = with maintainers; [ aanderse raskin ];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/openslide/default.nix b/pkgs/development/libraries/openslide/default.nix
index 71c2017f9e5a5..cc0b5ed98c615 100644
--- a/pkgs/development/libraries/openslide/default.nix
+++ b/pkgs/development/libraries/openslide/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://openslide.org";
-    description = "A C library that provides a simple interface to read whole-slide images.";
+    description = "C library that provides a simple interface to read whole-slide images";
     license = licenses.lgpl21;
     platforms = platforms.unix;
     maintainers = with maintainers; [ lromor ];
diff --git a/pkgs/development/libraries/openslp/default.nix b/pkgs/development/libraries/openslp/default.nix
index 6e03138adfae3..e390cfd932fdd 100644
--- a/pkgs/development/libraries/openslp/default.nix
+++ b/pkgs/development/libraries/openslp/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.openslp.org/";
-    description = "An open-source implementation of the IETF Service Location Protocol";
+    description = "Open-source implementation of the IETF Service Location Protocol";
     maintainers = with maintainers; [ ttuegel ];
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/openssl/default.nix b/pkgs/development/libraries/openssl/default.nix
index 359ed2832d24d..361756f94ea90 100644
--- a/pkgs/development/libraries/openssl/default.nix
+++ b/pkgs/development/libraries/openssl/default.nix
@@ -221,7 +221,7 @@ let
     meta = with lib; {
       homepage = "https://www.openssl.org/";
       changelog = "https://github.com/openssl/openssl/blob/openssl-${version}/CHANGES.md";
-      description = "A cryptographic library that implements the SSL and TLS protocols";
+      description = "Cryptographic library that implements the SSL and TLS protocols";
       license = licenses.openssl;
       mainProgram = "openssl";
       maintainers = with maintainers; [ thillux ];
@@ -237,6 +237,8 @@ let
 in {
   # intended version "policy":
   # - 1.1 as long as some package exists, which does not build without it
+  #   (tracking issue: https://github.com/NixOS/nixpkgs/issues/269713)
+  #   try to remove in 24.05 for the first time, if possible then
   # - latest 3.x LTS
   # - latest 3.x non-LTS as preview/for development
   #
@@ -245,7 +247,7 @@ in {
 
   # If you do upgrade here, please update in pkgs/top-level/release.nix
   # the permitted insecure version to ensure it gets cached for our users
-  # and backport this to stable release (23.05).
+  # and backport this to stable release (at time of writing this 23.11).
   openssl_1_1 = common {
     version = "1.1.1w";
     hash = "sha256-zzCYlQy02FOtlcCEHx+cbT3BAtzPys1SHZOSUgi3asg=";
@@ -259,7 +261,7 @@ in {
     withDocs = true;
     extraMeta = {
       knownVulnerabilities = [
-        "OpenSSL 1.1 is reaching its end of life on 2023/09/11 and cannot be supported through the NixOS 23.05 release cycle. https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/"
+        "OpenSSL 1.1 is reaching its end of life on 2023/09/11 and cannot be supported through the NixOS 23.11 release cycle. https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/"
       ];
     };
   };
diff --git a/pkgs/development/libraries/opensubdiv/default.nix b/pkgs/development/libraries/opensubdiv/default.nix
index 3ed10ef270f97..0cf848ac44b77 100644
--- a/pkgs/development/libraries/opensubdiv/default.nix
+++ b/pkgs/development/libraries/opensubdiv/default.nix
@@ -78,7 +78,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An Open-Source subdivision surface library";
+    description = "Open-Source subdivision surface library";
     homepage = "http://graphics.pixar.com/opensubdiv";
     broken = openclSupport && cudaSupport;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/openturns/default.nix b/pkgs/development/libraries/openturns/default.nix
deleted file mode 100644
index a2fa42caea609..0000000000000
--- a/pkgs/development/libraries/openturns/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, swig
-, boost
-, spectra
-, libxml2
-, tbb
-, hmat-oss
-, nlopt
-, cminpack
-, ceres-solver
-, dlib
-, hdf5
-, primesieve
-, pagmo2
-, ipopt
-, Accelerate
-# tests take an hour to build on a 48-core machine
-, runTests ? false
-, enablePython ? false
-, python3Packages
-}:
-
-stdenv.mkDerivation rec {
-  pname = "openturns";
-  version = "1.22";
-
-  src = fetchFromGitHub {
-    owner = "openturns";
-    repo = "openturns";
-    rev = "v${version}";
-    sha256 = "sha256-ku3/mPoa1YJVJB99R/kWlOubIO+OZAiKfPqS/DrtJQk=";
-  };
-
-  nativeBuildInputs = [ cmake ] ++ lib.optional enablePython python3Packages.sphinx;
-  buildInputs = [
-    swig
-    boost
-    spectra
-    libxml2
-    tbb
-    hmat-oss
-    nlopt
-    cminpack
-    ceres-solver
-    dlib
-    hdf5
-    primesieve
-    pagmo2
-    ipopt
-  ] ++ lib.optionals enablePython [
-    python3Packages.python
-    python3Packages.matplotlib
-    python3Packages.psutil
-    python3Packages.dill
-  ] ++ lib.optional stdenv.isDarwin Accelerate;
-
-  cmakeFlags = [
-    "-DOPENTURNS_SYSCONFIG_PATH=$out/etc"
-    "-DCMAKE_UNITY_BUILD=ON"
-    "-DCMAKE_UNITY_BUILD_BATCH_SIZE=32"
-    "-DSWIG_COMPILE_FLAGS='-O1'"
-    "-DUSE_SPHINX=${if enablePython then "ON" else "OFF"}"
-    "-DBUILD_PYTHON=${if enablePython then "ON" else "OFF"}"
-  ];
-
-  doCheck = runTests;
-
-  checkTarget = "tests check";
-
-  meta = with lib; {
-    description = "Multivariate probabilistic modeling and uncertainty treatment library";
-    license = with licenses; [ lgpl3 gpl3 ];
-    homepage = "https://openturns.github.io/www/";
-    changelog = "https://github.com/openturns/openturns/raw/v${version}/ChangeLog";
-    maintainers = with maintainers; [ gdinh ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/openvdb/default.nix b/pkgs/development/libraries/openvdb/default.nix
index 5af5a27f34f50..2b1fca97f06e2 100644
--- a/pkgs/development/libraries/openvdb/default.nix
+++ b/pkgs/development/libraries/openvdb/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec
 
   buildInputs = [ boost tbb jemalloc c-blosc zlib ];
 
-  cmakeFlags = [ "-DOPENVDB_CORE_STATIC=OFF" ];
+  cmakeFlags = [ "-DOPENVDB_CORE_STATIC=OFF" "-DOPENVDB_BUILD_NANOVDB=ON"];
 
   # error: aligned deallocation function of type 'void (void *, std::align_val_t) noexcept' is only available on macOS 10.13 or newer
   env = lib.optionalAttrs (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13" && lib.versionAtLeast tbb.version "2021.8.0") {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec
   '';
 
   meta = with lib; {
-    description = "An open framework for voxel";
+    description = "Open framework for voxel";
     mainProgram = "vdb_print";
     homepage = "https://www.openvdb.org";
     maintainers = [ maintainers.guibou ];
diff --git a/pkgs/development/libraries/openvino/default.nix b/pkgs/development/libraries/openvino/default.nix
index a4ce0fe60c1e7..14ad6c166e551 100644
--- a/pkgs/development/libraries/openvino/default.nix
+++ b/pkgs/development/libraries/openvino/default.nix
@@ -5,6 +5,7 @@
 , cudaSupport ? opencv.cudaSupport or false
 
 # build
+, scons
 , addOpenGLRunpath
 , autoPatchelfHook
 , cmake
@@ -17,6 +18,7 @@
 
 # runtime
 , flatbuffers
+, level-zero
 , libusb1
 , libxml2
 , ocl-icd
@@ -24,7 +26,7 @@
 , protobuf
 , pugixml
 , snappy
-, tbb
+, tbb_2021_5
 , cudaPackages
 }:
 
@@ -35,6 +37,9 @@ let
 
   stdenv = gcc12Stdenv;
 
+  # prevent scons from leaking in the default python version
+  scons' = scons.override { python3 = python3Packages.python; };
+
   tbbbind_version = "2_5";
   tbbbind = fetchurl {
     url = "https://storage.openvinotoolkit.org/dependencies/thirdparty/linux/tbbbind_${tbbbind_version}_static_lin_v4.tgz";
@@ -53,14 +58,14 @@ in
 
 stdenv.mkDerivation rec {
   pname = "openvino";
-  version = "2024.0.0";
+  version = "2024.2.0";
 
   src = fetchFromGitHub {
     owner = "openvinotoolkit";
     repo = "openvino";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    hash = "sha256-Xsrmc1EynkjgPgiQ+ESyVJRJT9Afqyob0/uH+Is4TYA=";
+    hash = "sha256-HiKKvmqgbwW625An+Su0EOHqVrP18yvG2aOzrS0jWr4=";
   };
 
   outputs = [
@@ -77,6 +82,7 @@ stdenv.mkDerivation rec {
     patchelf
     pkg-config
     python
+    scons'
     shellcheck
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_nvcc
@@ -90,7 +96,9 @@ stdenv.mkDerivation rec {
     popd
   '';
 
-  dontUseCmakeBuildDir = true;
+  dontUseSconsCheck = true;
+  dontUseSconsBuild = true;
+  dontUseSconsInstall = true;
 
   cmakeFlags = [
     "-Wno-dev"
@@ -108,7 +116,7 @@ stdenv.mkDerivation rec {
     (cmakeBool "ENABLE_SAMPLES" false)
 
     # features
-    (cmakeBool "ENABLE_INTEL_CPU" true)
+    (cmakeBool "ENABLE_INTEL_CPU" stdenv.isx86_64)
     (cmakeBool "ENABLE_JS" false)
     (cmakeBool "ENABLE_LTO" true)
     (cmakeBool "ENABLE_ONEDNN_FOR_GPU" false)
@@ -124,21 +132,20 @@ stdenv.mkDerivation rec {
     (cmakeBool "ENABLE_SYSTEM_TBB" true)
   ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isAarch64 "-Wno-narrowing";
-
   autoPatchelfIgnoreMissingDeps = [
     "libngraph_backend.so"
   ];
 
   buildInputs = [
     flatbuffers
+    level-zero
     libusb1
     libxml2
     ocl-icd
     opencv.cxxdev
     pugixml
     snappy
-    tbb
+    tbb_2021_5
   ] ++ lib.optionals cudaSupport [
     cudaPackages.cuda_cudart
   ];
@@ -170,8 +177,7 @@ stdenv.mkDerivation rec {
     homepage = "https://docs.openvinotoolkit.org/";
     license = with licenses; [ asl20 ];
     platforms = platforms.all;
-    broken = (stdenv.isLinux && stdenv.isAarch64) # requires scons, then fails with *** Source directory cannot be under variant directory.
-      || stdenv.isDarwin; # Cannot find macos sdk
+    broken = stdenv.isDarwin; # Cannot find macos sdk
     maintainers = with maintainers; [ tfmoraes ];
   };
 }
diff --git a/pkgs/development/libraries/openvr/default.nix b/pkgs/development/libraries/openvr/default.nix
deleted file mode 100644
index 5bdb10549001f..0000000000000
--- a/pkgs/development/libraries/openvr/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ AppKit
-, cmake
-, fetchFromGitHub
-, fetchpatch2
-, Foundation
-, jsoncpp
-, lib
-, libGL
-, stdenv
-}:
-
-stdenv.mkDerivation (finalAttrs: {
-  pname = "openvr";
-  version = "2.2.3";
-
-  src = fetchFromGitHub {
-    owner = "ValveSoftware";
-    repo = "openvr";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-Dpl88Te+EoVasoCtwERGrYt3xK8o03h15r8IVxxPPCw=";
-  };
-
-  patches = [
-    # https://github.com/ValveSoftware/openvr/pull/594
-    (fetchpatch2 {
-      name = "use-correct-CPP11-definition-for-vsprintf_s.patch";
-      url = "https://github.com/ValveSoftware/openvr/commit/0fa21ba17748efcca1816536e27bdca70141b074.patch";
-      hash = "sha256-0sPNDx5qKqCzN35FfArbgJ0cTztQp+SMLsXICxneLx4=";
-    })
-    # https://github.com/ValveSoftware/openvr/pull/1716
-    (fetchpatch2 {
-      name = "add-ability-to-build-with-system-installed-jsoncpp.patch";
-      url = "https://github.com/ValveSoftware/openvr/commit/54a58e479f4d63e62e9118637cd92a2013a4fb95.patch";
-      hash = "sha256-aMojjbNjLvsGev0JaBx5sWuMv01sy2tG/S++I1NUi7U=";
-    })
-  ];
-
-  postUnpack = ''
-    # Move in-tree jsoncpp out to complement the patch above
-    # fetchpatch2 is not able to handle these renames
-    mkdir source/thirdparty
-    mv source/src/json source/thirdparty/jsoncpp
-  '';
-
-  nativeBuildInputs = [
-    cmake
-  ];
-
-  buildInputs = [
-    jsoncpp
-    libGL
-  ] ++ lib.optionals stdenv.isDarwin [
-    AppKit
-    Foundation
-  ];
-
-  cmakeFlags = [ "-DUSE_SYSTEM_JSONCPP=ON" "-DBUILD_SHARED=1" ];
-
-  meta = {
-    broken = stdenv.isDarwin;
-    description = "An API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting";
-    homepage = "https://github.com/ValveSoftware/openvr";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ Scrumplex ];
-    platforms = lib.platforms.unix;
-  };
-})
diff --git a/pkgs/development/libraries/openxr-loader/default.nix b/pkgs/development/libraries/openxr-loader/default.nix
index ec4c327d784b4..f153d7f2f18b6 100644
--- a/pkgs/development/libraries/openxr-loader/default.nix
+++ b/pkgs/development/libraries/openxr-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openxr-loader";
-  version = "1.1.36";
+  version = "1.1.37";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "sha256-Ki2tp8a67AjIMIGDpWWqCnpMmeZpJ8uPezKE2KWrOjA=";
+    sha256 = "sha256-J9IfhTFFSY+rK0DqFdXtINo7nlGUcy2Lljq81T417qc=";
   };
 
   nativeBuildInputs = [ cmake python3 pkg-config ];
diff --git a/pkgs/development/libraries/openzwave/default.nix b/pkgs/development/libraries/openzwave/default.nix
index 07fe1db829253..f45eacfd157f8 100644
--- a/pkgs/development/libraries/openzwave/default.nix
+++ b/pkgs/development/libraries/openzwave/default.nix
@@ -4,28 +4,15 @@
 
 stdenv.mkDerivation rec {
   pname = "openzwave";
-  version = "1.6";
+  version = "1.6-unstable-2022-11-17";
 
   src = fetchFromGitHub {
     owner = "OpenZWave";
     repo = "open-zwave";
-    rev = "v${version}";
-    sha256 = "0xgs4mmr0480c269wx9xkk67ikjzxkh8xcssrdx0f5xcl1lyd333";
+    rev = "3fff11d246a0d558d26110e1db6bd634a1b347c0";
+    hash = "sha256-CLK2MeoTmZ8GMKb1OAZFNLyc4C+k+REK2w+WQxZv0/E=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-strncat-build-failure.patch";
-      url = "https://github.com/OpenZWave/open-zwave/commit/601e5fb16232a7984885e67fdddaf5b9c9dd8105.patch";
-      sha256 = "1n1k5arwk1dyc12xz6xl4n8yw28vghzhv27j65z1nca4zqsxgza1";
-    })
-    (fetchpatch {
-      name = "fix-text-uninitialized.patch";
-      url = "https://github.com/OpenZWave/open-zwave/commit/3b029a467e83bc7f0054e4dbba1e77e6eac7bc7f.patch";
-      sha256 = "183mrzjh1zx2b2wzkj4jisiw8br7g7bbs167afls4li0fm01d638";
-    })
-  ];
-
   outputs = [ "out" "doc" ];
 
   nativeBuildInputs = [ doxygen fontconfig graphviz-nox libxml2 pkg-config which ];
@@ -46,6 +33,8 @@ stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace cpp/src/Options.cpp \
       --replace /etc/openzwave $out/etc/openzwave
+    substituteInPlace cpp/build/Makefile  \
+      --replace "-Werror" "-Werror -Wno-format"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/ortp/default.nix b/pkgs/development/libraries/ortp/default.nix
index 3c61e7b5c9d99..9940ec12ab70d 100644
--- a/pkgs/development/libraries/ortp/default.nix
+++ b/pkgs/development/libraries/ortp/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A Real-Time Transport Protocol (RFC3550) stack. Part of the Linphone project.";
+    description = "Real-Time Transport Protocol (RFC3550) stack. Part of the Linphone project";
     mainProgram = "ortp_tester";
     homepage = "https://linphone.org/technical-corner/ortp";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/libraries/osip/default.nix b/pkgs/development/libraries/osip/default.nix
index f7cedc96b7c72..d552bedaa4f91 100644
--- a/pkgs/development/libraries/osip/default.nix
+++ b/pkgs/development/libraries/osip/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   meta = {
     license = lib.licenses.lgpl21Plus;
     homepage = "https://www.gnu.org/software/osip/";
-    description = "The GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
+    description = "GNU oSIP library, an implementation of the Session Initiation Protocol (SIP)";
     maintainers = with lib.maintainers; [ raskin ];
     platforms = lib.platforms.all;
   };
diff --git a/pkgs/development/libraries/p11-kit/default.nix b/pkgs/development/libraries/p11-kit/default.nix
index ab9bfcbc1d97e..32ee1dced38e8 100644
--- a/pkgs/development/libraries/p11-kit/default.nix
+++ b/pkgs/development/libraries/p11-kit/default.nix
@@ -9,7 +9,6 @@
 , docbook-xsl-nons
 , docbook_xml_dtd_43
 , gettext
-, mesonEmulatorHook
 , libffi
 , libintl
 }:
@@ -39,10 +38,6 @@ stdenv.mkDerivation rec {
     docbook-xsl-nons
     docbook_xml_dtd_43
     gettext
-  ] ++ lib.optionals
-    (!stdenv.buildPlatform.canExecute stdenv.hostPlatform
-      && !stdenv.hostPlatform.isMinGW) [
-    mesonEmulatorHook
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/packr/default.nix b/pkgs/development/libraries/packr/default.nix
index 1a5bacad59f87..43822d76aa197 100644
--- a/pkgs/development/libraries/packr/default.nix
+++ b/pkgs/development/libraries/packr/default.nix
@@ -23,7 +23,7 @@ let p2 = buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The simple and easy way to embed static files into Go binaries";
+    description = "Simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
@@ -55,7 +55,7 @@ p1 = buildGoModule rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The simple and easy way to embed static files into Go binaries";
+    description = "Simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 34288773705a6..d91552e3799a5 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pango";
-  version = "1.51.2";
+  version = "1.52.2";
 
   outputs = [ "bin" "out" "dev" ] ++ lib.optional withIntrospection "devdoc";
 
   src = fetchurl {
     url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PbpAfytfwRfhkvMCXwocyO3B/ZuTSxxXiyuXNCE5QVo=";
+    hash = "sha256-0Adq/gEIKBS4U97smfk0ns5fLOg5CLjlj/c2tB94qWs=";
   };
 
   depsBuildBuild = [
@@ -106,7 +106,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A library for laying out and rendering of text, with an emphasis on internationalization";
+    description = "Library for laying out and rendering of text, with an emphasis on internationalization";
 
     longDescription = ''
       Pango is a library for laying out and rendering of text, with an
diff --git a/pkgs/development/libraries/pangolin/default.nix b/pkgs/development/libraries/pangolin/default.nix
index 5e8ec502a65fc..c96bf713af8c9 100644
--- a/pkgs/development/libraries/pangolin/default.nix
+++ b/pkgs/development/libraries/pangolin/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
 
   meta = {
-    description = "A lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input";
+    description = "Lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input";
     longDescription = ''
       Pangolin is a lightweight portable rapid development library for managing
       OpenGL display / interaction and abstracting video input. At its heart is
diff --git a/pkgs/development/libraries/pangomm/2.48.nix b/pkgs/development/libraries/pangomm/2.48.nix
index 0e8bbe80dd843..fa4148e06aa02 100644
--- a/pkgs/development/libraries/pangomm/2.48.nix
+++ b/pkgs/development/libraries/pangomm/2.48.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pangomm";
-  version= "2.50.2";
+  version= "2.52.0";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-G8WrTqMoBEJYDWgxgibas2zu38Moj52DcRz3z6tQqfs=";
+    hash = "sha256-NKE0EmpkhP8S93Q1jDbsxE0OnfCU4bg3ltl3S7fSSUc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/parson/default.nix b/pkgs/development/libraries/parson/default.nix
index 6ba47491ecb47..3ee5c73290a19 100644
--- a/pkgs/development/libraries/parson/default.nix
+++ b/pkgs/development/libraries/parson/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/kgabis/parson";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/libraries/pcg-c/default.nix b/pkgs/development/libraries/pcg-c/default.nix
index 04aa6c7afbc92..ced4e04c0b876 100644
--- a/pkgs/development/libraries/pcg-c/default.nix
+++ b/pkgs/development/libraries/pcg-c/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "A family of better random number generators";
+    description = "Family of better random number generators";
     homepage = "https://www.pcg-random.org/";
     license = lib.licenses.asl20;
     longDescription = ''
diff --git a/pkgs/development/libraries/pcmsolver/default.nix b/pkgs/development/libraries/pcmsolver/default.nix
index d17c806700f46..c2924426f8bb4 100644
--- a/pkgs/development/libraries/pcmsolver/default.nix
+++ b/pkgs/development/libraries/pcmsolver/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An API for the Polarizable Continuum Model";
+    description = "API for the Polarizable Continuum Model";
     mainProgram = "run_pcm";
     homepage = "https://pcmsolver.readthedocs.io/en/stable/";
     license = licenses.lgpl3Only;
diff --git a/pkgs/development/libraries/pcre/default.nix b/pkgs/development/libraries/pcre/default.nix
index 52219152845ba..52a4ba32315ee 100644
--- a/pkgs/development/libraries/pcre/default.nix
+++ b/pkgs/development/libraries/pcre/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl
+{ lib, stdenv, fetchurl, fetchpatch
 , pcre, windows ? null
 , variant ? null
 }:
@@ -25,8 +25,17 @@ stdenv.mkDerivation rec {
   ]
     ++ lib.optional (variant != null) "--enable-${variant}";
 
-  # https://bugs.exim.org/show_bug.cgi?id=2173
-  patches = [ ./stacksize-detection.patch ];
+  patches = [
+    # https://bugs.exim.org/show_bug.cgi?id=2173
+    ./stacksize-detection.patch
+
+    # Fix segfaults & tests on powerpc64
+    (fetchpatch {
+      name = "sljit-ppc-icache-flush.patch";
+      url = "https://github.com/void-linux/void-packages/raw/d286e231ee680875ad8e80f90ea62e46f5edd812/srcpkgs/pcre/patches/ppc-icache-flush.patch";
+      hash = "sha256-pttmKwihLzKrAV6O4qVLp2pu4NwNJEFS/9Id8/b3nAU=";
+    })
+  ];
 
   preCheck = ''
     patchShebangs RunGrepTest
@@ -44,7 +53,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.pcre.org/";
-    description = "A library for Perl Compatible Regular Expressions";
+    description = "Library for Perl Compatible Regular Expressions";
     license = lib.licenses.bsd3;
 
     longDescription = ''
diff --git a/pkgs/development/libraries/pcre2/default.nix b/pkgs/development/libraries/pcre2/default.nix
index 23234c40e3f89..3450f910effef 100644
--- a/pkgs/development/libraries/pcre2/default.nix
+++ b/pkgs/development/libraries/pcre2/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , withJitSealloc ? true
 }:
 
@@ -13,6 +14,8 @@ stdenv.mkDerivation rec {
     hash = "sha256-4qU5hP8LB9/bWuRIa7ubIcyo598kNAlsyb8bcow1C8s=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   postPatch = ''
     # Fix jit autodetection:
     #   https://github.com/PCRE2Project/pcre2/pull/396
@@ -27,7 +30,7 @@ stdenv.mkDerivation rec {
     "--enable-pcre2-16"
     "--enable-pcre2-32"
     # only enable jit on supported platforms which excludes Apple Silicon, see https://github.com/zherczeg/sljit/issues/51
-    "--enable-jit=${if stdenv.hostPlatform.isS390x then "no" else "auto"}"
+    "--enable-jit=${if stdenv.hostPlatform.isS390x || stdenv.hostPlatform.isLoongArch64 then "no" else "auto"}"
   ]
   # fix pcre jit in systemd units that set MemoryDenyWriteExecute=true like gitea
   ++ lib.optional withJitSealloc "--enable-jit-sealloc";
diff --git a/pkgs/development/libraries/pdal/default.nix b/pkgs/development/libraries/pdal/default.nix
index 86d976531cb37..c035460fafae7 100644
--- a/pkgs/development/libraries/pdal/default.nix
+++ b/pkgs/development/libraries/pdal/default.nix
@@ -10,7 +10,7 @@
 , curl
 , gdal
 , hdf5-cpp
-, LASzip
+, laszip
 , libe57format
 , libgeotiff
 , libtiff
@@ -45,7 +45,7 @@ stdenv.mkDerivation (finalAttrs: {
     curl
     gdal
     hdf5-cpp
-    LASzip
+    laszip
     libgeotiff
     libtiff
     libxml2
@@ -87,6 +87,12 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   disabledTests = [
+    # Failing due to GDAL 3.9 change in coordinates precision.
+    # See: https://github.com/PDAL/PDAL/issues/4403
+    # This test should be re-enabled once https://github.com/PDAL/PDAL/pull/4411
+    # is merged !
+    "pdal_io_ogr_writer_test"
+
     # Tests failing due to TileDB library implementation, disabled also
     # by upstream CI.
     # See: https://github.com/PDAL/PDAL/blob/bc46bc77f595add4a6d568a1ff923d7fe20f7e74/.github/workflows/linux.yml#L81
diff --git a/pkgs/development/libraries/pdfhummus/default.nix b/pkgs/development/libraries/pdfhummus/default.nix
index bfba4ad096202..13869dba89dab 100644
--- a/pkgs/development/libraries/pdfhummus/default.nix
+++ b/pkgs/development/libraries/pdfhummus/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfhummus";
-  version = "4.6.3";
+  version = "4.6.4";
 
   src = fetchFromGitHub {
     owner = "galkahana";
     repo = "PDF-Writer";
     rev = "v${version}";
-    hash = "sha256-6Hp5hacMpVdsiUvMSXBQ5432tPrkHSOiVoWa91sv38k=";
+    hash = "sha256-7VltECiXQY+6M5EE17SKj0KwLk0+gOJfbLqprafIgLQ=";
   };
 
   nativeBuildInputs = [
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "A Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams";
+    description = "Fast and Free C++ Library for Creating, Parsing an Manipulating PDF Files and Streams";
     homepage = "https://www.pdfhummus.com";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/pe-parse/default.nix b/pkgs/development/libraries/pe-parse/default.nix
index 7560f2297cfad..1a3a602d55278 100644
--- a/pkgs/development/libraries/pe-parse/default.nix
+++ b/pkgs/development/libraries/pe-parse/default.nix
@@ -13,13 +13,17 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isClang [
+    "-Wno-error=deprecated-declarations"
+  ]);
+
   doInstallCheck = true;
   installCheckPhase = ''
     $out/bin/dump-pe ../tests/assets/example.exe
   '';
 
   meta = with lib; {
-    description = "A principled, lightweight parser for Windows portable executable files";
+    description = "Principled, lightweight parser for Windows portable executable files";
     homepage = "https://github.com/trailofbits/pe-parse";
     changelog = "https://github.com/trailofbits/pe-parse/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/physics/apfel/default.nix b/pkgs/development/libraries/physics/apfel/default.nix
index e1192cdcd05eb..da403af44b9bf 100644
--- a/pkgs/development/libraries/physics/apfel/default.nix
+++ b/pkgs/development/libraries/physics/apfel/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
   env.NIX_CFLAGS_COMPILE = "-DAPFEL_VERSION=${version}";
 
   meta = with lib; {
-    description = "A PDF Evolution Library";
+    description = "PDF Evolution Library";
     homepage = "https://apfel.mi.infn.it/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/libraries/physics/applgrid/default.nix b/pkgs/development/libraries/physics/applgrid/default.nix
index 105a6b4953f77..c2dbb1235b487 100644
--- a/pkgs/development/libraries/physics/applgrid/default.nix
+++ b/pkgs/development/libraries/physics/applgrid/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "The APPLgrid project provides a fast and flexible way to reproduce the results of full NLO calculations with any input parton distribution set in only a few milliseconds rather than the weeks normally required to gain adequate statistics";
+    description = "APPLgrid project provides a fast and flexible way to reproduce the results of full NLO calculations with any input parton distribution set in only a few milliseconds rather than the weeks normally required to gain adequate statistics";
     license     = licenses.gpl3;
     homepage    = "http://applgrid.hepforge.org";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/physics/fastjet/default.nix b/pkgs/development/libraries/physics/fastjet/default.nix
index a4c01dd6ecf30..f00b527ad408e 100644
--- a/pkgs/development/libraries/physics/fastjet/default.nix
+++ b/pkgs/development/libraries/physics/fastjet/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A software package for jet finding in pp and e+e− collisions";
+    description = "Software package for jet finding in pp and e+e− collisions";
     mainProgram = "fastjet-config";
     license     = lib.licenses.gpl2Plus;
     homepage    = "http://fastjet.fr/";
diff --git a/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix b/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix
index 66a3bf5128f5d..3c781689bbf83 100644
--- a/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix
+++ b/pkgs/development/libraries/physics/fastnlo-toolkit/default.nix
@@ -60,6 +60,10 @@ stdenv.mkDerivation rec {
   '';
   enableParallelChecking = false;
 
+  # None of our currently packaged versions of swig are C++17-friendly
+  # Use a workaround from https://github.com/swig/swig/issues/1538
+  env.CXXFLAGS="-D_LIBCPP_ENABLE_CXX17_REMOVED_FEATURES";
+
   meta = with lib; {
     homepage = "http://fastnlo.hepforge.org";
     description = "Fast pQCD calculations for hadron-induced processes";
diff --git a/pkgs/development/libraries/physics/geant4/default.nix b/pkgs/development/libraries/physics/geant4/default.nix
index 9dcaea8be041a..3b67b6a3756ed 100644
--- a/pkgs/development/libraries/physics/geant4/default.nix
+++ b/pkgs/development/libraries/physics/geant4/default.nix
@@ -9,7 +9,7 @@
 , enableRaytracerX11   ? false
 
 # Standard build environment with cmake.
-, lib, stdenv, fetchurl, fetchpatch, cmake
+, lib, stdenv, fetchurl, cmake
 
 , clhep
 , expat
@@ -129,7 +129,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "A toolkit for the simulation of the passage of particles through matter";
+    description = "Toolkit for the simulation of the passage of particles through matter";
     longDescription = ''
       Geant4 is a toolkit for the simulation of the passage of particles through matter.
       Its areas of application include high energy, nuclear and accelerator physics, as well as studies in medical and space science.
diff --git a/pkgs/development/libraries/physics/hepmc2/default.nix b/pkgs/development/libraries/physics/hepmc2/default.nix
index e2ab42c418a09..870114ffcba48 100644
--- a/pkgs/development/libraries/physics/hepmc2/default.nix
+++ b/pkgs/development/libraries/physics/hepmc2/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
+    description = "HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
     license     = licenses.lgpl21;
     homepage    = "http://hepmc.web.cern.ch/hepmc/";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/physics/hepmc3/default.nix b/pkgs/development/libraries/physics/hepmc3/default.nix
index 9d2eab6e7f15b..53ee798c17b6d 100644
--- a/pkgs/development/libraries/physics/hepmc3/default.nix
+++ b/pkgs/development/libraries/physics/hepmc3/default.nix
@@ -16,11 +16,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "hepmc3";
-  version = "3.2.7";
+  version = "3.3.0";
 
   src = fetchurl {
     url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC3-${version}.tar.gz";
-    sha256 = "sha256-WH+qZVbMVMzYmtNUIUYbR2HXgJvBei5y9QNNrqFCIys=";
+    sha256 = "sha256-b4dgke3PfubQwNsE4IAFbonvwaYavmI1XZfOjnNXadY=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   '';
 
   cmakeFlags = [
+    "-DHEPMC3_CXX_STANDARD=17"
     "-DHEPMC3_ENABLE_PYTHON=${if withPython then "ON" else "OFF"}"
   ] ++ lib.optionals withPython [
     "-DHEPMC3_PYTHON_VERSIONS=${if python.isPy3k then "3.X" else "2.X"}"
@@ -54,7 +55,7 @@ stdenv.mkDerivation rec {
   pythonImportsCheck = [ "pyHepMC3" ];
 
   meta = with lib; {
-    description = "The HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
+    description = "HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
     mainProgram = "HepMC3-config";
     license = licenses.gpl3;
     homepage = "http://hepmc.web.cern.ch/hepmc/";
diff --git a/pkgs/development/libraries/physics/herwig/default.nix b/pkgs/development/libraries/physics/herwig/default.nix
index c5849f93c5e31..ef7ce7ce586de 100644
--- a/pkgs/development/libraries/physics/herwig/default.nix
+++ b/pkgs/development/libraries/physics/herwig/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A multi-purpose particle physics event generator";
+    description = "Multi-purpose particle physics event generator";
     homepage = "https://herwig.hepforge.org/";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/libraries/physics/lhapdf/default.nix b/pkgs/development/libraries/physics/lhapdf/default.nix
index 0482846f077af..8111f61684305 100644
--- a/pkgs/development/libraries/physics/lhapdf/default.nix
+++ b/pkgs/development/libraries/physics/lhapdf/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A general purpose interpolator, used for evaluating Parton Distribution Functions from discretised data files";
+    description = "General purpose interpolator, used for evaluating Parton Distribution Functions from discretised data files";
     license     = licenses.gpl2;
     homepage    = "http://lhapdf.hepforge.org";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/physics/mela/default.nix b/pkgs/development/libraries/physics/mela/default.nix
index 701fd149e45ec..a478a972c9566 100644
--- a/pkgs/development/libraries/physics/mela/default.nix
+++ b/pkgs/development/libraries/physics/mela/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "a Mellin Evolution LibrAry";
+    description = "Mellin Evolution LibrAry";
     mainProgram = "mela-config";
     license     = licenses.gpl3;
     homepage    = "https://github.com/vbertone/MELA";
diff --git a/pkgs/development/libraries/physics/nlojet/default.nix b/pkgs/development/libraries/physics/nlojet/default.nix
index c477f98ae7b94..4e2d878db00cd 100644
--- a/pkgs/development/libraries/physics/nlojet/default.nix
+++ b/pkgs/development/libraries/physics/nlojet/default.nix
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
     ./nlojet_clang_fix.patch
   ];
 
+  env.CXXFLAGS="-std=c++11";
+
   # error: no member named 'finite' in the global namespace; did you mean simply 'finite'?
   env.NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) "-Dfinite=isfinite";
 
diff --git a/pkgs/development/libraries/physics/pythia/default.nix b/pkgs/development/libraries/physics/pythia/default.nix
index 52138a8d50eaa..0eb45943e0aa9 100644
--- a/pkgs/development/libraries/physics/pythia/default.nix
+++ b/pkgs/development/libraries/physics/pythia/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A program for the generation of high-energy physics events";
+    description = "Program for the generation of high-energy physics events";
     mainProgram = "pythia8-config";
     license = licenses.gpl2Only;
     homepage = "https://pythia.org";
diff --git a/pkgs/development/libraries/physics/qcdnum/default.nix b/pkgs/development/libraries/physics/qcdnum/default.nix
index fdb79250ed3f9..565a0c317cd85 100644
--- a/pkgs/development/libraries/physics/qcdnum/default.nix
+++ b/pkgs/development/libraries/physics/qcdnum/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = {
-    description = "A very fast QCD evolution program written in FORTRAN77";
+    description = "Very fast QCD evolution program written in FORTRAN77";
     mainProgram = "qcdnum-config";
     license     = lib.licenses.gpl3;
     homepage    = "https://www.nikhef.nl/~h24/qcdnum/index.html";
diff --git a/pkgs/development/libraries/physics/rivet/default.nix b/pkgs/development/libraries/physics/rivet/default.nix
index a59b34147a9f4..c8db0fb22d0ee 100644
--- a/pkgs/development/libraries/physics/rivet/default.nix
+++ b/pkgs/development/libraries/physics/rivet/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }:
+{ lib, stdenv, fetchurl, fastjet, fastjet-contrib, ghostscript, hepmc, imagemagick, less, python3, rsync, texliveBasic, yoda, which, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "rivet";
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A framework for comparison of experimental measurements from high-energy particle colliders to theory predictions";
+    description = "Framework for comparison of experimental measurements from high-energy particle colliders to theory predictions";
     license     = licenses.gpl3;
     homepage    = "https://rivet.hepforge.org";
     platforms   = platforms.unix;
diff --git a/pkgs/development/libraries/pinocchio/default.nix b/pkgs/development/libraries/pinocchio/default.nix
index add7ef6fde22e..9432722647cac 100644
--- a/pkgs/development/libraries/pinocchio/default.nix
+++ b/pkgs/development/libraries/pinocchio/default.nix
@@ -4,7 +4,10 @@
 , cmake
 , boost
 , eigen
+, example-robot-data
 , collisionSupport ? !stdenv.isDarwin
+, console-bridge
+, jrl-cmakemodules
 , hpp-fcl
 , urdfdom
 , pythonSupport ? false
@@ -13,16 +16,28 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "pinocchio";
-  version = "2.7.0";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    fetchSubmodules = true;
-    hash = "sha256-yhrG+MilGJkvwLUNTAgNhDqUWGjPswjrbg38yOLsmHc=";
+    hash = "sha256-h4NzfS27+jWyHbegxF+pgN6JzJdVAoM16J6G/9uNJc4=";
   };
 
+  # test failure, ref https://github.com/stack-of-tasks/pinocchio/issues/2277
+  prePatch = lib.optionalString (stdenv.isLinux && stdenv.isAarch64) ''
+    substituteInPlace unittest/algorithm/utils/CMakeLists.txt \
+      --replace-fail "add_pinocchio_unit_test(force)" ""
+  '';
+
+  # example-robot-data models are used in checks.
+  # Upstream provide them as git submodule, but we can use our own version instead.
+  postPatch = ''
+    rmdir models/example-robot-data
+    ln -s ${example-robot-data.src} models/example-robot-data
+  '';
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -30,6 +45,8 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   propagatedBuildInputs = [
+    console-bridge
+    jrl-cmakemodules
     urdfdom
   ] ++ lib.optionals (!pythonSupport) [
     boost
@@ -43,15 +60,13 @@ stdenv.mkDerivation (finalAttrs: {
     python3Packages.hpp-fcl
   ];
 
-  cmakeFlags = lib.optionals collisionSupport [
-    "-DBUILD_WITH_COLLISION_SUPPORT=ON"
-  ] ++ lib.optionals pythonSupport [
-    "-DBUILD_WITH_LIBPYTHON=ON"
+  cmakeFlags = [
+    (lib.cmakeBool "BUILD_PYTHON_INTERFACE" pythonSupport)
+    (lib.cmakeBool "BUILD_WITH_LIBPYTHON" pythonSupport)
+    (lib.cmakeBool "BUILD_WITH_COLLISION_SUPPORT" collisionSupport)
   ] ++ lib.optionals (pythonSupport && stdenv.isDarwin) [
     # AssertionError: '.' != '/tmp/nix-build-pinocchio-2.7.0.drv/sou[84 chars].dae'
     "-DCMAKE_CTEST_ARGUMENTS='--exclude-regex;test-py-bindings_geometry_model_urdf'"
-  ] ++ lib.optionals (!pythonSupport) [
-    "-DBUILD_PYTHON_INTERFACE=OFF"
   ];
 
   doCheck = true;
@@ -60,11 +75,11 @@ stdenv.mkDerivation (finalAttrs: {
     "pinocchio"
   ];
 
-  meta = with lib; {
-    description = "A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives";
+  meta = {
+    description = "Fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives";
     homepage = "https://github.com/stack-of-tasks/pinocchio";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ nim65s wegank ];
-    platforms = platforms.unix;
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ nim65s wegank ];
+    platforms = lib.platforms.unix;
   };
 })
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 48f2dec6b89bc..c3532d93683d9 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -4,7 +4,6 @@
 , python3
 , meson
 , ninja
-, eudev
 , systemd
 , enableSystemd ? true
 , pkg-config
@@ -66,7 +65,7 @@
 , xorg
 , mysofaSupport ? true
 , libmysofa
-, ffadoSupport ? x11Support && stdenv.buildPlatform.canExecute stdenv.hostPlatform
+, ffadoSupport ? x11Support && lib.systems.equals stdenv.buildPlatform stdenv.hostPlatform
 , ffado
 , libselinux
 }:
@@ -76,7 +75,7 @@ assert ldacbtSupport -> bluezSupport;
 
 stdenv.mkDerivation(finalAttrs: {
   pname = "pipewire";
-  version = "1.0.5";
+  version = "1.0.7";
 
   outputs = [
     "out"
@@ -92,7 +91,7 @@ stdenv.mkDerivation(finalAttrs: {
     owner = "pipewire";
     repo = "pipewire";
     rev = finalAttrs.version;
-    sha256 = "sha256-lgrwN83eywMKdsm0ig9QATDt3U5RboJ4kyILE+ts9Ts=";
+    sha256 = "sha256-YzI+hkX1ZdeTfxuKaw5P9OYPtkWtUg9cNo32wLCgjNU=";
   };
 
   patches = [
@@ -125,8 +124,7 @@ stdenv.mkDerivation(finalAttrs: {
     lilv
     ncurses
     readline
-    udev
-  ] ++ (if enableSystemd then [ systemd ] else [ eudev ])
+  ] ++ (if enableSystemd then [ systemd ] else [ udev ])
   ++ (if lib.meta.availableOn stdenv.hostPlatform webrtc-audio-processing_1 then [ webrtc-audio-processing_1 ] else [ webrtc-audio-processing ])
   ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
   ++ lib.optionals libcameraSupport [ libcamera ]
@@ -159,6 +157,7 @@ stdenv.mkDerivation(finalAttrs: {
     (lib.mesonEnable "libpulse" pulseTunnelSupport)
     (lib.mesonEnable "avahi" zeroconfSupport)
     (lib.mesonEnable "gstreamer" gstreamerSupport)
+    (lib.mesonEnable "systemd" enableSystemd)
     (lib.mesonEnable "systemd-system-service" enableSystemd)
     (lib.mesonEnable "udev" (!enableSystemd))
     (lib.mesonEnable "ffmpeg" ffmpegSupport)
diff --git a/pkgs/development/libraries/pipewire/wireplumber.nix b/pkgs/development/libraries/pipewire/wireplumber.nix
index 2e2ef053a1198..0822c788261da 100644
--- a/pkgs/development/libraries/pipewire/wireplumber.nix
+++ b/pkgs/development/libraries/pipewire/wireplumber.nix
@@ -24,7 +24,7 @@
 
 stdenv.mkDerivation rec {
   pname = "wireplumber";
-  version = "0.5.2";
+  version = "0.5.3";
 
   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "wireplumber";
     rev = version;
-    hash = "sha256-SXLHQbjh4IygV+925fsPXgj7DFIPQj48oLNKWkUhuK8=";
+    hash = "sha256-bZZIrD+SxAolDM0BRjcN4YCM26lnjkw8pIX54wSYrsk=";
   };
 
   nativeBuildInputs = [
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A modular session / policy manager for PipeWire";
+    description = "Modular session / policy manager for PipeWire";
     homepage = "https://pipewire.org";
     license = licenses.mit;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/pixman/default.nix b/pkgs/development/libraries/pixman/default.nix
index 3a83c89cd05d1..b0791a2400a85 100644
--- a/pkgs/development/libraries/pixman/default.nix
+++ b/pkgs/development/libraries/pixman/default.nix
@@ -79,7 +79,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://pixman.org";
-    description = "A low-level library for pixel manipulation";
+    description = "Low-level library for pixel manipulation";
     license = licenses.mit;
     platforms = platforms.all;
     pkgConfigModules = [ "pixman-1" ];
diff --git a/pkgs/development/libraries/plasma-wayland-protocols/default.nix b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
index 9f2798ce51b61..99e8b3fd9d11d 100644
--- a/pkgs/development/libraries/plasma-wayland-protocols/default.nix
+++ b/pkgs/development/libraries/plasma-wayland-protocols/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "plasma-wayland-protocols";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${pname}-${version}.tar.xz";
-    hash = "sha256-FIO/0nnLkTyDV5tdccWPmVh2T5ukMDs2R+EAfLcNT54=";
+    hash = "sha256-3Ud+NS9f9uasaGKGxLIrGb9aSSG4XuWn2gK7eqEV1X4=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules ];
diff --git a/pkgs/development/libraries/platform-folders/default.nix b/pkgs/development/libraries/platform-folders/default.nix
index 5479502abb233..242bbe7770e48 100644
--- a/pkgs/development/libraries/platform-folders/default.nix
+++ b/pkgs/development/libraries/platform-folders/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A C++ library to look for standard platform directories so that you do not need to write platform-specific code";
+    description = "C++ library to look for standard platform directories so that you do not need to write platform-specific code";
     homepage = "https://github.com/sago007/PlatformFolders";
     license = licenses.mit;
     maintainers = with maintainers; [ lilyinstarlight ];
diff --git a/pkgs/development/libraries/plib/default.nix b/pkgs/development/libraries/plib/default.nix
index b420c17c88889..c7349c3693051 100644
--- a/pkgs/development/libraries/plib/default.nix
+++ b/pkgs/development/libraries/plib/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A suite of portable game libraries";
+    description = "Suite of portable game libraries";
 
     longDescription = ''
       PLIB includes sound effects, music, a complete 3D engine, font
diff --git a/pkgs/development/libraries/poco/default.nix b/pkgs/development/libraries/poco/default.nix
index 029767aaa6082..097edd0953c76 100644
--- a/pkgs/development/libraries/poco/default.nix
+++ b/pkgs/development/libraries/poco/default.nix
@@ -3,12 +3,12 @@
 stdenv.mkDerivation rec {
   pname = "poco";
 
-  version = "1.13.2";
+  version = "1.13.3";
 
   src = fetchFromGitHub {
     owner = "pocoproject";
     repo = "poco";
-    sha256 = "sha256-GcwkGiui9j9RzMQyEEmqq8dxWzKpv5xWxJgvJpSMdbw=";
+    sha256 = "sha256-ryBQjzg1DyYd/LBZzjHxq8m/7ZXRSKNNGRkIII0eHK0=";
     rev = "poco-${version}-release";
   };
 
diff --git a/pkgs/development/libraries/podofo/0.10.x.nix b/pkgs/development/libraries/podofo/0.10.x.nix
index 93c989a9c1ec6..f4bf9e7741788 100644
--- a/pkgs/development/libraries/podofo/0.10.x.nix
+++ b/pkgs/development/libraries/podofo/0.10.x.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = {
     homepage = "https://github.com/podofo/podofo";
-    description = "A library to work with the PDF file format";
+    description = "Library to work with the PDF file format";
     platforms = lib.platforms.all;
     license = with lib.licenses; [ gpl2Plus lgpl2Plus ];
     maintainers = [];
diff --git a/pkgs/development/libraries/podofo/default.nix b/pkgs/development/libraries/podofo/default.nix
index 85651d225f424..598366dc6eb84 100644
--- a/pkgs/development/libraries/podofo/default.nix
+++ b/pkgs/development/libraries/podofo/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://podofo.sourceforge.net";
-    description = "A library to work with the PDF file format";
+    description = "Library to work with the PDF file format";
     platforms = platforms.all;
     license = with licenses; [ gpl2Plus lgpl2Plus ];
   };
diff --git a/pkgs/development/libraries/polkit-qt-1/default.nix b/pkgs/development/libraries/polkit-qt-1/default.nix
index e6cb90994d9e0..b663c865d233f 100644
--- a/pkgs/development/libraries/polkit-qt-1/default.nix
+++ b/pkgs/development/libraries/polkit-qt-1/default.nix
@@ -30,7 +30,7 @@ mkDerivation rec {
   ] ++ lib.optionals stdenv.isLinux [ libselinux libsepol util-linux ];
 
   meta = with lib; {
-    description = "A Qt wrapper around PolKit";
+    description = "Qt wrapper around PolKit";
     maintainers = with maintainers; [ ttuegel ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/polkit/0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch b/pkgs/development/libraries/polkit/0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch
new file mode 100644
index 0000000000000..4e38660217fef
--- /dev/null
+++ b/pkgs/development/libraries/polkit/0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch
@@ -0,0 +1,53 @@
+From 7ba07551dfcd4ef9a87b8f0d9eb8b91fabcb41b3 Mon Sep 17 00:00:00 2001
+From: Jan Tojnar <jtojnar@gmail.com>
+Date: Mon, 1 Nov 2021 14:17:17 +0100
+Subject: [PATCH] build: Use datarootdir in Meson-generated pkg-config files
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With datadir outside of prefix (currently unsupported by Meson[1]
+but a frequent occurrence in Nixpkgs), the `datadir` entry,
+in the `polkit-gobject-1` pkg-config file will be an absolute path.
+This will prevent changing the base directory of `policydir`
+with `--define-variable=prefix=…`, which many projects use
+to install policy files to their own prefix.
+
+Previously, this worked without changes on Nixpkgs’s part because
+the pkg-config template used by Autotools contained `@datarootdir@`,
+which resolves to `$(prefix)/share`[2], taking no heed of the changed datadir.
+
+Similar issue can happen when a distribution package redefines datadir
+like Debian does/did.[3]
+
+This patch changes Meson-based build system to use `$(prefix)/share`
+in the generated pkg-config files, mirroring Autotools.
+
+---
+
+1. Likely to change in the future: https://github.com/mesonbuild/meson/issues/2561#issuecomment-939253717
+2. https://www.gnu.org/prep/standards/html_node/Directory-Variables.html
+3. https://blogs.gnome.org/hughsie/2014/06/16/datarootdir-v-s-datadir/
+---
+ src/polkit/meson.build | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/src/polkit/meson.build b/src/polkit/meson.build
+index 63dc1e85..c92cb70f 100644
+--- a/src/polkit/meson.build
++++ b/src/polkit/meson.build
+@@ -113,9 +113,8 @@ pkg.generate(
+   requires: common_deps,
+   variables: [
+     'exec_prefix=${prefix}',
+-    'datadir=' + ('${prefix}' / pk_datadir),
+-    'policydir=' + ('${datadir}' / pk_actiondir),
+-    'actiondir=' + ('${datadir}' / pk_actiondir),
++    'policydir=' + ('${prefix}' / 'share' / pk_actiondir),
++    'actiondir=' + ('${prefix}' / 'share' / pk_actiondir),
+     'pkcheck_supports_uid=true',
+   ],
+ )
+-- 
+GitLab
+
diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix
index dabba056b4876..5b41fbdf6dfd4 100644
--- a/pkgs/development/libraries/polkit/default.nix
+++ b/pkgs/development/libraries/polkit/default.nix
@@ -1,6 +1,6 @@
 { lib
 , stdenv
-, fetchFromGitLab
+, fetchFromGitHub
 , pkg-config
 , glib
 , expat
@@ -10,7 +10,6 @@
 , ninja
 , perl
 , python3
-, fetchpatch
 , gettext
 , duktape
 , gobject-introspection
@@ -38,26 +37,24 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "polkit";
-  version = "123";
+  version = "124";
 
   outputs = [ "bin" "dev" "out" ]; # small man pages in $bin
 
   # Tarballs do not contain subprojects.
-  src = fetchFromGitLab {
-    domain = "gitlab.freedesktop.org";
-    owner = "polkit";
+  src = fetchFromGitHub {
+    owner = "polkit-org";
     repo = "polkit";
     rev = version;
-    hash = "sha256-/kjWkh6w2FYgtYWzw3g3GlWJKKpkJ3cqwfE0iDqJctw=";
+    hash = "sha256-Vc9G2xK6U1cX+xW2BnKp3oS/ACbSXS/lztbFP5oJOlM=";
   };
 
   patches = [
     # Allow changing base for paths in pkg-config file as before.
     # https://gitlab.freedesktop.org/polkit/polkit/-/merge_requests/100
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/polkit/polkit/-/commit/7ba07551dfcd4ef9a87b8f0d9eb8b91fabcb41b3.patch";
-      sha256 = "ebbLILncq1hAZTBMsLm+vDGw6j0iQ0crGyhzyLZQgKA=";
-    })
+    ./0001-build-Use-datarootdir-in-Meson-generated-pkg-config-.patch
+
+    ./elogind.patch
   ];
 
   depsBuildBuild = [
@@ -108,10 +105,14 @@ stdenv.mkDerivation rec {
     ]))
   ];
 
+  env = {
+    PKG_CONFIG_SYSTEMD_SYSTEMDSYSTEMUNITDIR = "${placeholder "out"}/lib/systemd/system";
+    PKG_CONFIG_SYSTEMD_SYSUSERS_DIR = "${placeholder "out"}/lib/sysusers.d";
+  };
+
   mesonFlags = [
     "--datadir=${system}/share"
     "--sysconfdir=/etc"
-    "-Dsystemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
     "-Dpolkitd_user=polkituser" #TODO? <nixos> config.ids.uids.polkituser
     "-Dos_type=redhat" # only affects PAM includes
     "-Dintrospection=${lib.boolToString withIntrospection}"
@@ -175,10 +176,14 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    homepage = "https://gitlab.freedesktop.org/polkit/polkit/";
-    description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
+    homepage = "https://github.com/polkit-org/polkit";
+    description = "Toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes";
     license = licenses.lgpl2Plus;
     platforms = platforms.linux;
+    badPlatforms = [
+      # mandatory libpolkit-gobject shared library
+      lib.systems.inspect.platformPatterns.isStatic
+    ];
     maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
   };
 }
diff --git a/pkgs/development/libraries/polkit/elogind.patch b/pkgs/development/libraries/polkit/elogind.patch
new file mode 100644
index 0000000000000..e7d97a7b131c1
--- /dev/null
+++ b/pkgs/development/libraries/polkit/elogind.patch
@@ -0,0 +1,66 @@
+From 78e625dbafa8543b17ffaf9c42cf90c9cf9a612e Mon Sep 17 00:00:00 2001
+From: Alyssa Ross <hi@alyssa.is>
+Date: Wed, 8 May 2024 11:20:42 +0200
+Subject: [PATCH] Fix configuration with elogind
+
+Previously, it would try to get sysusers_dir from systemd even though
+systemd_dep was undefined.  Determining systemd_systemdsystemunitdir
+from systemd was already checking for systemd logind specifically, and
+systemd_sysusers_dir is only used in the systemd logind case, so move
+both of those into the systemd-logind-specific branch above.
+
+(cherry picked from commit b58b58af10c390ab9a11a4cfe6a4ff3d50cc0fa5)
+---
+ meson.build | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 2f81c90..0888322 100644
+--- a/meson.build
++++ b/meson.build
+@@ -202,6 +202,16 @@ if enable_logind
+     if not logind_dep.found()
+       logind_dep = dependency('libsystemd-login', not_found_message: 'libsystemd support requested but libsystemd or libsystemd-login library not found')
+     endif
++
++    # systemd unit / service files
++    systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
++    if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
++      systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
++      # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
++      systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
++    endif
++
++    systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
+   else
+     logind_dep = dependency('libelogind', not_found_message: 'libelogind support requested but libelogind library not found')
+   endif
+@@ -210,16 +220,6 @@ if enable_logind
+   config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
+   func = 'sd_pidfd_get_session'
+   config_h.set10('HAVE_' + func.to_upper(), cc.has_function(func, dependencies: logind_dep))
+-
+-  # systemd unit / service files
+-  systemd_systemdsystemunitdir = get_option('systemdsystemunitdir')
+-  if systemd_systemdsystemunitdir == '' and session_tracking == 'libsystemd-login'
+-    systemd_dep = dependency('systemd', not_found_message: 'systemd required but not found, please provide a valid systemd user unit dir or disable it')
+-    # FIXME: systemd.pc file does not use variables with relative paths, so `define_variable` cannot be used
+-    systemd_systemdsystemunitdir = systemd_dep.get_pkgconfig_variable('systemdsystemunitdir')
+-  endif
+-
+-  systemd_sysusers_dir = systemd_dep.get_pkgconfig_variable('sysusers_dir', default: '/usr/lib/sysusers.d')
+ endif
+ config_h.set('HAVE_LIBSYSTEMD', enable_logind)
+ 
+@@ -404,7 +404,7 @@ output += '        introspection:            ' + enable_introspection.to_string(
+ output += '        Distribution/OS:          ' + os_type + '\n'
+ output += '        Authentication framework: ' + auth_fw + '\n'
+ output += '        Session tracking:         ' + session_tracking + '\n'
+-if enable_logind
++if session_tracking == 'logind'
+   output += '        systemdsystemunitdir:     ' + systemd_systemdsystemunitdir + '\n'
+ endif
+ output += '        polkitd user:             ' + polkitd_user + ' \n'
+-- 
+2.44.0
+
diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix
index 6e22ec349d5fd..17ab3f100b81a 100644
--- a/pkgs/development/libraries/poppler/default.nix
+++ b/pkgs/development/libraries/poppler/default.nix
@@ -138,7 +138,7 @@ stdenv.mkDerivation (finalAttrs: rec {
   meta = with lib; {
     homepage = "https://poppler.freedesktop.org/";
     changelog = "https://gitlab.freedesktop.org/poppler/poppler/-/blob/poppler-${version}/NEWS";
-    description = "A PDF rendering library";
+    description = "PDF rendering library";
     longDescription = ''
       Poppler is a PDF rendering library based on the xpdf-3.0 code base. In
       addition it provides a number of tools that can be installed separately.
diff --git a/pkgs/development/libraries/popt/default.nix b/pkgs/development/libraries/popt/default.nix
index fdccb4d093367..e97629b0dfd05 100644
--- a/pkgs/development/libraries/popt/default.nix
+++ b/pkgs/development/libraries/popt/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchurl
 , fetchpatch2
+, updateAutotoolsGnuConfigScriptsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -13,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-wlpIOPyOTByKrLi9Yg7bMISj1jv4mH/a08onWMYyQPk=";
   };
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
+
   patches = lib.optionals stdenv.isCygwin [
     ./1.16-cygwin.patch
     ./1.16-vpath.patch
diff --git a/pkgs/development/libraries/ppl/default.nix b/pkgs/development/libraries/ppl/default.nix
index d49f3e6bd5382..863ffed429328 100644
--- a/pkgs/development/libraries/ppl/default.nix
+++ b/pkgs/development/libraries/ppl/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation {
   enableParallelBuilding = true;
 
   meta = {
-    description = "The Parma Polyhedra Library";
+    description = "Parma Polyhedra Library";
 
     longDescription = ''
       The Parma Polyhedra Library (PPL) provides numerical abstractions
diff --git a/pkgs/development/libraries/precice/default.nix b/pkgs/development/libraries/precice/default.nix
index 873386e90abd9..372a2940e0ae3 100644
--- a/pkgs/development/libraries/precice/default.nix
+++ b/pkgs/development/libraries/precice/default.nix
@@ -1,23 +1,16 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, gcc, boost, eigen, libxml2, mpi, python3, petsc, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, cmake, gcc, boost, eigen, libxml2, mpi, python3, petsc, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "precice";
-  version = "3.0.0";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "precice";
-    repo = pname;
+    repo = "precice";
     rev = "v${version}";
-    hash = "sha256-RuZ18BFdusMHC+Yuapc2N8cEetLu32e28J34HH+gHOg=";
+    hash = "sha256-KpmcQj8cv5V5OXCMhe2KLTsqUzKWtTeQyP+zg+Y+yd0=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/precice/precice/commit/9dffe04144ab0f6a92fbff9be91cda71718b9c8e.patch";
-      hash = "sha256-kSvIfBQH1mBA5CFJo9Usiypol0u9VgHMlUEHK/uHVNQ=";
-    })
-  ];
-
   cmakeFlags = [
     "-DPRECICE_PETScMapping=OFF"
     "-DBUILD_SHARED_LIBS=ON"
@@ -43,5 +36,3 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
   };
 }
-
-
diff --git a/pkgs/development/libraries/presage/default.nix b/pkgs/development/libraries/presage/default.nix
index 8f7e15867099f..c9e44e5859146 100644
--- a/pkgs/development/libraries/presage/default.nix
+++ b/pkgs/development/libraries/presage/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
   checkTarget = "check";
 
   meta = with lib; {
-    description = "An intelligent predictive text entry system";
+    description = "Intelligent predictive text entry system";
     homepage = "https://presage.sourceforge.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/libraries/process-cpp/default.nix b/pkgs/development/libraries/process-cpp/default.nix
deleted file mode 100644
index f73f72e4545d1..0000000000000
--- a/pkgs/development/libraries/process-cpp/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitLab
-, cmake
-, boost
-, properties-cpp
-, pkg-config
-}:
-
-stdenv.mkDerivation rec {
-  pname = "process-cpp";
-  version = "unstable-2021-05-11";
-
-  src = fetchFromGitLab {
-    domain = "gitlab.com";
-    owner = "ubports";
-    repo = "development/core/lib-cpp/process-cpp";
-    rev = "ee6d99a3278343f5fdcec7ed3dad38763e257310";
-    sha256 = "sha256-jDYXKCzrg/ZGFC2xpyfkn/f7J3t0cdOwHK2mLlYWNN0=";
-  };
-
-  postPatch = ''
-    # Excludes tests from tainting nativeBuildInputs with their dependencies when not being run
-    # Tests fail upon verifying OOM score adjustment via /proc/<pid>/oom_score
-    # [ RUN      ] LinuxProcess.adjusting_proc_oom_score_adj_works
-    # /build/source/tests/linux_process_test.cpp:83: Failure
-    # Value of: is_approximately_equal(oom_score.value, core::posix::linux::proc::process::OomScoreAdj::max_value())
-    #   Actual: false (333 > 10)
-    # Expected: true
-    sed -i '/tests/d' CMakeLists.txt
-  '';
-
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-  ];
-
-  buildInputs = [
-    boost
-    properties-cpp
-  ];
-
-  meta = with lib; {
-    description = "A simple convenience library for handling processes in C++11";
-    homepage = "https://gitlab.com/ubports/development/core/lib-cpp/process-cpp";
-    license = with licenses; [ gpl3Only lgpl3Only ];
-    maintainers = with maintainers; [ onny ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/proj/default.nix b/pkgs/development/libraries/proj/default.nix
index daab5ac2a5663..8fedba3ef08c5 100644
--- a/pkgs/development/libraries/proj/default.nix
+++ b/pkgs/development/libraries/proj/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , pkg-config
 , buildPackages
@@ -17,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "proj";
-  version = "9.4.0";
+  version = "9.4.1";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "PROJ";
     rev = finalAttrs.version;
-    hash = "sha256-m8u5+uWeXI2lxxsTcVJbvCiV30CQifw4reAY3GHHavA=";
+    hash = "sha256-sLlG9NNHST9d0G5hV1tOGpTSv4rbUxERW3kwGC+t1iU=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/prometheus-client-c/default.nix b/pkgs/development/libraries/prometheus-client-c/default.nix
index f9f580c9717ce..4d695eff64085 100644
--- a/pkgs/development/libraries/prometheus-client-c/default.nix
+++ b/pkgs/development/libraries/prometheus-client-c/default.nix
@@ -67,12 +67,12 @@ rec {
   libprom = build {
     pname = "libprom";
     subdir = "prom";
-    description = "A Prometheus Client in C";
+    description = "Prometheus Client in C";
   };
   libpromhttp = build {
     pname = "libpromhttp";
     subdir = "promhttp";
     buildInputs = [ libmicrohttpd libprom ];
-    description = "A Prometheus HTTP Endpoint in C";
+    description = "Prometheus HTTP Endpoint in C";
   };
 }
diff --git a/pkgs/development/libraries/properties-cpp/default.nix b/pkgs/development/libraries/properties-cpp/default.nix
index 65ad4ed6a2933..2c510afdfa158 100644
--- a/pkgs/development/libraries/properties-cpp/default.nix
+++ b/pkgs/development/libraries/properties-cpp/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://gitlab.com/ubports/development/core/lib-cpp/properties-cpp";
-    description = "A very simple convenience library for handling properties and signals in C++11";
+    description = "Very simple convenience library for handling properties and signals in C++11";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/protobuf/27.nix b/pkgs/development/libraries/protobuf/27.nix
new file mode 100644
index 0000000000000..0f256c5c783af
--- /dev/null
+++ b/pkgs/development/libraries/protobuf/27.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix ({
+  version = "27.1";
+  hash = "sha256-9XOcjNm4k4VhQ/XagcVO2tXxp6bBdyuvrS7sNGy4wG0=";
+} // args)
diff --git a/pkgs/development/libraries/protobufc/default.nix b/pkgs/development/libraries/protobufc/default.nix
index d152512783f0e..5a39725275508 100644
--- a/pkgs/development/libraries/protobufc/default.nix
+++ b/pkgs/development/libraries/protobufc/default.nix
@@ -10,15 +10,17 @@
 
 stdenv.mkDerivation rec {
   pname = "protobuf-c";
-  version = "unstable-2023-07-08";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "protobuf-c";
     repo = "protobuf-c";
-    rev = "fa86fddbd000316772d1deb5a8d1201fa7599ef7";
-    hash = "sha256-pmqZYFREPgSrWPekymTglhtAv6gQR1gP3dOl3hqjYig=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-Dkpcc7ZfvAIVY91trRiHuiRFcUGUbQxbheYKTBcq80I=";
   };
 
+  outputs = [ "out" "dev" "lib" ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ protobuf zlib ];
diff --git a/pkgs/development/libraries/prototypejs/default.nix b/pkgs/development/libraries/prototypejs/default.nix
index fd06b49604add..b3ded7025e99c 100644
--- a/pkgs/development/libraries/prototypejs/default.nix
+++ b/pkgs/development/libraries/prototypejs/default.nix
@@ -7,7 +7,7 @@ in fetchurl {
   sha256 = "0q43vvrsb22h4jvavs1gk3v4ps61yx9k85b5n6q9mxivhmxprg26";
 
   meta = with lib; {
-    description = "A foundation for ambitious web user interfaces";
+    description = "Foundation for ambitious web user interfaces";
     longDescription = ''
       Prototype takes the complexity out of client-side web
       programming. Built to solve real-world problems, it adds
diff --git a/pkgs/development/libraries/pslib/default.nix b/pkgs/development/libraries/pslib/default.nix
index 98aaa5dcf335e..f91f55530aed7 100644
--- a/pkgs/development/libraries/pslib/default.nix
+++ b/pkgs/development/libraries/pslib/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C-library for generating multi page PostScript documents";
+    description = "C-library for generating multi page PostScript documents";
     homepage = "https://pslib.sourceforge.net/";
     changelog =
       "https://sourceforge.net/p/pslib/git/ci/master/tree/pslib/ChangeLog";
diff --git a/pkgs/development/libraries/pth/default.nix b/pkgs/development/libraries/pth/default.nix
index 7cb9046acf212..bbbc5017c410e 100644
--- a/pkgs/development/libraries/pth/default.nix
+++ b/pkgs/development/libraries/pth/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   meta = with lib; {
-    description = "The GNU Portable Threads library";
+    description = "GNU Portable Threads library";
     mainProgram = "pth-config";
     homepage = "https://www.gnu.org/software/pth";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/pugixml/default.nix b/pkgs/development/libraries/pugixml/default.nix
index 403c903577554..fc0eb1dfa2912 100644
--- a/pkgs/development/libraries/pugixml/default.nix
+++ b/pkgs/development/libraries/pugixml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pugixml";
-  version = "1.13";
+  version = "1.14";
 
   src = fetchFromGitHub {
     owner = "zeux";
     repo = "pugixml";
     rev = "v${version}";
-    sha256 = "sha256-MAXm/9ANj6TjO1Skpg20RYt88bf6w1uPwRwOHXiXsWw=";
+    sha256 = "sha256-xxtJr9VeBPxpxWJaDGO635+Ch7ZS6t6VyuXEio+ogZ8=";
   };
 
   outputs = [ "out" ] ++ lib.optionals shared [ "dev" ];
diff --git a/pkgs/development/libraries/pupnp/default.nix b/pkgs/development/libraries/pupnp/default.nix
index 2410c22ad2161..fa0718b993fc6 100644
--- a/pkgs/development/libraries/pupnp/default.nix
+++ b/pkgs/development/libraries/pupnp/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    description = "An open source UPnP development kit for Linux";
+    description = "Open source UPnP development kit for Linux";
 
     longDescription = ''
       The Linux SDK for UPnP Devices (libupnp) provides developers
diff --git a/pkgs/development/libraries/pyotherside/default.nix b/pkgs/development/libraries/pyotherside/default.nix
index eeb73472253a2..f99f1927295aa 100644
--- a/pkgs/development/libraries/pyotherside/default.nix
+++ b/pkgs/development/libraries/pyotherside/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pyotherside";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "thp";
     repo = "pyotherside";
     rev = version;
-    sha256 = "sha256-IIvL704snJIJbigAgJZ3WWg5a/mX/8qzgFN+dBEClG8=";
+    sha256 = "sha256-Fh0gtbBi391ZgwS68FX1zUzeuz8ayEjlwnEM8LjaB8k=";
   };
 
   nativeBuildInputs = [ qmake ];
diff --git a/pkgs/development/libraries/pystring/default.nix b/pkgs/development/libraries/pystring/default.nix
index 3a1e64c0b0004..4ed250439803b 100644
--- a/pkgs/development/libraries/pystring/default.nix
+++ b/pkgs/development/libraries/pystring/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/imageworks/pystring/";
-    description = "A collection of C++ functions which match the interface and behavior of python's string class methods using std::string";
+    description = "Collection of C++ functions which match the interface and behavior of python's string class methods using std::string";
     license = licenses.bsd3;
     maintainers = [ maintainers.rytone ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/python-qt/default.nix b/pkgs/development/libraries/python-qt/default.nix
index 2b7ac684974e6..404aa4921c4ef 100644
--- a/pkgs/development/libraries/python-qt/default.nix
+++ b/pkgs/development/libraries/python-qt/default.nix
@@ -2,7 +2,6 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   python3,
   qmake,
   qtwebengine,
diff --git a/pkgs/development/libraries/qmenumodel/default.nix b/pkgs/development/libraries/qmenumodel/default.nix
index 7d1384df364bc..c2b5e61b9d3b5 100644
--- a/pkgs/development/libraries/qmenumodel/default.nix
+++ b/pkgs/development/libraries/qmenumodel/default.nix
@@ -12,6 +12,7 @@
 , python3
 , qtbase
 , qtdeclarative
+, gobject-introspection
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -55,6 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   nativeCheckInputs = [
     dbus
     dbus-test-runner
+    gobject-introspection
     (python3.withPackages (ps: with ps; [
       dbus-python
       pygobject3
diff --git a/pkgs/development/libraries/qmlbox2d/default.nix b/pkgs/development/libraries/qmlbox2d/default.nix
index 0c50c9e3649bf..95827b630f1a7 100644
--- a/pkgs/development/libraries/qmlbox2d/default.nix
+++ b/pkgs/development/libraries/qmlbox2d/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A QML plugin for Box2D engine";
+    description = "QML plugin for Box2D engine";
     homepage = "https://github.com/qml-box2d/qml-box2d";
     maintainers = with maintainers; [ guibou ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/qmltermwidget/default.nix b/pkgs/development/libraries/qmltermwidget/default.nix
index 863d5f25d2869..0984912463e1c 100644
--- a/pkgs/development/libraries/qmltermwidget/default.nix
+++ b/pkgs/development/libraries/qmltermwidget/default.nix
@@ -58,7 +58,7 @@ stdenv.mkDerivation {
   dontWrapQtApps = true;
 
   meta = {
-    description = "A QML port of qtermwidget";
+    description = "QML port of qtermwidget";
     homepage = "https://github.com/Swordfish90/qmltermwidget";
     license = lib.licenses.gpl2Plus;
     platforms = with lib.platforms; linux ++ darwin;
diff --git a/pkgs/development/libraries/qpdf/default.nix b/pkgs/development/libraries/qpdf/default.nix
index 33967e39ccfa6..e3772dbb27870 100644
--- a/pkgs/development/libraries/qpdf/default.nix
+++ b/pkgs/development/libraries/qpdf/default.nix
@@ -1,4 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, libjpeg, zlib, cmake, perl }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, libjpeg
+, perl
+, zlib
+
+# for passthru.tests
+, cups-filters
+, pdfmixtool
+, pdfslicer
+, python3
+}:
 
 stdenv.mkDerivation rec {
   pname = "qpdf";
@@ -24,9 +37,18 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru.tests = {
+    inherit (python3.pkgs) pikepdf;
+    inherit
+      cups-filters
+      pdfmixtool
+      pdfslicer
+    ;
+  };
+
   meta = with lib; {
     homepage = "https://qpdf.sourceforge.io/";
-    description = "A C++ library and set of programs that inspect and manipulate the structure of PDF files";
+    description = "C++ library and set of programs that inspect and manipulate the structure of PDF files";
     license = licenses.asl20; # as of 7.0.0, people may stay at artistic2
     maintainers = with maintainers; [ abbradar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix
index 394446feb0170..69adf65643d02 100644
--- a/pkgs/development/libraries/qscintilla/default.nix
+++ b/pkgs/development/libraries/qscintilla/default.nix
@@ -51,7 +51,7 @@ in stdenv'.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A Qt port of the Scintilla text editing library";
+    description = "Qt port of the Scintilla text editing library";
     longDescription = ''
       QScintilla is a port to Qt of Neil Hodgson's Scintilla C++ editor
       control.
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 80d75b8cf8803..b1308159eb688 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -36,6 +36,14 @@ let
       ./qtbase.patch.d/0012-qtbase-tbd-frameworks.patch
 
       ./qtbase.patch.d/0014-aarch64-darwin.patch
+
+      # Fix typo that breaks build on Darwin
+      # FIXME: remove this once merged upstream
+      # See: https://invent.kde.org/qt/qt/qtbase/-/merge_requests/325
+      (fetchpatch {
+        url = "https://invent.kde.org/qt/qt/qtbase/-/commit/e84c0df50f51c61aa49b47823582b0f8de406e3d.patch";
+        hash = "sha256-d1RIY03E71aMzOOVtcIaMeariki/72QRekUne6P2D3M=";
+      })
     ] ++ [
       ./qtbase.patch.d/0003-qtbase-mkspecs.patch
       ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
@@ -173,23 +181,11 @@ let
       })
     ];
     qtwebengine = [
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/Homebrew/formula-patches/a6f16c6daea3b5a1f7bc9f175d1645922c131563/qt5/qt5-webengine-python3.patch";
-        hash = "sha256-rUSDwTucXVP3Obdck7LRTeKZ+JYQSNhQ7+W31uHZ9yM=";
-      })
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/Homebrew/formula-patches/7ae178a617d1e0eceb742557e63721af949bd28a/qt5/qt5-webengine-chromium-python3.patch";
-        stripLen = 1;
-        extraPrefix = "src/3rdparty/";
-        hash = "sha256-MZGYeMdGzwypfKoSUaa56K3inbcGRx7he/+AFyk5ekA=";
-      })
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/Homebrew/formula-patches/7ae178a617d1e0eceb742557e63721af949bd28a/qt5/qt5-webengine-gcc12.patch";
-        stripLen = 1;
-        extraPrefix = "src/3rdparty/";
-        hash = "sha256-s4GsGMJTBNWw2gTJuIEP3tqT82AmTsR2mbj59m2p6rM=";
-      })
       ./qtwebengine-link-pulseaudio.patch
+      # Fixes Chromium build failure with Ninja 1.12.
+      # See: https://bugreports.qt.io/browse/QTBUG-124375
+      # Backport of: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=a766045f65f934df3b5f1aa63bc86fbb3e003a09
+      ./qtwebengine-ninja-1.12.patch
     ] ++ lib.optionals stdenv.isDarwin [
       ./qtwebengine-darwin-no-platform-check.patch
       ./qtwebengine-mac-dont-set-dsymutil-path.patch
@@ -284,7 +280,11 @@ let
       qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
       qtpim = callPackage ../modules/qtpim.nix {};
       qtpositioning = callPackage ../modules/qtpositioning.nix {};
+      qtpurchasing = callPackage ../modules/qtpurchasing.nix {
+        inherit (darwin.apple_sdk_11_0.frameworks) Foundation StoreKit;
+      };
       qtquick1 = null;
+      qtquick3d = callPackage ../modules/qtquick3d.nix { };
       qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
       qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
       qtremoteobjects = callPackage ../modules/qtremoteobjects.nix {};
@@ -316,11 +316,6 @@ let
           in if stdenv'.isDarwin then overrideSDK stdenv' "11.0" else stdenv';
         inherit (srcs.qtwebengine) version;
         python = python3;
-        postPatch = ''
-          # update catapult for python3 compatibility
-          rm -r src/3rdparty/chromium/third_party/catapult
-          cp -r ${srcs.catapult} src/3rdparty/chromium/third_party/catapult
-        '';
         inherit (darwin) cctools xnu;
         inherit (darwin.apple_sdk_11_0) libpm libunwind;
         inherit (darwin.apple_sdk_11_0.libs) sandbox;
diff --git a/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch b/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch
new file mode 100644
index 0000000000000..c70788516fd4e
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/5.15/qtwebengine-ninja-1.12.patch
@@ -0,0 +1,11 @@
+diff -ur a/src/3rdparty/chromium/content/public/browser/BUILD.gn b/src/3rdparty/chromium/content/public/browser/BUILD.gn
+--- a/src/3rdparty/chromium/content/public/browser/BUILD.gn	1969-12-31 19:00:01.000000000 -0500
++++ b/src/3rdparty/chromium/content/public/browser/BUILD.gn	2024-05-29 22:12:36.416136269 -0400
+@@ -469,6 +469,7 @@
+     "//build:chromeos_buildflags",
+     "//cc",
+     "//components/viz/host",
++    "//components/spellcheck:buildflags",
+     "//content/browser",  # Must not be public_deps!
+     "//device/fido",
+     "//gpu",
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
index 63a284be6c801..f3281a17170ee 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
+++ b/pkgs/development/libraries/qt-5/5.15/srcs-generated.json
@@ -1,202 +1,202 @@
 {
   "qt3d": {
     "url": "https://invent.kde.org/qt/qt/qt3d.git",
-    "rev": "e1b1a0d2970fd384bd52c734a72536d8452ad070",
-    "sha256": "14q7xf6n8giz5v1s23ndibiv4d6g0ds4v88bx5v984319qxyvpqh"
+    "rev": "9bf4d03e2515f7c454647d54542330b6e90f8191",
+    "sha256": "1w1lq332q270vld7sz0xqpa0f7mvi5gizycfsx9zz9c73qy4idlp"
   },
   "qtactiveqt": {
     "url": "https://invent.kde.org/qt/qt/qtactiveqt.git",
-    "rev": "4fc1cba4c415d84a5879da29f7c459b70fbc15e9",
-    "sha256": "0mrw7rr6fnjkjxx882ga253kzn4di1agikyq6h9ixwfn2j242qlq"
+    "rev": "91bfd21f86c450b129ac2dde9d33b32e140d8a0c",
+    "sha256": "06fbiggjq1c1z1wgx63ir8rj1ppd1c046xwz4nzsrf1pi8dqcyl7"
   },
   "qtandroidextras": {
     "url": "https://invent.kde.org/qt/qt/qtandroidextras.git",
-    "rev": "12d064b16117c6f3418b494c927ef72cf1927929",
-    "sha256": "1rcpldpzwbmyww50rh58avmhgj93ks40bwm0bqz7dgwakm4n76lj"
+    "rev": "197a7e05cda87a4645f30c8ef5044b342442ebd1",
+    "sha256": "0j5al7h2gy67cb2lj4yymdsidr1dcvvahqfysbdl2lwz3zzpdql1"
   },
   "qtbase": {
     "url": "https://invent.kde.org/qt/qt/qtbase.git",
-    "rev": "a43df98d037ad07cf096ef2f775958ceba743613",
-    "sha256": "01bjkfb7ql1f168q67d5jr2xjfrn8bvh1ggiba0algkgll8alad4"
+    "rev": "0e1ff2f06ddac7c32c5a5e0b65e402c9332e56f8",
+    "sha256": "1pfby0ilkikq8802diaslnkxw8qzbp4r0f80v696wfynn973mhdd"
   },
   "qtcharts": {
     "url": "https://invent.kde.org/qt/qt/qtcharts.git",
-    "rev": "393a84ad5b16a9ec93d8a44bebf1ae86e881bc06",
-    "sha256": "1ki307wkm3wxf3jc508zgdr5p7fb297hf0rdg5x1hyv7qb03bvxx"
+    "rev": "7315c48bcec88014e78165bbda54abfcd557e0af",
+    "sha256": "043lbxkaw53qah9ny4nbpp8g7q4rq9x2k21vkprk7nim66d6pmy3"
   },
   "qtconnectivity": {
     "url": "https://invent.kde.org/qt/qt/qtconnectivity.git",
-    "rev": "70020cb64f71dcf2fd65a8a167cb785d2127e159",
-    "sha256": "10kajc98avdz8a7f5ifrrrzwrkdlbsdmiamh7blsnfcix1063ihq"
+    "rev": "99f30db37c63447c59d5fac15bc8feb832a7fd04",
+    "sha256": "09v76kb7fx7bq4vplyk3cf7il3a6f9p673z1l28nrv4w308bhqfy"
   },
   "qtdatavis3d": {
     "url": "https://invent.kde.org/qt/qt/qtdatavis3d.git",
-    "rev": "c887477198cae44585fe9db371db0ddf4c3b205e",
-    "sha256": "0fkw096w81lzdj7zgc6xfy719lh10x3f7mqm832mjq86h8f3gyc5"
+    "rev": "79cd0fb6cafcd42e4037ae1363fda3bc2cec934a",
+    "sha256": "19y33v3l4crzrk7qf5qhx7phxkiax14c2q4xjd1klw7n333d43cq"
   },
   "qtdeclarative": {
     "url": "https://invent.kde.org/qt/qt/qtdeclarative.git",
-    "rev": "792a55bb701d233116c3731c7a53ffdb8c67e407",
-    "sha256": "1d87mkl3dj3ysham1rrfxw07jvc5jqh8g2w8psv5858i29aclyqn"
+    "rev": "50c8def854806485d66aabcf6918e8b987032e55",
+    "sha256": "0qvw72w0m1q4yg4l35rh7ydqgp35xqfwpq0pc7q5578n1xspihhn"
   },
   "qtdoc": {
     "url": "https://invent.kde.org/qt/qt/qtdoc.git",
-    "rev": "8a3dfe33cb4f1e81b609f41716a3f0610a50db72",
-    "sha256": "18x3gn6wv8vm5wfa6hjfzbkxcpclnwi4s3mbbc3hj9yar53hznqp"
+    "rev": "bc4503b8b70f4cd435d6e64a9e6c623ca44b9fcd",
+    "sha256": "0pvimmw5c6gh6xi2iblzyikgaw7cr8gqjdvyappcahjpalxxsjbw"
   },
   "qtgamepad": {
     "url": "https://invent.kde.org/qt/qt/qtgamepad.git",
-    "rev": "8ed95136b3c265b01db6cc33869228f41878e173",
-    "sha256": "1m774ah9c1didj60rph6p4gibyqgynmdqngqkq1bv1p7m2jkq1ss"
+    "rev": "b1c2f272f69e222a532485e6f820776c220b3535",
+    "sha256": "1zga6sa901g0fpqyjlyj73s2f94yjm0z3599gngnlvvd7jsnlgnv"
   },
   "qtgraphicaleffects": {
     "url": "https://invent.kde.org/qt/qt/qtgraphicaleffects.git",
-    "rev": "e33716bd6bb8926688fef20cb568e11618d08a35",
-    "sha256": "1klm5rhx6lpc0knhc15lz6sj07znv2d601gbi360wfqkvbi3g78p"
+    "rev": "2c39e673d6c15a84dcc7882d3772fa04cc79f9ed",
+    "sha256": "177xkhi3syx6r3my5rly5bncgjfhdvgrhf6fw5ajqplik6yln4pq"
   },
   "qtimageformats": {
     "url": "https://invent.kde.org/qt/qt/qtimageformats.git",
-    "rev": "142040e8a652e708ff6e004361f6bcfe85fefdf9",
-    "sha256": "1vc1ahanm40bh8qj3x2x4d4niihsrjai298alxfcxinfrsmw9m32"
+    "rev": "4e4f5fc6bdac96f5281a3ebeb0fee78df7b1a498",
+    "sha256": "1w68v55y1l1biv7krzv9vmi2czz84jk89f4pymq3ri1w3y4rc1id"
   },
   "qtlocation": {
     "url": "https://invent.kde.org/qt/qt/qtlocation.git",
-    "rev": "5b27b8921f1f2de93573df903c47aee634209f80",
-    "sha256": "1w8hq3mdlrdkkykhza4dx0f21j6k697xqqvpm2g2xyk2izadq2m0"
+    "rev": "3beb9c810611337fde61d89aa981e9f177a9ede9",
+    "sha256": "1fwn9x3n01dlkhw53n12z5kb06qj2lmangzvj3fjr5ff0yy47df9"
   },
   "qtlottie": {
     "url": "https://invent.kde.org/qt/qt/qtlottie.git",
-    "rev": "db33cc9a4c0bad1006dbc9ed46d71b80ee284df3",
-    "sha256": "1wjzhk6zn0vh9fjldpi5gi7qlpgfc2gcznh3a7icpbx7n9cc9qh5"
+    "rev": "b8c1fa109dce6f8bff9f55738d2f1e21ff677796",
+    "sha256": "0qydaqj8945hikby7a9529i0g5ycpvhws6y0zc566jv50qida725"
   },
   "qtmacextras": {
     "url": "https://invent.kde.org/qt/qt/qtmacextras.git",
-    "rev": "4cb89b861dbdbe8733c62bcdadc0a8d6617528a5",
-    "sha256": "1pygs8l1nk7mgqcgv7ilwx87i9i8jxwxn2h8fcqqvgn96c5sd9kg"
+    "rev": "e66cba7cf02aa8aecce03540cd167621f2cda5f0",
+    "sha256": "0q7d3lh3fpkrakxx1sqx9csa7l7rxzskcavbidxb5298jxn49wn8"
   },
   "qtmultimedia": {
     "url": "https://invent.kde.org/qt/qt/qtmultimedia.git",
-    "rev": "36603a39aa590c12cbe2b192b56b29edd09a7a6b",
-    "sha256": "1i6hfddkwf0x74kxz5vrjkc3r507m6icr59p8b6n1bms5y5731j6"
+    "rev": "53069c9c6eb52b744333812f42aed36c3db6e752",
+    "sha256": "0y8km2mp5mj1zw1v3acsdvzrc1jyiwpxy3rmif5ssn40wwxifilp"
   },
   "qtnetworkauth": {
     "url": "https://invent.kde.org/qt/qt/qtnetworkauth.git",
-    "rev": "3fccc9b8fdaff1252fb4a9c516868d0bbbd4384d",
-    "sha256": "0h0i6r5w2vdmm9nxyk8vzdim739fja4ddf42s9pa25r1vs6i9rdw"
+    "rev": "28180f28c98e329676463e24cef0097cba45bc00",
+    "sha256": "1g6clwmrpdvl9m6flyrk4vlckjnjv3phqhy1xbxlra3zcfn3357r"
   },
   "qtpurchasing": {
     "url": "https://invent.kde.org/qt/qt/qtpurchasing.git",
-    "rev": "f563e7f2d1668a3d216e9d396e050df25fd15532",
-    "sha256": "1kbzf8nadia31sfc4r53p3p733i85w23yznwp2fc2117z81vd9p7"
+    "rev": "d4903bf08c576a6c085278c1960a2676cd83dca7",
+    "sha256": "04bry3ys15bd6kaiwyb8fh037s50mcplircpzvrwdc1h8milx7y7"
   },
   "qtquick3d": {
     "url": "https://invent.kde.org/qt/qt/qtquick3d.git",
-    "rev": "d4f5966ba085a1146a04f2ea8449bbf14833a593",
-    "sha256": "05617q59ldzavm79bf3vgz2sc4paa6d4s0q7adqzpnib6pryr2xj"
+    "rev": "ad229f0c135f74801fba2bcd22c78abc0e3cf1d2",
+    "sha256": "17jdsahdw72l5lpbng8733qv2fp2qkfzlzrayzigz2slfdqgjxnk"
   },
   "qtquickcontrols": {
     "url": "https://invent.kde.org/qt/qt/qtquickcontrols.git",
-    "rev": "1ca962198a703f591efc7c8f7540fc4120746a00",
-    "sha256": "1r4z0lfcs1mhdmxgd7saw49p5y2009a0vxn043v0z2w47yrqprb6"
+    "rev": "9325659ec390eda5b160736a926ba58ccb445cce",
+    "sha256": "0r1kkn6pr6yynk8x2ggkfqqrh27g1qra102ilglj7chsmrp92xgc"
   },
   "qtquickcontrols2": {
     "url": "https://invent.kde.org/qt/qt/qtquickcontrols2.git",
-    "rev": "134ca5dbef9d137a9c46faa79b0225bc650d9283",
-    "sha256": "09r6a0vdpyxzrhx6h49v9nyky3xzgm0z1wd320qi3zh7baxxrzm4"
+    "rev": "69fea340f8f4c483a9b2889e4e24a4b1b52ebc87",
+    "sha256": "0v6g146ryabks0sff5dgyx42690xckaqpx44c6g7x0b0w24lj6ws"
   },
   "qtquicktimeline": {
     "url": "https://invent.kde.org/qt/qt/qtquicktimeline.git",
-    "rev": "58f4f22662023efe6f223d5ef4a6d0be3708182b",
-    "sha256": "15braxxp4ldvfqxz7a1xywskycmkwv88cypgaxfipkis9jvaykdi"
+    "rev": "bf6c73064c82b07fcb1f7e72c263b249e137e224",
+    "sha256": "0pnn5ds6sxls8i6pzzmraalvln2pabgga3gnv761b2skgkv26gnq"
   },
   "qtremoteobjects": {
     "url": "https://invent.kde.org/qt/qt/qtremoteobjects.git",
-    "rev": "f64e34be9ac4b7e92c63e47235c04471a1d40c93",
-    "sha256": "1hjg1vimipszcdk89ivq1iym05m9yz2li6chyg52n1wqjm628gx1"
+    "rev": "3873bdc809ca8d58d91968cb0de34da26646bc79",
+    "sha256": "0bncsi45zjwd6q3g40gxdqxqq4zhjrgw7xnxj1v53npbyw4vd0h5"
   },
   "qtscxml": {
     "url": "https://invent.kde.org/qt/qt/qtscxml.git",
-    "rev": "3f56c6b4bd1e3883581340243b4a7289807fffc9",
-    "sha256": "15yhdp77p4i1as53cssx038hwmqjh2zgh35hrad4mhk4g6za85na"
+    "rev": "6834b183966d08d9f061642ee7ea2d482cbbf073",
+    "sha256": "1h88idcfcsbpx2x2djcg1lzazadm676miz19x6n0n6n4gwp46738"
   },
   "qtsensors": {
     "url": "https://invent.kde.org/qt/qt/qtsensors.git",
-    "rev": "3011b16d63cadbb473b6aa3a535b9f0e33170c09",
-    "sha256": "06d5x03bzbal4npbdl8y74fdizl9phz76q29f798196hjyb0kz05"
+    "rev": "bf0b718cd0b6c7823e9d2037d3bdece44185f444",
+    "sha256": "1my7ls1nsaf26kh3hn75jjnxp6gm0ilyfzcczqps0xj7xj9bzwzd"
   },
   "qtserialbus": {
     "url": "https://invent.kde.org/qt/qt/qtserialbus.git",
-    "rev": "c64de6ad9f646aaa66fca0500d21cde802a7bb17",
-    "sha256": "09jp80yrql450bz7c2rfjyyfy0zd59kmrc0lww5ws0lyp95n116y"
+    "rev": "616bc5b962cdcacb1c1ba985d7236392e9cadb8c",
+    "sha256": "0njahb52kshci23xw89j1rgffmrmric8kz54dzmqsmlcqp181qkh"
   },
   "qtserialport": {
     "url": "https://invent.kde.org/qt/qt/qtserialport.git",
-    "rev": "c3a7debff7a4c6ddaedb795290180dd99d7ac4be",
-    "sha256": "1aslr9msddnrkxrlzplbzpfydjkiw1haa67mcsmr2phxkfh05329"
+    "rev": "34c19c6441cd440dc65b59ae7670eadf099d51f8",
+    "sha256": "0hiqfvz5jc6ha6ln8jl8vv4ijsdz55f3zp801dbh2r68cmf9qsrm"
   },
   "qtspeech": {
     "url": "https://invent.kde.org/qt/qt/qtspeech.git",
-    "rev": "c41437acf07c2c4703351b07925fce3ce0e6b75d",
-    "sha256": "1ihv2k4swbhd4kiaprrjgq8kmx3vrg64y2dqkvg6nd26dfwhxr0f"
+    "rev": "8ad0f08ad7e2a8d27dc5e69806812c6a3f298946",
+    "sha256": "0pyiiqj18c2gvbqvgnaki2hzcizi1lam82x761y2lp717sgb09v9"
   },
   "qtsvg": {
     "url": "https://invent.kde.org/qt/qt/qtsvg.git",
-    "rev": "5b1b4a99d6bc98c42a11b7a3f6c9f0b0f9e56f34",
-    "sha256": "0ji4kaphlqmlpcvcvlqklhzmdlwv712cvsdxnv41fdab6b49yghw"
+    "rev": "690128b2b8fb6d6fbdc43b2b2633f0f1de3f0638",
+    "sha256": "1iiml673isnqakjzspq5gf6818zmmd7pj6z9y2jwxb2xkkn8ahpc"
   },
   "qttools": {
     "url": "https://invent.kde.org/qt/qt/qttools.git",
-    "rev": "bd0ceb7de5d0c918ae596150e95b069dca8b9150",
-    "sha256": "100qhcdcnnx0l3sl9zl5p3l7707h7vdbjjk7dmy7ap1r0218m5zy"
+    "rev": "f82ed367d1b80b69d738cfcde534b75854a45476",
+    "sha256": "1pv7af4z3f9d1ifqjwbf7fhgglpnjfby8h2fg5h114mpils661bn"
   },
   "qttranslations": {
     "url": "https://invent.kde.org/qt/qt/qttranslations.git",
-    "rev": "f7745c117041e7adf9705e1de8d71086c160dd9f",
-    "sha256": "0nx8qdg3m4wf8pynh4pr1j0m0p1y5pws7fnx5mpqccvwgj4bwrdj"
+    "rev": "c601106c8b5d5495f951c8ea0ad6a9e171416ae0",
+    "sha256": "0w8ggzc4sxfa1y3n40m24zxp59c2y1mfb2c7zdd8nmlrg7xnqsf0"
   },
   "qtvirtualkeyboard": {
     "url": "https://invent.kde.org/qt/qt/qtvirtualkeyboard.git",
-    "rev": "8b885af5ad3c2f2ff500c060a41e312ea7276e50",
-    "sha256": "0mh4bva1msczgwl2x3b960rml5rmxnvvzi1wk94cc51888vyajiv"
+    "rev": "7389450a5de5fdd210f1459abcf73621ec0496bd",
+    "sha256": "1hv8yi4lq3mdxqkcln2b75drdyfiaqj63khzvy09gdf1x6fyjnn5"
   },
   "qtwayland": {
     "url": "https://invent.kde.org/qt/qt/qtwayland.git",
-    "rev": "c8b37a1bda9b8f29d56775ed6556d56ac5d3ea1d",
-    "sha256": "15spjyc6gq1r5vdryhm21mhaim1iw24y80p0srp58qm9jwqg9dys"
+    "rev": "75f434f14499eb47ede2cb66f0946527bf555791",
+    "sha256": "17d7bcc3v55ywakaybp88c493bfx63vyiz7n8f5kcijj5q5hdf1r"
   },
   "qtwebchannel": {
     "url": "https://invent.kde.org/qt/qt/qtwebchannel.git",
-    "rev": "6d2f0c3a36d9b2cdcd759a464c608365a0afda98",
-    "sha256": "1aqhvniysjc14xqcwvqhylcd4lpsl5vsym0spfahxs55s9jsvbyl"
+    "rev": "fca83088ef430f96257d2014e77d08bd350259af",
+    "sha256": "1jc7myns24mzfnfybzzjqkpnl235c0fm0zqkai55xwi3vcv9xyr5"
   },
   "qtwebglplugin": {
     "url": "https://invent.kde.org/qt/qt/qtwebglplugin.git",
-    "rev": "8f879e6bcf941a612c568fbfe2b49ddb1bb409cd",
-    "sha256": "02glac0m95naxl5c6n22xclxhp7fjl1whf6sf3388h41wwdhv11c"
+    "rev": "3681356904277e055759693551357e7e488d1be9",
+    "sha256": "14v9r4mhqq453dzkc5gvv660gq11zsmzngvwgi44srhzcx7k1qqv"
   },
   "qtwebsockets": {
     "url": "https://invent.kde.org/qt/qt/qtwebsockets.git",
-    "rev": "9a7b9972a54137d5f2e0d49559fe58d07c90662e",
-    "sha256": "1hcf18cls9kmq4xjxzjm2viqs80pxr4ykrzx0vg1bd83bc509vqp"
+    "rev": "dbbdc64b804f7c4d0ed92198aaab49b07fa15e7f",
+    "sha256": "1gbgga8qy26nxxq0537hm3h6la04xb6m4cc2aifjhhhj8py95170"
   },
   "qtwebview": {
     "url": "https://invent.kde.org/qt/qt/qtwebview.git",
-    "rev": "53fa44709992faae54e4f5c8a128cea7b6f0cbd5",
-    "sha256": "12w6znmy2hijcnwqqva8abydcryh6jcp8lhx0kz0m3cvhwpq1fbx"
+    "rev": "bbb1891595aba23ff3c6d137aa74442f9e54479b",
+    "sha256": "0j59r6dj4wvassng39whnidd6nzhndwssfwjppppqbs5xy57zh2z"
   },
   "qtwinextras": {
     "url": "https://invent.kde.org/qt/qt/qtwinextras.git",
-    "rev": "ee931eba5d129284d5c33157cd7d0b9232fbee7b",
-    "sha256": "17fyfkm8qfl9jmlq3ppnqwdx47230bk2laikfbq2188vn42yxnqv"
+    "rev": "907009a4f7e5d2b99805547caf4b901bdbb0d4d6",
+    "sha256": "0aam2imp4rkbrjir5gsk4ja7vf7vv68ybsh7qchavb3zdmjsvxcd"
   },
   "qtx11extras": {
     "url": "https://invent.kde.org/qt/qt/qtx11extras.git",
-    "rev": "aaa54153970d1d63a44b873cad5f62ffa71ef9b8",
-    "sha256": "0q34pi4mqqi4vzk57f59xsk303jgpk1fkxvnvm9r08jkckxxbisw"
+    "rev": "6c3605fcb3b34e55951f597e06c135d97dfa6cd7",
+    "sha256": "0dqmw2yqh5b5ayq93px2na50ghfk55y55zsgwraxglly0zgm39w9"
   },
   "qtxmlpatterns": {
     "url": "https://invent.kde.org/qt/qt/qtxmlpatterns.git",
-    "rev": "6e0917d518e07f737cc663b8d632c8021634fd3b",
-    "sha256": "062riy66z3v1fxrdnbdhafqdv67xqz12pscidj4fhhp9fzi92a45"
+    "rev": "087f6f35bd027f940818b1696d0aad822e034377",
+    "sha256": "0y3hkz7ss6iibpfr7dc855bzhdanz79ix0jm6b28viqjy3bdzgar"
   }
 }
diff --git a/pkgs/development/libraries/qt-5/5.15/srcs.nix b/pkgs/development/libraries/qt-5/5.15/srcs.nix
index 5ac474afeda32..60ce4e4daf495 100644
--- a/pkgs/development/libraries/qt-5/5.15/srcs.nix
+++ b/pkgs/development/libraries/qt-5/5.15/srcs.nix
@@ -1,7 +1,7 @@
 { lib, fetchgit, fetchFromGitHub }:
 
 let
-  version = "5.15.12";
+  version = "5.15.14";
 
   mk = name: args:
     {
@@ -63,31 +63,25 @@ lib.mapAttrs mk (lib.importJSON ./srcs-generated.json)
     };
   };
 
-  catapult = fetchgit {
-    url = "https://chromium.googlesource.com/catapult";
-    rev = "5eedfe23148a234211ba477f76fc2ea2e8529189";
-    hash = "sha256-LPfBCEB5tJOljXpptsNk0sHGtJf/wIRL7fccN79Nh6o=";
-  };
-
   qtscript = rec {
-    version = "5.15.16";
+    version = "5.15.17";
 
     src = fetchFromGitHub {
       owner = "qt";
       repo = "qtscript";
       rev = "v${version}-lts";
-      hash = "sha256-4Jqsmk5EBQ2Biv69yYCNx7l7AWFikRMBfl0fbZcsSaA=";
+      hash = "sha256-wXEKdu2gdlkVsWr3nb/tCBwyo9H8GPHWTUele1cP0ks=";
     };
   };
 
   qtwebengine = rec {
-    version = "5.15.16";
+    version = "5.15.17";
 
     src = fetchFromGitHub {
       owner = "qt";
       repo = "qtwebengine";
       rev = "v${version}-lts";
-      hash = "sha256-Arg/tfJcx9+CSV1VXBieHNoCSwmWNTnyBdgSkthOdfA=";
+      hash = "sha256-1be8Y96yHYBCxQsRC/PD2X0TVWpA2/r1hvi8sBKOais=";
       fetchSubmodules = true;
     };
   };
diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 594489a0d7505..d92287feb1511 100644
--- a/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -397,7 +397,7 @@ stdenv.mkDerivation (finalAttrs: ({
 
   meta = with lib; {
     homepage = "https://www.qt.io/";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ qknight ttuegel periklis bkchr ];
     pkgConfigModules = [
diff --git a/pkgs/development/libraries/qt-5/modules/qtlocation.nix b/pkgs/development/libraries/qt-5/modules/qtlocation.nix
index a9897648d8e6f..338911a5afd5f 100644
--- a/pkgs/development/libraries/qt-5/modules/qtlocation.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtlocation.nix
@@ -9,5 +9,6 @@ qtModule {
      # This flag re-enables this feature
      # https://libcxx.llvm.org/docs/UsingLibcxx.html#c-17-specific-configuration-macros
      "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_AUTO_PTR"
+     "QMAKE_CXXFLAGS+=-D_LIBCPP_ENABLE_CXX17_REMOVED_UNARY_BINARY_FUNCTION"
   ];
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix b/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix
new file mode 100644
index 0000000000000..3c1661c7b0004
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/modules/qtpurchasing.nix
@@ -0,0 +1,14 @@
+{ stdenv
+, lib
+, qtModule
+, qtbase
+, qtdeclarative
+, StoreKit
+, Foundation
+}:
+
+qtModule {
+  pname = "qtpurchasing";
+  propagatedBuildInputs = [ qtbase qtdeclarative ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ Foundation StoreKit ];
+}
diff --git a/pkgs/development/libraries/qt-5/modules/qtquick3d.nix b/pkgs/development/libraries/qt-5/modules/qtquick3d.nix
new file mode 100644
index 0000000000000..1c84856c0c129
--- /dev/null
+++ b/pkgs/development/libraries/qt-5/modules/qtquick3d.nix
@@ -0,0 +1,11 @@
+{ qtModule
+, qtbase
+, qtdeclarative
+, openssl
+}:
+
+qtModule {
+  pname = "qtquick3d";
+  propagatedBuildInputs = [ qtbase qtdeclarative ];
+  buildInputs = [ openssl ];
+}
diff --git a/pkgs/development/libraries/qt-5/modules/qtwayland.nix b/pkgs/development/libraries/qt-5/modules/qtwayland.nix
index 347a5cf643428..cb2357a1ebf47 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwayland.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwayland.nix
@@ -1,4 +1,4 @@
-{ qtModule, qtbase, qtquickcontrols, wayland, wayland-scanner, pkg-config }:
+{ qtModule, qtbase, qtquickcontrols, wayland, wayland-scanner, pkg-config, lib }:
 
 qtModule {
   pname = "qtwayland";
@@ -12,4 +12,5 @@ qtModule {
     # context).
     ./qtwayland-app_id.patch
   ];
+  meta.badPlatforms = lib.platforms.darwin;
 }
diff --git a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 44007bec07b84..b2715fbe7502c 100644
--- a/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -1,8 +1,8 @@
 { qtModule
 , qtdeclarative, qtquickcontrols, qtlocation, qtwebchannel
 
-, bison, flex, git, gperf, ninja, pkg-config, python, which, python3
-, nodejs, qtbase, perl
+, bison, flex, git, gperf, ninja, pkg-config, python, which
+, nodejs, perl
 , buildPackages
 , pkgsBuildTarget
 , pkgsBuildBuild
@@ -22,9 +22,9 @@
 , ApplicationServices, AVFoundation, Foundation, ForceFeedback, GameController, AppKit
 , ImageCaptureCore, CoreBluetooth, IOBluetooth, CoreWLAN, Quartz, Cocoa, LocalAuthentication
 , MediaPlayer, MediaAccessibility, SecurityInterface, Vision, CoreML, OpenDirectory, Accelerate
-, cups, openbsm, runCommand, xcbuild, writeScriptBin
+, cups, openbsm, xcbuild, writeScriptBin
 , ffmpeg_4 ? null
-, lib, stdenv, fetchpatch
+, lib, stdenv
 , version ? null
 , qtCompatVersion
 , pipewireSupport ? stdenv.isLinux
@@ -32,7 +32,6 @@
 , postPatch ? ""
 , nspr
 , lndir
-, dbusSupport ? !stdenv.isDarwin, expat
 }:
 
 let
@@ -52,17 +51,12 @@ let
     '';
   };
 
-  qtPlatformCross = plat: with plat;
-    if isLinux
-    then "linux-generic-g++"
-    else throw "Please add a qtPlatformCross entry for ${plat.config}";
-
 in
 
 qtModule ({
   pname = "qtwebengine";
   nativeBuildInputs = [
-    bison flex git gperf ninja pkg-config python which gn nodejs
+    bison flex git gperf ninja pkg-config (python.withPackages(ps: [ ps.html5lib ])) which gn nodejs
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     perl
     lndir (lib.getDev pkgsBuildTarget.targetPackages.qt5.qtbase)
@@ -93,12 +87,6 @@ qtModule ({
 
       # TODO: be more precise
       patchShebangs .
-
-      # Fix compatibility with python3.11
-      substituteInPlace tools/metrics/ukm/ukm_model.py \
-        --replace "r'^(?i)(|true|false)$'" "r'(?i)^(|true|false)$'"
-      substituteInPlace tools/grit/grit/util.py \
-        --replace "mode = 'rU'" "mode = 'r'"
     )
   ''
   # Prevent Chromium build script from making the path to `clang` relative to
@@ -292,7 +280,7 @@ qtModule ({
   requiredSystemFeatures = [ "big-parallel" ];
 
   meta = with lib; {
-    description = "A web engine based on the Chromium web browser";
+    description = "Web engine based on the Chromium web browser";
     mainProgram = "qwebengine_convert_dict";
     maintainers = with maintainers; [ matthewbauer ];
 
diff --git a/pkgs/development/libraries/qt-5/qtModule.nix b/pkgs/development/libraries/qt-5/qtModule.nix
index 54d24e46092f2..c2e329b1f11ff 100644
--- a/pkgs/development/libraries/qt-5/qtModule.nix
+++ b/pkgs/development/libraries/qt-5/qtModule.nix
@@ -86,7 +86,7 @@ mkDerivation (args // {
 
   meta = {
     homepage = "https://www.qt.io";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ qknight ttuegel periklis bkchr ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix
index c4b8512079546..c724bd21d11ff 100644
--- a/pkgs/development/libraries/qt-6/default.nix
+++ b/pkgs/development/libraries/qt-6/default.nix
@@ -4,7 +4,6 @@
 , generateSplicesForMkScope
 , makeScopeWithSplicing'
 , fetchurl
-, fetchpatch
 , fetchpatch2
 , makeSetupHook
 , makeWrapper
diff --git a/pkgs/development/libraries/qt-6/fetch.sh b/pkgs/development/libraries/qt-6/fetch.sh
index a9c84b4832386..7583d7d6ff555 100644
--- a/pkgs/development/libraries/qt-6/fetch.sh
+++ b/pkgs/development/libraries/qt-6/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.qt.io/official_releases/qt/6.7/6.7.0/submodules/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.qt.io/official_releases/qt/6.7/6.7.1/submodules/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix
index a327b88991ef0..43c2c88ecd799 100644
--- a/pkgs/development/libraries/qt-6/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix
@@ -266,7 +266,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.qt.io/";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ milahu nickcao LunNova ];
     platforms = platforms.unix ++ platforms.windows;
diff --git a/pkgs/development/libraries/qt-6/modules/qtmqtt.nix b/pkgs/development/libraries/qt-6/modules/qtmqtt.nix
index fc12a5fb1112c..df105c8baa3a2 100644
--- a/pkgs/development/libraries/qt-6/modules/qtmqtt.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtmqtt.nix
@@ -5,13 +5,13 @@
 
 qtModule rec {
   pname = "qtmqtt";
-  version = "6.7.0";
+  version = "6.7.1";
 
   src = fetchFromGitHub {
     owner = "qt";
     repo = "qtmqtt";
     rev = "v${version}";
-    hash = "sha256-LUYb4Wb1fLUwIvDOsVU/iSOyx9pcfPrmiFnQskbT2d8=";
+    hash = "sha256-Dl+ZJjQU0vHurnhRVMYh0ry74iXb27Zld5dT21AxVhI=";
   };
 
   propagatedBuildInputs = [ qtbase ];
diff --git a/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix b/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
index ba24fbe9294b3..39ac1245118a8 100644
--- a/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtmultimedia.nix
@@ -39,6 +39,8 @@ qtModule {
 
   patches = [
     ../patches/fix-qtgui-include-incorrect-case.patch
+    # Remove new constants since macOS 12+, since we build Qt with the macOS 11 SDK
+    ../patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch
   ] ++ lib.optionals stdenv.hostPlatform.isMinGW [
     ../patches/qtmultimedia-windows-no-uppercase-libs.patch
     ../patches/qtmultimedia-windows-resolve-function-name.patch
diff --git a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
index e6f785cd833c7..997fe0394fa25 100644
--- a/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtwebengine.nix
@@ -311,10 +311,12 @@ qtModule {
   '';
 
   meta = with lib; {
-    description = "A web engine based on the Chromium web browser";
+    description = "Web engine based on the Chromium web browser";
     platforms = [ "x86_64-darwin" "aarch64-darwin" "aarch64-linux" "armv7a-linux" "armv7l-linux" "x86_64-linux" ];
     # This build takes a long time; particularly on slow architectures
     # 1 hour on 32x3.6GHz -> maybe 12 hours on 4x2.4GHz
     timeout = 24 * 3600;
+    # Not compatible with macOS 11 without massive patching
+    broken = stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "12";
   };
 }
diff --git a/pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch b/pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch
new file mode 100644
index 0000000000000..3196a6e4158c0
--- /dev/null
+++ b/pkgs/development/libraries/qt-6/patches/qtmultimedia-darwin-revert-replace-deprecated-constant.patch
@@ -0,0 +1,50 @@
+diff --git a/src/multimedia/darwin/qdarwinmediadevices.mm b/src/multimedia/darwin/qdarwinmediadevices.mm
+index b0a108935..881066928 100644
+--- a/src/multimedia/darwin/qdarwinmediadevices.mm
++++ b/src/multimedia/darwin/qdarwinmediadevices.mm
+@@ -42,7 +42,7 @@ static AudioDeviceID defaultAudioDevice(QAudioDevice::Mode mode)
+     const AudioObjectPropertyAddress propertyAddress = {
+         selector,
+         kAudioObjectPropertyScopeGlobal,
+-        kAudioObjectPropertyElementMain,
++        kAudioObjectPropertyElementMaster,
+     };
+ 
+     if (auto audioDevice = getAudioObject<AudioDeviceID>(kAudioObjectSystemObject, propertyAddress,
+@@ -77,7 +77,7 @@ static QList<QAudioDevice> availableAudioDevices(QAudioDevice::Mode mode)
+ 
+     const AudioObjectPropertyAddress audioDevicesPropertyAddress = {
+         kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal,
+-        kAudioObjectPropertyElementMain
++        kAudioObjectPropertyElementMaster
+     };
+ 
+     if (auto audioDevices = getAudioData<AudioDeviceID>(
+@@ -130,11 +130,11 @@ static OSStatus audioDeviceChangeListener(AudioObjectID id, UInt32,
+ 
+ static constexpr AudioObjectPropertyAddress listenerAddresses[] = {
+     { kAudioHardwarePropertyDefaultInputDevice, kAudioObjectPropertyScopeGlobal,
+-      kAudioObjectPropertyElementMain },
++      kAudioObjectPropertyElementMaster },
+     { kAudioHardwarePropertyDefaultOutputDevice, kAudioObjectPropertyScopeGlobal,
+-      kAudioObjectPropertyElementMain },
++      kAudioObjectPropertyElementMaster },
+     { kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal,
+-      kAudioObjectPropertyElementMain }
++      kAudioObjectPropertyElementMaster }
+ };
+ 
+ static void setAudioListeners(QDarwinMediaDevices &instance)
+diff --git a/src/multimedia/darwin/qmacosaudiodatautils_p.h b/src/multimedia/darwin/qmacosaudiodatautils_p.h
+index 8cc2f8440..5cd6fced2 100644
+--- a/src/multimedia/darwin/qmacosaudiodatautils_p.h
++++ b/src/multimedia/darwin/qmacosaudiodatautils_p.h
+@@ -44,7 +44,7 @@ void printUnableToReadWarning(const char *logName, AudioObjectID objectID, const
+ 
+ inline static AudioObjectPropertyAddress
+ makePropertyAddress(AudioObjectPropertySelector selector, QAudioDevice::Mode mode,
+-                    AudioObjectPropertyElement element = kAudioObjectPropertyElementMain)
++                    AudioObjectPropertyElement element = kAudioObjectPropertyElementMaster)
+ {
+     return { selector,
+              mode == QAudioDevice::Input ? kAudioDevicePropertyScopeInput
diff --git a/pkgs/development/libraries/qt-6/qtModule.nix b/pkgs/development/libraries/qt-6/qtModule.nix
index addcd53aea81e..ef5aa994ce908 100644
--- a/pkgs/development/libraries/qt-6/qtModule.nix
+++ b/pkgs/development/libraries/qt-6/qtModule.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation (args // {
     pos = builtins.unsafeGetAttrPos "pname" args;
   in {
     homepage = "https://www.qt.io/";
-    description = "A cross-platform application framework for C++";
+    description = "Cross-platform application framework for C++";
     license = with licenses; [ fdl13Plus gpl2Plus lgpl21Plus lgpl3Plus ];
     maintainers = with maintainers; [ milahu nickcao ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/qt-6/srcs.nix b/pkgs/development/libraries/qt-6/srcs.nix
index 767755fcbd877..25b5f5f48bc4c 100644
--- a/pkgs/development/libraries/qt-6/srcs.nix
+++ b/pkgs/development/libraries/qt-6/srcs.nix
@@ -1,318 +1,318 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-6/
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-6
 { fetchurl, mirror }:
 
 {
   qt3d = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qt3d-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0934i5b90hyxk8s58ji7mc062wdsxlvb45y79ygvfcl6psl84fw0";
-      name = "qt3d-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qt3d-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0yrmsn02ykd3k59mqvvjf4rwmhbx05i77blv6n41nsmxh6nc17pm";
+      name = "qt3d-everywhere-src-6.7.1.tar.xz";
     };
   };
   qt5compat = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qt5compat-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1x8r9rjkyxhn2fzhj53z7biqd0hxkka5rdp0cc5s9n25hgyx8jcx";
-      name = "qt5compat-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qt5compat-everywhere-src-6.7.1.tar.xz";
+      sha256 = "02b011244vnq6v0fx78h084ff1nmxbzyrwryxrqc33qm37jbpi21";
+      name = "qt5compat-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtactiveqt = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtactiveqt-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1cyh6h4829pjsklks1agym6gzz7pz2hbydvfqd190izv2fi8a125";
-      name = "qtactiveqt-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtactiveqt-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0id5nmk8l0gyfsngq782pyg5ag5syr21dvmd4dy4kbs3w4hqf6fb";
+      name = "qtactiveqt-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtbase = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtbase-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0m5jp0rh5965d242s68wdvrxy3x1a6z3p89y8lxhxysj5sgf5chi";
-      name = "qtbase-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtbase-everywhere-src-6.7.1.tar.xz";
+      sha256 = "06ffdad2g0pcsyzicj8rgvixyx7ihfmgzvqlwxhxid6cpnhqscxp";
+      name = "qtbase-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtcharts = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtcharts-everywhere-src-6.7.0.tar.xz";
-      sha256 = "193w5grxndh0gfnyfipn7jdlskfz5b43h97zwbyh3yqvr6c597c9";
-      name = "qtcharts-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtcharts-everywhere-src-6.7.1.tar.xz";
+      sha256 = "132x7l43fm6m3jw3r8myqwr0kras161sg0ddkgaz04n8ndd8fdn2";
+      name = "qtcharts-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtconnectivity = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtconnectivity-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0k14f7fqhychxj9j6xwad9yp7wjf7ps5f427l65krxwzq6mddbq7";
-      name = "qtconnectivity-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtconnectivity-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1jrxlwh5avhri0ykzvqwy2y2r3qazs05vn5ask4l3ga2wkxhl0bh";
+      name = "qtconnectivity-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtdatavis3d = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtdatavis3d-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1a8v150bva3v9njhma7424jbczjb76l7pgzw61b0qyck326j94ss";
-      name = "qtdatavis3d-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtdatavis3d-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0z0scbmknq6bh9dqnicm3g24bf313bv3pa78lwdaggzg5z6i03ga";
+      name = "qtdatavis3d-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtdeclarative = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtdeclarative-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0b4yz9c4lba9p5xgzaymz3a8fwl8s1p8cb0nh6jwrmvlk9bkj32s";
-      name = "qtdeclarative-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtdeclarative-everywhere-src-6.7.1.tar.xz";
+      sha256 = "074zzmc1acha41dnz51gqs9x3niqyks5g356p22r6n9gxnb5q4w1";
+      name = "qtdeclarative-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtdoc = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtdoc-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0h4w06rc8xz31iy5g8cmxs9d0p9pd6nxlyjp2k6bbr2dq085w7lr";
-      name = "qtdoc-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtdoc-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0kak2d0n8fbk70zbi7ln0bda46fcqln0p43qzzid6bmc8h42ws6d";
+      name = "qtdoc-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtgraphs = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtgraphs-everywhere-src-6.7.0.tar.xz";
-      sha256 = "15clif3warl4hbgdjbpnpfgy4mi2y8hkj5sc4afhzbv2gsbd2dab";
-      name = "qtgraphs-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtgraphs-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0f5wzzs6w2cq81rzx98lyc40jw37p8708dmdm7sgx8l93jclln3i";
+      name = "qtgraphs-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtgrpc = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtgrpc-everywhere-src-6.7.0.tar.xz";
-      sha256 = "18gsi9sb4v4q2g0ccmf6nkj37vzixaaha3mk882p3qys250b26dp";
-      name = "qtgrpc-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtgrpc-everywhere-src-6.7.1.tar.xz";
+      sha256 = "186g1bndldf74hg3922vbw01mw44jy5l2y71zcgkw6r6y7w3994w";
+      name = "qtgrpc-everywhere-src-6.7.1.tar.xz";
     };
   };
   qthttpserver = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qthttpserver-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1ylvz3cny3g68lqdcy2bqii1820nyaspn28dybp7wlr15f5y7qn2";
-      name = "qthttpserver-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qthttpserver-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1nxvyiyi9y7vgxdywrn2rlyfxq4snnvxlw2awzawh905l8g8687d";
+      name = "qthttpserver-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtimageformats = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtimageformats-everywhere-src-6.7.0.tar.xz";
-      sha256 = "19r9q233pwiqqf57khdv1qfnjkqxnzfk7zhnk32i2nnxr1zf0v2i";
-      name = "qtimageformats-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtimageformats-everywhere-src-6.7.1.tar.xz";
+      sha256 = "17z7vywfs4qqkyzqmfj8jis84f8l4bw6323b8w0d0r0hfy7vjcx7";
+      name = "qtimageformats-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtlanguageserver = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtlanguageserver-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1z69fqgqbbipwfhlabs0z6axx4br1a1qjk404jnbgxxx58scp7m9";
-      name = "qtlanguageserver-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtlanguageserver-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1yclzaj93ygy5kyxi4ri6i8yzxwlikkn0hldszci03knchadmz50";
+      name = "qtlanguageserver-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtlocation = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtlocation-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0snl7a8fax0771hqaa0g653f0428x7c546zc4vsrinqppik4s15v";
-      name = "qtlocation-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtlocation-everywhere-src-6.7.1.tar.xz";
+      sha256 = "02464sv5gg8z5pmnwjba584fqw1vi0xlzlish9gs7zf95s61fw1q";
+      name = "qtlocation-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtlottie = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtlottie-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1vd27g93kjala7849ny3n4nw0xg2j7ba2i682fyhdq4r7kggn3ww";
-      name = "qtlottie-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtlottie-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0z52jh4mw1pqvcldblwn4igq888hg0p1bgnhndi89rnkrdli1pka";
+      name = "qtlottie-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtmultimedia = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtmultimedia-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0w4c0yyzgfhm6vd4qkxllh2cqw5q3giybqf9n2iyckixkvjbm57k";
-      name = "qtmultimedia-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtmultimedia-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0gndclyixwj0g5yzfpamr2fi0q288nn4h9gy76yz2nvzf91iavb5";
+      name = "qtmultimedia-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtnetworkauth = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtnetworkauth-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0iaalz7kpbjzjcrf5nmcw7322mq381s4jakfh8yks8phdxhhaccr";
-      name = "qtnetworkauth-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtnetworkauth-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0pap87c4km4isygmhdmamrfhis69jdj6j2fjgccxsb2gqc2klaq1";
+      name = "qtnetworkauth-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtpositioning = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtpositioning-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1pwxc2fhwvmq0mwrv9fak3d1bh23b7maxshyp0fs1j167jj1nq0x";
-      name = "qtpositioning-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtpositioning-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0lsgh01bnca766h3iv55fc9arrrd9ck25zlfgkljclfkp130sasw";
+      name = "qtpositioning-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtquick3d = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtquick3d-everywhere-src-6.7.0.tar.xz";
-      sha256 = "046rgvvf4a37b0anqn1h814231ibw8kxk4yd9yvk7ab57yzl7fcb";
-      name = "qtquick3d-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtquick3d-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1s9zm6akk8c0r30mabdipqybhdxihq4riapxph221nmvgz60sfff";
+      name = "qtquick3d-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtquick3dphysics = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtquick3dphysics-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1rh41sadi5l2yypskhwrcjii0llkdq2msh0bgj0g7wq924k5y140";
-      name = "qtquick3dphysics-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtquick3dphysics-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0xdxrx41f4kssjnmwrj1fza3zbr5awc73mbbb9gqxc43k11523rg";
+      name = "qtquick3dphysics-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtquickeffectmaker = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtquickeffectmaker-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1m84pjw4d2gvypgajz21xcl9di1vmswqwb0nd763bjk181kfq3rx";
-      name = "qtquickeffectmaker-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtquickeffectmaker-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1qindhqqsp9y5gf82jga1fyvs81l1pli8b3rf5f4a9pqg6n140jb";
+      name = "qtquickeffectmaker-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtquicktimeline = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtquicktimeline-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1gc96jva2nm7a3zv5zwmhrvifjlngngddm3kaivmfpbbdiy6aigb";
-      name = "qtquicktimeline-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtquicktimeline-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0i2pf9a1y50589ly00qaiik8q7ydmw2vf6jg2nq3r8dphx6j0y9d";
+      name = "qtquicktimeline-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtremoteobjects = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtremoteobjects-everywhere-src-6.7.0.tar.xz";
-      sha256 = "15f6wjszl5mxjrjd8r36l3x3p1nzhgib33bb7743ywf94pb61fm0";
-      name = "qtremoteobjects-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtremoteobjects-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1x6c95wkxd28a2dplv0956rqfr5kw96f33aqvncxcm7qp80jn0g7";
+      name = "qtremoteobjects-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtscxml = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtscxml-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0z15m5l44asp4masjxmkxqcc4x93v6n8i12qswrzfvbnp2xrfnvj";
-      name = "qtscxml-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtscxml-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0kxjcx8rp8g6rrg153xwakr3jbm1accgjmzahxkbv2g8hi942b82";
+      name = "qtscxml-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtsensors = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtsensors-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1axwywwgygcri1pfjyaiqa7hd7kivya0gr0q11v4z9ih18h1ac0w";
-      name = "qtsensors-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtsensors-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1wpv1p43h40pmmy8wya6f92aysyp9z0w3yfs2af06w8gv4bllsfm";
+      name = "qtsensors-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtserialbus = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtserialbus-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1pbnpfazgpaqzi1sz141sh9sqygibb25crk7byjzhr06hslr70a9";
-      name = "qtserialbus-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtserialbus-everywhere-src-6.7.1.tar.xz";
+      sha256 = "13v2anjsdwkkm4clkcinih2118vg5nm9dafpr47h86xq8pahafai";
+      name = "qtserialbus-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtserialport = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtserialport-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1jc1g46pgjy39vyk7inzx0kx6iziy54kgjkwz8pvmj4wihyjmw5i";
-      name = "qtserialport-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtserialport-everywhere-src-6.7.1.tar.xz";
+      sha256 = "11jqx8j62dyd5n63222zwpk5n7sg45laa6qi98p2ylpxidwa6hz5";
+      name = "qtserialport-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtshadertools = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtshadertools-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1bwqg5gn2nfm61950yhcv9q93qd2fb2cnm77074ia21gqrkzj4ry";
-      name = "qtshadertools-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtshadertools-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1hhhg7qs28mdd9s8wah2qvpkv7760jd4i10s37cbmqmjhnly71g5";
+      name = "qtshadertools-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtspeech = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtspeech-everywhere-src-6.7.0.tar.xz";
-      sha256 = "048z7lqvpqi4073lx7s83d9kqbfg59banapi7qiw4j3xhfx8wxj4";
-      name = "qtspeech-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtspeech-everywhere-src-6.7.1.tar.xz";
+      sha256 = "127ba7vqqrgg7hw2c0aix3qk8vn5xh3ilh7w1k5za3pwr0aisvvc";
+      name = "qtspeech-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtsvg = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtsvg-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0bcjpwzggrqp2gf9a1xp8g0klh9kn2amnvp2lr9n2ppz107g860m";
-      name = "qtsvg-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtsvg-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1knb0xc662ajikbhsg1j3i6j4g97xn2759dpcga1vi18f87vim9y";
+      name = "qtsvg-everywhere-src-6.7.1.tar.xz";
     };
   };
   qttools = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qttools-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0yzfmfqwn0y534z47yyk71236nnsq0v0kgsw8qiixzl2kqinpnn8";
-      name = "qttools-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qttools-everywhere-src-6.7.1.tar.xz";
+      sha256 = "094qv7mpzi3g9cbrlwix8qzfp64a5s4h82d1g699bws8cbgwslq9";
+      name = "qttools-everywhere-src-6.7.1.tar.xz";
     };
   };
   qttranslations = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qttranslations-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0mjbx9n8fh4xp9r0r4p9ynjy1iirzn3bwlyr3g6vm91c0r3q1z16";
-      name = "qttranslations-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qttranslations-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1x7vwj4f3sddq5g3mpfvyqigkc0s0ggp341l0drhw3ibhxjibmq3";
+      name = "qttranslations-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtvirtualkeyboard = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtvirtualkeyboard-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0snbl1wd5s76c8ab76bsqi3bp94h1isdwavbjm6gc1hvifhv46yn";
-      name = "qtvirtualkeyboard-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtvirtualkeyboard-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0pd8rg6qn3grlari3lgj46b85l5r6sal5g9qkf82yqkz3cyxhv3v";
+      name = "qtvirtualkeyboard-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtwayland = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtwayland-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1sks2m2phf841zl0d4sn7krm6f1ppgl7wl9arpc8i8vx47j70d6p";
-      name = "qtwayland-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtwayland-everywhere-src-6.7.1.tar.xz";
+      sha256 = "081xm13gvkxg5kv9yhwlxwixcc1wz0vas7arivfhxj81wyl7dwby";
+      name = "qtwayland-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtwebchannel = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtwebchannel-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1zzg49ii59sw64m98phsbhf97kx7nxp7k0ggxazbz0hc9r0bvgr6";
-      name = "qtwebchannel-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtwebchannel-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0vyc5mfjhsyj147wxg3ldlcn3bm895p961akcc2cw2z9zknrbndr";
+      name = "qtwebchannel-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtwebengine = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtwebengine-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1pj7q5r8wa49faxijljfnbmzbpmqc7bwcal0mcwz9haxcd1s8nqs";
-      name = "qtwebengine-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtwebengine-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0i6w4783yz58aqxidzaz69k698344fn2h5wm1sdr8zcsc0981w2k";
+      name = "qtwebengine-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtwebsockets = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtwebsockets-everywhere-src-6.7.0.tar.xz";
-      sha256 = "0dlp2ck0pkg9say92qism438i5j3ybxs0xf90j7g3k9ndgd7gz2z";
-      name = "qtwebsockets-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtwebsockets-everywhere-src-6.7.1.tar.xz";
+      sha256 = "1szy09vayk5ifd22mpz4zvwwgr5sjz3cawgnaqmcf6dqsbjac5py";
+      name = "qtwebsockets-everywhere-src-6.7.1.tar.xz";
     };
   };
   qtwebview = {
-    version = "6.7.0";
+    version = "6.7.1";
     src = fetchurl {
-      url = "${mirror}/official_releases/qt/6.7/6.7.0/submodules/qtwebview-everywhere-src-6.7.0.tar.xz";
-      sha256 = "1yawx8vd7blky5b8mxpby4k1zwgm91jvl98y17xf47yc71qy069n";
-      name = "qtwebview-everywhere-src-6.7.0.tar.xz";
+      url = "${mirror}/official_releases/qt/6.7/6.7.1/submodules/qtwebview-everywhere-src-6.7.1.tar.xz";
+      sha256 = "0swhdh3xvx82wz337lzwwi34xcq9na9hqnisraqxcd1p7qdqzkk4";
+      name = "qtwebview-everywhere-src-6.7.1.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/qtkeychain/default.nix b/pkgs/development/libraries/qtkeychain/default.nix
index 564eb31a71395..9007129cecf51 100644
--- a/pkgs/development/libraries/qtkeychain/default.nix
+++ b/pkgs/development/libraries/qtkeychain/default.nix
@@ -12,20 +12,17 @@
 
 stdenv.mkDerivation rec {
   pname = "qtkeychain";
-  version = "0.14.2";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "frankosterfeld";
     repo = "qtkeychain";
     rev = version;
-    sha256 = "sha256-aRBhg4RwK2jUQWW/OmzNSMUScaFUPdbWbApD37CXPoI=";
+    sha256 = "sha256-+1WX3ARH+jWeDiaJnX+ZlRMj+l3qvgBwcGKjB9QEJNI=";
   };
 
   dontWrapQtApps = true;
 
-  # HACK `propagatedSandboxProfile` does not appear to actually propagate the sandbox profile from `qtbase`
-  sandboxProfile = toString qtbase.__propagatedSandboxProfile or null;
-
   cmakeFlags = [
     "-DBUILD_WITH_QT6=${if lib.versions.major qtbase.version == "6" then "ON" else "OFF"}"
     "-DQT_TRANSLATIONS_DIR=share/qt/translations"
diff --git a/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix b/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
index a7372dfba22e6..3d44f556a0ffb 100644
--- a/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
+++ b/pkgs/development/libraries/qtstyleplugin-kvantum/default.nix
@@ -22,13 +22,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "qtstyleplugin-kvantum${lib.optionalString isQt5 "5"}";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${finalAttrs.version}";
-    hash = "sha256-cGMS0lEtgd64rjeEfYwJplf9rva0FtpaQMCfxyramE8=";
+    hash = "sha256-1aeXcN9DwPE8CoaxCqCNL9UEcRHJdaKxS7Ivjp3YNN8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/qtutilities/default.nix b/pkgs/development/libraries/qtutilities/default.nix
index 0ac930710bf4d..e9deed9d8ac18 100644
--- a/pkgs/development/libraries/qtutilities/default.nix
+++ b/pkgs/development/libraries/qtutilities/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "qtutilities";
-  version = "6.14.0";
+  version = "6.14.1";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "qtutilities";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-pg2SaFfFkP2v1qHo8CRCn7b9B4XKX+R4UqRNzNG4to4=";
+    hash = "sha256-WUrxBlSS1Z3+tQGmAi+d3wpqutqNjPrVOxmpUy01aqU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/quantlib/default.nix b/pkgs/development/libraries/quantlib/default.nix
index a0ca48b1afd89..a84221b1b176a 100644
--- a/pkgs/development/libraries/quantlib/default.nix
+++ b/pkgs/development/libraries/quantlib/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A free/open-source library for quantitative finance";
+    description = "Free/open-source library for quantitative finance";
     homepage = "https://quantlib.org";
     platforms = platforms.unix;
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/quarto/default.nix b/pkgs/development/libraries/quarto/default.nix
index b021b1d930f03..816139a1693d0 100644
--- a/pkgs/development/libraries/quarto/default.nix
+++ b/pkgs/development/libraries/quarto/default.nix
@@ -19,10 +19,10 @@
 
 stdenv.mkDerivation (final: {
   pname = "quarto";
-  version = "1.4.553";
+  version = "1.4.555";
   src = fetchurl {
     url = "https://github.com/quarto-dev/quarto-cli/releases/download/v${final.version}/quarto-${final.version}-linux-amd64.tar.gz";
-    sha256 = "sha256-IrdUGx4b6XRmV6RHODeWukIObwy8XnsxyCKd3rwljJA=";
+    sha256 = "sha256-uBKKgRsM7kUDeF0kMYbo6RjmiU6wq4EEcE94qqMSzt8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/quesoglc/default.nix b/pkgs/development/libraries/quesoglc/default.nix
index 440d52d08f81d..d0b4d22b87e34 100644
--- a/pkgs/development/libraries/quesoglc/default.nix
+++ b/pkgs/development/libraries/quesoglc/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libGLU libGL glew freetype fontconfig fribidi libX11 ];
   # FIXME: Configure fails to use system glew.
   meta = with lib; {
-    description = "A free implementation of the OpenGL Character Renderer";
+    description = "Free implementation of the OpenGL Character Renderer";
     longDescription = ''
       QuesoGLC is a free (as in free speech) implementation of the OpenGL
       Character Renderer (GLC). QuesoGLC is based on the FreeType library,
diff --git a/pkgs/development/libraries/quickflux/default.nix b/pkgs/development/libraries/quickflux/default.nix
index 9f56e67931911..3ab3058b478e7 100644
--- a/pkgs/development/libraries/quickflux/default.nix
+++ b/pkgs/development/libraries/quickflux/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A Flux implementation for QML";
+    description = "Flux implementation for QML";
     homepage = "https://github.com/benlau/quickflux";
     license = licenses.asl20;
     maintainers = with maintainers; [ OPNA2608 ];
diff --git a/pkgs/development/libraries/qxlsx/default.nix b/pkgs/development/libraries/qxlsx/default.nix
index 2626eefa8cd4c..45324d97e5a74 100644
--- a/pkgs/development/libraries/qxlsx/default.nix
+++ b/pkgs/development/libraries/qxlsx/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qxlsx";
-  version = "1.4.7";
+  version = "1.4.8";
 
   src = fetchFromGitHub {
     owner = "QtExcel";
     repo = "QXlsx";
     rev = "v${version}";
-    hash = "sha256-E3x2IUPMRmPSTRN01sXJ0PZaN7iBzatr2vwan2sZxf0=";
+    hash = "sha256-mMhe4yztU9I/zJFbj/0GNiIoSy7U4rQ1Y3mDvvHNKXk=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/qxmpp/default.nix b/pkgs/development/libraries/qxmpp/default.nix
index a2e80d415d186..7ea5d6a4e72d7 100644
--- a/pkgs/development/libraries/qxmpp/default.nix
+++ b/pkgs/development/libraries/qxmpp/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "qxmpp";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "qxmpp-project";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5NPqNQuVuRz9GfrJULSmTiYHUMe6VxoaQZDHhYCguWQ=";
+    sha256 = "sha256-8AF+deDRxipN+YMHE9vUyTaUbSJIckMkB7t3YVtupQs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/rabbitmq-c/default.nix b/pkgs/development/libraries/rabbitmq-c/default.nix
index a500e5dbc045c..66c70fcf4dd00 100644
--- a/pkgs/development/libraries/rabbitmq-c/default.nix
+++ b/pkgs/development/libraries/rabbitmq-c/default.nix
@@ -2,25 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "rabbitmq-c";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "alanxz";
     repo = "rabbitmq-c";
     rev = "v${version}";
-    sha256 = "sha256-4tSZ+eaLZAkSmFsGnIrRXNvn3xA/4sTKyYZ3hPUMcd0=";
+    hash = "sha256-ffdnLEgUg+4G12JntjFag3ZXMvEL42hsrY6VT58ccJ0=";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ openssl popt xmlto ];
 
-  # https://github.com/alanxz/rabbitmq-c/issues/733
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace '\$'{exec_prefix}/'$'{CMAKE_INSTALL_LIBDIR} '$'{CMAKE_INSTALL_FULL_LIBDIR} \
-      --replace '\$'{prefix}/'$'{CMAKE_INSTALL_INCLUDEDIR} '$'{CMAKE_INSTALL_FULL_INCLUDEDIR}
-  '';
-
   meta = with lib; {
     description = "RabbitMQ C AMQP client library";
     homepage = "https://github.com/alanxz/rabbitmq-c";
diff --git a/pkgs/development/libraries/range-v3/default.nix b/pkgs/development/libraries/range-v3/default.nix
index 77db5869f62a1..9b9c2bd39d648 100644
--- a/pkgs/development/libraries/range-v3/default.nix
+++ b/pkgs/development/libraries/range-v3/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake }:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "range-v3";
diff --git a/pkgs/development/libraries/rapidcheck/default.nix b/pkgs/development/libraries/rapidcheck/default.nix
index 68f2e5e096a8b..ad8252f48e8cb 100644
--- a/pkgs/development/libraries/rapidcheck/default.nix
+++ b/pkgs/development/libraries/rapidcheck/default.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rapidcheck";
-  version = "unstable-2023-12-14";
+  version = "0-unstable-2023-12-14";
 
   src = fetchFromGitHub {
     owner = "emil-e";
@@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "A C++ framework for property based testing inspired by QuickCheck";
+    description = "C++ framework for property based testing inspired by QuickCheck";
     inherit (finalAttrs.src.meta) homepage;
     maintainers = with maintainers; [ ];
     license = licenses.bsd2;
diff --git a/pkgs/development/libraries/rapidyaml/default.nix b/pkgs/development/libraries/rapidyaml/default.nix
index 68449479278f3..53994cecd3815 100644
--- a/pkgs/development/libraries/rapidyaml/default.nix
+++ b/pkgs/development/libraries/rapidyaml/default.nix
@@ -7,22 +7,23 @@
 
 stdenv.mkDerivation rec {
   pname = "rapidyaml";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "biojppm";
     repo = pname;
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "sha256-1/P6Szgng94UU8cPFAtOKMS+EmiwfW/IJl2UTolDU5s=";
+    sha256 = "sha256-p9XaMsrOgnEdb0yl52HXhNzz6YxuvTD5GCaq1a+l1bQ=";
   };
 
   nativeBuildInputs = [ cmake git ];
 
   meta = with lib; {
-    description = "A library to parse and emit YAML, and do it fast.";
+    description = "Library to parse and emit YAML, and do it fast";
     homepage = "https://github.com/biojppm/rapidyaml";
     license = licenses.mit;
     maintainers = with maintainers; [ martfont ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/raylib/default.nix b/pkgs/development/libraries/raylib/default.nix
index bb59eb9d654c1..64e327ec34afd 100644
--- a/pkgs/development/libraries/raylib/default.nix
+++ b/pkgs/development/libraries/raylib/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = with lib; {
-    description = "A simple and easy-to-use library to enjoy videogames programming";
+    description = "Simple and easy-to-use library to enjoy videogames programming";
     homepage = "https://www.raylib.com/";
     license = licenses.zlib;
     maintainers = with maintainers; [ adamlwgriffiths ];
diff --git a/pkgs/development/libraries/rdkafka/default.nix b/pkgs/development/libraries/rdkafka/default.nix
index 400c7297d22ba..3b9580840f4d8 100644
--- a/pkgs/development/libraries/rdkafka/default.nix
+++ b/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "confluentinc";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "sha256-F67aKmyMmqBVG5sF8ZwqemmfvVi/0bDjaiugKKSipuA=";
+    sha256 = "sha256-RLjshOnMmCdlv73M8siIvBZ5kVG3v2XttkLVPU+BHY4=";
   };
 
   nativeBuildInputs = [ pkg-config python3 which ];
diff --git a/pkgs/development/libraries/re2/default.nix b/pkgs/development/libraries/re2/default.nix
index d1223811c686c..2310ce33ea4f3 100644
--- a/pkgs/development/libraries/re2/default.nix
+++ b/pkgs/development/libraries/re2/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "re2";
-  version = "2024-03-01";
+  version = "2024-05-01";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "re2";
     rev = version;
-    hash = "sha256-VuI9OsfGTdVywdyVfBrSzXSjbSfevne+YQ2oOz4R3DM=";
+    hash = "sha256-p4MdHjTk0SQsBPVkEy+EceAN/QTyzBDe7Pd1hJwOs3A=";
   };
 
   outputs = [ "out" "dev" ];
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A regular expression library";
+    description = "Regular expression library";
     longDescription = ''
       RE2 is a fast, safe, thread-friendly alternative to backtracking regular
       expression engines like those used in PCRE, Perl, and Python. It is a C++
diff --git a/pkgs/development/libraries/readline/8.2.nix b/pkgs/development/libraries/readline/8.2.nix
index 72e3370576e72..7bf5caf4060f1 100644
--- a/pkgs/development/libraries/readline/8.2.nix
+++ b/pkgs/development/libraries/readline/8.2.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchpatch, fetchurl
+, updateAutotoolsGnuConfigScriptsHook
 , ncurses, termcap
 , curses-library ?
     if stdenv.hostPlatform.isWindows
@@ -20,6 +21,7 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
   propagatedBuildInputs = [ curses-library ];
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
 
   patchFlags = [ "-p0" ];
 
diff --git a/pkgs/development/libraries/readosm/default.nix b/pkgs/development/libraries/readosm/default.nix
index 8ba1f571b0287..0f746c36483c6 100644
--- a/pkgs/development/libraries/readosm/default.nix
+++ b/pkgs/development/libraries/readosm/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An open source library to extract valid data from within an Open Street Map input file";
+    description = "Open source library to extract valid data from within an Open Street Map input file";
     homepage = "https://www.gaia-gis.it/fossil/readosm";
     license = with licenses; [ mpl11 gpl2Plus lgpl21Plus ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/reproc/default.nix b/pkgs/development/libraries/reproc/default.nix
index ae920f4cb0d23..5092cc2ab7bdf 100644
--- a/pkgs/development/libraries/reproc/default.nix
+++ b/pkgs/development/libraries/reproc/default.nix
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/DaanDeMeyer/reproc";
-    description = "A cross-platform (C99/C++11) process library";
+    description = "Cross-platform (C99/C++11) process library";
     license = licenses.mit;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/libraries/resolv_wrapper/default.nix b/pkgs/development/libraries/resolv_wrapper/default.nix
index 58863d6e26425..bb58fbaad3702 100644
--- a/pkgs/development/libraries/resolv_wrapper/default.nix
+++ b/pkgs/development/libraries/resolv_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A wrapper for the user, group and hosts NSS API";
+    description = "Wrapper for the user, group and hosts NSS API";
     homepage = "https://git.samba.org/?p=uid_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/retro-gtk/default.nix b/pkgs/development/libraries/retro-gtk/default.nix
index 1323bd98a43c6..7387e69130730 100644
--- a/pkgs/development/libraries/retro-gtk/default.nix
+++ b/pkgs/development/libraries/retro-gtk/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The GTK Libretro frontend framework";
+    description = "GTK Libretro frontend framework";
     mainProgram = "retro-demo";
     longDescription = ''
       Libretro is a plugin format design to implement video game
diff --git a/pkgs/development/libraries/rlog/default.nix b/pkgs/development/libraries/rlog/default.nix
index c8661f173e672..75760fed577f0 100644
--- a/pkgs/development/libraries/rlog/default.nix
+++ b/pkgs/development/libraries/rlog/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://www.arg0.net/rlog";
-    description = "A C++ logging library used in encfs";
+    description = "C++ logging library used in encfs";
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl3;
   };
diff --git a/pkgs/development/libraries/rlottie/default.nix b/pkgs/development/libraries/rlottie/default.nix
index cbc46f819e5f4..541c805bba5bb 100644
--- a/pkgs/development/libraries/rlottie/default.nix
+++ b/pkgs/development/libraries/rlottie/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/Samsung/rlottie";
-    description = "A platform independent standalone c++ library for rendering vector based animations and art in realtime";
+    description = "Platform independent standalone c++ library for rendering vector based animations and art in realtime";
     license = with licenses; [ mit bsd3 mpl11 ftl ];
     platforms = platforms.all;
     maintainers = with maintainers; [ CRTified ];
diff --git a/pkgs/development/libraries/rnnoise-plugin/default.nix b/pkgs/development/libraries/rnnoise-plugin/default.nix
index 39a8f1a4b6a6f..ad7ba8a5a5497 100644
--- a/pkgs/development/libraries/rnnoise-plugin/default.nix
+++ b/pkgs/development/libraries/rnnoise-plugin/default.nix
@@ -17,13 +17,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "rnnoise-plugin";
-  version = "1.03";
+  version = "1.10";
 
   src = fetchFromGitHub {
     owner = "werman";
     repo = "noise-suppression-for-voice";
     rev = "v${version}";
-    sha256 = "sha256-1DgrpGYF7G5Zr9vbgtKm/Yv0HSdI7LrFYPSGKYNnNDQ=";
+    sha256 = "sha256-sfwHd5Fl2DIoGuPDjELrPp5KpApZJKzQikCJmCzhtY8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
     ];
 
   meta = with lib; {
-    description = "A real-time noise suppression plugin for voice based on Xiph's RNNoise";
+    description = "Real-time noise suppression plugin for voice based on Xiph's RNNoise";
     homepage = "https://github.com/werman/noise-suppression-for-voice";
     license = licenses.gpl3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/rocksdb/default.nix b/pkgs/development/libraries/rocksdb/default.nix
index e1518b6662f63..af52b6a9fa7c7 100644
--- a/pkgs/development/libraries/rocksdb/default.nix
+++ b/pkgs/development/libraries/rocksdb/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , ninja
 , bzip2
@@ -18,13 +17,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "rocksdb";
-  version = "9.1.0";
+  version = "9.2.1";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = finalAttrs.pname;
     rev = "v${finalAttrs.version}";
-    hash = "sha256-vRPyrXkXVVhP56n5FVYef8zbIsnnanQSpElmQLZ7mh8=";
+    hash = "sha256-Zifn5Gu/4h6TaEqSaWQ2mFdryeAarqbHWW3fKUGGFac=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
@@ -98,7 +97,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://rocksdb.org";
-    description = "A library that provides an embeddable, persistent key-value store for fast storage";
+    description = "Library that provides an embeddable, persistent key-value store for fast storage";
     changelog = "https://github.com/facebook/rocksdb/raw/v${finalAttrs.version}/HISTORY.md";
     license = licenses.asl20;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/rtrlib/default.nix b/pkgs/development/libraries/rtrlib/default.nix
index 05429a72fb667..2f0ae61b9a9c3 100644
--- a/pkgs/development/libraries/rtrlib/default.nix
+++ b/pkgs/development/libraries/rtrlib/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An open-source C implementation of the RPKI/Router Protocol client";
+    description = "Open-source C implementation of the RPKI/Router Protocol client";
     homepage = "https://github.com/rtrlib/rtrlib";
     license = licenses.mit;
     maintainers = with maintainers; [ Anillc ];
diff --git a/pkgs/development/libraries/rubberband/default.nix b/pkgs/development/libraries/rubberband/default.nix
index 7830e62ccb181..66b3dbbea3fb1 100644
--- a/pkgs/development/libraries/rubberband/default.nix
+++ b/pkgs/development/libraries/rubberband/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchurl, pkg-config, libsamplerate, libsndfile, fftw
-, lv2, jdk
+, lv2, jdk_headless
 , vamp-plugin-sdk, ladspaH, meson, ninja, darwin }:
 
 stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     hash = "sha256-2e+J4rjvn4WxOsPC+uww4grPLJ86nIxFzmN/K8leV2w=";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja jdk ];
+  nativeBuildInputs = [ pkg-config meson ninja jdk_headless ];
   buildInputs = [ libsamplerate libsndfile fftw vamp-plugin-sdk ladspaH lv2 ] ++ lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo]);
   makeFlags = [ "AR:=$(AR)" ];
diff --git a/pkgs/development/libraries/rure/default.nix b/pkgs/development/libraries/rure/default.nix
index 1771abd3367af..308eb41d1a902 100644
--- a/pkgs/development/libraries/rure/default.nix
+++ b/pkgs/development/libraries/rure/default.nix
@@ -35,7 +35,7 @@ rustPlatform.buildRustPackage {
   passthru.updateScript = ./update.sh;
 
   meta = {
-    description = "A C API for Rust's regular expression library";
+    description = "C API for Rust's regular expression library";
     homepage = "https://crates.io/crates/rure";
     license = [
       lib.licenses.mit
diff --git a/pkgs/development/libraries/rutabaga_gfx/default.nix b/pkgs/development/libraries/rutabaga_gfx/default.nix
index 6875002727357..9b8f5bec42f37 100644
--- a/pkgs/development/libraries/rutabaga_gfx/default.nix
+++ b/pkgs/development/libraries/rutabaga_gfx/default.nix
@@ -54,15 +54,23 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-wuF3Isrp+u5J8jPQoPsIOWYGNKLSNa2pLfvladAWkLs=";
   };
 
-  # make install always rebuilds
-  dontBuild = true;
+  CARGO_BUILD_TARGET = stdenv.hostPlatform.rust.rustcTargetSpec;
+  "CARGO_TARGET_${stdenv.hostPlatform.rust.cargoEnvVarTarget}_LINKER" =
+    "${stdenv.cc.targetPrefix}cc";
 
-  makeFlags = [ "prefix=$(out)" ];
-
-  preInstall = ''
+  postConfigure = ''
     cd rutabaga_gfx/ffi
+    substituteInPlace Makefile --replace-fail pkg-config "$PKG_CONFIG"
   '';
 
+  # make install always rebuilds
+  dontBuild = true;
+
+  makeFlags = [
+    "prefix=$(out)"
+    "OUT=target/${stdenv.hostPlatform.rust.cargoShortTarget}/release"
+  ];
+
   meta = with lib; {
     homepage = "https://crosvm.dev/book/appendix/rutabaga_gfx.html";
     description = "cross-platform abstraction for GPU and display virtualization";
diff --git a/pkgs/development/libraries/s2n-tls/default.nix b/pkgs/development/libraries/s2n-tls/default.nix
index 8ef3df4992618..d4a440e587c12 100644
--- a/pkgs/development/libraries/s2n-tls/default.nix
+++ b/pkgs/development/libraries/s2n-tls/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s2n-tls";
-  version = "1.4.9";
+  version = "1.4.16";
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-YH35+kCvPjeBYMMJi7YdAGk/ds3YPm5SSKpoWfbCI3M=";
+    hash = "sha256-HkpOd05/5YIDsBm4L3hLuI0obm7uAwsV1dC2/e2f5aw=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/schroedinger/default.nix b/pkgs/development/libraries/schroedinger/default.nix
index 5403d77eb7524..b4e8831b31775 100644
--- a/pkgs/development/libraries/schroedinger/default.nix
+++ b/pkgs/development/libraries/schroedinger/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An implementation of the Dirac video codec in ANSI C";
+    description = "Implementation of the Dirac video codec in ANSI C";
     homepage = "https://sourceforge.net/projects/schrodinger/";
     maintainers = [ ];
     license = [ licenses.mpl11 licenses.lgpl2 licenses.mit ];
diff --git a/pkgs/development/libraries/science/astronomy/cfitsio/default.nix b/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
index 65f7d61d02693..a12e00f9676d5 100644
--- a/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
+++ b/pkgs/development/libraries/science/astronomy/cfitsio/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "cfitsio";
-  version = "4.4.0";
+  version = "4.4.1";
 
   src = fetchurl {
     url = "https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-${finalAttrs.version}.tar.gz";
-    hash = "sha256-lZAM+VrnYIOefLlninsvrQhY1qwSI0+TS9HLa/wka6k=";
+    hash = "sha256-ZqHcPyGAD57qvZ6sV3uR/N2aq7pnj7ujuFJzGRENHSU=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/science/astronomy/indilib/default.nix b/pkgs/development/libraries/science/astronomy/indilib/default.nix
index 50ba7e8273fa8..0fd659b0e1b74 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "indilib";
-  version = "2.0.7";
+  version = "2.0.8";
 
   src = fetchFromGitHub {
     owner = "indilib";
     repo = "indi";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-sbs20BbAnvHTtJEuTWMCJrjzyvH7NSXS1+Ah5BdJZHA=";
+    hash = "sha256-qdPQMC8HCMdcbHyO8B0OFiefO+jM1ytA2dYNymE0Xuc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
index 3b512a3976dc3..c24388582d36b 100644
--- a/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
+++ b/pkgs/development/libraries/science/astronomy/indilib/indi-full.nix
@@ -6,7 +6,7 @@ let
     owner = "indilib";
     repo = "indi-3rdparty";
     rev = "v${version}";
-    hash = "sha256-u5UpI6ll2TnI02xWSaZRC5v6BOT0EHaQ2md5iY/Ymjs=";
+    hash = "sha256-0M+k3A2Lw9EU9V5bX9dGztmdcJzc71XQZv8srmY5NmY=";
   };
   indi-firmware = callPackage ./indi-firmware.nix {
     inherit version;
diff --git a/pkgs/development/libraries/science/astronomy/wcslib/default.nix b/pkgs/development/libraries/science/astronomy/wcslib/default.nix
index a2bcdfdb7c347..f51b70604bec9 100644
--- a/pkgs/development/libraries/science/astronomy/wcslib/default.nix
+++ b/pkgs/development/libraries/science/astronomy/wcslib/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wcslib";
-  version = "8.2.2";
+  version = "8.3";
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-YpgiCugX9OVSJkOsTD2iYjvnCjSEsaTzcGC+4+S9eDM=";
+    sha256 = "sha256-Qx6jQXknu8Arib+jQV3AtGaLDyGjtG+4o1JeL89hRQg=";
   };
 
   nativeBuildInputs = [ flex ];
diff --git a/pkgs/development/libraries/science/biology/bicpl/default.nix b/pkgs/development/libraries/science/biology/bicpl/default.nix
index c15689aa606a0..fd9e4f4003e03 100644
--- a/pkgs/development/libraries/science/biology/bicpl/default.nix
+++ b/pkgs/development/libraries/science/biology/bicpl/default.nix
@@ -1,19 +1,29 @@
-{ lib, stdenv, fetchFromGitHub, cmake, libminc, netpbm }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  libminc,
+  netpbm,
+}:
 
 stdenv.mkDerivation rec {
   pname = "bicpl";
-  version = "unstable-2020-10-15";
+  version = "unstable-2024-05-14";
 
-  # current master is significantly ahead of most recent release, so use Git version:
+  # master is not actively maintained, using develop and develop-apple branches
   src = fetchFromGitHub {
-    owner  = "BIC-MNI";
-    repo   = pname;
-    rev    = "a58af912a71a4c62014975b89ef37a8e72de3c9d";
-    sha256 = "0iw0pmr8xrifbx5l8a0xidfqbm1v8hwzqrw0lcmimxlzdihyri0g";
+    owner = "BIC-MNI";
+    repo = pname;
+    rev = "7e1e791483cf135fe29b8eecd7a360aa892823ae";
+    hash = "sha256-SvbtPUfEYp3IGivG+5yFdJF904miyMk+s15zwW7e7b4=";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ libminc netpbm ];
+  buildInputs = [
+    libminc
+    netpbm
+  ];
 
   cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/cmake" ];
 
@@ -25,6 +35,9 @@ stdenv.mkDerivation rec {
     description = "Brain Imaging Centre programming library";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
-    license   = with licenses; [ hpndUc gpl3Plus ];
+    license = with licenses; [
+      hpndUc
+      gpl3Plus
+    ];
   };
 }
diff --git a/pkgs/development/libraries/science/biology/htslib/default.nix b/pkgs/development/libraries/science/biology/htslib/default.nix
index 8b1aa7d01e818..8e1c0a939daf3 100644
--- a/pkgs/development/libraries/science/biology/htslib/default.nix
+++ b/pkgs/development/libraries/science/biology/htslib/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A C library for reading/writing high-throughput sequencing data";
+    description = "C library for reading/writing high-throughput sequencing data";
     license = licenses.mit;
     homepage = "http://www.htslib.org/";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch b/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch
deleted file mode 100644
index 0f886a8a63a57..0000000000000
--- a/pkgs/development/libraries/science/chemistry/avogadrolibs/fragments.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/avogadro/qtplugins/templatetool/CMakeLists.txt b/avogadro/qtplugins/templatetool/CMakeLists.txt
-index 3f68e6dd..822de4e5 100644
---- a/avogadro/qtplugins/templatetool/CMakeLists.txt
-+++ b/avogadro/qtplugins/templatetool/CMakeLists.txt
-@@ -24,7 +24,7 @@ avogadro_plugin(TemplateTool
- )
- 
- # Install the fragments
--set(_fragments "${AvogadroLibs_SOURCE_DIR}/../fragments")
-+set(_fragments "${AvogadroLibs_SOURCE_DIR}/fragments")
- 
- # Look in parallel directory for the molecule fragment repository
- if(NOT EXISTS "${_fragments}")
diff --git a/pkgs/development/libraries/science/chemistry/harminv/default.nix b/pkgs/development/libraries/science/chemistry/harminv/default.nix
index dc8289e14ce91..f9d8573ca6d5f 100644
--- a/pkgs/development/libraries/science/chemistry/harminv/default.nix
+++ b/pkgs/development/libraries/science/chemistry/harminv/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     owner = "NanoComp";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-EXEt7l69etcBdDdEDlD1ODOdhTBZCVjgY1jhRUDd/W0=";
+    hash = "sha256-HV8xylK2IOvbONYGgyaqAabp6xA7/uvN4DU7upIlZh0=";
   };
 
   # File is missing in the git checkout but required by autotools
@@ -30,11 +30,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ blas lapack ];
 
-  configureFlags = [ "--enable-shared" ];
+  configureFlags = [
+    "--enable-shared"
+    "--enable-maintainer-mode"
+  ];
 
   meta = with lib; {
     description = "Harmonic inversion algorithm of Mandelshtam: decompose signal into sum of decaying sinusoids";
-    mainProgram = "GDSIIConvert";
     homepage = "https://github.com/NanoComp/harminv";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ sheepforce markuskowa ];
diff --git a/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix b/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix
index c0da65e7c7884..c843d443e81e2 100644
--- a/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix
+++ b/pkgs/development/libraries/science/chemistry/libvdwxc/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook gfortran ];
 
-  propagatedBuildInputs = [ mpi fftwMpi ];
+  buildInputs = [ mpi fftwMpi ];
 
   preConfigure = ''
     mkdir build && cd build
diff --git a/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix b/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix
index 6c4061c4c05b9..ef77380396730 100644
--- a/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix
+++ b/pkgs/development/libraries/science/chemistry/mmtf-cpp/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation (finalAttrs: {
   buildInputs = [ msgpack ];
 
   meta = with lib; {
-    description = "A library of exchange-correlation functionals with arbitrary-order derivatives";
+    description = "Library of exchange-correlation functionals with arbitrary-order derivatives";
     homepage = "https://github.com/rcsb/mmtf-cpp";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/chemistry/mstore/default.nix b/pkgs/development/libraries/science/chemistry/mstore/default.nix
index e187a9a9833f0..c77667a8d71ae 100644
--- a/pkgs/development/libraries/science/chemistry/mstore/default.nix
+++ b/pkgs/development/libraries/science/chemistry/mstore/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mstore";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "grimme-lab";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dN2BulLS/ENRFVdJIrZRxgBV8S4d5+7BjTCGnhBbf4I=";
+    hash = "sha256-zfrxdrZ1Um52qTRNGJoqZNQuHhK3xM/mKfk0aBLrcjw=";
   };
 
   nativeBuildInputs = [ gfortran meson ninja pkg-config python3 ];
diff --git a/pkgs/development/libraries/science/chemistry/openmm/default.nix b/pkgs/development/libraries/science/chemistry/openmm/default.nix
index d146fa073dc34..723ced8b2a590 100644
--- a/pkgs/development/libraries/science/chemistry/openmm/default.nix
+++ b/pkgs/development/libraries/science/chemistry/openmm/default.nix
@@ -42,6 +42,10 @@ stdenv.mkDerivation rec {
     swig
     doxygen
     python3Packages.python
+  ] ++ lib.optionals enablePython [
+    python3Packages.build
+    python3Packages.installer
+    python3Packages.wheel
   ] ++ lib.optional enableCuda addOpenGLRunpath;
 
   buildInputs = [ fftwSinglePrec ]
@@ -84,9 +88,8 @@ stdenv.mkDerivation rec {
       export OPENMM_LIB_PATH=$out/lib
       export OPENMM_INCLUDE_PATH=$out/include
       cd python
-      ${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py build
-      ${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py install --prefix=$out
-      mv $out/lib/python*/site-packages/OpenMM*.egg/{openmm,simtk} $out/lib/python*/site-packages/.
+      ${python3Packages.python.pythonOnBuildForHost.interpreter} -m build --no-isolation --outdir dist/ --wheel
+      ${python3Packages.python.pythonOnBuildForHost.interpreter} -m installer --prefix $out dist/*.whl
     '';
 
   postFixup = ''
diff --git a/pkgs/development/libraries/science/chemistry/plumed/default.nix b/pkgs/development/libraries/science/chemistry/plumed/default.nix
index b825c8270d628..b70d2146b2da1 100644
--- a/pkgs/development/libraries/science/chemistry/plumed/default.nix
+++ b/pkgs/development/libraries/science/chemistry/plumed/default.nix
@@ -8,13 +8,13 @@ assert !blas.isILP64;
 
 stdenv.mkDerivation rec {
   pname = "plumed";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitHub {
     owner = "plumed";
     repo = "plumed2";
     rev = "v${version}";
-    hash = "sha256-yL+59f908IhbxGIylI1ydi1BPZwAapjK/vP4/h5gcHk=";
+    hash = "sha256-68/ajM87ApEXUs4xPIq7Vfmzl7Ms4ck6jnjlIv7woMs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/libraries/science/chemistry/xcfun/default.nix b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
index 0534c7b46b033..cac389333e49c 100644
--- a/pkgs/development/libraries/science/chemistry/xcfun/default.nix
+++ b/pkgs/development/libraries/science/chemistry/xcfun/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [ "-DXCFUN_MAX_ORDER=3" ];
 
   meta = with lib; {
-    description = "A library of exchange-correlation functionals with arbitrary-order derivatives";
+    description = "Library of exchange-correlation functionals with arbitrary-order derivatives";
     homepage = "https://github.com/dftlibs/xcfun";
     license = licenses.mpl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/QuadProgpp/default.nix b/pkgs/development/libraries/science/math/QuadProgpp/default.nix
index f67d68d768a0f..dfd33ed603afc 100644
--- a/pkgs/development/libraries/science/math/QuadProgpp/default.nix
+++ b/pkgs/development/libraries/science/math/QuadProgpp/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   ];
 
   meta = with lib; {
-    description = "A C++ library for Quadratic Programming";
+    description = "C++ library for Quadratic Programming";
     longDescription = ''
       QuadProg++ is a C++ library for Quadratic Programming which implements
       the Goldfarb-Idnani active-set dual method.
diff --git a/pkgs/development/libraries/science/math/blis/default.nix b/pkgs/development/libraries/science/math/blis/default.nix
index c32379f26592d..b31de4b84a70e 100644
--- a/pkgs/development/libraries/science/math/blis/default.nix
+++ b/pkgs/development/libraries/science/math/blis/default.nix
@@ -17,13 +17,13 @@ let
   blasIntSize = if blas64 then "64" else "32";
 in stdenv.mkDerivation rec {
   pname = "blis";
-  version = "0.9.0";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "flame";
     repo = "blis";
     rev = version;
-    sha256 = "sha256-1aHIdt5wCDrT1hBPnaUVThwjwDkJQ0G0+tao2iFXYpM=";
+    sha256 = "sha256-lAo6C34QQvXr3LmcsnTp4+Imi/lKxzcWu3EJkVgLvDI=";
   };
 
   inherit blas64;
diff --git a/pkgs/development/libraries/science/math/bonmin/default.nix b/pkgs/development/libraries/science/math/bonmin/default.nix
index 2bbd698f7fa7b..272d13b1711ec 100644
--- a/pkgs/development/libraries/science/math/bonmin/default.nix
+++ b/pkgs/development/libraries/science/math/bonmin/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "An open-source code for solving general MINLP (Mixed Integer NonLinear Programming) problems";
+    description = "Open-source code for solving general MINLP (Mixed Integer NonLinear Programming) problems";
     mainProgram = "bonmin";
     homepage = "https://github.com/coin-or/Bonmin";
     license = licenses.epl10;
diff --git a/pkgs/development/libraries/science/math/cholmod-extra/default.nix b/pkgs/development/libraries/science/math/cholmod-extra/default.nix
index 311ffefcfaad5..88053a41af69e 100644
--- a/pkgs/development/libraries/science/math/cholmod-extra/default.nix
+++ b/pkgs/development/libraries/science/math/cholmod-extra/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/jluttine/cholmod-extra";
-    description = "A set of additional routines for SuiteSparse CHOLMOD Module";
+    description = "Set of additional routines for SuiteSparse CHOLMOD Module";
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ jluttine ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/clblas/default.nix b/pkgs/development/libraries/science/math/clblas/default.nix
index a87d107b3a17f..e5ad0e3e63d9c 100644
--- a/pkgs/development/libraries/science/math/clblas/default.nix
+++ b/pkgs/development/libraries/science/math/clblas/default.nix
@@ -1,5 +1,6 @@
 { lib, stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , gfortran
 , blas
@@ -21,7 +22,13 @@ stdenv.mkDerivation rec {
     sha256 = "154mz52r5hm0jrp5fqrirzzbki14c1jkacj75flplnykbl36ibjs";
   };
 
-  patches = [ ./platform.patch ];
+  patches = [
+    ./platform.patch
+    (fetchpatch {
+      url = "https://github.com/clMathLibraries/clBLAS/commit/68ce5f0b824d7cf9d71b09bb235cf219defcc7b4.patch";
+      hash = "sha256-XoVcHgJ0kTPysZbM83mUX4/lvXVHKbl7s2Q8WWiUnMs=";
+    })
+  ];
 
   postPatch = ''
     sed -i -re 's/(set\(\s*Boost_USE_STATIC_LIBS\s+).*/\1OFF\ \)/g' src/CMakeLists.txt
@@ -56,7 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/clMathLibraries/clBLAS";
-    description = "A software library containing BLAS functions written in OpenCL";
+    description = "Software library containing BLAS functions written in OpenCL";
     longDescription = ''
       This package contains a library of BLAS functions on top of OpenCL.
     '';
diff --git a/pkgs/development/libraries/science/math/clblast/default.nix b/pkgs/development/libraries/science/math/clblast/default.nix
index e4bbd09a7586b..a7c8d8faee4c0 100644
--- a/pkgs/development/libraries/science/math/clblast/default.nix
+++ b/pkgs/development/libraries/science/math/clblast/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The tuned OpenCL BLAS library";
+    description = "Tuned OpenCL BLAS library";
     homepage = "https://github.com/CNugteren/CLBlast";
     license = licenses.asl20;
     maintainers = with maintainers; [ Tungsten842 ];
diff --git a/pkgs/development/libraries/science/math/ecos/default.nix b/pkgs/development/libraries/science/math/ecos/default.nix
index b60bd1fe76c11..73874641e477e 100644
--- a/pkgs/development/libraries/science/math/ecos/default.nix
+++ b/pkgs/development/libraries/science/math/ecos/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A lightweight conic solver for second-order cone programming";
+    description = "Lightweight conic solver for second-order cone programming";
     homepage = "https://www.embotech.com/ECOS";
     downloadPage = "https://github.com/embotech/ecos/releases";
     license = licenses.gpl3;
diff --git a/pkgs/development/libraries/science/math/faiss/default.nix b/pkgs/development/libraries/science/math/faiss/default.nix
index 25d6542f8da1b..59494fadfd900 100644
--- a/pkgs/development/libraries/science/math/faiss/default.nix
+++ b/pkgs/development/libraries/science/math/faiss/default.nix
@@ -97,20 +97,21 @@ stdenv.mkDerivation {
     "-DCUDAToolkit_INCLUDE_DIR=${cudaJoined}/include"
   ];
 
+  buildFlags = [
+    "faiss"
+    "demo_ivfpq_indexing"
+  ] ++ lib.optionals pythonSupport [
+    "swigfaiss"
+  ];
 
   # pip wheel->pip install commands copied over from opencv4
 
-  buildPhase = ''
-    make -j faiss
-    make demo_ivfpq_indexing
-  '' + lib.optionalString pythonSupport ''
-    make -j swigfaiss
+  postBuild = lib.optionalString pythonSupport ''
     (cd faiss/python &&
      python -m pip wheel --verbose --no-index --no-deps --no-clean --no-build-isolation --wheel-dir dist .)
   '';
 
-  installPhase = ''
-    make install
+  postInstall = ''
     mkdir -p $demos/bin
     cp ./demos/demo_ivfpq_indexing $demos/bin/
   '' + lib.optionalString pythonSupport ''
@@ -118,7 +119,7 @@ stdenv.mkDerivation {
     (cd faiss/python && python -m pip install dist/*.whl --no-index --no-warn-script-location --prefix="$out" --no-cache)
   '';
 
-  fixupPhase = lib.optionalString (pythonSupport && cudaSupport) ''
+  postFixup = lib.optionalString (pythonSupport && cudaSupport) ''
     addOpenGLRunpath $out/${pythonPackages.python.sitePackages}/faiss/*.so
     addOpenGLRunpath $demos/bin/*
   '';
@@ -144,7 +145,7 @@ stdenv.mkDerivation {
   };
 
   meta = with lib; {
-    description = "A library for efficient similarity search and clustering of dense vectors by Facebook Research";
+    description = "Library for efficient similarity search and clustering of dense vectors by Facebook Research";
     mainProgram = "demo_ivfpq_indexing";
     homepage = "https://github.com/facebookresearch/faiss";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/science/math/ipopt/default.nix b/pkgs/development/libraries/science/math/ipopt/default.nix
index a76c2f878ba7c..ac04711ff71f8 100644
--- a/pkgs/development/libraries/science/math/ipopt/default.nix
+++ b/pkgs/development/libraries/science/math/ipopt/default.nix
@@ -12,13 +12,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "ipopt";
-  version = "3.14.14";
+  version = "3.14.16";
 
   src = fetchFromGitHub {
     owner = "coin-or";
     repo = "Ipopt";
     rev = "releases/${version}";
-    sha256 = "sha256-qMPdJVLIXFePhTA6qRr1Pth/BjJ62cj9y8C1HKQJGDQ=";
+    sha256 = "sha256-ZuiZZMq7NzOm6CCJgMBgEWs8PEfM3pVr2yOWbS42l8U=";
   };
 
   CXXDEFS = [ "-DHAVE_RAND" "-DHAVE_CSTRING" "-DHAVE_CSTDIO" ];
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A software package for large-scale nonlinear optimization";
+    description = "Software package for large-scale nonlinear optimization";
     homepage = "https://projects.coin-or.org/Ipopt";
     license = licenses.epl10;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/lcalc/default.nix b/pkgs/development/libraries/science/math/lcalc/default.nix
index f6603f7d8fb82..ebab7c00809ad 100644
--- a/pkgs/development/libraries/science/math/lcalc/default.nix
+++ b/pkgs/development/libraries/science/math/lcalc/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/sagemath/lcalc";
-    description = "A program for calculating with L-functions";
+    description = "Program for calculating with L-functions";
     mainProgram = "lcalc";
     license = with licenses; [ gpl2 ];
     maintainers = teams.sage.members;
diff --git a/pkgs/development/libraries/science/math/libamplsolver/default.nix b/pkgs/development/libraries/science/math/libamplsolver/default.nix
index a40091bac8b50..f74808462ae1d 100644
--- a/pkgs/development/libraries/science/math/libamplsolver/default.nix
+++ b/pkgs/development/libraries/science/math/libamplsolver/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, substitute, fetchurl, fetchpatch }:
+{ lib, stdenv, substitute, fetchurl }:
 
 stdenv.mkDerivation rec {
   pname = "libamplsolver";
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A library of routines that help solvers work with AMPL";
+    description = "Library of routines that help solvers work with AMPL";
     homepage = "https://ampl.com/netlib/ampl/";
     license = [ licenses.mit ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix
index 47a6249ebdc62..5b08cfa7dcf07 100644
--- a/pkgs/development/libraries/science/math/libtorch/bin.nix
+++ b/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -3,6 +3,7 @@
 , fetchzip
 , lib
 , libcxx
+, llvmPackages
 
 , addOpenGLRunpath
 , patchelf
@@ -17,11 +18,11 @@ let
   # this derivation. However, we should ensure on version bumps
   # that the CUDA toolkit for `passthru.tests` is still
   # up-to-date.
-  version = "2.0.0";
+  version = "2.3.0";
   device = if cudaSupport then "cuda" else "cpu";
   srcs = import ./binary-hashes.nix version;
   unavailable = throw "libtorch is not available for this platform";
-  libcxx-for-libtorch = if stdenv.hostPlatform.system == "x86_64-darwin" then libcxx else stdenv.cc.cc.lib;
+  libcxx-for-libtorch = if stdenv.isDarwin then libcxx else stdenv.cc.cc.lib;
 in stdenv.mkDerivation {
   inherit version;
   pname = "libtorch";
@@ -71,6 +72,9 @@ in stdenv.mkDerivation {
         otool -L $f
     done
     for f in $out/lib/*.dylib; do
+      if otool -L $f | grep "@rpath/libomp.dylib" >& /dev/null; then
+        install_name_tool -change "@rpath/libomp.dylib" ${llvmPackages.openmp}/lib/libomp.dylib $f
+      fi
       install_name_tool -id $out/lib/$(basename $f) $f || true
       for rpath in $(otool -L $f | grep rpath | awk '{print $1}');do
         install_name_tool -change $rpath $out/lib/$(basename $rpath) $f
@@ -99,6 +103,9 @@ in stdenv.mkDerivation {
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
     license = licenses.bsd3;
     maintainers = with maintainers; [ junjihashimoto ];
-    platforms = platforms.unix;
+    platforms = [
+      "aarch64-darwin"
+      "x86_64-linux"
+    ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
index 83533d89b1e8b..dd8104ad5f0df 100644
--- a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
+++ b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -1,19 +1,19 @@
-version : builtins.getAttr version {
-  "2.0.0" = {
-    x86_64-darwin-cpu = {
-      name = "libtorch-macos-2.0.0.zip";
-      url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-2.0.0.zip";
-      hash = "sha256-u6y5IeYoiOC0yQ/k6JCChDs9lXWccLxUorgR8L62lkM=";
+version: builtins.getAttr version {
+ "2.3.0" = {
+     aarch64-darwin-cpu = {
+      name = "libtorch-macos-arm64-2.3.0.zip";
+      url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-arm64-2.3.0.zip";
+      hash = "sha256-l4qY1jbsECN5qm7dWJ2jSvKuQwQ/HI6G6Vq1Kh2rxkM=";
     };
     x86_64-linux-cpu = {
-      name = "libtorch-cxx11-abi-shared-with-deps-2.0.0-cpu.zip";
-      url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.0.0%2Bcpu.zip";
-      hash = "sha256-BoZQ2MC1CDVVGfX3SHC3mEpLGWO8XK7AcLcHJXDsXuc=";
+      name = "libtorch-cxx11-abi-shared-with-deps-2.3.0-cpu.zip";
+      url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-2.3.0%2Bcpu.zip";
+      hash = "sha256-dKAk6UusK2eQIcP0oMXh9cnufMpy5Ph4SGPkIPPV6ds=";
     };
     x86_64-linux-cuda = {
-      name = "libtorch-cxx11-abi-shared-with-deps-2.0.0-cu118.zip";
-      url = "https://download.pytorch.org/libtorch/cu118/libtorch-cxx11-abi-shared-with-deps-2.0.0%2Bcu118.zip";
-      hash = "sha256-Dpw9kQdA1NI9EOT7JBKwQP4wZT6lizcnKKTQ8WVJCZc=";
+      name = "libtorch-cxx11-abi-shared-with-deps-2.3.0-cu121.zip";
+      url = "https://download.pytorch.org/libtorch/cu121/libtorch-cxx11-abi-shared-with-deps-2.3.0%2Bcu121.zip";
+      hash = "sha256-6B+NF6q78I2WKFudn8bK+eNYDi1zQ7mdgv06fZbm2rE=";
     };
   };
 }
diff --git a/pkgs/development/libraries/science/math/libtorch/prefetch.sh b/pkgs/development/libraries/science/math/libtorch/prefetch.sh
index 5c6d60ae8b208..2682fe6779768 100755
--- a/pkgs/development/libraries/science/math/libtorch/prefetch.sh
+++ b/pkgs/development/libraries/science/math/libtorch/prefetch.sh
@@ -6,10 +6,11 @@ set -eou pipefail
 version=$1
 
 bucket="https://download.pytorch.org/libtorch"
-CUDA_VERSION=cu116
+CUDA_VERSION=cu121
 
 url_and_key_list=(
-  "x86_64-darwin-cpu $bucket/cpu/libtorch-macos-${version}.zip libtorch-macos-${version}.zip"
+  "aarch64-darwin-cpu $bucket/cpu/libtorch-macos-arm64-${version}.zip libtorch-macos-arm64-${version}.zip"
+  "x86_64-darwin-cpu $bucket/cpu/libtorch-macos-x86_64-${version}.zip libtorch-macos-x86_64-${version}.zip"
   "x86_64-linux-cpu $bucket/cpu/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcpu.zip libtorch-cxx11-abi-shared-with-deps-${version}-cpu.zip"
   "x86_64-linux-cuda $bucket/${CUDA_VERSION}/libtorch-cxx11-abi-shared-with-deps-${version}%2B${CUDA_VERSION}.zip libtorch-cxx11-abi-shared-with-deps-${version}-${CUDA_VERSION}.zip"
 )
diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix
index a7940cd1db8d7..a4b8c2f79140d 100644
--- a/pkgs/development/libraries/science/math/libtorch/test/default.nix
+++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -27,7 +27,13 @@ in stdenv.mkDerivation {
   pname = "libtorch-test";
   version = libtorch-bin.version;
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./CMakeLists.txt
+      ./test.cpp
+    ];
+  };
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix
index 7ecd6a88d13c9..842bc3af9834a 100644
--- a/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/pkgs/development/libraries/science/math/openblas/default.nix
@@ -142,7 +142,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openblas";
-  version = "0.3.26";
+  version = "0.3.27";
 
   outputs = [ "out" "dev" ];
 
@@ -150,9 +150,17 @@ stdenv.mkDerivation rec {
     owner = "OpenMathLib";
     repo = "OpenBLAS";
     rev = "v${version}";
-    hash = "sha256-AA3+x3SXkcg3g7bROZYLpWAbxnRedmQBZPe+rBJKxJ8=";
+    hash = "sha256-VKDFSPwHGZMa2DoOXbSKNQRsl07LatMLK1lHVcEep8U=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "no-gemm3m-tests-static.patch";
+      url = "https://github.com/OpenMathLib/OpenBLAS/commit/48e017de095018c60d83355804a3075658b4970c.patch";
+      hash = "sha256-Wa6EE0M1H0efVn26pOKpi0dFGLuPuzmvAzpBLrAYe5k=";
+    })
+  ];
+
   postPatch = ''
     # cc1: error: invalid feature modifier 'sve2' in '-march=armv8.5-a+sve+sve2+bf16'
     substituteInPlace Makefile.arm64 --replace "+sve2+bf16" ""
@@ -255,7 +263,7 @@ EOF
   '';
 
   passthru.tests = {
-    inherit (python3.pkgs) numpy scipy;
+    inherit (python3.pkgs) numpy scipy scikit-learn;
     inherit ceres-solver giac octave opencv;
   };
 
diff --git a/pkgs/development/libraries/science/math/openspecfun/default.nix b/pkgs/development/libraries/science/math/openspecfun/default.nix
index 14befd6d11fe1..4084aa83a20a4 100644
--- a/pkgs/development/libraries/science/math/openspecfun/default.nix
+++ b/pkgs/development/libraries/science/math/openspecfun/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "openspecfun";
-  version = "0.5.6";
+  version = "0.5.7";
   src = fetchFromGitHub {
     owner = "JuliaLang";
     repo = "openspecfun";
     rev = "v${version}";
-    sha256 = "sha256-4MPoRMtDTkdvDfhNXKk/80pZjXRNEPcysLNTb5ohxWk=";
+    sha256 = "sha256-fx9z6bbU2V4x6Pr7/vmlSxkWxZ6qTYuPxnfqKLv08CA=";
   };
 
   makeFlags = [ "prefix=$(out)" ];
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ gfortran ];
 
   meta = {
-    description = "A collection of special mathematical functions";
+    description = "Collection of special mathematical functions";
     homepage = "https://github.com/JuliaLang/openspecfun";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.ttuegel ];
diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/development/libraries/science/math/or-tools/default.nix
index 1b17f95761752..acb0ece75463c 100644
--- a/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -2,6 +2,7 @@
 , bzip2
 , cbc
 , cmake
+, DarwinTools # sw_vers
 , eigen
 , ensureNewerSourcesForZipFilesHook
 , fetchFromGitHub
@@ -72,6 +73,8 @@ stdenv.mkDerivation rec {
     python.pythonOnBuildForHost
     swig4
     unzip
+  ] ++ lib.optionals stdenv.isDarwin [
+    DarwinTools
   ] ++ (with python.pythonOnBuildForHost.pkgs; [
     pip
     mypy-protobuf
diff --git a/pkgs/development/libraries/science/math/osi/default.nix b/pkgs/development/libraries/science/math/osi/default.nix
index a6bc5a086251c..45d5fc5b1f9b5 100644
--- a/pkgs/development/libraries/science/math/osi/default.nix
+++ b/pkgs/development/libraries/science/math/osi/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osi";
-  version = "0.108.9";
+  version = "0.108.10";
 
   src = fetchFromGitHub {
     owner = "coin-or";
     repo = "Osi";
     rev = "releases/${version}";
-    hash = "sha256-ueIa9CL4K5ygKpkMRvfuWR0emEG6omg65ZKCsConWsw=";
+    hash = "sha256-rHNGnnDFU9UrszjjkZQkgWCfjjBIQba6vVbK/HLpRsQ=";
   };
 
   buildInputs =
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   passthru = { inherit withGurobi withCplex; };
 
   meta = with lib; {
-    description = "An abstract base class to a generic linear programming (LP) solver";
+    description = "Abstract base class to a generic linear programming (LP) solver";
     homepage = "https://github.com/coin-or/Osi";
     license = licenses.epl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/science/math/osqp/default.nix b/pkgs/development/libraries/science/math/osqp/default.nix
index bf22e1d74d931..d308302e2c9f3 100644
--- a/pkgs/development/libraries/science/math/osqp/default.nix
+++ b/pkgs/development/libraries/science/math/osqp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
-    description = "A quadratic programming solver using operator splitting";
+    description = "Quadratic programming solver using operator splitting";
     homepage = "https://osqp.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ taktoa ];
diff --git a/pkgs/development/libraries/science/math/parmetis/default.nix b/pkgs/development/libraries/science/math/parmetis/default.nix
index db70bf8dd7a4b..5023390a182cb 100644
--- a/pkgs/development/libraries/science/math/parmetis/default.nix
+++ b/pkgs/development/libraries/science/math/parmetis/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
+    description = "MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
     homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview";
     platforms = platforms.all;
     license = licenses.unfree;
diff --git a/pkgs/development/libraries/science/math/planarity/default.nix b/pkgs/development/libraries/science/math/planarity/default.nix
index 196ee5de576b9..21791267e1aec 100644
--- a/pkgs/development/libraries/science/math/planarity/default.nix
+++ b/pkgs/development/libraries/science/math/planarity/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/graph-algorithms/edge-addition-planarity-suite";
-    description = "A library for implementing graph algorithms";
+    description = "Library for implementing graph algorithms";
     mainProgram = "planarity";
     license = licenses.bsd3;
     maintainers = teams.sage.members;
diff --git a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
index 84949e0a53447..6ace83fd043d9 100644
--- a/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse-graphblas";
-  version = "9.1.0";
+  version = "9.2.0";
 
   outputs = [ "out" "dev" ];
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    hash = "sha256-YK0REOqoNa55tQt6NH/0QQ07pzAImDR5kC00sbFILH8=";
+    hash = "sha256-UtJ5AXbmoUA1NokgXDUDnhCZzOT1bTen6C89bsCWEIo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/science/math/suitesparse/4.2.nix b/pkgs/development/libraries/science/math/suitesparse/4.2.nix
index b8ce3eca888ca..c87bc4d31a8c2 100644
--- a/pkgs/development/libraries/science/math/suitesparse/4.2.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/4.2.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
-    description = "A suite of sparse matrix algorithms";
+    description = "Suite of sparse matrix algorithms";
     license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/suitesparse/4.4.nix b/pkgs/development/libraries/science/math/suitesparse/4.4.nix
index cbc24b1546565..f47b5c0ce818f 100644
--- a/pkgs/development/libraries/science/math/suitesparse/4.4.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/4.4.nix
@@ -91,7 +91,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
-    description = "A suite of sparse matrix algorithms";
+    description = "Suite of sparse matrix algorithms";
     license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index 9561cf2ed7795..fcfd9b56a1b14 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
-    description = "A suite of sparse matrix algorithms";
+    description = "Suite of sparse matrix algorithms";
     license = with licenses; [ bsd2 gpl2Plus lgpl21Plus ];
     maintainers = with maintainers; [ ttuegel ];
     platforms = with platforms; unix;
diff --git a/pkgs/development/libraries/science/math/superlu/default.nix b/pkgs/development/libraries/science/math/superlu/default.nix
index f99e86ffe478c..4f52c2d6c507a 100644
--- a/pkgs/development/libraries/science/math/superlu/default.nix
+++ b/pkgs/development/libraries/science/math/superlu/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/";
     license = "http://crd-legacy.lbl.gov/~xiaoye/SuperLU/License.txt";
-    description = "A library for the solution of large, sparse, nonsymmetric systems of linear equations";
+    description = "Library for the solution of large, sparse, nonsymmetric systems of linear equations";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch b/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
index cbcf18b4cdb23..97c0a7dad3005 100644
--- a/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
+++ b/pkgs/development/libraries/science/math/sympow/clean-extra-logfile-output-from-pari.patch
@@ -13,18 +13,18 @@ Date:   Tue Mar 2 22:07:11 2021 -0300
     mechanism already in sympow to trim this new message.
 
 diff --git a/Configure b/Configure
-index 1ef9756..776bec2 100755
+index 53b556e..53999ae 100755
 --- a/Configure
 +++ b/Configure
 @@ -322,7 +322,7 @@ echo "datafiles/param_data: \$(OTHERb)" >> $FILE
  echo "	\$(MKDIR) -p datafiles" >> $FILE
  echo "	\$(TOUCH) datafiles/param_data" >> $FILE
  echo "	\$(SH) armd.sh" >> $FILE
--echo "	\$(SED) -i -e '/logfile =/d' datafiles/*.txt" >> $FILE
+-echo "	\$(SED) -i -e '/logfile =/d'  datafiles/*.txt" >> $FILE
 +echo "	\$(SED) -i -e '/logfile /d' datafiles/*.txt" >> $FILE
+ echo "	\$(SED) -i -e '/logfile is/d' datafiles/*.txt" >> $FILE
  echo "sympow.1: sympow" >> $FILE
  echo "	\$(HELP2MAN) \$(H2MFLAGS) -s 1 -n \"SYMPOW program\" -I sympow.h2m -o \$@ ./\$<" >> $FILE
- echo "clean:" >> $FILE
 diff --git a/generate.c b/generate.c
 index dbb811f..783320c 100644
 --- a/generate.c
diff --git a/pkgs/development/libraries/science/math/sympow/default.nix b/pkgs/development/libraries/science/math/sympow/default.nix
index 1033f26f43603..91daf30686f8f 100644
--- a/pkgs/development/libraries/science/math/sympow/default.nix
+++ b/pkgs/development/libraries/science/math/sympow/default.nix
@@ -1,16 +1,17 @@
-{ lib, stdenv
-, fetchFromGitLab
-, fetchpatch
-, makeWrapper
-, which
-, autoconf
-, help2man
-, file
-, pari
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  makeWrapper,
+  which,
+  autoconf,
+  help2man,
+  file,
+  pari,
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.023.6";
+  version = "2.023.7";
   pname = "sympow";
 
   src = fetchFromGitLab {
@@ -18,17 +19,10 @@ stdenv.mkDerivation rec {
     owner = "forks";
     repo = "sympow";
     rev = "v${version}";
-    sha256 = "132l0xv00ld1svvv9wh99wfra4zzjv2885h2sq0dsl98wiyvi5zl";
+    hash = "sha256-sex8gRiBdTcVMV3nSeiTYamAjPoXQdiiZwjRmeKA+mc=";
   };
 
-  patches = [
-    ./clean-extra-logfile-output-from-pari.patch
-    (fetchpatch {
-      name = "null-terminate-dupdirname.patch";
-      url = "https://gitlab.com/rezozer/forks/sympow/-/merge_requests/5.diff";
-      sha256 = "sha256-yKjio+qN9teL8L+mb7WOBN/iv545vRIxW20FJU37oO4=";
-    })
-  ];
+  patches = [ ./clean-extra-logfile-output-from-pari.patch ];
 
   postUnpack = ''
     patchShebangs .
@@ -66,12 +60,11 @@ stdenv.mkDerivation rec {
   # Example from the README as a sanity check.
   doInstallCheck = true;
   installCheckPhase = ''
-    export HOME="$TMP/home"
-    mkdir -p "$HOME"
+    export HOME=$TMPDIR
     "$out/bin/sympow" -sp 2p16 -curve "[1,2,3,4,5]" | grep '8.3705'
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Compute special values of symmetric power elliptic curve L-functions";
     mainProgram = "sympow";
     license = {
@@ -79,7 +72,7 @@ stdenv.mkDerivation rec {
       fullName = "Custom, BSD-like. See COPYING file.";
       free = true;
     };
-    maintainers = teams.sage.members;
-    platforms = platforms.linux;
+    maintainers = lib.teams.sage.members;
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/libraries/science/math/tensorflow-lite/default.nix b/pkgs/development/libraries/science/math/tensorflow-lite/default.nix
index 1bee7f46d37ca..4ecd08d103fac 100644
--- a/pkgs/development/libraries/science/math/tensorflow-lite/default.nix
+++ b/pkgs/development/libraries/science/math/tensorflow-lite/default.nix
@@ -99,7 +99,7 @@ buildBazelPackage rec {
   configurePlatforms = [];
 
   meta = with lib; {
-    description = "An open source deep learning framework for on-device inference.";
+    description = "Open source deep learning framework for on-device inference";
     homepage = "https://www.tensorflow.org/lite";
     license = licenses.asl20;
     maintainers = with maintainers; [ mschwaig cpcloud ];
diff --git a/pkgs/development/libraries/science/math/zn_poly/default.nix b/pkgs/development/libraries/science/math/zn_poly/default.nix
index bdaf6e6284ef1..1c61bb07471be 100644
--- a/pkgs/development/libraries/science/math/zn_poly/default.nix
+++ b/pkgs/development/libraries/science/math/zn_poly/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitLab
-, fetchpatch
 , gmp
 , python3
 , tune ? false # tune to hardware, impure
diff --git a/pkgs/development/libraries/science/networking/ns-3/default.nix b/pkgs/development/libraries/science/networking/ns-3/default.nix
index fa6e5e48f8462..6e63520031c14 100644
--- a/pkgs/development/libraries/science/networking/ns-3/default.nix
+++ b/pkgs/development/libraries/science/networking/ns-3/default.nix
@@ -1,5 +1,4 @@
 { stdenv
-, breakpointHook
 , fetchFromGitLab
 , python
 , libxml2
@@ -79,7 +78,7 @@ stdenv.mkDerivation rec {
     sqlite.dev
     gsl
     boost
-    root
+    root # provides cppyy
     glib.out
     glib.dev
     libpcap
@@ -134,7 +133,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.nsnam.org";
     license = licenses.gpl3;
-    description = "A discrete time event network simulator";
+    description = "Discrete time event network simulator";
     platforms = with platforms; unix;
     maintainers = with maintainers; [ teto rgrunbla ];
     # never built on aarch64-darwin since first introduction in nixpkgs
diff --git a/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix b/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
index 07d978641663d..dbb62fd24f061 100644
--- a/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
+++ b/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A command line tool that compiles a TensorFlow Lite model into an Edge TPU compatible file.";
+    description = "Command line tool that compiles a TensorFlow Lite model into an Edge TPU compatible file";
     mainProgram = "edgetpu_compiler";
     homepage = "https://coral.ai/docs/edgetpu/compiler";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
diff --git a/pkgs/development/libraries/scope-lite/default.nix b/pkgs/development/libraries/scope-lite/default.nix
index 40cad6a5fc3c7..37cf8d12fd00e 100644
--- a/pkgs/development/libraries/scope-lite/default.nix
+++ b/pkgs/development/libraries/scope-lite/default.nix
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ];
 
   meta = {
-    description = "A migration path to C++ library extensions scope_exit, scope_fail, scope_success, unique_resource";
+    description = "Migration path to C++ library extensions scope_exit, scope_fail, scope_success, unique_resource";
     license = lib.licenses.boost;
     maintainers = [ lib.maintainers.shlevy ];
     homepage = "https://github.com/martinmoene/scope-lite";
diff --git a/pkgs/development/libraries/scriptaculous/default.nix b/pkgs/development/libraries/scriptaculous/default.nix
index e3c8ea00f4467..50171324b386e 100644
--- a/pkgs/development/libraries/scriptaculous/default.nix
+++ b/pkgs/development/libraries/scriptaculous/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A set of JavaScript libraries to enhance the user interface of web sites";
+    description = "Set of JavaScript libraries to enhance the user interface of web sites";
     longDescription = ''
       script.aculo.us provides you with
       easy-to-use, cross-browser user
diff --git a/pkgs/development/libraries/sentry-native/default.nix b/pkgs/development/libraries/sentry-native/default.nix
index ec95184707d02..38ebc3f42a096 100644
--- a/pkgs/development/libraries/sentry-native/default.nix
+++ b/pkgs/development/libraries/sentry-native/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sentry-native";
-  version = "0.7.2";
+  version = "0.7.6";
 
   src = fetchFromGitHub {
     owner = "getsentry";
     repo = "sentry-native";
     rev = version;
-    hash = "sha256-0yFRDQ/f0oVbpZ4wev28xCTVkbXr58Tt0Czda3ppRWk=";
+    hash = "sha256-yriFV6OLk+miaKKWQKd08MmwDx0blkiiyq6gQHUaNWE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/serd/default.nix b/pkgs/development/libraries/serd/default.nix
index 8bb82d4809431..707a77006acbe 100644
--- a/pkgs/development/libraries/serd/default.nix
+++ b/pkgs/development/libraries/serd/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples";
+    description = "Lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples";
     homepage = "https://drobilla.net/software/serd";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
diff --git a/pkgs/development/libraries/sharness/default.nix b/pkgs/development/libraries/sharness/default.nix
index ec064a74c72f2..7829b0009b498 100644
--- a/pkgs/development/libraries/sharness/default.nix
+++ b/pkgs/development/libraries/sharness/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchurl
 , perl
 , perlPackages
 , sharnessExtensions ? {} }:
diff --git a/pkgs/development/libraries/shhmsg/default.nix b/pkgs/development/libraries/shhmsg/default.nix
index 901ee48adeceb..ad6a40716bcdd 100644
--- a/pkgs/development/libraries/shhmsg/default.nix
+++ b/pkgs/development/libraries/shhmsg/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTBASEDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A library for displaying messages";
+    description = "Library for displaying messages";
     homepage = "https://shh.thathost.com/pub-unix/";
     license = licenses.artistic1;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/shhopt/default.nix b/pkgs/development/libraries/shhopt/default.nix
index 664d4f3330a05..324cb8203484b 100644
--- a/pkgs/development/libraries/shhopt/default.nix
+++ b/pkgs/development/libraries/shhopt/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   installFlags = [ "INSTBASEDIR=$(out)" ];
 
   meta = with lib; {
-    description = "A library for parsing command line options";
+    description = "Library for parsing command line options";
     homepage = "https://shh.thathost.com/pub-unix/";
     license = licenses.artistic1;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/shibboleth-sp/default.nix b/pkgs/development/libraries/shibboleth-sp/default.nix
index ba99564713100..da63b22f9e7ee 100644
--- a/pkgs/development/libraries/shibboleth-sp/default.nix
+++ b/pkgs/development/libraries/shibboleth-sp/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchgit, autoreconfHook, boost, fcgi, openssl, opensaml-cpp, log4shib, pkg-config, xercesc, xml-security-c, xml-tooling-c }:
+{ lib, stdenv, fetchgit, autoreconfHook, boost, fcgi, openssl, opensaml-cpp, log4shib, pkg-config, xercesc, xml-security-c, xml-tooling-c, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "shibboleth-sp";
@@ -11,17 +11,20 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ boost fcgi openssl opensaml-cpp log4shib xercesc xml-security-c xml-tooling-c ];
+  buildInputs = [ boost fcgi openssl opensaml-cpp log4shib xercesc xml-security-c xml-tooling-c ]
+    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+      CoreServices
+      SystemConfiguration
+    ]);
 
   configureFlags = [
     "--without-apxs"
     "--with-xmltooling=${xml-tooling-c}"
     "--with-saml=${opensaml-cpp}"
     "--with-fastcgi"
+    "CXXFLAGS=-std=c++14"
   ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.isDarwin) "-std=c++14";
-
   enableParallelBuilding = true;
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/sigslot/default.nix b/pkgs/development/libraries/sigslot/default.nix
index 8bc51fdd9ec50..8a97ab9d32e9a 100644
--- a/pkgs/development/libraries/sigslot/default.nix
+++ b/pkgs/development/libraries/sigslot/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   meta = with lib; {
-    description = "A header-only, thread safe implementation of signal-slots for C++";
+    description = "Header-only, thread safe implementation of signal-slots for C++";
     license = licenses.mit;
     homepage = "https://github.com/palacaze/sigslot";
     maintainers = with maintainers; [ azahi ];
diff --git a/pkgs/development/libraries/silgraphite/graphite2.nix b/pkgs/development/libraries/silgraphite/graphite2.nix
index 03926aebbceaa..60a4af6d0a730 100644
--- a/pkgs/development/libraries/silgraphite/graphite2.nix
+++ b/pkgs/development/libraries/silgraphite/graphite2.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation (finalAttrs: {
   };
 
   meta = with lib; {
-    description = "An advanced font engine";
+    description = "Advanced font engine";
     homepage = "https://graphite.sil.org/";
     license = licenses.lgpl21;
     maintainers = [ maintainers.raskin ];
diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix
index b836220efaffe..4d15113f3c9af 100644
--- a/pkgs/development/libraries/simdjson/default.nix
+++ b/pkgs/development/libraries/simdjson/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "simdjson";
-  version = "3.9.1";
+  version = "3.9.4";
 
   src = fetchFromGitHub {
     owner = "simdjson";
     repo = "simdjson";
     rev = "v${version}";
-    sha256 = "sha256-Az5QZNnzLYpEE7O+1/VceIT6vykkg8vMuAuN9u8OseM=";
+    sha256 = "sha256-iTlIdLNOr1rRBnCwnI34e2RLL18Fmc/kRSMdZcOLp98=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/slang/default.nix b/pkgs/development/libraries/slang/default.nix
index ab1d9ef50c44d..162bc8395d998 100644
--- a/pkgs/development/libraries/slang/default.nix
+++ b/pkgs/development/libraries/slang/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A small, embeddable multi-platform programming library";
+    description = "Small, embeddable multi-platform programming library";
     longDescription = ''
       S-Lang is an interpreted language that was designed from the start to be
       easily embedded into a program to provide it with a powerful extension
diff --git a/pkgs/development/libraries/slib/default.nix b/pkgs/development/libraries/slib/default.nix
index c3c5965816f4f..84b21e2c4fa9c 100644
--- a/pkgs/development/libraries/slib/default.nix
+++ b/pkgs/development/libraries/slib/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   setupHook = ./setup-hook.sh;
 
   meta = {
-    description = "The SLIB Portable Scheme Library";
+    description = "SLIB Portable Scheme Library";
     mainProgram = "slib";
 
     longDescription = ''
diff --git a/pkgs/development/libraries/smooth/default.nix b/pkgs/development/libraries/smooth/default.nix
index 402500dc9528d..3cb227b12d3fe 100644
--- a/pkgs/development/libraries/smooth/default.nix
+++ b/pkgs/development/libraries/smooth/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "The smooth Class Library";
+    description = "Smooth Class Library";
     mainProgram = "smooth-translator";
     license = licenses.artistic2;
     homepage = "http://www.smooth-project.org/";
diff --git a/pkgs/development/libraries/snap7/default.nix b/pkgs/development/libraries/snap7/default.nix
index f83ee00d04fd1..39cdf6d2b45e2 100644
--- a/pkgs/development/libraries/snap7/default.nix
+++ b/pkgs/development/libraries/snap7/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchzip, p7zip }:
+{ stdenv, lib, fetchzip, p7zip }:
 
 stdenv.mkDerivation rec {
   pname = "snap7";
diff --git a/pkgs/development/libraries/snappy/default.nix b/pkgs/development/libraries/snappy/default.nix
index 004dd388385fd..869c56ed73007 100644
--- a/pkgs/development/libraries/snappy/default.nix
+++ b/pkgs/development/libraries/snappy/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snappy";
-  version = "1.1.10";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "snappy";
     rev = version;
-    hash = "sha256-wYZkKVDXKCugycx/ZYhjV0BjM/NrEM0R6A4WFhs/WPU=";
+    hash = "sha256-mpEeUoJs+lGlqh1m6Mmr8UnbtQDn/8kfkeQdFwo2rQ0=";
   };
 
   patches = [
@@ -23,11 +23,6 @@ stdenv.mkDerivation rec {
       url = "https://build.opensuse.org/public/source/openSUSE:Factory/snappy/reenable-rtti.patch?rev=a759aa6fba405cd40025e3f0ab89941d";
       sha256 = "sha256-RMuM5yd6zP1eekN/+vfS54EyY4cFbGDVor1E1vj3134=";
     })
-    # Fix -Wsign-compare warning on clang.
-    (fetchpatch {
-      url = "https://github.com/google/snappy/commit/27f34a580be4a3becf5f8c0cba13433f53c21337.patch";
-      sha256 = "sha256-eq6ueeMAkd2bYmPJcKAZZzd5QlXyeWOrsxFIwR8KOpQ=";
-    })
   ];
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/soci/bc-soci.nix b/pkgs/development/libraries/soci/bc-soci.nix
index d728d61a8f57e..a3c967d80fe40 100644
--- a/pkgs/development/libraries/soci/bc-soci.nix
+++ b/pkgs/development/libraries/soci/bc-soci.nix
@@ -44,7 +44,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    description = "Database access library for C++. Belledonne Communications' fork for Linphone.";
+    description = "Database access library for C++. Belledonne Communications' fork for Linphone";
     homepage = "https://gitlab.linphone.org/BC/public/external/soci";
     license = licenses.boost;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/socket_wrapper/default.nix b/pkgs/development/libraries/socket_wrapper/default.nix
index 0a7f5ac91eaa9..d73c521997a08 100644
--- a/pkgs/development/libraries/socket_wrapper/default.nix
+++ b/pkgs/development/libraries/socket_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A library passing all socket communications through unix sockets";
+    description = "Library passing all socket communications through unix sockets";
     homepage = "https://git.samba.org/?p=socket_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/sope/default.nix b/pkgs/development/libraries/sope/default.nix
index fb77eebce1e9c..f8f1af00fe66b 100644
--- a/pkgs/development/libraries/sope/default.nix
+++ b/pkgs/development/libraries/sope/default.nix
@@ -55,7 +55,7 @@ gnustep.stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "An extensive set of frameworks which form a complete Web application server environment";
+    description = "Extensive set of frameworks which form a complete Web application server environment";
     license = licenses.publicDomain;
     homepage = "https://github.com/inverse-inc/sope";
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/sord/default.nix b/pkgs/development/libraries/sord/default.nix
index 6ce3ca60c0f59..b04e1fbbf001f 100644
--- a/pkgs/development/libraries/sord/default.nix
+++ b/pkgs/development/libraries/sord/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://drobilla.net/software/sord";
-    description = "A lightweight C library for storing RDF data in memory";
+    description = "Lightweight C library for storing RDF data in memory";
     license = with licenses; [ bsd0 isc ];
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/soundtouch/default.nix b/pkgs/development/libraries/soundtouch/default.nix
index 2778f7ff6f7cd..40179b269efd9 100644
--- a/pkgs/development/libraries/soundtouch/default.nix
+++ b/pkgs/development/libraries/soundtouch/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A program and library for changing the tempo, pitch and playback rate of audio";
+    description = "Program and library for changing the tempo, pitch and playback rate of audio";
     homepage = "https://www.surina.net/soundtouch/";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ orivej ];
diff --git a/pkgs/development/libraries/soxt/default.nix b/pkgs/development/libraries/soxt/default.nix
index 4e155f496ec26..021554c3a1205 100644
--- a/pkgs/development/libraries/soxt/default.nix
+++ b/pkgs/development/libraries/soxt/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home";
     license = licenses.bsd3;
-    description = "A GUI binding for using Open Inventor with Xt/Motif";
+    description = "GUI binding for using Open Inventor with Xt/Motif";
     maintainers = with maintainers; [ tmplt ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/libraries/span-lite/default.nix b/pkgs/development/libraries/span-lite/default.nix
index 724870e0751cc..d0a3cd15e7bba 100644
--- a/pkgs/development/libraries/span-lite/default.nix
+++ b/pkgs/development/libraries/span-lite/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    description = "A C++20-like span for C++98, C++11 and later in a single-file header-only library";
+    description = "C++20-like span for C++98, C++11 and later in a single-file header-only library";
     homepage = "https://github.com/martinmoene/span-lite";
     license = lib.licenses.bsd1;
     maintainers = with lib.maintainers; [ icewind1991 ];
diff --git a/pkgs/development/libraries/spandsp/3.nix b/pkgs/development/libraries/spandsp/3.nix
index 9e916273809f0..772388405c49f 100644
--- a/pkgs/development/libraries/spandsp/3.nix
+++ b/pkgs/development/libraries/spandsp/3.nix
@@ -1,11 +1,4 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, audiofile
-, libtiff
-, autoreconfHook
-, fetchpatch
-, buildPackages
+{ fetchFromGitHub
 , callPackage
 }:
 
diff --git a/pkgs/development/libraries/spandsp/common.nix b/pkgs/development/libraries/spandsp/common.nix
index 6b58230b80da0..61439924b749d 100644
--- a/pkgs/development/libraries/spandsp/common.nix
+++ b/pkgs/development/libraries/spandsp/common.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, fetchurl
 , audiofile
 , libtiff
 , buildPackages
@@ -42,7 +41,7 @@ stdenv.mkDerivation (finalAttrs: {
   strictDeps = true;
 
   meta = {
-    description = "A portable and modular SIP User-Agent with audio and video support";
+    description = "Portable and modular SIP User-Agent with audio and video support";
     homepage = "https://github.com/freeswitch/spandsp";
     platforms = with lib.platforms; unix;
     maintainers = with lib.maintainers; [ misuzu ];
diff --git a/pkgs/development/libraries/spandsp/default.nix b/pkgs/development/libraries/spandsp/default.nix
index cf5e53c3f9117..38e250ddef907 100644
--- a/pkgs/development/libraries/spandsp/default.nix
+++ b/pkgs/development/libraries/spandsp/default.nix
@@ -1,11 +1,4 @@
-{ lib
-, stdenv
-, fetchurl
-, audiofile
-, libtiff
-, buildPackages
-, fetchpatch
-, autoreconfHook
+{ fetchurl
 , callPackage
 }:
 
diff --git a/pkgs/development/libraries/sparsehash/default.nix b/pkgs/development/libraries/sparsehash/default.nix
index 35208d021b83a..813024623a1a7 100644
--- a/pkgs/development/libraries/sparsehash/default.nix
+++ b/pkgs/development/libraries/sparsehash/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sparsehash/sparsehash";
-    description = "An extremely memory-efficient hash_map implementation";
+    description = "Extremely memory-efficient hash_map implementation";
     platforms = platforms.all;
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch b/pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch
deleted file mode 100644
index 3c3fb50fc1525..0000000000000
--- a/pkgs/development/libraries/spdk/0001-fix-setuptools-installation.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 3f718fc1873c9c138684ea019e9bd42c9b24506c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
-Date: Tue, 28 Nov 2023 11:28:11 +0100
-Subject: [PATCH] fix setuptools installation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
- python/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/python/Makefile b/python/Makefile
-index f835daa..b41995a 100644
---- a/python/Makefile
-+++ b/python/Makefile
-@@ -12,7 +12,7 @@ setup_cmd += --root $(DESTDIR)
- endif
- 
- ifneq ($(CONFIG_PYDIR),)
--setup_cmd += --install-purelib $(CONFIG_PYDIR)
-+setup_cmd += --root / --prefix $(CONFIG_PYDIR)
- purelibdir := $(CONFIG_PYDIR)
- else
- purelibdir := $(shell python3 -c "import sysconfig; print(sysconfig.get_paths()['purelib'])")
--- 
-2.42.0
-
diff --git a/pkgs/development/libraries/spdk/default.nix b/pkgs/development/libraries/spdk/default.nix
index 46ee5600a4daf..4541042ed5c5f 100644
--- a/pkgs/development/libraries/spdk/default.nix
+++ b/pkgs/development/libraries/spdk/default.nix
@@ -4,6 +4,7 @@
 , python3
 , cunit
 , dpdk
+, fuse3
 , libaio
 , libbsd
 , libuuid
@@ -22,19 +23,22 @@
 stdenv.mkDerivation rec {
   pname = "spdk";
 
-  version = "23.09";
+  version = "24.05";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "sha256-P10NDa+MIEY8B3bu34Dq2keyuv2a24XV5Wf+Ah701b8=";
+    sha256 = "sha256-kjZWaarvNSYXseJ/uH7Ak7DbWEgrLnAwXcL8byJ9fjU=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
     python3
+    python3.pkgs.pip
     python3.pkgs.setuptools
+    python3.pkgs.wheel
+    python3.pkgs.wrapPython
     pkg-config
     ensureNewerSourcesForZipFilesHook
   ];
@@ -42,6 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     cunit
     dpdk
+    fuse3
     jansson
     libaio
     libbsd
@@ -56,10 +61,8 @@ stdenv.mkDerivation rec {
     zstd
   ];
 
-  patches = [
-    # https://review.spdk.io/gerrit/c/spdk/spdk/+/20394
-    ./setuptools.patch
-    ./0001-fix-setuptools-installation.patch
+  propagatedBuildInputs = [
+    python3.pkgs.configshell
   ];
 
   postPatch = ''
@@ -70,13 +73,16 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-dpdk=${dpdk}"
-    "--pydir=${placeholder "out"}"
   ];
 
   postCheck = ''
     python3 -m spdk
   '';
 
+  postFixup = ''
+    wrapPythonPrograms
+  '';
+
   env.NIX_CFLAGS_COMPILE = "-mssse3"; # Necessary to compile.
   # otherwise does not find strncpy when compiling
   env.NIX_LDFLAGS = "-lbsd";
diff --git a/pkgs/development/libraries/spdk/setuptools.patch b/pkgs/development/libraries/spdk/setuptools.patch
deleted file mode 100644
index b3e7644c0076b..0000000000000
--- a/pkgs/development/libraries/spdk/setuptools.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 3a72290ba7e2d71ca887225fc0eb8792ca863be2 Mon Sep 17 00:00:00 2001
-From: Jörg Thalheim <joerg@thalheim.io>
-Date: Tue, 24 Oct 2023 14:30:53 +0200
-Subject: [PATCH] python: drop deprecated distutils
-
-This is scheduled for removal in python 3.12: https://docs.python.org/3/whatsnew/3.12.html
-
-Change-Id: I728dc0cf4ed20f22016d3d58cca8aee3af2bcd8b
-Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
----
-
-diff --git a/python/setup.py b/python/setup.py
-index 47e2104..ae4dff7 100755
---- a/python/setup.py
-+++ b/python/setup.py
-@@ -2,8 +2,7 @@
- # SPDX-License-Identifier: BSD-3-Clause
- # Copyright (C) 2023 Intel Corporation.  All rights reserved.
- 
--from distutils.core import setup
--from setuptools import find_packages
-+from setuptools import setup, find_packages
- from spdk import __version__
- 
- 
diff --git a/pkgs/development/libraries/spectra/default.nix b/pkgs/development/libraries/spectra/default.nix
index 1fc3ccd757653..4e4901d6c73da 100644
--- a/pkgs/development/libraries/spectra/default.nix
+++ b/pkgs/development/libraries/spectra/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://spectralib.org/";
-    description = "A C++ library for large scale eigenvalue problems, built on top of Eigen";
+    description = "C++ library for large scale eigenvalue problems, built on top of Eigen";
     license = licenses.mpl20;
     maintainers = with maintainers; [ vonfry ];
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/speex/default.nix b/pkgs/development/libraries/speex/default.nix
index cba0e4e76f3f4..9e3f97b034485 100644
--- a/pkgs/development/libraries/speex/default.nix
+++ b/pkgs/development/libraries/speex/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.speex.org/";
-    description = "An Open Source/Free Software patent-free audio compression format designed for speech";
+    description = "Open Source/Free Software patent-free audio compression format designed for speech";
     license = licenses.bsd3;
     platforms = platforms.unix ++ platforms.windows;
   };
diff --git a/pkgs/development/libraries/speexdsp/default.nix b/pkgs/development/libraries/speexdsp/default.nix
index b8f8a3bc7c5f9..0f5e09cf83e54 100644
--- a/pkgs/development/libraries/speexdsp/default.nix
+++ b/pkgs/development/libraries/speexdsp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.speex.org/";
-    description = "An Open Source/Free Software patent-free audio compression format designed for speech";
+    description = "Open Source/Free Software patent-free audio compression format designed for speech";
     license = licenses.bsd3;
     platforms = platforms.unix ++ platforms.windows;
   };
diff --git a/pkgs/development/libraries/spice-gtk/default.nix b/pkgs/development/libraries/spice-gtk/default.nix
index d160a6a5f6dc6..fd7428213fc9c 100644
--- a/pkgs/development/libraries/spice-gtk/default.nix
+++ b/pkgs/development/libraries/spice-gtk/default.nix
@@ -36,7 +36,7 @@
 , wayland-protocols
 , wayland-scanner
 , zlib
-, wrapGAppsHook
+, wrapGAppsHook3
 , withPolkit ? stdenv.isLinux
 }:
 
@@ -89,7 +89,7 @@ stdenv.mkDerivation rec {
     python3.pkgs.pyparsing
     python3.pkgs.six
     vala
-    wrapGAppsHook
+    wrapGAppsHook3
   ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
     mesonEmulatorHook
   ] ++ lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/libraries/spirv-headers/default.nix b/pkgs/development/libraries/spirv-headers/default.nix
index 655233362e150..31efd76209a38 100644
--- a/pkgs/development/libraries/spirv-headers/default.nix
+++ b/pkgs/development/libraries/spirv-headers/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spirv-headers";
-  version = "1.3.280.0";
+  version = "1.3.283.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Headers";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-kyOAwe4R0FmeA9IIJF2eoZR+7g9LiGKaZ7FuIfkrXJ4=";
+    hash = "sha256-CAmDDqeMVKNdV/91VQYAKyCc+e+H99PRYZzt5WjswBI=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/sqlcipher/default.nix b/pkgs/development/libraries/sqlcipher/default.nix
index b3e89ae9548e8..af7848cdf85f2 100644
--- a/pkgs/development/libraries/sqlcipher/default.nix
+++ b/pkgs/development/libraries/sqlcipher/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sqlcipher";
-  version = "4.5.7";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "sqlcipher";
     repo = "sqlcipher";
     rev = "v${version}";
-    hash = "sha256-0cPb78CTxrCdDZAY8hyt7Kid5DKszDl1v+6XNKyNrLM=";
+    hash = "sha256-ds+0ckQiHikNMr4Xf/wCWwQySpadGgnccENd6u6gIzQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/sqlite/default.nix b/pkgs/development/libraries/sqlite/default.nix
index d172d75e011bb..f7a870e276209 100644
--- a/pkgs/development/libraries/sqlite/default.nix
+++ b/pkgs/development/libraries/sqlite/default.nix
@@ -1,4 +1,5 @@
 { lib, stdenv, fetchurl, zlib, readline, ncurses
+, updateAutotoolsGnuConfigScriptsHook
 
 # for tests
 , python3Packages, sqldiff, sqlite-analyzer, tracker
@@ -15,18 +16,19 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite${lib.optionalString interactive "-interactive"}";
-  version = "3.45.2";
+  version = "3.45.3";
 
   # nixpkgs-update: no auto update
   # NB! Make sure to update ./tools.nix src (in the same directory).
   src = fetchurl {
     url = "https://sqlite.org/2024/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    hash = "sha256-vJBnRC7t8905mJtcXPv/83rmbMnJknTgwwUtxNSo9q4=";
+    hash = "sha256-soCcpTEkwZxg9Cv2J3NurgEa/cwgW7SCcKXumjgZFTE=";
   };
 
   outputs = [ "bin" "dev" "out" ];
   separateDebugInfo = stdenv.isLinux;
 
+  nativeBuildInputs = [ updateAutotoolsGnuConfigScriptsHook ];
   buildInputs = [ zlib ] ++ lib.optionals interactive [ readline ncurses ];
 
   # required for aarch64 but applied for all arches for simplicity
@@ -100,7 +102,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     changelog = "https://www.sqlite.org/releaselog/${lib.replaceStrings [ "." ] [ "_" ] version}.html";
-    description = "A self-contained, serverless, zero-configuration, transactional SQL database engine";
+    description = "Self-contained, serverless, zero-configuration, transactional SQL database engine";
     downloadPage = "https://sqlite.org/download.html";
     homepage = "https://www.sqlite.org/";
     license = licenses.publicDomain;
diff --git a/pkgs/development/libraries/sqlite/tools.nix b/pkgs/development/libraries/sqlite/tools.nix
index 94ac07df9d402..0f6fe766a3de3 100644
--- a/pkgs/development/libraries/sqlite/tools.nix
+++ b/pkgs/development/libraries/sqlite/tools.nix
@@ -4,12 +4,12 @@ let
   archiveVersion = import ./archive-version.nix lib;
   mkTool = { pname, makeTarget, description, homepage, mainProgram }: stdenv.mkDerivation rec {
     inherit pname;
-    version = "3.45.2";
+    version = "3.45.3";
 
     # nixpkgs-update: no auto update
     src = assert version == sqlite.version; fetchurl {
       url = "https://sqlite.org/2024/sqlite-src-${archiveVersion version}.zip";
-      hash = "sha256-SkWjV3zIr2g8S9TG6Bp8eCxbfV2qBhdeosuXHKcWkbE=";
+      hash = "sha256-7AyVnkLLXxgEE10FVfjqMr5v8gSOsYG8zTZ8j1PxhdE=";
     };
 
     nativeBuildInputs = [ unzip ];
@@ -32,14 +32,14 @@ in
   sqldiff = mkTool {
     pname = "sqldiff";
     makeTarget = "sqldiff";
-    description = "A tool that displays the differences between SQLite databases";
+    description = "Tool that displays the differences between SQLite databases";
     homepage = "https://www.sqlite.org/sqldiff.html";
     mainProgram = "sqldiff";
   };
   sqlite-analyzer = mkTool {
     pname = "sqlite-analyzer";
     makeTarget = "sqlite3_analyzer";
-    description = "A tool that shows statistics about SQLite databases";
+    description = "Tool that shows statistics about SQLite databases";
     homepage = "https://www.sqlite.org/sqlanalyze.html";
     mainProgram = "sqlite3_analyzer";
   };
diff --git a/pkgs/development/libraries/sregex/default.nix b/pkgs/development/libraries/sregex/default.nix
index a4d2ef526db94..f69e09c8873b5 100644
--- a/pkgs/development/libraries/sregex/default.nix
+++ b/pkgs/development/libraries/sregex/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/openresty/sregex";
-    description = "A non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams";
+    description = "Non-backtracking NFA/DFA-based Perl-compatible regex engine matching on large data streams";
     mainProgram = "sregex-cli";
     license = licenses.bsd3;
     maintainers = with maintainers; [];
diff --git a/pkgs/development/libraries/stfl/default.nix b/pkgs/development/libraries/stfl/default.nix
index e848b4330955b..b79020e3ba712 100644
--- a/pkgs/development/libraries/stfl/default.nix
+++ b/pkgs/development/libraries/stfl/default.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.clifford.at/stfl/";
-    description = "A library which implements a curses-based widget set for text terminals";
+    description = "Library which implements a curses-based widget set for text terminals";
     maintainers = with lib.maintainers; [ lovek323 ];
     license = lib.licenses.lgpl3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/stxxl/default.nix b/pkgs/development/libraries/stxxl/default.nix
index 499532092f026..a11544dd78930 100644
--- a/pkgs/development/libraries/stxxl/default.nix
+++ b/pkgs/development/libraries/stxxl/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "An implementation of the C++ standard template library STL for external memory (out-of-core) computations";
+    description = "Implementation of the C++ standard template library STL for external memory (out-of-core) computations";
     homepage = "https://github.com/stxxl/stxxl";
     license = licenses.boost;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/libraries/subunit/default.nix b/pkgs/development/libraries/subunit/default.nix
index ed0c5a2d87202..188759fc4e7ed 100644
--- a/pkgs/development/libraries/subunit/default.nix
+++ b/pkgs/development/libraries/subunit/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   postFixup = "wrapPythonPrograms";
 
   meta = with lib; {
-    description = "A streaming protocol for test results";
+    description = "Streaming protocol for test results";
     mainProgram = "subunit-diff";
     homepage = "https://launchpad.net/subunit";
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/swiften/default.nix b/pkgs/development/libraries/swiften/default.nix
index 05b1b996ea3f7..fffe96dbf5c1b 100644
--- a/pkgs/development/libraries/swiften/default.nix
+++ b/pkgs/development/libraries/swiften/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "An XMPP library for C++, used by the Swift client";
+    description = "XMPP library for C++, used by the Swift client";
     mainProgram = "swiften-config";
     homepage = "http://swift.im/swiften.html";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/libraries/sword/default.nix b/pkgs/development/libraries/sword/default.nix
deleted file mode 100644
index 8871a66fd8c94..0000000000000
--- a/pkgs/development/libraries/sword/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, stdenv, fetchurl, pkg-config, icu, clucene_core, curl }:
-
-stdenv.mkDerivation rec {
-
-  pname = "sword";
-  version = "1.8.1";
-
-  src = fetchurl {
-    url = "https://www.crosswire.org/ftpmirror/pub/sword/source/v1.8/${pname}-${version}.tar.gz";
-    sha256 = "14syphc47g6svkbg018nrsgq4z6hid1zydax243g8dx747vsi6nf";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ icu clucene_core curl ];
-
-  prePatch = ''
-    patchShebangs .;
-  '';
-
-  configureFlags = [ "--without-conf" "--enable-tests=no" ];
-  CXXFLAGS = [
-    "-Wno-unused-but-set-variable"
-    # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554
-    "-DU_USING_ICU_NAMESPACE=1"
-  ];
-
-  meta = with lib; {
-    description = "A software framework that allows research manipulation of Biblical texts";
-    homepage = "http://www.crosswire.org/sword/";
-    longDescription = ''
-      The SWORD Project is the CrossWire Bible Society's free Bible software
-      project. Its purpose is to create cross-platform open-source tools --
-      covered by the GNU General Public License -- that allow programmers and
-      Bible societies to write new Bible software more quickly and easily. We
-      also create Bible study software for all readers, students, scholars, and
-      translators of the Bible, and have a growing collection of many hundred
-      texts in around 100 languages.
-    '';
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.unix;
-  };
-
-}
diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix
index cc08b7ff3c2e8..25043bbb0265d 100644
--- a/pkgs/development/libraries/symengine/default.nix
+++ b/pkgs/development/libraries/symengine/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "symengine";
-  version = "0.11.2";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "symengine";
     repo = "symengine";
     rev = "v${version}";
-    hash = "sha256-CwVDpDbx00r7Fys+5r1n0m/E86zTx1i4ti5JCcVp20g=";
+    hash = "sha256-SfifujR2VM1OlPN0ZRUC3hWImXO/8PuiyrBdpyNoKW4=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "A fast symbolic manipulation library";
+    description = "Fast symbolic manipulation library";
     homepage = "https://github.com/symengine/symengine";
     platforms = platforms.unix ++ platforms.windows;
     license = licenses.bsd3;
diff --git a/pkgs/development/libraries/t1lib/default.nix b/pkgs/development/libraries/t1lib/default.nix
index 66c9863c38a42..16112f32b1e2f 100644
--- a/pkgs/development/libraries/t1lib/default.nix
+++ b/pkgs/development/libraries/t1lib/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "http://www.t1lib.org/";
-    description = "A type 1 font rasterizer library for UNIX/X11";
+    description = "Type 1 font rasterizer library for UNIX/X11";
     license = with licenses; [ gpl2 lgpl2 ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/libraries/tachyon/default.nix b/pkgs/development/libraries/tachyon/default.nix
index 2efee140a7e3c..0446d2cac6e7d 100644
--- a/pkgs/development/libraries/tachyon/default.nix
+++ b/pkgs/development/libraries/tachyon/default.nix
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     cp -r scenes "$out/share/tachyon/scenes"
   '';
   meta = {
-    description = "A Parallel / Multiprocessor Ray Tracing System";
+    description = "Parallel / Multiprocessor Ray Tracing System";
     mainProgram = "tachyon";
     license = lib.licenses.bsd3;
     maintainers = [lib.maintainers.raskin];
diff --git a/pkgs/development/libraries/taglib/default.nix b/pkgs/development/libraries/taglib/default.nix
index fc3914b26d293..17918f5f43739 100644
--- a/pkgs/development/libraries/taglib/default.nix
+++ b/pkgs/development/libraries/taglib/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "https://taglib.org/";
-    description = "A library for reading and editing audio file metadata";
+    description = "Library for reading and editing audio file metadata";
     mainProgram = "taglib-config";
     longDescription = ''
       TagLib is a library for reading and editing the meta-data of several
diff --git a/pkgs/development/libraries/talloc/default.nix b/pkgs/development/libraries/talloc/default.nix
index 73cb8a65a162d..793fc1ccf5cb5 100644
--- a/pkgs/development/libraries/talloc/default.nix
+++ b/pkgs/development/libraries/talloc/default.nix
@@ -9,6 +9,7 @@
 , docbook_xml_dtd_42
 , fixDarwinDylibNames
 , wafHook
+, buildPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -50,6 +51,9 @@ stdenv.mkDerivation rec {
     "--enable-talloc-compat1"
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
diff --git a/pkgs/development/libraries/tbb/2020_3.nix b/pkgs/development/libraries/tbb/2020_3.nix
index 55bb9849d9190..dcd21b27ff334 100644
--- a/pkgs/development/libraries/tbb/2020_3.nix
+++ b/pkgs/development/libraries/tbb/2020_3.nix
@@ -57,8 +57,12 @@ stdenv.mkDerivation rec {
   ] ++ (lib.optional (stdenv.buildPlatform != stdenv.hostPlatform)
     (if stdenv.hostPlatform.isAarch64 then "arch=arm64"
     else if stdenv.hostPlatform.isx86_64 then "arch=intel64"
+    else if stdenv.hostPlatform.isi686 then "arch=ia32"
     else throw "Unsupported cross architecture"));
 
+  # Fix undefined reference errors with version script under LLVM.
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version";
+
   enableParallelBuilding = true;
 
   installPhase = ''
diff --git a/pkgs/development/libraries/tbb/2021_5.nix b/pkgs/development/libraries/tbb/2021_5.nix
new file mode 100644
index 0000000000000..3bfa9278106d9
--- /dev/null
+++ b/pkgs/development/libraries/tbb/2021_5.nix
@@ -0,0 +1,71 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tbb";
+  version = "2021.5.0";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchFromGitHub {
+    owner = "oneapi-src";
+    repo = "oneTBB";
+    rev = "v${version}";
+    hash = "sha256-TJ/oSSMvgtKuz7PVyIoFEbBW6EZz7t2wr/kP093HF/w=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  patches = [
+    # port of https://github.com/oneapi-src/oneTBB/pull/1031
+    ./gcc13-fixes-2021.5.0.patch
+
+    (fetchpatch {
+      #  Fix "field used uninitialized" on modern gcc versions (https://github.com/oneapi-src/oneTBB/pull/958)
+      url = "https://github.com/oneapi-src/oneTBB/commit/3003ec07740703e6aed12b028af20f4b0f16adae.patch";
+      hash = "sha256-l4+9IxIEdRX/q8JyDY9CPKWzSLatpIVSiNjmIM7ilj0=";
+    })
+  ];
+
+  # Disable failing test on musl
+  # test/conformance/conformance_resumable_tasks.cpp:37:24: error: ‘suspend’ is not a member of ‘tbb::v1::task’; did you mean ‘tbb::detail::r1::suspend’?
+  postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
+    substituteInPlace test/CMakeLists.txt \
+      --replace-fail 'conformance_resumable_tasks' ""
+  '';
+
+  # Fix build with modern gcc
+  # In member function 'void std::__atomic_base<_IntTp>::store(__int_type, std::memory_order) [with _ITp = bool]',
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [ "-Wno-error=array-bounds" "-Wno-error=stringop-overflow" "-Wno-address" ] ++
+    # error: variable 'val' set but not used
+    lib.optionals stdenv.cc.isClang [ "-Wno-error=unused-but-set-variable" ] ++
+    # Workaround for gcc-12 ICE when using -O3
+    # https://gcc.gnu.org/PR108854
+    lib.optionals (stdenv.cc.isGNU && stdenv.isx86_32) [ "-O2" ];
+
+  # Fix undefined reference errors with version script under LLVM.
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version";
+
+
+  meta = with lib; {
+    description = "Intel Thread Building Blocks C++ Library";
+    homepage = "http://threadingbuildingblocks.org/";
+    license = licenses.asl20;
+    longDescription = ''
+      Intel Threading Building Blocks offers a rich and complete approach to
+      expressing parallelism in a C++ program. It is a library that helps you
+      take advantage of multi-core processor performance without having to be a
+      threading expert. Intel TBB is not just a threads-replacement library. It
+      represents a higher-level, task-based parallelism that abstracts platform
+      details and threading mechanisms for scalability and performance.
+    '';
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice tmarkus ];
+  };
+}
diff --git a/pkgs/development/libraries/tbb/default.nix b/pkgs/development/libraries/tbb/default.nix
index c02a9ed49577e..73ea56b306869 100644
--- a/pkgs/development/libraries/tbb/default.nix
+++ b/pkgs/development/libraries/tbb/default.nix
@@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
     # https://gcc.gnu.org/PR108854
     lib.optionals (stdenv.cc.isGNU && stdenv.isx86_32) [ "-O2" ];
 
+  # Fix undefined reference errors with version script under LLVM.
+  NIX_LDFLAGS = lib.optionalString (stdenv.cc.bintools.isLLVM && lib.versionAtLeast stdenv.cc.bintools.version "17") "--undefined-version";
+
   # Disable failing test on musl
   # test/conformance/conformance_resumable_tasks.cpp:37:24: error: ‘suspend’ is not a member of ‘tbb::v1::task’; did you mean ‘tbb::detail::r1::suspend’?
   postPatch = lib.optionalString stdenv.hostPlatform.isMusl ''
diff --git a/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch b/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch
new file mode 100644
index 0000000000000..28b5a0e695f70
--- /dev/null
+++ b/pkgs/development/libraries/tbb/gcc13-fixes-2021.5.0.patch
@@ -0,0 +1,13 @@
+diff --git a/test/common/utils_assert.h b/test/common/utils_assert.h
+index 33bc8ab4..a3d21baf 100644
+--- a/test/common/utils_assert.h
++++ b/test/common/utils_assert.h
+@@ -20,6 +20,8 @@
+ #include "config.h"
+ #include "utils_report.h"
+ 
++#include <cstdlib>
++
+ #define REPORT_FATAL_ERROR REPORT
+ 
+ namespace utils {
diff --git a/pkgs/development/libraries/tbox/default.nix b/pkgs/development/libraries/tbox/default.nix
index 6f65ded6f104b..b2406d19e7017 100644
--- a/pkgs/development/libraries/tbox/default.nix
+++ b/pkgs/development/libraries/tbox/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A glib-like multi-platform c library";
+    description = "Glib-like multi-platform c library";
     homepage = "https://docs.tboox.org";
     license = licenses.asl20;
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/tcltls/default.nix b/pkgs/development/libraries/tcltls/default.nix
index a0a1c0ae53ccd..dbc095b64e0ba 100644
--- a/pkgs/development/libraries/tcltls/default.nix
+++ b/pkgs/development/libraries/tcltls/default.nix
@@ -17,7 +17,7 @@ tcl.mkTclDerivation rec {
 
   meta = {
     homepage = "https://core.tcl-lang.org/tcltls/index";
-    description = "An OpenSSL / RSA-bsafe Tcl extension";
+    description = "OpenSSL / RSA-bsafe Tcl extension";
     maintainers = [ lib.maintainers.agbrooks ];
     license = lib.licenses.tcltk;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/tdb/default.nix b/pkgs/development/libraries/tdb/default.nix
index 1a289f7c2d618..d78f4abafab00 100644
--- a/pkgs/development/libraries/tdb/default.nix
+++ b/pkgs/development/libraries/tdb/default.nix
@@ -2,6 +2,7 @@
 , fetchurl
 , pkg-config
 , wafHook
+, buildPackages
 , python3
 , readline
 , libxslt
@@ -46,6 +47,9 @@ stdenv.mkDerivation rec {
   wafConfigureFlags = [
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   postFixup = if stdenv.isDarwin
@@ -58,7 +62,7 @@ stdenv.mkDerivation rec {
   PYTHON_CONFIG = "/invalid";
 
   meta = with lib; {
-    description = "The trivial database";
+    description = "Trivial database";
     longDescription = ''
       TDB is a Trivial Database. In concept, it is very much like GDBM,
       and BSD's DB except that it allows multiple simultaneous writers
diff --git a/pkgs/development/libraries/tdlib/default.nix b/pkgs/development/libraries/tdlib/default.nix
index 920b8467bc99f..3c60ca5fc2a24 100644
--- a/pkgs/development/libraries/tdlib/default.nix
+++ b/pkgs/development/libraries/tdlib/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation {
   pname = "tdlib";
-  version = "1.8.27";
+  version = "1.8.31";
 
   src = fetchFromGitHub {
     owner = "tdlib";
@@ -11,8 +11,8 @@ stdenv.mkDerivation {
     # The tdlib authors do not set tags for minor versions, but
     # external programs depending on tdlib constrain the minor
     # version, hence we set a specific commit with a known version.
-    rev = "efc6bd553b61dea0ae8c0436695e8d2539bf03f9";
-    hash = "sha256-AHfuT+bLkc8Lm1B96E/kwUx1ZKStQbv/skH8woRITRk=";
+    rev = "8f19c751dc296cedb9a921badb7a02a8c0cb1aeb";
+    hash = "sha256-M9EFNgWIpBz276moCG3qJ1WDIEP5j24vuYHio9jc8W0=";
   };
 
   buildInputs = [ gperf openssl readline zlib ];
diff --git a/pkgs/development/libraries/template-glib/default.nix b/pkgs/development/libraries/template-glib/default.nix
index fae25d959d3d0..a8dfade71bfdc 100644
--- a/pkgs/development/libraries/template-glib/default.nix
+++ b/pkgs/development/libraries/template-glib/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "template-glib";
-  version = "3.36.1";
+  version = "3.36.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "OxZ6Fzha10WvviD634EGxm0wxb10bVqh2b236AP2pQM=";
+    hash = "sha256-ACDzpAGIjOdjs6F1CML1jpGXKkg6DFR6/bfMviVhmUg=";
   };
 
   nativeBuildInputs = [
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A library for template expansion which supports calling into GObject Introspection from templates";
+    description = "Library for template expansion which supports calling into GObject Introspection from templates";
     homepage = "https://gitlab.gnome.org/GNOME/template-glib";
     license = licenses.lgpl21Plus;
     maintainers = teams.gnome.members;
diff --git a/pkgs/development/libraries/tevent/default.nix b/pkgs/development/libraries/tevent/default.nix
index 18e4522de9ea2..c9f03ee0555f2 100644
--- a/pkgs/development/libraries/tevent/default.nix
+++ b/pkgs/development/libraries/tevent/default.nix
@@ -10,6 +10,7 @@
 , docbook_xml_dtd_42
 , which
 , wafHook
+, buildPackages
 , libxcrypt
 }:
 
@@ -52,6 +53,9 @@ stdenv.mkDerivation rec {
   wafConfigureFlags = [
     "--bundled-libraries=NONE"
     "--builtin-libraries=replace"
+  ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--cross-compile"
+    "--cross-execute=${stdenv.hostPlatform.emulator buildPackages}"
   ];
 
   # python-config from build Python gives incorrect values when cross-compiling.
@@ -60,7 +64,7 @@ stdenv.mkDerivation rec {
   PYTHON_CONFIG = "/invalid";
 
   meta = with lib; {
-    description = "An event system based on the talloc memory management library";
+    description = "Event system based on the talloc memory management library";
     homepage = "https://tevent.samba.org/";
     license = licenses.lgpl3Plus;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/theft/default.nix b/pkgs/development/libraries/theft/default.nix
index 3d39075dd26ad..e053814dddd96 100644
--- a/pkgs/development/libraries/theft/default.nix
+++ b/pkgs/development/libraries/theft/default.nix
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A C library for property-based testing";
+    description = "C library for property-based testing";
     homepage    = "https://github.com/silentbicycle/theft/";
     platforms   = platforms.unix;
     license     = licenses.isc;
diff --git a/pkgs/development/libraries/ti-rpc/default.nix b/pkgs/development/libraries/ti-rpc/default.nix
index c12178d833de4..9f22ae65d28cd 100644
--- a/pkgs/development/libraries/ti-rpc/default.nix
+++ b/pkgs/development/libraries/ti-rpc/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://sourceforge.net/projects/libtirpc/";
-    description = "The transport-independent Sun RPC implementation (TI-RPC)";
+    description = "Transport-independent Sun RPC implementation (TI-RPC)";
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/tidyp/default.nix b/pkgs/development/libraries/tidyp/default.nix
index aa54616cf42a6..e00eaf632e973 100644
--- a/pkgs/development/libraries/tidyp/default.nix
+++ b/pkgs/development/libraries/tidyp/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A program that can validate your HTML, as well as modify it to be more clean and standard";
+    description = "Program that can validate your HTML, as well as modify it to be more clean and standard";
     mainProgram = "tidyp";
     homepage = "http://tidyp.com/";
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/timezonemap/default.nix b/pkgs/development/libraries/timezonemap/default.nix
index 25efaa6518c61..f2ceb056f25a8 100644
--- a/pkgs/development/libraries/timezonemap/default.nix
+++ b/pkgs/development/libraries/timezonemap/default.nix
@@ -68,7 +68,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://launchpad.net/timezonemap";
-    description = "A GTK+3 Timezone Map Widget";
+    description = "GTK+3 Timezone Map Widget";
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.mkg20001 ];
diff --git a/pkgs/development/libraries/tix/default.nix b/pkgs/development/libraries/tix/default.nix
index a46b2499964c3..0a6adbb5882a0 100644
--- a/pkgs/development/libraries/tix/default.nix
+++ b/pkgs/development/libraries/tix/default.nix
@@ -54,7 +54,7 @@ tcl.mkTclDerivation {
   ];
 
   meta = with lib; {
-    description = "A widget library for Tcl/Tk";
+    description = "Widget library for Tcl/Tk";
     homepage    = "https://tix.sourceforge.net/";
     platforms   = platforms.all;
     license     = with licenses; [
diff --git a/pkgs/development/libraries/tk/8.6.nix b/pkgs/development/libraries/tk/8.6.nix
index fbf4560517547..c5317a8545dd5 100644
--- a/pkgs/development/libraries/tk/8.6.nix
+++ b/pkgs/development/libraries/tk/8.6.nix
@@ -2,7 +2,6 @@
 , stdenv
 , callPackage
 , fetchurl
-, fetchpatch
 , tcl
 , ...
 } @ args:
diff --git a/pkgs/development/libraries/tk/generic.nix b/pkgs/development/libraries/tk/generic.nix
index 57a9b617d950d..540f5d5d7e367 100644
--- a/pkgs/development/libraries/tk/generic.nix
+++ b/pkgs/development/libraries/tk/generic.nix
@@ -65,7 +65,7 @@ tcl.mkTclDerivation {
   };
 
   meta = with lib; {
-    description = "A widget toolkit that provides a library of basic elements for building a GUI in many different programming languages";
+    description = "Widget toolkit that provides a library of basic elements for building a GUI in many different programming languages";
     homepage = "https://www.tcl.tk/";
     license = licenses.tcltk;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/tkimg/default.nix b/pkgs/development/libraries/tkimg/default.nix
index 094a6b5dda3dc..8b66e195d5a5e 100644
--- a/pkgs/development/libraries/tkimg/default.nix
+++ b/pkgs/development/libraries/tkimg/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchsvn, tcl, tcllib, tk, xorg }:
+{ stdenv, lib, fetchsvn, tcl, tcllib, tk, xorg, darwin }:
 
 tcl.mkTclDerivation rec {
   pname = "tkimg";
@@ -16,11 +16,13 @@ tcl.mkTclDerivation rec {
     "--with-tkinclude=${tk.dev}/include"
   ];
 
-  buildInputs = [ xorg.libX11 tcllib ];
+  buildInputs = [ xorg.libX11 tcllib ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
+    Cocoa
+  ]);
 
   meta = {
     homepage = "https://sourceforge.net/projects/tkimg/";
-    description = "The Img package adds several image formats to Tcl/Tk";
+    description = "Img package adds several image formats to Tcl/Tk";
     maintainers = with lib.maintainers; [ matthewcroughan ];
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/tkrzw/default.nix b/pkgs/development/libraries/tkrzw/default.nix
index 694225d9e3bae..6470924a9ce21 100644
--- a/pkgs/development/libraries/tkrzw/default.nix
+++ b/pkgs/development/libraries/tkrzw/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "tkrzw";
-  version = "1.0.27";
+  version = "1.0.31";
   # TODO: defeat multi-output reference cycles
 
   src = fetchurl {
     url = "https://dbmx.net/tkrzw/pkg/tkrzw-${version}.tar.gz";
-    hash = "sha256-DxLtDtscTPR1yzeOENyQPylKo+VxJTswUAE/MieEoXQ=";
+    hash = "sha256-7FdHglIBTHGKRt66WNTGEe5qUcrIyTYPrnuVrUc8l08=";
   };
 
   postPatch = ''
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # memory intensive
 
   meta = with lib; {
-    description = "A set of implementations of DBM";
+    description = "Set of implementations of DBM";
     homepage = "https://dbmx.net/tkrzw/";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/toml-f/default.nix b/pkgs/development/libraries/toml-f/default.nix
index e24ceec58c075..3f95d5682f9e0 100644
--- a/pkgs/development/libraries/toml-f/default.nix
+++ b/pkgs/development/libraries/toml-f/default.nix
@@ -25,7 +25,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  doCheck = true;
+  # tftest-build fails on aarch64-linux
+  doCheck = !stdenv.isAarch64;
 
   meta = with lib; {
     description = "TOML parser implementation for data serialization and deserialization in Fortran";
diff --git a/pkgs/development/libraries/tpm2-tss/default.nix b/pkgs/development/libraries/tpm2-tss/default.nix
index 628f32a91c69d..b28d031be83ad 100644
--- a/pkgs/development/libraries/tpm2-tss/default.nix
+++ b/pkgs/development/libraries/tpm2-tss/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, fetchurl
+{ stdenv, lib, fetchFromGitHub
 , autoreconfHook, autoconf-archive, pkg-config, doxygen, perl
 , openssl, json_c, curl, libgcrypt
 , cmocka, uthash, ibm-sw-tpm2, iproute2, procps, which
@@ -15,13 +15,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "tpm2-tss";
-  version = "4.0.1";
+  version = "4.1.3";
 
   src = fetchFromGitHub {
     owner = "tpm2-software";
     repo = pname;
     rev = version;
-    sha256 = "sha256-75yiKVZrR1vcCwKp4tDO4A9JB0KDM0MXPJ1N85kAaRk=";
+    hash = "sha256-BP28utEUI9g1VNv3lCXuiKrDtEImFQxxZfIjLiE3Wr8=";
   };
 
   outputs = [ "out" "man" "dev" ];
@@ -53,11 +53,6 @@ stdenv.mkDerivation rec {
     # Do not rely on dynamic loader path
     # TCTI loader relies on dlopen(), this patch prefixes all calls with the output directory
     ./no-dynamic-loader-path.patch
-    (fetchurl {
-      name = "skip-test-fapi-fix-provisioning-with-template-if-no-certificate-available.patch";
-      url = "https://github.com/tpm2-software/tpm2-tss/commit/218c0da8d9f675766b1de502a52e23a3aa52648e.patch";
-      sha256 = "sha256-dnl9ZAknCdmvix2TdQvF0fHoYeWp+jfCTg8Uc7h0voA=";
-    })
   ];
 
   postPatch = ''
@@ -65,7 +60,7 @@ stdenv.mkDerivation rec {
     substituteInPlace src/tss2-tcti/tctildr-dl.c \
       --replace '@PREFIX@' $out/lib/
     substituteInPlace ./test/unit/tctildr-dl.c \
-      --replace '@PREFIX@' $out/lib
+      --replace '@PREFIX@' $out/lib/
     substituteInPlace ./bootstrap \
       --replace 'git describe --tags --always --dirty' 'echo "${version}"'
   '';
diff --git a/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch b/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
index 60f8c91bae852..fcbfaca299fdd 100644
--- a/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
+++ b/pkgs/development/libraries/tpm2-tss/no-dynamic-loader-path.patch
@@ -1,232 +1,503 @@
 diff --git a/src/tss2-tcti/tctildr-dl.c b/src/tss2-tcti/tctildr-dl.c
-index 622637dc..88fc3d8f 100644
+index d26219d2..92d2b6a3 100644
 --- a/src/tss2-tcti/tctildr-dl.c
 +++ b/src/tss2-tcti/tctildr-dl.c
-@@ -92,7 +92,7 @@ handle_from_name(const char *file,
-         LOG_DEBUG("Could not load TCTI file: \"%s\": %s", file, dlerror());
-     }
- 
--    len = snprintf(NULL, 0, TCTI_NAME_TEMPLATE_0, file);
-+    len = snprintf(NULL, 0, "@PREFIX@" TCTI_NAME_TEMPLATE_0, file);
-     if (len >= PATH_MAX) {
-         LOG_ERROR("TCTI name truncated in transform.");
-         return TSS2_TCTI_RC_BAD_VALUE;
-@@ -129,6 +129,50 @@ handle_from_name(const char *file,
-         return TSS2_TCTI_RC_BAD_VALUE;
-     }
-     *handle = dlopen(file_xfrm, RTLD_NOW);
-+    if (*handle != NULL) {
-+        return TSS2_RC_SUCCESS;
-+    } else {
-+        LOG_DEBUG("Failed to load TCTI for name \"%s\": %s", file, dlerror());
-+    }
-+    size = snprintf(file_xfrm,
-+                    len + 1,
-+                    "@PREFIX@%s",
-+                    file);
-+    if (size >= len + 1) {
-+        LOG_ERROR("TCTI name truncated in transform.");
-+        return TSS2_TCTI_RC_BAD_VALUE;
-+    }
-+    *handle = dlopen(file_xfrm, RTLD_NOW);
-+    if (*handle != NULL) {
-+        return TSS2_RC_SUCCESS;
-+    } else {
-+        LOG_DEBUG("Could not load TCTI file: \"%s\": %s", file, dlerror());
-+    }
-+    /* 'name' alone didn't work, try libtss2-tcti-<name>.so.0 */
-+    size = snprintf(file_xfrm,
-+                    len + 1,
-+                    "@PREFIX@" TCTI_NAME_TEMPLATE_0,
-+                    file);
-+    if (size >= len + 1) {
-+        LOG_ERROR("TCTI name truncated in transform.");
-+        return TSS2_TCTI_RC_BAD_VALUE;
-+    }
-+    *handle = dlopen(file_xfrm, RTLD_NOW);
-+    if (*handle != NULL) {
-+        return TSS2_RC_SUCCESS;
-+    } else {
-+        LOG_DEBUG("Could not load TCTI file \"%s\": %s", file, dlerror());
-+    }
-+    /* libtss2-tcti-<name>.so.0 didn't work, try libtss2-tcti-<name>.so */
-+    size = snprintf(file_xfrm,
-+                    len + 1,
-+                    "@PREFIX@" TCTI_NAME_TEMPLATE,
-+                    file);
-+    if (size >= len + 1) {
-+        LOG_ERROR("TCTI name truncated in transform.");
-+        return TSS2_TCTI_RC_BAD_VALUE;
-+    }
-+    *handle = dlopen(file_xfrm, RTLD_NOW);
-     if (*handle == NULL) {
-         LOG_DEBUG("Failed to load TCTI for name \"%s\": %s", file, dlerror());
-         SAFE_FREE(file_xfrm);
+@@ -88,14 +88,24 @@ handle_from_name(const char *file,
+     const char *formats[] = {
+         /* <name> */
+         "%s",
++        /* <name> */
++        "@PREFIX@" "%s",
+         /* libtss2-tcti-<name>.so.0 */
+         FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX_0,
++        /* libtss2-tcti-<name>.so.0 */
++        "@PREFIX@" FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX_0,
+         /* libtss2-tcti-<name>.so */
+         FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX,
++        /* libtss2-tcti-<name>.so */
++        "@PREFIX@" FMT_TCTI_PREFIX "%s" FMT_LIB_SUFFIX,
+         /* libtss2-<name>.so.0 */
+         FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX_0,
++        /* libtss2-<name>.so.0 */
++        "@PREFIX@" FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX_0,
+         /* libtss2-<name>.so */
+         FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX,
++        /* libtss2-<name>.so */
++        "@PREFIX@" FMT_TSS_PREFIX "%s" FMT_LIB_SUFFIX,
+     };
+ 
+     if (handle == NULL) {
 diff --git a/test/unit/tctildr-dl.c b/test/unit/tctildr-dl.c
-index 4279baee..6685c811 100644
+index 135e1b14..7d654d1f 100644
 --- a/test/unit/tctildr-dl.c
 +++ b/test/unit/tctildr-dl.c
-@@ -229,6 +229,18 @@ test_get_info_default_success (void **state)
+@@ -168,6 +168,10 @@ test_handle_from_name_second_dlopen_success (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, TEST_HANDLE);
+@@ -186,10 +190,18 @@ test_handle_from_name_third_dlopen_success (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_B);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_C);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, TEST_HANDLE);
+@@ -208,14 +220,26 @@ test_handle_from_name_fourth_dlopen_success (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_B);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_C);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_C);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_D);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, TEST_HANDLE);
+@@ -234,18 +258,34 @@ test_handle_from_name_fifth_dlopen_success (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_A);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_B);
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
  
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_B);
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
 +
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0");
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_C);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_C);
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
 +
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so");
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_D);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" TEST_TCTI_TRY_D);
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, TEST_TCTI_TRY_E);
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, TEST_HANDLE);
+@@ -281,22 +321,42 @@ test_get_info_default_success (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-default.so");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
 +
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, HANDLE);
-@@ -261,6 +273,18 @@ test_get_info_default_info_fail (void **state)
+@@ -321,22 +381,42 @@ test_get_info_default_info_fail (void **state)
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
  
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-default.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
 +
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
 +
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
++
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
+ 
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
 +
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, HANDLE);
-@@ -413,6 +437,15 @@ test_tcti_fail_all (void **state)
+@@ -483,120 +563,225 @@ test_tcti_fail_all (void **state)
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-default.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-default.so");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-default.so.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-default.so");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-default.so.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-default.so.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-default.so.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-default.so.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      /* Skip over libtss2-tcti-tabrmd.so */
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-tabrmd.so.0");
-@@ -424,6 +457,15 @@ test_tcti_fail_all (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-tabrmd.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-tabrmd.so.0");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-tabrmd.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-tabrmd.so.0.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-tabrmd.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-tabrmd.so.0.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-tabrmd.so.0.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-tabrmd.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-tabrmd.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      /* Skip over libtss2-tcti-device.so, /dev/tpmrm0 */
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0");
-@@ -435,6 +477,15 @@ test_tcti_fail_all (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-device.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-device.so.0");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      /* Skip over libtss2-tcti-device.so, /dev/tpm0 */
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0");
-@@ -446,6 +497,15 @@ test_tcti_fail_all (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-device.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-device.so.0");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-device.so.0.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+ 
+     /* Skip over libtss2-tcti-device.so, /dev/tcm0 */
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-device.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-device.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-device.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-device.so.0.so");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-device.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-device.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      /* Skip over libtss2-tcti-swtpm.so */
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-swtpm.so.0");
-@@ -457,6 +517,15 @@ test_tcti_fail_all (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-swtpm.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-swtpm.so.0.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-swtpm.so.0");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-swtpm.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-swtpm.so.0.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-swtpm.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-swtpm.so.0.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-swtpm.so.0.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-swtpm.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-swtpm.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      /* Skip over libtss2-tcti-mssim.so */
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-mssim.so.0");
-@@ -468,6 +537,15 @@ test_tcti_fail_all (void **state)
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-mssim.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-mssim.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-mssim.so.0.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-libtss2-tcti-mssim.so.0.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-mssim.so.0");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-libtss2-tcti-mssim.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-mssim.so.0.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-mssim.so.0.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-mssim.so.0.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-libtss2-tcti-mssim.so.0.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-libtss2-tcti-mssim.so.0.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-libtss2-tcti-mssim.so.0.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      TSS2_RC r;
      TSS2_TCTI_CONTEXT *tcti;
-@@ -496,6 +574,15 @@ test_info_from_name_handle_fail (void **state)
+@@ -619,18 +804,33 @@ test_info_from_name_handle_fail (void **state)
+     expect_string(__wrap_dlopen, filename, "foo");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "foo");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/foo");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-foo.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-foo.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
      TSS2_RC rc = info_from_name ("foo", &info, &data);
      assert_int_equal (rc, TSS2_TCTI_RC_NOT_SUPPORTED);
-@@ -612,6 +699,15 @@ test_tctildr_get_info_from_name (void **state)
+@@ -741,18 +941,33 @@ test_tctildr_get_info_from_name (void **state)
+     expect_string(__wrap_dlopen, filename, "foo");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "foo");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
+     expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so.0");
++    expect_value(__wrap_dlopen, flags, RTLD_NOW);
++    will_return(__wrap_dlopen, NULL);
      expect_string(__wrap_dlopen, filename, "libtss2-tcti-foo.so");
      expect_value(__wrap_dlopen, flags, RTLD_NOW);
      will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/foo");
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-tcti-foo.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so.0");
+     expect_string(__wrap_dlopen, filename, "libtss2-foo.so.0");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so.0");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
-+    expect_string(__wrap_dlopen, filename, "@PREFIX@/libtss2-tcti-foo.so");
+     expect_string(__wrap_dlopen, filename, "libtss2-foo.so");
+     expect_value(__wrap_dlopen, flags, RTLD_NOW);
+     will_return(__wrap_dlopen, NULL);
++    expect_string(__wrap_dlopen, filename, "@PREFIX@" "libtss2-foo.so");
 +    expect_value(__wrap_dlopen, flags, RTLD_NOW);
 +    will_return(__wrap_dlopen, NULL);
  
diff --git a/pkgs/development/libraries/tracker-miners/default.nix b/pkgs/development/libraries/tracker-miners/default.nix
deleted file mode 100644
index 6d9d1628e4e70..0000000000000
--- a/pkgs/development/libraries/tracker-miners/default.nix
+++ /dev/null
@@ -1,144 +0,0 @@
-{ stdenv
-, lib
-, fetchurl
-, asciidoc
-, docbook-xsl-nons
-, docbook_xml_dtd_45
-, gettext
-, itstool
-, libxslt
-, gexiv2
-, tracker
-, meson
-, mesonEmulatorHook
-, ninja
-, pkg-config
-, vala
-, wrapGAppsNoGuiHook
-, bzip2
-, dbus
-, exempi
-, giflib
-, glib
-, gnome
-, gst_all_1
-, icu
-, json-glib
-, libcue
-, libexif
-, libgsf
-, libgxps
-, libiptcdata
-, libjpeg
-, libosinfo
-, libpng
-, libseccomp
-, libtiff
-, libuuid
-, libxml2
-, networkmanager
-, poppler
-, systemd
-, taglib
-, upower
-, totem-pl-parser
-, e2fsprogs
-}:
-
-stdenv.mkDerivation rec {
-  pname = "tracker-miners";
-  version = "3.6.2";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Ctci89Uywh11fPSI+UKWBnnqj0V5Je+pdlbtTJ6bpP8=";
-  };
-
-  nativeBuildInputs = [
-    asciidoc
-    docbook-xsl-nons
-    docbook_xml_dtd_45
-    gettext
-    glib
-    itstool
-    libxslt
-    meson
-    ninja
-    pkg-config
-    vala
-    wrapGAppsNoGuiHook
-  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
-    mesonEmulatorHook
-  ];
-
-  # TODO: add libenca, libosinfo
-  buildInputs = [
-    bzip2
-    dbus
-    exempi
-    giflib
-    gexiv2
-    totem-pl-parser
-    tracker
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-    gst_all_1.gst-plugins-bad
-    gst_all_1.gst-plugins-ugly
-    gst_all_1.gstreamer
-    gst_all_1.gst-libav
-    icu
-    json-glib
-    libcue
-    libexif
-    libgsf
-    libgxps
-    libiptcdata
-    libjpeg
-    libosinfo
-    libpng
-    libtiff
-    libuuid
-    libxml2
-    poppler
-    taglib
-  ] ++ lib.optionals stdenv.isLinux [
-    libseccomp
-    networkmanager
-    systemd
-    upower
-  ] ++ lib.optionals stdenv.isDarwin [
-    e2fsprogs
-  ];
-
-  mesonFlags = [
-    # TODO: tests do not like our sandbox
-    "-Dfunctional_tests=false"
-
-    # libgrss is unmaintained and has no new releases since 2015, and an open
-    # security issue since then. Despite a patch now being availab, we're opting
-    # to be safe due to the general state of the project
-    "-Dminer_rss=false"
-  ] ++ lib.optionals (!stdenv.isLinux) [
-    "-Dbattery_detection=none"
-    "-Dnetwork_manager=disabled"
-    "-Dsystemd_user_services=false"
-  ];
-
-  postInstall = ''
-    glib-compile-schemas "$out/share/glib-2.0/schemas"
-  '';
-
-  passthru = {
-    updateScript = gnome.updateScript {
-      packageName = pname;
-    };
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.gnome.org/GNOME/tracker-miners";
-    description = "Desktop-neutral user information store, search tool and indexer";
-    maintainers = teams.gnome.members;
-    license = licenses.gpl2Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index 48fc561ddd13b..da5274e0b7dfe 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -25,6 +25,7 @@
 , libsoup
 , libsoup_3
 , json-glib
+, avahi
 , systemd
 , dbus
 , writeText
@@ -33,13 +34,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "tracker";
-  version = "3.6.0";
+  version = "3.7.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = with finalAttrs; "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Ulks/hm6/9FtvkdHW+fadQ29C2Mz/XrLYPqp2lvEDfI=";
+    hash = "sha256-qz1KUJN+BMXteEb227mZ4pCYGUAvOJylku5rd90o0fk=";
   };
 
   strictDeps = true;
@@ -75,6 +76,7 @@ stdenv.mkDerivation (finalAttrs: {
     libsoup_3
     libuuid
     json-glib
+    avahi
     libstemmer
     dbus
   ] ++ lib.optionals stdenv.isLinux [
diff --git a/pkgs/development/libraries/tweeny/default.nix b/pkgs/development/libraries/tweeny/default.nix
index 257b966808d20..131cf2194ae85 100644
--- a/pkgs/development/libraries/tweeny/default.nix
+++ b/pkgs/development/libraries/tweeny/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation (finalAttrs: {
   doCheck = true;
 
   meta = with lib; {
-    description = "A modern C++ tweening library";
+    description = "Modern C++ tweening library";
     license = licenses.mit;
     homepage = "http://mobius3.github.io/tweeny";
     maintainers = [ maintainers.doronbehar ];
diff --git a/pkgs/development/libraries/twolame/default.nix b/pkgs/development/libraries/twolame/default.nix
index e81e47e094aac..eba2fdfe81c5c 100644
--- a/pkgs/development/libraries/twolame/default.nix
+++ b/pkgs/development/libraries/twolame/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   doCheck = false; # fails with "../build-scripts/test-driver: line 107: -Mstrict: command not found"
 
   meta = with lib;{
-    description = "A MP2 encoder";
+    description = "MP2 encoder";
     mainProgram = "twolame";
     longDescription = ''
       TwoLAME is an optimised MPEG Audio Layer 2 (MP2) encoder based on
diff --git a/pkgs/development/libraries/ubus/default.nix b/pkgs/development/libraries/ubus/default.nix
index 2150ed7b0e826..662ec1c7b0350 100644
--- a/pkgs/development/libraries/ubus/default.nix
+++ b/pkgs/development/libraries/ubus/default.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation {
   buildInputs = [ libubox libjson ];
   nativeBuildInputs = [ cmake ];
 
+  env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+    "-Wno-error=gnu-folding-constant"
+  ]);
+
   meta = with lib; {
     description = "OpenWrt system message/RPC bus";
     homepage = "https://git.openwrt.org/?p=project/ubus.git;a=summary";
diff --git a/pkgs/development/libraries/ucl/default.nix b/pkgs/development/libraries/ucl/default.nix
index 048f35868cdad..d8e05e9374bfa 100644
--- a/pkgs/development/libraries/ucl/default.nix
+++ b/pkgs/development/libraries/ucl/default.nix
@@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "b865299ffd45d73412293369c9754b07637680e5c826915f097577cd27350348";
   };
 
-  # needed to successfully compile with gcc 6
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-std=c90";
+  # needed to successfully compile with gcc 6+ and modern clang versions where
+  # `-Wimplicit-function-declaration` is otherwise on and errors by default
+  env.CFLAGS = "-std=c89";
 
   meta = {
     homepage = "http://www.oberhumer.com/opensource/ucl/";
diff --git a/pkgs/development/libraries/uclient/default.nix b/pkgs/development/libraries/uclient/default.nix
index 63a31c2bfbe9b..7206b6ad98fcd 100644
--- a/pkgs/development/libraries/uclient/default.nix
+++ b/pkgs/development/libraries/uclient/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation {
     maintainers = with maintainers; [ mkg20001 ];
     mainProgram = "uclient-fetch";
     platforms = platforms.all;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/libraries/ucx/default.nix b/pkgs/development/libraries/ucx/default.nix
index 71a1b2a2001f4..464ea6e374c37 100644
--- a/pkgs/development/libraries/ucx/default.nix
+++ b/pkgs/development/libraries/ucx/default.nix
@@ -19,13 +19,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "ucx";
-  version = "1.16.0";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "openucx";
     repo = "ucx";
     rev = "v${version}";
-    sha256 = "sha256-dihWwGlQclfa2ke+1V5c6coqfFjjuMyI8QRzNdx33zQ=";
+    sha256 = "sha256-Qd3c51LeF04haZA4wK6loNZwX2a3ju+ljwdPYPoUKCQ=";
   };
 
   outputs = [ "out" "doc" "dev" ];
diff --git a/pkgs/development/libraries/udunits/default.nix b/pkgs/development/libraries/udunits/default.nix
index 17efccce82a97..48ffb94175f98 100644
--- a/pkgs/development/libraries/udunits/default.nix
+++ b/pkgs/development/libraries/udunits/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.unidata.ucar.edu/software/udunits/";
-    description = "A C-based package for the programatic handling of units of physical quantities";
+    description = "C-based package for the programatic handling of units of physical quantities";
     longDescription = ''
       The UDUNITS package supports units of physical quantities. Its C library
       provides for arithmetic manipulation of units and for conversion of
diff --git a/pkgs/development/libraries/uid_wrapper/default.nix b/pkgs/development/libraries/uid_wrapper/default.nix
index 61f7242b5d8c4..f606bdde14c28 100644
--- a/pkgs/development/libraries/uid_wrapper/default.nix
+++ b/pkgs/development/libraries/uid_wrapper/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake pkg-config ];
 
   meta = with lib; {
-    description = "A wrapper for the user, group and hosts NSS API";
+    description = "Wrapper for the user, group and hosts NSS API";
     homepage = "https://git.samba.org/?p=uid_wrapper.git;a=summary;";
     license = licenses.bsd3;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/umockdev/default.nix b/pkgs/development/libraries/umockdev/default.nix
index 2d543f5a5364f..b7926eecb4f24 100644
--- a/pkgs/development/libraries/umockdev/default.nix
+++ b/pkgs/development/libraries/umockdev/default.nix
@@ -2,7 +2,6 @@
 , lib
 , docbook-xsl-nons
 , fetchurl
-, fetchpatch
 , glib
 , gobject-introspection
 , gtk-doc
@@ -22,13 +21,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "umockdev";
-  version = "0.18.1";
+  version = "0.18.2";
 
   outputs = [ "bin" "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/martinpitt/umockdev/releases/download/${finalAttrs.version}/umockdev-${finalAttrs.version}.tar.xz";
-    hash = "sha256-ZRtoaQM7sUiBNu1zxY6SRfWwGFYmHhzqBBAwuD+x7Xw=";
+    hash = "sha256-1HKV6IA8bWfgdgMcIlgeP470aIAj1I925ed2qM7IkHM=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/unibilium/default.nix b/pkgs/development/libraries/unibilium/default.nix
index 332b2deddf783..f2e2e27b35d7c 100644
--- a/pkgs/development/libraries/unibilium/default.nix
+++ b/pkgs/development/libraries/unibilium/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ ncurses ];
 
   meta = with lib; {
-    description = "A very basic terminfo library";
+    description = "Very basic terminfo library";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ pSub ];
diff --git a/pkgs/development/libraries/updfparser/default.nix b/pkgs/development/libraries/updfparser/default.nix
index aa25f9f2dffdd..6eb4e65e657ae 100644
--- a/pkgs/development/libraries/updfparser/default.nix
+++ b/pkgs/development/libraries/updfparser/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A very simple PDF parser";
+    description = "Very simple PDF parser";
     homepage = "https://indefero.soutade.fr/p/updfparser";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ autumnal ];
diff --git a/pkgs/development/libraries/urdfdom-headers/default.nix b/pkgs/development/libraries/urdfdom-headers/default.nix
index 138597ad89a61..7809355cb3015 100644
--- a/pkgs/development/libraries/urdfdom-headers/default.nix
+++ b/pkgs/development/libraries/urdfdom-headers/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "urdfdom-headers";
-  version = "1.1.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
     owner = "ros";
     repo = "urdfdom_headers";
     rev = version;
-    hash = "sha256-ry5wDMRxR7TtupUghe9t1XP0XMvWKiOesO5RFHPrSdI=";
+    hash = "sha256-FQSnYuTc40MOxyFsMPfoCIonP+4AUQxdq74eoQ9tOoo=";
   };
 
   patches = [
     # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom_headers/pull/66)
     (fetchpatch {
-      url = "https://github.com/ros/urdfdom_headers/commit/c9c993147bbf18d5ec83bae684c5780281e529b4.patch";
-      hash = "sha256-BnYPdcetYSim2O1R38N0d1tY0Id++AgKNic8+dlM6Vg=";
+      url = "https://github.com/ros/urdfdom_headers/commit/6e0cea148c3a7123f8367cd48d5709a4490c32f1.patch";
+      hash = "sha256-LC2TACGma/k6+WE9fTkzY98SgJYKsVuj5O9v84Q5mQ4=";
     })
   ];
 
diff --git a/pkgs/development/libraries/urdfdom/default.nix b/pkgs/development/libraries/urdfdom/default.nix
index 6e59914044fc0..f26162ac8c83b 100644
--- a/pkgs/development/libraries/urdfdom/default.nix
+++ b/pkgs/development/libraries/urdfdom/default.nix
@@ -1,27 +1,28 @@
 { lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, validatePkgConfig
-, urdfdom-headers, console-bridge, tinyxml }:
+, tinyxml-2, console-bridge, urdfdom-headers }:
 
 stdenv.mkDerivation rec {
   pname = "urdfdom";
-  version = "3.1.1";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "ros";
     repo = pname;
     rev = version;
-    hash = "sha256-UdkGJAXK3Q8QJaqMZBA5/FKUgWq9EVeqkqwVewTlTD8=";
+    hash = "sha256-t1ff5aRHE7LuQdCXuooWPDUgPWjyYyQmQUB1RJmte1w=";
   };
 
   patches = [
     # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom/pull/142)
     (fetchpatch {
-      url = "https://github.com/ros/urdfdom/commit/cbe6884d267779463bb444be851f6404e692cc0a.patch";
-      hash = "sha256-1gTRKIGqiSRion76bGecSfFJSBskYUJguUIa6ePIiX4=";
+      url = "https://github.com/ros/urdfdom/commit/61a7e35cd5abece97259e76aed8504052b2f5b53.patch";
+      hash = "sha256-b3bEbbaSUDkwTEHJ8gVPEb+AR/zuWwLqiAW5g1T1dPU=";
     })
   ];
 
   nativeBuildInputs = [ cmake pkg-config validatePkgConfig ];
-  propagatedBuildInputs = [ urdfdom-headers console-bridge tinyxml ];
+  buildInputs = [ tinyxml-2 console-bridge ];
+  propagatedBuildInputs = [ urdfdom-headers ];
 
   meta = with lib; {
     description = "Provides core data structures and a simple XML parser for populating the class data structures from an URDF file";
diff --git a/pkgs/development/libraries/uriparser/default.nix b/pkgs/development/libraries/uriparser/default.nix
index 01ab983e1d6e0..dd93f49f59463 100644
--- a/pkgs/development/libraries/uriparser/default.nix
+++ b/pkgs/development/libraries/uriparser/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "uriparser";
-  version = "0.9.7";
+  version = "0.9.8";
 
   # Release tarball differs from source tarball
   src = fetchurl {
     url = "https://github.com/uriparser/uriparser/releases/download/${pname}-${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-0n3qDItvb7l5jwfK7e8c2WpuP8XGGJWWd04Zr6fd3tc=";
+    hash = "sha256-ctG1Wb46GAb3iKPZvjShsGPUKqI4spuk7mM9bv/NM70=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.buildPlatform == stdenv.hostPlatform;
 
   meta = with lib; {
+    changelog = "https://github.com/uriparser/uriparser/blob/uriparser-${version}/ChangeLog";
     description = "Strictly RFC 3986 compliant URI parsing library";
     longDescription = ''
       uriparser is a strictly RFC 3986 compliant URI parsing and handling library written in C.
diff --git a/pkgs/development/libraries/usrsctp/default.nix b/pkgs/development/libraries/usrsctp/default.nix
index 9723f887b82b9..8b172ebb45d7e 100644
--- a/pkgs/development/libraries/usrsctp/default.nix
+++ b/pkgs/development/libraries/usrsctp/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/sctplab/usrsctp";
-    description = "A portable SCTP userland stack";
+    description = "Portable SCTP userland stack";
     maintainers = with maintainers; [ misuzu ];
     license = licenses.bsd3;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/ustr/default.nix b/pkgs/development/libraries/ustr/default.nix
deleted file mode 100644
index 598e5e7c76a11..0000000000000
--- a/pkgs/development/libraries/ustr/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "ustr";
-  version = "1.0.4";
-
-  src = fetchurl {
-    url = "http://www.and.org/ustr/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1i623ygdj7rkizj7985q9d6vj5amwg686aqb5j3ixpkqkyp6xbrx";
-  };
-
-  # Fixes bogus warnings that failed libsemanage
-  patches = [ ./va_args.patch ];
-
-  # Work around gcc5 switch to gnu11
-  env.NIX_CFLAGS_COMPILE = "-std=gnu89";
-
-  # Fix detection of stdint.h
-  postPatch = ''
-    sed -i 's,\(have_stdint_h\)=0,\1=1,g' Makefile
-    sed -i 's,\(USTR_CONF_HAVE_STDINT_H\) 0,\1 1,g' ustr-import.in
-  '';
-
-  preBuild = ''
-    makeFlagsArray+=("prefix=$out")
-    makeFlagsArray+=("LDCONFIG=echo")
-    makeFlagsArray+=("HIDE=")
-  '';
-
-  # Remove debug libraries
-  postInstall = ''
-    find $out/lib -name \*debug\* -delete
-  '';
-
-  meta = with lib; {
-    homepage = "http://www.and.org/ustr/";
-    description = "Micro String API for C language";
-    mainProgram = "ustr-import";
-    license = licenses.bsd2;
-    maintainers = [ ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/ustr/va_args.patch b/pkgs/development/libraries/ustr/va_args.patch
deleted file mode 100644
index f75b537485d89..0000000000000
--- a/pkgs/development/libraries/ustr/va_args.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/ustr-compiler.h b/ustr-compiler.h
-index 9e71276..c5f847a 100644
---- a/ustr-compiler.h
-+++ b/ustr-compiler.h
-@@ -11,17 +11,11 @@
- #define USTR_CONF_HAVE_ATTR_FMT 1
- #endif
- 
-+#include <stdarg.h>
- /* We assume this is enough,
-  * C99 specifies that va_copy() exists and is a macro */
--#ifdef va_copy
- # define USTR_CONF_HAVE_VA_COPY 1
- # define USTR__VA_COPY(x, y)   va_copy(x, y)
--#elif __va_copy
--# define USTR_CONF_HAVE_VA_COPY 1
--# define USTR__VA_COPY(x, y) __va_copy(x, y)
--#else
--# define USTR_CONF_HAVE_VA_COPY 0
--#endif
- 
- #ifndef USTR_CONF_HAVE_ATTR_NONNULL
- #if defined(__GNUC__) && (__GNUC__ > 3) /* not sure */
diff --git a/pkgs/development/libraries/ustream-ssl/default.nix b/pkgs/development/libraries/ustream-ssl/default.nix
index 638685434463c..4bee9d4f31558 100644
--- a/pkgs/development/libraries/ustream-ssl/default.nix
+++ b/pkgs/development/libraries/ustream-ssl/default.nix
@@ -10,12 +10,12 @@
 
 stdenv.mkDerivation {
   pname = "ustream-ssl";
-  version = "unstable-2023-11-11";
+  version = "0-unstable-2024-03-26";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/ustream-ssl.git";
-    rev = "263b9a97cf7e1e2467319c23832b705fc01190b5";
-    hash = "sha256-RLHU6swNbS3DL3QbKnwU4BbD0EFGKCrHHp0hbnoSssw=";
+    rev = "7621339d7694abef5da5e5353ac440f2d39dcecb";
+    hash = "sha256-No0Pk8KbkT7W4Rav7W3rMKEJISbp7RRoRx7t6LPMxlk=";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/utf8proc/default.nix b/pkgs/development/libraries/utf8proc/default.nix
index 7bdb9747472b0..f248d6d972255 100644
--- a/pkgs/development/libraries/utf8proc/default.nix
+++ b/pkgs/development/libraries/utf8proc/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A clean C library for processing UTF-8 Unicode data";
+    description = "Clean C library for processing UTF-8 Unicode data";
     homepage = "https://juliastrings.github.io/utf8proc/";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/uthash/default.nix b/pkgs/development/libraries/uthash/default.nix
index f697e8c7a125b..98c5200fcc2c6 100644
--- a/pkgs/development/libraries/uthash/default.nix
+++ b/pkgs/development/libraries/uthash/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A hash table for C structures";
+    description = "Hash table for C structures";
     homepage    = "http://troydhanson.github.io/uthash";
     license     = licenses.bsd2; # it's one-clause, actually, as it's source-only
     platforms   = platforms.all;
diff --git a/pkgs/development/libraries/uthenticode/default.nix b/pkgs/development/libraries/uthenticode/default.nix
index 68a896d136499..e8d08745de8f2 100644
--- a/pkgs/development/libraries/uthenticode/default.nix
+++ b/pkgs/development/libraries/uthenticode/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   checkPhase = "test/uthenticode_test";
 
   meta = with lib; {
-    description = "A small cross-platform library for verifying Authenticode digital signatures.";
+    description = "Small cross-platform library for verifying Authenticode digital signatures";
     homepage = "https://github.com/trailofbits/uthenticode";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 0eb3bda4286da..9320fe34bb64a 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, fetchFromGitHub
+{ stdenv, lib, fetchgit
 , gn, ninja, python3, glib, pkg-config, icu
 , xcbuild, darwin
 , fetchpatch
@@ -190,5 +190,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ proglodyte matthewbauer ];
     platforms = platforms.unix;
     license = licenses.bsd3;
+    knownVulnerabilities = [ "Severely outdated with multiple publicly known vulnerabilities" ];
   };
 }
diff --git a/pkgs/development/libraries/vapoursynth-mvtools/default.nix b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
index 54d9bad1644f7..8ddc1d88fe443 100644
--- a/pkgs/development/libraries/vapoursynth-mvtools/default.nix
+++ b/pkgs/development/libraries/vapoursynth-mvtools/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--libdir=$(out)/lib/vapoursynth" ];
 
   meta = with lib; {
-    description = "A set of filters for motion estimation and compensation";
+    description = "Set of filters for motion estimation and compensation";
     homepage = "https://github.com/dubhater/vapoursynth-mvtools";
     license  = licenses.gpl2;
     maintainers = with maintainers; [ rnhmjoj ];
diff --git a/pkgs/development/libraries/vapoursynth/default.nix b/pkgs/development/libraries/vapoursynth/default.nix
index 242294462ed6b..bf21723875bf8 100644
--- a/pkgs/development/libraries/vapoursynth/default.nix
+++ b/pkgs/development/libraries/vapoursynth/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin; # see https://github.com/NixOS/nixpkgs/pull/189446 for partial fix
-    description = "A video processing framework with the future in mind";
+    description = "Video processing framework with the future in mind";
     homepage    = "http://www.vapoursynth.com/";
     license     = licenses.lgpl21;
     platforms   = platforms.x86_64;
diff --git a/pkgs/development/libraries/vc/default.nix b/pkgs/development/libraries/vc/default.nix
index 02b202365b9bf..6eb3c3db64278 100644
--- a/pkgs/development/libraries/vc/default.nix
+++ b/pkgs/development/libraries/vc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "Vc";
-  version = "1.4.4";
+  version = "1.4.5";
 
   src = fetchFromGitHub {
     owner = "VcDevel";
     repo = "Vc";
     rev = version;
-    sha256 = "sha256-tbHDGbul68blBAvok17oz7AfhHpEY9Y7RIEsqCQvOJ0=";
+    sha256 = "sha256-A2qUzjXv50unFcoZp2nRVinkph+CoHyiU7AgOphDphM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/vectorscan/default.nix b/pkgs/development/libraries/vectorscan/default.nix
index 12fa0735b27f1..835db0f3566b7 100644
--- a/pkgs/development/libraries/vectorscan/default.nix
+++ b/pkgs/development/libraries/vectorscan/default.nix
@@ -2,42 +2,74 @@
 , stdenv
 , fetchFromGitHub
 , cmake
+, pkg-config
 , ragel
 , util-linux
 , python3
-, boost
+, boost184
+, sqlite
+, pcre
 , enableShared ? !stdenv.hostPlatform.isStatic
 }:
 
 stdenv.mkDerivation rec {
   pname = "vectorscan";
-  version = "5.4.10.1";
+  version = "5.4.11";
 
   src = fetchFromGitHub {
     owner = "VectorCamp";
     repo = "vectorscan";
     rev = "vectorscan/${version}";
-    hash = "sha256-x6FefOrUvpN/A4GXTd+3SGZEAQL6pXt83ufxRIY3Q9k=";
+    hash = "sha256-wz2oIhau/vjnri3LOyPZSCFAWg694FTLVt7+SZYEsL4=";
   };
 
   nativeBuildInputs = [
     cmake
+    pkg-config
     ragel
     python3
   ] ++ lib.optional stdenv.isLinux util-linux;
 
   buildInputs = [
-    boost
+    boost184
+    sqlite
+    pcre
   ];
 
-  cmakeFlags = lib.optional enableShared "-DBUILD_STATIC_AND_SHARED=ON"
-    ++ [ "-DFAT_RUNTIME=${if stdenv.hostPlatform.isLinux then "ON" else "OFF"}" ]
-    ++ lib.optional stdenv.hostPlatform.avx2Support "-DBUILD_AVX2=ON"
-    ++ lib.optional stdenv.hostPlatform.avx512Support "-DBUILD_AVX512=ON"
-  ;
+  # FAT_RUNTIME bundles optimized implementations for different CPU extensions and uses CPUID to
+  # transparently select the fastest for the current hardware.
+  # This feature is only available on linux for x86, x86_64, and aarch64.
+  #
+  # If FAT_RUNTIME is not available, we fall back to building for a single extension based
+  # on stdenv.hostPlatform.
+  #
+  # For generic builds (e.g. x86_64) this can mean using an implementation not optimized for the
+  # potentially available more modern hardware extensions (e.g. x86_64 with AVX512).
+  cmakeFlags = [ (if enableShared then "-DBUILD_SHARED_LIBS=ON" else "BUILD_STATIC_LIBS=ON") ]
+    ++
+    (if lib.elem stdenv.hostPlatform.system [ "x86_64-linux" "i686-linux" ] then
+      [ "-DBUILD_AVX2=ON" "-DBUILD_AVX512=ON" "-DBUILD_AVX512VBMI=ON" "-DFAT_RUNTIME=ON" ]
+    else
+      (if (stdenv.isLinux && stdenv.isAarch64) then
+        [ "-DBUILD_SVE=ON" "-DBUILD_SVE2=ON" "-DBUILD_SVE2_BITPERM=ON" "-DFAT_RUNTIME=ON" ]
+      else
+        [ "-DFAT_RUNTIME=OFF" ]
+          ++ lib.optional stdenv.hostPlatform.avx2Support "-DBUILD_AVX2=ON"
+          ++ lib.optional stdenv.hostPlatform.avx512Support "-DBUILD_AVX512=ON"
+      )
+    );
+
+  doCheck = true;
+  checkPhase = ''
+    runHook preCheck
+
+    ./bin/unit-hyperscan
+
+    runHook postCheck
+  '';
 
   meta = with lib; {
-    description = "A portable fork of the high-performance regular expression matching library";
+    description = "Portable fork of the high-performance regular expression matching library";
     longDescription = ''
       A fork of Intel's Hyperscan, modified to run on more platforms. Currently
       ARM NEON/ASIMD is 100% functional, and Power VSX are in development.
diff --git a/pkgs/development/libraries/virglrenderer/default.nix b/pkgs/development/libraries/virglrenderer/default.nix
index 5a28ad3822363..f0e844360cca7 100644
--- a/pkgs/development/libraries/virglrenderer/default.nix
+++ b/pkgs/development/libraries/virglrenderer/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
+    description = "Virtual 3D GPU library that allows a qemu guest to use the host GPU for accelerated 3D rendering";
     mainProgram = "virgl_test_server";
     homepage = "https://virgil3d.github.io/";
     license = licenses.mit;
diff --git a/pkgs/development/libraries/virtualpg/default.nix b/pkgs/development/libraries/virtualpg/default.nix
index 277ca47d66e34..d9778decd129e 100644
--- a/pkgs/development/libraries/virtualpg/default.nix
+++ b/pkgs/development/libraries/virtualpg/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, validatePkgConfig, postgresql, sqlite }:
+{ lib, stdenv, fetchurl, validatePkgConfig, postgresql, sqlite, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "virtualpg";
@@ -14,7 +14,8 @@ stdenv.mkDerivation rec {
     postgresql  # for pg_config
   ];
 
-  buildInputs = [ postgresql sqlite ];
+  buildInputs = [ postgresql sqlite ]
+    ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Kerberos ];
 
   meta = with lib; {
     description = "Loadable dynamic extension to both SQLite and SpatiaLite";
diff --git a/pkgs/development/libraries/vkd3d/default.nix b/pkgs/development/libraries/vkd3d/default.nix
deleted file mode 100644
index 087a56df970fa..0000000000000
--- a/pkgs/development/libraries/vkd3d/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, fetchFromGitLab, autoreconfHook, pkg-config, wine, flex, bison
-, vulkan-headers, spirv-headers, vulkan-loader }:
-
-stdenv.mkDerivation rec {
-  pname = "vkd3d";
-  version = "1.10";
-
-  nativeBuildInputs = [ autoreconfHook pkg-config wine flex bison ];
-  buildInputs = [ vulkan-loader vulkan-headers spirv-headers ];
-
-  src = fetchFromGitLab {
-    domain = "gitlab.winehq.org";
-    owner = "wine";
-    repo = pname;
-    rev = "${pname}-${version}";
-    sha256 = "sha256-/5tc8agqpRbFRnfv8O1fBo2SPNOuO6exs0BZ9MnOTA0=";
-  };
-
-  meta = with lib; {
-    homepage = "https://gitlab.winehq.org/wine/vkd3d";
-    description = "A 3D graphics library with an API very similar, but not identical, to Direct3D 12";
-    license = licenses.lgpl21;
-    maintainers = with maintainers; [ expipiplus1 ];
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/libraries/vmmlib/default.nix b/pkgs/development/libraries/vmmlib/default.nix
index 921284bca4814..11df1a495f02f 100644
--- a/pkgs/development/libraries/vmmlib/default.nix
+++ b/pkgs/development/libraries/vmmlib/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A vector and matrix math library implemented using C++ templates";
+    description = "Vector and matrix math library implemented using C++ templates";
 
     longDescription = ''vmmlib is a vector and matrix math library implemented
             using C++ templates. Its basic functionality includes a vector
diff --git a/pkgs/development/libraries/volk/2.5.0.nix b/pkgs/development/libraries/volk/2.5.0.nix
index 35216cb7e31c2..3e15993efc39f 100644
--- a/pkgs/development/libraries/volk/2.5.0.nix
+++ b/pkgs/development/libraries/volk/2.5.0.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://libvolk.org/";
-    description = "The Vector Optimized Library of Kernels";
+    description = "Vector Optimized Library of Kernels";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/volk/default.nix b/pkgs/development/libraries/volk/default.nix
index 02240ac1febff..caf3c848a1ed8 100644
--- a/pkgs/development/libraries/volk/default.nix
+++ b/pkgs/development/libraries/volk/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   meta = with lib; {
     homepage = "http://libvolk.org/";
-    description = "The Vector Optimized Library of Kernels";
+    description = "Vector Optimized Library of Kernels";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/volume-key/default.nix b/pkgs/development/libraries/volume-key/default.nix
index e6aa378d01e58..ea40b8a27da63 100644
--- a/pkgs/development/libraries/volume-key/default.nix
+++ b/pkgs/development/libraries/volume-key/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails 1 out of 1 tests, needs `certutil`
 
   meta = with lib; {
-    description = "A library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool";
+    description = "Library for manipulating storage volume encryption keys and storing them separately from volumes to handle forgotten passphrases, and the associated command-line tool";
     mainProgram = "volume_key";
     homepage = "https://pagure.io/volume_key/";
     license = licenses.gpl2;
diff --git a/pkgs/development/libraries/vrb/default.nix b/pkgs/development/libraries/vrb/default.nix
index b4a2f9a388f19..f6ab54dba0304 100644
--- a/pkgs/development/libraries/vrb/default.nix
+++ b/pkgs/development/libraries/vrb/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A virtual ring buffer library written in C";
+    description = "Virtual ring buffer library written in C";
     mainProgram = "vbuf";
     license     = licenses.lgpl21;
     homepage    = "http://vrb.sourceforge.net/";
diff --git a/pkgs/development/libraries/vte/default.nix b/pkgs/development/libraries/vte/default.nix
index be55952fe2e1a..87cf27f70fd47 100644
--- a/pkgs/development/libraries/vte/default.nix
+++ b/pkgs/development/libraries/vte/default.nix
@@ -22,23 +22,24 @@
 , pcre2
 , cairo
 , fribidi
-, zlib
+, lz4
 , icu
 , systemd
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd
 , nixosTests
+, blackbox-terminal
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vte";
-  version = "0.74.2";
+  version = "0.76.3";
 
   outputs = [ "out" "dev" ]
     ++ lib.optional (gtkVersion != null) "devdoc";
 
   src = fetchurl {
     url = "mirror://gnome/sources/vte/${lib.versions.majorMinor finalAttrs.version}/vte-${finalAttrs.version}.tar.xz";
-    sha256 = "sha256-pTX7Kpj+qKJEnNGgLMz1GQEx3d/1LnFa/azj/rU26uc=";
+    hash = "sha256-9njpTAVvN3/QAhIUrf9UUMsXLpoIsWCREYHd/3t9XWA=";
   };
 
   patches = [
@@ -48,7 +49,7 @@ stdenv.mkDerivation (finalAttrs: {
     (fetchpatch {
       name = "0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch";
       url = "https://git.alpinelinux.org/aports/plain/community/vte3/fix-W_EXITCODE.patch?id=4d35c076ce77bfac7655f60c4c3e4c86933ab7dd";
-      sha256 = "FkVyhsM0mRUzZmS2Gh172oqwcfXv6PyD6IEgjBhy2uU=";
+      hash = "sha256-FkVyhsM0mRUzZmS2Gh172oqwcfXv6PyD6IEgjBhy2uU=";
     })
   ];
 
@@ -71,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
     gnutls
     pango # duplicated with propagatedBuildInputs to support gtkVersion == null
     pcre2
-    zlib
+    lz4
     icu
   ] ++ lib.optionals systemdSupport [
     systemd
@@ -97,11 +98,11 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   # error: argument unused during compilation: '-pie' [-Werror,-Wunused-command-line-argument]
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.hostPlatform.isMusl "-Wno-unused-command-line-argument";
+  env.NIX_CFLAGS_COMPILE = toString (lib.optional stdenv.hostPlatform.isMusl "-Wno-unused-command-line-argument"
+    ++ lib.optional stdenv.cc.isClang "-Wno-cast-function-type-strict");
 
   postPatch = ''
     patchShebangs perf/*
-    patchShebangs src/box_drawing_generate.sh
     patchShebangs src/parser-seq.py
     patchShebangs src/modes.py
   '';
@@ -118,12 +119,13 @@ stdenv.mkDerivation (finalAttrs: {
     };
     tests = {
       inherit (nixosTests.terminal-emulators) gnome-terminal lxterminal mlterm roxterm sakura stupidterm terminator termite xfce4-terminal;
+      blackbox-terminal = blackbox-terminal.override { sixelSupport = true; };
     };
   };
 
   meta = with lib; {
     homepage = "https://www.gnome.org/";
-    description = "A library implementing a terminal emulator widget for GTK";
+    description = "Library implementing a terminal emulator widget for GTK";
     longDescription = ''
       VTE is a library (libvte) implementing a terminal emulator widget for
       GTK, and a minimal sample application (vte) using that.  Vte is
diff --git a/pkgs/development/libraries/vtk/generic.nix b/pkgs/development/libraries/vtk/generic.nix
index 73fc650844dbe..5ad312c1b8658 100644
--- a/pkgs/development/libraries/vtk/generic.nix
+++ b/pkgs/development/libraries/vtk/generic.nix
@@ -79,8 +79,10 @@ in stdenv.mkDerivation {
     "-DCMAKE_CXX_FLAGS=-fPIC"
     "-DVTK_MODULE_USE_EXTERNAL_vtkpng=ON"
     "-DVTK_MODULE_USE_EXTERNAL_vtktiff=1"
+    "-DVTK_MODULE_ENABLE_VTK_RenderingExternal=YES"
   ] ++ lib.optionals (!stdenv.isDarwin) [
     "-DOPENGL_INCLUDE_DIR=${libGL}/include"
+    "-DVTK_OPENGL_HAS_EGL=ON"
   ] ++ [
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DCMAKE_INSTALL_INCLUDEDIR=include"
@@ -110,7 +112,7 @@ in stdenv.mkDerivation {
     description = "Open source libraries for 3D computer graphics, image processing and visualization";
     homepage = "https://www.vtk.org/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ knedlsepp tfmoraes lheckemann ];
+    maintainers = with maintainers; [ knedlsepp tfmoraes ];
     platforms = with platforms; unix;
   };
 }
diff --git a/pkgs/development/libraries/vulkan-headers/default.nix b/pkgs/development/libraries/vulkan-headers/default.nix
index 5793905a75a14..cd9dbec032087 100644
--- a/pkgs/development/libraries/vulkan-headers/default.nix
+++ b/pkgs/development/libraries/vulkan-headers/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, cmake }:
 stdenv.mkDerivation rec {
   pname = "vulkan-headers";
-  version = "1.3.280.0";
+  version = "1.3.283.0";
 
   nativeBuildInputs = [ cmake ];
 
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     owner = "KhronosGroup";
     repo = "Vulkan-Headers";
     rev = "vulkan-sdk-${version}";
-    hash = "sha256-EnKiCtH6rh3ACQgokSSfp4FPFluMZW0dheP8IEzZtY4=";
+    hash = "sha256-DpbTYlEJPtyf/m9QEI8fdAm1Hw8MpFd+iCd7WB2gp/M=";
   };
 
   passthru.updateScript = ./update.sh;
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index f36a01e1a67ff..023bba6ee8e87 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-loader";
-  version = "1.3.280.0";
+  version = "1.3.283.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Loader";
     rev = "vulkan-sdk-${finalAttrs.version}";
-    hash = "sha256-zkJSPshRaZRDiBvLJbJo8l1MX10KXYZniqtNTNnokT4=";
+    hash = "sha256-pe4WYbfB20yRI5Pg+RxgmQcmdXsSoRxbBkQ3DdAL8r4=";
   };
 
   patches = [ ./fix-pkgconfig.patch ];
diff --git a/pkgs/development/libraries/vulkan-utility-libraries/default.nix b/pkgs/development/libraries/vulkan-utility-libraries/default.nix
index c2c49671b0781..769cdb95908dd 100644
--- a/pkgs/development/libraries/vulkan-utility-libraries/default.nix
+++ b/pkgs/development/libraries/vulkan-utility-libraries/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "vulkan-utility-libraries";
-  version = "1.3.280.0";
+  version = "1.3.283.0";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "Vulkan-Utility-Libraries";
     rev = "vulkan-sdk-${finalAttrs.version}";
-    hash = "sha256-mCD9/bpWUXRVJ+OyOqG0tXTgFuptIlcG6UR/RiNV1Z0=";
+    hash = "sha256-oQC//4RHJjSncQtHPVsYnpLYtXfxSSJdbUBf8clevDI=";
   };
 
   nativeBuildInputs = [ cmake python3 ];
   buildInputs = [ vulkan-headers ];
 
   meta = with lib; {
-    description = "A set of utility libraries for Vulkan";
+    description = "Set of utility libraries for Vulkan";
     homepage = "https://github.com/KhronosGroup/Vulkan-Utility-Libraries";
     platforms = platforms.all;
     license = licenses.asl20;
diff --git a/pkgs/development/libraries/waffle/default.nix b/pkgs/development/libraries/waffle/default.nix
index 6867f9da410ef..9f8d4e914b71e 100644
--- a/pkgs/development/libraries/waffle/default.nix
+++ b/pkgs/development/libraries/waffle/default.nix
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime";
+    description = "Cross-platform C library that allows one to defer selection of an OpenGL API and window system until runtime";
     mainProgram = "wflinfo";
     homepage = "https://www.waffle-gl.org/";
     license = licenses.bsd2;
diff --git a/pkgs/development/libraries/wangle/default.nix b/pkgs/development/libraries/wangle/default.nix
index 080bfb4d018c6..e90d05318eac4 100644
--- a/pkgs/development/libraries/wangle/default.nix
+++ b/pkgs/development/libraries/wangle/default.nix
@@ -74,7 +74,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "An open-source C++ networking library";
+    description = "Open-source C++ networking library";
     longDescription = ''
       Wangle is a framework providing a set of common client/server
       abstractions for building services in a consistent, modular, and
diff --git a/pkgs/development/libraries/wapp/default.nix b/pkgs/development/libraries/wapp/default.nix
index 8c414a28f1226..fd98f419da9af 100644
--- a/pkgs/development/libraries/wapp/default.nix
+++ b/pkgs/development/libraries/wapp/default.nix
@@ -25,7 +25,7 @@ tcl.mkTclDerivation {
 
   meta = with lib; {
     homepage = "https://wapp.tcl-lang.org/home/doc/trunk/README.md";
-    description = "A framework for writing web applications in Tcl";
+    description = "Framework for writing web applications in Tcl";
     license = licenses.bsd2;
     maintainers = with maintainers; [ nat-418 ];
   };
diff --git a/pkgs/development/libraries/wayland/protocols.nix b/pkgs/development/libraries/wayland/protocols.nix
index e150c87c15d1a..a260b2b63b92d 100644
--- a/pkgs/development/libraries/wayland/protocols.nix
+++ b/pkgs/development/libraries/wayland/protocols.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   pname = "wayland-protocols";
-  version = "1.34";
+  version = "1.35";
 
   # https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/48
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform && stdenv.hostPlatform.linker == "bfd" && wayland.withLibraries;
 
   src = fetchurl {
     url = "https://gitlab.freedesktop.org/wayland/${pname}/-/releases/${version}/downloads/${pname}-${version}.tar.xz";
-    hash = "sha256-xZsnys2F9guvTuX4DfXA0Vdg6taiQysAq34uBXTcr+s=";
+    hash = "sha256-N6JxaigTPcgZNBxWiinSHoy3ITDlwSah/PyfQsI9las=";
   };
 
   postPatch = lib.optionalString doCheck ''
diff --git a/pkgs/development/libraries/waylib/default.nix b/pkgs/development/libraries/waylib/default.nix
index d8522e1f64ff7..1cc5332cf777c 100644
--- a/pkgs/development/libraries/waylib/default.nix
+++ b/pkgs/development/libraries/waylib/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
   outputs = [ "out" "dev" "bin" ];
 
   meta = {
-    description = "A wrapper for wlroots based on Qt";
+    description = "Wrapper for wlroots based on Qt";
     homepage = "https://github.com/vioken/waylib";
     license = with lib.licenses; [ gpl3Only lgpl3Only asl20 ];
     outputsToInstall = [ "out" ];
diff --git a/pkgs/development/libraries/webkitgtk/default.nix b/pkgs/development/libraries/webkitgtk/default.nix
index 140c2a4d4ae2b..98c28ca67997d 100644
--- a/pkgs/development/libraries/webkitgtk/default.nix
+++ b/pkgs/development/libraries/webkitgtk/default.nix
@@ -48,6 +48,8 @@
 , lcms2
 , libmanette
 , geoclue2
+, flite
+, openssl
 , sqlite
 , gst-plugins-base
 , gst-plugins-bad
@@ -62,6 +64,7 @@
 , unifdef
 , addOpenGLRunpath
 , enableGeoLocation ? true
+, enableExperimental ? false
 , withLibsecret ? true
 , systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd
 , testers
@@ -69,7 +72,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "webkitgtk";
-  version = "2.44.1";
+  version = "2.44.2";
   name = "${finalAttrs.pname}-${finalAttrs.version}+abi=${if lib.versionAtLeast gtk3.version "4.0" then "6.0" else "4.${if lib.versions.major libsoup.version == "2" then "0" else "1"}"}";
 
   outputs = [ "out" "dev" "devdoc" ];
@@ -80,7 +83,7 @@ stdenv.mkDerivation (finalAttrs: {
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/webkitgtk-${finalAttrs.version}.tar.xz";
-    hash = "sha256-QlsUWbDwTQYAx40au15+36PAYKQg+LIx6aai1dKcVWE=";
+    hash = "sha256-Uj9CyP8kgyrdF2Mfbqr+j5MDr+MW7xp+GES5Uqf3Uhs=";
   };
 
   patches = lib.optionals stdenv.isLinux [
@@ -165,6 +168,9 @@ stdenv.mkDerivation (finalAttrs: {
     systemd
   ] ++ lib.optionals enableGeoLocation [
     geoclue2
+  ] ++ lib.optionals enableExperimental [
+    flite
+    openssl
   ] ++ lib.optionals withLibsecret [
     libsecret
   ] ++ lib.optionals (lib.versionAtLeast gtk3.version "4.0") [
@@ -184,6 +190,7 @@ stdenv.mkDerivation (finalAttrs: {
     "-DUSE_LIBHYPHEN=OFF"
     "-DUSE_SOUP2=${cmakeBool (lib.versions.major libsoup.version == "2")}"
     "-DUSE_LIBSECRET=${cmakeBool withLibsecret}"
+    "-DENABLE_EXPERIMENTAL_FEATURES=${cmakeBool enableExperimental}"
   ] ++ lib.optionals stdenv.isLinux [
     # Have to be explicitly specified when cross.
     # https://github.com/WebKit/WebKit/commit/a84036c6d1d66d723f217a4c29eee76f2039a353
diff --git a/pkgs/development/libraries/webp-pixbuf-loader/default.nix b/pkgs/development/libraries/webp-pixbuf-loader/default.nix
index b3f4e4d483901..78496c0e919e3 100644
--- a/pkgs/development/libraries/webp-pixbuf-loader/default.nix
+++ b/pkgs/development/libraries/webp-pixbuf-loader/default.nix
@@ -52,6 +52,9 @@ stdenv.mkDerivation rec {
     GDK_PIXBUF_MODULEDIR="$out/${moduleDir}" \
     gdk-pixbuf-query-loaders --update-cache
 
+    # gdk-pixbuf disables the thumbnailer in cross-builds (https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/fc37708313a5fc52083cf10c9326f3509d67701f)
+    # and therefore makeWrapper will fail because 'gdk-pixbuf-thumbnailer' the executable does not exist.
+  '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     # It assumes gdk-pixbuf-thumbnailer can find the webp loader in the loaders.cache referenced by environment variable, breaking containment.
     # So we replace it with a wrapped executable.
     mkdir -p "$out/bin"
diff --git a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix b/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
index 30e2a343e2d07..3ac5e2bd4adc9 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/0.3.nix
@@ -24,9 +24,9 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
-    description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
+    description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
     license = licenses.bsd3;
-    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/v0.3.1/webrtc/rtc_base/system/arch.h
+    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/v0.3.1/webrtc/typedefs.h
     # + our patches
     platforms = intersectLists platforms.unix (platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.power ++ platforms.riscv ++ platforms.x86);
   };
diff --git a/pkgs/development/libraries/webrtc-audio-processing/default.nix b/pkgs/development/libraries/webrtc-audio-processing/default.nix
index 7e9fe3fa4a399..b25ea77b44b46 100644
--- a/pkgs/development/libraries/webrtc-audio-processing/default.nix
+++ b/pkgs/development/libraries/webrtc-audio-processing/default.nix
@@ -51,9 +51,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing";
-    description = "A more Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
+    description = "More Linux packaging friendly copy of the AudioProcessing module from the WebRTC project";
     license = licenses.bsd3;
-    platforms = platforms.unix;
+    # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/blob/master/webrtc/rtc_base/system/arch.h
+    platforms = intersectLists platforms.unix (platforms.arm ++ platforms.aarch64 ++ platforms.mips ++ platforms.power ++ platforms.riscv ++ platforms.x86);
     # BE platforms are unsupported
     # https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/issues/31
     badPlatforms = platforms.bigEndian;
diff --git a/pkgs/development/libraries/wildmidi/default.nix b/pkgs/development/libraries/wildmidi/default.nix
index c09ee248d2113..19a8ae3d3957e 100644
--- a/pkgs/development/libraries/wildmidi/default.nix
+++ b/pkgs/development/libraries/wildmidi/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, writeTextFile, cmake, alsa-lib, OpenAL, freepats }:
+{ lib, stdenv, fetchFromGitHub, writeTextFile, cmake, alsa-lib, OpenAL, CoreAudioKit, freepats }:
 
 let
   defaultCfgPath = "${placeholder "out"}/etc/wildmidi/wildmidi.cfg";
 in
 stdenv.mkDerivation rec {
   pname = "wildmidi";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "Mindwerks";
     repo = "wildmidi";
     rev = "${pname}-${version}";
-    sha256 = "sha256-5El8aDpAgjrW0/4lphZEF+Hfv9Xr7J4DMk1b/Tb+0TU=";
+    sha256 = "sha256-syjs8y75M2ul7whiZxnWMSskRJd0ixFqnep7qsTbiDE=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = lib.optionals stdenv.buildPlatform.isLinux [
     alsa-lib stdenv.cc.libc/*couldn't find libm*/
   ] ++ lib.optionals stdenv.buildPlatform.isDarwin [
-    OpenAL
+    OpenAL CoreAudioKit
   ];
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index f62a4661a9949..10fb01d86d415 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -97,7 +97,7 @@ let
       passthru.tests.tinywl = nixosTests.tinywl;
 
       meta = {
-        description = "A modular Wayland compositor library";
+        description = "Modular Wayland compositor library";
         longDescription = ''
           Pluggable, composable, unopinionated modules for building a Wayland
           compositor; or about 50,000 lines of code you were going to write anyway.
diff --git a/pkgs/development/libraries/wlroots/protocols.nix b/pkgs/development/libraries/wlroots/protocols.nix
index fa69879ae97e0..c928da147e126 100644
--- a/pkgs/development/libraries/wlroots/protocols.nix
+++ b/pkgs/development/libraries/wlroots/protocols.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitLab, wayland-scanner }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "wlr-protocols";
   version = "unstable-2022-09-05";
 
@@ -38,6 +38,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://gitlab.freedesktop.org/wlroots/wlr-protocols";
     license     = licenses.mit; # See file headers
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ Scrumplex ];
   };
 }
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 76a07212c7855..cfd6b99412a14 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -96,7 +96,7 @@ stdenv.mkDerivation (finalAttrs: {
   '';
 
   meta = with lib; {
-    description = "A small, fast, portable implementation of TLS/SSL for embedded devices";
+    description = "Small, fast, portable implementation of TLS/SSL for embedded devices";
     mainProgram = "wolfssl-config";
     homepage = "https://www.wolfssl.com/";
     changelog = "https://github.com/wolfSSL/wolfssl/releases/tag/v${finalAttrs.version}-stable";
diff --git a/pkgs/development/libraries/wxSVG/default.nix b/pkgs/development/libraries/wxSVG/default.nix
index 8519cbaacc246..d14a77a67004e 100644
--- a/pkgs/development/libraries/wxSVG/default.nix
+++ b/pkgs/development/libraries/wxSVG/default.nix
@@ -16,11 +16,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wxSVG";
-  version = "1.5.24";
+  version = "1.5.25";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/wxsvg-${version}.tar.bz2";
-    hash = "sha256-rkcykfjQpf6voGzScMgmxr6tS86yud1vzs8tt8JeJII=";
+    hash = "sha256-W/asaDG1S9Ga70jN6PoFctu2PzCu6dUyP2vms/MmU0s=";
   };
 
   postPatch = ''
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://wxsvg.sourceforge.net/";
-    description = "A SVG manipulation library built with wxWidgets";
+    description = "SVG manipulation library built with wxWidgets";
     mainProgram = "svgview";
     longDescription = ''
       wxSVG is C++ library to create, manipulate and render Scalable Vector
diff --git a/pkgs/development/libraries/wxsqlite3/default.nix b/pkgs/development/libraries/wxsqlite3/default.nix
index 447e2fa879bf1..b968af23c0dad 100644
--- a/pkgs/development/libraries/wxsqlite3/default.nix
+++ b/pkgs/development/libraries/wxsqlite3/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxsqlite3";
-  version = "4.9.10";
+  version = "4.9.11";
 
   src = fetchFromGitHub {
     owner = "utelle";
     repo = "wxsqlite3";
     rev = "v${version}";
-    hash = "sha256-L7GpDAqx7hF/PBLy6h10pAydpjaJU3JFgTZ2bJhZtG0=";
+    hash = "sha256-aX1YU35ATL+f18tGIba6cgNYZvYm3TshHsN7RFD+vI4=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://utelle.github.io/wxsqlite3/";
-    description = "A C++ wrapper around the public domain SQLite 3.x for wxWidgets";
+    description = "C++ wrapper around the public domain SQLite 3.x for wxWidgets";
     platforms = platforms.unix;
     maintainers = with maintainers; [ vrthra ];
     license = with licenses; [ lgpl3Plus gpl3Plus ];
diff --git a/pkgs/development/libraries/wxsqliteplus/default.nix b/pkgs/development/libraries/wxsqliteplus/default.nix
index 3bb7729f7db0e..aece1eb09cfff 100644
--- a/pkgs/development/libraries/wxsqliteplus/default.nix
+++ b/pkgs/development/libraries/wxsqliteplus/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A simple SQLite database browser built with wxWidgets";
+    description = "Simple SQLite database browser built with wxWidgets";
     mainProgram = "wxsqliteplus";
     homepage = "https://github.com/guanlisheng/wxsqliteplus";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK31.nix b/pkgs/development/libraries/wxwidgets/wxGTK31.nix
index 13052747eb5ea..be0c45c701dc8 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK31.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK31.nix
@@ -131,7 +131,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.wxwidgets.org/";
-    description = "A Cross-Platform C++ GUI Library";
+    description = "Cross-Platform C++ GUI Library";
     longDescription = ''
       wxWidgets gives you a single, easy-to-use API for writing GUI applications
       on multiple platforms that still utilize the native platform's controls
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK32.nix b/pkgs/development/libraries/wxwidgets/wxGTK32.nix
index 3094f253a01ab..1eb1ede66cb09 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK32.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK32.nix
@@ -51,23 +51,15 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wxwidgets";
-  version = "3.2.4";
+  version = "3.2.5";
 
   src = fetchFromGitHub {
     owner = "wxWidgets";
     repo = "wxWidgets";
     rev = "v${version}";
-    hash = "sha256-YkV150sDsfBEHvHne0GF6i8Y5881NrByPkLtPAmb24E=";
+    hash = "sha256-ibkXs693xO+z3JuMvlG4b/+A8f4Lf5TYqdDa67fb9ck=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "avoid_gtk3_crash.patch";
-      url = "https://github.com/wxWidgets/wxWidgets/commit/8ea22b5e92bf46add0b20059f6e39a938858ff97.patch";
-      hash = "sha256-zAyqVTdej4F3R7vVMLiKkXqJTAHDtGYJnyjaRyDmMOM=";
-    })
-  ];
-
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
@@ -149,7 +141,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.wxwidgets.org/";
-    description = "A Cross-Platform C++ GUI Library";
+    description = "Cross-Platform C++ GUI Library";
     longDescription = ''
       wxWidgets gives you a single, easy-to-use API for writing GUI applications
       on multiple platforms that still utilize the native platform's controls
diff --git a/pkgs/development/libraries/xalanc/default.nix b/pkgs/development/libraries/xalanc/default.nix
index 707f819f13290..ccf914b46ee1e 100644
--- a/pkgs/development/libraries/xalanc/default.nix
+++ b/pkgs/development/libraries/xalanc/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "https://xalan.apache.org/";
-    description = "A XSLT processor for transforming XML documents";
+    description = "XSLT processor for transforming XML documents";
     mainProgram = "Xalan";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
diff --git a/pkgs/development/libraries/xcb-imdkit/default.nix b/pkgs/development/libraries/xcb-imdkit/default.nix
index 1286b5e2157cc..41710d5ca3dcc 100644
--- a/pkgs/development/libraries/xcb-imdkit/default.nix
+++ b/pkgs/development/libraries/xcb-imdkit/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xcb-imdkit";
-  version = "1.0.8";
+  version = "1.0.9";
 
   src = fetchFromGitHub {
     owner = "fcitx";
     repo = "xcb-imdkit";
     rev = version;
-    hash = "sha256-ANU3suG62G0M5ZUWaNcwD4ot/EYSK7236zGVQZIjjuE=";
+    hash = "sha256-QfuetGPY6u4OhFiE5/CoVEpdODWnd1PHWBtM3ymsZ98=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
index 966109fa00864..00af282c5277b 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
@@ -19,13 +19,13 @@
 , webp-pixbuf-loader
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-desktop-portal-gnome";
-  version = "45.1";
+  version = "46.2";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "PpyoIQRABfs3vWjr5K0Zb8PQcoNVgUZ6IqSHnax7X90=";
+    url = "mirror://gnome/sources/xdg-desktop-portal-gnome/${lib.versions.major finalAttrs.version}/xdg-desktop-portal-gnome-${finalAttrs.version}.tar.xz";
+    hash = "sha256-tcZeol6Eg1AtAzphO+bca3GIOsB/Gj5HStGAScR9FtY=";
   };
 
   nativeBuildInputs = [
@@ -64,7 +64,7 @@ stdenv.mkDerivation rec {
 
   passthru = {
     updateScript = gnome.updateScript {
-      packageName = pname;
+      packageName = "xdg-desktop-portal-gnome";
     };
   };
 
@@ -75,4 +75,4 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.lgpl21Plus;
   };
-}
+})
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index e44ffe1ec1d29..e1a51284927a3 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -9,7 +9,7 @@
 , gnome
 , gnome-desktop
 , glib
-, wrapGAppsHook
+, wrapGAppsHook3
 , gsettings-desktop-schemas
 , buildPortalsInGnome ? true
 }:
@@ -29,7 +29,7 @@ stdenv.mkDerivation (finalAttrs: {
     meson
     ninja
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix b/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
index e2d12c250171d..6f5cac6983c34 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-xapp/default.nix
@@ -4,36 +4,38 @@
 , meson
 , ninja
 , pkg-config
-, wrapGAppsHook
+, wrapGAppsHook3
 , cinnamon
 , glib
 , gsettings-desktop-schemas
+, gtk3
 , mate
 , xdg-desktop-portal
 }:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-xapp";
-  version = "1.0.4";
+  version = "1.0.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "xdg-desktop-portal-xapp";
     rev = version;
-    hash = "sha256-Zz44PCociYhUuHTS3HJNxJPCkiIl01FFe4//7jtgDsk=";
+    hash = "sha256-ujfXZfBXr3T4e8+bIfkvdvBnEQfW7oPByaiXg/SBwJY=";
   };
 
   nativeBuildInputs = [
     meson
     ninja
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
   ];
 
   buildInputs = [
     cinnamon.cinnamon-desktop # org.cinnamon.desktop.background
     glib
     gsettings-desktop-schemas # org.gnome.system.location
+    gtk3
     mate.mate-desktop # org.mate.background
     xdg-desktop-portal
   ];
diff --git a/pkgs/development/libraries/xdg-desktop-portal/default.nix b/pkgs/development/libraries/xdg-desktop-portal/default.nix
index 626c40f3bb336..a8477e370da0e 100644
--- a/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal/default.nix
@@ -20,13 +20,15 @@
 , pipewire
 , gdk-pixbuf
 , librsvg
+, gobject-introspection
 , python3
 , pkg-config
 , stdenv
 , runCommand
-, wrapGAppsHook
+, wrapGAppsHook3
 , xmlto
 , enableGeoLocation ? true
+, enableSystemd ? true
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -69,7 +71,7 @@ stdenv.mkDerivation (finalAttrs: {
     meson
     ninja
     pkg-config
-    wrapGAppsHook
+    wrapGAppsHook3
     xmlto
   ];
 
@@ -77,7 +79,6 @@ stdenv.mkDerivation (finalAttrs: {
     flatpak
     fuse3
     bubblewrap
-    systemdMinimal # libsystemd
     glib
     gsettings-desktop-schemas
     json-glib
@@ -94,9 +95,12 @@ stdenv.mkDerivation (finalAttrs: {
     ]))
   ] ++ lib.optionals enableGeoLocation [
     geoclue2
+  ] ++ lib.optionals enableSystemd [
+    systemdMinimal # libsystemd
   ];
 
   nativeCheckInputs = [
+    gobject-introspection
     python3.pkgs.pytest
     python3.pkgs.python-dbusmock
     python3.pkgs.pygobject3
@@ -107,6 +111,7 @@ stdenv.mkDerivation (finalAttrs: {
     "--sysconfdir=/etc"
     "-Dinstalled-tests=true"
     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+    (lib.mesonEnable "systemd" enableSystemd)
   ] ++ lib.optionals (!enableGeoLocation) [
     "-Dgeoclue=disabled"
   ];
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
index 0018a73341e31..e5432430cac3e 100644
--- a/pkgs/development/libraries/xgboost/default.nix
+++ b/pkgs/development/libraries/xgboost/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , lib
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , gtest
 , doCheck ? true
@@ -27,11 +28,12 @@ let
   # This ensures xgboost gets the correct libstdc++ when
   # built with cuda support. This may be removed once
   # #226165 rewrites cudaStdenv
-  inherit (cudaPackages) backendStdenv;
-  stdenv = if cudaSupport then backendStdenv else inputs.stdenv;
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
+  # Ensures we don't use the stdenv value by accident.
+  stdenv = builtins.throw "Use effectiveStdenv instead of stdenv in xgboost derivation.";
 in
 
-stdenv.mkDerivation rec {
+effectiveStdenv.mkDerivation rec {
   pnameBase = "xgboost";
   # prefix with r when building the R library
   # The R package build results in a special xgboost.so file
@@ -56,8 +58,16 @@ stdenv.mkDerivation rec {
     hash = "sha256-LWco3A6zwdnAf8blU4qjW7PFEeZaTcJlVTwVrs7nwWM=";
   };
 
+  patches = lib.optionals (cudaSupport && cudaPackages.cudaMajorMinorVersion == "12.4") [
+    (fetchpatch { # https://github.com/dmlc/xgboost/pull/10123
+      name = "Fix compilation with the ctk 12.4.";
+      url = "https://github.com/dmlc/xgboost/commit/c760f85db0bc7bd6379901fbfb67ceccc2b37700.patch";
+      hash = "sha256-iP9mll9pg8T2ztCR7dBPnLP17/x3ImJFrr5G3e2dqHo=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake ]
-    ++ lib.optionals stdenv.isDarwin [ llvmPackages.openmp ]
+    ++ lib.optionals effectiveStdenv.isDarwin [ llvmPackages.openmp ]
     ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]
     ++ lib.optionals rLibrary [ R ];
 
@@ -75,13 +85,9 @@ stdenv.mkDerivation rec {
     "-DUSE_CUDA=ON"
     # Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
     # https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
-    "-DCMAKE_C_COMPILER=${cudaPackages.backendStdenv.cc}/bin/gcc"
-    "-DCMAKE_CXX_COMPILER=${cudaPackages.backendStdenv.cc}/bin/g++"
-  ] ++ lib.optionals
-    (cudaSupport
-      && lib.versionAtLeast cudaPackages.cudatoolkit.version "11.4.0")
-    [ "-DBUILD_WITH_CUDA_CUB=ON" ]
-    ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
+    "-DCMAKE_C_COMPILER=${effectiveStdenv.cc}/bin/gcc"
+    "-DCMAKE_CXX_COMPILER=${effectiveStdenv.cc}/bin/g++"
+  ] ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
     ++ lib.optionals rLibrary [ "-DR_LIB=ON" ];
 
   preConfigure = lib.optionals rLibrary ''
@@ -104,7 +110,7 @@ stdenv.mkDerivation rec {
   GTEST_FILTER =
     let
       # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456
-      filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [
+      filteredTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [
         "ThreadGroup.TimerThread"
         "ThreadGroup.TimerThreadSimple"
       ];
@@ -112,8 +118,7 @@ stdenv.mkDerivation rec {
     "-${builtins.concatStringsSep ":" filteredTests}";
 
   installPhase =
-    let libname = "libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
-    in ''
+    ''
       runHook preInstall
     ''
     # the R library option builds a completely different binary xgboost.so instead of
@@ -137,6 +142,7 @@ stdenv.mkDerivation rec {
     description =
       "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library";
     homepage = "https://github.com/dmlc/xgboost";
+    broken = cudaSupport && cudaPackages.cudaOlder "11.4";
     license = licenses.asl20;
     mainProgram = "xgboost";
     platforms = platforms.unix;
diff --git a/pkgs/development/libraries/xml-security-c/default.nix b/pkgs/development/libraries/xml-security-c/default.nix
index 6be958d7d24d2..c9e4c5874aefa 100644
--- a/pkgs/development/libraries/xml-security-c/default.nix
+++ b/pkgs/development/libraries/xml-security-c/default.nix
@@ -1,12 +1,24 @@
-{ lib, stdenv, fetchurl, xalanc, xercesc, openssl, pkg-config }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  pkg-config,
+  xalanc,
+  xercesc,
+  openssl,
+  darwin,
+}:
 
-stdenv.mkDerivation rec {
+let
+  inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices SystemConfiguration;
+in
+stdenv.mkDerivation (finalAttrs: {
   pname = "xml-security-c";
   version = "2.0.4";
 
   src = fetchurl {
-    url = "mirror://apache/santuario/c-library/${pname}-${version}.tar.gz";
-    sha256 = "sha256-p42mcg9sK6FBANJCYTHg0z6sWi26XMEb3QSXS364kAM=";
+    url = "mirror://apache/santuario/c-library/xml-security-c-${finalAttrs.version}.tar.gz";
+    hash = "sha256-p42mcg9sK6FBANJCYTHg0z6sWi26XMEb3QSXS364kAM=";
   };
 
   configureFlags = [
@@ -16,7 +28,18 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ xalanc xercesc openssl ];
+
+  buildInputs =
+    [
+      xalanc
+      xercesc
+      openssl
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreFoundation
+      CoreServices
+      SystemConfiguration
+    ];
 
   meta = {
     homepage = "https://santuario.apache.org/";
@@ -25,4 +48,4 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.jagajaga ];
   };
-}
+})
diff --git a/pkgs/development/libraries/xml-tooling-c/default.nix b/pkgs/development/libraries/xml-tooling-c/default.nix
deleted file mode 100644
index f58f50b4a72f4..0000000000000
--- a/pkgs/development/libraries/xml-tooling-c/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ lib, stdenv, fetchgit, autoreconfHook, pkg-config
-, boost, curl, openssl, log4shib, xercesc, xml-security-c
-}:
-
-stdenv.mkDerivation rec {
-  pname = "xml-tooling-c";
-  version = "3.2.4";
-
-  src = fetchgit {
-    url = "https://git.shibboleth.net/git/cpp-xmltooling.git";
-    rev = version;
-    sha256 = "sha256-FQ109ahOSWj3hvaxu1r/0FTpCuWaLgSEKM8NBio+wqU=";
-  };
-
-  buildInputs = [ boost curl openssl log4shib xercesc xml-security-c ];
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-
-  env.NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.isDarwin) "-std=c++14";
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    description = "A low-level library that provides a high level interface to XML processing for OpenSAML 2";
-    platforms   = platforms.unix;
-    license     = licenses.asl20;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/libraries/xmlrpc-c/default.nix b/pkgs/development/libraries/xmlrpc-c/default.nix
index 6e002a28543f3..af73a81fcb20d 100644
--- a/pkgs/development/libraries/xmlrpc-c/default.nix
+++ b/pkgs/development/libraries/xmlrpc-c/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with lib; {
-    description = "A lightweight RPC library based on XML and HTTP";
+    description = "Lightweight RPC library based on XML and HTTP";
     homepage = "https://xmlrpc-c.sourceforge.net/";
     # <xmlrpc-c>/doc/COPYING also lists "Expat license",
     # "ABYSS Web Server License" and "Python 1.5.2 License"
diff --git a/pkgs/development/libraries/xsd/default.nix b/pkgs/development/libraries/xsd/default.nix
index 8096b2edd295f..dd50c68574c4d 100644
--- a/pkgs/development/libraries/xsd/default.nix
+++ b/pkgs/development/libraries/xsd/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://www.codesynthesis.com/products/xsd";
-    description = "An open-source, cross-platform W3C XML Schema to C++ data binding compiler";
+    description = "Open-source, cross-platform W3C XML Schema to C++ data binding compiler";
     mainProgram = "xsd";
     license = lib.licenses.gpl2;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/libraries/xsimd/default.nix b/pkgs/development/libraries/xsimd/default.nix
index d775cef4d6734..019b3afbefc84 100644
--- a/pkgs/development/libraries/xsimd/default.nix
+++ b/pkgs/development/libraries/xsimd/default.nix
@@ -1,39 +1,31 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , doctest
 }:
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xsimd";
-  version = "12.1.1";
+  version = "13.0.0";
   src = fetchFromGitHub {
     owner = "xtensor-stack";
     repo = "xsimd";
     rev = finalAttrs.version;
-    hash = "sha256-ofUFieeRtpnzNv3Ad5oYwKWb2XcqQHoj601TIhydJyI=";
+    hash = "sha256-qElJYW5QDj3s59L3NgZj5zkhnUMzIP2mBa1sPks3/CE=";
   };
   patches = [
-    # Ideally, Accelerate/Accelerate.h should be used for this implementation,
-    # but it doesn't work... Needs a Darwin user to debug this. We apply this
-    # patch unconditionally, because the #if macros make sure it doesn't
-    # interfer with the Linux implementations.
-    ./fix-darwin-exp10-implementation.patch
+    # Fix of https://github.com/xtensor-stack/xsimd/pull/1024 for
+    # https://github.com/xtensor-stack/xsimd/issues/456 and
+    # https://github.com/xtensor-stack/xsimd/issues/807,
+    (fetchpatch {
+      url = "https://github.com/xtensor-stack/xsimd/commit/c8a87ed6e04b6782f48f94713adfb0cad6c11ddf.patch";
+      hash = "sha256-2/FvBGdqTPcayD7rdHPSzL+F8IYKAfMW0WBJ0cW9EZ0=";
+    })
   ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/xtensor-stack/xsimd/issues/807
-    ./disable-test_error_gamma-test.patch
-  ] ++ lib.optionals (stdenv.isDarwin || stdenv.hostPlatform.isMusl) [
-    # - Darwin report: https://github.com/xtensor-stack/xsimd/issues/917
-    # - Musl   report: https://github.com/xtensor-stack/xsimd/issues/798
-    ./disable-exp10-test.patch
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # https://github.com/xtensor-stack/xsimd/issues/798
-    ./disable-polar-test.patch
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [
-    # Fix suggested here: https://github.com/xtensor-stack/xsimd/issues/798#issuecomment-1356884601
-    # Upstream didn't merge that from some reason.
-    ./fix-atan-test.patch
+    # https://github.com/xtensor-stack/xsimd/issues/1030
+    ./disable-test_error_gamma.patch
   ];
 
   nativeBuildInputs = [
@@ -41,7 +33,9 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   cmakeFlags = [
-    "-DBUILD_TESTS=${if (finalAttrs.finalPackage.doCheck && stdenv.hostPlatform == stdenv.buildPlatform) then "ON" else "OFF"}"
+    # Always build the tests, even if not running them, because testing whether
+    # they can be built is a test in itself.
+    "-DBUILD_TESTS=ON"
   ];
 
   doCheck = true;
diff --git a/pkgs/development/libraries/xsimd/disable-exp10-test.patch b/pkgs/development/libraries/xsimd/disable-exp10-test.patch
deleted file mode 100644
index 8d2940c3b080b..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-exp10-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-commit 87433035c70578507e08565723c99158290f2488
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:26:04 2023 +0300
-
-    Darwin & Musl: Disable failing exp10 test
-
---- a/test/test_xsimd_api.cpp
-+++ b/test/test_xsimd_api.cpp
-@@ -515,15 +515,6 @@ struct xsimd_api_float_types_functions
-         value_type val(2);
-         CHECK_EQ(extract(xsimd::exp(T(val))), std::exp(val));
-     }
--    void test_exp10()
--    {
--        value_type val(2);
--#ifdef EMSCRIPTEN
--        CHECK_EQ(extract(xsimd::exp10(T(val))), doctest::Approx(std::pow(value_type(10), val)));
--#else
--        CHECK_EQ(extract(xsimd::exp10(T(val))), std::pow(value_type(10), val));
--#endif
--    }
-     void test_exp2()
-     {
-         value_type val(2);
-@@ -813,11 +804,6 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
-         Test.test_exp();
-     }
- 
--    SUBCASE("exp10")
--    {
--        Test.test_exp10();
--    }
--
-     SUBCASE("exp2")
-     {
-         Test.test_exp2();
diff --git a/pkgs/development/libraries/xsimd/disable-polar-test.patch b/pkgs/development/libraries/xsimd/disable-polar-test.patch
deleted file mode 100644
index 91128f43c2d5c..0000000000000
--- a/pkgs/development/libraries/xsimd/disable-polar-test.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-commit 9374b88b97911d9c6e19d5e764e25183cd45d534
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:29:16 2023 +0300
-
-    aarch64-Darwin: Disable failing polar test
-
---- a/test/test_xsimd_api.cpp
-+++ b/test/test_xsimd_api.cpp
-@@ -661,17 +661,6 @@ struct xsimd_api_float_types_functions
-         value_type val1(4);
-         CHECK_EQ(extract(xsimd::nextafter(T(val0), T(val1))), std::nextafter(val0, val1));
-     }
--    void test_polar()
--    {
--        value_type val0(3);
--        value_type val1(4);
--#ifndef EMSCRIPTEN
--        CHECK_EQ(extract(xsimd::polar(T(val0), T(val1))), std::polar(val0, val1));
--#else
--        CHECK_EQ(std::real(extract(xsimd::polar(T(val0), T(val1)))), doctest::Approx(std::real(std::polar(val0, val1))));
--        CHECK_EQ(std::imag(extract(xsimd::polar(T(val0), T(val1)))), doctest::Approx(std::imag(std::polar(val0, val1))));
--#endif
--    }
-     void test_pow()
-     {
-         value_type val0(2);
-@@ -931,11 +920,6 @@ TEST_CASE_TEMPLATE("[xsimd api | float types functions]", B, FLOAT_TYPES)
-         Test.test_nextafter();
-     }
- 
--    SUBCASE("polar")
--    {
--        Test.test_polar();
--    }
--
-     SUBCASE("pow")
-     {
-         Test.test_pow();
diff --git a/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch b/pkgs/development/libraries/xsimd/disable-test_error_gamma.patch
index a7344d231b8db..49957ea62ed74 100644
--- a/pkgs/development/libraries/xsimd/disable-test_error_gamma-test.patch
+++ b/pkgs/development/libraries/xsimd/disable-test_error_gamma.patch
@@ -1,13 +1,7 @@
-commit 3f751cef6b27ec13418a92c5b5f36b22bb5ffd55
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:24:34 2023 +0300
-
-    Darwin: Disable failing test from test_error_gamma.cpp
-
-diff --git a/test/test_error_gamma.cpp b/test/test_error_gamma.cpp
+diff --git i/test/test_error_gamma.cpp w/test/test_error_gamma.cpp
 index 214cbb5..299e5b8 100644
---- a/test/test_error_gamma.cpp
-+++ b/test/test_error_gamma.cpp
+--- i/test/test_error_gamma.cpp
++++ w/test/test_error_gamma.cpp
 @@ -131,25 +131,6 @@ struct error_gamma_test
              INFO("lgamma");
              CHECK_EQ(diff, 0);
diff --git a/pkgs/development/libraries/xsimd/fix-atan-test.patch b/pkgs/development/libraries/xsimd/fix-atan-test.patch
deleted file mode 100644
index 3d1517610aae5..0000000000000
--- a/pkgs/development/libraries/xsimd/fix-atan-test.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-commit f60dad2c1d8ad47fbff761ce1cb027fc7c3a40e8
-Author: Doron Behar <doron.behar@gmail.com>
-Date:   Tue Aug 1 13:47:37 2023 +0300
-
-    Musl: Fix atan test from test_complex_trigonometric.cpp
-
-diff --git a/test/test_complex_trigonometric.cpp b/test/test_complex_trigonometric.cpp
-index a486110..691db77 100644
---- a/test/test_complex_trigonometric.cpp
-+++ b/test/test_complex_trigonometric.cpp
-@@ -155,7 +155,7 @@ struct complex_trigonometric_test
-             out = atan(in);
-             detail::store_batch(out, res, i);
-         }
--        size_t diff = detail::get_nb_diff(res, expected);
-+        size_t diff = detail::get_nb_diff_near(res, expected, 1e-12);
-         CHECK_EQ(diff, 0);
-     }
- 
diff --git a/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch b/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch
deleted file mode 100644
index caa7db0bcc134..0000000000000
--- a/pkgs/development/libraries/xsimd/fix-darwin-exp10-implementation.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git i/include/xsimd/arch/xsimd_scalar.hpp w/include/xsimd/arch/xsimd_scalar.hpp
-index 9066da6..7aa3b6b 100644
---- i/include/xsimd/arch/xsimd_scalar.hpp
-+++ w/include/xsimd/arch/xsimd_scalar.hpp
-@@ -502,16 +502,7 @@ namespace xsimd
-         return !(x0 == x1);
-     }
- 
--#if defined(__APPLE__)
--    inline float exp10(const float& x) noexcept
--    {
--        return __exp10f(x);
--    }
--    inline double exp10(const double& x) noexcept
--    {
--        return __exp10(x);
--    }
--#elif defined(__GLIBC__)
-+#if defined(__GLIBC__)
-     inline float exp10(const float& x) noexcept
-     {
-         return ::exp10f(x);
diff --git a/pkgs/development/libraries/xtensor/default.nix b/pkgs/development/libraries/xtensor/default.nix
index 678f87af74cfa..da85a37ab5bc0 100644
--- a/pkgs/development/libraries/xtensor/default.nix
+++ b/pkgs/development/libraries/xtensor/default.nix
@@ -13,24 +13,14 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "xtensor";
-  version = "0.24.7";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "xtensor-stack";
     repo = "xtensor";
     rev = finalAttrs.version;
-    hash = "sha256-dVbpcBW+jK9nIl5efk5LdKdBm8CkaJWEZ0ZY7ZuApwk=";
+    hash = "sha256-hVfdtYcJ6mzqj0AUu6QF9aVKQGYKd45RngY6UN3yOH4=";
   };
-  patches = [
-    # Support for xsimd 11
-    (fetchpatch {
-      url = "https://github.com/xtensor-stack/xtensor/commit/77a650a8018e0be6fcc76bf66685ff352ae23ef1.patch";
-      hash = "sha256-vOdUzzsSK+lYcA7fZXWOTVV202GZC0DhkMMjzggnmWE=";
-    })
-    # A single test fails on Darwin, see:
-    # https://github.com/xtensor-stack/xtensor/issues/2718
-    ./remove-failing-test_xinfo.patch
-  ];
 
   nativeBuildInputs = [
     cmake
@@ -38,18 +28,15 @@ stdenv.mkDerivation (finalAttrs: {
   propagatedBuildInputs = [
     nlohmann_json
     xtl
-  ] ++ lib.optionals (!(stdenv.isAarch64 && stdenv.isLinux)) [
-    # xsimd support is broken on aarch64-linux, see:
-    # https://github.com/xtensor-stack/xsimd/issues/945
     xsimd
   ];
 
-  cmakeFlags = let
-    cmakeBool = x: if x then "ON" else "OFF";
-  in [
-    "-DBUILD_TESTS=${cmakeBool finalAttrs.finalPackage.doCheck}"
-    "-DXTENSOR_ENABLE_ASSERT=${cmakeBool enableAssertions}"
-    "-DXTENSOR_CHECK_DIMENSION=${cmakeBool enableBoundChecks}"
+  cmakeFlags = [
+    # Always build the tests, even if not running them, because testing whether
+    # they can be built is a test in itself.
+    (lib.cmakeBool "BUILD_TESTS" true)
+    (lib.cmakeBool "XTENSOR_ENABLE_ASSERT" enableAssertions)
+    (lib.cmakeBool "XTENSOR_CHECK_DIMENSION" enableBoundChecks)
   ];
 
   doCheck = true;
@@ -59,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: {
   checkTarget = "xtest";
 
   meta = with lib; {
-    description = "Multi-dimensional arrays with broadcasting and lazy computing.";
+    description = "Multi-dimensional arrays with broadcasting and lazy computing";
     homepage = "https://github.com/xtensor-stack/xtensor";
     license = licenses.bsd3;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch b/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch
deleted file mode 100644
index c3352c453c598..0000000000000
--- a/pkgs/development/libraries/xtensor/remove-failing-test_xinfo.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git i/test/CMakeLists.txt w/test/CMakeLists.txt
-index 46127597..727b66bd 100644
---- i/test/CMakeLists.txt
-+++ w/test/CMakeLists.txt
-@@ -189,7 +189,6 @@ set(XTENSOR_TESTS
-     test_xhistogram.cpp
-     test_xpad.cpp
-     test_xindex_view.cpp
--    test_xinfo.cpp
-     test_xio.cpp
-     test_xlayout.cpp
-     test_xmanipulation.cpp
diff --git a/pkgs/development/libraries/yaml-cpp/0.3.0.nix b/pkgs/development/libraries/yaml-cpp/0.3.0.nix
index fad3397b74b6f..7e244261005e3 100644
--- a/pkgs/development/libraries/yaml-cpp/0.3.0.nix
+++ b/pkgs/development/libraries/yaml-cpp/0.3.0.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
 
   meta = with lib; {
-    description = "A YAML parser and emitter for C++";
+    description = "YAML parser and emitter for C++";
     homepage = "https://github.com/jbeder/yaml-cpp";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/yaml-cpp/default.nix b/pkgs/development/libraries/yaml-cpp/default.nix
index 20d546e346b8f..3ee2dcf770411 100644
--- a/pkgs/development/libraries/yaml-cpp/default.nix
+++ b/pkgs/development/libraries/yaml-cpp/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
   passthru.updateScript = gitUpdater { };
 
   meta = with lib; {
-    description = "A YAML parser and emitter for C++";
+    description = "YAML parser and emitter for C++";
     homepage = "https://github.com/jbeder/yaml-cpp";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/libraries/yojimbo/default.nix b/pkgs/development/libraries/yojimbo/default.nix
index d8c29e56aaab0..6d9856fd61a91 100644
--- a/pkgs/development/libraries/yojimbo/default.nix
+++ b/pkgs/development/libraries/yojimbo/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
   doCheck = true;
 
   meta = with lib; {
-    description = "A network library for client/server games with dedicated servers";
+    description = "Network library for client/server games with dedicated servers";
     longDescription = ''
       yojimbo is a network library for client/server games with dedicated servers.
       It's designed around the networking requirements of competitive multiplayer games like first person shooters.
diff --git a/pkgs/development/libraries/yyjson/default.nix b/pkgs/development/libraries/yyjson/default.nix
index 82d4e1322f201..96e075c02f4b9 100644
--- a/pkgs/development/libraries/yyjson/default.nix
+++ b/pkgs/development/libraries/yyjson/default.nix
@@ -20,11 +20,11 @@ stdenv.mkDerivation (finalAttrs: {
   ];
 
   meta = {
-    description = "The fastest JSON library in C";
+    description = "Fastest JSON library in C";
     homepage = "https://github.com/ibireme/yyjson";
     changelog = "https://github.com/ibireme/yyjson/blob/${finalAttrs.src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
     platforms = lib.platforms.all;
   };
 })
diff --git a/pkgs/development/libraries/zeitgeist/default.nix b/pkgs/development/libraries/zeitgeist/default.nix
index d5e058ef726e3..a198b1b6046ec 100644
--- a/pkgs/development/libraries/zeitgeist/default.nix
+++ b/pkgs/development/libraries/zeitgeist/default.nix
@@ -72,7 +72,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    description = "A service which logs the users’s activities and events";
+    description = "Service which logs the users’s activities and events";
     homepage = "https://zeitgeist.freedesktop.org/";
     maintainers = teams.freedesktop.members ++ (with maintainers; [ ]);
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/libraries/zeroc-ice/default.nix b/pkgs/development/libraries/zeroc-ice/default.nix
index 3ccb7c17f9c99..b41ec7f511745 100644
--- a/pkgs/development/libraries/zeroc-ice/default.nix
+++ b/pkgs/development/libraries/zeroc-ice/default.nix
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.zeroc.com/ice.html";
-    description = "The internet communications engine";
+    description = "Internet communications engine";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/libraries/zeromq/4.x.nix b/pkgs/development/libraries/zeromq/4.x.nix
index 2a4119e0fe225..d8509c8fc3f4b 100644
--- a/pkgs/development/libraries/zeromq/4.x.nix
+++ b/pkgs/development/libraries/zeromq/4.x.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     branch = "4";
     homepage = "http://www.zeromq.org";
-    description = "The Intelligent Transport Layer";
+    description = "Intelligent Transport Layer";
     license = licenses.mpl20;
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
diff --git a/pkgs/development/libraries/zint/default.nix b/pkgs/development/libraries/zint/default.nix
index 8ba4a68e4b82d..e6f40879a9cee 100644
--- a/pkgs/development/libraries/zint/default.nix
+++ b/pkgs/development/libraries/zint/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
   };
 
   meta = with lib; {
-    description = "A barcode generating tool and library";
+    description = "Barcode generating tool and library";
     longDescription = ''
       The Zint project aims to provide a complete cross-platform open source
       barcode generating solution. The package currently consists of a Qt based
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 687fb3598444e..23795b6aab40d 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -101,9 +101,16 @@ stdenv.mkDerivation (finalAttrs: {
     ln -s zlib1.dll $out/bin/libz.dll
   '';
 
-  # As zlib takes part in the stdenv building, we don't want references
-  # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
-  env.NIX_CFLAGS_COMPILE = lib.optionalString (!stdenv.hostPlatform.isDarwin) "-static-libgcc";
+  env = lib.optionalAttrs (!stdenv.hostPlatform.isDarwin) {
+    # As zlib takes part in the stdenv building, we don't want references
+    # to the bootstrap-tools libgcc (as uses to happen on arm/mips)
+    NIX_CFLAGS_COMPILE = "-static-libgcc";
+  } // lib.optionalAttrs (stdenv.hostPlatform.linker == "lld") {
+    # lld 16 enables --no-undefined-version by defualt
+    # This makes configure think it can't build dynamic libraries
+    # this may be removed when a version is packaged with https://github.com/madler/zlib/issues/960 fixed
+    NIX_LDFLAGS = "--undefined-version";
+  };
 
   # We don't strip on static cross-compilation because of reports that native
   # stripping corrupted the target library; see commit 12e960f5 for the report.
diff --git a/pkgs/development/libraries/zxcvbn-c/default.nix b/pkgs/development/libraries/zxcvbn-c/default.nix
index 528d545c37c66..edd62ed3340bd 100644
--- a/pkgs/development/libraries/zxcvbn-c/default.nix
+++ b/pkgs/development/libraries/zxcvbn-c/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://github.com/tsyrogit/zxcvbn-c";
-    description = "A C/C++ implementation of the zxcvbn password strength estimation";
+    description = "C/C++ implementation of the zxcvbn password strength estimation";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ xurei ];
diff --git a/pkgs/development/libraries/zziplib/default.nix b/pkgs/development/libraries/zziplib/default.nix
index c40cf9594cfa9..cae01170f290b 100644
--- a/pkgs/development/libraries/zziplib/default.nix
+++ b/pkgs/development/libraries/zziplib/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , cmake
 , perl
 , pkg-config