about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>2023-12-04 00:13:14 +0000
committerGitHub <noreply@github.com>2023-12-04 00:13:14 +0000
commit7d0125bd81dd1f55d1ee6ae7ad34851537b9b9f0 (patch)
tree5589c8870433c67a7d71faf71b5819f620a277cc /pkgs
parent5f1da6e04566d45c8f8d05d938e619c93e53a4c3 (diff)
parentf4001d4551edb8996289778acf7fd0841871f2e5 (diff)
Merge master into haskell-updates
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/CHOWTapeModel/default.nix82
-rw-r--r--pkgs/applications/audio/alsa-scarlett-gui/default.nix4
-rw-r--r--pkgs/applications/audio/eartag/default.nix6
-rw-r--r--pkgs/applications/audio/gnome-podcasts/Cargo.lock1051
-rw-r--r--pkgs/applications/audio/gnome-podcasts/default.nix7
-rw-r--r--pkgs/applications/audio/kid3/default.nix2
-rw-r--r--pkgs/applications/audio/spotify/linux.nix6
-rw-r--r--pkgs/applications/backup/deja-dup/default.nix4
-rw-r--r--pkgs/applications/display-managers/lightdm-slick-greeter/default.nix4
-rw-r--r--pkgs/applications/editors/emacs/make-emacs.nix19
-rw-r--r--pkgs/applications/editors/greenfoot/default.nix4
-rw-r--r--pkgs/applications/editors/netbeans/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix12
-rw-r--r--pkgs/applications/emulators/dosbox-x/default.nix19
-rw-r--r--pkgs/applications/emulators/dosbox/default.nix3
-rw-r--r--pkgs/applications/emulators/yuzu/sources.nix14
-rw-r--r--pkgs/applications/graphics/krita/default.nix6
-rw-r--r--pkgs/applications/graphics/krita/generic.nix3
-rw-r--r--pkgs/applications/misc/binocle/default.nix6
-rw-r--r--pkgs/applications/misc/clipcat/default.nix6
-rw-r--r--pkgs/applications/misc/gnome-firmware/default.nix4
-rw-r--r--pkgs/applications/misc/khard/default.nix4
-rw-r--r--pkgs/applications/misc/rsibreak/default.nix9
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nerdctl/default.nix6
-rw-r--r--pkgs/applications/networking/mailreaders/evolution/evolution/default.nix4
-rw-r--r--pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch25
-rw-r--r--pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch34
-rw-r--r--pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch25
-rw-r--r--pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch26
-rw-r--r--pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch27
-rw-r--r--pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch27
-rw-r--r--pkgs/applications/networking/powerdns-admin/default.nix24
-rw-r--r--pkgs/applications/office/skrooge/default.nix2
-rw-r--r--pkgs/applications/radio/gridtracker/default.nix4
-rw-r--r--pkgs/applications/radio/inspectrum/default.nix4
-rw-r--r--pkgs/applications/radio/sdrangel/default.nix4
-rw-r--r--pkgs/applications/science/math/labplot/default.nix2
-rw-r--r--pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff20
-rw-r--r--pkgs/applications/terminal-emulators/contour/default.nix84
-rw-r--r--pkgs/applications/terminal-emulators/contour/macos-codesign.diff21
-rw-r--r--pkgs/applications/video/animdl/default.nix63
-rw-r--r--pkgs/applications/video/mpv/scripts/default.nix2
-rw-r--r--pkgs/applications/video/mpv/scripts/mpv-webm.nix24
-rw-r--r--pkgs/applications/window-managers/sway/lock-effects.nix4
-rw-r--r--pkgs/build-support/add-driver-runpath/default.nix14
-rw-r--r--pkgs/build-support/add-driver-runpath/setup-hook.sh29
-rw-r--r--pkgs/build-support/bintools-wrapper/default.nix6
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix6
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/Cargo.lock120
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/Cargo.toml11
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/default.nix12
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/src/cacache.rs9
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs22
-rw-r--r--pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs5
-rw-r--r--pkgs/build-support/trivial-builders/default.nix13
-rw-r--r--pkgs/by-name/ab/aba/package.nix14
-rw-r--r--pkgs/by-name/bn/bngblaster/package.nix53
-rw-r--r--pkgs/by-name/fl/flarectl/package.nix6
-rw-r--r--pkgs/by-name/fr/framework-system-tools/Cargo.lock1312
-rw-r--r--pkgs/by-name/fr/framework-system-tools/package.nix45
-rw-r--r--pkgs/by-name/ge/get-google-fonts/package.nix37
-rw-r--r--pkgs/by-name/go/goredo/fix-tests.diff4
-rw-r--r--pkgs/by-name/go/goredo/package.nix9
-rw-r--r--pkgs/by-name/gu/guix/package.nix11
-rw-r--r--pkgs/by-name/ha/hayabusa/package.nix50
-rw-r--r--pkgs/by-name/ia/ia-writer-quattro/package.nix31
-rw-r--r--pkgs/by-name/ja/jazz2/package.nix4
-rw-r--r--pkgs/by-name/li/libdict/package.nix40
-rw-r--r--pkgs/by-name/li/librda/package.nix61
-rw-r--r--pkgs/by-name/lo/loupe/package.nix4
-rw-r--r--pkgs/by-name/ma/majima/package.nix22
-rw-r--r--pkgs/by-name/ni/nimmm/lock.json14
-rw-r--r--pkgs/by-name/ni/nimmm/package.nix6
-rw-r--r--pkgs/by-name/op/opentype-sanitizer/package.nix44
-rw-r--r--pkgs/by-name/py/pywalfox-native/package.nix32
-rw-r--r--pkgs/by-name/re/revup/package.nix66
-rw-r--r--pkgs/by-name/th/themix-gui/package.nix78
-rw-r--r--pkgs/by-name/ui/uiua/package.nix6
-rw-r--r--pkgs/by-name/ve/vesktop/package.nix6
-rw-r--r--pkgs/by-name/vi/vieb/package.nix (renamed from pkgs/applications/networking/browsers/vieb/default.nix)8
-rw-r--r--pkgs/by-name/wa/wash-cli/package.nix47
-rw-r--r--pkgs/data/misc/dbip-country-lite/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/bulky/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-common/default.nix21
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-control-center/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-desktop/default.nix6
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-menus/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix6
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-session/default.nix21
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cinnamon-translations/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/cjs/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/muffin/default.nix21
-rw-r--r--pkgs/desktops/cinnamon/nemo-extensions/srcs.nix4
-rw-r--r--pkgs/desktops/cinnamon/nemo/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/pix/default.nix14
-rw-r--r--pkgs/desktops/cinnamon/xapp/default.nix4
-rw-r--r--pkgs/desktops/cinnamon/xviewer/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch6
-rw-r--r--pkgs/desktops/gnome/core/gnome-disk-utility/default.nix4
-rw-r--r--pkgs/desktops/gnome/core/gnome-software/default.nix4
-rw-r--r--pkgs/desktops/gnome/games/gnome-sudoku/default.nix4
-rw-r--r--pkgs/desktops/lomiri/default.nix1
-rw-r--r--pkgs/desktops/lomiri/services/hfd-service/default.nix75
-rw-r--r--pkgs/development/compilers/gcc/default.nix10
-rw-r--r--pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch20
-rw-r--r--pkgs/development/compilers/gcc/patches/default.nix3
-rw-r--r--pkgs/development/compilers/intel-graphics-compiler/default.nix6
-rw-r--r--pkgs/development/compilers/llvm/6/lldb/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/7/llvm/default.nix12
-rw-r--r--pkgs/development/compilers/llvm/8/llvm/default.nix12
-rw-r--r--pkgs/development/compilers/llvm/9/llvm/default.nix12
-rw-r--r--pkgs/development/compilers/yosys/default.nix12
-rw-r--r--pkgs/development/embedded/elf2uf2-rs/default.nix6
-rw-r--r--pkgs/development/hare-packages/hare-json/default.nix39
-rw-r--r--pkgs/development/interpreters/gauche/boot.nix6
-rw-r--r--pkgs/development/interpreters/gauche/default.nix8
-rw-r--r--pkgs/development/libraries/accounts-qml-module/default.nix88
-rw-r--r--pkgs/development/libraries/futuresql/default.nix2
-rw-r--r--pkgs/development/libraries/gr-framework/default.nix17
-rw-r--r--pkgs/development/libraries/kpeoplevcard/default.nix2
-rw-r--r--pkgs/development/libraries/libadwaita/default.nix4
-rw-r--r--pkgs/development/libraries/libaec/default.nix4
-rw-r--r--pkgs/development/libraries/libcue/default.nix16
-rw-r--r--pkgs/development/libraries/libmpc/default.nix2
-rw-r--r--pkgs/development/libraries/libnbd/default.nix13
-rw-r--r--pkgs/development/libraries/libpqxx/default.nix5
-rw-r--r--pkgs/development/libraries/libunicode/default.nix33
-rw-r--r--pkgs/development/libraries/nng/default.nix6
-rw-r--r--pkgs/development/libraries/openimageio/default.nix4
-rw-r--r--pkgs/development/libraries/pango/default.nix1
-rw-r--r--pkgs/development/libraries/pipewire/wireplumber.nix4
-rw-r--r--pkgs/development/libraries/termbench-pro/default.nix34
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK32.nix9
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix4
-rw-r--r--pkgs/development/misc/avr/libc/default.nix3
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix4
-rw-r--r--pkgs/development/python-modules/anchor-kr/default.nix26
-rw-r--r--pkgs/development/python-modules/anitopy/default.nix26
-rw-r--r--pkgs/development/python-modules/approval-utilities/default.nix13
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix18
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix4
-rw-r--r--pkgs/development/python-modules/av/default.nix125
-rw-r--r--pkgs/development/python-modules/axisregistry/default.nix46
-rw-r--r--pkgs/development/python-modules/babelfont/default.nix55
-rw-r--r--pkgs/development/python-modules/betterproto/default.nix9
-rw-r--r--pkgs/development/python-modules/beziers/default.nix40
-rw-r--r--pkgs/development/python-modules/collidoscope/default.nix43
-rw-r--r--pkgs/development/python-modules/commandlines/default.nix31
-rw-r--r--pkgs/development/python-modules/configupdater/default.nix4
-rw-r--r--pkgs/development/python-modules/cx-freeze/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-glm/default.nix4
-rw-r--r--pkgs/development/python-modules/dehinter/default.nix36
-rw-r--r--pkgs/development/python-modules/downloader-cli/default.nix9
-rw-r--r--pkgs/development/python-modules/duecredit/default.nix9
-rw-r--r--pkgs/development/python-modules/dvc-objects/default.nix4
-rw-r--r--pkgs/development/python-modules/empy/default.nix4
-rw-r--r--pkgs/development/python-modules/es-client/default.nix4
-rw-r--r--pkgs/development/python-modules/fake-useragent/default.nix10
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch257
-rw-r--r--pkgs/development/python-modules/flask-seasurf/default.nix16
-rw-r--r--pkgs/development/python-modules/font-v/default.nix53
-rw-r--r--pkgs/development/python-modules/fontbakery/default.nix146
-rw-r--r--pkgs/development/python-modules/fontbakery/tests.nix22
-rw-r--r--pkgs/development/python-modules/fontfeatures/default.nix50
-rw-r--r--pkgs/development/python-modules/frozendict/default.nix4
-rw-r--r--pkgs/development/python-modules/garminconnect/default.nix6
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix4
-rw-r--r--pkgs/development/python-modules/geopy/default.nix4
-rw-r--r--pkgs/development/python-modules/gflanguages/default.nix48
-rw-r--r--pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch22
-rw-r--r--pkgs/development/python-modules/glyphsets/default.nix55
-rw-r--r--pkgs/development/python-modules/glyphslib/default.nix4
-rw-r--r--pkgs/development/python-modules/glyphtools/default.nix39
-rw-r--r--pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix4
-rw-r--r--pkgs/development/python-modules/gptcache/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-channelz/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-health-checking/default.nix4
-rw-r--r--pkgs/development/python-modules/grpcio-reflection/default.nix4
-rw-r--r--pkgs/development/python-modules/gspread/default.nix4
-rw-r--r--pkgs/development/python-modules/icontract/default.nix4
-rw-r--r--pkgs/development/python-modules/imapclient/default.nix4
-rw-r--r--pkgs/development/python-modules/kurbopy/default.nix53
-rw-r--r--pkgs/development/python-modules/license-expression/default.nix8
-rw-r--r--pkgs/development/python-modules/luddite/default.nix14
-rw-r--r--pkgs/development/python-modules/mailchecker/default.nix11
-rw-r--r--pkgs/development/python-modules/maison/default.nix4
-rw-r--r--pkgs/development/python-modules/opentsne/default.nix32
-rw-r--r--pkgs/development/python-modules/opentypespec/default.nix29
-rw-r--r--pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch34
-rw-r--r--pkgs/development/python-modules/ots-python/default.nix48
-rw-r--r--pkgs/development/python-modules/playwright/default.nix6
-rw-r--r--pkgs/development/python-modules/pulumi/default.nix2
-rw-r--r--pkgs/development/python-modules/pygls/default.nix4
-rw-r--r--pkgs/development/python-modules/pytikz-allefeld/default.nix54
-rw-r--r--pkgs/development/python-modules/pyunpack/default.nix13
-rw-r--r--pkgs/development/python-modules/rstr/default.nix37
-rw-r--r--pkgs/development/python-modules/scancode-toolkit/default.nix43
-rw-r--r--pkgs/development/python-modules/shaperglot/default.nix55
-rw-r--r--pkgs/development/python-modules/sre-yield/default.nix34
-rw-r--r--pkgs/development/python-modules/streamlit/default.nix4
-rw-r--r--pkgs/development/python-modules/stringbrewer/default.nix37
-rw-r--r--pkgs/development/python-modules/txtorcon/default.nix4
-rw-r--r--pkgs/development/python-modules/types-s3transfer/default.nix4
-rw-r--r--pkgs/development/python-modules/ufolint/default.nix40
-rw-r--r--pkgs/development/python-modules/vharfbuzz/default.nix37
-rw-r--r--pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch25
-rw-r--r--pkgs/development/python-modules/youseedee/default.nix45
-rw-r--r--pkgs/development/skaware-packages/s6-man-pages/default.nix4
-rw-r--r--pkgs/development/tools/bloaty/default.nix46
-rw-r--r--pkgs/development/tools/cucumber/Gemfile.lock24
-rw-r--r--pkgs/development/tools/cucumber/gemset.nix20
-rw-r--r--pkgs/development/tools/fastgron/default.nix4
-rw-r--r--pkgs/development/tools/go-task/default.nix6
-rw-r--r--pkgs/development/tools/goperf/default.nix38
-rw-r--r--pkgs/development/tools/konstraint/default.nix6
-rw-r--r--pkgs/development/tools/misc/segger-ozone/default.nix48
-rw-r--r--pkgs/development/tools/rust/cargo-deb/default.nix7
-rw-r--r--pkgs/development/tools/rust/cargo-update/default.nix6
-rw-r--r--pkgs/development/tools/vsce/default.nix4
-rw-r--r--pkgs/development/tools/yq-go/default.nix8
-rw-r--r--pkgs/games/doom-ports/zandronum/add_gitinfo.patch20
-rw-r--r--pkgs/games/doom-ports/zandronum/default.nix49
-rw-r--r--pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch14
-rw-r--r--pkgs/games/doom-ports/zandronum/sqlite.nix4
-rw-r--r--pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch70
-rw-r--r--pkgs/games/gcompris/default.nix2
-rw-r--r--pkgs/games/runelite/default.nix3
-rw-r--r--pkgs/misc/scrcpy/default.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json16
-rw-r--r--pkgs/os-specific/linux/kernel/linux-rt-6.1.nix6
-rw-r--r--pkgs/os-specific/linux/light/default.nix1
-rw-r--r--pkgs/servers/komga/default.nix12
-rw-r--r--pkgs/servers/misc/virtiofsd/default.nix1
-rw-r--r--pkgs/servers/monitoring/grafana-agent/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix19
-rw-r--r--pkgs/servers/prowlarr/default.nix10
-rw-r--r--pkgs/servers/rmfakecloud/webui.nix6
-rw-r--r--pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix33
-rw-r--r--pkgs/servers/sunshine/default.nix2
-rw-r--r--pkgs/servers/web-apps/netbox/default.nix4
-rw-r--r--pkgs/shells/zsh/agdsn-zsh-config/default.nix4
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix2
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix2
-rw-r--r--pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix2
-rw-r--r--pkgs/tools/admin/pulumi/default.nix6
-rw-r--r--pkgs/tools/compression/ouch/default.nix6
-rw-r--r--pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch17
-rw-r--r--pkgs/tools/games/pocket-updater-utility/default.nix9
-rw-r--r--pkgs/tools/games/pocket-updater-utility/deps.nix1
-rw-r--r--pkgs/tools/graphics/qrcode/default.nix8
-rw-r--r--pkgs/tools/graphics/vulkan-tools/default.nix5
-rw-r--r--pkgs/tools/misc/moar/default.nix4
-rw-r--r--pkgs/tools/misc/panoply/default.nix4
-rw-r--r--pkgs/tools/misc/rkvm/default.nix6
-rw-r--r--pkgs/tools/misc/snapper/default.nix4
-rw-r--r--pkgs/tools/networking/mockoon/default.nix4
-rw-r--r--pkgs/tools/networking/sing-box/default.nix6
-rw-r--r--pkgs/tools/networking/whois/default.nix10
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/oauth2c/default.nix6
-rw-r--r--pkgs/tools/security/pinentry-bemenu/default.nix4
-rw-r--r--pkgs/tools/security/srm/default.nix17
-rw-r--r--pkgs/tools/security/srm/fix-output-in-verbose-mode.patch57
-rw-r--r--pkgs/tools/system/openseachest/default.nix4
-rw-r--r--pkgs/tools/text/kdiff3/default.nix2
-rw-r--r--pkgs/tools/text/languagetool/default.nix4
-rw-r--r--pkgs/tools/text/tuc/default.nix6
-rw-r--r--pkgs/top-level/all-packages.nix39
-rw-r--r--pkgs/top-level/hare-third-party.nix4
-rw-r--r--pkgs/top-level/python-packages.nix54
-rw-r--r--pkgs/top-level/qt5-packages.nix2
276 files changed, 5824 insertions, 1563 deletions
diff --git a/pkgs/applications/audio/CHOWTapeModel/default.nix b/pkgs/applications/audio/CHOWTapeModel/default.nix
index c36de2cb878d4..dd7604939f0f5 100644
--- a/pkgs/applications/audio/CHOWTapeModel/default.nix
+++ b/pkgs/applications/audio/CHOWTapeModel/default.nix
@@ -1,18 +1,53 @@
-{ alsa-lib, at-spi2-core, cmake, curl, dbus, libepoxy, fetchFromGitHub, freeglut
-, freetype, gcc-unwrapped, gtk3, lib, libGL, libXcursor, libXdmcp, libXext
-, libXinerama, libXrandr, libXtst, libdatrie, libjack2, libpsl, libselinux
-, libsepol, libsysprof-capture, libthai, libxkbcommon, lv2, pcre, pkg-config
-, python3, sqlite, stdenv }:
-
+{ alsa-lib
+, at-spi2-core
+, cmake
+, curl
+, dbus
+, libepoxy
+, fetchFromGitHub
+, freeglut
+, freetype
+, gtk3
+, lib
+, libGL
+, libXcursor
+, libXdmcp
+, libXext
+, libXinerama
+, libXrandr
+, libXtst
+, libdatrie
+, libjack2
+, libpsl
+, libselinux
+, libsepol
+, libsysprof-capture
+, libthai
+, libuuid
+, libxkbcommon
+, lv2
+, pcre
+, pcre2
+, pkg-config
+, python3
+, sqlite
+, gcc11Stdenv
+, webkitgtk
+}:
+let
+  # JUCE version in submodules is incompatible with GCC12
+  # See here: https://forum.juce.com/t/build-fails-on-fedora-wrong-c-version/50902/2
+  stdenv = gcc11Stdenv;
+in
 stdenv.mkDerivation rec {
   pname = "CHOWTapeModel";
-  version = "2.10.0";
+  version = "2.11.4";
 
   src = fetchFromGitHub {
     owner = "jatinchowdhury18";
     repo = "AnalogTapeModel";
     rev = "v${version}";
-    sha256 = "sha256-iuT7OBRBtMkjcTHayCcne1mNqkcxzKnEYl62n65V7Z4=";
+    sha256 = "sha256-WriHi68Y6hAsrwE+74JtVlAKUR9lfTczj6UK9h2FOGM=";
     fetchSubmodules = true;
   };
 
@@ -41,36 +76,51 @@ stdenv.mkDerivation rec {
     libsepol
     libsysprof-capture
     libthai
+    libuuid
     libxkbcommon
     lv2
     pcre
+    pcre2
     python3
     sqlite
-    gcc-unwrapped
+    webkitgtk
   ];
 
+  # Link-time-optimization fails without these
   cmakeFlags = [
-    "-DCMAKE_AR=${gcc-unwrapped}/bin/gcc-ar"
-    "-DCMAKE_RANLIB=${gcc-unwrapped}/bin/gcc-ranlib"
-    "-DCMAKE_NM=${gcc-unwrapped}/bin/gcc-nm"
+    "-DCMAKE_AR=${stdenv.cc.cc}/bin/gcc-ar"
+    "-DCMAKE_RANLIB=${stdenv.cc.cc}/bin/gcc-ranlib"
+    "-DCMAKE_NM=${stdenv.cc.cc}/bin/gcc-nm"
   ];
 
+  cmakeBuildType = "Release";
+
   postPatch = "cd Plugin";
 
   installPhase = ''
-    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/bin $out/share/doc/CHOWTapeModel/
-    cd CHOWTapeModel_artefacts/Release
-    cp libCHOWTapeModel_SharedCode.a  $out/lib
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/lib/clap $out/bin $out/share/doc/CHOWTapeModel/
+    cd CHOWTapeModel_artefacts/${cmakeBuildType}
     cp -r LV2/CHOWTapeModel.lv2 $out/lib/lv2
     cp -r VST3/CHOWTapeModel.vst3 $out/lib/vst3
+    cp -r CLAP/CHOWTapeModel.clap $out/lib/clap
     cp Standalone/CHOWTapeModel  $out/bin
     cp ../../../../Manual/ChowTapeManual.pdf $out/share/doc/CHOWTapeModel/
   '';
 
+  # JUCE dlopens these, make sure they are in rpath
+  # Otherwise, segfault will happen
+  NIX_LDFLAGS = (toString [
+    "-lX11"
+    "-lXext"
+    "-lXcursor"
+    "-lXinerama"
+    "-lXrandr"
+  ]);
+
   meta = with lib; {
     homepage = "https://github.com/jatinchowdhury18/AnalogTapeModel";
     description =
-      "Physical modelling signal processing for analog tape recording. LV2, VST3 and standalone";
+      "Physical modelling signal processing for analog tape recording. LV2, VST3, CLAP, and standalone";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ magnetophon ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/audio/alsa-scarlett-gui/default.nix b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
index e74b660b1c541..de4f8b3db98a1 100644
--- a/pkgs/applications/audio/alsa-scarlett-gui/default.nix
+++ b/pkgs/applications/audio/alsa-scarlett-gui/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-scarlett-gui";
-  version = "0.3.2";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "geoffreybennett";
     repo = pname;
     rev = version;
-    sha256 = "sha256-wzBOPTs8PTHzu5RpKwKhx552E7QnDx2Zn4OFaes8Q2I=";
+    sha256 = "sha256-lIwDNyzuvolDhTVCslCtUfbsC/TxKtxQF97h0zYxp9k=";
   };
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated-declarations" ];
diff --git a/pkgs/applications/audio/eartag/default.nix b/pkgs/applications/audio/eartag/default.nix
index f6ae96a5ec4a8..02c1b7e8bf221 100644
--- a/pkgs/applications/audio/eartag/default.nix
+++ b/pkgs/applications/audio/eartag/default.nix
@@ -10,6 +10,7 @@
 , glib
 , gobject-introspection
 , desktop-file-utils
+, appstream
 , appstream-glib
 , gtk4
 , librsvg
@@ -18,7 +19,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "eartag";
-  version = "0.4.3";
+  version = "0.5.1";
   format = "other";
 
   src = fetchFromGitLab {
@@ -26,7 +27,7 @@ python3Packages.buildPythonApplication rec {
     owner = "World";
     repo = pname;
     rev = version;
-    hash = "sha256-0nkaKLkUnJiNTs7/qe+c4Lkst/ItHD1RKAERCo2O2ms=";
+    hash = "sha256-tHBEz4sZsWOxDkdUd/3zMta8vOhuzv4G01dtjKBX/D0=";
   };
 
   postPatch = ''
@@ -41,6 +42,7 @@ python3Packages.buildPythonApplication rec {
     ninja
     glib
     desktop-file-utils
+    appstream
     appstream-glib
     pkg-config
     gettext
diff --git a/pkgs/applications/audio/gnome-podcasts/Cargo.lock b/pkgs/applications/audio/gnome-podcasts/Cargo.lock
index ee4b4ac20a830..622534ee0f83d 100644
--- a/pkgs/applications/audio/gnome-podcasts/Cargo.lock
+++ b/pkgs/applications/audio/gnome-podcasts/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",
 ]
@@ -19,9 +19,9 @@ checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.2"
+version = "1.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43f6cb1bf222025340178f382c426f13757b2960e89779dfcb319c32542a5a41"
+checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
 dependencies = [
  "memchr",
 ]
@@ -32,7 +32,7 @@ version = "3.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "64e6d1c7838db705c9b756557ee27c384ce695a1c51a6fe528784cb1c6840170"
 dependencies = [
- "html5ever 0.26.0",
+ "html5ever",
  "maplit",
  "once_cell",
  "tendril",
@@ -56,15 +56,15 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.71"
+version = "1.0.75"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8"
+checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6"
 
 [[package]]
 name = "atom_syndication"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca96cb38e3d8236f1573a84bbc55e130bd1ae07df770e36d0cf221ea7a50e36c"
+checksum = "571832dcff775e26562e8e6930cd483de5587301d40d3a3b85d532b6383e15a7"
 dependencies = [
  "chrono",
  "derive_builder",
@@ -75,9 +75,9 @@ dependencies = [
 
 [[package]]
 name = "atomic_refcell"
-version = "0.1.10"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79d6dc922a2792b006573f60b2648076355daeae5ce9cb59507e5908c9625d31"
+checksum = "112ef6b3f6cb3cb6fc5b6b494ef7a848492cff1ab0ef4de10b0f7d572861c905"
 
 [[package]]
 name = "autocfg"
@@ -87,9 +87,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 
 [[package]]
 name = "backtrace"
-version = "0.3.68"
+version = "0.3.69"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4319208da049c43661739c5fade2ba182f09d1dc2299b32298d3a31692b17e12"
+checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837"
 dependencies = [
  "addr2line",
  "cc",
@@ -102,9 +102,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.2"
+version = "0.21.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"
+checksum = "414dcefbc63d77c526a76b3afcf6fbb9b5e2791c19c3aa2297733208750c6e53"
 
 [[package]]
 name = "bitflags"
@@ -114,9 +114,15 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.3.3"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+
+[[package]]
+name = "block"
+version = "0.1.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"
+checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "bumpalo"
@@ -132,13 +138,13 @@ checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
 
 [[package]]
 name = "cairo-rs"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab3603c4028a5e368d09b51c8b624b9a46edcd7c3778284077a6125af73c9f0a"
+checksum = "d859b656775a6b1dd078d3e5924884e6ea88aa649a7fdde03d5b2ec56ffcc10b"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "cairo-sys-rs",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
  "thiserror",
@@ -146,26 +152,29 @@ dependencies = [
 
 [[package]]
 name = "cairo-sys-rs"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "691d0c66b1fb4881be80a760cb8fe76ea97218312f9dfe2c9cc0f496ca279cb1"
+checksum = "bd4d115132e01c0165e3bf5f56aedee8980b0b96ede4eb000b693c05a8adb8ff"
 dependencies = [
- "glib-sys 0.17.10",
+ "glib-sys 0.18.1",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "cc"
-version = "1.0.79"
+version = "1.0.83"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0"
+dependencies = [
+ "libc",
+]
 
 [[package]]
 name = "cfg-expr"
-version = "0.15.3"
+version = "0.15.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "215c0072ecc28f92eeb0eea38ba63ddfcb65c2828c46311d646f1a3ff5f9841c"
+checksum = "b40ccee03b5175c18cde8f37e7d2a33bcef6f8ec8f7cc0d81090d1bb380949c9"
 dependencies = [
  "smallvec",
  "target-lexicon",
@@ -179,9 +188,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "chrono"
-version = "0.4.26"
+version = "0.4.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+checksum = "95ed24df0632f708f5f6d8082675bef2596f7084dee3dd55f632290bf35bfe0f"
 dependencies = [
  "android-tzdata",
  "iana-time-zone",
@@ -189,7 +198,7 @@ dependencies = [
  "num-traits",
  "time 0.1.45",
  "wasm-bindgen",
- "winapi",
+ "windows-targets",
 ]
 
 [[package]]
@@ -209,59 +218,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
 
 [[package]]
-name = "crossbeam-channel"
-version = "0.5.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
-dependencies = [
- "cfg-if",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-deque"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
-dependencies = [
- "cfg-if",
- "crossbeam-epoch",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-epoch"
-version = "0.9.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
-dependencies = [
- "autocfg",
- "cfg-if",
- "crossbeam-utils",
- "memoffset",
- "scopeguard",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "ctor"
-version = "0.1.26"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096"
-dependencies = [
- "quote",
- "syn 1.0.109",
-]
-
-[[package]]
 name = "darling"
 version = "0.14.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -307,6 +263,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "deranged"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2696e8a945f658fd14dc3b87242e6b80cd0f36ff04ea560fa39082368847946"
+
+[[package]]
 name = "derive_builder"
 version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -339,27 +301,27 @@ dependencies = [
 
 [[package]]
 name = "diesel"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7a532c1f99a0f596f6960a60d1e119e91582b24b39e2d83a190e61262c3ef0c"
+checksum = "d98235fdc2f355d330a8244184ab6b4b33c28679c0b4158f63138e51d6cf7e88"
 dependencies = [
  "chrono",
  "diesel_derives",
  "libsqlite3-sys",
  "r2d2",
- "time 0.3.22",
+ "time 0.3.28",
 ]
 
 [[package]]
 name = "diesel_derives"
-version = "2.1.0"
+version = "2.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74398b79d81e52e130d991afeed9c86034bb1b7735f46d2f5bf7deb261d80303"
+checksum = "e054665eaf6d97d1e7125512bb2d35d07c73ac86cc6920174cb42d1ab697a554"
 dependencies = [
  "diesel_table_macro_syntax",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -379,7 +341,7 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fc5557efc453706fed5e4fa85006fe9817c224c3f480a34c7e5959fd700921c5"
 dependencies = [
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -399,15 +361,15 @@ dependencies = [
 
 [[package]]
 name = "either"
-version = "1.8.1"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[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",
 ]
@@ -427,15 +389,15 @@ dependencies = [
 
 [[package]]
 name = "equivalent"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88bffebc5d80432c9b140ee17875ff173a8ab62faad5b257da912bd2f6c1c0a1"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
 
 [[package]]
 name = "errno"
-version = "0.3.1"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+checksum = "136526188508e25c6fef639d7927dfb3e0e3084488bf202267829cf7fc23dbdd"
 dependencies = [
  "errno-dragonfly",
  "libc",
@@ -454,12 +416,9 @@ dependencies = [
 
 [[package]]
 name = "fastrand"
-version = "1.9.0"
+version = "2.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
-dependencies = [
- "instant",
-]
+checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764"
 
 [[package]]
 name = "field-offset"
@@ -579,7 +538,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -614,58 +573,56 @@ dependencies = [
 
 [[package]]
 name = "gdk-pixbuf"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "695d6bc846438c5708b07007537b9274d883373dd30858ca881d7d71b5540717"
+checksum = "bbc9c2ed73a81d556b65d08879ba4ee58808a6b1927ce915262185d6d547c6f3"
 dependencies = [
- "bitflags 1.3.2",
  "gdk-pixbuf-sys",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
 ]
 
 [[package]]
 name = "gdk-pixbuf-sys"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9285ec3c113c66d7d0ab5676599176f1f42f4944ca1b581852215bf5694870cb"
+checksum = "3f9839ea644ed9c97a34d129ad56d38a25e6756f99f3a88e15cd39c20629caf7"
 dependencies = [
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "gdk4"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3abf96408a26e3eddf881a7f893a1e111767137136e347745e8ea6ed12731ff"
+checksum = "6982d9815ed6ac95b0467b189e81f29dea26d08a732926ec113e65744ed3f96c"
 dependencies = [
- "bitflags 1.3.2",
  "cairo-rs",
  "gdk-pixbuf",
  "gdk4-sys",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "pango",
 ]
 
 [[package]]
 name = "gdk4-sys"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bc92aa1608c089c49393d014c38ac0390d01e4841e1fedaa75dbcef77aaed64"
+checksum = "dbab43f332a3cf1df9974da690b5bb0e26720ed09a228178ce52175372dcfef0"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "pango-sys",
  "pkg-config",
@@ -674,17 +631,6 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.1.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi 0.9.0+wasi-snapshot-preview1",
-]
-
-[[package]]
-name = "getrandom"
 version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
@@ -696,8 +642,9 @@ dependencies = [
 
 [[package]]
 name = "gettext-rs"
-version = "0.4.2"
-source = "git+https://github.com/danigm/gettext-rs?branch=no-gettext#61938b9f5f1d3bdc31f9839f53fabe5ccf136a78"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e49ea8a8fad198aaa1f9655a2524b64b70eb06b2f3ff37da407566c93054f364"
 dependencies = [
  "gettext-sys",
  "locale_config",
@@ -705,31 +652,32 @@ dependencies = [
 
 [[package]]
 name = "gettext-sys"
-version = "0.19.9"
-source = "git+https://github.com/danigm/gettext-rs?branch=no-gettext#61938b9f5f1d3bdc31f9839f53fabe5ccf136a78"
+version = "0.21.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c63ce2e00f56a206778276704bbe38564c8695249fdc8f354b4ef71c57c3839d"
 dependencies = [
  "cc",
+ "temp-dir",
 ]
 
 [[package]]
 name = "gimli"
-version = "0.27.3"
+version = "0.28.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6c80984affa11d98d1b88b66ac8853f143217b399d3c74116778ff8fdb4ed2e"
+checksum = "6fb8d784f27acf97159b40fc4db5ecd8aa23b9ad5ef69cdd136d3bc80665f0c0"
 
 [[package]]
 name = "gio"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6973e92937cf98689b6a054a9e56c657ed4ff76de925e36fc331a15f0c5d30a"
+checksum = "7884cba6b1c5db1607d970cadf44b14a43913d42bc68766eea6a5e2fe0891524"
 dependencies = [
- "bitflags 1.3.2",
  "futures-channel",
  "futures-core",
  "futures-io",
  "futures-util",
  "gio-sys",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
  "pin-project-lite",
@@ -739,12 +687,12 @@ dependencies = [
 
 [[package]]
 name = "gio-sys"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ccf87c30a12c469b6d958950f6a9c09f2be20b7773f7e70d20b867fdf2628c3"
+checksum = "37566df850baf5e4cb0dfb78af2e4b9898d817ed9263d1090a2df958c64737d2"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
  "winapi",
@@ -772,20 +720,20 @@ dependencies = [
 
 [[package]]
 name = "glib"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3fad45ba8d4d2cea612b432717e834f48031cd8853c8aaf43b2c79fec8d144b"
+checksum = "331156127e8166dd815cf8d2db3a5beb492610c716c03ee6db4f2d07092af0a7"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "futures-channel",
  "futures-core",
  "futures-executor",
  "futures-task",
  "futures-util",
  "gio-sys",
- "glib-macros 0.17.10",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-macros 0.18.0",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "memchr",
  "once_cell",
@@ -810,17 +758,16 @@ dependencies = [
 
 [[package]]
 name = "glib-macros"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eca5c79337338391f1ab8058d6698125034ce8ef31b72a442437fa6c8580de26"
+checksum = "179643c50bf28d20d2f6eacd2531a88f2f5d9747dd0b86b8af1e8bb5dd0de3c0"
 dependencies = [
- "anyhow",
  "heck",
  "proc-macro-crate",
  "proc-macro-error",
  "proc-macro2",
  "quote",
- "syn 1.0.109",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -835,9 +782,9 @@ dependencies = [
 
 [[package]]
 name = "glib-sys"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d80aa6ea7bba0baac79222204aa786a6293078c210abe69ef1336911d4bdc4f0"
+checksum = "063ce2eb6a8d0ea93d2bf8ba1957e78dbab6be1c2220dd3daca57d5a9d869898"
 dependencies = [
  "libc",
  "system-deps",
@@ -862,33 +809,33 @@ dependencies = [
 
 [[package]]
 name = "gobject-sys"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd34c3317740a6358ec04572c1bcfd3ac0b5b6529275fae255b237b314bb8062"
+checksum = "0850127b514d1c4a4654ead6dedadb18198999985908e6ffe4436f53c785ce44"
 dependencies = [
- "glib-sys 0.17.10",
+ "glib-sys 0.18.1",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "graphene-rs"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "def4bb01265b59ed548b05455040d272d989b3012c42d4c1bbd39083cb9b40d9"
+checksum = "3b2228cda1505613a7a956cca69076892cfbda84fc2b7a62b94a41a272c0c401"
 dependencies = [
- "glib 0.17.10",
+ "glib 0.18.1",
  "graphene-sys",
  "libc",
 ]
 
 [[package]]
 name = "graphene-sys"
-version = "0.17.10"
+version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1856fc817e6a6675e36cea0bd9a3afe296f5d9709d1e2d3182803ac77f0ab21d"
+checksum = "cc4144cee8fc8788f2a9b73dc5f1d4e1189d1f95305c4cb7bd9c1af1cfa31f59"
 dependencies = [
- "glib-sys 0.17.10",
+ "glib-sys 0.18.1",
  "libc",
  "pkg-config",
  "system-deps",
@@ -896,14 +843,13 @@ dependencies = [
 
 [[package]]
 name = "gsk4"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f01ef44fa7cac15e2da9978529383e6bee03e570ba5bf7036b4c10a15cc3a3c"
+checksum = "cc25855255120f294d874acd6eaf4fbed7ce1cdc550e2d8415ea57fafbe816d5"
 dependencies = [
- "bitflags 1.3.2",
  "cairo-rs",
  "gdk4",
- "glib 0.17.10",
+ "glib 0.18.1",
  "graphene-rs",
  "gsk4-sys",
  "libc",
@@ -912,14 +858,14 @@ dependencies = [
 
 [[package]]
 name = "gsk4-sys"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c07a84fb4dcf1323d29435aa85e2f5f58bef564342bef06775ec7bd0da1f01b0"
+checksum = "e1ecf3a63bf1223d68f80f72cc896c4d8c80482fbce1c9a12c66d3de7290ee46"
 dependencies = [
  "cairo-sys-rs",
  "gdk4-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "graphene-sys",
  "libc",
  "pango-sys",
@@ -928,22 +874,21 @@ dependencies = [
 
 [[package]]
 name = "gstreamer"
-version = "0.20.6"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3113531138b4e41968e33fd003a0d1a635ef6e0cbc309dd5004123000863ac54"
+checksum = "f8cdb86791dc39a5443f7d08cf3e7ae9c88a94991aba620d177cb5804838201f"
 dependencies = [
- "bitflags 1.3.2",
  "cfg-if",
  "futures-channel",
  "futures-core",
  "futures-util",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer-sys",
+ "itertools",
  "libc",
  "muldiv",
  "num-integer",
  "num-rational",
- "once_cell",
  "option-operations",
  "paste",
  "pretty-hex",
@@ -953,14 +898,13 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base"
-version = "0.20.5"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b8ff5dfbf7bcaf1466a385b836bad0d8da25759f121458727fdda1f771c69b3"
+checksum = "0fe38a6d5c1e516ce3fd6069e972a540d315448ed69fdadad739e6c6c6eb2a01"
 dependencies = [
  "atomic_refcell",
- "bitflags 1.3.2",
  "cfg-if",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer",
  "gstreamer-base-sys",
  "libc",
@@ -968,12 +912,12 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-base-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26114ed96f6668380f5a1554128159e98e06c3a7a8460f216d7cd6dce28f928c"
+checksum = "88b9c029583ed61fa5258076a42df91732dc7f5582044ea7ee66a721641e6af4"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gstreamer-sys",
  "libc",
  "system-deps",
@@ -981,27 +925,25 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-player"
-version = "0.20.5"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec5e04059f117b82ca64c40901610ca9ac1734383437c9fb69afba26c9ebf5a3"
+checksum = "e68dc9772932f6133a9517742918b13ab5414db1f47e19daebc3027a1c3d20d2"
 dependencies = [
- "bitflags 1.3.2",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer",
  "gstreamer-player-sys",
  "gstreamer-video",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gstreamer-player-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15321aaaf3bb247b4af3e09456a62dc17f030515d6328377a34081d9ed5803c0"
+checksum = "f5ef4d00b43d0aa94e9a518e6ef4a4c504b4b855304a0a5f4ed1493d5e5ca66c"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gstreamer-sys",
  "gstreamer-video-sys",
  "libc",
@@ -1010,41 +952,39 @@ dependencies = [
 
 [[package]]
 name = "gstreamer-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e56fe047adef7d47dbafa8bc1340fddb53c325e16574763063702fc94b5786d2"
+checksum = "a70e3a99118bcd1221f8a62d7a905bae5e5cc2cda678bb46bf3cd36e0f899d33"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
 ]
 
 [[package]]
 name = "gstreamer-video"
-version = "0.20.4"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dce97769effde2d779dc4f7037b37106457b74e53f2a711bddc90b30ffeb7e06"
+checksum = "0db8adfc000cd58f8ece0fe6b4beb79e19e4a6135cfb81138fdb016b603f7d60"
 dependencies = [
- "bitflags 1.3.2",
  "cfg-if",
  "futures-channel",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gstreamer",
  "gstreamer-base",
  "gstreamer-video-sys",
  "libc",
- "once_cell",
 ]
 
 [[package]]
 name = "gstreamer-video-sys"
-version = "0.20.0"
+version = "0.21.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "66ddb6112d438aac0004d2db6053a572f92b1c5e0e9d6ff6c71d9245f7f73e46"
+checksum = "e0284250a09fa824b21df1a21967eef4a5d85b5e0c1e335ed2ba9b9be1424dae"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gstreamer-base-sys",
  "gstreamer-sys",
  "libc",
@@ -1053,32 +993,30 @@ dependencies = [
 
 [[package]]
 name = "gtk4"
-version = "0.6.6"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b28a32a04cd75cef14a0983f8b0c669e0fe152a0a7725accdeb594e2c764c88b"
+checksum = "a3b095b26f2a2df70be1805d3590eeb9d7a05ecb5be9649b82defc72dc56228c"
 dependencies = [
- "bitflags 1.3.2",
  "cairo-rs",
  "field-offset",
  "futures-channel",
  "gdk-pixbuf",
  "gdk4",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "graphene-rs",
  "gsk4",
  "gtk4-macros",
  "gtk4-sys",
  "libc",
- "once_cell",
  "pango",
 ]
 
 [[package]]
 name = "gtk4-macros"
-version = "0.6.6"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a4d6b61570f76d3ee542d984da443b1cd69b6105264c61afec3abed08c2500f"
+checksum = "d57ec49cf9b657f69a05bca8027cff0a8dfd0c49e812be026fc7311f2163832f"
 dependencies = [
  "anyhow",
  "proc-macro-crate",
@@ -1090,16 +1028,16 @@ dependencies = [
 
 [[package]]
 name = "gtk4-sys"
-version = "0.6.3"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f8283f707b07e019e76c7f2934bdd4180c277e08aa93f4c0d8dd07b7a34e22f"
+checksum = "7b0bdde87c50317b4f355bcbb4a9c2c414ece1b7c824fb4ad4ba8f3bdb2c6603"
 dependencies = [
  "cairo-sys-rs",
  "gdk-pixbuf-sys",
  "gdk4-sys",
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "graphene-sys",
  "gsk4-sys",
  "libc",
@@ -1109,9 +1047,9 @@ dependencies = [
 
 [[package]]
 name = "h2"
-version = "0.3.20"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97ec8491ebaf99c8eaa73058b045fe58073cd6be7f596ac993ced0b0a0c01049"
+checksum = "91fc23aa11be92976ef4729127f1a74adf36d8436f7816b185d18df956790833"
 dependencies = [
  "bytes",
  "fnv",
@@ -1146,18 +1084,9 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "hermit-abi"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
-
-[[package]]
-name = "home"
-version = "0.5.5"
+version = "0.3.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb"
-dependencies = [
- "windows-sys",
-]
+checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"
 
 [[package]]
 name = "html2text"
@@ -1165,25 +1094,11 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74cda84f06c1cc83476f79ae8e2e892b626bdadafcb227baec54c918cadc18a0"
 dependencies = [
- "html5ever 0.26.0",
- "markup5ever 0.11.0",
+ "html5ever",
+ "markup5ever",
  "tendril",
  "unicode-width",
- "xml5ever 0.17.0",
-]
-
-[[package]]
-name = "html5ever"
-version = "0.25.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e5c13fb08e5d4dfc151ee5e88bae63f7773d61852f3bdc73c9f4b9e1bde03148"
-dependencies = [
- "log",
- "mac",
- "markup5ever 0.10.1",
- "proc-macro2",
- "quote",
- "syn 1.0.109",
+ "xml5ever",
 ]
 
 [[package]]
@@ -1194,7 +1109,7 @@ checksum = "bea68cab48b8459f17cf1c944c67ddc572d272d9f2b274140f223ecb1da4a3b7"
 dependencies = [
  "log",
  "mac",
- "markup5ever 0.11.0",
+ "markup5ever",
  "proc-macro2",
  "quote",
  "syn 1.0.109",
@@ -1230,9 +1145,9 @@ 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 = "humansize"
@@ -1263,7 +1178,7 @@ dependencies = [
  "httpdate",
  "itoa",
  "pin-project-lite",
- "socket2",
+ "socket2 0.4.9",
  "tokio",
  "tower-service",
  "tracing",
@@ -1343,26 +1258,6 @@ 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 = "io-lifetimes"
-version = "1.0.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
-dependencies = [
- "hermit-abi",
- "libc",
- "windows-sys",
-]
-
-[[package]]
 name = "ipnet"
 version = "2.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1379,12 +1274,12 @@ dependencies = [
 
 [[package]]
 name = "is-terminal"
-version = "0.4.8"
+version = "0.4.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24fddda5af7e54bf7da53067d6e802dbcc381d0a8eef629df528e3ebf68755cb"
+checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"
 dependencies = [
  "hermit-abi",
- "rustix 0.38.2",
+ "rustix",
  "windows-sys",
 ]
 
@@ -1399,10 +1294,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
-version = "1.0.8"
+version = "1.0.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b02a5381cc465bd3041d84623d0fa3b66738b52b8e2fc3bab8ad63ab032f4a"
+checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "js-sys"
@@ -1421,15 +1325,14 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libadwaita"
-version = "0.4.4"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ab9c0843f9f23ff25634df2743690c3a1faffe0a190e60c490878517eb81abf"
+checksum = "06444f4ca05a60693da6e9e2b591bd40a298e65a118a8d5e830771718b3e0253"
 dependencies = [
- "bitflags 1.3.2",
  "gdk-pixbuf",
  "gdk4",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "gtk4",
  "libadwaita-sys",
  "libc",
@@ -1438,14 +1341,14 @@ dependencies = [
 
 [[package]]
 name = "libadwaita-sys"
-version = "0.4.4"
+version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4231cb2499a9f0c4cdfa4885414b33e39901ddcac61150bc0bb4ff8a57ede404"
+checksum = "021cfe3d1fcfa82411765a791f7e9b32f35dd98ce88d2e3fa10e7320f5cc8ce7"
 dependencies = [
  "gdk4-sys",
  "gio-sys",
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "gtk4-sys",
  "libc",
  "pango-sys",
@@ -1478,24 +1381,29 @@ dependencies = [
 ]
 
 [[package]]
-name = "linux-raw-sys"
-version = "0.3.8"
+name = "linkify"
+version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+checksum = "f1dfa36d52c581e9ec783a7ce2a5e0143da6237be5811a0b3153fedfdbe9f780"
+dependencies = [
+ "memchr",
+]
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.3"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"
+checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503"
 
 [[package]]
 name = "locale_config"
-version = "0.2.3"
+version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c"
+checksum = "08d2c35b16f4483f6c26f0e4e9550717a2f6575bcd6f12a53ff0c490a94a6934"
 dependencies = [
  "lazy_static",
+ "objc",
+ "objc-foundation",
  "regex",
  "winapi",
 ]
@@ -1512,9 +1420,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.19"
+version = "0.4.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b06a4cde4c0f271a446782e3eff8de789548ce57dbc8eca9292c27f4a42004b4"
+checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f"
 
 [[package]]
 name = "mac"
@@ -1523,24 +1431,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 
 [[package]]
-name = "maplit"
-version = "1.0.2"
+name = "malloc_buf"
+version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
+checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
+dependencies = [
+ "libc",
+]
 
 [[package]]
-name = "markup5ever"
-version = "0.10.1"
+name = "maplit"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a24f40fb03852d1cdd84330cddcaf98e9ec08a7b7768e952fad3b4cf048ec8fd"
-dependencies = [
- "log",
- "phf 0.8.0",
- "phf_codegen 0.8.0",
- "string_cache",
- "string_cache_codegen",
- "tendril",
-]
+checksum = "3e2e65a1a2e43cfcb47a895c4c8b10d1f4a61097f9f254f183aee60cad9c651d"
 
 [[package]]
 name = "markup5ever"
@@ -1549,8 +1452,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "7a2629bb1404f3d34c2e921f21fd34ba00b206124c81f65c50b43b6aaefeb016"
 dependencies = [
  "log",
- "phf 0.10.1",
- "phf_codegen 0.10.0",
+ "phf",
+ "phf_codegen",
  "string_cache",
  "string_cache_codegen",
  "tendril",
@@ -1558,21 +1461,21 @@ dependencies = [
 
 [[package]]
 name = "markup5ever_rcdom"
-version = "0.1.0"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f015da43bcd8d4f144559a3423f4591d69b8ce0652c905374da7205df336ae2b"
+checksum = "b9521dd6750f8e80ee6c53d65e2e4656d7de37064f3a7a5d2d11d05df93839c2"
 dependencies = [
- "html5ever 0.25.2",
- "markup5ever 0.10.1",
+ "html5ever",
+ "markup5ever",
  "tendril",
- "xml5ever 0.16.2",
+ "xml5ever",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.5.0"
+version = "2.6.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+checksum = "8f232d6ef707e1956a43342693d2a31e72989554d58299d7a88738cc95b0d35c"
 
 [[package]]
 name = "memoffset"
@@ -1709,9 +1612,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.15"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+checksum = "f30b0abd723be7e2ffca1272140fac1a2f084c77ec3e123c192b66af1ee9e6c2"
 dependencies = [
  "autocfg",
 ]
@@ -1727,10 +1630,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "objc"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
+dependencies = [
+ "malloc_buf",
+]
+
+[[package]]
+name = "objc-foundation"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1add1b659e36c9607c7aab864a76c7a4c2760cd0cd2e120f3fb8b952c7e22bf9"
+dependencies = [
+ "block",
+ "objc",
+ "objc_id",
+]
+
+[[package]]
+name = "objc_id"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c92d4ddb4bd7b50d730c215ff871754d0da6b2178849f8a2a2ab69712d0c073b"
+dependencies = [
+ "objc",
+]
+
+[[package]]
 name = "object"
-version = "0.31.1"
+version = "0.32.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda667d9f2b5051b8833f59f3bf748b28ef54f850f4fcb389a252aa383866d1"
+checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0"
 dependencies = [
  "memchr",
 ]
@@ -1754,11 +1686,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.55"
+version = "0.10.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "345df152bc43501c5eb9e4654ff05f794effb78d4efe3d53abc158baddc0703d"
+checksum = "bac25ee399abb46215765b1cb35bc0212377e58a061560d8b29b024fd0430e7c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.4.0",
  "cfg-if",
  "foreign-types",
  "libc",
@@ -1775,7 +1707,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -1786,9 +1718,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.90"
+version = "0.9.92"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "374533b0e45f3a7ced10fcaeccca020e66656bc03dac384f852e4e5a7a8104a6"
+checksum = "db7e971c2c2bba161b2d2fdf37080177eff520b3bc044787c7f1f5f9e78d869b"
 dependencies = [
  "cc",
  "libc",
@@ -1806,23 +1738,13 @@ dependencies = [
 ]
 
 [[package]]
-name = "output_vt100"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66"
-dependencies = [
- "winapi",
-]
-
-[[package]]
 name = "pango"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "35be456fc620e61f62dff7ff70fbd54dcbaf0a4b920c0f16de1107c47d921d48"
+checksum = "06a9e54b831d033206160096b825f2070cf5fda7e35167b1c01e9e774f9202d1"
 dependencies = [
- "bitflags 1.3.2",
  "gio",
- "glib 0.17.10",
+ "glib 0.18.1",
  "libc",
  "once_cell",
  "pango-sys",
@@ -1830,12 +1752,12 @@ dependencies = [
 
 [[package]]
 name = "pango-sys"
-version = "0.17.10"
+version = "0.18.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3da69f9f3850b0d8990d462f8c709561975e95f689c1cdf0fecdebde78b35195"
+checksum = "436737e391a843e5933d6d9aa102cb126d501e815b83601365a948a518555dc5"
 dependencies = [
- "glib-sys 0.17.10",
- "gobject-sys 0.17.10",
+ "glib-sys 0.18.1",
+ "gobject-sys 0.18.0",
  "libc",
  "system-deps",
 ]
@@ -1865,9 +1787,9 @@ dependencies = [
 
 [[package]]
 name = "paste"
-version = "1.0.13"
+version = "1.0.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4b27ab7be369122c218afc2079489cdcb4b517c0a3fc386ff11e1fedfcc2b35"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
 
 [[package]]
 name = "pathdiff"
@@ -1883,30 +1805,11 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94"
 
 [[package]]
 name = "phf"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dfb61232e34fcb633f43d12c58f83c1df82962dcdfa565a4e866ffc17dafe12"
-dependencies = [
- "phf_shared 0.8.0",
-]
-
-[[package]]
-name = "phf"
 version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fabbf1ead8a5bcbc20f5f8b939ee3f5b0f6f281b6ad3468b84656b658b455259"
 dependencies = [
- "phf_shared 0.10.0",
-]
-
-[[package]]
-name = "phf_codegen"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbffee61585b0411840d3ece935cce9cb6321f01c45477d30066498cd5e1a815"
-dependencies = [
- "phf_generator 0.8.0",
- "phf_shared 0.8.0",
+ "phf_shared",
 ]
 
 [[package]]
@@ -1915,18 +1818,8 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4fb1c3a8bc4dd4e5cfce29b44ffc14bedd2ee294559a294e2a4d4c9e9a6a13cd"
 dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
-]
-
-[[package]]
-name = "phf_generator"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17367f0cc86f2d25802b2c26ee58a7b23faeccf78a396094c13dced0d0182526"
-dependencies = [
- "phf_shared 0.8.0",
- "rand 0.7.3",
+ "phf_generator",
+ "phf_shared",
 ]
 
 [[package]]
@@ -1935,21 +1828,12 @@ version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5d5285893bb5eb82e6aaf5d59ee909a06a16737a8970984dd7746ba9283498d6"
 dependencies = [
- "phf_shared 0.10.0",
+ "phf_shared",
  "rand 0.8.5",
 ]
 
 [[package]]
 name = "phf_shared"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c00cf8b9eafe68dde5e9eaa2cef8ee84a9336a47d566ec55ca16589633b65af7"
-dependencies = [
- "siphasher",
-]
-
-[[package]]
-name = "phf_shared"
 version = "0.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
@@ -1959,9 +1843,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.10"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c40d25201921e5ff0c862a505c6557ea88568a4e3ace775ab55e93f2f4f9d57"
+checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58"
 
 [[package]]
 name = "pin-utils"
@@ -1982,25 +1866,20 @@ dependencies = [
  "ammonia",
  "anyhow",
  "base64",
+ "bytes",
  "chrono",
- "crossbeam-channel",
  "derive_builder",
  "diesel",
  "diesel_migrations",
  "futures",
  "glob",
  "http",
- "hyper",
- "hyper-tls",
  "log",
  "maplit",
  "mime_guess",
- "native-tls",
- "num_cpus",
  "once_cell",
  "pretty_assertions",
  "rand 0.8.5",
- "rayon",
  "reqwest",
  "rfc822_sanitizer",
  "rss",
@@ -2018,7 +1897,6 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "chrono",
- "crossbeam-channel",
  "fragile",
  "gettext-rs",
  "glob",
@@ -2026,9 +1904,10 @@ dependencies = [
  "gstreamer-player",
  "gtk4",
  "html2text",
- "html5ever 0.25.2",
+ "html5ever",
  "humansize",
  "libadwaita",
+ "linkify",
  "log",
  "markup5ever_rcdom",
  "mpris-player",
@@ -2037,7 +1916,6 @@ dependencies = [
  "podcasts-data",
  "pretty_assertions",
  "pretty_env_logger",
- "rayon",
  "regex",
  "reqwest",
  "serde_json",
@@ -2065,13 +1943,11 @@ checksum = "c6fa0831dd7cc608c38a5e323422a0077678fa5744aa2be4ad91c4ece8eec8d5"
 
 [[package]]
 name = "pretty_assertions"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755"
+checksum = "af7cee1a6c8a5b9208b3cb1061f10c0cb689087b3d8ce85fb9d2dd7a29b6ba66"
 dependencies = [
- "ctor",
  "diff",
- "output_vt100",
  "yansi",
 ]
 
@@ -2121,18 +1997,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.63"
+version = "1.0.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quick-xml"
-version = "0.28.2"
+version = "0.30.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce5e73202a820a31f8a0ee32ada5e21029c81fd9e3ebf668a40832e4219d9d1"
+checksum = "eff6510e86862b57b210fd8cbe8ed3f0d7d600b9c2863cd4549a2e033c66e956"
 dependencies = [
  "encoding_rs",
  "memchr",
@@ -2140,9 +2016,9 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.29"
+version = "1.0.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "573015e8ab27661678357f27dc26460738fd2b6c86e46f386fde94cb5d913105"
+checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
 dependencies = [
  "proc-macro2",
 ]
@@ -2173,41 +2049,17 @@ dependencies = [
 
 [[package]]
 name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom 0.1.16",
- "libc",
- "rand_chacha 0.2.2",
- "rand_core 0.5.1",
- "rand_hc",
- "rand_pcg",
-]
-
-[[package]]
-name = "rand"
 version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
 dependencies = [
  "libc",
- "rand_chacha 0.3.1",
+ "rand_chacha",
  "rand_core 0.6.4",
 ]
 
 [[package]]
 name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_chacha"
 version = "0.3.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
@@ -2233,60 +2085,11 @@ checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
 
 [[package]]
 name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom 0.1.16",
-]
-
-[[package]]
-name = "rand_core"
 version = "0.6.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
 dependencies = [
- "getrandom 0.2.10",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rand_pcg"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
-dependencies = [
- "rand_core 0.5.1",
-]
-
-[[package]]
-name = "rayon"
-version = "1.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
-dependencies = [
- "either",
- "rayon-core",
-]
-
-[[package]]
-name = "rayon-core"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
-dependencies = [
- "crossbeam-channel",
- "crossbeam-deque",
- "crossbeam-utils",
- "num_cpus",
+ "getrandom",
 ]
 
 [[package]]
@@ -2309,9 +2112,21 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.8.4"
+version = "1.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d0ab3ca65655bb1e41f2a8c8cd662eb4fb035e67c3f78da1d61dffe89d07300f"
+checksum = "697061221ea1b4a94a624f67d0ae2bfe4e22b8a17b6a192afb11046542cc8c47"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2f401f4955220693b56f8ec66ee9c78abffd8d1c4f23dc41a23839eb88f0795"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -2320,9 +2135,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.2"
+version = "0.7.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78"
+checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
 
 [[package]]
 name = "remove_dir_all"
@@ -2335,9 +2150,9 @@ dependencies = [
 
 [[package]]
 name = "reqwest"
-version = "0.11.18"
+version = "0.11.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cde824a14b7c14f85caff81225f411faacc04a2013f41670f41443742b1c1c55"
+checksum = "3e9ad3fe7488d7e34558a2033d45a0c90b72d97b4f80705666fea71472e2e6a1"
 dependencies = [
  "base64",
  "bytes",
@@ -2362,10 +2177,12 @@ dependencies = [
  "serde_urlencoded",
  "tokio",
  "tokio-native-tls",
+ "tokio-util",
  "tower-service",
  "url",
  "wasm-bindgen",
  "wasm-bindgen-futures",
+ "wasm-streams",
  "web-sys",
  "winreg",
 ]
@@ -2383,9 +2200,9 @@ dependencies = [
 
 [[package]]
 name = "rss"
-version = "2.0.4"
+version = "2.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9acf62e0f3f4b52f61d3a12d6279e3f0b90d4811b0ae888eabdf61a2e7c03a95"
+checksum = "7e6c0ea0e621c2a3aa34850ebd711526f0ac7385921f57d2430a47cecc7b9cbc"
 dependencies = [
  "atom_syndication",
  "derive_builder",
@@ -2410,36 +2227,22 @@ dependencies = [
 
 [[package]]
 name = "rustix"
-version = "0.37.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8818fa822adcc98b18fedbb3632a6a33213c070556b5aa7c4c8cc21cff565c4c"
-dependencies = [
- "bitflags 1.3.2",
- "errno",
- "io-lifetimes",
- "libc",
- "linux-raw-sys 0.3.8",
- "windows-sys",
-]
-
-[[package]]
-name = "rustix"
-version = "0.38.2"
+version = "0.38.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aabcb0461ebd01d6b79945797c27f8529082226cb630a9865a71870ff63532a4"
+checksum = "c0c3dde1fc030af041adc40e79c0e7fbcf431dd24870053d187d7c66e4b87453"
 dependencies = [
- "bitflags 2.3.3",
+ "bitflags 2.4.0",
  "errno",
  "libc",
- "linux-raw-sys 0.4.3",
+ "linux-raw-sys",
  "windows-sys",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.14"
+version = "1.0.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe232bdf6be8c8de797b22184ee71118d63780ea42ac85b61d1baa6d3b782ae9"
+checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"
 
 [[package]]
 name = "schannel"
@@ -2461,15 +2264,15 @@ dependencies = [
 
 [[package]]
 name = "scopeguard"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "security-framework"
-version = "2.9.1"
+version = "2.9.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1fc758eb7bffce5b308734e9b0c1468893cae9ff70ebf13e7090be8dcbcc83a8"
+checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de"
 dependencies = [
  "bitflags 1.3.2",
  "core-foundation",
@@ -2480,9 +2283,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.9.0"
+version = "2.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f51d0c0d83bec45f16480d0ce0058397a69e48fcdc52d1dc8855fb68acbd31a7"
+checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -2490,35 +2293,35 @@ dependencies = [
 
 [[package]]
 name = "semver"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918"
 
 [[package]]
 name = "serde"
-version = "1.0.166"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d01b7404f9d441d3ad40e6a636a7782c377d2abdbe4fa2440e2edcc2f4f10db8"
+checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.166"
+version = "1.0.188"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5dd83d6dde2b6b2d466e14d9d1acce8816dedee94f735eac6395808b3483c6d6"
+checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.99"
+version = "1.0.105"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46266871c240a00b8f503b877622fe33430b3c7d963bdc0f2adc511e54a1eae3"
+checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360"
 dependencies = [
  "itoa",
  "ryu",
@@ -2548,24 +2351,24 @@ dependencies = [
 
 [[package]]
 name = "siphasher"
-version = "0.3.10"
+version = "0.3.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[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.10.0"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
+checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
 
 [[package]]
 name = "socket2"
@@ -2578,6 +2381,16 @@ dependencies = [
 ]
 
 [[package]]
+name = "socket2"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
 name = "string_cache"
 version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2586,7 +2399,7 @@ dependencies = [
  "new_debug_unreachable",
  "once_cell",
  "parking_lot",
- "phf_shared 0.10.0",
+ "phf_shared",
  "precomputed-hash",
  "serde",
 ]
@@ -2597,8 +2410,8 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bb30289b722be4ff74a408c3cc27edeaad656e06cb1fe8fa9231fa59c728988"
 dependencies = [
- "phf_generator 0.10.0",
- "phf_shared 0.10.0",
+ "phf_generator",
+ "phf_shared",
  "proc-macro2",
  "quote",
 ]
@@ -2622,9 +2435,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.23"
+version = "2.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+checksum = "718fa2415bcb8d8bd775917a1bf12a7931b6dfa890753378538118181e0cb398"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2646,9 +2459,15 @@ dependencies = [
 
 [[package]]
 name = "target-lexicon"
-version = "0.12.8"
+version = "0.12.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d0e916b1148c8e263850e1ebcbd046f333e0683c724876bb0da63ea4373dc8a"
+
+[[package]]
+name = "temp-dir"
+version = "0.1.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b1c7f239eb94671427157bd93b3694320f3668d4e1eff08c7285366fd777fac"
+checksum = "af547b166dd1ea4b472165569fc456cfb6818116f854690b0ff205e636523dab"
 
 [[package]]
 name = "tempdir"
@@ -2662,15 +2481,14 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.6.0"
+version = "3.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
 dependencies = [
- "autocfg",
  "cfg-if",
  "fastrand",
  "redox_syscall",
- "rustix 0.37.22",
+ "rustix",
  "windows-sys",
 ]
 
@@ -2696,22 +2514,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.40"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+checksum = "9d6d7a740b8a666a7e828dd00da9c0dc290dff53154ea77ac109281de90589b7"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.40"
+version = "1.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+checksum = "49922ecae66cc8a249b77e68d1d0623c1b2c514f0060c27cdc68bd62a1219d35"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -2727,10 +2545,11 @@ dependencies = [
 
 [[package]]
 name = "time"
-version = "0.3.22"
+version = "0.3.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea9e1b3cf1243ae005d9e74085d4d542f3125458f3a81af210d901dcd7411efd"
+checksum = "17f6bb557fd245c28e6411aa56b6403c689ad95061f50e4be16c274e70a17e48"
 dependencies = [
+ "deranged",
  "itoa",
  "serde",
  "time-core",
@@ -2745,9 +2564,9 @@ checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
 
 [[package]]
 name = "time-macros"
-version = "0.2.9"
+version = "0.2.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
+checksum = "1a942f44339478ef67935ab2bbaec2fb0322496cf3cbe84b261e06ac3814c572"
 dependencies = [
  "time-core",
 ]
@@ -2769,18 +2588,17 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[package]]
 name = "tokio"
-version = "1.29.1"
+version = "1.32.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "532826ff75199d5833b9d2c5fe410f29235e25704ee5f0ef599fb51c21f4a4da"
+checksum = "17ed6077ed6cd6c74735e21f37eb16dc3935f96878b1fe961074089cc80893f9"
 dependencies = [
- "autocfg",
  "backtrace",
  "bytes",
  "libc",
  "mio",
  "num_cpus",
  "pin-project-lite",
- "socket2",
+ "socket2 0.5.3",
  "tokio-macros",
  "windows-sys",
 ]
@@ -2793,7 +2611,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
 ]
 
 [[package]]
@@ -2822,9 +2640,9 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.7.5"
+version = "0.7.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ebafdf5ad1220cb59e7d17cf4d2c72015297b75b19a10472f99b89225089240"
+checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542"
 dependencies = [
  "serde",
  "serde_spanned",
@@ -2843,9 +2661,9 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.19.11"
+version = "0.19.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "266f016b7f039eec8a1a80dfe6156b633d208b9fccca5e4db1d6775b0c4e34a7"
+checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a"
 dependencies = [
  "indexmap 2.0.0",
  "serde",
@@ -2888,9 +2706,9 @@ checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed"
 
 [[package]]
 name = "unicase"
-version = "2.6.0"
+version = "2.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
 dependencies = [
  "version_check",
 ]
@@ -2903,9 +2721,9 @@ checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22049a19f4a68748a168c0fc439f9516686aa045927ff767eca0a85101fb6e73"
+checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
 
 [[package]]
 name = "unicode-normalization"
@@ -2924,9 +2742,9 @@ checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
 
 [[package]]
 name = "url"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb"
+checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5"
 dependencies = [
  "form_urlencoded",
  "idna",
@@ -2968,12 +2786,6 @@ dependencies = [
 
 [[package]]
 name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "wasi"
 version = "0.10.0+wasi-snapshot-preview1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
@@ -3005,7 +2817,7 @@ dependencies = [
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
  "wasm-bindgen-shared",
 ]
 
@@ -3039,7 +2851,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.23",
+ "syn 2.0.31",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
@@ -3051,6 +2863,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ca6ad05a4870b2bf5fe995117d3728437bd27d7cd5f06f13c17443ef369775a1"
 
 [[package]]
+name = "wasm-streams"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4609d447824375f43e1ffbc051b50ad8f4b3ae8219680c94452ea05eb240ac7"
+dependencies = [
+ "futures-util",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
 name = "web-sys"
 version = "0.3.64"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3111,9 +2936,9 @@ dependencies = [
 
 [[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",
@@ -3126,90 +2951,76 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.0"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[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 = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[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 = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[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 = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "winnow"
-version = "0.4.7"
+version = "0.5.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca0ace3845f0d96209f0375e6d367e3eb87eb65d27d445bdc9f1843a26f39448"
+checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc"
 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",
 ]
 
 [[package]]
 name = "xdg"
-version = "2.5.0"
+version = "2.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "688597db5a750e9cad4511cb94729a078e274308099a0382b5b8203bbc767fee"
-dependencies = [
- "home",
-]
+checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xml-rs"
-version = "0.8.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a56c84a8ccd4258aed21c92f70c0f6dea75356b6892ae27c24139da456f9336"
-
-[[package]]
-name = "xml5ever"
-version = "0.16.2"
+version = "0.8.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9234163818fd8e2418fcde330655e757900d4236acd8cc70fef345ef91f6d865"
-dependencies = [
- "log",
- "mac",
- "markup5ever 0.10.1",
- "time 0.1.45",
-]
+checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1"
 
 [[package]]
 name = "xml5ever"
@@ -3219,7 +3030,7 @@ checksum = "4034e1d05af98b51ad7214527730626f019682d797ba38b51689212118d8e650"
 dependencies = [
  "log",
  "mac",
- "markup5ever 0.11.0",
+ "markup5ever",
 ]
 
 [[package]]
diff --git a/pkgs/applications/audio/gnome-podcasts/default.nix b/pkgs/applications/audio/gnome-podcasts/default.nix
index 2cbdeaad8c7e2..1d94f2879e371 100644
--- a/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -22,21 +22,18 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-podcasts";
-  version = "0.6.0";
+  version = "0.6.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "podcasts";
     rev = version;
-    hash = "sha256-jnuy2UUPklfOYObSJPSqNhqqrfUP7N80pPmnw0rlB9A=";
+    hash = "sha256-LPwCYgAFgUMFQZ0i4ldiuGYGMMWcMqYct3/o7eTIhmU=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
-    outputHashes = {
-      "gettext-rs-0.4.2" = "sha256-wyZ1bf0oFcQo8gEi2GEalRUoKMoJYHysu79qcfjd4Ng=";
-    };
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix
index 5dacefa2955c9..060f2244f2a93 100644
--- a/pkgs/applications/audio/kid3/default.nix
+++ b/pkgs/applications/audio/kid3/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation (finalAttrs: {
   version = "3.9.4";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/kid3/${finalAttrs.version}/kid3-${finalAttrs.version}.tar.xz";
+    url = "mirror://kde/stable/kid3/${finalAttrs.version}/kid3-${finalAttrs.version}.tar.xz";
     hash = "sha256-xBCWDpYiXeChxIiMPqHG3CyiRau2kUdDJtzcPtvWpSA=";
   };
 
diff --git a/pkgs/applications/audio/spotify/linux.nix b/pkgs/applications/audio/spotify/linux.nix
index 16b3e7bdd5de4..5bbdde57a3240 100644
--- a/pkgs/applications/audio/spotify/linux.nix
+++ b/pkgs/applications/audio/spotify/linux.nix
@@ -14,14 +14,14 @@ let
   # If an update breaks things, one of those might have valuable info:
   # https://aur.archlinux.org/packages/spotify/
   # https://community.spotify.com/t5/Desktop-Linux
-  version = "1.2.22.982.g794acc0a";
+  version = "1.2.25.1011.g0348b2ea";
   # To get the latest stable revision:
   # curl -H 'X-Ubuntu-Series: 16' 'https://api.snapcraft.io/api/v1/snaps/details/spotify?channel=stable' | jq '.download_url,.version,.last_updated'
   # To get general information:
   # curl -H 'Snap-Device-Series: 16' 'https://api.snapcraft.io/v2/snaps/info/spotify' | jq '.'
   # More examples of api usage:
   # https://github.com/canonical-websites/snapcraft.io/blob/master/webapp/publisher/snaps/views.py
-  rev = "70";
+  rev = "73";
 
   deps = [
     alsa-lib
@@ -86,7 +86,7 @@ stdenv.mkDerivation {
   # https://community.spotify.com/t5/Desktop-Linux/Redistribute-Spotify-on-Linux-Distributions/td-p/1695334
   src = fetchurl {
     url = "https://api.snapcraft.io/api/v1/snaps/download/pOBIoZ2LrCB3rDohMxoYGnbN14EHOgD7_${rev}.snap";
-    hash = "sha512-oxDUZqyMLxCbUBb1A+BBznByQ1rZAJcEIkaSUQ93/k1DX3rTaBHzEXmBtJhmN6L8L3fw1pa9GvE7eDaD8+jeGg==";
+    hash = "sha512-93A+0YfP2/HnQOhSMw3UZ374bpS5ccQqb7a+e4RPSKvyT54wcI6hpmRn8CVo02oLo0yI2hho3Bu3ggsJLVgzbw==";
   };
 
   nativeBuildInputs = [ wrapGAppsHook makeShellWrapper squashfsTools ];
diff --git a/pkgs/applications/backup/deja-dup/default.nix b/pkgs/applications/backup/deja-dup/default.nix
index da97e45b63f6b..1980fae8e194e 100644
--- a/pkgs/applications/backup/deja-dup/default.nix
+++ b/pkgs/applications/backup/deja-dup/default.nix
@@ -22,14 +22,14 @@
 
 stdenv.mkDerivation rec {
   pname = "deja-dup";
-  version = "44.2";
+  version = "45.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "deja-dup";
     rev = version;
-    hash = "sha256-TnyH2tIvzG1B2hbDPyFyaTArfuMJaP6GKw6yahwsQ1Q=";
+    hash = "sha256-2vNAppy8fYYcxH3ci4B6bUIl2sO5NC6yA13y9iU4V/A=";
   };
 
   patches = [
diff --git a/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix b/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
index c1007e07b79b7..d49689255b983 100644
--- a/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
+++ b/pkgs/applications/display-managers/lightdm-slick-greeter/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lightdm-slick-greeter";
-  version = "1.8.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "slick-greeter";
     rev = version;
-    sha256 = "sha256-OSL4Ls3bCua5ut8zWodeIH1SfevCbsS7BgBJYdcJaVE=";
+    sha256 = "sha256-2iwH8npCfo4z1K4WQNP2Pd32PJTkCX/rT0+1RTrBO8E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/emacs/make-emacs.nix b/pkgs/applications/editors/emacs/make-emacs.nix
index 5625dfbb3aa9f..c48550f8680a3 100644
--- a/pkgs/applications/editors/emacs/make-emacs.nix
+++ b/pkgs/applications/editors/emacs/make-emacs.nix
@@ -329,15 +329,16 @@ mkDerivation (finalAttrs: {
     "--with-xml2=yes"
   ]
   ++ (lib.optional stdenv.isDarwin (lib.withFeature withNS "ns"))
-  ++ lib.optional (!withToolkitScrollBars) "--without-toolkit-scroll-bars"
-  ++ lib.optional withNativeCompilation "--with-native-compilation"
-  ++ lib.optional withImageMagick "--with-imagemagick"
-  ++ lib.optional withTreeSitter "--with-tree-sitter"
-  ++ lib.optional withXinput2 "--with-xinput2"
-  ++ lib.optional withXwidgets "--with-xwidgets"
-  ++ lib.optional withSmallJaDic "--with-small-ja-dic"
-  ++ lib.optional (!withCompressInstall) "--without-compress-install"
-  ;
+  ++ [
+    (lib.withFeature withCompressInstall "compress-install")
+    (lib.withFeature withToolkitScrollBars "toolkit-scroll-bars")
+    (lib.withFeature withNativeCompilation "native-compilation")
+    (lib.withFeature withImageMagick "imagemagick")
+    (lib.withFeature withSmallJaDic "small-ja-dic")
+    (lib.withFeature withTreeSitter "tree-sitter")
+    (lib.withFeature withXinput2 "xinput2")
+    (lib.withFeature withXwidgets "xwidgets")
+  ];
 
   env = lib.optionalAttrs withNativeCompilation {
     NATIVE_FULL_AOT = "1";
diff --git a/pkgs/applications/editors/greenfoot/default.nix b/pkgs/applications/editors/greenfoot/default.nix
index 6ca6f35246d3e..cc195fbeb1166 100644
--- a/pkgs/applications/editors/greenfoot/default.nix
+++ b/pkgs/applications/editors/greenfoot/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "greenfoot";
-  version = "3.8.1";
+  version = "3.8.2";
 
   src = fetchurl {
     # We use the deb here. First instinct might be to go for the "generic" JAR
     # download, but that is actually a graphical installer that is much harder
     # to unpack than the deb.
     url = "https://www.greenfoot.org/download/files/Greenfoot-linux-${builtins.replaceStrings ["."] [""] version}.deb";
-    sha256 = "sha256-utGSAbP74O1t1iEoN0CwiZVc8HxdCxhozPPMwQCtkEE=";
+    hash = "sha256-wpmgWtx2jTDjt+7p6HcjU/uy1PRmnAHpJ1rOYb+hV+U=";
   };
 
   nativeBuildInputs = [ dpkg wrapGAppsHook ];
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index a2d7f13338a96..2159a60c0323d 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "19";
+  version = "20";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    hash = "sha256-jfcO3WMH0Ir1+VfpZhaRcykTIoTmxA5DK8ZO8orP1Jg=";
+    hash = "sha256-hseSusJiUqdnhIyOBtELProeMjrGdKa22h0VkbML80E=";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix b/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
index c994e53f37ef2..3b2ab09d1b534 100644
--- a/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/vadimcn.vscode-lldb/default.nix
@@ -5,7 +5,7 @@ assert lib.versionAtLeast python3.version "3.5";
 let
   publisher = "vadimcn";
   pname = "vscode-lldb";
-  version = "1.9.2";
+  version = "1.10.0";
 
   vscodeExtUniqueId = "${publisher}.${pname}";
   vscodeExtPublisher = publisher;
@@ -15,7 +15,7 @@ let
     owner = "vadimcn";
     repo = "vscode-lldb";
     rev = "v${version}";
-    hash = "sha256-6QmYRlSv8jY3OE3RcYuZt+c3z6GhFc8ESETVfCfF5RI=";
+    hash = "sha256-ExSS5HxDmJJtYypRYJNz7nY0D50gjoDBc4CnJMfgVw8=";
   };
 
   # need to build a custom version of lldb and llvm for enhanced rust support
@@ -25,7 +25,7 @@ let
     pname = "${pname}-adapter";
     inherit version src;
 
-    cargoHash = "sha256-Qq2igtH1XIB+NAEES6hdNZcMbEmaFN69qIJ+gTYupvQ=";
+    cargoHash = "sha256-e/Jki/4pCs0qzaBVR4iiUhdBFmWlTZYREQkuFSoWYFo=";
 
     nativeBuildInputs = [ makeWrapper ];
 
@@ -84,6 +84,12 @@ in stdenv.mkDerivation {
 
   patches = [ ./cmake-build-extension-only.patch ];
 
+  postPatch = ''
+    # temporary patch for forgotten version updates
+    substituteInPlace CMakeLists.txt \
+      --replace "1.9.2" ${version}
+  '';
+
   postConfigure = ''
     cp -r ${nodeDeps}/lib/node_modules .
   '';
diff --git a/pkgs/applications/emulators/dosbox-x/default.nix b/pkgs/applications/emulators/dosbox-x/default.nix
index 3c0805e270b46..f26a128842221 100644
--- a/pkgs/applications/emulators/dosbox-x/default.nix
+++ b/pkgs/applications/emulators/dosbox-x/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , alsa-lib
 , AudioUnit
 , autoreconfHook
@@ -36,6 +37,21 @@ stdenv.mkDerivation (finalAttrs: {
     hash = "sha256-YNYtYqcpTOx4xS/LXI53h3S+na8JVpn4w8Dhf4fWNBQ=";
   };
 
+  patches = [
+    # 2 patches which fix stack smashing when launching Windows 3.0
+    # Remove when version > 2023.10.06
+    (fetchpatch {
+      name = "0001-dosbox-x-Attempt-to-fix-graphical-palette-issues-added-by-TTF-fix.patch";
+      url = "https://github.com/joncampbell123/dosbox-x/commit/40bf135f70376b5c3944fe2e972bdb7143439bcc.patch";
+      hash = "sha256-9whtqBkivYVYaPObyTODtwcfjaoK+rLqhCNZ7zVoiGI=";
+    })
+    (fetchpatch {
+      name = "0002-dosbox-x-Fix-Sid-Meiers-Civ-crash.patch";
+      url = "https://github.com/joncampbell123/dosbox-x/compare/cdcfb554999572e758b81edf85a007d398626b78..ac91760d9353c301e1da382f93e596238cf6d336.patch";
+      hash = "sha256-G7HbUhYEi6JJklN1z3JiOTnWLuWb27bMDyB/iGwywuY=";
+    })
+  ];
+
   strictDeps = true;
 
   nativeBuildInputs = [
@@ -66,6 +82,9 @@ stdenv.mkDerivation (finalAttrs: {
     Cocoa
   ];
 
+  # Tests for SDL_net.h for modem & IPX support, not automatically picked up due to being in SDL2 subdirectory
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL2_net}/include/SDL2";
+
   configureFlags = [ "--enable-sdl2" ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/emulators/dosbox/default.nix b/pkgs/applications/emulators/dosbox/default.nix
index d0c9d8450e2b4..f17d3a783ba9d 100644
--- a/pkgs/applications/emulators/dosbox/default.nix
+++ b/pkgs/applications/emulators/dosbox/default.nix
@@ -50,6 +50,9 @@ stdenv.mkDerivation rec {
     libGLU
   ]);
 
+  # Tests for SDL_net.h for modem & IPX support, not automatically picked up due to being in SDL subdirectory
+  env.NIX_CFLAGS_COMPILE = "-I${lib.getDev SDL_net}/include/SDL";
+
   hardeningDisable = [ "format" ];
 
   configureFlags = lib.optional stdenv.isDarwin "--disable-sdltest";
diff --git a/pkgs/applications/emulators/yuzu/sources.nix b/pkgs/applications/emulators/yuzu/sources.nix
index 24997cbdcdc40..640bbcd50acd1 100644
--- a/pkgs/applications/emulators/yuzu/sources.nix
+++ b/pkgs/applications/emulators/yuzu/sources.nix
@@ -1,19 +1,19 @@
 # Generated by ./update.sh - do not update manually!
-# Last updated: 2023-11-05
+# Last updated: 2023-12-02
 {
   compatList = {
-    rev = "e9c4e5da6e5e88e889c87582dfd826d204ca8782";
+    rev = "3447075b5b565adcef1de0b47dd32c33f3c52e75";
     hash = "sha256:1hdsza3wf9a0yvj6h55gsl7xqvhafvbz1i8paz9kg7l49b0gnlh1";
   };
 
   mainline = {
-    version = "1611";
-    hash = "sha256:18rrw63j2zjwakbn99wbzprb1rpmlznl6gb09ay9sq8brxy7zjsv";
+    version = "1639";
+    hash = "sha256:10wj8yrk4q3sq0fqj6qqd45sjsv0ch3ldbxayirzv002lqb62jcy";
   };
 
   ea = {
-    version = "3966";
-    distHash = "sha256:1p60455s0h3dwigxm2lxdfgxgv4l2ibwybisja1khcy4i8lgss03";
-    fullHash = "sha256:1jq2bfbv9a6i3dlqsdgmi87rccvks45iyybxwf8p6rxdjqh4bvl2";
+    version = "4003";
+    distHash = "sha256:1sr79h3v2nlkr114d14bry5bkgniw1kqq2bxjlzr5x9hlvavz710";
+    fullHash = "sha256:0kx8f8h6l86prxm0v3fxmff43d6swmcrvzy5vg54b55zvqm1byr1";
   };
 }
diff --git a/pkgs/applications/graphics/krita/default.nix b/pkgs/applications/graphics/krita/default.nix
index e8e6a2cc9f867..67d9774a35a9b 100644
--- a/pkgs/applications/graphics/krita/default.nix
+++ b/pkgs/applications/graphics/krita/default.nix
@@ -1,7 +1,7 @@
-{ callPackage, ... } @ args:
+{ callPackage, ... }:
 
-callPackage ./generic.nix (args // {
+callPackage ./generic.nix {
   version = "5.1.5";
   kde-channel = "stable";
   sha256 = "1lx4x4affkbh47b7w5qvahkkr4db0vcw6h24nykak6gpy2z5wxqw";
-})
+}
diff --git a/pkgs/applications/graphics/krita/generic.nix b/pkgs/applications/graphics/krita/generic.nix
index ba53a94f71076..8bf6e26ab9d2d 100644
--- a/pkgs/applications/graphics/krita/generic.nix
+++ b/pkgs/applications/graphics/krita/generic.nix
@@ -9,7 +9,6 @@
 , version
 , kde-channel
 , sha256
-, callPackage
 }:
 
 mkDerivation rec {
@@ -17,7 +16,7 @@ mkDerivation rec {
   inherit version;
 
   src = fetchurl {
-    url = "https://download.kde.org/${kde-channel}/${pname}/${version}/${pname}-${version}.tar.gz";
+    url = "mirror://kde/${kde-channel}/krita/${version}/krita-${version}.tar.gz";
     inherit sha256;
   };
 
diff --git a/pkgs/applications/misc/binocle/default.nix b/pkgs/applications/misc/binocle/default.nix
index 84d43f5eb9893..02b1b4c7b5d57 100644
--- a/pkgs/applications/misc/binocle/default.nix
+++ b/pkgs/applications/misc/binocle/default.nix
@@ -16,16 +16,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "binocle";
-  version = "0.3.1";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-L4l8Gl7Ok/TWqHjNujPx8Qk3UWebs0SgOQNyBNtpnZo=";
+    sha256 = "sha256-WAk7xIrCRfVofn4w+gP5E3wnSZbXm/6MZWlNmtoLm20=";
   };
 
-  cargoHash = "sha256-9d0MNQ7jEJKpGbjVtl1XBoOBEVNKDgFouSMrcZ7tXNU=";
+  cargoHash = "sha256-ZmY88WcoQiDLSXkBbnE/+jPX713qh6n+nyNXeWWTBKA=";
 
   nativeBuildInputs = [
     makeWrapper
diff --git a/pkgs/applications/misc/clipcat/default.nix b/pkgs/applications/misc/clipcat/default.nix
index bec10a5a55e4c..c7f5c265127f1 100644
--- a/pkgs/applications/misc/clipcat/default.nix
+++ b/pkgs/applications/misc/clipcat/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "clipcat";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "xrelkd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-P/8C+Gfmcuy7DGbH8+y6ZYlRrmV5t9U/uiykZ4bERSU=";
+    hash = "sha256-6L6u8inHkiEz7lp3T0a237z3JQwGDWKXtTBVNIKct64=";
   };
 
-  cargoHash = "sha256-r2J5ysvLl7hKXfW+BIF15vBygUkuwNj222P1AckUu0E=";
+  cargoHash = "sha256-uzIqIGjCZEmChM3uVAnAp7eTIznTLXW/4t+NVoryjtk=";
 
   nativeBuildInputs = [
     protobuf
diff --git a/pkgs/applications/misc/gnome-firmware/default.nix b/pkgs/applications/misc/gnome-firmware/default.nix
index c1cd58a50e47d..defaad0d2c973 100644
--- a/pkgs/applications/misc/gnome-firmware/default.nix
+++ b/pkgs/applications/misc/gnome-firmware/default.nix
@@ -20,14 +20,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-firmware";
-  version = "43.2";
+  version = "45.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "gnome-firmware";
     rev = version;
-    sha256 = "oplypNSj028cVBn+eJxNm5pJltp7Cw5Oto/L39pI0vA=";
+    sha256 = "sha256-KVyxOl7RdL80ZiEyiT+XGa/6Ss2g+5y+LIrR9TSRE+I=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/khard/default.nix b/pkgs/applications/misc/khard/default.nix
index bc779fb9b65f0..0654974eb9390 100644
--- a/pkgs/applications/misc/khard/default.nix
+++ b/pkgs/applications/misc/khard/default.nix
@@ -1,12 +1,12 @@
 { lib, python3, fetchPypi, khard, testers }:
 
 python3.pkgs.buildPythonApplication rec {
-  version = "0.19.0";
+  version = "0.19.1";
   pname = "khard";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5ki+adfz7m0+FbxC9+IXHLn8oeLKLkASuU15lyDATKQ=";
+    sha256 = "sha256-WfMKDaPD2j6wT02+GO5HY5E7aF2Z7IQY/VdKiMSRxJA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/applications/misc/rsibreak/default.nix b/pkgs/applications/misc/rsibreak/default.nix
index 9f765793dc9a3..eb0944fd2a033 100644
--- a/pkgs/applications/misc/rsibreak/default.nix
+++ b/pkgs/applications/misc/rsibreak/default.nix
@@ -4,15 +4,12 @@
   knotifyconfig, kidletime, kwindowsystem, ktextwidgets, kcrash
 }:
 
-let
+mkDerivation rec {
   pname = "rsibreak";
-  version = "0.12";
-  revision = ".13";
-in mkDerivation rec {
-  name = "rsibreak-${version}${revision}";
+  version = "0.12.13";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz";
+    url = "mirror://kde/stable/rsibreak/${version}/rsibreak-${version}.tar.xz";
     sha256 = "N0C+f788fq5yotSC54H2K4WDc6PnGi8Nh/vXL4v0fxo=";
   };
 
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index 4104c40bf0457..b116f566c5cea 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.39.0";
+  version = "0.40.0";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-1i5x05q0Mo3E3ExM9qONRtQCH3nO7pXyNqOaAtz7qYE=";
+    sha256 = "sha256-IDKfW0NCEsgKXpHA7SwkHjMeoGAIYITlDVR/vI/b9hk=";
   };
 
-  vendorHash = "sha256-H/+LORl7Bjy1NshjtWDzj13YCrlQQgtBr4+Rz/rxQkY=";
+  vendorHash = "sha256-JFvC9PReziktHSXbltGkGHjVR8hTM1hPJ0OqrZQXRQM=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/nerdctl/default.nix b/pkgs/applications/networking/cluster/nerdctl/default.nix
index 0d2a26478e7c0..96e6d9eec7d20 100644
--- a/pkgs/applications/networking/cluster/nerdctl/default.nix
+++ b/pkgs/applications/networking/cluster/nerdctl/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "nerdctl";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "containerd";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-PR3vhNfY84vKQaAMKmPPmY7kK3BRxELAC34NfMYXQPk=";
+    hash = "sha256-jjYSvY7NT9G/tcsM+9qHnsL81QKItyVMZZWuD2mpln0=";
   };
 
-  vendorHash = "sha256-qLxUAICm/SGy2iHAbg+12xmId+P335dFyjltYlB45iw=";
+  vendorHash = "sha256-O48QzyQLkt7T9j+CKQG8TcHlmtS+ykoMoCamsEswPjk=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
index 896c2a6c269c1..b7167d261b21d 100644
--- a/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
+++ b/pkgs/applications/networking/mailreaders/evolution/evolution/default.nix
@@ -44,11 +44,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.50.1";
+  version = "3.50.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "5CA240m4Mrkbprxg+Zxkte0AjrDrM7wipU8p9I7r1Zg=";
+    sha256 = "D4M1214mmFRHi01tlHLu2s0Kiev3+0+DdWJDMMqqcSA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch b/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch
new file mode 100644
index 0000000000000..8645e0dbfa7da
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/0001-Fix-flask-2.3-issue.patch
@@ -0,0 +1,25 @@
+From 29b58e29c813d9bf0b31139a19b556614c28638e Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:26:22 +0100
+Subject: [PATCH 1/6] Fix flask 2.3 issue
+
+'Blueprint' object has no attribute 'before_app_first_request'
+---
+ powerdnsadmin/routes/index.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/powerdnsadmin/routes/index.py b/powerdnsadmin/routes/index.py
+index d56ce61..2176bd6 100644
+--- a/powerdnsadmin/routes/index.py
++++ b/powerdnsadmin/routes/index.py
+@@ -46,7 +46,6 @@ index_bp = Blueprint('index',
+                      url_prefix='/')
+ 
+ 
+-@index_bp.before_app_first_request
+ def register_modules():
+     global google
+     global github
+-- 
+2.42.0
+
diff --git a/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch b/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch
new file mode 100644
index 0000000000000..9b442d5f3d7d7
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/0002-Remove-cssrewrite-filter.patch
@@ -0,0 +1,34 @@
+From c60a9658fe2ca429327680fbffb86f609d98c52c Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:27:49 +0100
+Subject: [PATCH 2/6] Remove cssrewrite filter
+
+---
+ powerdnsadmin/assets.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/powerdnsadmin/assets.py b/powerdnsadmin/assets.py
+index d46d431..3c582be 100644
+--- a/powerdnsadmin/assets.py
++++ b/powerdnsadmin/assets.py
+@@ -13,7 +13,7 @@ css_login = Bundle(
+     'node_modules/@fortawesome/fontawesome-free/css/all.css',
+     'node_modules/icheck/skins/square/blue.css',
+     'node_modules/admin-lte/dist/css/adminlte.css',
+-    filters=('rcssmin', 'cssrewrite'),
++    filters=('rcssmin'),
+     output='generated/login.css')
+ 
+ js_login = Bundle(
+@@ -37,7 +37,7 @@ css_main = Bundle(
+     'node_modules/admin-lte/dist/css/adminlte.css',
+     'custom/css/custom.css',
+     'node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker.css',
+-    filters=('rcssmin', 'cssrewrite'),
++    filters=('rcssmin'),
+     output='generated/main.css')
+ 
+ js_main = Bundle(
+-- 
+2.42.0
+
diff --git a/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch b/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch
new file mode 100644
index 0000000000000..c9956ae22f75b
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/0003-Fix-flask-migrate-4.0-compatibility.patch
@@ -0,0 +1,25 @@
+From 8c320a34bcca6dc2c1b423a1445235bf178b653e Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:31:02 +0100
+Subject: [PATCH 3/6] Fix flask-migrate 4.0 compatibility
+
+See https://github.com/PowerDNS-Admin/PowerDNS-Admin/issues/1376
+---
+ migrations/env.py | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/migrations/env.py b/migrations/env.py
+index 4742e14..739d753 100755
+--- a/migrations/env.py
++++ b/migrations/env.py
+@@ -73,7 +73,6 @@ def run_migrations_online():
+     context.configure(connection=connection,
+                       target_metadata=target_metadata,
+                       process_revision_directives=process_revision_directives,
+-                      render_as_batch=config.get_main_option('sqlalchemy.url').startswith('sqlite:'),
+                       **current_app.extensions['migrate'].configure_args)
+ 
+     try:
+-- 
+2.42.0
+
diff --git a/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch b/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch
new file mode 100644
index 0000000000000..b1aaa8c531d17
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/0004-Fix-flask-session-and-powerdns-admin-compatibility.patch
@@ -0,0 +1,26 @@
+From 4b4ac26ef1cbb0b5b2354c251b216498325d0411 Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:31:50 +0100
+Subject: [PATCH 4/6] Fix flask-session and powerdns-admin compatibility
+
+flask-session and powerdns-admin both try to add sqlalchemy to flask.
+Reuse the database for flask-session.
+---
+ powerdnsadmin/__init__.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/powerdnsadmin/__init__.py b/powerdnsadmin/__init__.py
+index d447a00..653af33 100755
+--- a/powerdnsadmin/__init__.py
++++ b/powerdnsadmin/__init__.py
+@@ -60,6 +60,7 @@ def create_app(config=None):
+     if 'SESSION_TYPE' in os.environ:
+         app.config['SESSION_TYPE'] = os.environ.get('SESSION_TYPE')
+ 
++    app.config['SESSION_SQLALCHEMY'] = models.base.db
+     sess = Session(app)
+ 
+     # create sessions table if using sqlalchemy backend
+-- 
+2.42.0
+
diff --git a/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch b/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch
new file mode 100644
index 0000000000000..b6931c25d546c
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/0005-Use-app-context-to-create-routes.patch
@@ -0,0 +1,27 @@
+From 3eb1a408758b68543c73d5214b467c2905fbea2a Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:32:36 +0100
+Subject: [PATCH 5/6] Use app context to create routes
+
+Routes creates session database tables, so it needs a context.
+---
+ powerdnsadmin/__init__.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/powerdnsadmin/__init__.py b/powerdnsadmin/__init__.py
+index 653af33..bc6f7df 100755
+--- a/powerdnsadmin/__init__.py
++++ b/powerdnsadmin/__init__.py
+@@ -73,7 +73,8 @@ def create_app(config=None):
+     # Load app's components
+     assets.init_app(app)
+     models.init_app(app)
+-    routes.init_app(app)
++    with app.app_context():
++        routes.init_app(app)
+     services.init_app(app)
+ 
+     # Register filters
+-- 
+2.42.0
+
diff --git a/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch b/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch
new file mode 100644
index 0000000000000..dd552cc28403d
--- /dev/null
+++ b/pkgs/applications/networking/powerdns-admin/0006-Register-modules-before-starting.patch
@@ -0,0 +1,27 @@
+From 86dcc9f308d2ca65704953f1ff9fe043d743e536 Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:33:45 +0100
+Subject: [PATCH 6/6] Register modules before starting
+
+Fixes flask 2.3: 'Blueprint' object has no attribute 'before_app_first_request'
+---
+ run.py | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/run.py b/run.py
+index 5ffcde3..52e719d 100755
+--- a/run.py
++++ b/run.py
+@@ -1,6 +1,9 @@
+ #!/usr/bin/env python3
+ from powerdnsadmin import create_app
++from .powerdnsadmin.routes.index import register_modules
+ 
+ if __name__ == '__main__':
+     app = create_app()
++    with app.app_context():
++        register_modules()
+     app.run(debug=True, host=app.config.get('BIND_ADDRESS', '127.0.0.1'), port=app.config.get('PORT', '9191'))
+-- 
+2.42.0
+
diff --git a/pkgs/applications/networking/powerdns-admin/default.nix b/pkgs/applications/networking/powerdns-admin/default.nix
index 1e89c1b2cb46b..61a728d983b36 100644
--- a/pkgs/applications/networking/powerdns-admin/default.nix
+++ b/pkgs/applications/networking/powerdns-admin/default.nix
@@ -19,6 +19,10 @@ let
     lima lxml passlib pyasn1 pytimeparse pyyaml jinja2 itsdangerous webcolors werkzeug zipp zxcvbn
   ];
 
+  all_patches = [
+    ./0001-Fix-flask-2.3-issue.patch
+  ];
+
   assets = mkYarnPackage {
     inherit src version;
     packageJSON = ./package.json;
@@ -35,9 +39,9 @@ let
     };
 
     nativeBuildInputs = pythonDeps;
-    patchPhase = ''
-      sed -i -r -e "s|'rcssmin',\s?'cssrewrite'|'rcssmin'|g" powerdnsadmin/assets.py
-    '';
+    patches = all_patches ++ [
+      ./0002-Remove-cssrewrite-filter.patch
+    ];
     buildPhase = ''
       # The build process expects the directory to be writable
       # with node_modules at a specific path
@@ -86,15 +90,15 @@ in stdenv.mkDerivation {
     exec python -m gunicorn.app.wsgiapp "powerdnsadmin:create_app()" "$@"
   '';
 
+  patches = all_patches ++ [
+    ./0003-Fix-flask-migrate-4.0-compatibility.patch
+    ./0004-Fix-flask-session-and-powerdns-admin-compatibility.patch
+    ./0005-Use-app-context-to-create-routes.patch
+    ./0006-Register-modules-before-starting.patch
+  ];
+
   postPatch = ''
     rm -r powerdnsadmin/static powerdnsadmin/assets.py
-    # flask-migrate 4.0 compatibility: https://github.com/PowerDNS-Admin/PowerDNS-Admin/issues/1376
-    substituteInPlace migrations/env.py --replace "render_as_batch=config.get_main_option('sqlalchemy.url').startswith('sqlite:')," ""
-    # flask-session and powerdns-admin both try to add sqlalchemy to flask.
-    # Reuse the database for flask-session
-    substituteInPlace powerdnsadmin/__init__.py --replace "sess = Session(app)" "app.config['SESSION_SQLALCHEMY'] = models.base.db; sess = Session(app)"
-    # Routes creates session database tables, so it needs a context
-    substituteInPlace powerdnsadmin/__init__.py --replace "routes.init_app(app)" "with app.app_context(): routes.init_app(app)"
   '';
 
   installPhase = ''
diff --git a/pkgs/applications/office/skrooge/default.nix b/pkgs/applications/office/skrooge/default.nix
index d070d98d3f555..e59d473a0789c 100644
--- a/pkgs/applications/office/skrooge/default.nix
+++ b/pkgs/applications/office/skrooge/default.nix
@@ -10,7 +10,7 @@ mkDerivation rec {
   version = "2.28.0";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
+    url = "mirror://kde/stable/skrooge/skrooge-${version}.tar.xz";
     sha256 = "sha256-s2SkGMBx7HVpr1NBUJpqji3PTPnw4RqnkakdQVC5ric=";
   };
 
diff --git a/pkgs/applications/radio/gridtracker/default.nix b/pkgs/applications/radio/gridtracker/default.nix
index 49e13f4ab08db..d3a6d104dc26a 100644
--- a/pkgs/applications/radio/gridtracker/default.nix
+++ b/pkgs/applications/radio/gridtracker/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gridtracker";
-  version = "1.23.1112";
+  version = "1.23.1202";
 
   src = fetchFromGitLab {
     owner = "gridtracker.org";
     repo = "gridtracker";
     rev = "v${version}";
-    sha256 = "sha256-0A1/P57RtUExxflr2XayHPEyr28B6UDYY7pVCAJpWX0=";
+    sha256 = "sha256-XrHA+h6qAYyZjp/C7+oS3eAvX0ptD+T4UKFzM2ROBCw=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/pkgs/applications/radio/inspectrum/default.nix b/pkgs/applications/radio/inspectrum/default.nix
index 0f0b89d431656..fa5eda7b783bb 100644
--- a/pkgs/applications/radio/inspectrum/default.nix
+++ b/pkgs/applications/radio/inspectrum/default.nix
@@ -11,13 +11,13 @@
 
 gnuradio3_8Minimal.pkgs.mkDerivation rec {
   pname = "inspectrum";
-  version = "0.2.3";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "miek";
     repo = "inspectrum";
     rev = "v${version}";
-    sha256 = "1x6nyn429pk0f7lqzskrgsbq09mq5787xd4piic95add6n1cc355";
+    sha256 = "sha256-yY2W2hQpj8TIxiQBSbQHq0J16n74OfIwMDxFt3mLZYc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/radio/sdrangel/default.nix b/pkgs/applications/radio/sdrangel/default.nix
index 1a986b6b0d188..fc1e6425c1c48 100644
--- a/pkgs/applications/radio/sdrangel/default.nix
+++ b/pkgs/applications/radio/sdrangel/default.nix
@@ -52,13 +52,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "sdrangel";
-  version = "7.17.0";
+  version = "7.17.1";
 
   src = fetchFromGitHub {
     owner = "f4exb";
     repo = "sdrangel";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-v2ESMFAbsYbZVVIHlGCU01QPDorUZyLiUEhexr6zF5o=";
+    hash = "sha256-TMYFKt4nkNKZdlxszbVM55RMidBBD2HTaYc1OqW9/ck=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/math/labplot/default.nix b/pkgs/applications/science/math/labplot/default.nix
index b790116a58b89..8bb667e1a8fac 100644
--- a/pkgs/applications/science/math/labplot/default.nix
+++ b/pkgs/applications/science/math/labplot/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
   version = "2.10.1";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/labplot/labplot-${version}.tar.xz";
+    url = "mirror://kde/stable/labplot/labplot-${version}.tar.xz";
     sha256 = "sha256-K24YFRfPtuDf/3uJXz6yDHzjWeZzLThUXgdXya6i2u8=";
   };
 
diff --git a/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff b/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff
new file mode 100644
index 0000000000000..2c958c4ce46d1
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/contour/contour-cmakelists.diff
@@ -0,0 +1,20 @@
+diff --git a/src/contour/display/CMakeLists.txt b/src/contour/display/CMakeLists.txt
+index e2e9768c..fc1ea72f 100644
+--- a/src/contour/display/CMakeLists.txt
++++ b/src/contour/display/CMakeLists.txt
+@@ -1,5 +1,5 @@
+ if(CONTOUR_QT_VERSION EQUAL "6")
+-   find_package(Qt6 COMPONENTS Core Gui OpenGLWidgets Widgets REQUIRED)
++   find_package(Qt6 COMPONENTS Core Gui OpenGLWidgets Widgets Multimedia REQUIRED)
+ else()
+    find_package(Qt5 COMPONENTS Gui Widgets REQUIRED)  # apt install qtbase5-dev libqt5gui5
+ endif()
+@@ -31,7 +31,7 @@ endif()
+ target_include_directories(ContourTerminalDisplay PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/../..")
+ target_link_libraries(ContourTerminalDisplay vtrasterizer)
+ if(CONTOUR_QT_VERSION EQUAL "6")
+-    target_link_libraries(ContourTerminalDisplay Qt6::Core Qt6::Gui Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Widgets)
++    target_link_libraries(ContourTerminalDisplay Qt6::Core Qt6::Gui Qt6::OpenGL Qt6::OpenGLWidgets Qt6::Widgets Qt6::Multimedia)
+ else()
+     target_link_libraries(ContourTerminalDisplay Qt5::Gui Qt5::Widgets)
+ endif()
diff --git a/pkgs/applications/terminal-emulators/contour/default.nix b/pkgs/applications/terminal-emulators/contour/default.nix
index a1692dd255a2c..4a50625cc81eb 100644
--- a/pkgs/applications/terminal-emulators/contour/default.nix
+++ b/pkgs/applications/terminal-emulators/contour/default.nix
@@ -1,12 +1,16 @@
 { lib
 , stdenv
-, mkDerivation
 , fetchFromGitHub
+, fetchurl
 , cmake
 , pkg-config
 , freetype
 , fontconfig
-, libGL
+, libunicode
+, libutempter
+, termbench-pro
+, qtmultimedia
+, wrapQtAppsHook
 , pcre
 , boost
 , catch2
@@ -16,50 +20,43 @@
 , yaml-cpp
 , ncurses
 , file
-, darwin
+, utmp
+, sigtool
 , nixosTests
+, installShellFiles
 }:
 
-let
-  # Commits refs come from https://github.com/contour-terminal/contour/blob/master/scripts/install-deps.sh
-  libunicode-src = fetchFromGitHub {
-    owner = "contour-terminal";
-    repo = "libunicode";
-    rev = "c2369b6380df1197476b08d3e2d0e96b6446f776";
-    sha256 = "sha256-kq7GpFCkrJG7F9/YEGz3gMTgYzhp/QB8D5b9wwMaLvQ=";
-  };
-
-  termbench-pro-src = fetchFromGitHub {
-    owner = "contour-terminal";
-    repo = "termbench-pro";
-    rev = "cd571e3cebb7c00de9168126b28852f32fb204ed";
-    sha256 = "sha256-dNtOmBu63LFYfiGjXf34C2tiG8pMmsFT4yK3nBnK9WI=";
-  };
-in
-mkDerivation rec {
+stdenv.mkDerivation (final: {
   pname = "contour";
-  version = "0.3.1.200";
+  version = "0.3.12.262";
 
   src = fetchFromGitHub {
     owner = "contour-terminal";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-TpxVC0GFZD3jGISnDWHKEetgVVpznm5k/Vc2dwVfSG4=";
+    repo = "contour";
+    rev = "v${final.version}";
+    hash = "sha256-4R0NyUtsyr3plYfVPom+EjJ5W0Cb/uuaSB5zyJ0yIB4=";
   };
 
   outputs = [ "out" "terminfo" ];
 
+  # fix missing <QtMultimedia/QAudioSink> on Darwin and codesign the binary
+  patches = [ ./contour-cmakelists.diff ./macos-codesign.diff ];
+
   nativeBuildInputs = [
     cmake
     pkg-config
     ncurses
     file
-  ];
+    wrapQtAppsHook
+    installShellFiles
+  ] ++ lib.optionals stdenv.isDarwin [ sigtool ];
 
   buildInputs = [
     fontconfig
     freetype
-    libGL
+    libunicode
+    termbench-pro
+    qtmultimedia
     pcre
     boost
     catch2
@@ -67,38 +64,37 @@ mkDerivation rec {
     microsoft-gsl
     range-v3
     yaml-cpp
-  ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.libs.utmp ];
-
-  preConfigure = ''
-    mkdir -p _deps/sources
+  ]
+  ++ lib.optionals stdenv.isLinux [ libutempter ]
+  ++ lib.optionals stdenv.isDarwin [ utmp ];
 
-    cat > _deps/sources/CMakeLists.txt <<EOF
-    macro(ContourThirdParties_Embed_libunicode)
-        add_subdirectory(\''${ContourThirdParties_SRCDIR}/libunicode EXCLUDE_FROM_ALL)
-    endmacro()
-    macro(ContourThirdParties_Embed_termbench_pro)
-        add_subdirectory(\''${ContourThirdParties_SRCDIR}/termbench_pro EXCLUDE_FROM_ALL)
-    endmacro()
-    EOF
-
-    ln -s ${libunicode-src} _deps/sources/libunicode
-    ln -s ${termbench-pro-src} _deps/sources/termbench_pro
+  cmakeFlags = [ "-DCONTOUR_QT_VERSION=6" ];
 
+  preConfigure = ''
     # Don't fix Darwin app bundle
     sed -i '/fixup_bundle/d' src/contour/CMakeLists.txt
   '';
 
   postInstall = ''
     mkdir -p $out/nix-support $terminfo/share
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir $out/Applications
+    installShellCompletion --zsh $out/contour.app/Contents/Resources/shell-integration/shell-integration.zsh
+    installShellCompletion --fish $out/contour.app/Contents/Resources/shell-integration/shell-integration.fish
+    cp -r $out/contour.app/Contents/Resources/terminfo $terminfo/share
+    mv $out/contour.app $out/Applications
+    ln -s $out/bin $out/Applications/contour.app/Contents/MacOS
+  '' + lib.optionalString stdenv.isLinux ''
     mv $out/share/terminfo $terminfo/share/
+    installShellCompletion --zsh $out/share/contour/shell-integration/shell-integration.zsh
+    installShellCompletion --fish $out/share/contour/shell-integration/shell-integration.fish
+  '' + ''
     echo "$terminfo" >> $out/nix-support/propagated-user-env-packages
   '';
 
   passthru.tests.test = nixosTests.terminal-emulators.contour;
 
   meta = with lib; {
-    # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/contour.x86_64-darwin
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Modern C++ Terminal Emulator";
     homepage = "https://github.com/contour-terminal/contour";
     changelog = "https://github.com/contour-terminal/contour/raw/v${version}/Changelog.md";
@@ -107,4 +103,4 @@ mkDerivation rec {
     platforms = platforms.unix;
     mainProgram = "contour";
   };
-}
+})
diff --git a/pkgs/applications/terminal-emulators/contour/macos-codesign.diff b/pkgs/applications/terminal-emulators/contour/macos-codesign.diff
new file mode 100644
index 0000000000000..8e449dd0a4939
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/contour/macos-codesign.diff
@@ -0,0 +1,21 @@
+diff --git a/src/contour/CMakeLists.txt b/src/contour/CMakeLists.txt
+index 0eebd585..5d0bc3c0 100644
+--- a/src/contour/CMakeLists.txt
++++ b/src/contour/CMakeLists.txt
+@@ -145,6 +145,16 @@ if(CONTOUR_BUILD_WITH_MIMALLOC)
+     target_link_libraries(contour mimalloc)
+ endif()
+ 
++if(APPLE)
++  add_custom_command(
++    TARGET contour POST_BUILD
++    WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
++    COMMAND codesign --force --sign - contour.app/Contents/MacOS/contour
++    COMMENT "Codesigning macOS bundle executable"
++    VERBATIM
++  )
++endif()
++
+ if(NOT(WIN32))
+     set(terminfo_file "contour.terminfo")
+     set(terminfo_basedir "${CMAKE_CURRENT_BINARY_DIR}/terminfo")
diff --git a/pkgs/applications/video/animdl/default.nix b/pkgs/applications/video/animdl/default.nix
new file mode 100644
index 0000000000000..3f1be6f5833ad
--- /dev/null
+++ b/pkgs/applications/video/animdl/default.nix
@@ -0,0 +1,63 @@
+{ lib,
+  buildPythonApplication,
+  fetchFromGitHub,
+  poetry-core,
+  anchor-kr,
+  anitopy,
+  click,
+  cssselect,
+  httpx,
+  lxml,
+  packaging,
+  pkginfo,
+  pycryptodomex,
+  pyyaml,
+  regex,
+  rich,
+  tqdm,
+  yarl
+}:
+buildPythonApplication {
+  pname = "animdl";
+  version = "1.7.27";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "justfoolingaround";
+    repo = "animdl";
+    # Using the commit hash because upstream does not have releases. https://github.com/justfoolingaround/animdl/issues/277
+    rev = "c7c3b79198e66695e0bbbc576f9d9b788616957f";
+    hash = "sha256-kn6vCCFhJNlruxoO+PTHVIwTf1E5j1aSdBhrFuGzUq4=";
+  };
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+  propagatedBuildInputs = [
+    anchor-kr
+    anitopy
+    click
+    cssselect
+    httpx
+    lxml
+    packaging
+    pkginfo
+    pycryptodomex
+    pyyaml
+    regex
+    rich
+    tqdm
+    yarl
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "A highly efficient, powerful and fast anime scraper";
+    homepage = "https://github.com/justfoolingaround/animdl";
+    license = licenses.gpl3Only;
+    mainProgram = "animdl";
+    maintainers = with maintainers; [ passivelemon ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/video/mpv/scripts/default.nix b/pkgs/applications/video/mpv/scripts/default.nix
index 9d16deb1c5293..fb75464ab98e5 100644
--- a/pkgs/applications/video/mpv/scripts/default.nix
+++ b/pkgs/applications/video/mpv/scripts/default.nix
@@ -15,7 +15,7 @@ in lib.recurseIntoAttrs
     inhibit-gnome = callPackage ./inhibit-gnome.nix { };
     mpris = callPackage ./mpris.nix { };
     mpv-playlistmanager = callPackage ./mpv-playlistmanager.nix { inherit buildLua; };
-    mpv-webm = callPackage ./mpv-webm.nix { };
+    mpv-webm = callPackage ./mpv-webm.nix { inherit buildLua; };
     mpvacious = callPackage ./mpvacious.nix { inherit buildLua; };
     quality-menu = callPackage ./quality-menu.nix { inherit buildLua; };
     simple-mpv-webui = callPackage ./simple-mpv-webui.nix { inherit buildLua; };
diff --git a/pkgs/applications/video/mpv/scripts/mpv-webm.nix b/pkgs/applications/video/mpv/scripts/mpv-webm.nix
index 983003d79d712..b155846750dc9 100644
--- a/pkgs/applications/video/mpv/scripts/mpv-webm.nix
+++ b/pkgs/applications/video/mpv/scripts/mpv-webm.nix
@@ -1,30 +1,28 @@
 { lib
-, stdenvNoCC
+, buildLua
 , fetchFromGitHub
 , luaPackages
+, nix-update-script
 }:
 
-stdenvNoCC.mkDerivation {
+buildLua {
   pname = "mpv-webm";
-  version = "unstable-2023-02-23";
+  version = "unstable-2023-11-18";
 
   src = fetchFromGitHub {
     owner = "ekisu";
     repo = "mpv-webm";
-    rev = "a18375932e39e9b2a40d9c7ab52ea367b41e2558";
-    hash = "sha256-aetkQ1gU/6Yys5FJS/N06ED9tCSvL6BAgUGdNmNmpbU=";
+    rev = "6b5863f68275b3dc91c2507284c039ec8a4cbd97";
+    hash = "sha256-rJamBm6FyxWcJO7VXXOUTO9piWCkPfEVdqGKGeJ/h0c=";
   };
 
+  dontBuild = false;
   nativeBuildInputs = [ luaPackages.moonscript ];
+  scriptPath = "build/webm.lua";
 
-  installPhase = ''
-    runHook preInstall
-    mkdir -p $out/share/mpv/scripts
-    install -m 644 build/webm.lua $out/share/mpv/scripts/
-    runHook postInstall
-  '';
-
-  passthru.scriptName = "webm.lua";
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version=branch" ];
+  };
 
   meta = with lib; {
     description = "Simple WebM maker for mpv, with no external dependencies";
diff --git a/pkgs/applications/window-managers/sway/lock-effects.nix b/pkgs/applications/window-managers/sway/lock-effects.nix
index c3058294ca55c..c5dbf3766f06c 100644
--- a/pkgs/applications/window-managers/sway/lock-effects.nix
+++ b/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swaylock-effects";
-  version = "1.6.11";
+  version = "1.7.0.0";
 
   src = fetchFromGitHub {
     owner = "jirutka";
     repo = "swaylock-effects";
     rev = "v${version}";
-    sha256 = "sha256-MKmWVYssO9HAcP5uqwpy9kDa6/kfZyV2NI7ibozt7Ug=";
+    sha256 = "sha256-cuFM+cbUmGfI1EZu7zOsQUj4rA4Uc4nUXcvIfttf9zE=";
   };
 
   postPatch = ''
diff --git a/pkgs/build-support/add-driver-runpath/default.nix b/pkgs/build-support/add-driver-runpath/default.nix
new file mode 100644
index 0000000000000..08547a4453c5f
--- /dev/null
+++ b/pkgs/build-support/add-driver-runpath/default.nix
@@ -0,0 +1,14 @@
+{ lib, stdenv }:
+
+stdenv.mkDerivation {
+  name = "add-driver-runpath";
+
+  # Named "opengl-driver" for legacy reasons, but it is the path to
+  # hardware drivers installed by NixOS
+  driverLink = "/run/opengl-driver" + lib.optionalString stdenv.isi686 "-32";
+
+  buildCommand = ''
+    mkdir -p $out/nix-support
+    substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook
+  '';
+}
diff --git a/pkgs/build-support/add-driver-runpath/setup-hook.sh b/pkgs/build-support/add-driver-runpath/setup-hook.sh
new file mode 100644
index 0000000000000..86a41a7e25192
--- /dev/null
+++ b/pkgs/build-support/add-driver-runpath/setup-hook.sh
@@ -0,0 +1,29 @@
+# Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found.
+# This is needed to not rely on LD_LIBRARY_PATH which does not work with setuid
+# executables. Fixes https://github.com/NixOS/nixpkgs/issues/22760. It must be run
+# in postFixup because RUNPATH stripping in fixup would undo it. Note that patchelf
+# actually sets RUNPATH not RPATH, which applies only to dependencies of the binary
+# it set on (including for dlopen), so the RUNPATH must indeed be set on these
+# libraries and would not work if set only on executables.
+addDriverRunpath() {
+    local forceRpath=
+
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            --) shift; break;;
+            --force-rpath) shift; forceRpath=1;;
+            --*)
+                echo "addDriverRunpath: ERROR: Invalid command line" \
+                     "argument: $1" >&2
+                return 1;;
+            *) break;;
+        esac
+    done
+
+    for file in "$@"; do
+        if ! isELF "$file"; then continue; fi
+        local origRpath="$(patchelf --print-rpath "$file")"
+        patchelf --set-rpath "@driverLink@/lib:$origRpath" ${forceRpath:+--force-rpath} "$file"
+    done
+}
+
diff --git a/pkgs/build-support/bintools-wrapper/default.nix b/pkgs/build-support/bintools-wrapper/default.nix
index ccd342eaa0d19..dd6032fc52cfa 100644
--- a/pkgs/build-support/bintools-wrapper/default.nix
+++ b/pkgs/build-support/bintools-wrapper/default.nix
@@ -301,12 +301,6 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" relro bindnow"
     ''
 
-    + optionalString (libc != null && targetPlatform.isAvr) ''
-      for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
-        echo "-L${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-cflags
-      done
-    ''
-
     + optionalString stdenv.targetPlatform.isDarwin ''
       echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/libc-ldflags
     ''
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 8ac11436c5f7b..539c29a0a7743 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -649,12 +649,6 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" stackprotector"
     ''
 
-    + optionalString (libc != null && targetPlatform.isAvr) ''
-      for isa in avr5 avr3 avr4 avr6 avr25 avr31 avr35 avr51 avrxmega2 avrxmega4 avrxmega5 avrxmega6 avrxmega7 tiny-stack; do
-        echo "-B${getLib libc}/avr/lib/$isa" >> $out/nix-support/libc-crt1-cflags
-      done
-    ''
-
     + optionalString stdenv.targetPlatform.isDarwin ''
         echo "-arch ${targetPlatform.darwinArch}" >> $out/nix-support/cc-cflags
     ''
diff --git a/pkgs/build-support/node/fetch-npm-deps/Cargo.lock b/pkgs/build-support/node/fetch-npm-deps/Cargo.lock
index 4f6e177fd9aef..8ba72a7b76c49 100644
--- a/pkgs/build-support/node/fetch-npm-deps/Cargo.lock
+++ b/pkgs/build-support/node/fetch-npm-deps/Cargo.lock
@@ -47,9 +47,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.21.4"
+version = "0.21.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2"
+checksum = "35636a1494ede3b646cc98f74f8e62c773a38a659ebc777a2cf26b9b74171df9"
 
 [[package]]
 name = "bitflags"
@@ -59,9 +59,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "block-buffer"
@@ -110,9 +110,9 @@ dependencies = [
 
 [[package]]
 name = "cpufeatures"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"
+checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
 dependencies = [
  "libc",
 ]
@@ -177,9 +177,9 @@ dependencies = [
 
 [[package]]
 name = "curl-sys"
-version = "0.4.67+curl-8.3.0"
+version = "0.4.68+curl-8.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cc35d066510b197a0f72de863736641539957628c8a42e70e27c66849e77c34"
+checksum = "b4a0d18d88360e374b16b2273c832b5e57258ffc1d4aa4f96b108e0738d5752f"
 dependencies = [
  "cc",
  "libc",
@@ -208,9 +208,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07"
 
 [[package]]
 name = "env_logger"
-version = "0.10.0"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+checksum = "95b3f3e67048839cb0d0781f445682a35113da7121f7c949db0e2be96a4fbece"
 dependencies = [
  "humantime",
  "is-terminal",
@@ -221,9 +221,9 @@ dependencies = [
 
 [[package]]
 name = "errno"
-version = "0.3.5"
+version = "0.3.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3e13f66a2f95e32a39eaa81f6b95d42878ca0e1db0c7543723dfe12557e860"
+checksum = "f258a7194e7f7c2a7837a8913aeab7fd8c383457034fa20ce4dd3dcb813e8eb8"
 dependencies = [
  "libc",
  "windows-sys",
@@ -267,15 +267,15 @@ dependencies = [
 
 [[package]]
 name = "futures-core"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c"
+checksum = "eb1d22c66e66d9d72e1758f0bd7d4fd0bee04cad842ee34587d68c07e45d088c"
 
 [[package]]
 name = "futures-io"
-version = "0.3.28"
+version = "0.3.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964"
+checksum = "8bf34a163b5c4c52d0478a4d757da8fb65cabef42ba90515efee0f6f9fa45aaa"
 
 [[package]]
 name = "futures-lite"
@@ -304,9 +304,9 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.10"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be4136b2a15dd319360be1c07d9933517ccf0be8f16bf62a3bee4f0d618df427"
+checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
 dependencies = [
  "cfg-if",
  "libc",
@@ -321,9 +321,9 @@ checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7"
 
 [[package]]
 name = "http"
-version = "0.2.9"
+version = "0.2.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482"
+checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb"
 dependencies = [
  "bytes",
  "fnv",
@@ -399,9 +399,9 @@ checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"
 
 [[package]]
 name = "libc"
-version = "0.2.149"
+version = "0.2.150"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a08173bc88b7955d1b3145aa561539096c421ac8debde8cbc3612ec635fee29b"
+checksum = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
 
 [[package]]
 name = "libz-sys"
@@ -417,9 +417,9 @@ dependencies = [
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.4.10"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da2479e8c062e40bf0066ffa0bc823de0a9368974af99c9f6df941d2c231e03f"
+checksum = "969488b55f8ac402214f3f5fd243ebb7206cf82de60d3172994707a4bcc2b829"
 
 [[package]]
 name = "log"
@@ -456,9 +456,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.93"
+version = "0.9.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d"
+checksum = "40a4130519a360279579c2053038317e40eff64d13fd3f004f9e1b72b8a6aaf9"
 dependencies = [
  "cc",
  "libc",
@@ -468,9 +468,9 @@ dependencies = [
 
 [[package]]
 name = "parking"
-version = "2.1.1"
+version = "2.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e52c774a4c39359c1d1c52e43f73dd91a75a614652c825408eec30c95a9b2067"
+checksum = "bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae"
 
 [[package]]
 name = "percent-encoding"
@@ -542,6 +542,7 @@ dependencies = [
  "digest",
  "env_logger",
  "isahc",
+ "log",
  "rayon",
  "serde",
  "serde_json",
@@ -622,18 +623,18 @@ dependencies = [
 
 [[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.6"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -643,9 +644,9 @@ dependencies = [
 
 [[package]]
 name = "regex-automata"
-version = "0.3.9"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -654,17 +655,17 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustix"
-version = "0.38.18"
+version = "0.38.25"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a74ee2d7c2581cd139b42447d7d9389b889bdaad3a73f1ebb16f2a3237bb19c"
+checksum = "dc99bc2d4f1fed22595588a013687477aedf3cdcfb26558c559edb67b4d9b22e"
 dependencies = [
- "bitflags 2.4.0",
+ "bitflags 2.4.1",
  "errno",
  "libc",
  "linux-raw-sys",
@@ -703,18 +704,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e"
+checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.188"
+version = "1.0.193"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2"
+checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -723,9 +724,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.107"
+version = "1.0.108"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65"
+checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b"
 dependencies = [
  "itoa",
  "ryu",
@@ -776,9 +777,9 @@ dependencies = [
 
 [[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",
@@ -786,9 +787,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.38"
+version = "2.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96b79aaa137db8f61e26363a0c9b47d8b4ec75da28b7d1d614c2303e232408b"
+checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -797,9 +798,9 @@ dependencies = [
 
 [[package]]
 name = "tempfile"
-version = "3.8.0"
+version = "3.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cb94d2f3cc536af71caac6b6fcebf65860b347e7ce0cc9ebe8f70d3e521054ef"
+checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5"
 dependencies = [
  "cfg-if",
  "fastrand 2.0.1",
@@ -810,9 +811,9 @@ dependencies = [
 
 [[package]]
 name = "termcolor"
-version = "1.3.0"
+version = "1.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64"
+checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449"
 dependencies = [
  "winapi-util",
 ]
@@ -834,11 +835,10 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
 
 [[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",
@@ -847,9 +847,9 @@ 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",
@@ -858,9 +858,9 @@ dependencies = [
 
 [[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",
 ]
diff --git a/pkgs/build-support/node/fetch-npm-deps/Cargo.toml b/pkgs/build-support/node/fetch-npm-deps/Cargo.toml
index 0f7735a6e8270..ea121c510c95b 100644
--- a/pkgs/build-support/node/fetch-npm-deps/Cargo.toml
+++ b/pkgs/build-support/node/fetch-npm-deps/Cargo.toml
@@ -8,15 +8,16 @@ edition = "2021"
 [dependencies]
 anyhow = "1.0.75"
 backoff = "0.4.0"
-base64 = "0.21.4"
+base64 = "0.21.5"
 digest = "0.10.7"
-env_logger = "0.10.0"
+env_logger = "0.10.1"
 isahc = { version = "1.7.2", default_features = false }
+log = "0.4.20"
 rayon = "1.8.0"
-serde = { version = "1.0.188", features = ["derive"] }
-serde_json = "1.0.107"
+serde = { version = "1.0.193", features = ["derive"] }
+serde_json = "1.0.108"
 sha1 = "0.10.6"
 sha2 = "0.10.8"
-tempfile = "3.8.0"
+tempfile = "3.8.1"
 url = { version = "2.4.1", features = ["serde"] }
 walkdir = "2.4.0"
diff --git a/pkgs/build-support/node/fetch-npm-deps/default.nix b/pkgs/build-support/node/fetch-npm-deps/default.nix
index cfa3366491f26..725f9ba3bb017 100644
--- a/pkgs/build-support/node/fetch-npm-deps/default.nix
+++ b/pkgs/build-support/node/fetch-npm-deps/default.nix
@@ -125,6 +125,18 @@
 
           forceGitDeps = true;
         };
+
+        # This package has a lockfile v1 git dependency with no `dependencies` attribute, since it sementically has no dependencies.
+        jitsiMeet9111 = makeTest {
+          name = "jitsi-meet-9111";
+
+          src = fetchurl {
+            url = "https://raw.githubusercontent.com/jitsi/jitsi-meet/stable/jitsi-meet_9111/package-lock.json";
+            hash = "sha256-NU+eQD4WZ4BMur8uX79uk8wUPsZvIT02KhPWHTmaihk=";
+          };
+
+          hash = "sha256-FhxlJ0HdJMPiWe7+n1HaGLWOr/2HJEPwiS65uqXZM8Y=";
+        };
       };
 
     meta = with lib; {
diff --git a/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs b/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
index 75133b1b03ea5..c49c094b85c68 100644
--- a/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
+++ b/pkgs/build-support/node/fetch-npm-deps/src/cacache.rs
@@ -4,6 +4,7 @@ use serde::{Deserialize, Serialize};
 use sha1::Sha1;
 use sha2::{Sha256, Sha512};
 use std::{
+    fmt::Write as FmtWrite,
     fs::{self, File},
     io::Write,
     path::PathBuf,
@@ -78,10 +79,10 @@ impl Cache {
 
             push_hash_segments(
                 &mut p,
-                &hash
-                    .into_iter()
-                    .map(|n| format!("{n:02x}"))
-                    .collect::<String>(),
+                &hash.into_iter().fold(String::new(), |mut out, n| {
+                    let _ = write!(out, "{n:02x}");
+                    out
+                }),
             );
 
             p
diff --git a/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs b/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
index f50a31651d0ee..e3580cfca0d37 100644
--- a/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
+++ b/pkgs/build-support/node/fetch-npm-deps/src/parse/lock.rs
@@ -18,23 +18,20 @@ pub(super) fn packages(content: &str) -> anyhow::Result<Vec<Package>> {
         1 => {
             let initial_url = get_initial_url()?;
 
-            lockfile
-                .dependencies
-                .map(|p| to_new_packages(p, &initial_url))
-                .transpose()?
+            to_new_packages(lockfile.dependencies.unwrap_or_default(), &initial_url)?
         }
-        2 | 3 => lockfile.packages.map(|pkgs| {
-            pkgs.into_iter()
-                .filter(|(n, p)| !n.is_empty() && matches!(p.resolved, Some(UrlOrString::Url(_))))
-                .map(|(n, p)| Package { name: Some(n), ..p })
-                .collect()
-        }),
+        2 | 3 => lockfile
+            .packages
+            .unwrap_or_default()
+            .into_iter()
+            .filter(|(n, p)| !n.is_empty() && matches!(p.resolved, Some(UrlOrString::Url(_))))
+            .map(|(n, p)| Package { name: Some(n), ..p })
+            .collect(),
         _ => bail!(
             "We don't support lockfile version {}, please file an issue.",
             lockfile.version
         ),
-    }
-    .expect("lockfile should have packages");
+    };
 
     packages.par_sort_by(|x, y| {
         x.resolved
@@ -182,6 +179,7 @@ impl fmt::Display for Hash {
     }
 }
 
+#[allow(clippy::incorrect_partial_ord_impl_on_ord_type)]
 impl PartialOrd for Hash {
     fn partial_cmp(&self, other: &Hash) -> Option<Ordering> {
         let lhs = self.0.split_once('-')?.0;
diff --git a/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs b/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
index 880a972e80e97..0bca33f039152 100644
--- a/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
+++ b/pkgs/build-support/node/fetch-npm-deps/src/parse/mod.rs
@@ -1,5 +1,6 @@
 use anyhow::{anyhow, bail, Context};
 use lock::UrlOrString;
+use log::{debug, info};
 use rayon::prelude::*;
 use serde_json::{Map, Value};
 use std::{
@@ -19,6 +20,8 @@ pub fn lockfile(
     force_git_deps: bool,
     force_empty_cache: bool,
 ) -> anyhow::Result<Vec<Package>> {
+    debug!("parsing lockfile with contents:\n{content}");
+
     let mut packages = lock::packages(content)
         .context("failed to extract packages from lockfile")?
         .into_par_iter()
@@ -46,6 +49,8 @@ pub fn lockfile(
 
         let path = dir.path().join("package");
 
+        info!("recursively parsing lockfile for {} at {path:?}", pkg.name);
+
         let lockfile_contents = fs::read_to_string(path.join("package-lock.json"));
 
         let package_json_path = path.join("package.json");
diff --git a/pkgs/build-support/trivial-builders/default.nix b/pkgs/build-support/trivial-builders/default.nix
index 744c7807f4634..0b9f696d1cb80 100644
--- a/pkgs/build-support/trivial-builders/default.nix
+++ b/pkgs/build-support/trivial-builders/default.nix
@@ -631,6 +631,19 @@ rec {
     let mkEntryFromDrv = drv: { name = drv.name; path = drv; };
     in linkFarm name (map mkEntryFromDrv drvs);
 
+  /*
+    Produce a derivation that links to the target derivation's `/bin`,
+    and *only* `/bin`.
+
+    This is useful when your favourite package doesn't have a separate
+    bin output and other contents of the package's output (e.g. setup
+    hooks) cause trouble when used in your environment.
+  */
+  onlyBin = drv: runCommand "${drv.name}-only-bin" {} ''
+    mkdir -p $out
+    ln -s ${lib.getBin drv}/bin $out/bin
+  '';
+
 
   # docs in doc/builders/special/makesetuphook.section.md
   makeSetupHook =
diff --git a/pkgs/by-name/ab/aba/package.nix b/pkgs/by-name/ab/aba/package.nix
index 14a32c61375d5..6cf7ec2544bc0 100644
--- a/pkgs/by-name/ab/aba/package.nix
+++ b/pkgs/by-name/ab/aba/package.nix
@@ -6,7 +6,7 @@
 , scdoc
 }:
 let
-  version = "0.7.1";
+  version = "0.8.0";
 in
 rustPlatform.buildRustPackage {
   pname = "aba";
@@ -16,11 +16,10 @@ rustPlatform.buildRustPackage {
     owner = "~onemoresuza";
     repo = "aba";
     rev = version;
-    hash = "sha256-Sz9I1Dw7wmoUPpTBNfbYbehfNO8FK6r/ubofx+FGb04=";
-    domain = "sr.ht";
+    hash = "sha256-2zVQNchL4DFh2v2/kwupJTBSmXiKqlxzUMrP9TbfCMs=";
   };
 
-  cargoSha256 = "sha256-Ihoh+yp12qN74JHvJbEDoYz+eoMwPOQar+yBEy+bqb0=";
+  cargoHash = "sha256-YhSzbfcEIJjKWlyYq1lK70qt4f/Z71n7hgaaZ/D/U80=";
 
   nativeBuildInputs = [
     just
@@ -28,9 +27,8 @@ rustPlatform.buildRustPackage {
   ];
 
   postPatch = ''
-    # Suppress messages of command not found. jq is not needed for the build, but just calls it anyway.
-    sed -i '/[[:space:]]*|[[:space:]]*jq -r/s/jq -r .*/: \\/' ./justfile
-    # Let only nix strip the binary by disabling cargo's `strip = true`, like buildRustPackage does.
+    # Let only nix strip the binary by disabling cargo's `strip = true`, like
+    # buildRustPackage does when not using just's setup hooks.
     sed -i '/strip[[:space:]]*=[[:space:]]*true/s/true/false/' ./Cargo.toml
   '';
 
@@ -38,7 +36,7 @@ rustPlatform.buildRustPackage {
     justFlagsArray+=(
       PREFIX=${builtins.placeholder "out"}
       MANIFEST_OPTS="--frozen --locked --profile=release"
-      INSTALL_OPTS=--no-track
+      INSTALL_OPTS="--no-track"
     )
   '';
 
diff --git a/pkgs/by-name/bn/bngblaster/package.nix b/pkgs/by-name/bn/bngblaster/package.nix
new file mode 100644
index 0000000000000..6149a049131f3
--- /dev/null
+++ b/pkgs/by-name/bn/bngblaster/package.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, cmocka
+, libdict
+, ncurses
+, jansson
+, openssl
+, libpcap
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "bngblaster";
+  version = "0.8.29";
+
+  src = fetchFromGitHub {
+    owner = "rtbrick";
+    repo = "bngblaster";
+    rev = finalAttrs.version;
+    hash = "sha256-yuWSGN7wLRksNjgr7c5GiC9JTN4T1PJV4Js1ZOGBKqA=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    libdict
+    ncurses
+    jansson
+    openssl
+    cmocka
+  ] ++ lib.optionals finalAttrs.doCheck [
+    libpcap
+  ];
+
+  cmakeFlags = [
+    "-DBNGBLASTER_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}"
+    "-DBNGBLASTER_VERSION=${finalAttrs.version}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/rtbrick/bngblaster/";
+    changelog = "https://github.com/rtbrick/bngblaster/releases/tag/${finalAttrs.version}";
+    description = "network tester for access and routing protocols";
+    license = licenses.bsd3;
+    maintainers = teams.wdz.members;
+    badPlatforms = platforms.darwin;
+  };
+})
diff --git a/pkgs/by-name/fl/flarectl/package.nix b/pkgs/by-name/fl/flarectl/package.nix
index 4fbec1a01ab3b..c59976c694c37 100644
--- a/pkgs/by-name/fl/flarectl/package.nix
+++ b/pkgs/by-name/fl/flarectl/package.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "flarectl";
-  version = "0.80.0";
+  version = "0.82.0";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cloudflare-go";
     rev = "v${version}";
-    hash = "sha256-Dks5tF+mHVmtj8Uh8eK50ZPZTW8p65Da08EHUnLfF7g=";
+    hash = "sha256-GWxtbPCo0t0HXCiLJEVtuJPiY8Ahlij8zaMwe67zjqU=";
   };
 
-  vendorHash = "sha256-gQxHJNPLVcnilMIv4drDCcQ8QJCyuZ6vejsuo0elIPw=";
+  vendorHash = "sha256-VGePv/RzX1t5+Ftp3iTKYxm3mN6rr+Kdav4jRIKim9E=";
 
   subPackages = [ "cmd/flarectl" ];
 
diff --git a/pkgs/by-name/fr/framework-system-tools/Cargo.lock b/pkgs/by-name/fr/framework-system-tools/Cargo.lock
new file mode 100644
index 0000000000000..f887187a7c75c
--- /dev/null
+++ b/pkgs/by-name/fr/framework-system-tools/Cargo.lock
@@ -0,0 +1,1312 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+
+[[package]]
+name = "bit_field"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcb6dd1c2376d2e096796e234a70e17e94cc2d5d54ff8ce42b28cef1d0d359a4"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "built"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b9c056b9ed43aee5e064b683aa1ec783e19c6acec7559e3ae931b7490472fbe"
+dependencies = [
+ "cargo-lock",
+ "chrono",
+ "git2",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8"
+
+[[package]]
+name = "cargo-lock"
+version = "8.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "031718ddb8f78aa5def78a09e90defe30151d1f6c672f937af4dd916429ed996"
+dependencies = [
+ "semver",
+ "serde",
+ "toml",
+ "url",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.79"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+dependencies = [
+ "jobserver",
+]
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "chrono"
+version = "0.4.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b"
+dependencies = [
+ "iana-time-zone",
+ "num-integer",
+ "num-traits",
+ "winapi",
+]
+
+[[package]]
+name = "clap"
+version = "4.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39"
+dependencies = [
+ "bitflags",
+ "clap_derive",
+ "clap_lex",
+ "is-terminal",
+ "once_cell",
+ "strsim",
+ "termcolor",
+]
+
+[[package]]
+name = "clap-verbosity-flag"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1eef05769009513df2eb1c3b4613e7fad873a14c600ff025b08f250f59fee7de"
+dependencies = [
+ "clap",
+ "log",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.0.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8"
+dependencies = [
+ "os_str_bytes",
+]
+
+[[package]]
+name = "codespan-reporting"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
+dependencies = [
+ "termcolor",
+ "unicode-width",
+]
+
+[[package]]
+name = "convert_case"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
+
+[[package]]
+name = "core-foundation"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
+dependencies = [
+ "core-foundation-sys 0.6.2",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa"
+
+[[package]]
+name = "cxx"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93"
+dependencies = [
+ "cc",
+ "cxxbridge-flags",
+ "cxxbridge-macro",
+ "link-cplusplus",
+]
+
+[[package]]
+name = "cxx-build"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b"
+dependencies = [
+ "cc",
+ "codespan-reporting",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "scratch",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "cxxbridge-flags"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb"
+
+[[package]]
+name = "cxxbridge-macro"
+version = "1.0.94"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
+dependencies = [
+ "humantime",
+ "is-terminal",
+ "log",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "errno"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
+dependencies = [
+ "errno-dragonfly",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "errno-dragonfly"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "form_urlencoded"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "framework_lib"
+version = "0.1.0"
+dependencies = [
+ "built",
+ "clap",
+ "clap-verbosity-flag",
+ "env_logger",
+ "guid_macros",
+ "hidapi",
+ "lazy_static",
+ "libc",
+ "log",
+ "nix",
+ "no-std-compat",
+ "num",
+ "num-derive",
+ "num-traits",
+ "plain",
+ "redox_hwio",
+ "regex",
+ "rusb",
+ "smbios-lib",
+ "spin 0.9.4",
+ "uefi",
+ "uefi-services",
+ "windows 0.42.0",
+]
+
+[[package]]
+name = "framework_tool"
+version = "0.1.0"
+dependencies = [
+ "framework_lib",
+]
+
+[[package]]
+name = "framework_uefi"
+version = "0.1.0"
+dependencies = [
+ "framework_lib",
+ "log",
+ "uefi",
+ "uefi-services",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "git2"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2994bee4a3a6a51eb90c218523be382fd7ea09b16380b9312e9dbe955ff7c7d1"
+dependencies = [
+ "bitflags",
+ "libc",
+ "libgit2-sys",
+ "log",
+ "url",
+]
+
+[[package]]
+name = "guid_macros"
+version = "0.11.0"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.13",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
+
+[[package]]
+name = "hermit-abi"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "hidapi"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a090a12b53564bcb2f6053b8be08d5f9e7b91f26953d6e8e08c9affd8aeb4ec9"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "winapi",
+]
+
+[[package]]
+name = "humantime"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4"
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys 0.8.4",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows 0.48.0",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
+dependencies = [
+ "cxx",
+ "cxx-build",
+]
+
+[[package]]
+name = "idna"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "io-kit-sys"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f21dcc74995dd4cd090b147e79789f8d65959cbfb5f0b118002db869ea3bd0a0"
+dependencies = [
+ "core-foundation-sys 0.6.2",
+ "mach 0.2.3",
+]
+
+[[package]]
+name = "io-lifetimes"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c"
+dependencies = [
+ "libc",
+ "windows-sys",
+]
+
+[[package]]
+name = "is-terminal"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
+dependencies = [
+ "hermit-abi",
+ "io-lifetimes",
+ "rustix",
+ "windows-sys",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
+
+[[package]]
+name = "jobserver"
+version = "0.1.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+dependencies = [
+ "spin 0.5.2",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.139"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
+
+[[package]]
+name = "libgit2-sys"
+version = "0.14.2+1.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f3d95f6b51075fe9810a7ae22c7095f12b98005ab364d8544797a825ce946a4"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "pkg-config",
+]
+
+[[package]]
+name = "libusb1-sys"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9d0e2afce4245f2c9a418511e5af8718bcaf2fa408aefb259504d1a9cb25f27"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "libz-sys"
+version = "1.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "link-cplusplus"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+
+[[package]]
+name = "lock_api"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "mach"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86dd2487cdfea56def77b88438a2c915fb45113c5319bfe7e14306ca4cd0b0e1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "mach"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "memchr"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+
+[[package]]
+name = "memoffset"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "nix"
+version = "0.25.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4"
+dependencies = [
+ "autocfg",
+ "bitflags",
+ "cfg-if",
+ "libc",
+ "memoffset",
+ "pin-utils",
+]
+
+[[package]]
+name = "no-std-compat"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c"
+
+[[package]]
+name = "num"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606"
+dependencies = [
+ "num-complex",
+ "num-integer",
+ "num-iter",
+ "num-rational",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-derive"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "num-integer"
+version = "0.1.45"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+dependencies = [
+ "autocfg",
+ "num-traits",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
+dependencies = [
+ "autocfg",
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86f0b0d4bf799edbc74508c1e8bf170ff5f41238e5f8225603ca7caaae2b7860"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
+
+[[package]]
+name = "percent-encoding"
+version = "2.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160"
+
+[[package]]
+name = "plain"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "version_check",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.56"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "ptr_meta"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bcada80daa06c42ed5f48c9a043865edea5dc44cbf9ac009fda3b89526e28607"
+dependencies = [
+ "ptr_meta_derive",
+]
+
+[[package]]
+name = "ptr_meta_derive"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bca9224df2e20e7c5548aeb5f110a0f3b77ef05f8585139b7148b59056168ed2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "redox_hwio"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8eb516ad341a84372b5b15a5a35cf136ba901a639c8536f521b108253d7fce74"
+
+[[package]]
+name = "regex"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.28"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
+
+[[package]]
+name = "rusb"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703aa035c21c589b34fb5136b12e68fc8dcf7ea46486861381361dd8ebf5cee0"
+dependencies = [
+ "libc",
+ "libusb1-sys",
+]
+
+[[package]]
+name = "rustc_version"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.36.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3807b5d10909833d3e9acd1eb5fb988f79376ff10fce42937de71a449c4c588"
+dependencies = [
+ "bitflags",
+ "errno",
+ "io-lifetimes",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys",
+]
+
+[[package]]
+name = "ryu"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "scratch"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1"
+
+[[package]]
+name = "semver"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde"
+version = "1.0.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97fed41fc1a24994d044e6db6935e69511a1153b52c15eb42493b26fa87feba0"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.151"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "255abe9a125a985c05190d687b320c12f9b1f0b99445e608c21ba0782c719ad8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.91"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "smbios-lib"
+version = "0.9.1"
+source = "git+https://github.com/FrameworkComputer/smbios-lib.git?branch=no-std#b3e2fff8a6f4b8c2d729467cbbf0c8c41974cd1c"
+dependencies = [
+ "core-foundation",
+ "core-foundation-sys 0.6.2",
+ "getopts",
+ "io-kit-sys",
+ "libc",
+ "mach 0.3.2",
+ "no-std-compat",
+ "serde",
+ "serde_json",
+]
+
+[[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.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09"
+dependencies = [
+ "lock_api",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "syn"
+version = "1.0.107"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c9da457c5285ac1f936ebd076af6dac17a61cfe7826f2076b4d015cf47bc8ec"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.5.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "ucs2"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bad643914094137d475641b6bab89462505316ec2ce70907ad20102d28a79ab8"
+dependencies = [
+ "bit_field",
+]
+
+[[package]]
+name = "uefi"
+version = "0.20.0"
+source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#76130a0f1c1585012e598b8c514526bac09c68e0"
+dependencies = [
+ "bitflags",
+ "derive_more",
+ "log",
+ "ptr_meta",
+ "ucs2",
+ "uefi-macros",
+]
+
+[[package]]
+name = "uefi-macros"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0caeb0e7b31b9f1f347e541106be10aa8c66c76fa722a3298a4cd21433fabd4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+]
+
+[[package]]
+name = "uefi-services"
+version = "0.17.0"
+source = "git+https://github.com/FrameworkComputer/uefi-rs?branch=merged#76130a0f1c1585012e598b8c514526bac09c68e0"
+dependencies = [
+ "cfg-if",
+ "log",
+ "uefi",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+
+[[package]]
+name = "url"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
+
+[[package]]
+name = "version_check"
+version = "0.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.107",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.84"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0286ba339aa753e70765d521bb0242cc48e1194562bfa2a2ad7ac8a6de28f5d5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.0",
+ "windows_aarch64_msvc 0.42.0",
+ "windows_i686_gnu 0.42.0",
+ "windows_i686_msvc 0.42.0",
+ "windows_x86_64_gnu 0.42.0",
+ "windows_x86_64_gnullvm 0.42.0",
+ "windows_x86_64_msvc 0.42.0",
+]
+
+[[package]]
+name = "windows"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f"
+dependencies = [
+ "windows-targets",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
+dependencies = [
+ "windows_aarch64_gnullvm 0.42.0",
+ "windows_aarch64_msvc 0.42.0",
+ "windows_i686_gnu 0.42.0",
+ "windows_i686_msvc 0.42.0",
+ "windows_x86_64_gnu 0.42.0",
+ "windows_x86_64_gnullvm 0.42.0",
+ "windows_x86_64_msvc 0.42.0",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.0",
+ "windows_aarch64_msvc 0.48.0",
+ "windows_i686_gnu 0.48.0",
+ "windows_i686_msvc 0.48.0",
+ "windows_x86_64_gnu 0.48.0",
+ "windows_x86_64_gnullvm 0.48.0",
+ "windows_x86_64_msvc 0.48.0",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.42.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
diff --git a/pkgs/by-name/fr/framework-system-tools/package.nix b/pkgs/by-name/fr/framework-system-tools/package.nix
new file mode 100644
index 0000000000000..fa225f574a99d
--- /dev/null
+++ b/pkgs/by-name/fr/framework-system-tools/package.nix
@@ -0,0 +1,45 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, udev
+}:
+
+let
+  rev = "491a587342a5d79366a25d803b7065169314279c";
+in rustPlatform.buildRustPackage {
+  pname = "framework-system-tools";
+  version = "unstable-2023-11-14";
+
+  src = fetchFromGitHub {
+    owner = "FrameworkComputer";
+    repo = "framework-system";
+    inherit rev;
+    hash = "sha256-qDtW4DvY19enCfkOBRaako9ngAkmSreoNWlL4QE2FAk=";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    udev
+  ];
+
+  cargoLock = {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "smbios-lib-0.9.1" = "sha256-3L8JaA75j9Aaqg1z9lVs61m6CvXDeQprEFRq+UDCHQo=";
+      "uefi-0.20.0" = "sha256-/3WNHuc27N89M7s+WT64SHyFOp7YRyzz6B+neh1vejY=";
+    };
+  };
+
+  meta = with lib; {
+    description = "Rust libraries and tools to interact with the framework system.";
+    homepage = "https://github.com/FrameworkComputer/framework-system";
+    mainProgram = "framework_tool";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kloenk leona ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/by-name/ge/get-google-fonts/package.nix b/pkgs/by-name/ge/get-google-fonts/package.nix
new file mode 100644
index 0000000000000..64c4197e87613
--- /dev/null
+++ b/pkgs/by-name/ge/get-google-fonts/package.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildNpmPackage
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildNpmPackage {
+  pname = "get-google-fonts";
+  version = "1.2.2-unstable-2020-06-30";
+
+  src = fetchFromGitHub {
+    owner = "MrMaxie";
+    repo = "get-google-fonts";
+    rev = "2f8b15f6d7072533ca2ad5e0b74ccf28a313e8c8";
+    hash = "sha256-LD+ur0GB2uefggQsdQRkKMwWB39HGiYYiJIrTLudcLc=";
+  };
+
+  patches = [
+    # update lock file to contain all necessary information
+    # https://github.com/MrMaxie/get-google-fonts/pull/27
+    (fetchpatch {
+      url = "https://github.com/MrMaxie/get-google-fonts/commit/f2c818fc7c9ee228db020305f432fd08eda7dc5f.patch";
+      hash = "sha256-BszZdAZWpnkNETKYvSElg0lCjgcP7BNeXfMvePKAio4=";
+    })
+  ];
+
+  npmDepsHash = "sha256-VUphB0Qq94rlcGrrsO2Nat/bD2IZTtdevGKsXFu/YdQ=";
+
+  dontBuild = true;
+
+  meta = with lib; {
+    description = "Downloads and adapts Google fonts to working offline";
+    homepage = "https://github.com/MrMaxie/get-google-fonts";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/by-name/go/goredo/fix-tests.diff b/pkgs/by-name/go/goredo/fix-tests.diff
index 22b9c8f74385d..7bb4b45725e56 100644
--- a/pkgs/by-name/go/goredo/fix-tests.diff
+++ b/pkgs/by-name/go/goredo/fix-tests.diff
@@ -32,8 +32,8 @@ diff '--color=auto' -ru goredo-2.0.0/t/goredo-double-consideration.t goredo-2.0.
  redo-stamp <"\$3"
  EOF
 diff '--color=auto' -ru goredo-2.0.0/t/redo-sh.tests/clean.do goredo-2.0.0.new/t/redo-sh.tests/clean.do
---- goredo-2.0.0/t/redo-sh.tests/clean.do	2023-10-08 18:50:45.000000000 +0200
-+++ goredo-2.0.0.new/t/redo-sh.tests/clean.do	2023-10-08 20:19:29.213465244 +0200
+--- goredo-2.0.0/t/redo-sh.tests/clean	2023-10-08 18:50:45.000000000 +0200
++++ goredo-2.0.0.new/t/redo-sh.tests/clean	2023-10-08 20:19:29.213465244 +0200
 @@ -1,4 +1,4 @@
  for f in * ; do
      [ -d $f ] || continue
diff --git a/pkgs/by-name/go/goredo/package.nix b/pkgs/by-name/go/goredo/package.nix
index a81cb8ebd3071..a1c144508acd9 100644
--- a/pkgs/by-name/go/goredo/package.nix
+++ b/pkgs/by-name/go/goredo/package.nix
@@ -9,14 +9,17 @@
 
 buildGoModule rec {
   pname = "goredo";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "http://www.goredo.cypherpunks.ru/download/${pname}-${version}.tar.zst";
-    hash = "sha256-oUC/N6NLEVBrFC3tSEsWEXUBl5oyZNmqRTFWFbgL+zg=";
+    hash = "sha256-kVxCHXQ9PjaLYviB8sf8oHiFniyNrHMO6C/qSZhjK7k=";
   };
 
-  patches = [ ./fix-tests.diff ];
+  patches = [
+    # Adapt tests to Linux/nix-build requirements:
+    ./fix-tests.diff
+  ];
 
   nativeBuildInputs = [ zstd ];
 
diff --git a/pkgs/by-name/gu/guix/package.nix b/pkgs/by-name/gu/guix/package.nix
index e20a969f8347d..6549a9b8e2763 100644
--- a/pkgs/by-name/gu/guix/package.nix
+++ b/pkgs/by-name/gu/guix/package.nix
@@ -28,6 +28,10 @@
 , bzip2
 , libgcrypt
 , sqlite
+
+, stateDir ? "/var"
+, storeDir ? "/gnu/store"
+, confDir ? "/etc"
 }:
 
 stdenv.mkDerivation rec {
@@ -100,8 +104,9 @@ stdenv.mkDerivation rec {
   ];
 
   configureFlags = [
-    "--localstatedir=/var"
-    "--sysconfdir=/etc"
+    "--with-store-dir=${storeDir}"
+    "--localstatedir=${stateDir}"
+    "--sysconfdir=${confDir}"
     "--with-bash-completion-dir=$(out)/etc/bash_completion.d"
   ];
 
@@ -132,7 +137,7 @@ stdenv.mkDerivation rec {
     homepage = "http://www.gnu.org/software/guix";
     license = licenses.gpl3Plus;
     mainProgram = "guix";
-    maintainers = with maintainers; [ cafkafk ];
+    maintainers = with maintainers; [ cafkafk foo-dogsquared ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/by-name/ha/hayabusa/package.nix b/pkgs/by-name/ha/hayabusa/package.nix
new file mode 100644
index 0000000000000..c8064e982c4c0
--- /dev/null
+++ b/pkgs/by-name/ha/hayabusa/package.nix
@@ -0,0 +1,50 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, vulkan-loader
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "hayabusa";
+  version = "unstable-2023-11-29";
+
+  src = fetchFromGitHub {
+    owner = "notarin";
+    repo = "hayabusa";
+    rev = "306167c632173f6633e51c5610fe32af7718ec25";
+    hash = "sha256-e2zoVIhxcE9cUypi8Uzz3YZe2JvIaEVuWOGpqHVtxn8=";
+  };
+
+  cargoHash = "sha256-aoticMTrKZkRtjVXgdiBfyXJN3YcwBpM3yt07BBd3do=";
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    openssl
+    vulkan-loader
+  ];
+
+  postPatch = ''
+    substituteInPlace src/daemon/hayabusa.service \
+      --replace "/usr/local" "$out"
+  '';
+
+  postInstall = ''
+    install -Dm444 src/daemon/hayabusa.service -t $out/lib/systemd/system/
+  '';
+
+  meta = {
+    description = "A swift rust fetch program";
+    homepage = "https://github.com/notarin/hayabusa";
+    license = lib.licenses.cc-by-nc-nd-40;
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    mainProgram = "hayabusa";
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ia/ia-writer-quattro/package.nix b/pkgs/by-name/ia/ia-writer-quattro/package.nix
new file mode 100644
index 0000000000000..2f103f7cdbb7d
--- /dev/null
+++ b/pkgs/by-name/ia/ia-writer-quattro/package.nix
@@ -0,0 +1,31 @@
+{ lib, stdenvNoCC, fetchFromGitHub, }:
+
+stdenvNoCC.mkDerivation {
+  pname = "ia-writer-quattro";
+  version = "unstable-2023-06-16";
+
+  src = fetchFromGitHub {
+    owner = "iaolo";
+    rev = "f32c04c3058a75d7ce28919ce70fe8800817491b";
+    repo = "iA-fonts";
+    hash = "sha256-2T165nFfCzO65/PIHauJA//S+zug5nUwPcg8NUEydfc=";
+  };
+
+  dontConfigure = true;
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/fonts/truetype
+    cp -R $src/iA\ Writer\ Quattro/Static/*.ttf $out/share/fonts/truetype
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "iA Writer Quattro Typeface";
+    homepage = "https://github.com/iaolo/iA-Fonts";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.x0ba ];
+  };
+}
diff --git a/pkgs/by-name/ja/jazz2/package.nix b/pkgs/by-name/ja/jazz2/package.nix
index 5b95bb8c1875a..c90365bac287d 100644
--- a/pkgs/by-name/ja/jazz2/package.nix
+++ b/pkgs/by-name/ja/jazz2/package.nix
@@ -16,13 +16,13 @@
 assert lib.assertOneOf "graphicsLibrary" graphicsLibrary [ "SDL2" "GLFW" ];
 stdenv.mkDerivation (finalAttrs: {
   pname = "jazz2";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "deathkiller";
     repo = "jazz2-native";
     rev = finalAttrs.version;
-    hash = "sha256-1psMeuMV8GjS+uNlgtCvKpHgV9XW+vjviQTHBPjA4Lc=";
+    hash = "sha256-oBDBq2SToab94mK0kIB0H53jJMFZrHvsdPmfAd5ZjCY=";
   };
 
   patches = [ ./nocontent.patch ];
diff --git a/pkgs/by-name/li/libdict/package.nix b/pkgs/by-name/li/libdict/package.nix
new file mode 100644
index 0000000000000..1c6e770299ca0
--- /dev/null
+++ b/pkgs/by-name/li/libdict/package.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, cmake
+, cunit
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "libdict";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "rtbrick";
+    repo = "libdict";
+    rev = finalAttrs.version;
+    hash = "sha256-JM67lpXGacA0w8luQLc/83mAdHgtXnYlw543gUqUpRM=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+  buildInputs = [
+    cunit
+  ];
+
+  cmakeFlags = [
+    "-DLIBDICT_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}"
+    "-DLIBDICT_SHARED=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/rtbrick/libdict/";
+    changelog = "https://github.com/rtbrick/libdict/releases/tag/${version}";
+    description = "C library of key-value data structures";
+    license = licenses.bsd2;
+    maintainers = teams.wdz.members;
+  };
+})
diff --git a/pkgs/by-name/li/librda/package.nix b/pkgs/by-name/li/librda/package.nix
new file mode 100644
index 0000000000000..793783a2bae9e
--- /dev/null
+++ b/pkgs/by-name/li/librda/package.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, testers
+, autoreconfHook
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, pkg-config
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "librda";
+  version = "0.0.5-unstable-2023-09-15";
+
+  src = fetchFromGitHub {
+    owner = "ArcticaProject";
+    repo = "librda";
+    rev = "d7ed1368145e39b0c761947a32fa50493e70f554";
+    hash = "sha256-k6dmwIndLy9S7f0AU7FIm1S7MYfyvDuhMLMuNgHGsYo=";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+    "bin"
+  ];
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    glib
+    gobject-introspection
+    intltool
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk3
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  passthru.tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
+
+  meta = with lib; {
+    description = "Remote Desktop Awareness Shared Library";
+    homepage = "https://github.com/ArcticaProject/librda";
+    license = licenses.gpl2Plus;
+    mainProgram = "rdacheck";
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+    pkgConfigModules = [
+      "rda"
+    ];
+  };
+})
diff --git a/pkgs/by-name/lo/loupe/package.nix b/pkgs/by-name/lo/loupe/package.nix
index 2d32c70788ece..a42fb0f87d59b 100644
--- a/pkgs/by-name/lo/loupe/package.nix
+++ b/pkgs/by-name/lo/loupe/package.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "loupe";
-  version = "45.1";
+  version = "45.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/loupe/${lib.versions.major version}/loupe-${version}.tar.xz";
-    hash = "sha256-nX+ieKEASHKUQZoopvCo1ZGL2XnRy0tGqF6Pfe0U0+w=";
+    hash = "sha256-uLP/rzZXAmsX4E8Z4EDLqNUetNDKtU5CKVsOWlJxwKs=";
   };
 
   patches = [
diff --git a/pkgs/by-name/ma/majima/package.nix b/pkgs/by-name/ma/majima/package.nix
new file mode 100644
index 0000000000000..d2ff843cd66af
--- /dev/null
+++ b/pkgs/by-name/ma/majima/package.nix
@@ -0,0 +1,22 @@
+{ lib, fetchFromGitLab, rustPlatform }:
+rustPlatform.buildRustPackage rec {
+  pname = "majima";
+  version = "0.4.0";
+
+  src = fetchFromGitLab {
+    owner = "gumball-overall";
+    repo = "majima";
+    rev = version;
+    hash = "sha256-S62DQfvZFg8C26YG+fIVJj5cJ6mz73JXSgdu5yoK0Yo=";
+  };
+
+  cargoHash = "sha256-zMQO6McnnGbp52A9n/h6yZTU9VH7vak2TSP0HLqDlKw=";
+
+  meta = {
+    description = "Generate random usernames quickly and in various formats";
+    homepage = "https://majima.matte.fyi/";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.ufUNnxagpM ];
+    mainProgram = "majima";
+  };
+}
diff --git a/pkgs/by-name/ni/nimmm/lock.json b/pkgs/by-name/ni/nimmm/lock.json
index d55a02fefc61a..fb705b4f4fd14 100644
--- a/pkgs/by-name/ni/nimmm/lock.json
+++ b/pkgs/by-name/ni/nimmm/lock.json
@@ -27,14 +27,14 @@
     {
       "method": "fetchzip",
       "packages": [
-        "noise"
+        "wcwidth"
       ],
-      "path": "/nix/store/cqn9s90ivzsx7mq5k8m19565247sdsg6-source",
-      "ref": "v0.1.8",
-      "rev": "3cb3250ddcdaa74809aad931c066e7ef6e4af36d",
-      "sha256": "0qmak5n5nrf8nb8szhlz8sf05gmbs0x648p4vcd7ca600kaxfgj0",
-      "srcDir": "",
-      "url": "https://github.com/jangko/nim-noise/archive/3cb3250ddcdaa74809aad931c066e7ef6e4af36d.tar.gz"
+      "path": "/nix/store/inpq6nm27r7ixyjsdsm4sg6qna7d2vbc-source",
+      "ref": "v0.1.3",
+      "rev": "fd60d2dd10fd945a471450551ba471c3be80df52",
+      "sha256": "06b9ylqbjcxgm9mjfzljbi8gr9sbajykcqpcxgyqymynqyhxmqjn",
+      "srcDir": "src",
+      "url": "https://github.com/shoyu777/wcwidth-nim/archive/fd60d2dd10fd945a471450551ba471c3be80df52.tar.gz"
     }
   ]
 }
diff --git a/pkgs/by-name/ni/nimmm/package.nix b/pkgs/by-name/ni/nimmm/package.nix
index e085ed218609f..be3e01b7dcaeb 100644
--- a/pkgs/by-name/ni/nimmm/package.nix
+++ b/pkgs/by-name/ni/nimmm/package.nix
@@ -2,13 +2,13 @@
 
 buildNimPackage (finalAttrs: {
   pname = "nimmm";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "joachimschmidt557";
     repo = "nimmm";
     rev = "v${finalAttrs.version}";
-    sha256 = "168n61avphbxsxfq8qzcnlqx6wgvz5yrjvs14g25cg3k46hj4xqg";
+    hash = "sha256-gRQWReZP7bpGX9fvueQaQkX8yMmngT5DT3o4ly9Ux1g=";
   };
 
   lockFile = ./lock.json;
@@ -19,7 +19,7 @@ buildNimPackage (finalAttrs: {
     description = "Terminal file manager written in Nim";
     homepage = "https://github.com/joachimschmidt557/nimmm";
     license = lib.licenses.gpl3;
-    platforms = lib.platforms.unix;
+    platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.joachimschmidt557 ];
   };
 })
diff --git a/pkgs/by-name/op/opentype-sanitizer/package.nix b/pkgs/by-name/op/opentype-sanitizer/package.nix
new file mode 100644
index 0000000000000..2e7e7e62180ee
--- /dev/null
+++ b/pkgs/by-name/op/opentype-sanitizer/package.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, freetype
+, gtest
+, lz4
+, meson
+, ninja
+, pkg-config
+, woff2
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "opentype-sanitizer";
+  version = "9.1.0";
+
+  src = fetchFromGitHub {
+    owner = "khaledhosny";
+    repo = "ots";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-gsNMPNPcfHyOgjJnIrJ5tLYHbCfIfTowEhcaGOUPb2Q=";
+  };
+
+  buildInputs = [
+    freetype
+    gtest
+    lz4
+    woff2
+  ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Sanitizing parser for OpenType fonts";
+    homepage = "https://github.com/khaledhosny/ots";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+})
diff --git a/pkgs/by-name/py/pywalfox-native/package.nix b/pkgs/by-name/py/pywalfox-native/package.nix
index e52feb2d297d8..7f7884de57ec9 100644
--- a/pkgs/by-name/py/pywalfox-native/package.nix
+++ b/pkgs/by-name/py/pywalfox-native/package.nix
@@ -1,22 +1,22 @@
 { lib, python3, fetchPypi }:
 
 python3.pkgs.buildPythonApplication rec {
-    pname = "pywalfox-native";
-    version = "2.7.4";
+  pname = "pywalfox-native";
+  version = "2.7.4";
 
-    src = fetchPypi {
-      inherit version;
-      pname = "pywalfox";
-      hash = "sha256-Wec9fic4lXT7gBY04D2EcfCb/gYoZcrYA/aMRWaA7WY=";
-    };
+  src = fetchPypi {
+    inherit version;
+    pname = "pywalfox";
+    hash = "sha256-Wec9fic4lXT7gBY04D2EcfCb/gYoZcrYA/aMRWaA7WY=";
+  };
 
-    pythonImportsCheck = [ "pywalfox" ];
+  pythonImportsCheck = [ "pywalfox" ];
 
-    meta = with lib; {
-      homepage = "https://github.com/Frewacom/pywalfox-native";
-      description = "Native app used alongside the Pywalfox addon";
-      mainProgram = "pywalfox";
-      license = licenses.mpl20;
-      maintainers = with maintainers; [ tsandrini ];
-    };
-  }
+  meta = with lib; {
+    homepage = "https://github.com/Frewacom/pywalfox-native";
+    description = "Native app used alongside the Pywalfox addon";
+    mainProgram = "pywalfox";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ tsandrini ];
+  };
+}
diff --git a/pkgs/by-name/re/revup/package.nix b/pkgs/by-name/re/revup/package.nix
new file mode 100644
index 0000000000000..2aacb3ce5670a
--- /dev/null
+++ b/pkgs/by-name/re/revup/package.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, python3
+, fetchPypi
+}:
+
+let
+  pname = "revup";
+  version = "0.2.1";
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-EaBI414m5kihuaOkaHYAzvVxeJCgMIh9lD0JnCeVdZM=";
+  };
+in
+python3.pkgs.buildPythonPackage {
+  inherit pname version src;
+
+  nativeBuildInputs = with python3.pkgs; [
+    pip
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    aiohttp
+    aiosignal
+    async-lru
+    async-timeout
+    charset-normalizer
+    multidict
+    requests
+    rich
+    yarl
+  ];
+
+  nativeCheckInputs = with python3.pkgs; [
+    pytest
+  ];
+
+  meta = {
+    homepage = "https://github.com/Skydio/revup";
+    description = " Revolutionary github tools";
+    longDescription = ''
+      Revup provides command-line tools that allow developers to iterate faster
+      on parallel changes and reduce the overhead of creating and maintaining
+      code reviews.
+
+      Features:
+
+      - Revup creates multiple independent chains of branches for you in the
+        background and without touching your working tree. It then creates and
+        manages github pull requests for all those branches.
+      - Pull requests target the actual base branch and can be merged manually
+        or by continuous integration
+      - Rebase detection saves time and continuous integration cost by not
+        re-pushing if the patch hasn't changed
+      - Adds reviewers, labels, and creates drafts all from the commit text
+      - Adds auto-updating "review graph" and "patchsets" elements to make pull
+        requests easier to navigate revup amend and revup restack save time by
+        replacing slow rebases
+    '';
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ AndersonTorres ];
+    mainProgram = "revup";
+  };
+}
diff --git a/pkgs/by-name/th/themix-gui/package.nix b/pkgs/by-name/th/themix-gui/package.nix
new file mode 100644
index 0000000000000..c73724a0ca272
--- /dev/null
+++ b/pkgs/by-name/th/themix-gui/package.nix
@@ -0,0 +1,78 @@
+{ lib
+, stdenv
+, sassc
+, gdk-pixbuf
+, glib
+, gobject-introspection
+, librsvg
+, gtk3
+, python3
+, fetchFromGitHub
+, wrapGAppsHook
+}:
+
+let
+  py = python3.withPackages (p: [
+    p.pygobject3
+  ]);
+  pname = "themix-gui";
+  version = "1.15.1";
+in
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "themix-project";
+    repo = "themix-gui";
+    rev = version;
+    hash = "sha256-xFtwNx1c7Atb+9yorZhs/uVkkoxbZiELJ0SZ88L7KMs=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    py
+    sassc
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gdk-pixbuf
+    glib
+    gtk3
+    librsvg
+    py
+  ];
+
+  postPatch = ''
+    substituteInPlace gui.sh packaging/bin/{oomox,themix}-gui --replace python3 ${lib.getExe py}
+  '';
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    make DESTDIR=/ APPDIR=$out/opt/oomox PREFIX=$out install_gui install_import_xresources install_export_xresources
+    python -O -m compileall $out/opt/oomox/oomox_gui -d /opt/oomox/oomox_gui
+
+    runHook postInstall
+  '';
+
+  meta = {
+    description = "Graphical application for designing themes and exporting them using plugins";
+    longDescription = ''
+      Graphical application for generating different color variations of
+      Oomox (Numix-based) and Materia (ex-Flat-Plat) themes (GTK2, GTK3,
+      Cinnamon, GNOME, Openbox, Xfwm), Archdroid, Gnome-Color, Numix, Papirus
+      and Suru++ icon themes. Have a hack for HiDPI in gtk2. Its Base16 plugin
+      also allowing a lot of app themes support like Alacritty, Emacs, GTK4,
+      KDE, VIM and many more.
+    '';
+    homepage = "https://github.com/themix-project/themix-gui";
+    license = lib.licenses.gpl3Only;
+    mainProgram = "themix-gui";
+    maintainers = with lib.maintainers; [ eclairevoyant ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/by-name/ui/uiua/package.nix b/pkgs/by-name/ui/uiua/package.nix
index 3f2aa9fb7ecbb..5e91612f3613e 100644
--- a/pkgs/by-name/ui/uiua/package.nix
+++ b/pkgs/by-name/ui/uiua/package.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "uiua";
-  version = "0.4.1";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "uiua-lang";
     repo = "uiua";
     rev = version;
-    hash = "sha256-a5KSB2i7xg1b6aaNhdlU171wZ1REmFUtnsCWsKIHFGE=";
+    hash = "sha256-xDHr3U+Lc/C2L7jER2VqJvvw9mxCkDzO+K8tzC4Fw2A=";
   };
 
-  cargoHash = "sha256-5ogQI2J9JxoUKCqDrLCsop/3WSwtKqL+CG1ASN/BUSc=";
+  cargoHash = "sha256-9xjTXQJVGIvdx+SfJGPVa5Ax9wvS4Fms7blxAVrt6IY=";
 
   nativeBuildInputs = lib.optionals stdenv.isDarwin [
     rustPlatform.bindgenHook
diff --git a/pkgs/by-name/ve/vesktop/package.nix b/pkgs/by-name/ve/vesktop/package.nix
index fd0135a849167..320e942012d41 100644
--- a/pkgs/by-name/ve/vesktop/package.nix
+++ b/pkgs/by-name/ve/vesktop/package.nix
@@ -19,13 +19,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "vesktop";
-  version = "0.4.3";
+  version = "0.4.4";
 
   src = fetchFromGitHub {
     owner = "Vencord";
     repo = "Vesktop";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-wGOyDGY0FpAVS5+MTiKrOpDyd13ng0RLGAENW5tXuR4=";
+    hash = "sha256-Ot2O5J1wUZAWgdpJNaEUSwtbcNqDdGhzuCtx8Qg+4gg=";
   };
 
   # NOTE: This requires pnpm 8.10.0 or newer
@@ -72,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
       dontBuild = true;
       dontFixup = true;
       outputHashMode = "recursive";
-      outputHash = "sha256-nNXe0vSQiQTkiRqgScKlpkpG/BJc2eIY2ueAd9sk36c=";
+      outputHash = "sha256-v6ibAcfYgr1VjGK7NUF4DKd5da03mZndPUAnSl++RqE=";
     };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/browsers/vieb/default.nix b/pkgs/by-name/vi/vieb/package.nix
index fa5fad4934c10..8d3b3de6a124f 100644
--- a/pkgs/applications/networking/browsers/vieb/default.nix
+++ b/pkgs/by-name/vi/vieb/package.nix
@@ -2,20 +2,20 @@
 
 buildNpmPackage rec {
   pname = "vieb";
-  version = "10.4.0";
+  version = "10.6.0";
 
   src = fetchFromGitHub {
     owner = "Jelmerro";
     repo = pname;
     rev = version;
-    hash = "sha256-SQQDlOSP1MZeN6BHdahpxpZ0e60lgA4ph0r2jkmTdP8=";
+    hash = "sha256-WVG30wkyGiqd3uEhk2h2MHu4L0yE6DRP6NAKMExjuOs=";
   };
 
   postPatch = ''
     sed -i '/"electron"/d' package.json
   '';
 
-  npmDepsHash = "sha256-yCWSEuhiP6DfcFns6uyUrLBJeQbOK7yJ9QfGhHkTlHI=";
+  npmDepsHash = "sha256-kvC1+odojkSFWqcyNUg2SbeEn1EkA+EdfaVWY9QmPz4=";
   makeCacheWritable = true;
   dontNpmBuild = true;
 
@@ -52,8 +52,6 @@ buildNpmPackage rec {
 
   distPhase = ":"; # disable useless $out/tarballs directory
 
-  passthru.updateScript = nix-update-script {};
-
   meta = with lib; {
     homepage = "https://vieb.dev/";
     changelog = "https://github.com/Jelmerro/Vieb/releases/tag/${version}";
diff --git a/pkgs/by-name/wa/wash-cli/package.nix b/pkgs/by-name/wa/wash-cli/package.nix
new file mode 100644
index 0000000000000..c186a035814ba
--- /dev/null
+++ b/pkgs/by-name/wa/wash-cli/package.nix
@@ -0,0 +1,47 @@
+{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, openssl, darwin, fetchurl }:
+
+let
+  wasiPreviewCommandComponentAdapter = fetchurl {
+    url = "https://github.com/bytecodealliance/wasmtime/releases/download/v13.0.0/wasi_snapshot_preview1.command.wasm";
+    hash = "sha256-QihT0Iaq9VJs2mLL9CdS32lVMtDc9M952k/ZZ4tO6qs=";
+  };
+  wasiPreviewReactorComponentAdapter = fetchurl {
+    url = "https://github.com/bytecodealliance/wasmtime/releases/download/v13.0.0/wasi_snapshot_preview1.reactor.wasm";
+    hash = "sha256-bNmx/IqYPkA7YHvlYvHPmIMF/fkKtSXlZx1bjR3Neow=";
+  };
+
+in rustPlatform.buildRustPackage rec {
+  pname = "wash-cli";
+  version = "0.24.0";
+
+  src = fetchCrate {
+    inherit version pname;
+      hash = "sha256-exhN+44Sikcn2JiIry/jHOpYrPG2oQOpwq/Mq+0VK0U=";
+  };
+
+  cargoHash = "sha256-eEfkMoi4BPpKWkiTshHj59loFPzyrhFN/S8HKdMCGFM=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.SystemConfiguration
+      darwin.apple_sdk.frameworks.CoreServices
+    ];
+
+  preBuild = "
+    export WASI_PREVIEW1_COMMAND_COMPONENT_ADAPTER=${wasiPreviewCommandComponentAdapter}
+    export WASI_PREVIEW1_REACTOR_COMPONENT_ADAPTER=${wasiPreviewReactorComponentAdapter}
+  ";
+
+  # Tests require the internet and don't work when running in nix
+  doCheck = false;
+
+  meta = with lib; {
+    description = "wasmCloud Shell (wash) CLI tool";
+    homepage = "https://wasmcloud.com/";
+    mainProgram = "wash";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bloveless ];
+  };
+}
diff --git a/pkgs/data/misc/dbip-country-lite/default.nix b/pkgs/data/misc/dbip-country-lite/default.nix
index eefd161632d81..4e3ec3b550497 100644
--- a/pkgs/data/misc/dbip-country-lite/default.nix
+++ b/pkgs/data/misc/dbip-country-lite/default.nix
@@ -5,11 +5,11 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbip-country-lite";
-  version = "2023-11";
+  version = "2023-12";
 
   src = fetchurl {
     url = "https://download.db-ip.com/free/dbip-country-lite-${finalAttrs.version}.mmdb.gz";
-    hash = "sha256-Nyje7hf5UdCMHbqZoLpHclDDa4pz+BAyqJcsmPBfSG8=";
+    hash = "sha256-02ujUkrMaINTwPUQbC/RKfAgGMySgalQnpALxdZQW/A=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index e330a7bab9bc1..88ff72c28c76a 100644
--- a/pkgs/data/misc/v2ray-domain-list-community/default.nix
+++ b/pkgs/data/misc/v2ray-domain-list-community/default.nix
@@ -3,12 +3,12 @@
 let
   generator = pkgsBuildBuild.buildGoModule rec {
     pname = "v2ray-domain-list-community";
-    version = "20231122065640";
+    version = "20231201183121";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      hash = "sha256-M11PasiVVfRz1oySS6eJhCAsxX4sF5ehknYWEhb3K9Q=";
+      hash = "sha256-BOq4hT8K+m/bdAj6f1TbT3BvAn05bH3EdphcaWqFYFk=";
     };
     vendorHash = "sha256-6167kRAC5m5FlBr7uk+qKUcjWsb45P5Vvovyb6hHSVQ=";
     meta = with lib; {
diff --git a/pkgs/desktops/cinnamon/bulky/default.nix b/pkgs/desktops/cinnamon/bulky/default.nix
index 2d7fd0c6c022f..8b6cfb87dd127 100644
--- a/pkgs/desktops/cinnamon/bulky/default.nix
+++ b/pkgs/desktops/cinnamon/bulky/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bulky";
-  version = "2.10";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "bulky";
     rev = version;
-    hash = "sha256-3hpg9a5HU7mSSlMOWvmB/p0Mlyla5PDiS0J9iYJLr6Q=";
+    hash = "sha256-8/Q8ess+qF7kdjiS2y2alUSnjKlJ74yuSe4UTPVChNQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
index 3ff56b18d2557..fd1ad256d20cc 100644
--- a/pkgs/desktops/cinnamon/cinnamon-common/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -9,7 +9,6 @@
 , cjs
 , evolution-data-server
 , fetchFromGitHub
-, fetchpatch
 , gdk-pixbuf
 , gettext
 , libgnomekbd
@@ -20,7 +19,6 @@
 , intltool
 , json-glib
 , callPackage
-, libsoup
 , libstartup_notification
 , libXtst
 , libXdamage
@@ -73,25 +71,18 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cinnamon-common";
-  version = "5.8.4";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cinnamon";
     rev = version;
-    hash = "sha256-34kOSDIU56cSZ4j0FadVfr9HLQytnK4ys88DFF7LTiM=";
+    hash = "sha256-kQvPdamS0t7YcWyCekdsLNXZfidaV3tdSptzHPGMSZ0=";
   };
 
   patches = [
     ./use-sane-install-dir.patch
     ./libdir.patch
-
-    # Backport pillow 10.0.0 support.
-    # https://github.com/linuxmint/cinnamon/issues/11746
-    (fetchpatch {
-      url = "https://github.com/linuxmint/cinnamon/commit/fce9aad1ebb290802dc550e8dae6344dddf9dec1.patch";
-      hash = "sha256-flt7CblfXlLieAVNeC8TBnv1TX0Zca1obPWusBMnIxE=";
-    })
   ];
 
   buildInputs = [
@@ -108,7 +99,6 @@ stdenv.mkDerivation rec {
     gsound
     gtk3
     json-glib
-    libsoup # referenced in js/ui/environment.js
     libstartup_notification
     libXtst
     libXdamage
@@ -170,9 +160,10 @@ stdenv.mkDerivation rec {
 
     pushd ./files/usr/share/cinnamon/cinnamon-settings
       substituteInPlace ./bin/capi.py                     --replace '"/usr/lib"' '"${cinnamon-control-center}/lib"'
-      substituteInPlace ./bin/CinnamonGtkSettings.py      --replace "'python3'" "'${pythonEnv.interpreter}'"
       substituteInPlace ./bin/SettingsWidgets.py          --replace "/usr/share/sounds" "/run/current-system/sw/share/sounds"
-      substituteInPlace ./bin/Spices.py                   --replace "msgfmt" "${gettext}/bin/msgfmt"
+      substituteInPlace ./bin/Spices.py                   --replace "subprocess.run(['/usr/bin/" "subprocess.run(['" \
+                                                          --replace 'subprocess.run(["/usr/bin/' 'subprocess.run(["' \
+                                                          --replace "msgfmt" "${gettext}/bin/msgfmt"
       substituteInPlace ./modules/cs_info.py              --replace "lspci" "${pciutils}/bin/lspci"
       substituteInPlace ./modules/cs_themes.py            --replace "$out/share/cinnamon/styles.d" "/run/current-system/sw/share/cinnamon/styles.d"
     popd
@@ -201,7 +192,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    providedSessions = [ "cinnamon" "cinnamon2d" ];
+    providedSessions = [ "cinnamon" "cinnamon2d" "cinnamon-wayland" ];
   };
 
   meta = with lib; {
diff --git a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 775ab979ad8c8..40d0243b5f240 100644
--- a/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-control-center";
-  version = "5.8.2";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-7AXm4ZTpI/4Xa2lwDmEvomNdwmgVoXSKqojpFZMuoVQ=";
+    hash = "sha256-zkJkZagZBt6JMiC/HLsyP9+qVLtTszumOk3PKt18X4Y=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index e42e5a6069b9e..0f53fbbb656a6 100644
--- a/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -10,6 +10,7 @@
 , python3
 , lib
 , stdenv
+, systemd
 , xkeyboard_config
 , xorg
 , wrapGAppsHook
@@ -18,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-desktop";
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-rYTWtdYfMow3cIPhJdcmhyaIIU7fgVecWigbsCW0Piw=";
+    hash = "sha256-Ay9JyPBsE345dBwQHChkaGuoXiB2nPyvCNhWWphL8kY=";
   };
 
   outputs = [ "out" "dev" ];
@@ -37,6 +38,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     gdk-pixbuf
+    systemd
     xkeyboard_config
     xorg.libxkbfile
     xorg.libXext
diff --git a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 444a68778664d..754a5c43a182e 100644
--- a/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-menus";
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-AgA/DA7I9/0AJhlmgk0yAOJaZzpiQV1vM949Y6EOWVg=";
+    hash = "sha256-zP1jA5Fwxh6QrM5YwJo7SFPWaxkJsv1D84dhIDP5xuI=";
   };
 
   buildInputs = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
index 91c4955630582..1690a93364744 100644
--- a/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -19,7 +19,6 @@
 , gobject-introspection
 , python3
 , pam
-, accountsservice
 , cairo
 , xapp
 , xdotool
@@ -29,13 +28,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-screensaver";
-  version = "5.8.1";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-d7h9OJ39HVQNCHNr13M1ybDFoU3Xnd1PEczGLHZU/lU=";
+    hash = "sha256-5hXhCPXC7b2SsmvNSLDe/WYQcufN7FfhnaAgTNtqg0I=";
   };
 
   patches = [
@@ -75,7 +74,6 @@ stdenv.mkDerivation rec {
     xapp
     xdotool
     pam
-    accountsservice
     cairo
     cinnamon-desktop
     cinnamon-common
diff --git a/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 51fa5bca3dd60..a6800f94737d5 100644
--- a/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -23,15 +23,22 @@
 , pango
 }:
 
+let
+  pythonEnv = python3.withPackages (pp: with pp; [
+    pp.xapp # don't omit `pp.`, see #213561
+    pygobject3
+    setproctitle
+  ]);
+in
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "5.8.1";
+  version = "6.0.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-NVoP1KYh/z96NKMi9LjL4RgkjJg32oSy5WHJ91+70DI=";
+    hash = "sha256-9wdakMCW0RnsYdf9OmK/Q9o8m0g+5EfHVbjqvFY3d/w=";
   };
 
   patches = [
@@ -40,6 +47,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     # meson.build
+    cinnamon-desktop
     gtk3
     glib
     libcanberra
@@ -57,12 +65,11 @@ stdenv.mkDerivation rec {
     xorg.xtrans
 
     # other (not meson.build)
-
-    cinnamon-desktop
     cinnamon-settings-daemon
     dbus-glib
     glib
     gsettings-desktop-schemas
+    pythonEnv # for cinnamon-session-quit
   ];
 
   nativeBuildInputs = [
@@ -81,8 +88,10 @@ stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    chmod +x data/meson_install_schemas.py # patchShebangs requires executable file
-    patchShebangs data/meson_install_schemas.py
+    # patchShebangs requires executable file
+    chmod +x data/meson_install_schemas.py cinnamon-session-quit/cinnamon-session-quit.py
+    patchShebangs --build data/meson_install_schemas.py
+    patchShebangs --host cinnamon-session-quit/cinnamon-session-quit.py
   '';
 
   preFixup = ''
diff --git a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 9eb2d743d8e4a..65828b3da6040 100644
--- a/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -32,13 +32,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-settings-daemon";
-  version = "5.8.1";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-2ObfUdrCuvyhtpoxNzoH8tsFQLxNkMLQPFfJajXEsXU=";
+    hash = "sha256-bT6NetCBo3J9IiiJ9Hs4iC1N3n/AP9Q+6wZciuKA4i4=";
   };
 
   patches = [
diff --git a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index 1c46fdcf6be00..bacd1d3518d89 100644
--- a/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "5.8.2";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-hFqCKzJogGka6vsIj8SCL9GMDsTQO50jwpYKr74V5Fo=";
+    hash = "sha256-lbJ4Hhd+7Hd70ZrEw0Q7Yts9yciXzqSuNTerW6oY93A=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/cinnamon/cjs/default.nix b/pkgs/desktops/cinnamon/cjs/default.nix
index 681d6afd4ead2..4ff139ba787e8 100644
--- a/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/pkgs/desktops/cinnamon/cjs/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cjs";
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "cjs";
     rev = version;
-    hash = "sha256-DKCe8dKdYfdeWQ9Iqr0AmDU7YDN9QrQGdTkrBV/ywV0=";
+    hash = "sha256-oSqEAZWEVb8NxFTScl8s5Mb04tCGDyVVslYW00s4YYk=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/desktops/cinnamon/muffin/default.nix b/pkgs/desktops/cinnamon/muffin/default.nix
index c2ad10f97ac03..98ee19c27e783 100644
--- a/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/pkgs/desktops/cinnamon/muffin/default.nix
@@ -6,6 +6,7 @@
 , cinnamon-desktop
 , dbus
 , desktop-file-utils
+, egl-wayland
 , glib
 , gnome
 , gobject-introspection
@@ -19,6 +20,7 @@
 , libinput
 , libstartup_notification
 , libwacom
+, libxcvt
 , libXdamage
 , libxkbcommon
 , libXtst
@@ -29,13 +31,16 @@
 , pkg-config
 , python3
 , udev
+, wayland
+, wayland-protocols
 , wrapGAppsHook
 , xorgserver
+, xwayland
 }:
 
 stdenv.mkDerivation rec {
   pname = "muffin";
-  version = "5.8.1";
+  version = "6.0.0";
 
   outputs = [ "out" "dev" "man" ];
 
@@ -43,7 +48,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-9YE+pHXJb21CcAflL9swNyhQY3ZCkLlZbnmUwTNdyfA=";
+    hash = "sha256-17B2C3SW9smTgLBBGJc9LwFpXoP9WidZEGgI2hbJTH8=";
   };
 
   patches = [
@@ -69,6 +74,7 @@ stdenv.mkDerivation rec {
     cairo
     cinnamon-desktop
     dbus
+    egl-wayland
     glib
     gtk3
     libcanberra
@@ -78,10 +84,14 @@ stdenv.mkDerivation rec {
     libinput
     libstartup_notification
     libwacom
+    libxcvt
     libXdamage
     libxkbcommon
     pipewire
     udev
+    wayland
+    wayland-protocols
+    xwayland
   ];
 
   propagatedBuildInputs = [
@@ -91,6 +101,13 @@ stdenv.mkDerivation rec {
     graphene
   ];
 
+  mesonFlags = [
+    # Based on Mint's debian/rules.
+    "-Degl_device=true"
+    "-Dwayland_eglstream=true"
+    "-Dxwayland_path=${lib.getExe xwayland}"
+  ];
+
   postPatch = ''
     patchShebangs src/backends/native/gen-default-modes.py
   '';
diff --git a/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix b/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix
index 491373f5ea5f4..c59538a40a44e 100644
--- a/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix
+++ b/pkgs/desktops/cinnamon/nemo-extensions/srcs.nix
@@ -4,12 +4,12 @@ rec {
   # When you bump this, you should make sure all nemo-extensions
   # are actually using this file since we try to deal with tags
   # like nemo-fileroller-5.6.1 according to upstream's wishes.
-  version = "5.8.0";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "nemo-extensions";
     rev = version;
-    sha256 = "sha256-tyRYPWJa93w05a0PcYvz1GA8/xX2kHLdIzz4tCcppiY=";
+    sha256 = "sha256-M8ImntyfFfSL591UpqZosE7F8ydbpfrBhcLOBtW/sGQ=";
   };
 }
diff --git a/pkgs/desktops/cinnamon/nemo/default.nix b/pkgs/desktops/cinnamon/nemo/default.nix
index 61266bb871006..406bcd1325110 100644
--- a/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/pkgs/desktops/cinnamon/nemo/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nemo";
-  version = "5.8.5";
+  version = "6.0.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Nl/T+8mmQdCTHo3qAUd+ATflSDXiGCQfGb1gXzvLuAc=";
+    sha256 = "sha256-JeiBhgfGyGyNT9eNhtUl6Pp1jgG02NRlm5lam592lS0=";
   };
 
   patches = [
diff --git a/pkgs/desktops/cinnamon/pix/default.nix b/pkgs/desktops/cinnamon/pix/default.nix
index ef434171d914f..d9324fb30d24d 100644
--- a/pkgs/desktops/cinnamon/pix/default.nix
+++ b/pkgs/desktops/cinnamon/pix/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , lib
 , fetchFromGitHub
-, fetchpatch
 , pkg-config
 , meson
 , ninja
@@ -34,24 +33,15 @@
 
 stdenv.mkDerivation rec {
   pname = "pix";
-  version = "3.0.2";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-iNUhcHG4nCZ4WNELodyLdztzfNg9g+F0eQrZHXS6Zj0=";
+    sha256 = "sha256-hhtW2QyexGIyovhWOReeJ0bxgye8LJl1RrEs0/5+q24=";
   };
 
-  patches = [
-    # Fix build with exiv2 0.28, can be removed on next update
-    # https://github.com/linuxmint/pix/pull/178
-    (fetchpatch {
-      url = "https://github.com/linuxmint/pix/commit/46e19703a973d51fa97e6a22121560f5ba200eea.patch";
-      sha256 = "sha256-Z+pUxoy0m/agXW++YxEUhRuax0qvuGVXNhU8d9mvGh4=";
-    })
-  ];
-
   nativeBuildInputs = [
     bison
     desktop-file-utils
diff --git a/pkgs/desktops/cinnamon/xapp/default.nix b/pkgs/desktops/cinnamon/xapp/default.nix
index 5b38d0662ea55..3043d7c7ed4fc 100644
--- a/pkgs/desktops/cinnamon/xapp/default.nix
+++ b/pkgs/desktops/cinnamon/xapp/default.nix
@@ -22,7 +22,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xapp";
-  version = "2.6.1";
+  version = "2.8.0";
 
   outputs = [ "out" "dev" ];
 
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    hash = "sha256-ZxIPiDLcMHEmlnrImctI2ZfH3AIOjB4m/RPGipJ7koM=";
+    hash = "sha256-kpVNzBvUo2Ktzln51xLbySeKutVeJaI57kL8cBZscTM=";
   };
 
   # Recommended by upstream, which enables the build of xapp-debug.
diff --git a/pkgs/desktops/cinnamon/xviewer/default.nix b/pkgs/desktops/cinnamon/xviewer/default.nix
index c03ba5145b5ef..1c7e03de9204f 100644
--- a/pkgs/desktops/cinnamon/xviewer/default.nix
+++ b/pkgs/desktops/cinnamon/xviewer/default.nix
@@ -27,13 +27,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xviewer";
-  version = "3.4.1";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "sha256-HVxCBqaKtsEGhGAB+dBCOnjAjLZHv0XqTifPrvoYdj8=";
+    sha256 = "sha256-bI0TFJYulj1XlgKU5YLrlYKnkHORVYz4TK9mhl9mGag=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/default.nix b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
index f372f688eabc0..24a2e7d50e0d4 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/default.nix
+++ b/pkgs/desktops/gnome/core/evolution-data-server/default.nix
@@ -51,13 +51,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.50.1";
+  version = "3.50.2";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "kfT/w4objS/ok5g0RJrFQcC/9KObRE7cKpUpNEoo6Yo=";
+    sha256 = "XmYnA4jVDBTzsa4/oNISe5/tznUqzTk7VUUoGwH8SXA=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
index 4857efc4c2302..f502e89a71bd3 100644
--- a/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
+++ b/pkgs/desktops/gnome/core/evolution-data-server/hardcode-gsettings.patch
@@ -202,7 +202,7 @@ index 2525856..7ecc1a8 100644
  				g_clear_object (&settings);
  			}
 diff --git a/src/calendar/libecal/e-reminder-watcher.c b/src/calendar/libecal/e-reminder-watcher.c
-index c01e8b2..59fb4c4 100644
+index ade0a73..d7c3e73 100644
 --- a/src/calendar/libecal/e-reminder-watcher.c
 +++ b/src/calendar/libecal/e-reminder-watcher.c
 @@ -2626,8 +2626,33 @@ e_reminder_watcher_init (EReminderWatcher *watcher)
@@ -312,7 +312,7 @@ index bef9188..ce92f6c 100644
  	g_clear_object (&settings);
  
 diff --git a/src/camel/camel-gpg-context.c b/src/camel/camel-gpg-context.c
-index db5fc2e..162e00f 100644
+index 4deae76..ebe0a1b 100644
 --- a/src/camel/camel-gpg-context.c
 +++ b/src/camel/camel-gpg-context.c
 @@ -747,7 +747,18 @@ gpg_ctx_get_executable_name (void)
@@ -505,7 +505,7 @@ index 3bb1071..199e822 100644
  		g_object_unref (settings);
  
 diff --git a/src/libedataserver/e-oauth2-service.c b/src/libedataserver/e-oauth2-service.c
-index 2364f3e..e8f59f2 100644
+index af59b0b..0c7e75e 100644
 --- a/src/libedataserver/e-oauth2-service.c
 +++ b/src/libedataserver/e-oauth2-service.c
 @@ -94,7 +94,18 @@ eos_default_guess_can_process (EOAuth2Service *service,
diff --git a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
index b0189cc1321da..a35e6921ff257 100644
--- a/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-disk-utility/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "45.0";
+  version = "45.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-PYYl+qmQR7xK79KZIa1yirTXAM/4bg8uxn6Nuod9DdM=";
+    sha256 = "sha256-VA/07JprljAAP/TNYNYk85/nDyWpVZ5TMziWA8hblSk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/core/gnome-software/default.nix b/pkgs/desktops/gnome/core/gnome-software/default.nix
index 931a2d643dd2e..ac3e7c4981376 100644
--- a/pkgs/desktops/gnome/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome/core/gnome-software/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gnome-software";
-  version = "45.1";
+  version = "45.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-software/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "1ySF96bgkX9k7b7daP17VyRsbr8QxaRRCLY5RmNXeKI=";
+    sha256 = "C92PwMrs1usBPGAQ28qTB3OXEYpu9eryZOKoIKKS9bc=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/games/gnome-sudoku/default.nix b/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
index 513ae6ed9e03b..ffd5573d01548 100644
--- a/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
+++ b/pkgs/desktops/gnome/games/gnome-sudoku/default.nix
@@ -21,11 +21,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-sudoku";
-  version = "45.2";
+  version = "45.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-sudoku/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Ves0R5euw9ifer/L57djAn9cDipaIuaPvzLH6UOdlfI=";
+    sha256 = "27xURAbO54QRBBeOpKk742EH2dfsplVf0wGJzRQ41ko=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/lomiri/default.nix b/pkgs/desktops/lomiri/default.nix
index bcaa19ab27df5..2de3a7c9d409b 100644
--- a/pkgs/desktops/lomiri/default.nix
+++ b/pkgs/desktops/lomiri/default.nix
@@ -20,6 +20,7 @@ let
 
     #### Services
     biometryd = callPackage ./services/biometryd { };
+    hfd-service = callPackage ./services/hfd-service { };
   };
 in
   lib.makeScope libsForQt5.newScope packages
diff --git a/pkgs/desktops/lomiri/services/hfd-service/default.nix b/pkgs/desktops/lomiri/services/hfd-service/default.nix
new file mode 100644
index 0000000000000..cffedb0af6235
--- /dev/null
+++ b/pkgs/desktops/lomiri/services/hfd-service/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, gitUpdater
+, accountsservice
+, cmake
+, cmake-extras
+, deviceinfo
+, libgbinder
+, libglibutil
+, pkg-config
+, qtbase
+, qtdeclarative
+, qtfeedback
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hfd-service";
+  version = "0.2.1";
+
+  src = fetchFromGitLab {
+    owner = "ubports";
+    repo = "development/core/hfd-service";
+    rev = finalAttrs.version;
+    hash = "sha256-KcHwLTSdo86YCteUsPndoxmLf23SOEhROc5cJQ8GS1Q=";
+  };
+
+  postPatch = ''
+    substituteInPlace qt/feedback-plugin/CMakeLists.txt \
+      --replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/plugins" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtPluginPrefix}"
+
+    # Queries pkg-config via pkg_get_variable, can't override prefix
+    substituteInPlace init/CMakeLists.txt \
+      --replace "\''${SYSTEMD_SYSTEM_DIR}" "$out/lib/systemd/system"
+    substituteInPlace CMakeLists.txt \
+      --replace 'pkg_get_variable(AS_INTERFACES_DIR accountsservice interfacesdir)' 'set(AS_INTERFACES_DIR "''${CMAKE_INSTALL_DATADIR}/accountsservice/interfaces")' \
+      --replace 'DESTINATION ''${DBUS_INTERFACES_DIR}' 'DESTINATION ${placeholder "out"}/''${DBUS_INTERFACES_DIR}'
+    substituteInPlace src/CMakeLists.txt \
+      --replace "\''${DBUS_INTERFACES_DIR}/org.freedesktop.Accounts.xml" '${accountsservice}/share/dbus-1/interfaces/org.freedesktop.Accounts.xml'
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    accountsservice
+    cmake-extras
+    deviceinfo
+    libgbinder
+    libglibutil
+    qtbase
+    qtdeclarative
+    qtfeedback
+  ];
+
+  cmakeFlags = [
+    "-DENABLE_LIBHYBRIS=OFF"
+  ];
+
+  dontWrapQtApps = true;
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "DBus-activated service that manages human feedback devices such as LEDs and vibrators on mobile devices";
+    homepage = "https://gitlab.com/ubports/development/core/hfd-service";
+    license = licenses.lgpl3Only;
+    maintainers = teams.lomiri.members;
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/development/compilers/gcc/default.nix b/pkgs/development/compilers/gcc/default.nix
index 57141ba23e2ec..628b259acbd9c 100644
--- a/pkgs/development/compilers/gcc/default.nix
+++ b/pkgs/development/compilers/gcc/default.nix
@@ -392,7 +392,11 @@ lib.pipe ((callFile ./common/builder.nix {}) ({
       EXTRA_LDFLAGS_FOR_TARGET
       ;
   } // optionalAttrs is7 {
-    NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument";
+    NIX_CFLAGS_COMPILE = lib.optionalString (stdenv.cc.isClang && langFortran) "-Wno-unused-command-line-argument"
+      # Downgrade register storage class specifier errors to warnings when building a cross compiler from a clang stdenv.
+      + lib.optionalString (stdenv.cc.isClang && targetPlatform != hostPlatform) " -Wno-register";
+  } // optionalAttrs (!is7 && !atLeast12 && stdenv.cc.isClang && targetPlatform != hostPlatform) {
+    NIX_CFLAGS_COMPILE = "-Wno-register";
   } // optionalAttrs (!atLeast7) {
     inherit langJava;
   } // optionalAttrs atLeast6 {
@@ -420,8 +424,10 @@ lib.pipe ((callFile ./common/builder.nix {}) ({
     ;
   } // lib.optionalAttrs (!atLeast11) {
     badPlatforms = if !(is48 || is49) then [ "aarch64-darwin" ] else lib.platforms.darwin;
+  } // lib.optionalAttrs is11 {
+    badPlatforms = if targetPlatform != hostPlatform then [ "aarch64-darwin" ] else [ ];
   };
-} // lib.optionalAttrs (!atLeast10 && stdenv.hostPlatform.isDarwin) {
+} // lib.optionalAttrs (!atLeast10 && stdenv.targetPlatform.isDarwin) {
   # GCC <10 requires default cctools `strip` instead of `llvm-strip` used by Darwin bintools.
   preBuild = ''
     makeFlagsArray+=('STRIP=${lib.getBin darwin.cctools-port}/bin/${stdenv.cc.targetPrefix}strip')
diff --git a/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch b/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch
deleted file mode 100644
index 787862fbcffaa..0000000000000
--- a/pkgs/development/compilers/gcc/patches/11/avr-gcc-11.3-darwin.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/gcc/config/avr/avr.c	2022-10-08 19:18:33.000000000 +0200
-+++ b/gcc/config/avr/avr.patched.c	2022-10-08 19:19:34.000000000 +0200
-@@ -10196,7 +10196,7 @@
-    to track need of __do_copy_data.  */
- 
- static void
--avr_output_data_section_asm_op (const void *data)
-+avr_output_data_section_asm_op (const char *data)
- {
-   avr_need_copy_data_p = true;
- 
-@@ -10209,7 +10209,7 @@
-    to track need of __do_clear_bss.  */
- 
- static void
--avr_output_bss_section_asm_op (const void *data)
-+avr_output_bss_section_asm_op (const char *data)
- {
-   avr_need_clear_bss_p = true;
- 
diff --git a/pkgs/development/compilers/gcc/patches/default.nix b/pkgs/development/compilers/gcc/patches/default.nix
index 9eda241f6d3ac..32938be376d9b 100644
--- a/pkgs/development/compilers/gcc/patches/default.nix
+++ b/pkgs/development/compilers/gcc/patches/default.nix
@@ -175,9 +175,6 @@ in
 
 ## gcc 11.0 and older ##############################################################################
 
-# https://github.com/osx-cross/homebrew-avr/issues/280#issuecomment-1272381808
-++ optional (is11 && stdenv.isDarwin && targetPlatform.isAvr) ./avr-gcc-11.3-darwin.patch
-
 # libgcc’s `configure` script misdetects aarch64-darwin, resulting in an invalid deployment target.
 ++ optional (is11 && stdenv.isDarwin && stdenv.isAarch64) ./11/libgcc-aarch64-darwin-detection.patch
 
diff --git a/pkgs/development/compilers/intel-graphics-compiler/default.nix b/pkgs/development/compilers/intel-graphics-compiler/default.nix
index b2a5561dcf4dc..db03d2d85ca25 100644
--- a/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -30,16 +30,16 @@ in
 
 stdenv.mkDerivation rec {
   pname = "intel-graphics-compiler";
-  version = "1.0.14828.8";
+  version = "1.0.15136.4";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-graphics-compiler";
     rev = "igc-${version}";
-    hash = "sha256-BGmZVBEw7XlgbQcWgRK+qbJS9U4Sm9G8g9m0GRUhmCI=";
+    hash = "sha256-Qh3FNck1z+rr7eSqxVnNs7YKvgXpKGY5dd3yx1Ft9Mg=";
   };
 
-  nativeBuildInputs = [ bison cmake flex python3 ];
+  nativeBuildInputs = [ bison cmake flex (python3.withPackages (ps : with ps; [ mako ])) ];
 
   buildInputs = [ lld llvm spirv-headers spirv-llvm-translator' spirv-tools ];
 
diff --git a/pkgs/development/compilers/llvm/6/lldb/default.nix b/pkgs/development/compilers/llvm/6/lldb/default.nix
index e64584edf29d1..c8d3c4c1a771d 100644
--- a/pkgs/development/compilers/llvm/6/lldb/default.nix
+++ b/pkgs/development/compilers/llvm/6/lldb/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals stdenv.isDarwin [
     darwin.libobjc
     darwin.apple_sdk.libs.xpc
-    darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
+    darwin.apple_sdk.frameworks.DebugSymbols darwin.apple_sdk.frameworks.Foundation darwin.bootstrap_cmds darwin.apple_sdk.frameworks.Carbon darwin.apple_sdk.frameworks.Cocoa
   ];
 
   CXXFLAGS = "-fno-rtti";
diff --git a/pkgs/development/compilers/llvm/7/llvm/default.nix b/pkgs/development/compilers/llvm/7/llvm/default.nix
index 97ac428a7f550..71beb79a1cda0 100644
--- a/pkgs/development/compilers/llvm/7/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/7/llvm/default.nix
@@ -110,7 +110,17 @@ in stdenv.mkDerivation (rec {
     })
 
     ../../llvm-7-musl.patch
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+    # Add missing isl header includess required to build LLVM 7 + Polly with clang 16.
+    (fetchpatch {
+      name = "polly-ppcg-isl-headers.patch";
+      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
+      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
+      extraPrefix = "tools/polly/lib/External/ppcg/";
+      stripLen = 1;
+    })
+  ];
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
diff --git a/pkgs/development/compilers/llvm/8/llvm/default.nix b/pkgs/development/compilers/llvm/8/llvm/default.nix
index 8a0fea85e260d..7cef04347429c 100644
--- a/pkgs/development/compilers/llvm/8/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/8/llvm/default.nix
@@ -117,7 +117,17 @@ in stdenv.mkDerivation (rec {
       relative = "llvm";
       hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
     })
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+    # Add missing isl header includess required to build LLVM 8 + Polly with clang 16.
+    (fetchpatch {
+      name = "polly-ppcg-isl-headers.patch";
+      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
+      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
+      extraPrefix = "tools/polly/lib/External/ppcg/";
+      stripLen = 1;
+    })
+  ];
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
diff --git a/pkgs/development/compilers/llvm/9/llvm/default.nix b/pkgs/development/compilers/llvm/9/llvm/default.nix
index 526030d6b34d8..75c7868559734 100644
--- a/pkgs/development/compilers/llvm/9/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/9/llvm/default.nix
@@ -115,7 +115,17 @@ in stdenv.mkDerivation (rec {
       relative = "llvm";
       hash = "sha256-XPbvNJ45SzjMGlNUgt/IgEvM2dHQpDOe6woUJY+nUYA=";
     })
-  ] ++ lib.optional enablePolly ./gnu-install-dirs-polly.patch;
+  ] ++ lib.optionals enablePolly [
+    ./gnu-install-dirs-polly.patch
+    # Add missing isl header includess required to build LLVM 9 + Polly with clang 16.
+    (fetchpatch {
+      name = "polly-ppcg-isl-headers.patch";
+      url = "https://repo.or.cz/ppcg.git/patch/098ba285306114dc71497f7b51c357f69c9b4472";
+      hash = "sha256-c9L30rDROYAMbUSuaK9U/ixyFMlH/Sa1n+VgLODzSCQ=";
+      extraPrefix = "tools/polly/lib/External/ppcg/";
+      stripLen = 1;
+    })
+  ];
 
   postPatch = optionalString stdenv.isDarwin ''
     substituteInPlace cmake/modules/AddLLVM.cmake \
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index 6d086d57b017f..833c0db468a79 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -3,6 +3,7 @@
 , abc-verifier
 , bash
 , bison
+, boost
 , fetchFromGitHub
 , flex
 , libffi
@@ -18,6 +19,7 @@
 , yosys-bluespec
 , yosys-ghdl
 , yosys-symbiflow
+, enablePython ? true # enable python binding
 }:
 
 # NOTE: as of late 2020, yosys has switched to an automation robot that
@@ -68,6 +70,10 @@ let
     ghdl     = yosys-ghdl;
   } // (yosys-symbiflow);
 
+  boost_python = boost.override {
+    enablePython = true;
+    python = python3;
+  };
 
 in stdenv.mkDerivation (finalAttrs: {
   pname   = "yosys";
@@ -90,7 +96,7 @@ in stdenv.mkDerivation (finalAttrs: {
     (python3.withPackages (pp: with pp; [
       click
     ]))
-  ];
+  ] ++ lib.optional enablePython boost_python;
 
   makeFlags = [ "PREFIX=${placeholder "out"}"];
 
@@ -123,6 +129,10 @@ in stdenv.mkDerivation (finalAttrs: {
       echo "ERROR: yosys version in Makefile isn't equivalent to version of the nix package (allegedly ${finalAttrs.version}), failing."
       exit 1
     fi
+  '' + lib.optionalString enablePython ''
+    echo "ENABLE_PYOSYS := 1" >> Makefile.conf
+    echo "PYTHON_DESTDIR := $out/${python3.sitePackages}" >> Makefile.conf
+    echo "BOOST_PYTHON_LIB := -lboost_python${lib.versions.major python3.version}${lib.versions.minor python3.version}" >> Makefile.conf
   '';
 
   checkTarget = "test";
diff --git a/pkgs/development/embedded/elf2uf2-rs/default.nix b/pkgs/development/embedded/elf2uf2-rs/default.nix
index 493381842109c..c64380bec23d4 100644
--- a/pkgs/development/embedded/elf2uf2-rs/default.nix
+++ b/pkgs/development/embedded/elf2uf2-rs/default.nix
@@ -2,11 +2,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "elf2uf2-rs";
-  version = "1.3.7";
+  version = "1.3.8";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-2ZilZIYXCNrKJlkHBsz/2/pMtF+UDfjDlt53ylcwgus=";
+    sha256 = "sha256-wR2rxovUYBW9kKMFJG5lsRhtpI12L+HZe73kQyckEdI=";
   };
 
   nativeBuildInputs = [
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
       Foundation
     ];
 
-  cargoSha256 = "sha256-+3Rqlzkrw9XfM3PelGNbnRGaWQLbzVJ7iJgvGgVt5FE=";
+  cargoHash = "sha256-gSEmNmVpREvD3lDJmcmPnN9keu7SaAIcO7fDhOBhu/E=";
 
   meta = with lib; {
     description = "Convert ELF files to UF2 for USB Flashing Bootloaders";
diff --git a/pkgs/development/hare-packages/hare-json/default.nix b/pkgs/development/hare-packages/hare-json/default.nix
new file mode 100644
index 0000000000000..d9afdeadf7f01
--- /dev/null
+++ b/pkgs/development/hare-packages/hare-json/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, hare, harec, fetchFromSourcehut }:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "hare-json";
+  version = "unstable-2023-09-21";
+
+  src = fetchFromSourcehut {
+    owner = "~sircmpwn";
+    repo = "hare-json";
+    rev = "e24e5dceb8628ff569338e6c4fdba35a5017c5e2";
+    hash = "sha256-7QRieokqXarKwLfZynS8Rum9JV9hcxod00BWAUwwliM=";
+  };
+
+  nativeBuildInputs = [ hare ];
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HARECACHE="$NIX_BUILD_TOP/.harecache"
+    export BINOUT="$NIX_BUILD_TOP/.bin"
+
+    makeFlagsArray+=(
+      PREFIX="${builtins.placeholder "out"}"
+    )
+
+    runHook postConfigure
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/hare-json/";
+    description = "This package provides JSON support for Hare";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ starzation ];
+
+    inherit (harec.meta) platforms badPlatforms;
+  };
+})
diff --git a/pkgs/development/interpreters/gauche/boot.nix b/pkgs/development/interpreters/gauche/boot.nix
index 7fbc66406e677..61c67b13f78fa 100644
--- a/pkgs/development/interpreters/gauche/boot.nix
+++ b/pkgs/development/interpreters/gauche/boot.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gauche-bootstrap";
-  version = "0.9.9";
+  version = "0.9.12";
 
   src = fetchurl {
-    url = "mirror://sourceforge/gauche/Gauche-${version}.tgz";
-    sha256 = "1yzpszhw52vkpr65r5d4khf3489mnnvnw58dd2wsvvx7499k5aac";
+    url = "https://github.com/shirok/Gauche/releases/download/release${lib.replaceStrings ["."] ["_"] version}/Gauche-${version}.tgz";
+    hash = "sha256-tK5kkhsHqWZhaV69WqwN7IE9GmjlRqYWCRE9eEP1thc=";
   };
 
   nativeBuildInputs = [ pkg-config texinfo ];
diff --git a/pkgs/development/interpreters/gauche/default.nix b/pkgs/development/interpreters/gauche/default.nix
index baa679b6e00d8..301cd9db78301 100644
--- a/pkgs/development/interpreters/gauche/default.nix
+++ b/pkgs/development/interpreters/gauche/default.nix
@@ -1,20 +1,20 @@
 { stdenv, lib, fetchFromGitHub, autoreconfHook, gaucheBootstrap, pkg-config, texinfo
-, libiconv, gdbm, openssl, zlib, mbedtls, cacert }:
+, libiconv, gdbm, openssl, zlib, mbedtls, cacert, CoreServices }:
 
 stdenv.mkDerivation rec {
   pname = "gauche";
-  version = "0.9.10";
+  version = "0.9.13";
 
   src = fetchFromGitHub {
     owner = "shirok";
     repo = pname;
     rev = "release${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "0ki1w7sa10ivmg51sqjskby0gsznb0d3738nz80x589033km5hmb";
+    hash = "sha256-XD4zJzCktGi/E9sA6BVm9JVQBVrG5119EjZNbP1pVJU=";
   };
 
   nativeBuildInputs = [ gaucheBootstrap pkg-config texinfo autoreconfHook ];
 
-  buildInputs = [ libiconv gdbm openssl zlib mbedtls cacert ];
+  buildInputs = [ libiconv gdbm openssl zlib mbedtls cacert ] ++ lib.optionals stdenv.isDarwin [ CoreServices ];
 
   autoreconfPhase = ''
     ./DIST gen
diff --git a/pkgs/development/libraries/accounts-qml-module/default.nix b/pkgs/development/libraries/accounts-qml-module/default.nix
new file mode 100644
index 0000000000000..aa68cb105af37
--- /dev/null
+++ b/pkgs/development/libraries/accounts-qml-module/default.nix
@@ -0,0 +1,88 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, accounts-qt
+, dbus-test-runner
+, pkg-config
+, qmake
+, qtbase
+, qtdeclarative
+, signond
+, xvfb-run
+}:
+
+stdenv.mkDerivation (finalAttrs: {
+  pname = "accounts-qml-module";
+  version = "0.7-unstable-2022-10-28";
+
+  src = fetchFromGitLab {
+    owner = "accounts-sso";
+    repo = "accounts-qml-module";
+    rev = "05e79ebbbf3784a87f72b7be571070125c10dfe3";
+    hash = "sha256-ZpnkZauowLPBnO3DDDtG/x07XoQGVNqEF8AQB5TZK84=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/src.pro \
+      --replace '$$[QT_INSTALL_BINS]/qmlplugindump' 'qmlplugindump' \
+      --replace '$$[QT_INSTALL_QML]' '${placeholder "out"}/${qtbase.qtQmlPrefix}'
+
+    # Don't install test binary
+    sed -i tests/tst_plugin.pro \
+      -e '/TARGET = tst_plugin/a INSTALLS -= target'
+  '' + lib.optionalString (!finalAttrs.doCheck) ''
+    sed -i accounts-qml-module.pro -e '/tests/d'
+  '';
+
+  # QMake can't find Qt modules in buildInputs
+  strictDeps = false;
+
+  nativeBuildInputs = [
+    pkg-config
+    qmake
+    qtdeclarative # qmlplugindump
+  ];
+
+  buildInputs = [
+    accounts-qt
+    qtbase
+    qtdeclarative
+    signond
+  ];
+
+  nativeCheckInputs = [
+    dbus-test-runner
+    xvfb-run
+  ];
+
+  dontWrapQtApps = true;
+
+  qmakeFlags = [
+    # Needs qdoc, https://github.com/NixOS/nixpkgs/pull/245379
+    "CONFIG+=no_docs"
+  ];
+
+  postConfigure = ''
+    make qmake_all
+  '';
+
+  doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
+
+  preCheck = ''
+    # Needs xcb platform plugin
+    export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
+  preInstall = ''
+    # Same plugin needed here, re-export in case checks are disabled
+    export QT_PLUGIN_PATH=${lib.getBin qtbase}/${qtbase.qtPluginPrefix}
+  '';
+
+  meta = with lib; {
+    description = "QML bindings for libaccounts-qt + libsignon-qt";
+    homepage = "https://gitlab.com/accounts-sso/accounts-qml-module";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.linux;
+  };
+})
diff --git a/pkgs/development/libraries/futuresql/default.nix b/pkgs/development/libraries/futuresql/default.nix
index 2adc148701a74..fb6e4061e6f62 100644
--- a/pkgs/development/libraries/futuresql/default.nix
+++ b/pkgs/development/libraries/futuresql/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   version = "0.1.1";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
+    url = "mirror://kde/stable/futuresql/futuresql-${version}.tar.xz";
     hash = "sha256-5E7Y1alhizynuimD7ZxfdXLm4KWxmflIaINLccy+vUM=";
   };
 
diff --git a/pkgs/development/libraries/gr-framework/default.nix b/pkgs/development/libraries/gr-framework/default.nix
index 42994adc73751..2157a18f58d15 100644
--- a/pkgs/development/libraries/gr-framework/default.nix
+++ b/pkgs/development/libraries/gr-framework/default.nix
@@ -3,8 +3,10 @@
 , fetchFromGitHub
 , nix-update-script
 
-, cairo
 , cmake
+, wrapQtAppsHook
+
+, cairo
 , ffmpeg
 , freetype
 , ghostscript
@@ -13,20 +15,19 @@
 , libtiff
 , qhull
 , qtbase
-, wrapQtAppsHook
 , xorg
 , zeromq
 }:
 
 stdenv.mkDerivation rec {
   pname = "gr-framework";
-  version = "0.72.10";
+  version = "0.72.11";
 
   src = fetchFromGitHub {
     owner = "sciapp";
     repo = "gr";
     rev = "v${version}";
-    hash = "sha256-ZFaun8PBtPTmhZ0+OHzUu27NvcJGxsImh+c7ZvCTNa0=";
+    hash = "sha256-HspDRqO/JKpPeHOfctYAOwwR3y1u+GW3v0OnN7OfLT4=";
   };
 
   patches = [
@@ -60,11 +61,11 @@ stdenv.mkDerivation rec {
 
   passthru.updateScript = nix-update-script { };
 
-  meta = {
+  meta = with lib; {
     description = "GR framework is a graphics library for visualisation applications";
     homepage = "https://gr-framework.org";
-    maintainers = [ lib.maintainers.paveloom ];
-    license = lib.licenses.mit;
-    platforms = lib.platforms.unix;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ paveloom ];
   };
 }
diff --git a/pkgs/development/libraries/kpeoplevcard/default.nix b/pkgs/development/libraries/kpeoplevcard/default.nix
index 2ba786800fb32..689b7c9869b69 100644
--- a/pkgs/development/libraries/kpeoplevcard/default.nix
+++ b/pkgs/development/libraries/kpeoplevcard/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation (finalAttrs: {
   version = "0.1";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${finalAttrs.pname}/${finalAttrs.version}/${finalAttrs.pname}-${finalAttrs.version}.tar.xz";
+    url = "mirror://kde/stable/kpeoplevcard/${finalAttrs.version}/kpeoplevcard-${finalAttrs.version}.tar.xz";
     sha256 = "1hv3fq5k0pps1wdvq9r1zjnr0nxf8qc3vwsnzh9jpvdy79ddzrcd";
   };
 
diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix
index 3a3d32e61da9a..76fbf815525e9 100644
--- a/pkgs/development/libraries/libadwaita/default.nix
+++ b/pkgs/development/libraries/libadwaita/default.nix
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libadwaita";
-  version = "1.4.1";
+  version = "1.4.2";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "devdoc"; # demo app
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     owner = "GNOME";
     repo = "libadwaita";
     rev = version;
-    hash = "sha256-ztbvVRkNbkeAomRIxToUEQrYB5XnG1WPcfSB/iXHKoA=";
+    hash = "sha256-SsQbCnNtgiRWMZerEjSSw+CU5m6bGRv8ILY/TITGtL4=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/libaec/default.nix b/pkgs/development/libraries/libaec/default.nix
index e9e5c19f777cb..5bc6ad6c5f2eb 100644
--- a/pkgs/development/libraries/libaec/default.nix
+++ b/pkgs/development/libraries/libaec/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libaec";
-  version  = "1.1.1";
+  version  = "1.1.2";
 
   src = fetchFromGitLab {
     domain = "gitlab.dkrz.de";
     owner = "k202009";
     repo = "libaec";
     rev = "v${version}";
-    sha256 = "sha256-5nsJrbJVqjXNb3exYgEvSGUq8ccy9HG+gwmBZvjnupc=";
+    sha256 = "sha256-mmiPpfUZE7W6Hzalr/tcJUFQe5kF4dYM1uZShjBsoVA=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/libcue/default.nix b/pkgs/development/libraries/libcue/default.nix
index cdae594d9b682..ec7f1ba26ab1e 100644
--- a/pkgs/development/libraries/libcue/default.nix
+++ b/pkgs/development/libraries/libcue/default.nix
@@ -1,27 +1,19 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, bison, flex }:
+{ lib, stdenv, fetchFromGitHub, cmake, bison, flex }:
 
 stdenv.mkDerivation rec {
   pname = "libcue";
-  version = "2.2.1";
+  version = "2.3.0";
 
   src = fetchFromGitHub {
     owner = "lipnitsk";
     repo = "libcue";
     rev = "v${version}";
-    sha256 = "1iqw4n01rv2jyk9lksagyxj8ml0kcfwk67n79zy1r6zv1xfp5ywm";
+    hash = "sha256-ZMUUa8CmpFNparPsM/P2yvRto9E85EdTxpID5sKQbNI=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2023-43641.patch";
-      url = "https://github.com/lipnitsk/libcue/commit/fdf72c8bded8d24cfa0608b8e97f2eed210a920e.patch";
-      hash = "sha256-NjnSMUfman/SwLFWDIhtz2jCOLfpXGGGjO3QwRGURNg=";
-    })
-  ];
-
   nativeBuildInputs = [ cmake bison flex ];
 
-  doCheck = false; # fails all the tests (ctest)
+  doCheck = true;
 
   meta = with lib; {
     description = "CUE Sheet Parser Library";
diff --git a/pkgs/development/libraries/libmpc/default.nix b/pkgs/development/libraries/libmpc/default.nix
index 481f12e17526f..fe11b59f45239 100644
--- a/pkgs/development/libraries/libmpc/default.nix
+++ b/pkgs/development/libraries/libmpc/default.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
          built upon and follows the same principles as GNU MPFR.
       '';
 
-    homepage = "http://mpc.multiprecision.org/";
+    homepage = "https://www.multiprecision.org/mpc/";
     license = lib.licenses.lgpl2Plus;
 
     platforms = lib.platforms.all;
diff --git a/pkgs/development/libraries/libnbd/default.nix b/pkgs/development/libraries/libnbd/default.nix
index 31104b262af98..ff90c9b116ad6 100644
--- a/pkgs/development/libraries/libnbd/default.nix
+++ b/pkgs/development/libraries/libnbd/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , bash-completion
 , pkg-config
 , perl
@@ -12,13 +13,21 @@
 
 stdenv.mkDerivation rec {
   pname = "libnbd";
-  version = "1.18.0";
+  version = "1.18.1";
 
   src = fetchurl {
     url = "https://download.libguestfs.org/libnbd/${lib.versions.majorMinor version}-stable/${pname}-${version}.tar.gz";
-    hash = "sha256-srJyd32eCIthoncvM9JQEKCWEOZxxc3YntaV4Ay8kZ8=";
+    hash = "sha256-UNHRphDw1ycRnp0KClzHlSuLIxs5Mc4gcjB+EF/smbY=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2023-5871.patch";
+      url = "https://gitlab.com/nbdkit/libnbd/-/commit/4451e5b61ca07771ceef3e012223779e7a0c7701.patch";
+      hash = "sha256-zmg/kxSJtjp2w9917Sp33ezt7Ccj/inngzCUVesF1Tc=";
+    })
+  ];
+
   nativeBuildInputs = [
     bash-completion
     pkg-config
diff --git a/pkgs/development/libraries/libpqxx/default.nix b/pkgs/development/libraries/libpqxx/default.nix
index 2350217693101..acb0013035cbf 100644
--- a/pkgs/development/libraries/libpqxx/default.nix
+++ b/pkgs/development/libraries/libpqxx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libpqxx";
-  version = "7.7.0";
+  version = "7.7.5";
 
   src = fetchFromGitHub {
     owner = "jtv";
     repo = pname;
     rev = version;
-    sha256 = "sha256-O30czHwEDXz5xY4o3MWhmEK06OKTKMQCy0M6qwSEpy8=";
+    sha256 = "sha256-mvGPMbk4b8NmPvzy5hS+Au69NtDGha8ONTEQf6I3VZE=";
   };
 
   nativeBuildInputs = [ python3 ];
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [ "--enable-shared --disable-documentation" ];
+  CXXFLAGS = [ "-std=c++17" ];
 
   meta = {
     description = "A C++ library to access PostgreSQL databases";
diff --git a/pkgs/development/libraries/libunicode/default.nix b/pkgs/development/libraries/libunicode/default.nix
new file mode 100644
index 0000000000000..4241f5bc7676b
--- /dev/null
+++ b/pkgs/development/libraries/libunicode/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, fetchzip, cmake, catch2, fmt, python3 }:
+
+let
+  ucd-version = "15.0.0";
+
+  ucd-src = fetchzip {
+    url = "https://www.unicode.org/Public/${ucd-version}/ucd/UCD.zip";
+    hash = "sha256-jj6bX46VcnH7vpc9GwM9gArG+hSPbOGL6E4SaVd0s60=";
+    stripRoot = false;
+  };
+in stdenv.mkDerivation (final: {
+  pname = "libunicode";
+  version = "0.3.0-unstable-2023-03-05";
+
+  src = fetchFromGitHub {
+    owner = "contour-terminal";
+    repo = "libunicode";
+    rev = "65e0c6ddf9648b94aa9bc7dda0718401efa9ef8e";
+    hash = "sha256-F4CVU5MImkM571mD4iFxqTnNbk2GXKTGksqO4LH2uEk=";
+  };
+
+  nativeBuildInputs = [ cmake python3 ];
+  buildInputs = [ catch2 fmt ];
+
+  cmakeFlags = [ "-DLIBUNICODE_UCD_DIR=${ucd-src}" ];
+
+  meta = with lib; {
+    description = "Modern C++17 Unicode library";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ moni ];
+  };
+})
diff --git a/pkgs/development/libraries/nng/default.nix b/pkgs/development/libraries/nng/default.nix
index cb5aa49ec612f..4df09d278f6d6 100644
--- a/pkgs/development/libraries/nng/default.nix
+++ b/pkgs/development/libraries/nng/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nng";
-  version = "1.6.0-prerelease";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "nanomsg";
     repo = "nng";
-    rev = "a54820ff0e1b74554c7f649e8386ee8c4ecd98f5";
-    sha256 = "sha256-4Vj8nf3c45Y8LJ79YUOrNAAGMmfygdPtAJrs+JuFiUM=";
+    rev = "v${version}";
+    hash = "sha256-Kq8QxPU6SiTk0Ev2IJoktSPjVOlAS4/e1PQvw2+e8UA=";
   };
 
   nativeBuildInputs = [ cmake ninja ]
diff --git a/pkgs/development/libraries/openimageio/default.nix b/pkgs/development/libraries/openimageio/default.nix
index a0f520dcb6cea..f2e98e0d34b6e 100644
--- a/pkgs/development/libraries/openimageio/default.nix
+++ b/pkgs/development/libraries/openimageio/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openimageio";
-  version = "2.4.15.0";
+  version = "2.5.5.0";
 
   src = fetchFromGitHub {
     owner = "OpenImageIO";
     repo = "oiio";
     rev = "v${version}";
-    hash = "sha256-I2/JPmUBDb0bw7qbSZcAkYHB2q2Uo7En7ZurMwWhg/M=";
+    hash = "sha256-FtUZqk1m9ahdnwhrBeMFkUbV0dangMY/w9ShevCASfo=";
   };
 
   # Workaround broken zlib version detecion in CMake < 3.37.
diff --git a/pkgs/development/libraries/pango/default.nix b/pkgs/development/libraries/pango/default.nix
index 43f2eae809355..0fae50cdbfedb 100644
--- a/pkgs/development/libraries/pango/default.nix
+++ b/pkgs/development/libraries/pango/default.nix
@@ -94,7 +94,6 @@ stdenv.mkDerivation rec {
   passthru = {
     updateScript = gnome.updateScript {
       packageName = pname;
-      versionPolicy = "odd-unstable";
       # 1.90 is alpha for API 2.
       freeze = "1.90.0";
     };
diff --git a/pkgs/development/libraries/pipewire/wireplumber.nix b/pkgs/development/libraries/pipewire/wireplumber.nix
index c58ff8399aec8..a5bdb729a102b 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.4.16";
+  version = "0.4.17";
 
   outputs = [ "out" "dev" ] ++ lib.optional enableDocs "doc";
 
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "wireplumber";
     rev = version;
-    hash = "sha256-BJ4Q34wLGQNxoihH+M8NBY5ZDw/D9RMda9GvFw7BemY=";
+    hash = "sha256-vhpQT67+849WV1SFthQdUeFnYe/okudTQJoL3y+wXwI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/termbench-pro/default.nix b/pkgs/development/libraries/termbench-pro/default.nix
new file mode 100644
index 0000000000000..11edecf31cc78
--- /dev/null
+++ b/pkgs/development/libraries/termbench-pro/default.nix
@@ -0,0 +1,34 @@
+{ lib, stdenv, fetchFromGitHub, cmake, fmt }:
+
+stdenv.mkDerivation {
+  pname = "termbench-pro";
+  version = "unstable-2023-01-26";
+
+  src = fetchFromGitHub {
+    owner = "contour-terminal";
+    repo = "termbench-pro";
+    rev = "a4feadd3a698e4fe2d9dd5b03d5f941534a25a91";
+    hash = "sha256-/zpJY9Mecalk7dneYZYzmFOroopFGklWw62a+LbiUVs=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ fmt ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mkdir -p $out/lib
+    mv termbenchpro/tbp $out/bin
+    mv libtermbench/libtermbench.a $out/lib
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Terminal Benchmarking as CLI and library";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ moni ];
+  };
+}
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK32.nix b/pkgs/development/libraries/wxwidgets/wxGTK32.nix
index bcd75412aab28..5bba7315f5cc4 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK32.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK32.nix
@@ -32,6 +32,7 @@
 , AVFoundation
 , AVKit
 , WebKit
+, fetchpatch
 }:
 let
   catch = fetchFromGitHub {
@@ -59,6 +60,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-YkV150sDsfBEHvHne0GF6i8Y5881NrByPkLtPAmb24E=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "avoid_gtk3_crash.patch";
+      url = "https://github.com/wxWidgets/wxWidgets/commit/8ea22b5e92bf46add0b20059f6e39a938858ff97.patch";
+      hash = "sha256-zAyqVTdej4F3R7vVMLiKkXqJTAHDtGYJnyjaRyDmMOM=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [
diff --git a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
index 1fd30139bc14c..11f598b6544b1 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-gnome/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-gnome";
-  version = "45.0";
+  version = "45.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "lJWYhhyAAA/r8YzBKzchyVwbsdGTcfwhVtxPM971r/A=";
+    sha256 = "PpyoIQRABfs3vWjr5K0Zb8PQcoNVgUZ6IqSHnax7X90=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/misc/avr/libc/default.nix b/pkgs/development/misc/avr/libc/default.nix
index ac9da31fcc0f8..d7e9f0efe9992 100644
--- a/pkgs/development/misc/avr/libc/default.nix
+++ b/pkgs/development/misc/avr/libc/default.nix
@@ -15,8 +15,11 @@ stdenv.mkDerivation rec {
   stripDebugList = [ "bin" ];
   dontPatchELF = true;
 
+  enableParallelBuilding = true;
+
   passthru = {
     incdir = "/avr/include";
+    libdir = "/avr/lib";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index 97966e6bb33e6..080717e1a2cce 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.54.0";
+  version = "3.56.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Adafruit-PlatformDetect";
     inherit version;
-    hash = "sha256-P+f7eBqD0/KIEry/807dQQCvtokB2cYu4i0H6CTYIWg=";
+    hash = "sha256-PApfNjW7sfVmYT0NcEKs5MZJG65P7WQ5WVpQuOj8EV4=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/anchor-kr/default.nix b/pkgs/development/python-modules/anchor-kr/default.nix
new file mode 100644
index 0000000000000..32ce534e6b6b7
--- /dev/null
+++ b/pkgs/development/python-modules/anchor-kr/default.nix
@@ -0,0 +1,26 @@
+{ lib,
+  buildPythonPackage,
+  fetchFromGitHub
+}:
+buildPythonPackage {
+  pname = "anchor";
+  version = "3";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "justfoolingaround";
+    repo = "anchor";
+    # Using the commit hash because upstream does not have releases. https://github.com/justfoolingaround/anchor/issues/1
+    rev = "4cedb6a51877ed3a292cad61eb19013382915e86";
+    hash = "sha256-t75IFBSz6ncHRqXRxbrM9EQdr8xPXjSd9di+/y2LegE=";
+  };
+
+  pythonImportsCheck = [ "anchor" ];
+
+  meta = with lib; {
+    description = "Python library for scraping";
+    homepage = "https://github.com/justfoolingaround/anchor";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ passivelemon ];
+  };
+}
diff --git a/pkgs/development/python-modules/anitopy/default.nix b/pkgs/development/python-modules/anitopy/default.nix
new file mode 100644
index 0000000000000..313f9631154e6
--- /dev/null
+++ b/pkgs/development/python-modules/anitopy/default.nix
@@ -0,0 +1,26 @@
+{ lib,
+  buildPythonPackage,
+  fetchFromGitHub
+}:
+buildPythonPackage rec {
+  pname = "anitopy";
+  version = "2.1.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "igorcmoura";
+    repo = "anitopy";
+    rev = "v${version}";
+    hash = "sha256-xXEf7AJKg7grDmkKfFuC4Fk6QYFJtezClyfA3vq8TfQ=";
+  };
+
+  pythonImportsCheck = [ "anitopy" ];
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Python library for parsing anime video filenames";
+    homepage = "https://github.com/igorcmoura/anitopy";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ passivelemon ];
+  };
+}
diff --git a/pkgs/development/python-modules/approval-utilities/default.nix b/pkgs/development/python-modules/approval-utilities/default.nix
index 3b21c3ffab83c..38d22ad57aae4 100644
--- a/pkgs/development/python-modules/approval-utilities/default.nix
+++ b/pkgs/development/python-modules/approval-utilities/default.nix
@@ -2,18 +2,29 @@
 , buildPythonPackage
 , approvaltests
 , pythonOlder
+, setuptools
+, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "approval-utilities";
   inherit (approvaltests) version src;
   disabled = pythonOlder "3.7";
-  format = "setuptools";
+  pyproject = true;
 
   postPatch = ''
     mv setup.approval_utilities.py setup.py
   '';
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    # used in approval_utilities/utilities/time_utilities.py
+    typing-extensions
+  ];
+
   pythonImportsCheck = [ "approval_utilities" ];
 
   # upstream has no tests
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index b8ec645c42d19..289755c5ddc6f 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -5,21 +5,21 @@
 , buildPythonPackage
 , empty-files
 , fetchFromGitHub
-, mock
 , mrjob
 , numpy
 , pyperclip
 , pytest
+, pytest-asyncio
 , pytestCheckHook
 , pythonOlder
+, setuptools
 , testfixtures
-, typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "10.0.0";
-  format = "setuptools";
+  version = "10.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,9 +27,13 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3KorHpJUeWSJKVN/4IN0AqKOIL0sT5MaxkvQqpeilhw=";
+    hash = "sha256-t+Vxo6Pn3b2H3yAg5LGsGTjrZr4MXeGOY2BF9eFFAdE=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     allpairspy
     approval-utilities
@@ -39,16 +43,16 @@ buildPythonPackage rec {
     pyperclip
     pytest
     testfixtures
-    typing-extensions
   ];
 
   nativeCheckInputs = [
-    mock
     numpy
+    pytest-asyncio
     pytestCheckHook
   ];
 
   disabledTests = [
+    "test_docstrings"
     # Tests expects paths below ApprovalTests.Python directory
     "test_received_filename"
     "test_pytest_namer"
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
index 3b0cc0eb80308..5d7498c794a96 100644
--- a/pkgs/development/python-modules/auth0-python/default.nix
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "4.6.0";
+  version = "4.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "auth0";
     repo = "auth0-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-KNhuonqFt+KrRYctQ426FcnzxISp5sBRs28hFL/Du0Q=";
+    hash = "sha256-weXEwrOP+TKVwhqCeFVqUw4x+q2Wplr0QWVUzpbNPSc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/av/default.nix b/pkgs/development/python-modules/av/default.nix
index e80f521efb2be..605fb0c66df3b 100644
--- a/pkgs/development/python-modules/av/default.nix
+++ b/pkgs/development/python-modules/av/default.nix
@@ -1,35 +1,29 @@
 { lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
 , stdenv
-
-# build
+, buildPythonPackage
 , cython
-, pkg-config
-, setuptools
-
-# runtime
+, fetchFromGitHub
 , ffmpeg_5-headless
-
-# tests
 , numpy
 , pillow
+, pkg-config
 , pytestCheckHook
+, pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "av";
-  version = "10.0.0";
-  format = "pyproject";
+  version = "11.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mikeboers";
     repo = "PyAV";
-    rev = "v${version}";
-    hash = "sha256-XcHP8RwC2iwD64Jc7SS+t9OxjFTsz3FbrnjMgJnN7Ak=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-pCKP+4ZmZCJcG7/Qy9H6aS4svQdgaRA9S1QVNWFYhSQ=";
   };
 
   nativeBuildInputs = [
@@ -53,64 +47,54 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    # Tests that want to download FATE data
-    # https://github.com/PyAV-Org/PyAV/issues/955
-    "--deselect=tests/test_audiofifo.py::TestAudioFifo::test_data"
-    "--deselect=tests/test_codec_context.py::TestCodecContext::test_codec_tag"
-    "--deselect=tests/test_codec_context.py::TestCodecContext::test_parse"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_aac"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dnxhd"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_dvvideo"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_h264"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mjpeg"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mp2"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg1video"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_mpeg4"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_pcm_s24le"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_png"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_tiff"
-    "--deselect=tests/test_codec_context.py::TestEncoding::test_encoding_xvid"
-    "--deselect=tests/test_decode.py::TestDecode::test_decode_audio_sample_count"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_motion_vectors_no_flag"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_time_base"
-    "--deselect=tests/test_decode.py::TestDecode::test_decoded_video_frame_count"
-    "--deselect=tests/test_encode.py::TestBasicAudioEncoding::test_transcode"
-    "--deselect=tests/test_file_probing.py::TestAudioProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestAudioProbe::test_stream_probing"
-    "--deselect=tests/test_file_probing.py::TestDataProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestDataProbe::test_stream_probing"
-    "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestSubtitleProbe::test_stream_probing"
-    "--deselect=tests/test_file_probing.py::TestVideoProbe::test_container_probing"
-    "--deselect=tests/test_file_probing.py::TestVideoProbe::test_stream_probing"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_buffer_no_see"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_file"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_pipe_readonly"
-    "--deselect=tests/test_python_io.py::TestPythonIO::test_reading_from_write_readonl"
-    "--deselect=tests/test_seek.py::TestSeek::test_decode_half"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_end"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_float"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_int64"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_middle"
-    "--deselect=tests/test_seek.py::TestSeek::test_seek_start"
-    "--deselect=tests/test_seek.py::TestSeek::test_stream_seek"
-    "--deselect=tests/test_streams.py::TestStreams::test_selection"
-    "--deselect=tests/test_streams.py::TestStreams::test_stream_tuples"
-    "--deselect=tests/test_subtitles.py::TestSubtitle::test_movtext"
-    "--deselect=tests/test_subtitles.py::TestSubtitle::test_vobsub"
-    "--deselect=tests/test_videoframe.py::TestVideoFrameImage::test_roundtrip"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # Segmentation Faults
-    "--deselect=tests/test_encode.py::TestBasicVideoEncoding::test_encoding_with_pts"
-    "--deselect=tests/test_pyav.py::test_bayer_write"
-  ];
-
   disabledTests = [
     # urlopen fails during DNS resolution
     "test_writing_to_custom_io"
+    "test_decode_close_then_use"
+    # Tests that want to download FATE data, https://github.com/PyAV-Org/PyAV/issues/955
+    "test_vobsub"
+    "test_transcode"
+    "test_stream_tuples"
+    "test_stream_seek"
+    "test_stream_probing"
+    "test_seek_start"
+    "test_seek_middle"
+    "test_seek_int64"
+    "test_seek_float"
+    "test_seek_end"
+    "test_roundtrip"
+    "test_reading_from_write_readonl"
+    "test_reading_from_pipe_readonly"
+    "test_reading_from_file"
+    "test_reading_from_buffer"
+    "test_reading_from_buffer_no_see"
+    "test_parse"
+    "test_movtext"
+    "test_encoding_xvid"
+    "test_encoding_tiff"
+    "test_encoding_png"
+    "test_encoding_pcm_s24le"
+    "test_encoding_mpeg4"
+    "test_encoding_mpeg1video"
+    "test_encoding_mp2"
+    "test_encoding_mjpeg"
+    "test_encoding_h264"
+    "test_encoding_dvvideo"
+    "test_encoding_dnxhd"
+    "test_encoding_aac"
+    "test_decoded_video_frame_count"
+    "test_decoded_time_base"
+    "test_decoded_motion_vectors"
+    "test_decode_half"
+    "test_decode_audio_sample_count"
+    "test_data"
+    "test_container_probing"
+    "test_codec_tag"
+    "test_selection"
+  ] ++ lib.optionals (stdenv.isDarwin) [
+    # Segmentation Faults
+    "test_encoding_with_pts"
+    "test_bayer_write"
   ];
 
   disabledTestPaths = [
@@ -148,6 +132,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Pythonic bindings for FFmpeg/Libav";
     homepage = "https://github.com/mikeboers/PyAV/";
+    changelog = "https://github.com/PyAV-Org/PyAV/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/axisregistry/default.nix b/pkgs/development/python-modules/axisregistry/default.nix
new file mode 100644
index 0000000000000..5fba9f0f02dc9
--- /dev/null
+++ b/pkgs/development/python-modules/axisregistry/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, protobuf
+, pythonRelaxDepsHook
+, pytestCheckHook
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "axisregistry";
+  version = "0.4.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-elQUcl6Zh/3xXLduFKbiXZ6uQsDE8C6M3QnTEwaJlaA=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+    protobuf
+  ];
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  # Relax the dependency on protobuf 3. Other packages in the Google Fonts
+  # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
+  # so we need to use protobuf 4 here as well to avoid a conflict
+  # in the closure of fontbakery. It seems to be compatible enough.
+  pythonRelaxDeps = [ "protobuf" ];
+
+  meta = with lib; {
+    description = "Google Fonts registry of OpenType variation axis tags";
+    homepage = "https://github.com/googlefonts/axisregistry";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/babelfont/default.nix b/pkgs/development/python-modules/babelfont/default.nix
new file mode 100644
index 0000000000000..4cd3e809a8903
--- /dev/null
+++ b/pkgs/development/python-modules/babelfont/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cu2qu
+, defcon
+, fontfeatures
+, fonttools
+, glyphslib
+, openstep-plist
+, orjson
+, poetry-core
+, pytestCheckHook
+, ufoLib2
+}:
+
+buildPythonPackage rec {
+  pname = "babelfont";
+  version = "3.0.1";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "simoncozens";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-1DHcJDVaCgIAODyf5UUrXej8x3ySD4+6/KtxuF2yFV4=";
+  };
+
+  pyproject = true;
+
+  propagatedBuildInputs = [
+    cu2qu
+    fontfeatures
+    fonttools
+    glyphslib
+    openstep-plist
+    orjson
+    ufoLib2
+  ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    defcon
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library to load, examine, and save fonts in a variety of formats";
+    homepage = "https://github.com/simoncozens/babelfont";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/betterproto/default.nix b/pkgs/development/python-modules/betterproto/default.nix
index 6de1933fca8d3..f17fabec994f3 100644
--- a/pkgs/development/python-modules/betterproto/default.nix
+++ b/pkgs/development/python-modules/betterproto/default.nix
@@ -9,6 +9,7 @@
 , jinja2
 , isort
 , python
+, pydantic
 , pytestCheckHook
 , pytest-asyncio
 , pytest-mock
@@ -18,15 +19,15 @@
 
 buildPythonPackage rec {
   pname = "betterproto";
-  version = "2.0.0b5";
+  version = "2.0.0b6";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "danielgtaylor";
     repo = "python-betterproto";
-    rev = "v${version}";
-    hash = "sha256-XyXdpo3Yo4aO1favMWC7i9utz4fNDbKbsnYXJW0b7Gc=";
+    rev = "v.${version}";
+    hash = "sha256-ZuVq4WERXsRFUPNNTNp/eisWX1MyI7UtwqEI8X93wYI=";
   };
 
   nativeBuildInputs = [ poetry-core ];
@@ -45,6 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "betterproto" ];
 
   nativeCheckInputs = [
+    pydantic
     pytestCheckHook
     pytest-asyncio
     pytest-mock
@@ -56,6 +58,7 @@ buildPythonPackage rec {
   # the protoc-gen-python_betterproto script from the package to be on PATH.
   preCheck = ''
     export PATH=$PATH:$out/bin
+    patchShebangs src/betterproto/plugin/main.py
     ${python.interpreter} -m tests.generate
   '';
 
diff --git a/pkgs/development/python-modules/beziers/default.nix b/pkgs/development/python-modules/beziers/default.nix
new file mode 100644
index 0000000000000..0bfb5eeb29ee7
--- /dev/null
+++ b/pkgs/development/python-modules/beziers/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, dotmap
+, matplotlib
+, pyclipper
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "beziers";
+  version = "0.5.0";
+
+  # PyPI doesn't have a proper source tarball, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "simoncozens";
+    repo = "beziers.py";
+    rev = "v${version}";
+    hash = "sha256-4014u7s47Tfdpa2Q9hKAoHg7Ebcs1/DVW5TpEmoh2bc=";
+  };
+
+  propagatedBuildInputs = [
+    pyclipper
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    dotmap
+    matplotlib
+    unittestCheckHook
+  ];
+  unittestFlagsArray = [ "-s" "test" "-v" ];
+
+  meta = with lib; {
+    description = "Python library for manipulating Bezier curves and paths in fonts";
+    homepage = "https://github.com/simoncozens/beziers.py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/collidoscope/default.nix b/pkgs/development/python-modules/collidoscope/default.nix
new file mode 100644
index 0000000000000..1398043f6b1ca
--- /dev/null
+++ b/pkgs/development/python-modules/collidoscope/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, babelfont
+, kurbopy
+, fonttools
+, skia-pathops
+, tqdm
+, uharfbuzz
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "collidoscope";
+  version = "0.6.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-D7MzJ8FZjA/NSXCqCJQ9a02FPPi3t4W0q65wRIDcfSA=";
+  };
+
+  propagatedBuildInputs = [
+    babelfont
+    kurbopy
+    fonttools
+    skia-pathops
+    tqdm
+    uharfbuzz
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+  unittestFlagsArray = [ "-s" "test" "-v" ];
+
+  meta = with lib; {
+    description = "Python library to detect glyph collisions in fonts";
+    homepage = "https://github.com/googlefonts/collidoscope";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/commandlines/default.nix b/pkgs/development/python-modules/commandlines/default.nix
new file mode 100644
index 0000000000000..70e37055c4dd0
--- /dev/null
+++ b/pkgs/development/python-modules/commandlines/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "commandlines";
+  version = "0.4.1";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "chrissimpkins";
+    repo = "commandlines";
+    rev = "v${version}";
+    hash = "sha256-x3iUeOTAaTKNW5Y5foMPMJcWVxu52uYZoY3Hhe3UvQ4=";
+  };
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library for command line argument parsing";
+    homepage = "https://github.com/chrissimpkins/commandlines";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/configupdater/default.nix b/pkgs/development/python-modules/configupdater/default.nix
index 2a502963c2608..6016a63fbe3df 100644
--- a/pkgs/development/python-modules/configupdater/default.nix
+++ b/pkgs/development/python-modules/configupdater/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "configupdater";
-  version = "3.1.1";
+  version = "3.2";
 
   src = fetchPypi {
     inherit version;
     pname = "ConfigUpdater";
-    hash = "sha256-RvDHTXPvpyN3Z2S0PJc59oBSSV3T1zQxnB0OtYUR8Vs=";
+    hash = "sha256-n9rFODHBsGKSm/OYtkm4fKMOfxpzXz+/SCBygEEGMGs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/cx-freeze/default.nix b/pkgs/development/python-modules/cx-freeze/default.nix
index e8b27794ae466..ef2dd6073da0d 100644
--- a/pkgs/development/python-modules/cx-freeze/default.nix
+++ b/pkgs/development/python-modules/cx-freeze/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "cx-freeze";
-  version = "6.15.10";
+  version = "6.15.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cx_Freeze";
     inherit version;
-    hash = "sha256-Bc0md1lpL1EYYdIoYNNeKgW/v3OPliwVdhi7jHcdIyA=";
+    hash = "sha256-xf5Ez5eC+qXAaMoc1d6RPv4PmY1ry82oQ9aGod+W7lY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-glm/default.nix b/pkgs/development/python-modules/dask-glm/default.nix
index 4e0357ddd8233..dd5cfe0d29811 100644
--- a/pkgs/development/python-modules/dask-glm/default.nix
+++ b/pkgs/development/python-modules/dask-glm/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "dask-glm";
-  version = "0.3.0";
+  version = "0.3.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ddaYNBUlvsMzrku7fKrlozRmjshVbQ9yrYIlaRBQCp4=";
+    hash = "sha256-yUelZoZmmKAdeZeK5zIzy16DitXq1ghRQ1gsXpMLmko=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dehinter/default.nix b/pkgs/development/python-modules/dehinter/default.nix
new file mode 100644
index 0000000000000..30eae79427654
--- /dev/null
+++ b/pkgs/development/python-modules/dehinter/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fonttools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "dehinter";
+  version = "4.0.0";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "source-foundry";
+    repo = "dehinter";
+    rev = "v${version}";
+    hash = "sha256-l988SW6OWKXzJK0WGAJZR/QDFvgnSir+5TwMMvFcOxg=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Utility for removing hinting data from TrueType and OpenType fonts";
+    homepage = "https://github.com/source-foundry/dehinter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/downloader-cli/default.nix b/pkgs/development/python-modules/downloader-cli/default.nix
index 40cfd888a5d41..e6334daff641e 100644
--- a/pkgs/development/python-modules/downloader-cli/default.nix
+++ b/pkgs/development/python-modules/downloader-cli/default.nix
@@ -7,16 +7,16 @@
 
 buildPythonPackage rec {
   pname = "downloader-cli";
-  version = "0.3.3";
+  version = "0.3.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "deepjyoti30";
-    repo = pname;
-    rev = version;
-    hash = "sha256-Dl5XIvdZInz+edL9uQv7V6Kc6FB+7hFAGe/nybnqvQU=";
+    repo = "downloader-cli";
+    rev = "refs/tags/${version}";
+    hash = "sha256-E2K3n9qCQofm4gXu1l7/0iMoJsniuzhsBUplr4aZ39s=";
   };
 
   propagatedBuildInputs = [
@@ -33,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Downloader with an awesome customizable progressbar";
     homepage = "https://github.com/deepjyoti30/downloader-cli";
+    changelog = "https://github.com/deepjyoti30/downloader-cli/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
   };
diff --git a/pkgs/development/python-modules/duecredit/default.nix b/pkgs/development/python-modules/duecredit/default.nix
index 053fd6504e416..1e24f91129208 100644
--- a/pkgs/development/python-modules/duecredit/default.nix
+++ b/pkgs/development/python-modules/duecredit/default.nix
@@ -7,23 +7,22 @@
 , vcrpy
 , citeproc-py
 , requests
-, six
 }:
 
 buildPythonPackage rec {
   pname = "duecredit";
-  version = "0.9.2";
+  version = "0.9.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Dg/Yfp5GzmyUMI6feAwgP+g22JYoQE+L9a+Wp0V77Rw=";
+    hash = "sha256-+DeOqQ0R+XUlkuSHySFj2oDZqf85mT64PAi/LtTso3I=";
   };
 
   nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ citeproc-py requests six ];
+  propagatedBuildInputs = [ citeproc-py requests ];
 
   nativeCheckInputs = [ pytestCheckHook vcrpy ];
   disabledTests = [ "test_import_doi" ];  # tries to access network
diff --git a/pkgs/development/python-modules/dvc-objects/default.nix b/pkgs/development/python-modules/dvc-objects/default.nix
index db3e1a27bf687..041d2b1a3db17 100644
--- a/pkgs/development/python-modules/dvc-objects/default.nix
+++ b/pkgs/development/python-modules/dvc-objects/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "dvc-objects";
-  version = "1.3.0";
+  version = "1.3.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mqFrXwXMvndXb9oUVwu2IOG7Ltti6AT9acsQx/gdRSs=";
+    hash = "sha256-30UnTbEHpGSgSGnhml7pXtPDivH9+NO7nvK4jEmRRUA=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/empy/default.nix b/pkgs/development/python-modules/empy/default.nix
index 544506efb0d44..22f2830a447ed 100644
--- a/pkgs/development/python-modules/empy/default.nix
+++ b/pkgs/development/python-modules/empy/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "empy";
-  version = "3.3.4";
+  version = "4.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6xJeFtgFHnfTqGKfHm8EwSop8NMArlHLPEgauiPAbM=";
+    sha256 = "sha256-JNmmKyN+G1+c7Lqw6Ta/9zVAJS0R6sb95/62OxSHuOM=";
   };
   pythonImportsCheck = [ "em" ];
   meta = with lib; {
diff --git a/pkgs/development/python-modules/es-client/default.nix b/pkgs/development/python-modules/es-client/default.nix
index e0a88d607c5b4..7c72732f7499b 100644
--- a/pkgs/development/python-modules/es-client/default.nix
+++ b/pkgs/development/python-modules/es-client/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "es-client";
-  version = "8.10.3";
+  version = "8.11.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "untergeek";
     repo = "es_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EvE40HLNKYl38PZ2bShAhFCsX3DMYsMmusUTcAql9b4=";
+    hash = "sha256-VsHpWe37/CZvGm3PqVq4mJCBA9juvOD9FLmDeW8OjiM=";
   };
 
   pythonRelaxDeps = true;
diff --git a/pkgs/development/python-modules/fake-useragent/default.nix b/pkgs/development/python-modules/fake-useragent/default.nix
index 50c4f5e968378..0cdcd90cbe87e 100644
--- a/pkgs/development/python-modules/fake-useragent/default.nix
+++ b/pkgs/development/python-modules/fake-useragent/default.nix
@@ -10,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "fake-useragent";
-  version = "1.3.0";
-  format = "pyproject";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "fake-useragent";
     repo = "fake-useragent";
     rev = "refs/tags/${version}";
-    hash = "sha256-erGX52ipM0scn3snICf6ipjgVbV8/H5xT4GP3AtvOwo=";
+    hash = "sha256-Jmzq0yIM373bg2T6t0YFymBiH9vSpiCw+UAMfxsMJvY=";
   };
 
   postPatch = ''
@@ -41,6 +41,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [
+    "fake_useragent"
+  ];
+
   meta = with lib; {
     description = "Up to date simple useragent faker with real world database";
     homepage = "https://github.com/hellysmile/fake-useragent";
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index f2455cf2161f0..6cf0cd7097abf 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "23.9.16";
+  version = "23.11.28";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-fGrefEoyEgJE3danv9hG+Os79ixPzurEzLc3Dnj2M3k=";
+    hash = "sha256-9mVCJZmjYECi62wYRmyipAl3B1wqyDU/nTSNcA7oc04=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch b/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch
new file mode 100644
index 0000000000000..c12c85e0de254
--- /dev/null
+++ b/pkgs/development/python-modules/flask-seasurf/0001-Fix-with-new-dependency-versions.patch
@@ -0,0 +1,257 @@
+From 001549503eed364d4baaa5804242f67c6236f6c2 Mon Sep 17 00:00:00 2001
+From: Flakebi <flakebi@t-online.de>
+Date: Sat, 2 Dec 2023 16:55:05 +0100
+Subject: [PATCH] Fix with new dependency versions
+
+- cookie_jar is private in werkzeug 2.3, so recreate the client instead
+- set_cookie does not take a hostname argument anymore, use domain instead
+- Headers need to specify a content type
+---
+ test_seasurf.py | 63 ++++++++++++++++++++++++-------------------------
+ 1 file changed, 31 insertions(+), 32 deletions(-)
+
+diff --git a/test_seasurf.py b/test_seasurf.py
+index 517b2d7..501f82d 100644
+--- a/test_seasurf.py
++++ b/test_seasurf.py
+@@ -71,18 +71,18 @@ class SeaSurfTestCase(BaseTestCase):
+         self.assertEqual(type(token), str)
+ 
+     def test_exempt_view(self):
+-        rv = self.app.test_client().post('/foo')
++        rv = self.app.test_client().post('/foo', content_type='application/json')
+         self.assertIn(b('bar'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/foo/\xf8')
++        rv = self.app.test_client().post(u'/foo/\xf8', content_type='application/json')
+         self.assertIn(b('bar'), rv.data)
+ 
+     def test_token_validation(self):
+         # should produce a logger warning
+-        rv = self.app.test_client().post('/bar')
++        rv = self.app.test_client().post('/bar', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/bar/\xf8')
++        rv = self.app.test_client().post(u'/bar/\xf8', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+     def test_json_token_validation_bad(self):
+@@ -107,7 +107,7 @@ class SeaSurfTestCase(BaseTestCase):
+         data = {'_csrf_token': token}
+         with self.app.test_client() as client:
+             with client.session_transaction() as sess:
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             rv = client.post('/bar', data=data)
+@@ -121,7 +121,7 @@ class SeaSurfTestCase(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             # once this is reached the session was stored
+@@ -144,7 +144,7 @@ class SeaSurfTestCase(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             # once this is reached the session was stored
+@@ -167,7 +167,7 @@ class SeaSurfTestCase(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             rv = client.post('/bar',
+@@ -187,10 +187,10 @@ class SeaSurfTestCase(BaseTestCase):
+                 self.csrf._csrf_header_name: token,
+             }
+ 
+-            rv = client.post('/bar', headers=headers)
++            rv = client.post('/bar', headers=headers, content_type='application/json')
+             self.assertEqual(rv.status_code, 200, rv)
+ 
+-            rv = client.post(u'/bar/\xf8', headers=headers)
++            rv = client.post(u'/bar/\xf8', headers=headers, content_type='application/json')
+             self.assertEqual(rv.status_code, 200, rv)
+ 
+     def test_token_in_form_data(self):
+@@ -280,14 +280,14 @@ class SeaSurfTestCaseExemptViews(BaseTestCase):
+ 
+     def test_exempt_view(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/foo')
++            rv = c.post('/foo', content_type='application/json')
+             self.assertIn(b('bar'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             self.assertEqual(cookie, None)
+ 
+     def test_token_validation(self):
+         # should produce a logger warning
+-        rv = self.app.test_client().post('/bar')
++        rv = self.app.test_client().post('/bar', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+ 
+@@ -319,18 +319,18 @@ class SeaSurfTestCaseIncludeViews(BaseTestCase):
+             return 'foo'
+ 
+     def test_include_view(self):
+-        rv = self.app.test_client().post('/foo')
++        rv = self.app.test_client().post('/foo', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/foo/\xf8')
++        rv = self.app.test_client().post(u'/foo/\xf8', content_type='application/json')
+         self.assertIn(b('403 Forbidden'), rv.data)
+ 
+     def test_token_validation(self):
+         # should produce a logger warning
+-        rv = self.app.test_client().post('/bar')
++        rv = self.app.test_client().post('/bar', content_type='application/json')
+         self.assertIn(b('foo'), rv.data)
+ 
+-        rv = self.app.test_client().post(u'/bar/\xf8')
++        rv = self.app.test_client().post(u'/bar/\xf8', content_type='application/json')
+         self.assertIn(b('foo'), rv.data)
+ 
+ 
+@@ -363,10 +363,10 @@ class SeaSurfTestCaseExemptUrls(BaseTestCase):
+             return 'foo'
+ 
+     def test_exempt_view(self):
+-        rv = self.app.test_client().post('/foo/baz')
++        rv = self.app.test_client().post('/foo/baz', content_type='application/json')
+         self.assertIn(b('bar'), rv.data)
+         with self.app.test_client() as c:
+-            rv = c.post('/foo/quz')
++            rv = c.post('/foo/quz', content_type='application/json')
+             self.assertIn(b('bar'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             self.assertEqual(cookie, None)
+@@ -374,7 +374,7 @@ class SeaSurfTestCaseExemptUrls(BaseTestCase):
+     def test_token_validation(self):
+         with self.app.test_client() as c:
+             # should produce a logger warning
+-            rv = c.post('/bar')
++            rv = c.post('/bar', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -434,7 +434,7 @@ class SeaSurfTestCaseDisableCookie(unittest.TestCase):
+ 
+     def test_no_csrf_cookie_even_after_manually_validated(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/manual')
++            rv = c.post('/manual', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             self.assertEqual(cookie, None)
+@@ -474,14 +474,14 @@ class SeaSurfTestCaseEnableCookie(unittest.TestCase):
+ 
+     def test_has_csrf_cookie(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/exempt_with_cookie')
++            rv = c.post('/exempt_with_cookie', content_type='application/json')
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+             self.assertEqual(cookie, token)
+ 
+     def test_has_csrf_cookie_but_doesnt_validate(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/exempt_with_cookie')
++            rv = c.post('/exempt_with_cookie', content_type='application/json')
+             self.assertIn(b('exempt_with_cookie'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -530,7 +530,7 @@ class SeaSurfTestCaseSkipValidation(unittest.TestCase):
+ 
+     def test_skips_validation(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/foo/quz')
++            rv = c.post('/foo/quz', content_type='application/json')
+             self.assertIn(b('bar'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -538,20 +538,20 @@ class SeaSurfTestCaseSkipValidation(unittest.TestCase):
+ 
+     def test_enforces_validation_reject(self):
+         with self.app.test_client() as c:
+-            rv = c.delete('/foo/baz')
++            rv = c.delete('/foo/baz', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+ 
+     def test_enforces_validation_accept(self):
+         with self.app.test_client() as c:
+             # GET generates CSRF token
+             c.get('/foo/baz')
+-            rv = c.delete('/foo/baz',
++            rv = c.delete('/foo/baz', content_type='application/json',
+                           headers={'X-CSRFToken': self.csrf._get_token()})
+             self.assertIn(b('bar'), rv.data)
+ 
+     def test_manual_validation(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/manual')
++            rv = c.post('/manual', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+ 
+ 
+@@ -578,7 +578,7 @@ class SeaSurfTestManualValidation(unittest.TestCase):
+ 
+     def test_can_manually_validate_exempt_views(self):
+         with self.app.test_client() as c:
+-            rv = c.post('/manual')
++            rv = c.post('/manual', content_type='application/json')
+             self.assertIn(b('403 Forbidden'), rv.data)
+             cookie = get_cookie(rv, self.csrf._csrf_name)
+             token = self.csrf._get_token()
+@@ -651,7 +651,7 @@ class SeaSurfTestCaseReferer(BaseTestCase):
+             with client.session_transaction() as sess:
+                 token = self.csrf._generate_token()
+ 
+-                client.set_cookie('www.example.com', self.csrf._csrf_name, token)
++                client.set_cookie(self.csrf._csrf_name, token, domain='www.example.com')
+                 sess[self.csrf._csrf_name] = token
+ 
+             # once this is reached the session was stored
+@@ -728,8 +728,7 @@ class SeaSurfTestCaseSetCookie(BaseTestCase):
+                           res3.headers.get('Set-Cookie', ''),
+                           'CSRF cookie always be re-set if a token is requested by the template')
+ 
+-            client.cookie_jar.clear()
+-
++        with self.app.test_client() as client:
+             res4 = client.get('/foo')
+ 
+             self.assertIn(self.csrf._csrf_name,
+@@ -739,14 +738,14 @@ class SeaSurfTestCaseSetCookie(BaseTestCase):
+     def test_header_set_on_post(self):
+         with self.app.test_client() as client:
+             headers = {}
+-            res1 = client.post('/bar', headers=headers)
++            res1 = client.post('/bar', headers=headers, content_type='application/json')
+             self.assertEqual(res1.status_code, 403)
+ 
+             for cookie in client.cookie_jar:
+                 if cookie.name == self.csrf._csrf_name:
+                     headers[self.csrf._csrf_header_name] = cookie.value
+ 
+-            res2 = client.post('/bar', headers=headers)
++            res2 = client.post('/bar', headers=headers, content_type='application/json')
+             self.assertEqual(res2.status_code, 200)
+ 
+     def test_header_set_cookie_samesite(self):
+-- 
+2.42.0
+
diff --git a/pkgs/development/python-modules/flask-seasurf/default.nix b/pkgs/development/python-modules/flask-seasurf/default.nix
index 79d024f5b34f0..26dd2d7f5e085 100644
--- a/pkgs/development/python-modules/flask-seasurf/default.nix
+++ b/pkgs/development/python-modules/flask-seasurf/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, flask, mock, unittestCheckHook }:
+{ lib, fetchFromGitHub, fetchpatch, buildPythonPackage, isPy3k, flask, mock, unittestCheckHook }:
 
 buildPythonPackage rec {
   pname = "Flask-SeaSurf";
@@ -12,6 +12,20 @@ buildPythonPackage rec {
     hash = "sha256-L/ZUEqqHmsyXG5eShcITII36ttwQlZN5GBngo+GcCdw=";
   };
 
+  patches = [
+    # Remove usage of deprecated flask._app_ctx_stack
+    (fetchpatch {
+      url = "https://github.com/maxcountryman/flask-seasurf/commit/9039764a4e44aeb1acb6ae7747deb438bee0826b.patch";
+      hash = "sha256-bVYzJN6MXzH3fNMknd2bh+04JlPJRkU0cLcWv+Rigqc=";
+    })
+    ./0001-Fix-with-new-dependency-versions.patch
+  ];
+
+  postPatch = ''
+    # Disable some tests, pytest is not supported
+    sed -i "s#\(\(test_header_set_on_post\|test_https_good_referer\|test_https_referer_check_disabled\)(self):\)#\1\n        return#g" test_seasurf.py
+  '';
+
   propagatedBuildInputs = [ flask ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/font-v/default.nix b/pkgs/development/python-modules/font-v/default.nix
new file mode 100644
index 0000000000000..8a43dd52adea8
--- /dev/null
+++ b/pkgs/development/python-modules/font-v/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fonttools
+, git
+, gitpython
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "font-v";
+  version = "2.1.0";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "source-foundry";
+    repo = "font-v";
+    rev = "v${version}";
+    hash = "sha256-ceASyYcNul5aWPAPGajCQrqsQ3bN1sE+nMbCbj7f35w=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+    gitpython
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    git
+    pytestCheckHook
+  ];
+  preCheck = ''
+    # Many tests assume they are running from a git checkout, although they
+    # don't care which one. Create a dummy git repo to satisfy the tests:
+    git init -b main
+    git config user.email test@example.invalid
+    git config user.name Test
+    git commit --allow-empty --message 'Dummy commit for tests'
+  '';
+  disabledTests = [
+    # These tests assume they are actually running from a font-v git checkout,
+    # so just skip them:
+    "test_utilities_get_gitrootpath_function"
+  ];
+
+  meta = with lib; {
+    description = "Python utility for manipulating font version headers";
+    homepage = "https://github.com/source-foundry/font-v";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix
new file mode 100644
index 0000000000000..b824ca990b8a6
--- /dev/null
+++ b/pkgs/development/python-modules/fontbakery/default.nix
@@ -0,0 +1,146 @@
+{ lib
+, buildPythonPackage
+, callPackage
+, fetchpatch
+, fetchPypi
+, axisregistry
+, babelfont
+, beautifulsoup4
+, beziers
+, cmarkgfm
+, collidoscope
+, defcon
+, dehinter
+, fonttools
+, font-v
+, freetype-py
+, gflanguages
+, git
+, glyphsets
+, lxml
+, installShellFiles
+, munkres
+, opentypespec
+, ots-python
+, packaging
+, pip-api
+, protobuf
+, pytestCheckHook
+, pytest-xdist
+, pythonRelaxDepsHook
+, pyyaml
+, requests
+, requests-mock
+, rich
+, setuptools-scm
+, shaperglot
+, stringbrewer
+, toml
+, unicodedata2
+, ufo2ft
+, ufolint
+, vharfbuzz
+}:
+
+buildPythonPackage rec {
+  pname = "fontbakery";
+  version = "0.10.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Ye/TMGvURxSU2yoohwYbSo5RvrmbHKdMnFNj2lUvtMk=";
+  };
+
+  patches = [
+    # Mock HTTP requests in tests (note we still have to skip some below)
+    # https://github.com/googlefonts/fontbakery/pull/4124
+    (fetchpatch {
+      url = "https://github.com/fonttools/fontbakery/pull/4124.patch";
+      hash = "sha256-NXuC2+TtxpHYMdd0t+cF0FJ3lrh4exP5yxspEasKKd0=";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    axisregistry
+    babelfont
+    beautifulsoup4
+    beziers
+    cmarkgfm
+    collidoscope
+    defcon
+    dehinter
+    fonttools
+    font-v
+    freetype-py
+    gflanguages
+    glyphsets
+    lxml
+    munkres
+    ots-python
+    opentypespec
+    packaging
+    pip-api
+    protobuf
+    pyyaml
+    requests
+    rich
+    shaperglot
+    stringbrewer
+    toml
+    ufolint
+    unicodedata2
+    vharfbuzz
+    ufo2ft
+  ];
+  nativeBuildInputs = [
+    installShellFiles
+    pythonRelaxDepsHook
+    setuptools-scm
+  ];
+
+  pythonRelaxDeps = [
+    "collidoscope"
+    "protobuf"
+    "vharfbuzz"
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    git
+    pytestCheckHook
+    pytest-xdist
+    requests-mock
+    ufolint
+  ];
+  preCheck = ''
+    # Let the tests invoke 'fontbakery' command.
+    export PATH="$out/bin:$PATH"
+    # font-v tests assume they are running from a git checkout, although they
+    # don't care which one. Create a dummy git repo to satisfy the tests:
+    git init -b main
+    git config user.email test@example.invalid
+    git config user.name Test
+    git commit --allow-empty --message 'Dummy commit for tests'
+  '';
+  disabledTests = [
+    # These require network access:
+    "test_check_vertical_metrics_regressions"
+    "test_check_cjk_vertical_metrics_regressions"
+    "test_check_fontbakery_version_live_apis"
+  ];
+
+  postInstall = ''
+    installShellCompletion --bash --name fontbakery \
+      snippets/fontbakery.bash-completion
+  '';
+
+  passthru.tests.simple = callPackage ./tests.nix { };
+
+  meta = with lib; {
+    description = "Tool for checking the quality of font projects";
+    homepage = "https://github.com/googlefonts/fontbakery";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/fontbakery/tests.nix b/pkgs/development/python-modules/fontbakery/tests.nix
new file mode 100644
index 0000000000000..4725b1fee3e31
--- /dev/null
+++ b/pkgs/development/python-modules/fontbakery/tests.nix
@@ -0,0 +1,22 @@
+{ runCommand
+, fontbakery
+}:
+
+let
+  inherit (fontbakery) pname version src;
+in
+
+runCommand "${pname}-tests" { meta.timeout = 5; } ''
+  # Check the version matches what we packaged.
+  ${fontbakery}/bin/fontbakery --version | grep -q "${version}"
+
+  # Can it list its own subcommands?
+  ${fontbakery}/bin/fontbakery --list-subcommands >>$out
+
+  # Unpack src to get some test fonts.
+  tar -xzf ${src} --strip-components=1 ${pname}-${version}/data/test
+
+  # Run some font checks.
+  ${fontbakery}/bin/fontbakery check-ufo-sources --no-progress --no-colors data/test/test.ufo >>$out
+  # TODO add more
+''
diff --git a/pkgs/development/python-modules/fontfeatures/default.nix b/pkgs/development/python-modules/fontfeatures/default.nix
new file mode 100644
index 0000000000000..2ea5247d38c8b
--- /dev/null
+++ b/pkgs/development/python-modules/fontfeatures/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, beziers
+, fonttools
+, fs
+, glyphtools
+, lxml
+, pytestCheckHook
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "fontfeatures";
+  version = "1.8.0";
+
+  src = fetchPypi {
+    pname = "fontFeatures";
+    inherit version;
+    hash = "sha256-XLJD91IyUUjeSqdhWFfIqv9yISPcbU4bgRvXETSHOiY=";
+  };
+
+  propagatedBuildInputs = [
+    beziers
+    fonttools
+    fs
+    glyphtools
+    lxml
+    youseedee
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  disabledTestPaths = [
+    # These tests require babelfont but we have to leave it out and skip them
+    # to break the cyclic dependency with babelfont.
+    "tests/test_shaping_generic.py"
+    "tests/test_shaping_harfbuzz.py"
+  ];
+
+  meta = with lib; {
+    description = "Python library for compiling OpenType font features";
+    homepage = "https://github.com/simoncozens/fontFeatures";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/frozendict/default.nix b/pkgs/development/python-modules/frozendict/default.nix
index 6bd1622fa44d4..7b746f364c982 100644
--- a/pkgs/development/python-modules/frozendict/default.nix
+++ b/pkgs/development/python-modules/frozendict/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "frozendict";
-  version = "2.3.9";
+  version = "2.3.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Marco-Sulla";
     repo = "python-frozendict";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wVsTsUK6TES6YLGZGcHcGufrdVQrODyXrqczae8iTJ0=";
+    hash = "sha256-GUpCN5CsCJGuIfdsmgZHQvByA145RLI1l7aVEueqjDM=";
   };
 
   # build C version if it exists
diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix
index 423cfd34a70f8..90b70e8906c86 100644
--- a/pkgs/development/python-modules/garminconnect/default.nix
+++ b/pkgs/development/python-modules/garminconnect/default.nix
@@ -10,8 +10,8 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.9";
-  format = "pyproject";
+  version = "0.2.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-wQWOksI0nfzIMdxgZehMmNytuXWD22GLUNoI7Ki0C3s=";
+    hash = "sha256-T8flktIBRhtXpxd17bqrocncgpIfinMDvVwvaoltZAs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
index 7e1d88cde5085..93ef732273102 100644
--- a/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "gehomesdk";
-  version = "0.5.23";
+  version = "0.5.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6Xk7wAF0bZrHriSyDMnPfaPRBiVinHawj3nEqpwbUmo=";
+    hash = "sha256-VQSefwzw4zA9ycO8723kBlMbtrOJxmKgZ8tfXZmtyQc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/geopy/default.nix b/pkgs/development/python-modules/geopy/default.nix
index 3a25b434c301c..52adbbe07eed2 100644
--- a/pkgs/development/python-modules/geopy/default.nix
+++ b/pkgs/development/python-modules/geopy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "geopy";
-  version = "2.4.0";
+  version = "2.4.1";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-3Sq76DcnoG0Uv/KPF/B3oep0MO96vemKiANjgR7/k/I=";
+    hash = "sha256-mlOXDEtYry1IUAZWrP2FuY/CGliUnCPYLULnLNN0n4Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix
new file mode 100644
index 0000000000000..baaeeb6c9339b
--- /dev/null
+++ b/pkgs/development/python-modules/gflanguages/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, protobuf
+, setuptools-scm
+, pythonRelaxDepsHook
+, pytestCheckHook
+, uharfbuzz
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "gflanguages";
+  version = "0.5.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-JVeI7TlJjbKCa+gGmjylbNiEhX3qmpbLXiH3VpFqgXc=";
+  };
+
+  propagatedBuildInputs = [
+    protobuf
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pythonRelaxDepsHook
+    pytestCheckHook
+    uharfbuzz
+    youseedee
+  ];
+
+  # Relax the dependency on protobuf 3. Other packages in the Google Fonts
+  # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
+  # so we need to use protobuf 4 here as well to avoid a conflict
+  # in the closure of fontbakery. It seems to be compatible enough.
+  pythonRelaxDeps = [ "protobuf" ];
+
+  meta = with lib; {
+    description = "Python library for Google Fonts language metadata";
+    homepage = "https://github.com/googlefonts/lang";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch b/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch
new file mode 100644
index 0000000000000..96a4047c5cedf
--- /dev/null
+++ b/pkgs/development/python-modules/glyphsets/0001-relax-setuptools-scm-dep.patch
@@ -0,0 +1,22 @@
+From de2e02a41b11a708d58dfd1e24d335b8882dd7bd Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <djc@djc.id.au>
+Date: Sun, 23 Apr 2023 12:15:47 +1000
+Subject: [PATCH] relax setuptools-scm dep
+
+
+diff --git a/setup.py b/setup.py
+index 2c122a7..42f9b61 100644
+--- a/setup.py
++++ b/setup.py
+@@ -55,7 +55,7 @@
+         'Programming Language :: Python :: 3'
+     ],
+     python_requires=">=3.7",
+-    setup_requires=['setuptools_scm>=4,<6.1'],
++    setup_requires=['setuptools_scm'],
+     install_requires=[
+         'setuptools',
+         'FontTools[ufo]',
+-- 
+2.38.4
+
diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix
new file mode 100644
index 0000000000000..5088deb580b09
--- /dev/null
+++ b/pkgs/development/python-modules/glyphsets/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, defcon
+, fonttools
+, glyphslib
+, pytestCheckHook
+, setuptools
+, setuptools-scm
+, unicodedata2
+}:
+
+buildPythonPackage rec {
+  pname = "glyphsets";
+  version = "0.6.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Zp4VLJ9h6lkz7KOM7LWKAj7UX1KziLobzeT9Dosv5UU=";
+  };
+
+  patches = [
+    # Upstream has a needlessly strict version range for setuptools_scm, our
+    # setuptools-scm is newer. We can't use pythonRelaxDepsHook for this
+    # because it's in setup_requires which means we'll fail the requirement
+    # before pythonRelaxDepsHook can run.
+    ./0001-relax-setuptools-scm-dep.patch
+  ];
+
+  propagatedBuildInputs = [
+    defcon
+    fonttools
+    glyphslib
+    setuptools
+    unicodedata2
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
+  '';
+
+  meta = with lib; {
+    description = "Google Fonts glyph set metadata";
+    homepage = "https://github.com/googlefonts/glyphsets";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/glyphslib/default.nix b/pkgs/development/python-modules/glyphslib/default.nix
index 2a0276a3c7e3a..65cbc5b3b2059 100644
--- a/pkgs/development/python-modules/glyphslib/default.nix
+++ b/pkgs/development/python-modules/glyphslib/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "glyphslib";
-  version = "6.4.1";
+  version = "6.6.0";
 
   format = "pyproject";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "googlefonts";
     repo = "glyphsLib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pDFPn1KDiZ5yw1UzPgi0+Syv3h606bsOOzLbdOiag8s=";
+    hash = "sha256-2Y7JhaZJXKERQXEI9cDCx7m95El6AicU0t+X3Gntbxk=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/glyphtools/default.nix b/pkgs/development/python-modules/glyphtools/default.nix
new file mode 100644
index 0000000000000..f186863459a70
--- /dev/null
+++ b/pkgs/development/python-modules/glyphtools/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, beziers
+, glyphslib
+, numpy
+, setuptoolsCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "glyphtools";
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-PXwXHWMJbsi6ZtN+daaXAnlw3gV5DFAhyRxdBa7UP+M=";
+  };
+
+  propagatedBuildInputs = [
+    beziers
+    glyphslib
+    numpy
+  ];
+
+  # A unit test suite does exist, but it only contains a dummy test that
+  # doesn't test anything. It does import the module though so we still run it.
+  doCheck = true;
+  nativeCheckInputs = [
+    # Upstream apparently prefers the deprecated setuptools 'test' command.
+    setuptoolsCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library for extracting information from font glyphs";
+    homepage = "https://github.com/simoncozens/glyphtools";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
index 67d050c2e722d..781218fa7a206 100644
--- a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.33.2";
+  version = "0.33.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MPmyvm2FSrUzb1y5i4xl5Cqea6sxixLoZ7V1hxNi7hw=";
+    hash = "sha256-4sv5wua03gLd9YqwdD8P/VaKv4LcacB42fK5hUAt2vQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gptcache/default.nix b/pkgs/development/python-modules/gptcache/default.nix
index ea2c09eed4a3e..ce04d7df22737 100644
--- a/pkgs/development/python-modules/gptcache/default.nix
+++ b/pkgs/development/python-modules/gptcache/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "gptcache";
-  version = "0.1.42";
+  version = "0.1.43";
   format = "setuptools";
 
   disabled = pythonOlder "3.8.1";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "zilliztech";
     repo = "GPTCache";
     rev = "refs/tags/${version}";
-    hash = "sha256-rrPs5ZwBooltVcvrs4AHObx69xmZ8F+IP/lJGPVTNXY=";
+    hash = "sha256-EDsHzl55j4sehbKk0/be+WOl83f1/7zPLvPyzKnTBP4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-channelz/default.nix b/pkgs/development/python-modules/grpcio-channelz/default.nix
index f827c85081220..1063dfdb5d9dd 100644
--- a/pkgs/development/python-modules/grpcio-channelz/default.nix
+++ b/pkgs/development/python-modules/grpcio-channelz/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-channelz";
-  version = "1.59.2";
+  version = "1.59.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-apOnMd8EDU+ocj6fL/dkl3tqh6en/Q8H9K/lgvkqFN8=";
+    hash = "sha256-R2rk/4yQ0ldy6yZeauVtEpmmF0Jnx61NMw98y3D5kq4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-health-checking/default.nix b/pkgs/development/python-modules/grpcio-health-checking/default.nix
index 4c028e4ec71c1..f758a8bf25046 100644
--- a/pkgs/development/python-modules/grpcio-health-checking/default.nix
+++ b/pkgs/development/python-modules/grpcio-health-checking/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-health-checking";
-  version = "1.59.0";
+  version = "1.59.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4CIcpupsITlhQXmAi4+LMjA30LG977D8TN2agUmZVx4=";
+    hash = "sha256-AVAXzkFk/H3Ogdo6FxiksxUyMOSBss3r85JGi2E/B2Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/grpcio-reflection/default.nix b/pkgs/development/python-modules/grpcio-reflection/default.nix
index cd0506870a27f..7ed24e849ccdf 100644
--- a/pkgs/development/python-modules/grpcio-reflection/default.nix
+++ b/pkgs/development/python-modules/grpcio-reflection/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "grpcio-reflection";
-  version = "1.59.2";
+  version = "1.59.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l5bcvFnc+59tVGXVnn+mKld3o+TVqolPRIVciWpG+os=";
+    hash = "sha256-VAPFpzjG7sS7QIDad+RQMS2s5BqG4pKsN8/QB7JlfU4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index f71690c877e22..0e56dd26cb8d4 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "gspread";
-  version = "5.12.0";
+  version = "5.12.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "burnash";
     repo = "gspread";
     rev = "refs/tags/v${version}";
-    hash = "sha256-v6kpje5rw3/OfcoMWdSCZdkmETyIJ08cly8lLUt9j64=";
+    hash = "sha256-cuSR5QWURHSL1o2R4rc/m3KETz3X+78TC8LuuzZghbs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/icontract/default.nix b/pkgs/development/python-modules/icontract/default.nix
index 76e1814dddddb..e525cf89cca2e 100644
--- a/pkgs/development/python-modules/icontract/default.nix
+++ b/pkgs/development/python-modules/icontract/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "icontract";
-  version = "2.6.4";
+  version = "2.6.6";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Parquery";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-zuaS9mmq47hUIBObYRuzEYQQdTArFXR3TpK9nfZt/yk=";
+    hash = "sha256-R5/FBfuTvXItfTlNZMSnO18Q+etnHbQyXFWpaOpOLes=";
   };
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/imapclient/default.nix b/pkgs/development/python-modules/imapclient/default.nix
index 58c45f9922361..6301970392ac9 100644
--- a/pkgs/development/python-modules/imapclient/default.nix
+++ b/pkgs/development/python-modules/imapclient/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imapclient";
-  version = "3.0.0";
+  version = "3.0.1";
 
   format = "setuptools";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "mjs";
     repo = "imapclient";
     rev = "refs/tags/${version}";
-    hash = "sha256-ylYGh+78I+6pdvHuQPw8Gks9TLkXQL5HQiaZDnJK3DA=";
+    hash = "sha256-WY3OLPUwixrL2NSLfNBSSNMXJEoYBL+O6KoglU3Cz9g=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/kurbopy/default.nix b/pkgs/development/python-modules/kurbopy/default.nix
new file mode 100644
index 0000000000000..aa5e33f237577
--- /dev/null
+++ b/pkgs/development/python-modules/kurbopy/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, pytestCheckHook
+, python
+, rustPlatform
+, unzip
+}:
+
+buildPythonPackage rec {
+  pname = "kurbopy";
+  version = "0.10.40";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-dhpcDi20Na6SDbRxrC8N3SWdN1J/CWJgCUI3scJX/6s=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-V3LeT0dqkfft1ftc+azwvuSzzdUJ7/wAp31fN7te9RQ=";
+  };
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  preCheck = ''
+    # pytestCheckHook puts . at the front of Python's sys.path, due to:
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    # So we need to prevent pytest from trying to import kurbopy from
+    # ./kurbopy, which contains the sources but not the newly built module.
+    # We want it to import kurbopy from the nix store via $PYTHONPATH instead.
+    rm -r kurbopy
+  '';
+
+  meta = with lib; {
+    description = "Python wrapper around the Rust kurbo library for 2D curve manipulation";
+    homepage = "https://github.com/simoncozens/kurbopy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/license-expression/default.nix b/pkgs/development/python-modules/license-expression/default.nix
index bd95899398f8e..71443bb0144a1 100644
--- a/pkgs/development/python-modules/license-expression/default.nix
+++ b/pkgs/development/python-modules/license-expression/default.nix
@@ -9,16 +9,16 @@
 
 buildPythonPackage rec {
   pname = "license-expression";
-  version = "30.1.1";
-  format = "setuptools";
+  version = "30.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nexB";
     repo = "license-expression";
     rev = "refs/tags/v${version}";
-    hash = "sha256-5pRfFRQLxWmhEKoJZiC7gZbmW8BbqBNBWbdwFL0MtpM=";
+    hash = "sha256-vsQsHi2jdB0OiV6stm1APjQvr+238UoKgaaeXVx/isI=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/luddite/default.nix b/pkgs/development/python-modules/luddite/default.nix
index 26570a1540b69..e70493e750c06 100644
--- a/pkgs/development/python-modules/luddite/default.nix
+++ b/pkgs/development/python-modules/luddite/default.nix
@@ -1,31 +1,31 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, setuptools
+, packaging
 , pytestCheckHook
-, pytest-socket
 , pytest-mock
 }:
 
 buildPythonPackage rec {
   pname = "luddite";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "jumptrading";
     repo = pname;
     rev = "v${version}";
-    sha256 = "8/7uwO5HLhyXYt+T6VUO/O7TN9+FfRlT8y0r5+CJ/l4=";
+    hash = "sha256-JXIM7/5LO95oabM16GwAt3v3a8uldGpGXDWmVic8Ins=";
   };
 
   postPatch = ''
     substituteInPlace pytest.ini \
-      --replace "--cov=luddite --cov-report=html --cov-report=term --no-cov-on-fail" ""
+      --replace "--cov=luddite --cov-report=html --cov-report=term --no-cov-on-fail" "" \
+      --replace "--disable-socket" ""
   '';
 
-  propagatedBuildInputs = [ setuptools ];
+  propagatedBuildInputs = [ packaging ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-socket pytest-mock ];
+  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
   pythonImportsCheck = [ "luddite" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/mailchecker/default.nix b/pkgs/development/python-modules/mailchecker/default.nix
index 4701b456e09af..62b97f53b1e87 100644
--- a/pkgs/development/python-modules/mailchecker/default.nix
+++ b/pkgs/development/python-modules/mailchecker/default.nix
@@ -2,20 +2,25 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "mailchecker";
-  version = "5.0.9";
-  format = "setuptools";
+  version = "6.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iwg5B9pC2qRI2T6xnwyXjd4uhWVhel52Jxs1pfcoXM0=";
+    hash = "sha256-PXo6dfiAqC1WD/z5NBI6UZVUl/cwlvoqKDyfZI4fn2s=";
   };
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   # Module has no tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/maison/default.nix b/pkgs/development/python-modules/maison/default.nix
index 03d4c5c05d879..fc868ffefd2c4 100644
--- a/pkgs/development/python-modules/maison/default.nix
+++ b/pkgs/development/python-modules/maison/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "maison";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "dbatten5";
     repo = "maison";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uJW+7+cIt+jnbiC+HvT7KzyNk1enEtELTxtfc4eXAPU=";
+    hash = "sha256-XNo7QS8BCYzkDozLW0T+KMQPI667lDTCFtOqKq9q3hw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/opentsne/default.nix b/pkgs/development/python-modules/opentsne/default.nix
index 9fc3c7fe8143f..ba3e0b8460b19 100644
--- a/pkgs/development/python-modules/opentsne/default.nix
+++ b/pkgs/development/python-modules/opentsne/default.nix
@@ -7,7 +7,7 @@
 , scipy
 , scikit-learn
 , pytestCheckHook
-, nix-update-script
+, pythonOlder
 , setuptools
 , wheel
 }:
@@ -15,14 +15,16 @@
 let
   self = buildPythonPackage rec {
     pname = "opentsne";
-    version = "1.0.0";
-    format = "pyproject";
+    version = "1.0.1";
+    pyproject = true;
+
+    disabled = pythonOlder "3.7";
 
     src = fetchFromGitHub {
       owner = "pavlin-policar";
       repo = "openTSNE";
-      rev = "v${version}";
-      hash = "sha256-L5Qx6dMJlXF3EaWwlFTQ3dkhGXc5PvQBXYJo+QO+Hxc=";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-UTfEjjNz1mm5fhyTw9GRlMNURwWlr6kLMjrMngkFV3Y=";
     };
 
     nativeBuildInputs = [
@@ -32,13 +34,19 @@ let
       wheel
     ];
 
-    propagatedBuildInputs = [ numpy scipy scikit-learn ];
+    propagatedBuildInputs = [
+      numpy
+      scipy
+      scikit-learn
+    ];
+
+    pythonImportsCheck = [
+      "openTSNE"
+    ];
 
-    pythonImportsCheck = [ "openTSNE" ];
     doCheck = false;
 
     passthru = {
-      updateScript = nix-update-script {};
       tests.pytest = self.overridePythonAttrs (old: {
         pname = "${old.pname}-tests";
         format = "other";
@@ -53,12 +61,12 @@ let
       });
     };
 
-    meta = {
+    meta = with lib; {
       description = "Modular Python implementation of t-Distributed Stochasitc Neighbor Embedding";
       homepage = "https://github.com/pavlin-policar/openTSNE";
-      changelog = "https://github.com/pavlin-policar/openTSNE/releases/tag/${version}";
-      license = [ lib.licenses.bsd3 ];
-      maintainers = [ lib.maintainers.lucasew ];
+      changelog = "https://github.com/pavlin-policar/openTSNE/releases/tag/v${version}";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ lucasew ];
     };
   };
 in self
diff --git a/pkgs/development/python-modules/opentypespec/default.nix b/pkgs/development/python-modules/opentypespec/default.nix
new file mode 100644
index 0000000000000..c4bf0cde2c972
--- /dev/null
+++ b/pkgs/development/python-modules/opentypespec/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "opentypespec";
+  version = "1.9.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fOEHmtlCkFhn1jyIA+CsHIfud7x3PPb7UWQsnrVyDqY=";
+  };
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+  unittestFlagsArray = [ "-s" "test" "-v" ];
+
+  meta = with lib; {
+    description = "Python library for OpenType specification metadata";
+    homepage = "https://github.com/simoncozens/opentypespec-py";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch b/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch
new file mode 100644
index 0000000000000..233e97d7b4b83
--- /dev/null
+++ b/pkgs/development/python-modules/ots-python/0001-use-packaged-ots.patch
@@ -0,0 +1,34 @@
+From 6ba3b97253cf540fdf4b36672f290def72386096 Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <djc@djc.id.au>
+Date: Sun, 23 Apr 2023 21:26:53 +1000
+Subject: [PATCH] use packaged ots
+
+
+diff --git a/setup.py b/setup.py
+index 6c3ccae..ca021da 100755
+--- a/setup.py
++++ b/setup.py
+@@ -248,7 +248,6 @@ def run(self):
+     platforms=["posix", "nt"],
+     package_dir={"": "src/python"},
+     packages=find_packages("src/python"),
+-    ext_modules=[ots_sanitize],
+     zip_safe=False,
+     cmdclass=cmdclass,
+     setup_requires=["setuptools_scm"],
+diff --git a/src/python/ots/__init__.py b/src/python/ots/__init__.py
+index 5fc1724..db9d21e 100644
+--- a/src/python/ots/__init__.py
++++ b/src/python/ots/__init__.py
+@@ -3,7 +3,7 @@
+ import sys
+ import os
+ 
+-OTS_SANITIZE = os.path.join(os.path.dirname(__file__), "ots-sanitize")
++OTS_SANITIZE = "@ots_sanitize@"
+ 
+ __all__ = ["sanitize", "OTSError", "CalledProcessError"]
+ 
+-- 
+2.38.4
+
diff --git a/pkgs/development/python-modules/ots-python/default.nix b/pkgs/development/python-modules/ots-python/default.nix
new file mode 100644
index 0000000000000..32863e2e4bd31
--- /dev/null
+++ b/pkgs/development/python-modules/ots-python/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, opentype-sanitizer
+, setuptools-scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ots-python";
+  version = "9.1.0";
+
+  src = fetchPypi {
+    pname = "opentype-sanitizer";
+    inherit version;
+    hash = "sha256-1Zdd+eRECimZl8L8CCkm7pCjN0TafSsc5i2Y6/oH88I=";
+  };
+
+  patches = [
+    # Invoke ots-sanitize from the opentype-sanitizer package instead of
+    # downloading precompiled binaries from the internet.
+    # (nixpkgs-specific, not upstreamable)
+    (substituteAll {
+      src = ./0001-use-packaged-ots.patch;
+      ots_sanitize = "${opentype-sanitizer}/bin/ots-sanitize";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    opentype-sanitizer
+  ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for ots (OpenType Sanitizer)";
+    homepage = "https://github.com/googlefonts/ots-python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/playwright/default.nix b/pkgs/development/python-modules/playwright/default.nix
index 575ffeff5a6bf..555f7aa301970 100644
--- a/pkgs/development/python-modules/playwright/default.nix
+++ b/pkgs/development/python-modules/playwright/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , auditwheel
 , buildPythonPackage
 , git
@@ -53,7 +54,7 @@ buildPythonPackage rec {
 
     substituteInPlace pyproject.toml \
       --replace 'requires = ["setuptools==68.2.2", "setuptools-scm==8.0.4", "wheel==0.41.2", "auditwheel==5.4.0"]' \
-                'requires = ["setuptools", "setuptools-scm", "wheel", "auditwheel"]' \
+                'requires = ["setuptools", "setuptools-scm", "wheel"]' \
       --replace 'version_file = "playwright/_repo_version.py"' ""
     # FIXME version_file is available in setuptools-scm>=8.0.0
     echo "__version__ = version = '${version}'" > playwright/_repo_version.py
@@ -69,7 +70,8 @@ buildPythonPackage rec {
   '';
 
 
-  nativeBuildInputs = [ git setuptools-scm setuptools auditwheel ];
+  nativeBuildInputs = [ git setuptools-scm setuptools ]
+    ++ lib.optionals stdenv.isLinux [ auditwheel ];
 
   propagatedBuildInputs = [
     greenlet
diff --git a/pkgs/development/python-modules/pulumi/default.nix b/pkgs/development/python-modules/pulumi/default.nix
index b6f1ed0055400..94a940f8a9fec 100644
--- a/pkgs/development/python-modules/pulumi/default.nix
+++ b/pkgs/development/python-modules/pulumi/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
     cp ../../README.md .
     substituteInPlace setup.py \
       --replace "3.0.0" "${version}" \
-      --replace "grpcio~=1.59" "grpcio" \
+      --replace "grpcio==1.56.2" "grpcio" \
       --replace "semver~=2.13" "semver"
   '';
 
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index 34ed59e96061b..74e5b243e60b9 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "1.2.0";
+  version = "1.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "openlawlibrary";
     repo = "pygls";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hIr06qzOkObEcrIgFUloAPBJdOtcipl4htpbbUVkbdw=";
+    hash = "sha256-ARez9fs50kScfMp/W/aFIOcJonpFrcfyrzJuVwou7fk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pytikz-allefeld/default.nix b/pkgs/development/python-modules/pytikz-allefeld/default.nix
new file mode 100644
index 0000000000000..4701431e715d2
--- /dev/null
+++ b/pkgs/development/python-modules/pytikz-allefeld/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pythonOlder
+, pymupdf
+, numpy
+, ipython
+, texlive
+}:
+
+buildPythonPackage rec {
+  pname = "pytikz-allefeld"; # "pytikz" on pypi is a different module
+  version = "unstable-2022-11-01";
+
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "allefeld";
+    repo = "pytikz";
+    rev = "f878ebd6ce5a647b1076228b48181b147a61abc1";
+    hash = "sha256-G59UUkpjttJKNBN0MB/A9CftO8tO3nv8qlTxt3/fKHk=";
+  };
+
+  propagatedBuildInputs = [
+    pymupdf
+    numpy
+    ipython
+  ];
+
+  pythonImportsCheck = [ "tikz" ];
+
+  nativeCheckInputs = [ texlive.combined.scheme-small ];
+  checkPhase = ''
+    runHook preCheck
+    python -c 'if 1:
+      from tikz import *
+      pic = Picture()
+      pic.draw(line([(0, 0), (1, 1)]))
+      print(pic.code())
+      pic.write_image("test.pdf")
+    '
+    test -s test.pdf
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/allefeld/pytikz";
+    description = "A Python interface to TikZ";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pbsds ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/development/python-modules/pyunpack/default.nix b/pkgs/development/python-modules/pyunpack/default.nix
index b6dff5a97d03c..ea7ad7d416a3a 100644
--- a/pkgs/development/python-modules/pyunpack/default.nix
+++ b/pkgs/development/python-modules/pyunpack/default.nix
@@ -1,16 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, setuptools
 , pytestCheckHook
 , easyprocess
 , entrypoint2
 , patool
+, cabextract
 }:
 
 buildPythonPackage rec {
   pname = "pyunpack";
   version = "0.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ponty";
@@ -23,15 +25,20 @@ buildPythonPackage rec {
     substituteInPlace pyunpack/__init__.py \
       --replace \
        '_exepath("patool")' \
-       '"${patool}/bin/.patool-wrapped"'
+       '"${lib.getBin patool}/bin/.patool-wrapped"'
   '';
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     easyprocess
     entrypoint2
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    cabextract
+  ];
 
   pytestFlagsArray = [ "-x" ];
 
diff --git a/pkgs/development/python-modules/rstr/default.nix b/pkgs/development/python-modules/rstr/default.nix
new file mode 100644
index 0000000000000..3c80a274ceaf6
--- /dev/null
+++ b/pkgs/development/python-modules/rstr/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, setuptools-scm
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "rstr";
+  version = "3.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-xKVk1N+0Ry2THRRcQ9HPGteMJFkhQud1W4hmF57qwBI=";
+  };
+
+  pyproject = true;
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library to generate random strings";
+    homepage = "https://github.com/leapfrogonline/rstr";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/scancode-toolkit/default.nix b/pkgs/development/python-modules/scancode-toolkit/default.nix
index 2affddbb6a4c0..13bee07a1859f 100644
--- a/pkgs/development/python-modules/scancode-toolkit/default.nix
+++ b/pkgs/development/python-modules/scancode-toolkit/default.nix
@@ -16,7 +16,6 @@
 , extractcode-libarchive
 , fasteners
 , fetchPypi
-, fetchpatch
 , fingerprints
 , ftfy
 , gemfileparser2
@@ -48,12 +47,12 @@
 , pythonOlder
 , requests
 , saneyaml
+, setuptools
 , spdx-tools
 , text-unidecode
 , toml
 , typecode
 , typecode-libmagic
-, typing
 , urlpy
 , xmltodict
 , zipp
@@ -61,17 +60,22 @@
 
 buildPythonPackage rec {
   pname = "scancode-toolkit";
-  version = "32.0.6";
+  version = "32.0.8";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-suqk7LOnZgSJGlaHq81LDOSCHZWdsJOUbma6MEpHxSM=";
+    hash = "sha256-W6Ev1MV8cZU4bauAfmuZsBzMJKz7xpw8siO3Afn5mc8=";
   };
 
   dontConfigure = true;
 
+  nativeBuildInputs = [
+    setuptools
+  ];
+
   propagatedBuildInputs = [
     attrs
     beautifulsoup4
@@ -126,33 +130,12 @@ buildPythonPackage rec {
     xmltodict
   ] ++ lib.optionals (pythonOlder "3.9") [
     zipp
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    typing
   ];
 
   nativeCheckInputs = [
     pytestCheckHook
   ];
 
-  patches = [
-    (fetchpatch {
-      name = "${pname}-allow-stable-spdx-tools.patch";
-      url = "https://github.com/nexB/scancode-toolkit/commit/d89ab6584d3df6b7eb1d1394559e9d967d6db6ae.patch";
-      includes = [ "src/*" ];
-      hash = "sha256-AU3vJlOxmCy3yvkupVaAVxAKxJI3ymXEk+A5DWSkfOM=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "pdfminer.six >= 20200101" "pdfminer.six" \
-      --replace "pluggy >= 0.12.0, < 1.0" "pluggy" \
-      --replace "pygmars >= 0.7.0" "pygmars" \
-      --replace "license_expression >= 21.6.14" "license_expression" \
-      --replace "intbitset >= 2.3.0,  < 3.0" "intbitset" \
-      --replace "spdx_tools == 0.7.0a3" "spdx_tools"
-  '';
-
   # Importing scancode needs a writeable home, and preCheck happens in between
   # pythonImportsCheckPhase and pytestCheckPhase.
   postInstall = ''
@@ -163,7 +146,13 @@ buildPythonPackage rec {
     "scancode"
   ];
 
-  # takes a long time and doesn't appear to do anything
+  disabledTestPaths = [
+    # Tests are outdated
+    "src/formattedcode/output_spdx.py"
+    "src/scancode/cli.py"
+  ];
+
+  # Takes a long time and doesn't appear to do anything
   dontStrip = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/shaperglot/default.nix b/pkgs/development/python-modules/shaperglot/default.nix
new file mode 100644
index 0000000000000..f1ea7e5a723a3
--- /dev/null
+++ b/pkgs/development/python-modules/shaperglot/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, gflanguages
+, num2words
+, poetry-core
+, protobuf
+, pytestCheckHook
+, strictyaml
+, termcolor
+, ufo2ft
+, vharfbuzz
+, youseedee
+}:
+
+buildPythonPackage rec {
+  pname = "shaperglot";
+  version = "0.3.1";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "googlefonts";
+    repo = "shaperglot";
+    rev = "v${version}";
+    hash = "sha256-29MzD42rgh+7n/0kjqKGDxXPnUEvj/xxEIKWZg03pxw=";
+  };
+
+  pyproject = true;
+
+  propagatedBuildInputs = [
+    gflanguages
+    num2words
+    protobuf
+    strictyaml
+    termcolor
+    ufo2ft
+    vharfbuzz
+    youseedee
+  ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Tool to test OpenType fonts for language support";
+    homepage = "https://github.com/googlefonts/shaperglot";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/python-modules/sre-yield/default.nix b/pkgs/development/python-modules/sre-yield/default.nix
new file mode 100644
index 0000000000000..91e6904b57726
--- /dev/null
+++ b/pkgs/development/python-modules/sre-yield/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, unittestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "sre-yield";
+  version = "1.2";
+
+  src = fetchPypi {
+    pname = "sre_yield";
+    inherit version;
+    hash = "sha256-6U8aKjy6//4dzRXB1U5AGhUX4FKqZMfTFk+I3HYde4o=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  doCheck = true;
+  nativeCheckInputs = [
+    unittestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Python library to efficiently generate all values that can match a given regular expression";
+    homepage = "https://github.com/sre-yield/sre-yield";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix
index 73c36577413ab..a043430f8584c 100644
--- a/pkgs/development/python-modules/streamlit/default.nix
+++ b/pkgs/development/python-modules/streamlit/default.nix
@@ -32,14 +32,14 @@
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.28.2";
+  version = "1.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wUQWiIG/e9bWAXqb/eWFtS0gCHsQstXIXTdu9tUqqO4=";
+    hash = "sha256-tt//nF4TLlUYySFQ781FKYDbSSpF+v6sPUaI0jNO+gc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/stringbrewer/default.nix b/pkgs/development/python-modules/stringbrewer/default.nix
new file mode 100644
index 0000000000000..fc39d515a6ec6
--- /dev/null
+++ b/pkgs/development/python-modules/stringbrewer/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, rstr
+, sre-yield
+, pythonImportsCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "stringbrewer";
+  version = "0.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-wtETgi+Tk1ALJzzIM6Ic5zkDbALGL0cELg8X75uepkk=";
+  };
+
+  propagatedBuildInputs = [
+    rstr
+    sre-yield
+  ];
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+  ];
+
+  # Package has no tests
+  doCheck = false;
+  pythonImportsCheck = [ "stringbrewer" ];
+
+  meta = with lib; {
+    description = "Python library to generate random strings matching a pattern";
+    homepage = "https://github.com/simoncozens/stringbrewer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/txtorcon/default.nix b/pkgs/development/python-modules/txtorcon/default.nix
index c1acef68d19a5..03da40472d5ba 100644
--- a/pkgs/development/python-modules/txtorcon/default.nix
+++ b/pkgs/development/python-modules/txtorcon/default.nix
@@ -20,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "txtorcon";
-  version = "23.5.0";
+  version = "23.11.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-k/2Aqd1QX2mNCGT+k9uLapwRRLX+uRUwggtw7YmCZRw=";
+    hash = "sha256-cfha6T121yZRAFnJ7XTmCLxaXJ99EDhTtJ5BQoBAai8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-s3transfer/default.nix b/pkgs/development/python-modules/types-s3transfer/default.nix
index 44f025c23c1a2..5e87bd726bf74 100644
--- a/pkgs/development/python-modules/types-s3transfer/default.nix
+++ b/pkgs/development/python-modules/types-s3transfer/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "types-s3transfer";
-  version = "0.8.1";
+  version = "0.8.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "types_s3transfer";
     inherit version;
-    hash = "sha256-tng+wpElwAtWCzVNL+KhhdxcznahfCOsLWMGdK+nAEA=";
+    hash = "sha256-LkF1b8+Ud1qZSa+oVkiaxFcDCGCbBJPfvXtNMz60I+Y=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ufolint/default.nix b/pkgs/development/python-modules/ufolint/default.nix
new file mode 100644
index 0000000000000..c7b666c37fab3
--- /dev/null
+++ b/pkgs/development/python-modules/ufolint/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, commandlines
+, fonttools
+, fs
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ufolint";
+  version = "1.2.0";
+
+  # PyPI source tarballs omit tests, fetch from Github instead
+  src = fetchFromGitHub {
+    owner = "source-foundry";
+    repo = "ufolint";
+    rev = "v${version}";
+    hash = "sha256-sv8WbnDd2LFHkwNsB9FO04OlLhemdzwjq0tC9+Fd6/M=";
+  };
+
+  propagatedBuildInputs = [
+    commandlines
+    fs
+    fonttools
+  ];
+
+  doCheck = true;
+  nativeBuildInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Linter for Unified Font Object (UFO) source code";
+    homepage = "https://github.com/source-foundry/ufolint";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/vharfbuzz/default.nix b/pkgs/development/python-modules/vharfbuzz/default.nix
new file mode 100644
index 0000000000000..fb953a0e7be7d
--- /dev/null
+++ b/pkgs/development/python-modules/vharfbuzz/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fonttools
+, pythonImportsCheckHook
+, uharfbuzz
+}:
+
+buildPythonPackage rec {
+  pname = "vharfbuzz";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-uDX2fYqxV4wmAAIMfA3dBohWmq1N0VurSTEFOjSRpmY=";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+    uharfbuzz
+  ];
+  nativeBuildInputs = [
+    pythonImportsCheckHook
+  ];
+
+  # Package has no tests.
+  doCheck = false;
+  pythonImportsCheck = [ "vharfbuzz" ];
+
+  meta = with lib; {
+    description = "Utility for removing hinting data from TrueType and OpenType fonts";
+    homepage = "https://github.com/source-foundry/dehinter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch b/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
new file mode 100644
index 0000000000000..26af7ad24c92f
--- /dev/null
+++ b/pkgs/development/python-modules/youseedee/0001-use-packaged-unicode-data.patch
@@ -0,0 +1,25 @@
+From 9013d36cfe7b2958eb18ce373f49193b66a0bbf6 Mon Sep 17 00:00:00 2001
+From: Dan Callaghan <djc@djc.id.au>
+Date: Sun, 23 Apr 2023 16:14:55 +1000
+Subject: [PATCH] use packaged unicode data
+
+
+diff --git a/lib/youseedee/__init__.py b/lib/youseedee/__init__.py
+index 4424ef1..9a72f52 100644
+--- a/lib/youseedee/__init__.py
++++ b/lib/youseedee/__init__.py
+@@ -11,10 +11,7 @@
+ UCD_URL = "https://unicode.org/Public/UCD/latest/ucd/UCD.zip"
+ 
+ def ucd_dir():
+-  ucddir = os.path.expanduser("~/.youseedee")
+-  if not os.path.isdir(ucddir):
+-    os.mkdir(ucddir)
+-  return ucddir
++  return "@ucd_dir@"
+ 
+ def ensure_files():
+   if os.path.isfile(os.path.join(ucd_dir(), "UnicodeData.txt")):
+-- 
+2.38.4
+
diff --git a/pkgs/development/python-modules/youseedee/default.nix b/pkgs/development/python-modules/youseedee/default.nix
new file mode 100644
index 0000000000000..65a98c350b283
--- /dev/null
+++ b/pkgs/development/python-modules/youseedee/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, substituteAll
+, requests
+, unicode-character-database
+}:
+
+buildPythonPackage rec {
+  pname = "youseedee";
+  version = "0.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-fdI4CBUSMbdKW0qg4y22wjWI6bhotgDkQdFMc9X00as=";
+  };
+
+  patches = [
+    # Load data files from the unicode-character-database package instead of
+    # downloading them from the internet. (nixpkgs-specific, not upstreamable)
+    (substituteAll {
+      src = ./0001-use-packaged-unicode-data.patch;
+      ucd_dir = "${unicode-character-database}/share/unicode";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  doCheck = true;
+  # Package has no unit tests, but we can check an example as per README.rst:
+  checkPhase = ''
+    runHook preCheck
+    python -m youseedee 0x078A | grep -q "'Block': 'Thaana'"
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    description = "Python library for querying the Unicode Character Database";
+    homepage = "https://github.com/simoncozens/youseedee";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danc86 ];
+  };
+}
diff --git a/pkgs/development/skaware-packages/s6-man-pages/default.nix b/pkgs/development/skaware-packages/s6-man-pages/default.nix
index 417d2d368cd61..c21da0e17ae24 100644
--- a/pkgs/development/skaware-packages/s6-man-pages/default.nix
+++ b/pkgs/development/skaware-packages/s6-man-pages/default.nix
@@ -2,8 +2,8 @@
 
 buildManPages {
   pname = "s6-man-pages";
-  version = "2.11.3.2.4";
-  sha256 = "02dmccmcwssv8bkzs3dlbnwl6kkp1crlbnlv5ljbrgm26klw9rc7";
+  version = "2.12.0.2.1";
+  sha256 = "sha256-fFU+cRwXb4SwHsI/r0ghuzCf6hEK/muPPp2XMvD8VtQ=";
   description = "Port of the documentation for the s6 supervision suite to mdoc";
   maintainers = [ lib.maintainers.sternenseemann ];
 }
diff --git a/pkgs/development/tools/bloaty/default.nix b/pkgs/development/tools/bloaty/default.nix
index ff24e7b7c1cdf..96a6d28e97877 100644
--- a/pkgs/development/tools/bloaty/default.nix
+++ b/pkgs/development/tools/bloaty/default.nix
@@ -1,23 +1,55 @@
-{ lib, stdenv, cmake, zlib, fetchFromGitHub }:
+{ lib, stdenv, cmake, zlib, fetchFromGitHub, re2, abseil-cpp, protobuf, capstone, gtest, pkg-config, lit, llvmPackages_16 }:
 
 stdenv.mkDerivation rec {
-  version = "1.1";
   pname = "bloaty";
+  version = "1.1-unstable-2023-11-06";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bloaty";
-    rev = "v${version}";
-    sha256 = "1556gb8gb8jwf5mwxppcqz3mp269b5jhd51kj341iqkbn27zzngk";
-    fetchSubmodules = true;
+    rev = "16f9fe54d9cd0e9abe1d25fc1a9b44c214cfaa9f";
+    hash = "sha256-mIVlNMKtJMfH2QdYZ6+oV7619oYzvKkq3fHY6uofqlM=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  # Old vendored package which has no other use than here, so not packaged in nixpkgs.
+  demumble = fetchFromGitHub {
+    owner = "nico";
+    repo = "demumble";
+    rev = "01098eab821b33bd31b9778aea38565cd796aa85";
+    hash = "sha256-605SsXd7TSdm3BH854ChHIZbOXcHI/n8RN+pFMz4Ex4=";
+  };
+
+  cmakeFlags = [
+    "-DLIT_EXECUTABLE=${lit}/bin/lit"
+    "-DFILECHECK_EXECUTABLE=${llvmPackages_16.libllvm}/bin/FileCheck"
+    "-DYAML2OBJ_EXECUTABLE=${llvmPackages_16.libllvm}/bin/yaml2obj"
+  ];
+
+  postPatch = ''
+    # Build system relies on some of those source files
+    rm -rf third_party/googletest third_party/abseil-cpp third_party/demumble
+    ln -s ${gtest.src} third_party/googletest
+    ln -s ${abseil-cpp.src} third_party/abseil-cpp
+    ln -s ${demumble} third_party/demumble
+    substituteInPlace CMakeLists.txt \
+      --replace "find_package(Python COMPONENTS Interpreter)" "" \
+      --replace "if(Python_FOUND AND LIT_EXECUTABLE" "if(LIT_EXECUTABLE" \
+      --replace "COMMAND \''\${Python_EXECUTABLE} \''\${LIT_EXECUTABLE}" "COMMAND \''\${LIT_EXECUTABLE}"
+    # wasm test fail. Possibly due to LLVM version < 17. See https://github.com/google/bloaty/pull/354
+    rm -rf tests/wasm
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
 
-  buildInputs = [ zlib ];
+  buildInputs = [ zlib re2 abseil-cpp protobuf capstone gtest lit llvmPackages_16.libllvm ];
 
   doCheck = true;
 
+  postCheck = ''
+    # These lit tests need to be build seperatly.
+    # See https://github.com/google/bloaty/blob/main/tests/README.md
+    cmake --build . --target check-bloaty
+  '';
   installPhase = ''
     install -Dm755 {.,$out/bin}/bloaty
   '';
diff --git a/pkgs/development/tools/cucumber/Gemfile.lock b/pkgs/development/tools/cucumber/Gemfile.lock
index 11d066eaea1b4..56928d9368e93 100644
--- a/pkgs/development/tools/cucumber/Gemfile.lock
+++ b/pkgs/development/tools/cucumber/Gemfile.lock
@@ -2,12 +2,12 @@ GEM
   remote: https://rubygems.org/
   specs:
     builder (3.2.4)
-    cucumber (9.0.2)
+    cucumber (9.1.0)
       builder (~> 3.2, >= 3.2.4)
       cucumber-ci-environment (~> 9.2, >= 9.2.0)
-      cucumber-core (~> 11.1, >= 11.1.0)
-      cucumber-cucumber-expressions (~> 16.1, >= 16.1.2)
-      cucumber-gherkin (>= 24, < 26.2.1)
+      cucumber-core (~> 12.0)
+      cucumber-cucumber-expressions (~> 17.0)
+      cucumber-gherkin (>= 24, < 27)
       cucumber-html-formatter (~> 20.4, >= 20.4.0)
       cucumber-messages (>= 19, < 23)
       diff-lcs (~> 1.5, >= 1.5.0)
@@ -15,17 +15,17 @@ GEM
       multi_test (~> 1.1, >= 1.1.0)
       sys-uname (~> 1.2, >= 1.2.3)
     cucumber-ci-environment (9.2.0)
-    cucumber-core (11.1.0)
-      cucumber-gherkin (>= 24, < 27)
-      cucumber-messages (>= 19, < 22)
-      cucumber-tag-expressions (~> 4.1, >= 4.1.0)
-    cucumber-cucumber-expressions (16.1.2)
+    cucumber-core (12.0.0)
+      cucumber-gherkin (>= 25, < 27)
+      cucumber-messages (>= 20, < 23)
+      cucumber-tag-expressions (~> 5.0, >= 5.0.4)
+    cucumber-cucumber-expressions (17.0.1)
     cucumber-gherkin (26.2.0)
       cucumber-messages (>= 19.1.4, < 22.1)
     cucumber-html-formatter (20.4.0)
       cucumber-messages (>= 18.0, < 22.1)
-    cucumber-messages (21.0.1)
-    cucumber-tag-expressions (4.1.0)
+    cucumber-messages (22.0.0)
+    cucumber-tag-expressions (5.0.6)
     diff-lcs (1.5.0)
     ffi (1.16.3)
     mini_mime (1.1.5)
@@ -40,4 +40,4 @@ DEPENDENCIES
   cucumber
 
 BUNDLED WITH
-   2.4.20
+   2.4.22
diff --git a/pkgs/development/tools/cucumber/gemset.nix b/pkgs/development/tools/cucumber/gemset.nix
index 16d750887a3e2..1f8f35f1098c0 100644
--- a/pkgs/development/tools/cucumber/gemset.nix
+++ b/pkgs/development/tools/cucumber/gemset.nix
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0hwbq5sn4hsd922j1p3a4p2404306yczgx2vqggvr20q01fzx55h";
+      sha256 = "0gmbbj4s4cv9aifks29q9w9yjcrvihcz1i8sijplwbps7334skv1";
       type = "gem";
     };
-    version = "9.0.2";
+    version = "9.1.0";
   };
   cucumber-ci-environment = {
     groups = ["default"];
@@ -36,20 +36,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "02mrykswrxziy08fc9fjvg3l2aa6jfji2012wzh7pyamhm8pcnjb";
+      sha256 = "1ylxpganbvlzcd4picmgbs060cf0nlpkjc7lqxndyr6xaz2g99y2";
       type = "gem";
     };
-    version = "11.1.0";
+    version = "12.0.0";
   };
   cucumber-cucumber-expressions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0s8bazf8bwlm0zar2316p4xxmpy44wyjnw2z6bj7zc5nl8nmyvym";
+      sha256 = "0xyvg7l2y9b9gh682z47zcf1na179n8j7bwfyahp79w8s047660b";
       type = "gem";
     };
-    version = "16.1.2";
+    version = "17.0.1";
   };
   cucumber-gherkin = {
     dependencies = ["cucumber-messages"];
@@ -78,20 +78,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0482a63y7my0arn2bv208g401dq8525f0gwhnwaa11mhv6ph0q5i";
+      sha256 = "06d7dnixz68ivngf6qflmi6xrjshjyi85gmyjrl07pbmhqi6r2nh";
       type = "gem";
     };
-    version = "21.0.1";
+    version = "22.0.0";
   };
   cucumber-tag-expressions = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v1ssg4chkahck1ddl2j1hcifm0vlcn9sb104ywshw5gyv59s9qd";
+      sha256 = "0rmbw044fdy2756ypnqray8abfxqvwrn1jhsdafdbjwihvvsk62f";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "5.0.6";
   };
   diff-lcs = {
     groups = ["default"];
diff --git a/pkgs/development/tools/fastgron/default.nix b/pkgs/development/tools/fastgron/default.nix
index d4ac30958a273..d92c72e04d8fc 100644
--- a/pkgs/development/tools/fastgron/default.nix
+++ b/pkgs/development/tools/fastgron/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "fastgron";
-  version = "0.6.4";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
     owner = "adamritter";
     repo = "fastgron";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-sGTJ98YEvy+pOFVLLIcvgUq5Pn4r1CYL9YEchZhoBeQ=";
+    hash = "sha256-R4s41p7pnYFrjM2CTY1TAYNZCCcKqBS4sPe54CTRFyY=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/go-task/default.nix b/pkgs/development/tools/go-task/default.nix
index f03d51273454a..77689b1e1f873 100644
--- a/pkgs/development/tools/go-task/default.nix
+++ b/pkgs/development/tools/go-task/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "go-task";
-  version = "3.31.0";
+  version = "3.32.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "task";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KkswkTgdhDzPLfbAdyhbo9IyYqxG5se0pt9QVTNZclM=";
+    hash = "sha256-ngBYnPwZ+B5BB2avnR2J6+8mNxT9vxtI8f9agNtD8uw=";
   };
 
-  vendorHash = "sha256-ha2vJDh1rduoFU4a1Ta1cNWegAGt2VCq8N1emUYUZ64=";
+  vendorHash = "sha256-mPQ7sSFLzvcWtNh3pFhHKpnu5gXK+wC5qbGMRLZFTBE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/goperf/default.nix b/pkgs/development/tools/goperf/default.nix
new file mode 100644
index 0000000000000..ed1a6c1a23b7e
--- /dev/null
+++ b/pkgs/development/tools/goperf/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildGoModule
+, fetchgit
+, writeShellScript
+, unstableGitUpdater
+, sd
+}:
+
+buildGoModule rec {
+  pname = "goperf";
+  version = "unstable-2023-11-08";
+
+  src = fetchgit {
+    url = "https://go.googlesource.com/perf";
+    rev = "cb71e802ccb878a069712546879bf26489f0f300";
+    hash = "sha256-1NvrelLsy9lrepttXXnggc0oycC6EgJgU80iXDu3IoI=";
+  };
+
+  vendorHash = "sha256-dJQHqIR6v0yYbxplytkdA98IHtdxnsvi9X6kIESCsB8=";
+
+  passthru.updateScript = writeShellScript "update-goperf" ''
+    export UPDATE_NIX_ATTR_PATH=goperf
+    ${lib.escapeShellArgs (unstableGitUpdater { inherit (src) url; })}
+    set -x
+    oldhash="$(nix-instantiate . --eval --strict -A "goperf.go-modules.drvAttrs.outputHash" | cut -d'"' -f2)"
+    newhash="$(nix-build -A goperf.go-modules --no-out-link 2>&1 | tail -n3 | grep 'got:' | cut -d: -f2- | xargs echo || true)"
+    fname="$(nix-instantiate --eval -E 'with import ./. {}; (builtins.unsafeGetAttrPos "version" goperf).file' | cut -d'"' -f2)"
+    ${lib.getExe sd} --string-mode "$oldhash" "$newhash" "$fname"
+  '';
+
+  meta = with lib; {
+    description = "Tools and packages for analyzing Go benchmark results";
+    homepage = "https://cs.opensource.google/go/x/perf";
+    license = licenses.bsd3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pbsds ];
+  };
+}
diff --git a/pkgs/development/tools/konstraint/default.nix b/pkgs/development/tools/konstraint/default.nix
index f5afe959967a6..b60011095f448 100644
--- a/pkgs/development/tools/konstraint/default.nix
+++ b/pkgs/development/tools/konstraint/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "konstraint";
-  version = "0.32.0";
+  version = "0.33.0";
 
   src = fetchFromGitHub {
     owner = "plexsystems";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-PSJNPN5hd5Tgt6F70II2gMiUiU0irncSefm6Q7WjUDE=";
+    sha256 = "sha256-rZDLnr3FNLNOadmST70p5ZusK+p9SiUmVrnc5TrKuK4=";
   };
-  vendorHash = "sha256-0zWTVE82GaSyWfgbRASpNdO/d4kKOts1XdPspmgfpV8=";
+  vendorHash = "sha256-gaY3U6+Emk6La5wPyT5TvgTwPsh2Ws2t7C8B5T4c46E=";
 
   # Exclude go within .github folder
   excludedPackages = ".github";
diff --git a/pkgs/development/tools/misc/segger-ozone/default.nix b/pkgs/development/tools/misc/segger-ozone/default.nix
index 9e048df457678..8109c1e42a368 100644
--- a/pkgs/development/tools/misc/segger-ozone/default.nix
+++ b/pkgs/development/tools/misc/segger-ozone/default.nix
@@ -1,14 +1,13 @@
-{ stdenv
+{ lib
+, stdenv
 , fetchurl
+, autoPatchelfHook
 , fontconfig
 , freetype
-, lib
 , libICE
 , libSM
-, udev
 , libX11
 , libXcursor
-, libXext
 , libXfixes
 , libXrandr
 , libXrender
@@ -16,42 +15,45 @@
 
 stdenv.mkDerivation rec {
   pname = "segger-ozone";
-  version = "3.28e";
+  version = "3.30b";
 
-  src = fetchurl {
-    url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${(lib.replaceStrings ["."] [""] version)}_x86_64.tgz";
-    sha256 = "BfmKBAKyTA0V31zkwFLrbT0Xob221KfHa6v0VxKFsSI=";
-  };
+  src = {
+    x86_64-linux = fetchurl {
+      url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${builtins.replaceStrings ["."] [""] version}_x86_64.tgz";
+      hash = "sha256-W8Fo0q58pAn1aB92CjYARcN3vMLEguvsyozsS7VRArQ=";
+    };
+    i686-linux = fetchurl {
+      url = "https://www.segger.com/downloads/jlink/Ozone_Linux_V${builtins.replaceStrings ["."] [""] version}_i386.tgz";
+      hash = "sha256-Xq/69lwF2Ll5VdkYMDNRtc0YUUvWc+XR0FHJXxOLNQ4=";
+    };
+  }.${stdenv.hostPlatform.system} or (throw "unsupported system: ${stdenv.hostPlatform.system}");
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
 
-  rpath = lib.makeLibraryPath [
+  buildInputs = [
     fontconfig
     freetype
     libICE
     libSM
-    udev
     libX11
     libXcursor
-    libXext
     libXfixes
     libXrandr
     libXrender
-  ]
-  + ":${stdenv.cc.cc.lib}/lib64";
+    stdenv.cc.cc.lib
+  ];
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin
     mv Lib lib
     mv * $out
     ln -s $out/Ozone $out/bin
-  '';
-
-  postFixup = ''
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$out/Ozone" \
-      --set-rpath ${rpath}:$out/lib "$out/Ozone"
 
-    for file in $(find $out/lib -maxdepth 1 -type f -and -name \*.so\*); do
-      patchelf --set-rpath ${rpath}:$out/lib $file
-    done
+    runHook postInstall
   '';
 
   meta = with lib; {
@@ -80,6 +82,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.bmilanov ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-deb/default.nix b/pkgs/development/tools/rust/cargo-deb/default.nix
index a9b76710605ed..257819f4ad3b7 100644
--- a/pkgs/development/tools/rust/cargo-deb/default.nix
+++ b/pkgs/development/tools/rust/cargo-deb/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deb";
-  version = "1.42.2";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "kornelski";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-s/piZ8sCdBz5zFW9i7xdVrf7dQiMjQp/ixCDjFh5SLc=";
+    hash = "sha256-DgKGnIA2ovBLja+r+nYZ97UPaWO7a7RXeXa10guZBTc=";
   };
 
-  cargoHash = "sha256-4iJghmSXsaijNCvYyrM3dEsqCDk6zeTU92oP5Qs6tOY=";
+  cargoHash = "sha256-Sv9i8f0ywMNvjA2yvCX+2ZhFuNCovEGiaMxkg/IV36g=";
 
   nativeBuildInputs = [
     makeWrapper
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
   # This is an FHS specific assert depending on glibc location
   checkFlags = [
     "--skip=dependencies::resolve_test"
+    "--skip=run_cargo_deb_command_on_example_dir_with_separate_debug_symbols"
   ];
 
   postInstall = ''
diff --git a/pkgs/development/tools/rust/cargo-update/default.nix b/pkgs/development/tools/rust/cargo-update/default.nix
index 99c10f7d21f68..3b3418f38dc06 100644
--- a/pkgs/development/tools/rust/cargo-update/default.nix
+++ b/pkgs/development/tools/rust/cargo-update/default.nix
@@ -16,14 +16,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-update";
-  version = "13.2.0";
+  version = "13.3.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-yMHGn/RPtYuxS3rHzm87mW7nBUEaSOGsCT7Ckxvhabk=";
+    sha256 = "sha256-owiMVeH7m4LoM8c4qjLyFx3v/+Flzt+C+O8qEuXazvc=";
   };
 
-  cargoHash = "sha256-hO2W0NRV9fGHnnS1kOkQ+e0sFzVSBQk3MOm8qDYbA00=";
+  cargoHash = "sha256-WtNH62DBo6WFOUcHnZxn0Jco4SUmhO0+1wXPRB2wxic=";
 
   nativeBuildInputs = [
     cmake
diff --git a/pkgs/development/tools/vsce/default.nix b/pkgs/development/tools/vsce/default.nix
index caddb568c65f0..911ee57a6932c 100644
--- a/pkgs/development/tools/vsce/default.nix
+++ b/pkgs/development/tools/vsce/default.nix
@@ -12,13 +12,13 @@
 
 buildNpmPackage rec {
   pname = "vsce";
-  version = "2.21.1";
+  version = "2.22.0";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "vscode-vsce";
     rev = "v${version}";
-    hash = "sha256-cFqjoWQu/6cvbT1vxReERybuKpeL4LCVl5qhvSwr6fs=";
+    hash = "sha256-zpZ/PsqZ9yRDKTXkSrcBgSxYer7JdjNZqsseHwfzkEY=";
   };
 
   npmDepsHash = "sha256-Difk9a9TYmfwzP9SawEuaxm7iHVjdfO+FxFCE7aEMzM=";
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 9dbbd19d46808..35066727de98d 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.40.1";
+  version = "4.40.3";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    hash = "sha256-S2hsZkospf1VMH/fDLiALEraOA8dbG62JejGY2T/tRU=";
+    hash = "sha256-id8KhHOOpRruANLGxdHIvs86ZEIDzhdbXtgXqWtl5Tc=";
   };
 
-  vendorHash = "sha256-ggb8ZX2KBj/oY+vomCme/7KlnfsykMm4l027kwlxpWY=";
+  vendorHash = "sha256-9gLtVO4HFra1FaFjTwE02x8q1MkrI/Vo/mYZ2iIa7cU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -23,7 +23,7 @@ buildGoModule rec {
   '';
 
   passthru.tests = {
-    simple = runCommand "${pname}-test" {} ''
+    simple = runCommand "${pname}-test" { } ''
       echo "test: 1" | ${yq-go}/bin/yq eval -j > $out
       [ "$(cat $out | tr -d $'\n ')" = '{"test":1}' ]
     '';
diff --git a/pkgs/games/doom-ports/zandronum/add_gitinfo.patch b/pkgs/games/doom-ports/zandronum/add_gitinfo.patch
index 4d8d7c8379618..33f51ecb125dd 100644
--- a/pkgs/games/doom-ports/zandronum/add_gitinfo.patch
+++ b/pkgs/games/doom-ports/zandronum/add_gitinfo.patch
@@ -1,15 +1,15 @@
-diff -Naur blah/src/gitinfo.h blah2/src/gitinfo.h
---- blah/src/gitinfo.h	1969-12-31 16:00:00.000000000 -0800
-+++ blah2/src/gitinfo.h	2017-09-15 01:44:43.953562714 -0700
+diff -r 4178904d7698 src/gitinfo.h
+--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
++++ b/src/gitinfo.h	Fri Dec 01 13:02:42 2023 -0300
 @@ -0,0 +1,11 @@
-+// dd3c3b57023f64cda84f09ed13e4c03a4ad2b920
++// 4178904d769879e6c2919fb647ee6dd2736399e9
 +//
 +// This file was automatically generated by the
 +// updaterevision tool. Do not edit by hand.
 +
-+#define GIT_DESCRIPTION "ZA_3.0-0-dd3c3b57023f"
-+#define GIT_HASH "dd3c3b57023f64cda84f09ed13e4c03a4ad2b920"
-+#define GIT_TIME "2017-09-01 06:40:50 -0500"
-+#define HG_REVISION_NUMBER 1504266050
-+#define HG_REVISION_HASH_STRING "dd3c3b57023f"
-+#define HG_TIME "170901-1140"
++#define GIT_DESCRIPTION "ZA_3.0.1-572-4178904d7698"
++#define GIT_HASH "4178904d769879e6c2919fb647ee6dd2736399e9"
++#define GIT_TIME "2021-12-11 16:35:55 -0500"
++#define HG_REVISION_NUMBER 1639258555
++#define HG_REVISION_HASH_STRING "4178904d7698"
++#define HG_TIME "211211-2135"
diff --git a/pkgs/games/doom-ports/zandronum/default.nix b/pkgs/games/doom-ports/zandronum/default.nix
index 436a8738b5b12..0006ea3c7ce54 100644
--- a/pkgs/games/doom-ports/zandronum/default.nix
+++ b/pkgs/games/doom-ports/zandronum/default.nix
@@ -1,36 +1,54 @@
-{ stdenv, lib, fetchhg, cmake, pkg-config, makeWrapper, callPackage
-, soundfont-fluid, SDL, libGL, glew, bzip2, zlib, libjpeg, fluidsynth, openssl, gtk2, python3, game-music-emu
+{ stdenv
+, lib
+, fetchhg
+, cmake
+, pkg-config
+, makeWrapper
+, callPackage
+, soundfont-fluid
+, SDL_compat
+, libGL
+, glew
+, bzip2
+, zlib
+, libjpeg
+, fluidsynth
+, fmodex
+, openssl
+, gtk2
+, python3
+, game-music-emu
 , serverOnly ? false
 }:
 
 let
   suffix = lib.optionalString serverOnly "-server";
-  fmod = callPackage ./fmod.nix { };
+  fmod = fmodex; # fmodex is on nixpkgs now
   sqlite = callPackage ./sqlite.nix { };
   clientLibPath = lib.makeLibraryPath [ fluidsynth ];
 
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "zandronum${suffix}";
-  version = "3.0.1";
+  version = "3.1.0";
 
   src = fetchhg {
-    url = "https://hg.osdn.net/view/zandronum/zandronum-stable";
-    rev = "ZA_${version}";
-    sha256 = "16v5b6wfrmabs3ky6isbfhlrqdjrr1pvfxlxwk0im02kcpxxw9qw";
+    # expired ssl certificate
+    url = "http://hg.osdn.net/view/zandronum/zandronum-stable";
+    rev = "4178904d7698";
+    hash = "sha256-5t36CoRPPjDKQE0DVSv2Qqpqko6JAXBI53tuAYiylHQ=";
   };
 
   # zandronum tries to download sqlite now when running cmake, don't let it
-
   # it also needs the current mercurial revision info embedded in gitinfo.h
   # otherwise, the client will fail to connect to servers because the
   # protocol version doesn't match.
-
-  patches = [ ./zan_configure_impurity.patch ./add_gitinfo.patch ./dont_update_gitinfo.patch ];
+  patches = [ ./zan_configure_impurity.patch ./dont_update_gitinfo.patch ./add_gitinfo.patch ];
 
   # I have no idea why would SDL and libjpeg be needed for the server part!
   # But they are.
-  buildInputs = [ openssl bzip2 zlib SDL libjpeg sqlite game-music-emu ]
-             ++ lib.optionals (!serverOnly) [ libGL glew fmod fluidsynth gtk2 ];
+  buildInputs = [ openssl bzip2 zlib SDL_compat libjpeg sqlite game-music-emu ]
+    ++ lib.optionals (!serverOnly) [ libGL glew fmod fluidsynth gtk2 ];
 
   nativeBuildInputs = [ cmake pkg-config makeWrapper python3 ];
 
@@ -53,6 +71,7 @@ in stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  # Won't work well without C or en_US. Setting LANG might not be enough if the user is making use of LC_* so wrap with LC_ALL instead
   installPhase = ''
     mkdir -p $out/bin
     mkdir -p $out/lib/zandronum
@@ -61,6 +80,8 @@ in stdenv.mkDerivation rec {
        ${lib.optionalString (!serverOnly) "liboutput_sdl.so"} \
        $out/lib/zandronum
     makeWrapper $out/lib/zandronum/zandronum${suffix} $out/bin/zandronum${suffix}
+    wrapProgram $out/bin/zandronum${suffix} \
+      --set LC_ALL="C"
   '';
 
   postFixup = lib.optionalString (!serverOnly) ''
@@ -76,7 +97,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://zandronum.com/";
     description = "Multiplayer oriented port, based off Skulltag, for Doom and Doom II by id Software";
     maintainers = with maintainers; [ lassulus MP2E ];
-    license = licenses.unfreeRedistributable;
+    license = licenses.sleepycat;
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch b/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch
index d6dd3a58f4577..d1cf831819c32 100644
--- a/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch
+++ b/pkgs/games/doom-ports/zandronum/dont_update_gitinfo.patch
@@ -1,10 +1,10 @@
-diff -r dd3c3b57023f src/CMakeLists.txt
---- a/src/CMakeLists.txt	Fri Sep 01 06:40:50 2017 -0500
-+++ b/src/CMakeLists.txt	Fri Sep 15 01:46:34 2017 -0700
-@@ -636,15 +636,6 @@
-	add_definitions( -DBACKPATCH )
+diff -r 4178904d7698 src/CMakeLists.txt
+--- a/src/CMakeLists.txt	Sat Dec 11 16:35:55 2021 -0500
++++ b/src/CMakeLists.txt	Fri Dec 01 13:00:32 2023 -0300
+@@ -642,15 +642,6 @@
+ 	add_definitions( -DBACKPATCH )
  endif( BACKPATCH )
-
+ 
 -# Update gitinfo.h
 -
 -get_target_property( UPDATEREVISION_EXE updaterevision LOCATION )
@@ -15,5 +15,5 @@ diff -r dd3c3b57023f src/CMakeLists.txt
 -	DEPENDS updaterevision )
 -
  # Libraries ZDoom needs
-
+ 
  message( STATUS "Fluid synth libs: ${FLUIDSYNTH_LIBRARIES}" )
diff --git a/pkgs/games/doom-ports/zandronum/sqlite.nix b/pkgs/games/doom-ports/zandronum/sqlite.nix
index c7687f89589d7..67dbb84f515a8 100644
--- a/pkgs/games/doom-ports/zandronum/sqlite.nix
+++ b/pkgs/games/doom-ports/zandronum/sqlite.nix
@@ -8,8 +8,8 @@ stdenv.mkDerivation {
   version = "3.0";
 
   src = fetchurl {
-    url = "https://www.sqlite.org/2017/sqlite-autoconf-3180000.tar.gz";
-    hash = "sha256-N1dhJGOXbn0IxenwrzAhYT/CS7z+HFEZfWd2uezprFw=";
+    url = "https://www.sqlite.org/2021/sqlite-autoconf-3360000.tar.gz";
+    sha256 = "1qxwkfvd185dfcqbakrzikrsw6ffr5jp1gl3dch9dsdyjvmw745x";
   };
 
   buildPhase = ''
diff --git a/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch b/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch
index 0cf7150502e4e..9dafc6219d296 100644
--- a/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch
+++ b/pkgs/games/doom-ports/zandronum/zan_configure_impurity.patch
@@ -1,13 +1,13 @@
-diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
---- a/sqlite/CMakeLists.txt	Sun Sep 10 18:53:00 2017 +0200
-+++ b/sqlite/CMakeLists.txt	Fri Sep 15 00:12:11 2017 -0700
-@@ -1,62 +1,5 @@
+diff -r 4178904d7698 sqlite/CMakeLists.txt
+--- a/sqlite/CMakeLists.txt	Sat Dec 11 16:35:55 2021 -0500
++++ b/sqlite/CMakeLists.txt	Fri Dec 01 12:57:55 2023 -0300
+@@ -1,65 +1,5 @@
  cmake_minimum_required( VERSION 2.4 )
-
+ 
 -# [BB/EP] Download SQLite archive and extract the sources if necessary.
--set( ZAN_SQLITE_VERSION 3180000 ) # SQL version 3.18.0
--set( ZAN_SQLITE_YEAR 2017 )
--set( ZAN_SQLITE_SHA1 "74559194e1dd9b9d577cac001c0e9d370856671b" )
+-set( ZAN_SQLITE_VERSION 3360000 ) # SQL version 3.36.0
+-set( ZAN_SQLITE_YEAR 2021 )
+-set( ZAN_SQLITE_SHA1 "a4bcf9e951bfb9745214241ba08476299fc2dc1e" )
 -set( ZAN_SQLITE_DOWNLOAD_NAME "sqlite-autoconf-${ZAN_SQLITE_VERSION}" )
 -set( ZAN_SQLITE_TEMP_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz" )
 -set( ZAN_SQLITE_HASHED_ARCHIVE "${CMAKE_CURRENT_SOURCE_DIR}/sqlite-${ZAN_SQLITE_SHA1}.tar.gz" )
@@ -15,38 +15,41 @@ diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
 -if( IS_DIRECTORY ${ZAN_SQLITE_HASHED_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_HASHED_ARCHIVE} )
 -	message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_HASHED_ARCHIVE} must be a valid file.\n"
 -				"SQLite: Please remove it and try again." )
--elseif( NOT EXISTS ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-elseif( ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3.c ) OR ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3.h ) OR ( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/sqlite3ext.h ) )
 -
--	if( IS_DIRECTORY ${ZAN_SQLITE_TEMP_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_TEMP_ARCHIVE} )
--		message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_TEMP_ARCHIVE} must be a valid file.\n"
+-	if( NOT EXISTS ${ZAN_SQLITE_HASHED_ARCHIVE} )
+-		if( IS_DIRECTORY ${ZAN_SQLITE_TEMP_ARCHIVE} OR IS_SYMLINK ${ZAN_SQLITE_TEMP_ARCHIVE} )
+-			message( FATAL_ERROR "SQLite: ${ZAN_SQLITE_TEMP_ARCHIVE} must be a valid file.\n"
 -					"SQLite: Please remove it and try again." )
--	endif()
--	message( STATUS "SQLite: downloading the archive..." )
+-		endif()
 -
--	file( DOWNLOAD https://www.sqlite.org/${ZAN_SQLITE_YEAR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz ${ZAN_SQLITE_TEMP_ARCHIVE}
--			SHOW_PROGRESS
--			STATUS ZAN_SQLITE_DOWNLOAD_STATUS )
+-		message( STATUS "SQLite: downloading the archive..." )
 -
--	# Report any problem if present and abort immediately.
--	list( GET ZAN_SQLITE_DOWNLOAD_STATUS 0 ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
--	if( ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
--		list( GET ZAN_SQLITE_DOWNLOAD_STATUS 1 ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE )
--		message( FATAL_ERROR "SQLite: download failed. Reason: ${ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE}" )
--	endif()
+-		file( DOWNLOAD https://www.sqlite.org/${ZAN_SQLITE_YEAR}/${ZAN_SQLITE_DOWNLOAD_NAME}.tar.gz ${ZAN_SQLITE_TEMP_ARCHIVE}
+-				SHOW_PROGRESS
+-				STATUS ZAN_SQLITE_DOWNLOAD_STATUS )
+-
+-		# Report any problem if present and abort immediately.
+-		list( GET ZAN_SQLITE_DOWNLOAD_STATUS 0 ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-		if( ZAN_SQLITE_DOWNLOAD_ERROR_CODE )
+-			list( GET ZAN_SQLITE_DOWNLOAD_STATUS 1 ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE )
+-			message( FATAL_ERROR "SQLite: download failed. Reason: ${ZAN_SQLITE_DOWNLOAD_ERROR_MESSAGE}" )
+-		endif()
 -
--	# Check the hash. Abort immediately if it's not valid (something is wrong with the download)
--	file( SHA1 ${ZAN_SQLITE_TEMP_ARCHIVE} ZAN_SQLITE_CURRENT_SHA1 )
--	if( NOT ZAN_SQLITE_CURRENT_SHA1 STREQUAL ZAN_SQLITE_SHA1 )
--		message( FATAL_ERROR "SQLite: download failed. The downloaded file has a different hash:\n"
--					"SQLite:    valid:      ${ZAN_SQLITE_SHA1}\n"
--					"SQLite:    downloaded: ${ZAN_SQLITE_CURRENT_SHA1}" )
+-		# Check the hash. Abort immediately if it's not valid (something is wrong with the download)
+-		file( SHA1 ${ZAN_SQLITE_TEMP_ARCHIVE} ZAN_SQLITE_CURRENT_SHA1 )
+-		if( NOT ZAN_SQLITE_CURRENT_SHA1 STREQUAL ZAN_SQLITE_SHA1 )
+-			message( FATAL_ERROR "SQLite: download failed. The downloaded file has a different hash:\n"
+-						"SQLite:    valid:      ${ZAN_SQLITE_SHA1}\n"
+-						"SQLite:    downloaded: ${ZAN_SQLITE_CURRENT_SHA1}" )
+-		endif()
+-
+-		# Rename the archive.
+-		execute_process( COMMAND ${CMAKE_COMMAND} -E rename ${ZAN_SQLITE_TEMP_ARCHIVE} ${ZAN_SQLITE_HASHED_ARCHIVE} )
 -	endif()
 -
 -	message( STATUS "SQLite: saving the source files into the 'sqlite' directory." )
 -
--	# Rename the archive.
--	execute_process( COMMAND ${CMAKE_COMMAND} -E rename ${ZAN_SQLITE_TEMP_ARCHIVE} ${ZAN_SQLITE_HASHED_ARCHIVE} )
--
 -	# Extract the archive.
 -	execute_process( COMMAND ${CMAKE_COMMAND} -E tar xzf ${ZAN_SQLITE_HASHED_ARCHIVE} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} )
 -
@@ -61,5 +64,6 @@ diff -r 6d5130e4ae52 sqlite/CMakeLists.txt
 -	message( STATUS "SQLite: done." )
 -endif()
 -
- add_library( sqlite3 sqlite3.c )
- target_link_libraries( sqlite3 ${CMAKE_DL_LIBS} )
+ # [BB] Silence all GCC warnings
+ IF ( CMAKE_COMPILER_IS_GNUCXX )
+ 	ADD_DEFINITIONS ( -w )
diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix
index 4a5670bb9c3e0..a9e9f860d8528 100644
--- a/pkgs/games/gcompris/default.nix
+++ b/pkgs/games/gcompris/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   version = "3.3";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
+    url = "mirror://kde/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
     hash = "sha256-8hqiq1wYw4irbOXCrwcJqTMuLISzSmSqPuw2Rn8XzQA=";
   };
 
diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix
index 88c27d864cf10..9d390292733fc 100644
--- a/pkgs/games/runelite/default.nix
+++ b/pkgs/games/runelite/default.nix
@@ -6,6 +6,7 @@
 , jre
 , xorg
 , gitUpdater
+, libGL
 }:
 
 maven.buildMavenPackage rec {
@@ -45,7 +46,7 @@ maven.buildMavenPackage rec {
     ln -s ${desktop}/share/applications/RuneLite.desktop $out/share/applications/RuneLite.desktop
 
     makeWrapper ${jre}/bin/java $out/bin/runelite \
-      --prefix LD_LIBRARY_PATH : "${xorg.libXxf86vm}/lib" \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ xorg.libXxf86vm libGL ]}" \
       --add-flags "-jar $out/share/RuneLite.jar"
   '';
 
diff --git a/pkgs/misc/scrcpy/default.nix b/pkgs/misc/scrcpy/default.nix
index 8630cc859917d..a1c8fb43c20f6 100644
--- a/pkgs/misc/scrcpy/default.nix
+++ b/pkgs/misc/scrcpy/default.nix
@@ -16,12 +16,12 @@
 }:
 
 let
-  version = "2.2";
+  version = "2.3.1";
   prebuilt_server = fetchurl {
     name = "scrcpy-server";
     inherit version;
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    hash = "sha256-yFxKqEMF77aRFc1JehIOvdECWJk7TPEjqCRbPZnUmHQ=";
+    hash = "sha256-9oFIIvwwinpTLyU0hckDgYPGKWpsXfRwqeODtPjnYFs=";
   };
 in
 stdenv.mkDerivation rec {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = "scrcpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2/IsDZJAtERs2AG6J4LR/ffy4XYmaj0KeSwZLQ849Lc=";
+    hash = "sha256-RM29WjzsYnn26x/Xr2RKp0p87/v+Jl8skEcAwxhZEtU=";
   };
 
   #   display.c: When run without a hardware accelerator, this allows the command to continue working rather than failing unexpectedly.
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index 25b28539bc39d..dfbd892615fd7 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -1,19 +1,19 @@
 {
     "testing": {
-        "version": "6.7-rc3",
-        "hash": "sha256:1bi80271g76pcajzmzr0dxcmzzlzicqddm38mr7pkz8zi0070arf"
+        "version": "6.7-rc4",
+        "hash": "sha256:1igynlm5pv62brfkyjh6w8lzvmmy8c3g8phrn5wgdyy8svc48r8h"
     },
     "6.5": {
         "version": "6.5.13",
         "hash": "sha256:1dfbbydmayfj9npx3z0g38p574pmcx3qgs49dv0npigl48wd9yvq"
     },
     "6.1": {
-        "version": "6.1.64",
-        "hash": "sha256:1ry7dp39010hfja1wial6r6q6ilgygwm7gdz22bg4rzaycwam7b2"
+        "version": "6.1.65",
+        "hash": "sha256:02mj394ina3npp6qqinc4pc6afp5pg1rlbjc90g4p902d29jjwj0"
     },
     "5.15": {
-        "version": "5.15.140",
-        "hash": "sha256:0isa9si9wjn10lw41431wdqsbp9y685ch5lzhwswng3g6j5ywaxy"
+        "version": "5.15.141",
+        "hash": "sha256:1yicgvq413801qrfzr0rdzwgg45dszrvfd6y9dmrhak9bk36lvck"
     },
     "5.10": {
         "version": "5.10.202",
@@ -32,7 +32,7 @@
         "hash": "sha256:03sk82dgvccv70i3hy8gf2hw0n4m305f7rxjw93p7jnjrbpdrp1r"
     },
     "6.6": {
-        "version": "6.6.3",
-        "hash": "sha256:19wmjkyyv5glv1w647qisrv829hhhpba5x905a7p7kch9wyzrv98"
+        "version": "6.6.4",
+        "hash": "sha256:0i9ym5nqf704iz5674k66kn9a5hkm0y0sdhqy5c6v39xr5h9dr29"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
index 85c8a8b8a10ea..8aaf8c5ecb16d 100644
--- a/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
+++ b/pkgs/os-specific/linux/kernel/linux-rt-6.1.nix
@@ -6,7 +6,7 @@
 , ... } @ args:
 
 let
-  version = "6.1.59-rt16"; # updated by ./update-rt.sh
+  version = "6.1.64-rt17"; # updated by ./update-rt.sh
   branch = lib.versions.majorMinor version;
   kversion = builtins.elemAt (lib.splitString "-" version) 0;
 in buildLinux (args // {
@@ -18,14 +18,14 @@ in buildLinux (args // {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v6.x/linux-${kversion}.tar.xz";
-    sha256 = "1860r1aan258yi2jq68bp1kdbcyy7ygc7d8g54wnc0vmqqj7fzv2";
+    sha256 = "1ry7dp39010hfja1wial6r6q6ilgygwm7gdz22bg4rzaycwam7b2";
   };
 
   kernelPatches = let rt-patch = {
     name = "rt";
     patch = fetchurl {
       url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
-      sha256 = "1cmgw6a8zlj89172mp85lxaksz1pvc155mj2fq59l1ry35gwb5q7";
+      sha256 = "1vvn21bprsqqzmqvcmj1jx3xn1dc6kih5fib9qpcyrh0j1c7s077";
     };
   }; in [ rt-patch ] ++ kernelPatches;
 
diff --git a/pkgs/os-specific/linux/light/default.nix b/pkgs/os-specific/linux/light/default.nix
index 6caa8e3945086..5a5064719fefa 100644
--- a/pkgs/os-specific/linux/light/default.nix
+++ b/pkgs/os-specific/linux/light/default.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
     description = "GNU/Linux application to control backlights";
     homepage = "https://haikarainen.github.io/light/";
     license = lib.licenses.gpl3;
+    mainProgram = "light";
     maintainers = with lib.maintainers; [ puffnfresh dtzWill ];
     platforms = lib.platforms.linux;
   };
diff --git a/pkgs/servers/komga/default.nix b/pkgs/servers/komga/default.nix
index f29a9b5f701e3..e35f552a347d2 100644
--- a/pkgs/servers/komga/default.nix
+++ b/pkgs/servers/komga/default.nix
@@ -8,11 +8,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "komga";
-  version = "1.6.4";
+  version = "1.8.3";
 
   src = fetchurl {
-    url = "https://github.com/gotson/${pname}/releases/download/v${version}/${pname}-${version}.jar";
-    sha256 = "sha256-tqrC3l2njYGRVIdvt86JVKTCVaAK7GPoYacx3hFRggg=";
+    url = "https://github.com/gotson/${pname}/releases/download/${version}/${pname}-${version}.jar";
+    sha256 = "sha256-kZzyDzFDVrzjScpvCFw5xXk3uCYW01sP7y28YDADVHc=";
   };
 
   nativeBuildInputs = [
@@ -27,12 +27,12 @@ stdenvNoCC.mkDerivation rec {
     komga = nixosTests.komga;
   };
 
-  meta = with lib; {
+  meta = {
     description = "Free and open source comics/mangas server";
     homepage = "https://komga.org/";
-    license = licenses.mit;
+    license = lib.licenses.mit;
     platforms = jdk17_headless.meta.platforms;
-    maintainers = with maintainers; [ govanify ];
+    maintainers = with lib.maintainers; [ govanify ];
     mainProgram = "komga";
   };
 
diff --git a/pkgs/servers/misc/virtiofsd/default.nix b/pkgs/servers/misc/virtiofsd/default.nix
index 8a1a1aca85a9d..db725261dbc3d 100644
--- a/pkgs/servers/misc/virtiofsd/default.nix
+++ b/pkgs/servers/misc/virtiofsd/default.nix
@@ -25,6 +25,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/virtio-fs/virtiofsd";
     description = "vhost-user virtio-fs device backend written in Rust";
     maintainers = with maintainers; [ qyliss astro ];
+    mainProgram = "virtiofsd";
     platforms = platforms.linux;
     license = with licenses; [ asl20 /* and */ bsd3 ];
   };
diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix
index 18af89b946b00..96487015df8c6 100644
--- a/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -14,16 +14,16 @@
 
 buildGoModule rec {
   pname = "grafana-agent";
-  version = "0.38.0";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "agent";
     rev = "v${version}";
-    hash = "sha256-lXjtKZJNkYffizNiX+rrRVu94mr+WXnsKKpEaLdd2Rs=";
+    hash = "sha256-caqJE92yEzqU/UQS7Cgxe+4+wGqBqPshhhPAyPP2WPQ=";
   };
 
-  vendorHash = "sha256-+6ReDdjCHED8kYVt7WSUFT+Gsmg+AIyS3oIfj2kTCGo=";
+  vendorHash = "sha256-aN/vIBbezieMhWG/czwXxx+/M40mDySZmM8pxVVs3Vs=";
   proxyVendor = true; # darwin/linux hash mismatch
 
   frontendYarnOfflineCache = fetchYarnDeps {
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index c4c9c75903a2c..d224a7695f96d 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -22,7 +22,16 @@ buildGoModule rec {
 
   nativeBuildInputs = [ wire ];
 
-  preBuild = ''
+  preBuild = let
+    skipTest = lineOffset: testCase: file:
+      let
+        jumpAndAppend = lib.concatStringsSep ";" (lib.replicate (lineOffset - 1) "n" ++ [ "a" ]);
+      in ''
+        sed -i -e '/${testCase}/{
+        ${jumpAndAppend} t.Skip();
+        }' ${file}
+      '';
+  in ''
     # Generate DI code that's required to compile the package.
     # From https://github.com/grafana/grafana/blob/v8.2.3/Makefile#L33-L35
     wire gen -tags oss ./pkg/server
@@ -42,12 +51,14 @@ buildGoModule rec {
     # [...]
     # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get latest.json repo from github.com" logger=update.checker error="Get \"https://raw.githubusercontent.com/grafana/grafana/main/latest.json\": dial tcp: lookup raw.githubusercontent.com on [::1]:53: read udp [::1]:36391->[::1]:53: read: connection refused"
     # grafana> t=2021-12-02T14:24:58+0000 lvl=dbug msg="Failed to get plugins repo from grafana.com" logger=plugin.manager error="Get \"https://grafana.com/api/plugins/versioncheck?slugIn=&grafanaVersion=\": dial tcp: lookup grafana.com on [::1]:53: read udp [::1]:41796->[::1]:53: read: connection refused"
-    sed -i -e '/Request is not forbidden if from an admin/a t.Skip();' pkg/tests/api/plugins/api_plugins_test.go
+    ${skipTest 1 "Request is not forbidden if from an admin" "pkg/tests/api/plugins/api_plugins_test.go"}
 
     # Skip a flaky test (https://github.com/NixOS/nixpkgs/pull/126928#issuecomment-861424128)
-    sed -i -e '/it should change folder successfully and return correct result/{N;s/$/\nt.Skip();/}'\
-      pkg/services/libraryelements/libraryelements_patch_test.go
+    ${skipTest 2 "it should change folder successfully and return correct result" "pkg/services/libraryelements/libraryelements_patch_test.go"}
 
+    # Skip flaky tests (https://logs.ofborg.org/?key=nixos/nixpkgs.263185&attempt_id=5b056a17-67a7-4b74-9dc7-888eb1d6c2dd)
+    ${skipTest 1 "TestIntegrationRulerAccess" "pkg/tests/api/alerting/api_alertmanager_test.go"}
+    ${skipTest 1 "TestIntegrationRulePause" "pkg/tests/api/alerting/api_ruler_test.go"}
 
     # main module (github.com/grafana/grafana) does not contain package github.com/grafana/grafana/scripts/go
     rm -r scripts/go
diff --git a/pkgs/servers/prowlarr/default.nix b/pkgs/servers/prowlarr/default.nix
index 9e43e30559dbe..a2fca49db2d3a 100644
--- a/pkgs/servers/prowlarr/default.nix
+++ b/pkgs/servers/prowlarr/default.nix
@@ -21,15 +21,15 @@ let
   }.${stdenv.hostPlatform.system} or unsupported;
 
   hash = {
-    aarch64-darwin = "sha256-5K18Vd0Ly/2YSmAvTbgiSQR8ifaz9wMs3vI0WFtB90g=";
-    aarch64-linux = "sha256-QI4+TVW/Zj1sI4yoxTGpzYNPufKnp68fLgDmajzD+6Y=";
-    x86_64-darwin = "sha256-qofWOMJIen8dI1wDFwNWeYuV9Ett3KvaTLfuK/v2USs=";
-    x86_64-linux = "sha256-qqAoXPdsjpn6Al5CLcvqfsZe9PRp8Swg1Wiy0w20hHs=";
+    aarch64-darwin = "sha256-l2HS1/HoKYf93qKxfMU80J3QOXjMRtX2A9hJm8E2Kh4=";
+    aarch64-linux = "sha256-ab5xavO2TVL1j9vqNv97bgAmQLZQJxnbam08DzdgDVE=";
+    x86_64-darwin = "sha256-nXas2i2eq7qdTFV0S+F5sPuqzSwE4qeJ+ms4fcJgZmQ=";
+    x86_64-linux = "sha256-HltmiQSJSwoW5+iEiXlJiCWwKRmuxDBcPbvOkJwLQXA=";
   }.${stdenv.hostPlatform.system} or unsupported;
 
 in stdenv.mkDerivation rec {
   inherit pname;
-  version = "1.9.4.4039";
+  version = "1.10.5.4116";
 
   src = fetchurl {
     url = "https://github.com/Prowlarr/Prowlarr/releases/download/v${version}/Prowlarr.master.${version}.${os}-core-${arch}.tar.gz";
diff --git a/pkgs/servers/rmfakecloud/webui.nix b/pkgs/servers/rmfakecloud/webui.nix
index f870dc013b5a3..2555bf50801cc 100644
--- a/pkgs/servers/rmfakecloud/webui.nix
+++ b/pkgs/servers/rmfakecloud/webui.nix
@@ -1,4 +1,4 @@
-{ version, src, stdenv, lib, fetchFromGitHub, fetchYarnDeps, fixup_yarn_lock, yarn, nodejs }:
+{ version, src, stdenv, lib, fetchFromGitHub, fetchYarnDeps, prefetch-yarn-deps, yarn, nodejs }:
 
 stdenv.mkDerivation rec {
   inherit version src;
@@ -10,12 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-37P+acjaeG7TCyLoIHIHsB+DCUOsQOJ1H9T5SgajtLc=";
   };
 
-  nativeBuildInputs = [ fixup_yarn_lock yarn nodejs ];
+  nativeBuildInputs = [ prefetch-yarn-deps yarn nodejs ];
 
   buildPhase = ''
     export HOME=$(mktemp -d)
     cd ui
-    fixup_yarn_lock yarn.lock
+    fixup-yarn-lock yarn.lock
     yarn config --offline set yarn-offline-mirror ${yarnOfflineCache}
     yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
     patchShebangs node_modules
diff --git a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
index 2a0f3de88499e..827fc57af62bb 100644
--- a/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
+++ b/pkgs/servers/sql/postgresql/ext/timescaledb_toolkit.nix
@@ -1,27 +1,48 @@
 { lib
 , fetchFromGitHub
-, buildPgxExtension
+, buildPgrxExtension
 , postgresql
 , nixosTests
-, cargo-pgx_0_7_1
+, cargo-pgrx
+, fetchCrate
 , nix-update-script
 , stdenv
 }:
 
-(buildPgxExtension.override {cargo-pgx = cargo-pgx_0_7_1;})rec {
+let
+
+  cargo-pgrx_0_10_2 = cargo-pgrx.overrideAttrs (old: rec {
+    name = "cargo-pgrx-${version}";
+    version = "0.10.2";
+
+    src = fetchCrate {
+      pname = "cargo-pgrx";
+      inherit version;
+      hash = "sha256-FqjfbJmSy5UCpPPPk4bkEyvQCnaH9zYtkI7txgIn+ls=";
+    };
+
+    cargoDeps = old.cargoDeps.overrideAttrs (_: {
+      inherit src;
+      outputHash = "sha256-itU000vyVGnDUUZx6qOLJqiPdyNHikW2KNFzBmJPqv0=";
+    });
+  });
+
+in
+
+(buildPgrxExtension.override { cargo-pgrx = cargo-pgrx_0_10_2; }) rec {
   inherit postgresql;
 
   pname = "timescaledb_toolkit";
-  version = "1.16.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "timescale";
     repo = "timescaledb-toolkit";
     rev = version;
-    sha256 = "sha256-aivGURTsm0dGaFq75qR3wIkXwsbvBiDEg+qLMcqKMj8=";
+    hash = "sha256-Lm/LFBkG91GeWlJL9RBqP8W0tlhBEeGQ6kXUzzv4xRE=";
   };
 
-  cargoSha256 = "sha256-AO5nSgQYvTmohXbzjWvDylnBgS2WpKP6wFOnkUx7ksI=";
+  cargoHash = "sha256-LME8oftHmmiN8GU3eTBTSB6m0CE+KtDFRssL1g2Cjm8=";
   buildAndTestSubdir = "extension";
 
   passthru = {
diff --git a/pkgs/servers/sunshine/default.nix b/pkgs/servers/sunshine/default.nix
index b5b855a4b6983..1767b544f21ac 100644
--- a/pkgs/servers/sunshine/default.nix
+++ b/pkgs/servers/sunshine/default.nix
@@ -31,6 +31,7 @@
 , libepoxy
 , libva
 , libvdpau
+, libglvnd
 , numactl
 , amf-headers
 , intel-media-sdk
@@ -131,6 +132,7 @@ stdenv.mkDerivation rec {
     mesa
     xorg.libXrandr
     libxcb
+    libglvnd
   ];
 
   cmakeFlags = [
diff --git a/pkgs/servers/web-apps/netbox/default.nix b/pkgs/servers/web-apps/netbox/default.nix
index ab648d7daa7b4..4c19eaf0a4d2e 100644
--- a/pkgs/servers/web-apps/netbox/default.nix
+++ b/pkgs/servers/web-apps/netbox/default.nix
@@ -22,8 +22,8 @@ lib.fix (self: {
   };
 
   netbox_3_6 = callPackage generic {
-    version = "3.6.3";
-    hash = "sha256-8Xir2Gvwh2cllHu5qVAzumuH0lknMMtjd8BuFuuf9A0=";
+    version = "3.6.6";
+    hash = "sha256-viC4grOqpWvG2pqcSi+MJykpEXSQYqfpkKF9it9Tj1g=";
     extraPatches = [
       # Allow setting the STATIC_ROOT from within the configuration and setting a custom redis URL
       ./config.patch
diff --git a/pkgs/shells/zsh/agdsn-zsh-config/default.nix b/pkgs/shells/zsh/agdsn-zsh-config/default.nix
index 6efbb285f29f2..9ff6c464bbe2f 100644
--- a/pkgs/shells/zsh/agdsn-zsh-config/default.nix
+++ b/pkgs/shells/zsh/agdsn-zsh-config/default.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "agdsn-zsh-config";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "agdsn";
     repo = "agdsn-zsh-config";
     rev = "v${version}";
-    sha256 = "sha256-kbpiA+aI3mXQAanmTyZo2rJNOKX77FKjpVsQywyyq90=";
+    sha256 = "sha256-8POQPk/hsJBMJ/ZJe9XzVj7Rd7C2+QnpzgYbUR0s3Fc=";
   };
 
   dontBuild = true;
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
index ef43a412482e7..88da6f0d33f43 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-go.nix
@@ -8,7 +8,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/go/pulumi-language-go";
 
-  vendorHash = "sha256-6JnRPns+qOLXP2RBjsgq4v6nuLn3uX8jF4+uinr2Wt8";
+  vendorHash = "sha256-mBK9VEatuxeoZtXXOKdwj7wtZ/lo4Bi2h7N00zK6Hpw=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
index dc1368afe2dff..f6d3cbec0c237 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-nodejs.nix
@@ -9,7 +9,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/nodejs/cmd/pulumi-language-nodejs";
 
-  vendorHash = "sha256-gbZoDUJCKb5wcLhJ7DRSGHT3Q0xUlptUeS6Wen4dle0";
+  vendorHash = "sha256-gEOVtAyn7v8tsRU11NgrD3swMFFBxOTIjMWCqSSvHlI=";
 
   postPatch = ''
     # Gives github.com/pulumi/pulumi/pkg/v3: is replaced in go.mod, but not marked as replaced in vendor/modules.txt etc
diff --git a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
index 16610c2f46f67..6994f26b92c69 100644
--- a/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
+++ b/pkgs/tools/admin/pulumi-packages/pulumi-language-python.nix
@@ -9,7 +9,7 @@ buildGoModule rec {
 
   sourceRoot = "${src.name}/sdk/python/cmd/pulumi-language-python";
 
-  vendorHash = "sha256-aLCgAcrgnNH/eYpGkr5Kj4xWjSgP76nz0YoV6998i9M=";
+  vendorHash = "sha256-upRXs8Bo0dpnANNetfXqkatip9bA+Fqhg72Cd60ltz8=";
 
   postPatch = ''
     substituteInPlace main_test.go \
diff --git a/pkgs/tools/admin/pulumi/default.nix b/pkgs/tools/admin/pulumi/default.nix
index 3aa9e58985c54..1998eec1bfcdb 100644
--- a/pkgs/tools/admin/pulumi/default.nix
+++ b/pkgs/tools/admin/pulumi/default.nix
@@ -14,7 +14,7 @@
 
 buildGoModule rec {
   pname = "pulumi";
-  version = "3.90.1";
+  version = "3.93.0";
 
   # Used in pulumi-language packages, which inherit this prop
   sdkVendorHash = lib.fakeHash;
@@ -23,12 +23,12 @@ buildGoModule rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-dAQpQapkdccRr/O8XT8dHrLwPvIPqeV8f3HS+GtK2GM=";
+    hash = "sha256-EaYYIbV7IItnmVfyEHtaAbAXvrZ8CXMjW+yNXOBIxg8=";
     # Some tests rely on checkout directory name
     name = "pulumi";
   };
 
-  vendorHash = "sha256-ijFYlHVH0axDpFoPGvthGVRt8UIUZDsWv3vAOe0U4H4";
+  vendorHash = "sha256-G+LspC6b2TvboMU6rKB0qrhhMNaLPVt/nUYZzkiVr/Q=";
 
   sourceRoot = "${src.name}/pkg";
 
diff --git a/pkgs/tools/compression/ouch/default.nix b/pkgs/tools/compression/ouch/default.nix
index b2e4bafc3af13..a1b4131ca7032 100644
--- a/pkgs/tools/compression/ouch/default.nix
+++ b/pkgs/tools/compression/ouch/default.nix
@@ -11,16 +11,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ouch";
-  version = "0.4.2";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "ouch-org";
     repo = "ouch";
     rev = version;
-    hash = "sha256-XJOv7JFUJulEkGCMLxGi9nldHaPM/CUzyENIC2TdtoE=";
+    hash = "sha256-WqV04GhX7lIla5BEdHRgRZsAWBSweb1HFAC9XZYqpYo=";
   };
 
-  cargoHash = "sha256-TfAAU46rH6Jq0MuLRjbaVMRjzoSLYNAWBnUcT8DyIVg=";
+  cargoHash = "sha256-A3YcgHed5mp7//FMoC/02KAU7Y+7YiG50eWE9tP5mF8=";
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
diff --git a/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch b/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
index a01822c0366e9..38d5dcd3af16f 100644
--- a/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
+++ b/pkgs/tools/games/pocket-updater-utility/add-runtime-identifier.patch
@@ -1,14 +1,14 @@
-From ccbe5c0401d6965a6daaa0b7bb022f63908c8942 Mon Sep 17 00:00:00 2001
+From c9ca58262045b82537bd8284d426c91582cc7ed7 Mon Sep 17 00:00:00 2001
 From: Philipp Rintz <git@rintz.net>
-Date: Mon, 28 Aug 2023 19:19:41 +0200
+Date: Thu, 28 Sep 2023 21:22:18 +0200
 Subject: [PATCH] uncommited
 
 ---
- pocket_updater.csproj | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
+ pocket_updater.csproj | 1 +
+ 1 file changed, 1 insertion(+)
 
 diff --git a/pocket_updater.csproj b/pocket_updater.csproj
-index 11f604c..410bd47 100644
+index 30f77d5..ad6bf69 100644
 --- a/pocket_updater.csproj
 +++ b/pocket_updater.csproj
 @@ -12,6 +12,7 @@
@@ -19,13 +19,6 @@ index 11f604c..410bd47 100644
    </PropertyGroup>
    <ItemGroup>
      <PackageReference Include="CommandLineParser" Version="2.9.1" />
-@@ -26,4 +27,4 @@
-   <ItemGroup>
-     <RuntimeHostConfigurationOption Include="System.Globalization.Invariant" Value="true" />
-   </ItemGroup>
--</Project>
-\ No newline at end of file
-+</Project>
 -- 
 2.40.1
 
diff --git a/pkgs/tools/games/pocket-updater-utility/default.nix b/pkgs/tools/games/pocket-updater-utility/default.nix
index 2d841c00c5168..3fb5acb27aae4 100644
--- a/pkgs/tools/games/pocket-updater-utility/default.nix
+++ b/pkgs/tools/games/pocket-updater-utility/default.nix
@@ -7,17 +7,18 @@
 , openssl ? pkgs.openssl
 , zlib ? pkgs.zlib
 , hostPlatform ? stdenv.hostPlatform
+, nix-update-script ? stdenv.nix-update-script
 }:
 
 buildDotnetModule rec {
   pname = "pocket-updater-utility";
-  version = "2.31.0";
+  version = "2.37.0";
 
   src = fetchFromGitHub {
     owner = "mattpannella";
     repo = "${pname}";
     rev = "${version}";
-    hash = "sha256-z90YITAW2Nv+Mq2q56As4PoHqGPEnvDUPH73bhz/xnw=";
+    hash = "sha256-J9FYmoUNkMhLWsRCf64qBDAJaP8AIWGcuH0UjWx90ls=";
   };
 
   buildInputs = [
@@ -48,6 +49,10 @@ buildDotnetModule rec {
   dotnet-sdk = dotnetCorePackages.sdk_6_0;
   dotnet-runtime = dotnetCorePackages.runtime_6_0;
 
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
     homepage = "https://github.com/mattpannella/pocket-updater-utility";
     description = "Analogue Pocket Updater Utility";
diff --git a/pkgs/tools/games/pocket-updater-utility/deps.nix b/pkgs/tools/games/pocket-updater-utility/deps.nix
index 0e9f626012d95..eea7ea49accbd 100644
--- a/pkgs/tools/games/pocket-updater-utility/deps.nix
+++ b/pkgs/tools/games/pocket-updater-utility/deps.nix
@@ -3,6 +3,7 @@
 
 { fetchNuGet }: [
   (fetchNuGet { pname = "CommandLineParser"; version = "2.9.1"; sha256 = "1sldkj8lakggn4hnyabjj1fppqh50fkdrr1k99d4gswpbk5kv582"; })
+  (fetchNuGet { pname = "ConsoleMenu-simple"; version = "2.6.1"; sha256 = "1vbi77schslq3nsardm4v8mrk0zi0phczwm2np1bl9z7c84h5cym"; })
   (fetchNuGet { pname = "Crc32.NET"; version = "1.2.0"; sha256 = "0qaj3192k1vfji87zf50rhydn5mrzyzybrs2k4v7ap29k8i0vi5h"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
diff --git a/pkgs/tools/graphics/qrcode/default.nix b/pkgs/tools/graphics/qrcode/default.nix
index ce623e25db0e2..e870f53da82e8 100644
--- a/pkgs/tools/graphics/qrcode/default.nix
+++ b/pkgs/tools/graphics/qrcode/default.nix
@@ -2,17 +2,15 @@
 
 stdenv.mkDerivation {
   pname = "qrcode";
-  version = "unstable-2022-01-10";
+  version = "unstable-2023-12-02";
 
   src = fetchFromGitHub {
     owner = "qsantos";
     repo = "qrcode";
-    rev = "f4475866bbf963ad118db936060f606eedc224d5";
-    hash = "sha256-IbWYSAc0PvSWcxKaPUXDldGDCK/lPZjptepYtLppPmA=";
+    rev = "96fac69ad3e4f616ce75c0e3ef4ed0574cfab315";
+    hash = "sha256-Aesjys6FchB6qcLRWJNGfcEZRlO3stw3+IM8Xe2pF+Q=";
   };
 
-  env.NIX_CFLAGS_COMPILE = "-Wno-error=unused-result";
-
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installPhase = ''
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index e148f51d86893..d590ac7d340c6 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, buildPackages
 , cmake
 , pkg-config
 , python3
@@ -72,12 +73,14 @@ stdenv.mkDerivation rec {
 
   dontPatchELF = true;
 
+  env.PKG_CONFIG_WAYLAND_SCANNER_WAYLAND_SCANNER="${buildPackages.wayland-scanner}/bin/wayland-scanner";
+
   cmakeFlags = [
     # Don't build the mock ICD as it may get used instead of other drivers, if installed
     "-DBUILD_ICD=OFF"
     # vulkaninfo loads libvulkan using dlopen, so we have to add it manually to RPATH
     "-DCMAKE_INSTALL_RPATH=${libraryPath}"
-    "-DPKG_CONFIG_EXECUTABLE=${pkg-config}/bin/pkg-config"
+    "-DPKG_CONFIG_EXECUTABLE=${buildPackages.pkg-config}/bin/${buildPackages.pkg-config.targetPrefix}pkg-config"
     "-DGLSLANG_INSTALL_DIR=${glslang}"
     # Hide dev warnings that are useless for packaging
     "-Wno-dev"
diff --git a/pkgs/tools/misc/moar/default.nix b/pkgs/tools/misc/moar/default.nix
index 6bcbd8a9ac410..c4508d4424786 100644
--- a/pkgs/tools/misc/moar/default.nix
+++ b/pkgs/tools/misc/moar/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "moar";
-  version = "1.18.4";
+  version = "1.18.5";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-zF+Hnsmw5TJCYYoItrwcnyh3NSmKrV9JoTPwTMVyw7Y=";
+    hash = "sha256-3s95PjuHIQ0qeTtVOXqsrWFrCeuUUaaA9Lgab4ATetg=";
   };
 
   vendorHash = "sha256-x6BeU6JDayCOi8T8+NvXZe59QmTaO9RAYwSiFlDPL/c=";
diff --git a/pkgs/tools/misc/panoply/default.nix b/pkgs/tools/misc/panoply/default.nix
index 5a333a38a4bcb..0f6471c322c70 100644
--- a/pkgs/tools/misc/panoply/default.nix
+++ b/pkgs/tools/misc/panoply/default.nix
@@ -2,11 +2,11 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "panoply";
-  version = "5.2.10";
+  version = "5.3.0";
 
   src = fetchurl {
     url = "https://www.giss.nasa.gov/tools/panoply/download/PanoplyJ-${version}.tgz";
-    sha256 = "sha256-en/CAmk9Rj2MrUF5vfsZu1fUDJFaAifL7PYgUT3Uu8k=";
+    sha256 = "sha256-UU+CVLUSysDercLvPzDwO0f+w0DNgHmQ/JrC/MJ7Qtg=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/misc/rkvm/default.nix b/pkgs/tools/misc/rkvm/default.nix
index 688c774209c6b..bf6ef6e482d00 100644
--- a/pkgs/tools/misc/rkvm/default.nix
+++ b/pkgs/tools/misc/rkvm/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rkvm";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "htrefil";
     repo = pname;
     rev = version;
-    hash = "sha256-3IdwBMN+VZBrcoT5vF7pF6xoNWZBn4k/jRJqADlpM7k=";
+    hash = "sha256-bWDVc5pWc5gtwGF3vwUgjDhqZP7E79nteKiuAEEbw6E=";
   };
 
-  cargoHash = "sha256-/SZKJI4gMkike2m8UVzbwfMqj697A8zbJEKAnnbSx3s=";
+  cargoHash = "sha256-FUaycVxW7QJ5gTZ/8bWjqSaMSepRF5iqlBNJLaDRNxc=";
 
   nativeBuildInputs = [ pkg-config rustPlatform.bindgenHook makeWrapper ];
   buildInputs = [ libevdev ];
diff --git a/pkgs/tools/misc/snapper/default.nix b/pkgs/tools/misc/snapper/default.nix
index 865bd0eb8077f..dd50b9a040892 100644
--- a/pkgs/tools/misc/snapper/default.nix
+++ b/pkgs/tools/misc/snapper/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.10.6";
+  version = "0.10.7";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "sha256-tKxjzJ69wr48QQEgYLp7G6aOqxs9CCUiTHV1kaRCiHM=";
+    sha256 = "sha256-ELhWVimZWKaHL/PK7HtALKCTmzjcZN2ScDS0yOX3lVs=";
   };
 
   strictDeps = true;
diff --git a/pkgs/tools/networking/mockoon/default.nix b/pkgs/tools/networking/mockoon/default.nix
index 9f5f579e5889c..63e4e3c28030f 100644
--- a/pkgs/tools/networking/mockoon/default.nix
+++ b/pkgs/tools/networking/mockoon/default.nix
@@ -5,11 +5,11 @@
 
 let
   pname = "mockoon";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchurl {
     url = "https://github.com/mockoon/mockoon/releases/download/v${version}/mockoon-${version}.AppImage";
-    hash = "sha256-CxWjnDNobeDbvNx5gVLGfVxrQyMITZJYmJMzf2XlzQQ=";
+    hash = "sha256-FF2F16ulKerNnwgumaz2Theff7pRN4Up3FooCNW8kbg=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/tools/networking/sing-box/default.nix b/pkgs/tools/networking/sing-box/default.nix
index d29bbe1292db5..d75a49f6c9e6e 100644
--- a/pkgs/tools/networking/sing-box/default.nix
+++ b/pkgs/tools/networking/sing-box/default.nix
@@ -11,16 +11,16 @@
 
 buildGoModule rec {
   pname = "sing-box";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "SagerNet";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-XD4xWOQumqbXMBbzHgCIgFIegUqJnFZsAvk1VZXX5rc=";
+    hash = "sha256-5n5AnuJQvw/26X3UWdLvegFhwYzjtS7o0d4cN3c3bfQ=";
   };
 
-  vendorHash = "sha256-U70FjJ0HO5dyFj50qpyjy+k2r7IR/6gOLDi2LM3M3No=";
+  vendorHash = "sha256-UvLZY4vMS6dI6z9kPcSzbB/cW/7rfbrlhcWh51q5sak=";
 
   tags = [
     "with_quic"
diff --git a/pkgs/tools/networking/whois/default.nix b/pkgs/tools/networking/whois/default.nix
index fe4950d5c2407..992303ec60721 100644
--- a/pkgs/tools/networking/whois/default.nix
+++ b/pkgs/tools/networking/whois/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, perl, gettext, pkg-config, libidn2, libiconv }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, perl, gettext, pkg-config, libidn2, libiconv }:
 
 stdenv.mkDerivation rec {
   version = "5.5.20";
@@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
     hash = "sha256-0vQ6GBBtNA6Phlqhl3NZvEJqoyZ1um7VdkpsIRKhsm4=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/macports/macports-ports/raw/93de4e9fc1e5e8427bf98f48209e783a5e8fab57/net/whois/files/implicit.patch";
+      extraPrefix = "";
+      hash = "sha256-ogVylQz//tpXxPNIWIHkhghvToU1z1D1FfnUBdZLyRY=";
+    })
+  ];
+
   nativeBuildInputs = [ perl gettext pkg-config ];
   buildInputs = [ libidn2 libiconv ];
 
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index cd54bad53de0b..acfbad10cd55d 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2023-12-01";
+  version = "2023-12-02";
 
   src = fetchFromGitLab {
     owner = "exploit-database";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-tWwcNZ4xyeNMhIyH6cYfW910syfZd4KF9G73XItz8hk=";
+    hash = "sha256-rITeDc1PQFjV4ZlBK97T+hvIzuWMIoPxBLscqkXiMwc=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/oauth2c/default.nix b/pkgs/tools/security/oauth2c/default.nix
index c4e187ea53ed5..b36eebea7b5f7 100644
--- a/pkgs/tools/security/oauth2c/default.nix
+++ b/pkgs/tools/security/oauth2c/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "oauth2c";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "cloudentity";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Qb4eES7xT/bQTMtcpFy6aQ7n5U/0yA1GXdTR9ga3aYU=";
+    hash = "sha256-iFYKAdoeCvyhAeZ5K3CHSsHG0Uq+Ok0C8ACe9RztDmY=";
   };
 
-  vendorHash = "sha256-+rkRo9zY3dRqElKApkbaBrDW8SqilqlGAhOM9vDeQps=";
+  vendorHash = "sha256-olDtsLoslxOsbAq60RnLp9MGZOt17/BPo9E9SgWOqoQ=";
 
   doCheck = false; # tests want to talk to oauth2c.us.authz.cloudentity.io
 
diff --git a/pkgs/tools/security/pinentry-bemenu/default.nix b/pkgs/tools/security/pinentry-bemenu/default.nix
index aec655d0b5594..ed43ee3825979 100644
--- a/pkgs/tools/security/pinentry-bemenu/default.nix
+++ b/pkgs/tools/security/pinentry-bemenu/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pinentry-bemenu";
-  version = "0.12.0";
+  version = "0.13.1";
 
   src = fetchFromGitHub {
     owner = "t-8ch";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5ll4a/1Ughx0s2l/mcIsp1g4oNoNhm0RWvY/tXDvPGE=";
+    sha256 = "sha256-h+PC8IGwCW5ZroLGpypcmpejOo+JGM7zG4N5fguBWvM=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/pkgs/tools/security/srm/default.nix b/pkgs/tools/security/srm/default.nix
index ba776b8af3e3f..7cde2be4fbc5f 100644
--- a/pkgs/tools/security/srm/default.nix
+++ b/pkgs/tools/security/srm/default.nix
@@ -1,14 +1,18 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchsvn, autoreconfHook }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "srm";
-  version = "1.2.15";
+  version = "1.2.15-unstable-2017-12-18";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/project/srm/${version}/srm-${version}.tar.gz";
-    sha256 = "10sjarhprs6s4zandndg720528rcnd4xk8dl48pjj7li1q9c30vm";
+  src = fetchsvn {
+    url = "svn://svn.code.sf.net/p/srm/srm/trunk/";
+    rev = "268";
+    sha256 = "sha256-bY8p6IS5zeByoe/uTmvBAaBN4Wu7J19dVSpbtqx4OeQ=";
   };
 
+  patches = [ ./fix-output-in-verbose-mode.patch ];
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = with lib; {
     description = "Delete files securely";
     longDescription = ''
@@ -22,5 +26,4 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch b/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch
new file mode 100644
index 0000000000000..966d7ba4612ea
--- /dev/null
+++ b/pkgs/tools/security/srm/fix-output-in-verbose-mode.patch
@@ -0,0 +1,57 @@
+diff --git a/src/sunlink.c b/src/sunlink.c
+index 7050713..ffcb8d3 100644
+--- a/src/sunlink.c
++++ b/src/sunlink.c
+@@ -468,6 +468,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 5, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 6, 0xFF) < 0) return -1;
+       if(overwrite_random(srm, 7, 1) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_DOE)
+     {
+@@ -475,6 +477,8 @@ static int overwrite_selector(struct srm_target *srm)
+ 	error("US DoE mode");
+       if(overwrite_random(srm, 1, 2) < 0) return -1;
+       if(overwrite_bytes(srm, 3, 'D', 'o', 'E') < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_OPENBSD)
+     {
+@@ -483,12 +487,16 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 1, 0xFF) < 0) return -1;
+       if(overwrite_byte(srm, 2, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 3, 0xFF) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_SIMPLE)
+     {
+       if((srm->options&SRM_OPT_V) > 1)
+ 	error("Simple mode");
+       if(overwrite_byte(srm, 1, 0x00) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else if(srm->options & SRM_MODE_RCMP)
+     {
+@@ -497,6 +505,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_byte(srm, 1, 0x00) < 0) return -1;
+       if(overwrite_byte(srm, 2, 0xFF) < 0) return -1;
+       if(overwrite_string(srm, 3, "RCMP") < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+   else
+     {
+@@ -535,6 +545,8 @@ static int overwrite_selector(struct srm_target *srm)
+       if(overwrite_random(srm, 32, 4) < 0) return -1;
+       /* if you want to backup your partition or shrink your vmware image having the file zero-ed gives best compression results. */
+       if(overwrite_byte(srm, 36, 0x00) < 0) return -1;
++      if((srm->options&SRM_OPT_V) > 1)
++	printf("\n");
+     }
+ #if 0
+   if((srm->options & SRM_OPT_V) > 1)
diff --git a/pkgs/tools/system/openseachest/default.nix b/pkgs/tools/system/openseachest/default.nix
index 1bdcf796f7504..ab17c23bc61e9 100644
--- a/pkgs/tools/system/openseachest/default.nix
+++ b/pkgs/tools/system/openseachest/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openseachest";
-  version = "23.03.1";
+  version = "23.12";
 
   src = fetchFromGitHub {
     owner = "Seagate";
     repo = "openSeaChest";
     rev = "v${version}";
-    sha256 = "sha256-jDCCozHeOazB3cM/9TlwHq1pu7yTiD818jykHeQ+RBo=";
+    sha256 = "sha256-2snxruIC/93+yI7g/9cCXcms8FaoXnoyWq9py8GTwrs=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/tools/text/kdiff3/default.nix b/pkgs/tools/text/kdiff3/default.nix
index 8904d1bf690e8..fc6c21551fe87 100644
--- a/pkgs/tools/text/kdiff3/default.nix
+++ b/pkgs/tools/text/kdiff3/default.nix
@@ -17,7 +17,7 @@ mkDerivation rec {
   version = "1.10.6";
 
   src = fetchurl {
-    url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
+    url = "mirror://kde/stable/kdiff3/kdiff3-${version}.tar.xz";
     hash = "sha256-EzOu+dZjbGs0ZqF/0sXZbpGdTrUh6isjUoJUETau+zE=";
   };
 
diff --git a/pkgs/tools/text/languagetool/default.nix b/pkgs/tools/text/languagetool/default.nix
index 65fcb5b71e7bc..ed4543140e863 100644
--- a/pkgs/tools/text/languagetool/default.nix
+++ b/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "6.2";
+  version = "6.3";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "sha256-I0Blp3o+NVL0b/86UTztufwKVkgO9KNXtBuUrUnbWco=";
+    sha256 = "sha256-S6iBg7nEKCLrFzUnCseTaxFl6/YeRic2tJnBPLuXmWw=";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/pkgs/tools/text/tuc/default.nix b/pkgs/tools/text/tuc/default.nix
index 3598a317633f7..f51d81dc7a17e 100644
--- a/pkgs/tools/text/tuc/default.nix
+++ b/pkgs/tools/text/tuc/default.nix
@@ -1,16 +1,16 @@
 { lib, fetchFromGitHub, rustPlatform }:
 rustPlatform.buildRustPackage rec {
   pname = "tuc";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "riquito";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-zEWQ1wGpEowVPdlezC/LZhoPGS546nuqREfavo3fbTs=";
+    sha256 = "sha256-83tS0sYqQqGQVXFBQ/mIDxL9QKqPjAM48vTXA8NKdtE=";
   };
 
-  cargoHash = "sha256-YRw1HxVy1/SOWfareR6rh6M78xFm+Im//klhXGGt95g=";
+  cargoHash = "sha256-ka6h60ettSsho7QnWmpWrEPEyHIIyTVSW2r1Hk132CY=";
 
   meta = with lib; {
     description = "When cut doesn't cut it";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f1e58678e913d..29fef33a90b0a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -226,6 +226,12 @@ with pkgs;
 
   chkservice = callPackage ../tools/admin/chkservice { };
 
+  # addDriverRunpath is the preferred package name, as this enables
+  # many more scenarios than just opengl now.
+  addDriverRunpath = callPackage ../build-support/add-driver-runpath { };
+
+  # addOpenGLRunpath should be added to aliases.nix after the 24.05 branch-off.
+  # Post 24.11 branch-off, this should throw an error in aliases.nix.
   addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
 
   quickemu = callPackage ../development/quickemu { };
@@ -1766,6 +1772,8 @@ with pkgs;
 
   davinci-resolve-studio = callPackage ../applications/video/davinci-resolve { studioVariant = true; };
 
+  dehinter = with python3Packages; toPythonApplication dehinter;
+
   dolbybcsoftwaredecode = callPackage ../applications/audio/dolbybcsoftwaredecode { };
 
   donkey = callPackage ../tools/security/donkey { };
@@ -1806,6 +1814,10 @@ with pkgs;
 
   ethq = callPackage ../os-specific/linux/ethq { };
 
+  font-v = with python3Packages; toPythonApplication font-v;
+
+  fontbakery = with python3Packages; toPythonApplication fontbakery;
+
   weidu = callPackage ../tools/games/weidu { };
 
   weylus = callPackage ../applications/graphics/weylus  {
@@ -2024,6 +2036,8 @@ with pkgs;
 
   sgrep = callPackage ../tools/text/sgrep { };
 
+  shaperglot = with python3Packages; toPythonApplication shaperglot;
+
   shell-genie = callPackage  ../applications/misc/shell-genie { };
 
   sloth = callPackage ../tools/misc/sloth { };
@@ -2094,6 +2108,8 @@ with pkgs;
 
   ttchat = callPackage ../tools/misc/ttchat { };
 
+  ufolint = with python3Packages; toPythonApplication ufolint;
+
   ukmm = callPackage ../tools/games/ukmm { };
 
   unflac = callPackage ../tools/audio/unflac { };
@@ -3024,7 +3040,12 @@ with pkgs;
 
   blackbox-terminal = callPackage ../applications/terminal-emulators/blackbox-terminal { };
 
-  contour = libsForQt5.callPackage ../applications/terminal-emulators/contour { fmt = fmt_8; };
+  contour = qt6.callPackage ../applications/terminal-emulators/contour {
+    inherit (darwin.apple_sdk_11_0.libs) utmp;
+    inherit (darwin) sigtool;
+    stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else stdenv;
+    fmt = fmt_9;
+  };
 
   cool-retro-term = libsForQt5.callPackage ../applications/terminal-emulators/cool-retro-term { };
 
@@ -3892,6 +3913,8 @@ with pkgs;
 
   gopacked = callPackage ../applications/misc/gopacked { };
 
+  goperf = callPackage ../development/tools/goperf { };
+
   gotktrix = callPackage ../applications/networking/instant-messengers/gotktrix { };
 
   graphite-cli = nodePackages.graphite-cli;
@@ -5691,7 +5714,7 @@ with pkgs;
   hyprpaper = callPackage ../applications/window-managers/hyprwm/hyprpaper { };
 
   hyprpicker = callPackage ../applications/window-managers/hyprwm/hyprpicker {
-    wlroots = wlroots_0_15;
+    wlroots = wlroots_0_16;
   };
 
   hyprshade = python311Packages.callPackage ../applications/window-managers/hyprwm/hyprshade { };
@@ -23612,6 +23635,8 @@ with pkgs;
 
   libuldaq = callPackage ../development/libraries/libuldaq { };
 
+  libunicode = callPackage ../development/libraries/libunicode { fmt = fmt_8; };
+
   libunwind =
     if stdenv.isDarwin then darwin.libunwind
     else if stdenv.hostPlatform.system == "riscv32-linux" then llvmPackages_14.libunwind
@@ -25307,6 +25332,8 @@ with pkgs;
 
   tepl = callPackage ../development/libraries/tepl { };
 
+  termbench-pro = callPackage ../development/libraries/termbench-pro { fmt = fmt_8; };
+
   telepathy-glib = callPackage ../development/libraries/telepathy/glib { };
 
   telepathy-farstream = callPackage ../development/libraries/telepathy/farstream { };
@@ -31637,7 +31664,9 @@ with pkgs;
 
   gaucheBootstrap = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche/boot.nix { };
 
-  gauche = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche { };
+  gauche = darwin.apple_sdk_11_0.callPackage ../development/interpreters/gauche {
+    inherit (darwin.apple_sdk_11_0.frameworks) CoreServices;
+  };
 
   gazelle-origin = python3Packages.callPackage ../tools/misc/gazelle-origin { };
 
@@ -34534,8 +34563,6 @@ with pkgs;
 
   vgmtools = callPackage ../tools/audio/vgmtools { };
 
-  vieb = callPackage ../applications/networking/browsers/vieb { };
-
   vital = callPackage ../applications/audio/vital { };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi { };
@@ -42130,4 +42157,6 @@ with pkgs;
   mdhtml = callPackage ../tools/text/mdhtml { };
 
   insulator2 = callPackage ../applications/misc/insulator2 {};
+
+  animdl = python3Packages.callPackage ../applications/video/animdl { };
 }
diff --git a/pkgs/top-level/hare-third-party.nix b/pkgs/top-level/hare-third-party.nix
index 524df05659f42..084e749c676cc 100644
--- a/pkgs/top-level/hare-third-party.nix
+++ b/pkgs/top-level/hare-third-party.nix
@@ -4,4 +4,6 @@ lib.makeScope newScope (self:
 let
   inherit (self) callPackage;
 in
-{ })
+{
+  hare-json = callPackage ../development/hare-packages/hare-json { };
+})
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 7c037664c4ac6..68ff15c5e5be1 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -516,6 +516,8 @@ self: super: with self; {
 
   amqtt = callPackage ../development/python-modules/amqtt { };
 
+  anchor-kr = callPackage ../development/python-modules/anchor-kr { };
+
   ancp-bids = callPackage ../development/python-modules/ancp-bids { };
 
   android-backup = callPackage ../development/python-modules/android-backup { };
@@ -538,6 +540,8 @@ self: super: with self; {
 
   aniso8601 = callPackage ../development/python-modules/aniso8601 { };
 
+  anitopy = callPackage ../development/python-modules/anitopy { };
+
   annexremote = callPackage ../development/python-modules/annexremote { };
 
   annotated-types = callPackage ../development/python-modules/annotated-types { };
@@ -999,6 +1003,8 @@ self: super: with self; {
 
   axis = callPackage ../development/python-modules/axis { };
 
+  axisregistry = callPackage ../development/python-modules/axisregistry { };
+
   azure-appconfiguration = callPackage ../development/python-modules/azure-appconfiguration { };
 
   azure-applicationinsights = callPackage ../development/python-modules/azure-applicationinsights { };
@@ -1251,6 +1257,8 @@ self: super: with self; {
 
   babelfish = callPackage ../development/python-modules/babelfish { };
 
+  babelfont = callPackage ../development/python-modules/babelfont { };
+
   babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
   bambi = callPackage ../development/python-modules/bambi { };
@@ -1420,6 +1428,8 @@ self: super: with self; {
 
   betterproto = callPackage ../development/python-modules/betterproto { };
 
+  beziers = callPackage ../development/python-modules/beziers { };
+
   bibtexparser = callPackage ../development/python-modules/bibtexparser { };
 
   bidict = callPackage ../development/python-modules/bidict { };
@@ -2210,6 +2220,8 @@ self: super: with self; {
 
   collections-extended = callPackage ../development/python-modules/collections-extended { };
 
+  collidoscope = callPackage ../development/python-modules/collidoscope { };
+
   colorama = callPackage ../development/python-modules/colorama { };
 
   colorcet = callPackage ../development/python-modules/colorcet { };
@@ -2244,6 +2256,8 @@ self: super: with self; {
 
   comm = callPackage ../development/python-modules/comm { };
 
+  commandlines = callPackage ../development/python-modules/commandlines { };
+
   commandparse = callPackage ../development/python-modules/commandparse { };
 
   commentjson = callPackage ../development/python-modules/commentjson { };
@@ -2726,6 +2740,8 @@ self: super: with self; {
 
   defusedxml = callPackage ../development/python-modules/defusedxml { };
 
+  dehinter = callPackage ../development/python-modules/dehinter { };
+
   deid = callPackage ../development/python-modules/deid { };
 
   delegator-py = callPackage ../development/python-modules/delegator-py { };
@@ -4165,6 +4181,10 @@ self: super: with self; {
 
   fontawesomefree = callPackage ../development/python-modules/fontawesomefree { };
 
+  fontbakery = callPackage ../development/python-modules/fontbakery { };
+
+  fontfeatures = callPackage ../development/python-modules/fontfeatures { };
+
   fontforge = toPythonModule (pkgs.fontforge.override {
     withPython = true;
     inherit python;
@@ -4180,6 +4200,8 @@ self: super: with self; {
 
   fontmake = callPackage ../development/python-modules/fontmake { };
 
+  font-v = callPackage ../development/python-modules/font-v { };
+
   skia-pathops = callPackage ../development/python-modules/skia-pathops {
     inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices OpenGL;
   };
@@ -4196,8 +4218,12 @@ self: super: with self; {
 
   openstep-plist = callPackage ../development/python-modules/openstep-plist { };
 
+  glyphsets = callPackage ../development/python-modules/glyphsets { };
+
   glyphslib = callPackage ../development/python-modules/glyphslib { };
 
+  glyphtools = callPackage ../development/python-modules/glyphtools { };
+
   foobot-async = callPackage ../development/python-modules/foobot-async { };
 
   foolscap = callPackage ../development/python-modules/foolscap { };
@@ -4463,6 +4489,8 @@ self: super: with self; {
 
   gflags = callPackage ../development/python-modules/gflags { };
 
+  gflanguages = callPackage ../development/python-modules/gflanguages { };
+
   ghapi = callPackage ../development/python-modules/ghapi { };
 
   ghdiff = callPackage ../development/python-modules/ghdiff { };
@@ -6046,6 +6074,8 @@ self: super: with self; {
 
   kubernetes = callPackage ../development/python-modules/kubernetes { };
 
+  kurbopy = callPackage ../development/python-modules/kurbopy { };
+
   l18n = callPackage ../development/python-modules/l18n { };
 
   labelbox = callPackage ../development/python-modules/labelbox { };
@@ -8621,6 +8651,8 @@ self: super: with self; {
 
   opentsne = callPackage ../development/python-modules/opentsne { };
 
+  opentypespec = callPackage ../development/python-modules/opentypespec { };
+
   openvino = callPackage ../development/python-modules/openvino {
     openvino-native = pkgs.openvino.override {
       inherit python;
@@ -8717,6 +8749,8 @@ self: super: with self; {
 
   ossfs = callPackage ../development/python-modules/ossfs { };
 
+  ots-python = callPackage ../development/python-modules/ots-python { };
+
   outcome = callPackage ../development/python-modules/outcome { };
 
   ovh = callPackage ../development/python-modules/ovh { };
@@ -11754,6 +11788,8 @@ self: super: with self; {
 
   pytimeparse2 = callPackage ../development/python-modules/pytimeparse2 { };
 
+  pytikz-allefeld = callPackage ../development/python-modules/pytikz-allefeld { };
+
   pytm = callPackage ../development/python-modules/pytm { };
 
   pytmx = callPackage ../development/python-modules/pytmx { };
@@ -12531,6 +12567,8 @@ self: super: with self; {
 
   rstcheck-core = callPackage ../development/python-modules/rstcheck-core { };
 
+  rstr = callPackage ../development/python-modules/rstr { };
+
   rtmidi-python = callPackage ../development/python-modules/rtmidi-python {
     inherit (pkgs.darwin.apple_sdk.frameworks) CoreAudio CoreMIDI CoreServices;
   };
@@ -12889,6 +12927,8 @@ self: super: with self; {
 
   shapely = callPackage ../development/python-modules/shapely { };
 
+  shaperglot = callPackage ../development/python-modules/shaperglot { };
+
   sharedmem = callPackage ../development/python-modules/sharedmem { };
 
   sharkiq = callPackage ../development/python-modules/sharkiq { };
@@ -13475,6 +13515,8 @@ self: super: with self; {
 
   squarify = callPackage ../development/python-modules/squarify { };
 
+  sre-yield = callPackage ../development/python-modules/sre-yield { };
+
   srp = callPackage ../development/python-modules/srp { };
 
   srpenergy = callPackage ../development/python-modules/srpenergy { };
@@ -13595,6 +13637,8 @@ self: super: with self; {
 
   strictyaml = callPackage ../development/python-modules/strictyaml { };
 
+  stringbrewer = callPackage ../development/python-modules/stringbrewer { };
+
   stringcase = callPackage ../development/python-modules/stringcase { };
 
   stringly = callPackage ../development/python-modules/stringly { };
@@ -15285,6 +15329,8 @@ self: super: with self; {
 
   ufoLib2 = callPackage ../development/python-modules/ufoLib2 { };
 
+  ufolint = callPackage ../development/python-modules/ufolint { };
+
   ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
 
   ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
@@ -15533,6 +15579,8 @@ self: super: with self; {
 
   vg = callPackage ../development/python-modules/vg { };
 
+  vharfbuzz = callPackage ../development/python-modules/vharfbuzz { };
+
   videocr = callPackage ../development/python-modules/videocr { };
 
   vidstab = callPackage ../development/python-modules/vidstab { };
@@ -16061,8 +16109,14 @@ self: super: with self; {
 
   yolink-api = callPackage ../development/python-modules/yolink-api { };
 
+  yosys = toPythonModule (pkgs.yosys.override {
+    python3 = python;
+  });
+
   youless-api = callPackage ../development/python-modules/youless-api { };
 
+  youseedee = callPackage ../development/python-modules/youseedee { };
+
   youtube-dl = callPackage ../tools/misc/youtube-dl { };
 
   youtube-dl-light = callPackage ../tools/misc/youtube-dl {
diff --git a/pkgs/top-level/qt5-packages.nix b/pkgs/top-level/qt5-packages.nix
index 3cd06387bf9d7..2a068d5afd719 100644
--- a/pkgs/top-level/qt5-packages.nix
+++ b/pkgs/top-level/qt5-packages.nix
@@ -80,6 +80,8 @@ in (noExtraAttrs (kdeFrameworks // plasmaMobileGear // plasma5 // plasma5.thirdP
 
   ### LIBRARIES
 
+  accounts-qml-module = callPackage ../development/libraries/accounts-qml-module { };
+
   accounts-qt = callPackage ../development/libraries/accounts-qt { };
 
   alkimia = callPackage ../development/libraries/alkimia { };