about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.github/CODEOWNERS5
-rw-r--r--.mailmap3
-rw-r--r--doc/languages-frameworks/coq.section.md3
-rw-r--r--flake.nix2
-rw-r--r--maintainers/maintainer-list.nix38
-rw-r--r--maintainers/scripts/pluginupdate-py/__init__.py0
-rw-r--r--maintainers/scripts/pluginupdate-py/pluginupdate.py (renamed from maintainers/scripts/pluginupdate.py)0
-rw-r--r--nixos/doc/manual/configuration/profiles/minimal.section.md8
-rw-r--r--nixos/doc/manual/release-notes/rl-2411.section.md11
-rw-r--r--nixos/modules/config/no-x-libs.nix91
-rw-r--r--nixos/modules/installer/sd-card/sd-image.nix29
-rw-r--r--nixos/modules/installer/tools/nix-fallback-paths.nix10
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/profiles/minimal.nix4
-rw-r--r--nixos/modules/rename.nix4
-rw-r--r--nixos/modules/services/backup/automysqlbackup.nix9
-rw-r--r--nixos/modules/services/logging/logrotate.nix51
-rw-r--r--nixos/modules/services/networking/nar-serve.nix10
-rw-r--r--nixos/modules/services/web-apps/davis.nix4
-rw-r--r--nixos/modules/services/web-apps/dependency-track.nix608
-rw-r--r--nixos/modules/services/web-apps/pretix.nix2
-rw-r--r--nixos/modules/services/web-servers/darkhttpd.nix12
-rw-r--r--nixos/modules/system/boot/systemd/sysusers.nix8
-rw-r--r--nixos/modules/system/etc/etc-activation.nix7
-rw-r--r--nixos/release.nix2
-rw-r--r--nixos/tests/all-tests.nix1
-rw-r--r--nixos/tests/dependency-track.nix65
-rw-r--r--nixos/tests/k3s/multi-node.nix4
-rw-r--r--nixos/tests/k3s/single-node.nix60
-rw-r--r--nixos/tests/kernel-generic.nix1
-rw-r--r--nixos/tests/logrotate.nix2
-rw-r--r--nixos/tests/mysql/mariadb-galera.nix475
-rw-r--r--nixos/tests/mysql/mysql-autobackup.nix78
-rw-r--r--nixos/tests/systemd-machinectl.nix2
-rw-r--r--pkgs/applications/audio/carla/default.nix4
-rw-r--r--pkgs/applications/audio/noson/default.nix4
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix2
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/manual-packages/zstd/default.nix37
-rw-r--r--pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix7
-rw-r--r--pkgs/applications/editors/neovim/build-neovim-plugin.nix10
-rw-r--r--pkgs/applications/editors/neovim/tests/default.nix71
-rw-r--r--pkgs/applications/editors/texmacs/default.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/default.nix4
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix33
-rw-r--r--pkgs/applications/editors/vim/plugins/updater.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix16
-rw-r--r--pkgs/applications/emulators/vbam/default.nix4
-rw-r--r--pkgs/applications/emulators/wine/sources.nix6
-rw-r--r--pkgs/applications/graphics/geeqie/default.nix4
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix4
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix45
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix6
-rw-r--r--pkgs/applications/misc/klayout/default.nix7
-rw-r--r--pkgs/applications/misc/lunatask/default.nix4
-rw-r--r--pkgs/applications/misc/onboard/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix9
-rw-r--r--pkgs/applications/networking/cluster/arkade/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix6
-rw-r--r--pkgs/applications/networking/cluster/kubelogin-oidc/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nixops/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/nixops/plugins/nixops-aws.nix59
-rw-r--r--pkgs/applications/networking/cluster/rke2/testing/versions.nix18
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix4
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/protonvpn-gui/default.nix4
-rw-r--r--pkgs/applications/networking/xpipe/default.nix4
-rw-r--r--pkgs/applications/science/electronics/nvc/default.nix4
-rw-r--r--pkgs/applications/science/logic/coq/default.nix4
-rw-r--r--pkgs/applications/science/math/caffe/default.nix2
-rw-r--r--pkgs/applications/science/math/mathematica/default.nix6
-rw-r--r--pkgs/applications/science/math/mathematica/generic.nix18
-rw-r--r--pkgs/applications/science/math/mathematica/versions.nix14
-rw-r--r--pkgs/applications/science/misc/toil/default.nix90
-rw-r--r--pkgs/applications/version-management/git-cliff/default.nix6
-rw-r--r--pkgs/applications/version-management/git-town/default.nix4
-rw-r--r--pkgs/applications/video/vdr/softhddevice/default.nix4
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix6
-rw-r--r--pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix50
-rw-r--r--pkgs/build-support/appimage/default.nix2
-rw-r--r--pkgs/build-support/coq/default.nix4
-rw-r--r--pkgs/build-support/coq/meta-fetch/default.nix21
-rw-r--r--pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py2
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-project.nix6
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-repository.nix7
-rw-r--r--pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix6
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh7
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh4
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh2
-rw-r--r--pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash11
-rw-r--r--pkgs/build-support/php/builders/v2/build-composer-project.nix6
-rw-r--r--pkgs/build-support/php/builders/v2/build-composer-vendor.nix7
-rw-r--r--pkgs/build-support/php/builders/v2/hooks/composer-install-hook.sh2
-rw-r--r--pkgs/build-support/php/builders/v2/hooks/composer-vendor-hook.sh10
-rw-r--r--pkgs/build-support/php/builders/v2/hooks/php-script-utils.bash9
-rw-r--r--pkgs/by-name/ac/actionlint/package.nix (renamed from pkgs/development/tools/analysis/actionlint/default.nix)49
-rw-r--r--pkgs/by-name/ai/aider-chat/package.nix5
-rw-r--r--pkgs/by-name/al/algolia-cli/package.nix (renamed from pkgs/development/tools/algolia-cli/default.nix)27
-rw-r--r--pkgs/by-name/al/aliae/package.nix56
-rw-r--r--pkgs/by-name/an/ananicy-rules-cachyos/package.nix6
-rw-r--r--pkgs/by-name/an/anytype/package.nix5
-rw-r--r--pkgs/by-name/ap/apostrophe/package.nix8
-rw-r--r--pkgs/by-name/as/astartectl/package.nix6
-rw-r--r--pkgs/by-name/au/autologin/package.nix41
-rw-r--r--pkgs/by-name/au/autosuspend/package.nix4
-rw-r--r--pkgs/by-name/bi/bitbucket-cli/package.nix30
-rw-r--r--pkgs/by-name/bi/bitwarden-desktop/package.nix12
-rw-r--r--pkgs/by-name/bo/boilr/0001-update-time.patch287
-rw-r--r--pkgs/by-name/bo/boilr/package.nix43
-rw-r--r--pkgs/by-name/ca/capslock/package.nix6
-rw-r--r--pkgs/by-name/ca/cargo-shear/package.nix6
-rw-r--r--pkgs/by-name/cb/cbeams/package.nix44
-rw-r--r--pkgs/by-name/co/compose2nix/package.nix6
-rw-r--r--pkgs/by-name/cr/crossplane-cli/package.nix6
-rw-r--r--pkgs/by-name/db/dbeaver-bin/package.nix10
-rw-r--r--pkgs/by-name/de/dependency-track/0000-remove-frontend-download.patch44
-rw-r--r--pkgs/by-name/de/dependency-track/0001-add-junixsocket.patch17
-rw-r--r--pkgs/by-name/de/dependency-track/package.nix113
-rw-r--r--pkgs/by-name/do/dopamine/package.nix4
-rw-r--r--pkgs/by-name/do/dotenvx/package.nix6
-rw-r--r--pkgs/by-name/do/doublecmd/package.nix4
-rw-r--r--pkgs/by-name/du/dumbpipe/package.nix6
-rw-r--r--pkgs/by-name/dy/dynamips/package.nix (renamed from pkgs/applications/emulators/dynamips/default.nix)37
-rw-r--r--pkgs/by-name/ea/easytier/package.nix51
-rw-r--r--pkgs/by-name/fa/fastfetch/package.nix4
-rw-r--r--pkgs/by-name/fi/firefly-iii-data-importer/package.nix8
-rw-r--r--pkgs/by-name/fi/fittrackee/package.nix12
-rw-r--r--pkgs/by-name/fl/flexget/package.nix4
-rw-r--r--pkgs/by-name/gi/gitlab-ci-ls/package.nix6
-rw-r--r--pkgs/by-name/go/google-chrome/package.nix6
-rwxr-xr-xpkgs/by-name/go/google-chrome/update.sh2
-rw-r--r--pkgs/by-name/ha/halloy/Cargo.lock1280
-rw-r--r--pkgs/by-name/ha/halloy/package.nix10
-rw-r--r--pkgs/by-name/ha/halo/package.nix4
-rw-r--r--pkgs/by-name/he/hello/package.nix6
-rw-r--r--pkgs/by-name/hy/hyprutils/package.nix4
-rw-r--r--pkgs/by-name/hy/hyprwayland-scanner/package.nix4
-rw-r--r--pkgs/by-name/ig/ignite-cli/package.nix6
-rw-r--r--pkgs/by-name/im/imgpkg/package.nix32
-rw-r--r--pkgs/by-name/ja/jan/package.nix4
-rw-r--r--pkgs/by-name/ko/koboldcpp/package.nix4
-rw-r--r--pkgs/by-name/la/latexminted/package.nix5
-rw-r--r--pkgs/by-name/le/lefthook/package.nix4
-rw-r--r--pkgs/by-name/lu/luarocks-packages-updater/package.nix60
-rw-r--r--pkgs/by-name/lu/luarocks-packages-updater/pyproject.toml19
-rwxr-xr-xpkgs/by-name/lu/luarocks-packages-updater/updater.py4
-rw-r--r--pkgs/by-name/ma/maestro/package.nix23
-rw-r--r--pkgs/by-name/ma/manifold/package.nix7
-rw-r--r--pkgs/by-name/ma/maven/build-maven-package.nix1
-rw-r--r--pkgs/by-name/mi/misconfig-mapper/package.nix4
-rw-r--r--pkgs/by-name/mo/mountpoint-s3/package.nix6
-rw-r--r--pkgs/by-name/nw/nwg-drawer/package.nix6
-rw-r--r--pkgs/by-name/op/openmsx/package.nix4
-rw-r--r--pkgs/by-name/op/openscad-unstable/package.nix65
-rw-r--r--pkgs/by-name/pi/pipet/package.nix36
-rw-r--r--pkgs/by-name/pl/plantuml-c4/package.nix (renamed from pkgs/tools/misc/plantuml/plantuml-c4.nix)57
-rw-r--r--pkgs/by-name/pl/plantuml-server/package.nix (renamed from pkgs/tools/misc/plantuml-server/default.nix)23
-rw-r--r--pkgs/by-name/pl/plantuml/package.nix (renamed from pkgs/tools/misc/plantuml/default.nix)30
-rw-r--r--pkgs/by-name/pm/pmtiles/package.nix6
-rw-r--r--pkgs/by-name/pr/previewqt/package.nix106
-rw-r--r--pkgs/by-name/qr/qrtool/package.nix6
-rw-r--r--pkgs/by-name/ra/railway/package.nix6
-rw-r--r--pkgs/by-name/re/renovate/package.nix6
-rw-r--r--pkgs/by-name/ru/ruff/Cargo.lock26
-rw-r--r--pkgs/by-name/ru/ruff/package.nix4
-rw-r--r--pkgs/by-name/ru/rustdesk-flutter/package.nix131
-rw-r--r--pkgs/by-name/sa/saunafs/package.nix4
-rw-r--r--pkgs/by-name/sh/shotcut/package.nix4
-rw-r--r--pkgs/by-name/sm/smatch/package.nix50
-rw-r--r--pkgs/by-name/sn/snipe-it/package.nix4
-rw-r--r--pkgs/by-name/sn/snyk/package.nix (renamed from pkgs/development/tools/analysis/snyk/default.nix)30
-rw-r--r--pkgs/by-name/st/stalwart-mail/package.nix10
-rw-r--r--pkgs/by-name/st/stylelint/package.nix (renamed from pkgs/development/tools/analysis/stylelint/default.nix)19
-rw-r--r--pkgs/by-name/ui/uiua/package.nix6
-rw-r--r--pkgs/by-name/uw/uwsm/package.nix4
-rw-r--r--pkgs/by-name/wi/wireguard-ui/package.nix81
-rw-r--r--pkgs/by-name/wl/wl-gammarelay-applet/package.nix54
-rw-r--r--pkgs/by-name/ws/wstunnel/package.nix5
-rw-r--r--pkgs/by-name/xt/xtf/package.nix6
-rw-r--r--pkgs/by-name/ya/yandex-music/info.json6
-rw-r--r--pkgs/by-name/ya/yandex-music/package.nix4
-rw-r--r--pkgs/by-name/ya/yandex-music/ym_info.json8
-rw-r--r--pkgs/by-name/yu/yubico-piv-tool/package.nix4
-rw-r--r--pkgs/by-name/zo/zoekt/package.nix8
-rw-r--r--pkgs/by-name/zs/zsh-wd/package.nix4
-rw-r--r--pkgs/data/themes/adw-gtk3/default.nix4
-rw-r--r--pkgs/desktops/deepin/apps/deepin-editor/default.nix23
-rw-r--r--pkgs/desktops/deepin/core/dde-control-center/default.nix51
-rw-r--r--pkgs/desktops/deepin/core/dde-launchpad/default.nix12
-rw-r--r--pkgs/desktops/deepin/core/dde-network-core/default.nix28
-rw-r--r--pkgs/desktops/deepin/core/dde-shell/default.nix10
-rw-r--r--pkgs/desktops/deepin/core/dde-tray-loader/default.nix10
-rw-r--r--pkgs/desktops/deepin/library/dtk6core/default.nix4
-rw-r--r--pkgs/desktops/deepin/library/dtk6declarative/default.nix4
-rw-r--r--pkgs/desktops/deepin/library/dtk6gui/default.nix4
-rw-r--r--pkgs/desktops/deepin/library/dtk6widget/default.nix4
-rw-r--r--pkgs/desktops/deepin/library/qt6integration/default.nix4
-rw-r--r--pkgs/desktops/deepin/library/qt6platform-plugins/default.nix4
-rw-r--r--pkgs/development/compilers/cairo/default.nix6
-rw-r--r--pkgs/development/compilers/dart/sources.nix12
-rw-r--r--pkgs/development/compilers/dotnet/common.nix4
-rw-r--r--pkgs/development/compilers/flutter/default.nix4
-rw-r--r--pkgs/development/compilers/flutter/sdk-symlink.nix22
-rw-r--r--pkgs/development/compilers/flutter/versions/3_24/patches/fix-ios-build-xcode-backend-sh.patch69
-rw-r--r--pkgs/development/compilers/flutter/wrapper.nix4
-rw-r--r--pkgs/development/compilers/jetbrains-jdk/default.nix10
-rw-r--r--pkgs/development/compilers/llvm/common/bolt/default.nix9
-rw-r--r--pkgs/development/compilers/llvm/common/clang/default.nix5
-rw-r--r--pkgs/development/compilers/llvm/common/compiler-rt/default.nix5
-rw-r--r--pkgs/development/compilers/llvm/common/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/common/libcxx/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/common/libunwind/default.nix4
-rw-r--r--pkgs/development/compilers/llvm/common/lld/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/common/lldb.nix3
-rw-r--r--pkgs/development/compilers/llvm/common/llvm/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/common/mlir/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/common/openmp/default.nix3
-rw-r--r--pkgs/development/compilers/llvm/default.nix49
-rw-r--r--pkgs/development/coq-modules/QuickChick/default.nix3
-rw-r--r--pkgs/development/coq-modules/simple-io/default.nix6
-rw-r--r--pkgs/development/emilua-plugins/botan/default.nix62
-rw-r--r--pkgs/development/emilua-plugins/secp256k1/default.nix62
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix8
-rw-r--r--pkgs/development/libraries/arpa2common/default.nix61
-rw-r--r--pkgs/development/libraries/libraqm/default.nix4
-rw-r--r--pkgs/development/libraries/mongoc/default.nix4
-rw-r--r--pkgs/development/libraries/tagparser/default.nix4
-rw-r--r--pkgs/development/libraries/wlroots/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/angstrom/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/elpi/default.nix33
-rw-r--r--pkgs/development/ocaml-modules/uucd/default.nix4
-rw-r--r--pkgs/development/python-modules/aioautomower/default.nix4
-rw-r--r--pkgs/development/python-modules/aiostreammagic/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-compat/default.nix4
-rw-r--r--pkgs/development/python-modules/asteval/default.nix4
-rw-r--r--pkgs/development/python-modules/billiard/default.nix28
-rw-r--r--pkgs/development/python-modules/blessings/default.nix35
-rw-r--r--pkgs/development/python-modules/boto/0005-Don-t-mock-list-subclass.patch21
-rw-r--r--pkgs/development/python-modules/boto/bug-953970_python3.8-compat.patch53
-rw-r--r--pkgs/development/python-modules/boto/default.nix66
-rw-r--r--pkgs/development/python-modules/cirq-rigetti/default.nix11
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--pkgs/development/python-modules/clustershell/default.nix69
-rw-r--r--pkgs/development/python-modules/datadog/default.nix4
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix2
-rw-r--r--pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix61
-rw-r--r--pkgs/development/python-modules/hishel/default.nix4
-rw-r--r--pkgs/development/python-modules/invocations/default.nix31
-rw-r--r--pkgs/development/python-modules/invocations/replace-blessings-with-blessed.patch26
-rw-r--r--pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix59
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix4
-rw-r--r--pkgs/development/python-modules/latexrestricted/default.nix32
-rw-r--r--pkgs/development/python-modules/libretranslate/default.nix4
-rw-r--r--pkgs/development/python-modules/lockfile/default.nix18
-rw-r--r--pkgs/development/python-modules/lockfile/fix-tests.patch28
-rw-r--r--pkgs/development/python-modules/meteoswiss-async/default.nix52
-rw-r--r--pkgs/development/python-modules/mhcflurry/default.nix22
-rw-r--r--pkgs/development/python-modules/mmengine/default.nix10
-rw-r--r--pkgs/development/python-modules/morecantile/default.nix10
-rw-r--r--pkgs/development/python-modules/n3fit/default.nix51
-rw-r--r--pkgs/development/python-modules/nbdev/default.nix4
-rw-r--r--pkgs/development/python-modules/numpyro/default.nix73
-rw-r--r--pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix52
-rw-r--r--pkgs/development/python-modules/proton-vpn-network-manager-wireguard/default.nix57
-rw-r--r--pkgs/development/python-modules/proton-vpn-network-manager/default.nix9
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pydy/default.nix36
-rw-r--r--pkgs/development/python-modules/pytest-relaxed/default.nix2
-rw-r--r--pkgs/development/python-modules/qcs-api-client-common/Cargo.lock3879
-rw-r--r--pkgs/development/python-modules/qcs-api-client-common/default.nix77
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock88
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix12
-rw-r--r--pkgs/development/python-modules/qds-sdk/default.nix51
-rw-r--r--pkgs/development/python-modules/quil/default.nix6
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix4
-rw-r--r--pkgs/development/python-modules/reportengine/default.nix57
-rw-r--r--pkgs/development/python-modules/restfly/default.nix26
-rw-r--r--pkgs/development/python-modules/ronin/default.nix34
-rw-r--r--pkgs/development/python-modules/rx/default.nix12
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlalchemy/1_4.nix7
-rw-r--r--pkgs/development/python-modules/svg-py/default.nix4
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix11
-rw-r--r--pkgs/development/python-modules/ttfautohint-py/default.nix2
-rw-r--r--pkgs/development/python-modules/ufmt/default.nix4
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix4
-rw-r--r--pkgs/development/python-modules/validphys2/default.nix48
-rw-r--r--pkgs/development/python-modules/weheat/default.nix4
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix4
-rw-r--r--pkgs/development/tools/analysis/smatch/default.nix43
-rw-r--r--pkgs/development/tools/aws-sam-cli/default.nix117
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/dump_syms/default.nix6
-rw-r--r--pkgs/development/tools/electron/binary/info.json11
-rw-r--r--pkgs/development/tools/electron/chromedriver/info.json14
-rw-r--r--pkgs/development/tools/electron/info.json941
-rw-r--r--pkgs/development/tools/fq/default.nix6
-rw-r--r--pkgs/development/tools/go-mockery/default.nix4
-rw-r--r--pkgs/development/tools/gqlgenc/default.nix6
-rw-r--r--pkgs/development/tools/jql/default.nix6
-rw-r--r--pkgs/development/tools/misc/elfutils/cxx-header-collision.patch331
-rw-r--r--pkgs/development/tools/misc/elfutils/default.nix10
-rw-r--r--pkgs/development/tools/ocaml/ocamlbuild/default.nix2
-rw-r--r--pkgs/development/tools/revive/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-chef/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-show-asm/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-temp/default.nix6
-rw-r--r--pkgs/development/tools/zed/default.nix6
-rw-r--r--pkgs/games/shattered-pixel-dungeon/default.nix4
-rw-r--r--pkgs/games/steam/fhsenv.nix2
-rw-r--r--pkgs/misc/cbeams/default.nix21
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix87
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json84
-rwxr-xr-xpkgs/os-specific/linux/kernel/hardened/update.py9
-rw-r--r--pkgs/os-specific/linux/kernel/kernels-org.json12
-rw-r--r--pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch14
-rw-r--r--pkgs/os-specific/linux/kernel/patches.nix5
-rw-r--r--pkgs/os-specific/linux/kernel/perf/default.nix11
-rw-r--r--pkgs/os-specific/linux/kernel/perf/fix-dmesg-path.diff11
-rw-r--r--pkgs/os-specific/linux/nfs-utils/default.nix9
-rw-r--r--pkgs/servers/matrix-synapse/default.nix6
-rw-r--r--pkgs/servers/minio/default.nix6
-rw-r--r--pkgs/servers/monitoring/loki/default.nix4
-rw-r--r--pkgs/servers/sql/mariadb/default.nix22
-rw-r--r--pkgs/servers/sql/mariadb/patch/0001-Fix-build-with-libxml2-2.12.patch167
-rw-r--r--pkgs/servers/web-apps/kavita/default.nix36
-rw-r--r--pkgs/servers/web-apps/kavita/nuget-deps.nix101
-rw-r--r--pkgs/servers/web-apps/wiki-js/default.nix4
-rw-r--r--pkgs/tools/admin/balena-cli/default.nix6
-rw-r--r--pkgs/tools/admin/credhub-cli/default.nix4
-rw-r--r--pkgs/tools/backup/wal-e/default.nix37
-rw-r--r--pkgs/tools/filesystems/garage/default.nix23
-rw-r--r--pkgs/tools/misc/backdown/default.nix6
-rw-r--r--pkgs/tools/misc/chafa/default.nix4
-rw-r--r--pkgs/tools/misc/cyclonedx-python/default.nix4
-rw-r--r--pkgs/tools/misc/kargo/default.nix39
-rw-r--r--pkgs/tools/misc/moar/default.nix6
-rw-r--r--pkgs/tools/misc/pokeget-rs/default.nix6
-rw-r--r--pkgs/tools/misc/sshx/default.nix19
-rw-r--r--pkgs/tools/networking/minio-client/default.nix4
-rw-r--r--pkgs/tools/networking/rabtap/default.nix6
-rw-r--r--pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--pkgs/tools/networking/v2ray/default.nix6
-rw-r--r--pkgs/tools/package-management/nix/README.md35
-rw-r--r--pkgs/tools/package-management/nix/common.nix18
-rw-r--r--pkgs/tools/package-management/nix/default.nix1
-rw-r--r--pkgs/tools/security/kubernetes-polaris/default.nix6
-rw-r--r--pkgs/tools/security/ldeep/default.nix4
-rw-r--r--pkgs/tools/security/ssh-to-age/default.nix6
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/system/btop/default.nix4
-rw-r--r--pkgs/tools/text/crowdin-cli/default.nix4
-rw-r--r--pkgs/tools/text/mdbook-mermaid/default.nix6
-rw-r--r--pkgs/tools/text/riffdiff/default.nix6
-rw-r--r--pkgs/top-level/aliases.nix25
-rw-r--r--pkgs/top-level/all-packages.nix69
-rw-r--r--pkgs/top-level/coq-packages.nix4
-rw-r--r--pkgs/top-level/emilua-plugins.nix6
-rw-r--r--pkgs/top-level/linux-kernels.nix51
-rw-r--r--pkgs/top-level/perl-packages.nix1
-rw-r--r--pkgs/top-level/python-aliases.nix11
-rw-r--r--pkgs/top-level/python-packages.nix30
363 files changed, 10511 insertions, 3672 deletions
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 586ff0ce7727b..4dc415ea597ec 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -162,7 +162,7 @@ nixos/modules/installer/tools/nix-fallback-paths.nix  @NixOS/nix-team @raitobeza
 
 # C compilers
 /pkgs/development/compilers/gcc
-/pkgs/development/compilers/llvm @RossComputerGuy
+/pkgs/development/compilers/llvm @alyssais @RossComputerGuy
 /pkgs/development/compilers/emscripten @raitobezarius
 /doc/languages-frameworks/emscripten.section.md @raitobezarius
 
@@ -336,9 +336,6 @@ pkgs/by-name/fo/forgejo/                @adamcstephens @bendlas @emilylange
 /pkgs/build-support/node/fetch-npm-deps         @winterqt
 /doc/languages-frameworks/javascript.section.md @winterqt
 
-# environment.noXlibs option aka NoX
-/nixos/modules/config/no-x-libs.nix  @SuperSandro2000
-
 # OCaml
 /pkgs/build-support/ocaml           @ulrikstrid
 /pkgs/development/compilers/ocaml   @ulrikstrid
diff --git a/.mailmap b/.mailmap
index 68b9a683e57e6..12ba1f6ae4423 100644
--- a/.mailmap
+++ b/.mailmap
@@ -1,6 +1,9 @@
 ajs124 <git@ajs124.de> <ajs124@users.noreply.github.com>
 Anderson Torres <torres.anderson.85@protonmail.com>
 Atemu <git@atemu.net> <atemu.main@gmail.com>
+Christina Sørensen <christina@cafkafk.com>
+Christina Sørensen <christina@cafkafk.com> <christinaafk@gmail.com>
+Christina Sørensen <christina@cafkafk.com> <89321978+cafkafk@users.noreply.github.com>
 Daniel Løvbrøtte Olsen <me@dandellion.xyz> <daniel.olsen99@gmail.com>
 Fabian Affolter <mail@fabian-affolter.ch> <fabian@affolter-engineering.ch>
 goatastronaut0212 <goatastronaut0212@outlook.com> <goatastronaut0212@proton.me>
diff --git a/doc/languages-frameworks/coq.section.md b/doc/languages-frameworks/coq.section.md
index a2961eceeb61f..ca983eec4f0d3 100644
--- a/doc/languages-frameworks/coq.section.md
+++ b/doc/languages-frameworks/coq.section.md
@@ -23,12 +23,13 @@ The recommended way of defining a derivation for a Coq library, is to use the `c
   * if it is a string of the form `owner:branch` then it tries to download the `branch` of owner `owner` for a project of the same name using the same vcs, and the `version` attribute of the resulting derivation is set to `"dev"`, additionally if the owner is not provided (i.e. if the `owner:` prefix is missing), it defaults to the original owner of the package (see below),
   * if it is a string of the form `"#N"`, and the domain is github, then it tries to download the current head of the pull request `#N` from github,
 * `defaultVersion` (optional). Coq libraries may be compatible with some specific versions of Coq only. The `defaultVersion` attribute is used when no `version` is provided (or if `version = null`) to select the version of the library to use by default, depending on the context. This selection will mainly depend on a `coq` version number but also possibly on other packages versions (e.g. `mathcomp`). If its value ends up to be `null`, the package is marked for removal in end-user `coqPackages` attribute set.
-* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `hash` attribute (you may put the empty string `""` in order to automatically insert a fake hash, this will trigger an error which will allow you to find the correct hash), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
+* `release` (optional, defaults to `{}`), lists all the known releases of the library and for each of them provides an attribute set with at least a `hash` attribute (you may put the empty string `""` in order to automatically insert a fake hash, this will trigger an error which will allow you to find the correct hash), each attribute set of the list of releases also takes optional overloading arguments for the fetcher as below (i.e.`domain`, `owner`, `repo`, `rev`, `artifact` assuming the default fetcher is used) and optional overrides for the result of the fetcher (i.e. `version` and `src`).
 * `fetcher` (optional, defaults to a generic fetching mechanism supporting github or gitlab based infrastructures), is a function that takes at least an `owner`, a `repo`, a `rev`, and a `hash` and returns an attribute set with a `version` and `src`.
 * `repo` (optional, defaults to the value of `pname`),
 * `owner` (optional, defaults to `"coq-community"`).
 * `domain` (optional, defaults to `"github.com"`), domains including the strings `"github"` or `"gitlab"` in their names are automatically supported, otherwise, one must change the `fetcher` argument to support them (cf `pkgs/development/coq-modules/heq/default.nix` for an example),
 * `releaseRev` (optional, defaults to `(v: v)`), provides a default mapping from release names to revision hashes/branch names/tags,
+* `releaseArtifact` (optional, defaults to `(v: null)`), provides a default mapping from release names to artifact names (only works for github artifact for now),
 * `displayVersion` (optional), provides a way to alter the computation of `name` from `pname`, by explaining how to display version numbers,
 * `namePrefix` (optional, defaults to `[ "coq" ]`), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
 * `nativeBuildInputs` (optional), is a list of executables that are required to build the current derivation, in addition to the default ones (namely `which`, `dune` and `ocaml` depending on whether `useDune`, `useDuneifVersion` and `mlPlugin` are set).
diff --git a/flake.nix b/flake.nix
index bb7d0d5d4de36..b09b6a5a4a0b3 100644
--- a/flake.nix
+++ b/flake.nix
@@ -64,7 +64,7 @@
               boot.loader.grub.enable = false;
               fileSystems."/".device = "nodev";
               # See https://search.nixos.org/options?show=system.stateVersion&query=stateversion
-              system.stateVersion = lib.versions.majorMinor lib.version; # DON'T do this in real configs!
+              system.stateVersion = lib.trivial.release; # DON'T do this in real configs!
             })
           ];
         }).config.system.build.toplevel;
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 15fa72f89843d..5431ce9a489d7 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -2028,6 +2028,13 @@
     github = "Atry";
     githubId = 601530;
   };
+  attila = {
+    name = "Attila Oláh";
+    email = "attila@dorn.haus";
+    github = "attilaolah";
+    githubId = 196617;
+    keys = [ { fingerprint = "BF2E 4759 74D3 88E0 E30C  9604 07E6 C064 3FD1 42C3"; } ];
+  };
   auchter = {
     name = "Michael Auchter";
     email = "a@phire.org";
@@ -2514,6 +2521,12 @@
     githubId = 6145260;
     keys = [ { fingerprint = "804B 6CB8 AED5 61D9 3DAD  4DC5 E2F2 2C5E DF20 119D"; } ];
   };
+  benchand = {
+    name = "Ben Chand";
+    email = "BenChand1995@gmail.com";
+    github = "BenChand";
+    githubId = 3618457;
+  };
   bendlas = {
     email = "herwig@bendlas.net";
     matrix = "@bendlas:matrix.org";
@@ -2661,6 +2674,13 @@
     githubId = 7346933;
     name = "betaboon";
   };
+  beviu = {
+    name = "beviu";
+    email = "nixpkgs@beviu.com";
+    github = "beviu";
+    githubId = 56923875;
+    keys = [ { fingerprint = "30D6 A755 E3C3 5797 CBBB  05B6 CD20 2E66 5CAD 7D06"; } ];
+  };
   bew = {
     email = "benoit.dechezelles@gmail.com";
     github = "bew";
@@ -2757,6 +2777,12 @@
     githubId = 10164833;
     name = "Birk Bohne";
   };
+  bjesus = {
+    email = "nixpkgs@yoavmoshe.com";
+    github = "bjesus";
+    githubId = 55081;
+    name = "Yo'av Moshe";
+  };
   bjornfor = {
     email = "bjorn.forsman@gmail.com";
     github = "bjornfor";
@@ -11849,6 +11875,12 @@
     githubId = 13804737;
     keys = [ { fingerprint = "7FE2 113A A08B 695A C8B8  DDE6 AE53 B4C2 E58E DD45"; } ];
   };
+  lgbishop = {
+    email = "lachlan.bishop@hotmail.com";
+    github = "lgbishop";
+    githubId = 125634066;
+    name = "Lachlan Bishop";
+  };
   lgcl = {
     email = "dev@lgcl.de";
     name = "Leon Vack";
@@ -12239,6 +12271,12 @@
     githubId = 8555953;
     name = "Laure Tavard";
   };
+  ltrump = {
+    email = "ltrump@163.com";
+    github = "L-Trump";
+    githubId = 37738631;
+    name = "Luo Chen";
+  };
   ltstf1re = {
     email = "ltstf1re@disroot.org";
     github = "lsf1re";
diff --git a/maintainers/scripts/pluginupdate-py/__init__.py b/maintainers/scripts/pluginupdate-py/__init__.py
new file mode 100644
index 0000000000000..e69de29bb2d1d
--- /dev/null
+++ b/maintainers/scripts/pluginupdate-py/__init__.py
diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate-py/pluginupdate.py
index afe60069dd29f..afe60069dd29f 100644
--- a/maintainers/scripts/pluginupdate.py
+++ b/maintainers/scripts/pluginupdate-py/pluginupdate.py
diff --git a/nixos/doc/manual/configuration/profiles/minimal.section.md b/nixos/doc/manual/configuration/profiles/minimal.section.md
index 76d9585a0bd3c..5b72112477f71 100644
--- a/nixos/doc/manual/configuration/profiles/minimal.section.md
+++ b/nixos/doc/manual/configuration/profiles/minimal.section.md
@@ -1,8 +1,6 @@
 # Minimal {#sec-profile-minimal}
 
 This profile defines a small NixOS configuration. It does not contain any
-graphical stuff. It's a very short file that enables
-[noXlibs](#opt-environment.noXlibs), sets
-[](#opt-i18n.supportedLocales) to
-only support the user-selected locale,
-and [disables packages' documentation](#opt-documentation.enable).
+graphical stuff. It's a very short file that sets [](#opt-i18n.supportedLocales)
+to only support the user-selected locale, and
+[disables packages' documentation](#opt-documentation.enable).
diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md
index 12372c0a3a587..1ec8c7ff90660 100644
--- a/nixos/doc/manual/release-notes/rl-2411.section.md
+++ b/nixos/doc/manual/release-notes/rl-2411.section.md
@@ -52,7 +52,7 @@
 - The [Xen Hypervisor](https://xenproject.org) is once again available as a virtualisation option under [`virtualisation.xen`](#opt-virtualisation.xen.enable).
   - This release includes Xen [4.17.5](https://wiki.xenproject.org/wiki/Xen_Project_4.17_Release_Notes), [4.18.3](https://wiki.xenproject.org/wiki/Xen_Project_4.18_Release_Notes) and [4.19.0](https://wiki.xenproject.org/wiki/Xen_Project_4.19_Release_Notes), as well as support for booting the hypervisor on EFI systems.
   ::: {.warning}
-      Booting into Xen through a legacy BIOS bootloader or with the legacy script-based Stage 1 initrd have been **deprecated**. Only EFI booting and the new systemd-based Stage 1 initrd are supported.
+    Booting into Xen through a legacy BIOS bootloader or with the legacy script-based Stage 1 initrd have been **deprecated**. Only EFI booting and the new systemd-based Stage 1 initrd are supported.
   :::
   - There are two flavours of Xen available by default: `xen`, which includes all built-in components, and `xen-slim`, which replaces the built-in components with their Nixpkgs equivalents.
     - The `qemu-xen-traditional` component has been deprecated by upstream Xen, and is no longer available in any of the Xen packages.
@@ -149,6 +149,8 @@
 
 - [ToDesk](https://www.todesk.com/linux.html), a remote desktop applicaton. Available as [services.todesk.enable](#opt-services.todesk.enable).
 
+- [Dependency Track](https://dependencytrack.org/), an intelligent Component Analysis platform that allows organizations to identify and reduce risk in the software supply chain. Available as [services.dependency-track](option.html#opt-services.dependency-track).
+
 ## Backward Incompatibilities {#sec-release-24.11-incompatibilities}
 
 - `transmission` package has been aliased with a `trace` warning to `transmission_3`. Since [Transmission 4 has been released last year](https://github.com/transmission/transmission/releases/tag/4.0.0), and Transmission 3 will eventually go away, it was decided perform this warning alias to make people aware of the new version. The `services.transmission.package` defaults to `transmission_3` as well because the upgrade can cause data loss in certain specific usage patterns (examples: [#5153](https://github.com/transmission/transmission/issues/5153), [#6796](https://github.com/transmission/transmission/issues/6796)). Please make sure to back up to your data directory per your usage:
@@ -197,6 +199,8 @@
 
 - The `MSMTP_QUEUE` and `MSMTP_LOG` environment variables accepted by `msmtpq` have now been renamed to `MSMTPQ_Q` and `MSMTPQ_LOG` respectively.
 
+- The logrotate service has received hardening and now requires enabling `allowNetworking`, if logrotate needs to access the network.
+
 - The fcgiwrap module now allows multiple instances running as distinct users.
   The option `services.fgciwrap` now takes an attribute set of the
   configuration of each individual instance.
@@ -257,6 +261,9 @@
 
 - `pkgs.nextcloud27` has been removed since it's EOL.
 
+- The `environment.noXlibs` option has been removed. It was a common source of unexpected rebuilds and breakage that was often hard to diagnose.
+  If you need to disable certain libraries, you're encouraged to add your own overlay to your configuration that targets the packages you care about.
+
 - `frigate` was updated past 0.14.0. This release includes various breaking changes, so please go read the [release notes](https://github.com/blakeblackshear/frigate/releases/tag/v0.14.0).
    Most prominently access to the webinterface and API are now protected by authentication. Retrieve the auto-created
    admin account from the `frigate.service` journal after upgrading.
@@ -517,6 +524,8 @@
   The derivation now installs "impl" headers selectively instead of by a wildcard.
   Use `imgui.src` if you just want to access the unpacked sources.
 
+- Linux 4.19 has been removed because it will reach its end of life within the lifespan of 24.11
+
 - Unprivileged access to the kernel syslog via `dmesg` is now restricted by default. Users wanting to keep an
   unrestricted access to it can set `boot.kernel.sysctl."kernel.dmesg_restrict" = false`.
 
diff --git a/nixos/modules/config/no-x-libs.nix b/nixos/modules/config/no-x-libs.nix
deleted file mode 100644
index e3fd0b34ddf4b..0000000000000
--- a/nixos/modules/config/no-x-libs.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-# This module gets rid of all dependencies on X11 client libraries
-# (including fontconfig).
-{ config, lib, ... }:
-{
-  options = {
-    environment.noXlibs = lib.mkOption {
-      type = lib.types.bool;
-      default = false;
-      description = ''
-        Switch off the options in the default configuration that
-        require X11 libraries. This includes client-side font
-        configuration and SSH forwarding of X11 authentication
-        in. Thus, you probably do not want to enable this option if
-        you want to run X11 programs on this machine via SSH.
-      '';
-    };
-  };
-
-  config = lib.mkIf config.environment.noXlibs {
-    programs.ssh.setXAuthLocation = false;
-    security.pam.services.su.forwardXAuth = lib.mkForce false;
-
-    fonts.fontconfig.enable = false;
-
-    nixpkgs.overlays = lib.singleton (lib.const (super: {
-      beam = super.beam_nox;
-      cairo = super.cairo.override { x11Support = false; };
-      dbus = super.dbus.override { x11Support = false; };
-      fastfetch = super.fastfetch.override { vulkanSupport = false; waylandSupport = false; x11Support = false; };
-      ffmpeg = super.ffmpeg.override { ffmpegVariant = "headless"; };
-      ffmpeg_4 = super.ffmpeg_4.override { ffmpegVariant = "headless"; };
-      ffmpeg_6 = super.ffmpeg_6.override { ffmpegVariant = "headless"; };
-      ffmpeg_7 = super.ffmpeg_7.override { ffmpegVariant = "headless"; };
-      # dep of graphviz, libXpm is optional for Xpm support
-      gd = super.gd.override { withXorg = false; };
-      ghostscript = super.ghostscript.override { cupsSupport = false; x11Support = false; };
-      gjs = (super.gjs.override { installTests = false; }).overrideAttrs { doCheck = false; }; # avoid test dependency on gtk3
-      gobject-introspection = super.gobject-introspection.override { x11Support = false; };
-      gpg-tui = super.gpg-tui.override { x11Support = false; };
-      gpsd = super.gpsd.override { guiSupport = false; };
-      graphviz = super.graphviz-nox;
-      gst_all_1 = super.gst_all_1 // {
-        gst-plugins-bad = super.gst_all_1.gst-plugins-bad.override { guiSupport = false; };
-        gst-plugins-base = super.gst_all_1.gst-plugins-base.override { enableGl = false; enableWayland = false; enableX11 = false; };
-        gst-plugins-good = super.gst_all_1.gst-plugins-good.override { enableWayland = false; enableX11 = false; gtkSupport = false; qt5Support = false; qt6Support = false; };
-        gst-plugins-rs = super.gst_all_1.gst-plugins-rs.override { withGtkPlugins = false; };
-      };
-      imagemagick = super.imagemagick.override { libX11Support = false; libXtSupport = false; };
-      imagemagickBig = super.imagemagickBig.override { libX11Support = false; libXtSupport = false; };
-      intel-vaapi-driver = super.intel-vaapi-driver.override { enableGui = false; };
-      libdevil = super.libdevil-nox;
-      libextractor = super.libextractor.override { gtkSupport = false; };
-      libplacebo = super.libplacebo.override { vulkanSupport = false; };
-      libva = super.libva-minimal;
-      limesuite = super.limesuite.override { withGui = false; };
-      mc = super.mc.override { x11Support = false; };
-      mpv-unwrapped = super.mpv-unwrapped.override { drmSupport = false; screenSaverSupport = false; sdl2Support = false; vulkanSupport = false; waylandSupport = false; x11Support = false; };
-      msmtp = super.msmtp.override { withKeyring = false; };
-      mupdf = super.mupdf.override { enableGL = false; enableX11 = false; };
-      neofetch = super.neofetch.override { x11Support = false; };
-      networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
-      networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
-      networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
-      networkmanager-openconnect = super.networkmanager-openconnect.override { withGnome = false; };
-      networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; };
-      networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; };
-      networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
-      pango = super.pango.override { x11Support = false; };
-      pinentry-curses = super.pinentry-curses.override { withLibsecret = false; };
-      pinentry-tty = super.pinentry-tty.override { withLibsecret = false; };
-      pipewire = super.pipewire.override { vulkanSupport = false; x11Support = false; };
-      pythonPackagesExtensions = super.pythonPackagesExtensions ++ [
-        (python-final: python-prev: {
-          # tk feature requires wayland which fails to compile
-          matplotlib = python-prev.matplotlib.override { enableTk = false; };
-        })
-      ];
-      qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
-      qrencode = super.qrencode.overrideAttrs (_: { doCheck = false; });
-      qt5 = super.qt5.overrideScope (lib.const (super': {
-        qtbase = super'.qtbase.override { withGtk3 = false; withQttranslation = false; };
-      }));
-      stoken = super.stoken.override { withGTK3 = false; };
-      # translateManpages -> perlPackages.po4a -> texlive-combined-basic -> texlive-core-big -> libX11
-      util-linux = super.util-linux.override { translateManpages = false; };
-      vim-full = super.vim-full.override { guiSupport = false; };
-      vte = super.vte.override { gtkVersion = null; };
-      zbar = super.zbar.override { enableVideo = false; withXorg = false; };
-    }));
-  };
-}
diff --git a/nixos/modules/installer/sd-card/sd-image.nix b/nixos/modules/installer/sd-card/sd-image.nix
index 42584d88160ac..0e717a2b6a7a6 100644
--- a/nixos/modules/installer/sd-card/sd-image.nix
+++ b/nixos/modules/installer/sd-card/sd-image.nix
@@ -150,6 +150,15 @@ in
         Whether to configure the sd image to expand it's partition on boot.
       '';
     };
+
+    nixPathRegistrationFile = mkOption {
+      type = types.str;
+      default = "/nix-path-registration";
+      description = ''
+        Location of the file containing the input for nix-store --load-db once the machine has booted.
+        If overriding fileSystems."/" then you should to set this to the root mount + /nix-path-registration
+      '';
+    };
   };
 
   config = {
@@ -255,11 +264,8 @@ in
       '';
     }) {};
 
-    boot.postBootCommands = lib.mkIf config.sdImage.expandOnBoot ''
-      # On the first boot do some maintenance tasks
-      if [ -f /nix-path-registration ]; then
-        set -euo pipefail
-        set -x
+    boot.postBootCommands = let
+      expandOnBoot = lib.optionalString config.sdImage.expandOnBoot ''
         # Figure out device names for the boot device and root filesystem.
         rootPart=$(${pkgs.util-linux}/bin/findmnt -n -o SOURCE /)
         bootDevice=$(lsblk -npo PKNAME $rootPart)
@@ -269,16 +275,25 @@ in
         echo ",+," | sfdisk -N$partNum --no-reread $bootDevice
         ${pkgs.parted}/bin/partprobe
         ${pkgs.e2fsprogs}/bin/resize2fs $rootPart
+      '';
+      nixPathRegistrationFile = config.sdImage.nixPathRegistrationFile;
+    in ''
+      # On the first boot do some maintenance tasks
+      if [ -f ${nixPathRegistrationFile} ]; then
+        set -euo pipefail
+        set -x
+
+        ${expandOnBoot}
 
         # Register the contents of the initial Nix store
-        ${config.nix.package.out}/bin/nix-store --load-db < /nix-path-registration
+        ${config.nix.package.out}/bin/nix-store --load-db < ${nixPathRegistrationFile}
 
         # nixos-rebuild also requires a "system" profile and an /etc/NIXOS tag.
         touch /etc/NIXOS
         ${config.nix.package.out}/bin/nix-env -p /nix/var/nix/profiles/system --set /run/current-system
 
         # Prevents this from running on later boots.
-        rm -f /nix-path-registration
+        rm -f ${nixPathRegistrationFile}
       fi
     '';
   };
diff --git a/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixos/modules/installer/tools/nix-fallback-paths.nix
index f9ea7eb395973..5e23e8dda4321 100644
--- a/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,7 +1,7 @@
 {
-  x86_64-linux = "/nix/store/f409bhlpp0xkzvdz95qr2yvfjfi8r9jc-nix-2.18.5";
-  i686-linux = "/nix/store/ra39jzrxq3bcpf55aahwv5037akvylf5-nix-2.18.5";
-  aarch64-linux = "/nix/store/xiw8a4jbnw18svgdb04hyqzg5bsjspqf-nix-2.18.5";
-  x86_64-darwin = "/nix/store/k2gzx7i90x3h2c8g6xdi1jkwbl6ic895-nix-2.18.5";
-  aarch64-darwin = "/nix/store/rqwymbndaqxma6p8s5brcl9k32n5xx54-nix-2.18.5";
+  x86_64-linux = "/nix/store/mczjdfprd67mdn90488854bf6b3nkp8j-nix-2.18.7";
+  i686-linux = "/nix/store/qqll8zrx7ibdx34ry1ijanqdpdpnibbc-nix-2.18.7";
+  aarch64-linux = "/nix/store/lwysvjn745fwsz8nv13zzsfq0dhiyxlp-nix-2.18.7";
+  x86_64-darwin = "/nix/store/frzvlvzzj7hwvg8p0y0ivl27430nxhfy-nix-2.18.7";
+  aarch64-darwin = "/nix/store/43dp3pl3k95gszp1hl9sjm22gly65sxi-nix-2.18.7";
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index a70bee9f60830..4a97be04fe7fc 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -20,7 +20,6 @@
   ./config/nix-channel.nix
   ./config/nix-flakes.nix
   ./config/nix-remote-build.nix
-  ./config/no-x-libs.nix
   ./config/nsswitch.nix
   ./config/power-management.nix
   ./config/pulseaudio.nix
@@ -1397,6 +1396,7 @@
   ./services/web-apps/crabfit.nix
   ./services/web-apps/davis.nix
   ./services/web-apps/cryptpad.nix
+  ./services/web-apps/dependency-track.nix
   ./services/web-apps/dex.nix
   ./services/web-apps/discourse.nix
   ./services/web-apps/documize.nix
diff --git a/nixos/modules/profiles/minimal.nix b/nixos/modules/profiles/minimal.nix
index e6aafccb8906f..df21b75c82b12 100644
--- a/nixos/modules/profiles/minimal.nix
+++ b/nixos/modules/profiles/minimal.nix
@@ -19,7 +19,7 @@ with lib;
   # Perl is a default package.
   environment.defaultPackages = mkDefault [ ];
 
-  environment.stub-ld.enable = false;
+  environment.stub-ld.enable = mkDefault false;
 
   # The lessopen package pulls in Perl.
   programs.less.lessopen = mkDefault null;
@@ -29,6 +29,8 @@ with lib;
 
   programs.command-not-found.enable = mkDefault false;
 
+  programs.ssh.setXAuthLocation = mkDefault false;
+
   services.logrotate.enable = mkDefault false;
 
   services.udisks2.enable = mkDefault false;
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 122ef63913a5f..63f612eec960c 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -21,6 +21,10 @@ in
 
     # Completely removed modules
     (mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
+    (mkRemovedOptionModule [ "environment" "noXlibs" ] ''
+      The environment.noXlibs option was removed, as it often caused surprising breakages for new users.
+      If you need its functionality, you can apply similar overlays in your own config.
+    '')
     (mkRemovedOptionModule [ "fonts" "fontconfig" "penultimate" ] "The corresponding package has removed from nixpkgs.")
     (mkRemovedOptionModule [ "hardware" "brightnessctl" ] ''
       The brightnessctl module was removed because newer versions of
diff --git a/nixos/modules/services/backup/automysqlbackup.nix b/nixos/modules/services/backup/automysqlbackup.nix
index cf3b6b8d13a4d..d5efda74f26f9 100644
--- a/nixos/modules/services/backup/automysqlbackup.nix
+++ b/nixos/modules/services/backup/automysqlbackup.nix
@@ -118,15 +118,6 @@ in
       name = user;
       ensurePermissions = {
         "*.*" = "SELECT, SHOW VIEW, TRIGGER, LOCK TABLES, EVENT";
-
-        # https://forums.mysql.com/read.php?10,668311,668315#msg-668315
-        "function sys.extract_table_from_file_name" = "execute";
-        "function sys.format_path" = "execute";
-        "function sys.format_statement" = "execute";
-        "function sys.extract_schema_from_file_name" = "execute";
-        "function sys.ps_thread_account" = "execute";
-        "function sys.format_time" = "execute";
-        "function sys.format_bytes" = "execute";
       };
     };
 
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index 6db1b108cc6cd..6fb5f0588d97a 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -97,6 +97,8 @@ in
         defaultText = lib.literalExpression "cfg.settings != {}";
       };
 
+      allowNetworking = lib.mkEnableOption "network access for logrotate";
+
       settings = lib.mkOption {
         default = { };
         description = ''
@@ -240,12 +242,55 @@ in
   config = lib.mkIf cfg.enable {
     systemd.services.logrotate = {
       description = "Logrotate Service";
+      documentation = [
+        "man:logrotate(8)"
+        "man:logrotate(5)"
+      ];
       startAt = "hourly";
 
       serviceConfig = {
-        Restart = "no";
-        User = "root";
-        ExecStart = "${pkgs.logrotate}/sbin/logrotate ${utils.escapeSystemdExecArgs cfg.extraArgs} ${mailOption} ${cfg.configFile}";
+        Type = "oneshot";
+        ExecStart = "${lib.getExe pkgs.logrotate} ${utils.escapeSystemdExecArgs cfg.extraArgs} ${mailOption} ${cfg.configFile}";
+
+        # performance
+        Nice = 19;
+        IOSchedulingClass = "best-effort";
+        IOSchedulingPriority = 7;
+
+        # hardening
+        CapabilityBoundingSet = [
+          "CAP_CHOWN"
+          "CAP_SETGID"
+        ];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateTmp = true;
+        ProcSubset = "pid";
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectProc = "invisible";
+        ProtectSystem = "full";
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [
+          "@system-service"
+          "~@privileged @resources"
+          "@chown"
+        ];
+        UMask = "0027";
+      } // lib.optionalAttrs (!cfg.allowNetworking) {
+        PrivateNetwork = true;
+        RestrictAddressFamilies = "none";
       };
     };
     systemd.services.logrotate-checkconf = {
diff --git a/nixos/modules/services/networking/nar-serve.nix b/nixos/modules/services/networking/nar-serve.nix
index 5a5cefe86d29f..ea5be25a4d26b 100644
--- a/nixos/modules/services/networking/nar-serve.nix
+++ b/nixos/modules/services/networking/nar-serve.nix
@@ -1,18 +1,18 @@
 { config, pkgs, lib, ... }:
 
-with lib;
 let
+  inherit (lib) mkOption types;
   cfg = config.services.nar-serve;
 in
 {
   meta = {
-    maintainers = [ maintainers.rizary maintainers.zimbatm ];
+    maintainers = with lib.maintainers; [ rizary zimbatm ];
   };
   options = {
     services.nar-serve = {
-      enable = mkEnableOption "serving NAR file contents via HTTP";
+      enable = lib.mkEnableOption "serving NAR file contents via HTTP";
 
-      package = mkPackageOption pkgs "nar-serve" { };
+      package = lib.mkPackageOption pkgs "nar-serve" { };
 
       port = mkOption {
         type = types.port;
@@ -48,7 +48,7 @@ in
     };
   };
 
-  config = mkIf cfg.enable {
+  config = lib.mkIf cfg.enable {
     systemd.services.nar-serve = {
       description = "NAR server";
       after = [ "network.target" ];
diff --git a/nixos/modules/services/web-apps/davis.nix b/nixos/modules/services/web-apps/davis.nix
index d9b28020dc2d8..621f2ff20e2bb 100644
--- a/nixos/modules/services/web-apps/davis.nix
+++ b/nixos/modules/services/web-apps/davis.nix
@@ -493,7 +493,7 @@ in
                 };
                 "~* ^/.well-known/(caldav|carddav)$" = {
                   extraConfig = ''
-                    return 302 $http_x_forwarded_proto://$host/dav/;
+                    return 302 https://$host/dav/;
                   '';
                 };
                 "~ ^(.+\.php)(.*)$" = {
@@ -505,7 +505,7 @@ in
                     fastcgi_param            SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                     fastcgi_param            PATH_INFO        $fastcgi_path_info;
                     fastcgi_split_path_info  ^(.+\.php)(.*)$;
-                    fastcgi_param            X-Forwarded-Proto $http_x_forwarded_proto;
+                    fastcgi_param            X-Forwarded-Proto https;
                     fastcgi_param            X-Forwarded-Port $http_x_forwarded_port;
                   '';
                 };
diff --git a/nixos/modules/services/web-apps/dependency-track.nix b/nixos/modules/services/web-apps/dependency-track.nix
new file mode 100644
index 0000000000000..ba3dbee972889
--- /dev/null
+++ b/nixos/modules/services/web-apps/dependency-track.nix
@@ -0,0 +1,608 @@
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
+let
+  cfg = config.services.dependency-track;
+
+  settingsFormat = pkgs.formats.javaProperties { };
+
+  frontendConfigFormat = pkgs.formats.json { };
+  frontendConfigFile = frontendConfigFormat.generate "config.json" {
+    API_BASE_URL = cfg.frontend.baseUrl;
+    OIDC_ISSUER = cfg.oidc.issuer;
+    OIDC_CLIENT_ID = cfg.oidc.clientId;
+    OIDC_SCOPE = cfg.oidc.scope;
+    OIDC_FLOW = cfg.oidc.flow;
+    OIDC_LOGIN_BUTTON_TEXT = cfg.oidc.loginButtonText;
+  };
+
+  sslEnabled =
+    config.services.nginx.virtualHosts.${cfg.nginx.domain}.addSSL
+    || config.services.nginx.virtualHosts.${cfg.nginx.domain}.forceSSL
+    || config.services.nginx.virtualHosts.${cfg.nginx.domain}.onlySSL
+    || config.services.nginx.virtualHosts.${cfg.nginx.domain}.enableACME;
+
+  assertStringPath =
+    optionName: value:
+    if lib.isPath value then
+      throw ''
+        services.dependency-track.${optionName}:
+          ${toString value}
+          is a Nix path, but should be a string, since Nix
+          paths are copied into the world-readable Nix store.
+      ''
+    else
+      value;
+
+  filterNull = lib.filterAttrs (_: v: v != null);
+
+  renderSettings =
+    settings:
+    lib.mapAttrs' (
+      n: v:
+      lib.nameValuePair (lib.toUpper (lib.replaceStrings [ "." ] [ "_" ] n)) (
+        if lib.isBool v then lib.boolToString v else v
+      )
+    ) (filterNull settings);
+in
+{
+  options.services.dependency-track = {
+    enable = lib.mkEnableOption "dependency-track";
+
+    package = lib.mkPackageOption pkgs "dependency-track" { };
+
+    logLevel = lib.mkOption {
+      type = lib.types.enum [
+        "INFO"
+        "WARN"
+        "ERROR"
+        "DEBUG"
+        "TRACE"
+      ];
+      default = "INFO";
+      description = "Log level for dependency-track";
+    };
+
+    port = lib.mkOption {
+      type = lib.types.port;
+      default = 8080;
+      description = ''
+        On which port dependency-track should listen for new HTTP connections.
+      '';
+    };
+
+    javaArgs = lib.mkOption {
+      type = lib.types.listOf lib.types.str;
+      default = [ "-Xmx4G" ];
+      description = "Java options passed to JVM";
+    };
+
+    database = {
+      type = lib.mkOption {
+        type = lib.types.enum [
+          "h2"
+          "postgresql"
+          "manual"
+        ];
+        default = "postgresql";
+        description = ''
+          `h2` database is not recommended for a production setup.
+          `postgresql` this settings it recommended for production setups.
+          `manual` the module doesn't handle database settings.
+        '';
+      };
+
+      createLocally = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        description = ''
+          Whether a database should be automatically created on the
+          local host. Set this to false if you plan on provisioning a
+          local database yourself.
+        '';
+      };
+
+      databaseName = lib.mkOption {
+        type = lib.types.str;
+        default = "dependency-track";
+        description = ''
+          Database name to use when connecting to an external or
+          manually provisioned database; has no effect when a local
+          database is automatically provisioned.
+
+          To use this with a local database, set {option}`services.dependency-track.database.createLocally`
+          to `false` and create the database and user.
+        '';
+      };
+
+      username = lib.mkOption {
+        type = lib.types.str;
+        default = "dependency-track";
+        description = ''
+          Username to use when connecting to an external or manually
+          provisioned database; has no effect when a local database is
+          automatically provisioned.
+
+          To use this with a local database, set {option}`services.dependency-track.database.createLocally`
+          to `false` and create the database and user.
+        '';
+      };
+
+      passwordFile = lib.mkOption {
+        type = lib.types.path;
+        example = "/run/keys/db_password";
+        apply = assertStringPath "passwordFile";
+        description = ''
+          The path to a file containing the database password.
+        '';
+      };
+    };
+
+    ldap.bindPasswordFile = lib.mkOption {
+      type = lib.types.path;
+      example = "/run/keys/ldap_bind_password";
+      apply = assertStringPath "bindPasswordFile";
+      description = ''
+        The path to a file containing the LDAP bind password.
+      '';
+    };
+
+    frontend = {
+      baseUrl = lib.mkOption {
+        type = lib.types.str;
+        default = lib.optionalString cfg.nginx.enable "${
+          if sslEnabled then "https" else "http"
+        }://${cfg.nginx.domain}";
+        defaultText = lib.literalExpression ''
+          lib.optionalString config.services.dependency-track.nginx.enable "''${
+            if sslEnabled then "https" else "http"
+          }://''${config.services.dependency-track.nginx.domain}";
+        '';
+        description = ''
+          The base URL of the API server.
+
+          NOTE:
+          * This URL must be reachable by the browsers of your users.
+          * The frontend container itself does NOT communicate with the API server directly, it just serves static files.
+          * When deploying to dedicated servers, please use the external IP or domain of the API server.
+        '';
+      };
+    };
+
+    oidc = {
+      enable = lib.mkEnableOption "oidc support";
+      issuer = lib.mkOption {
+        type = lib.types.str;
+        default = "";
+        description = ''
+          Defines the issuer URL to be used for OpenID Connect.
+          See alpine.oidc.issuer property of the API server.
+        '';
+      };
+      clientId = lib.mkOption {
+        type = lib.types.str;
+        default = "";
+        description = ''
+          Defines the client ID for OpenID Connect.
+        '';
+      };
+      scope = lib.mkOption {
+        type = lib.types.str;
+        default = "openid profile email";
+        description = ''
+          Defines the scopes to request for OpenID Connect.
+          See also: https://openid.net/specs/openid-connect-basic-1_0.html#Scopes
+        '';
+      };
+      flow = lib.mkOption {
+        type = lib.types.enum [
+          "code"
+          "implicit"
+        ];
+        default = "code";
+        description = ''
+          Specifies the OpenID Connect flow to use.
+          Values other than "implicit" will result in the Code+PKCE flow to be used.
+          Usage of the implicit flow is strongly discouraged, but may be necessary when
+          the IdP of choice does not support the Code+PKCE flow.
+          See also:
+            - https://oauth.net/2/grant-types/implicit/
+            - https://oauth.net/2/pkce/
+        '';
+      };
+      loginButtonText = lib.mkOption {
+        type = lib.types.str;
+        default = "Login with OpenID Connect";
+        description = ''
+          Defines the scopes to request for OpenID Connect.
+          See also: https://openid.net/specs/openid-connect-basic-1_0.html#Scopes
+        '';
+      };
+      usernameClaim = lib.mkOption {
+        type = lib.types.str;
+        default = "name";
+        example = "preferred_username";
+        description = ''
+          Defines the name of the claim that contains the username in the provider's userinfo endpoint.
+          Common claims are "name", "username", "preferred_username" or "nickname".
+          See also: https://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse
+        '';
+      };
+      userProvisioning = lib.mkOption {
+        type = lib.types.bool;
+        default = false;
+        example = true;
+        description = ''
+          Specifies if mapped OpenID Connect accounts are automatically created upon successful
+          authentication. When a user logs in with a valid access token but an account has
+          not been previously provisioned, an authentication failure will be returned.
+          This allows admins to control specifically which OpenID Connect users can access the
+          system and which users cannot. When this value is set to true, a local OpenID Connect
+          user will be created and mapped to the OpenID Connect account automatically. This
+          automatic provisioning only affects authentication, not authorization.
+        '';
+      };
+      teamSynchronization = lib.mkOption {
+        type = lib.types.bool;
+        default = false;
+        example = true;
+        description = ''
+          This option will ensure that team memberships for OpenID Connect users are dynamic and
+          synchronized with membership of OpenID Connect groups or assigned roles. When a team is
+          mapped to an OpenID Connect group, all local OpenID Connect users will automatically be
+          assigned to the team if they are a member of the group the team is mapped to. If the user
+          is later removed from the OpenID Connect group, they will also be removed from the team. This
+          option provides the ability to dynamically control user permissions via the identity provider.
+          Note that team synchronization is only performed during user provisioning and after successful
+          authentication.
+        '';
+      };
+      teams = {
+        claim = lib.mkOption {
+          type = lib.types.str;
+          default = "groups";
+          description = ''
+            Defines the name of the claim that contains group memberships or role assignments in the provider's userinfo endpoint.
+            The claim must be an array of strings. Most public identity providers do not support group or role management.
+            When using a customizable / on-demand hosted identity provider, name, content, and inclusion in the userinfo endpoint
+            will most likely need to be configured.
+          '';
+        };
+        default = lib.mkOption {
+          type = lib.types.nullOr lib.types.commas;
+          default = null;
+          description = ''
+            Defines one or more team names that auto-provisioned OIDC users shall be added to.
+            Multiple team names may be provided as comma-separated list.
+
+            Has no effect when {option}`services.dependency-track.oidc.userProvisioning`=false,
+            or {option}`services.dependency-track.oidc.teamSynchronization`=true.
+          '';
+        };
+      };
+    };
+
+    nginx = {
+      enable = lib.mkOption {
+        type = lib.types.bool;
+        default = true;
+        example = false;
+        description = ''
+          Whether to set up an nginx virtual host.
+        '';
+      };
+
+      domain = lib.mkOption {
+        type = lib.types.str;
+        example = "dtrack.example.com";
+        description = ''
+          The domain name under which to set up the virtual host.
+        '';
+      };
+    };
+
+    settings = lib.mkOption {
+      type = lib.types.submodule {
+        freeformType = settingsFormat.type;
+        options = {
+          "alpine.data.directory" = lib.mkOption {
+            type = lib.types.path;
+            default = "/var/lib/dependency-track";
+            description = ''
+              Defines the path to the data directory. This directory will hold logs, keys,
+              and any database or index files along with application-specific files or
+              directories.
+            '';
+          };
+          "alpine.database.mode" = lib.mkOption {
+            type = lib.types.enum [
+              "server"
+              "embedded"
+              "external"
+            ];
+            default =
+              if cfg.database.type == "h2" then
+                "embedded"
+              else if cfg.database.type == "postgresql" then
+                "external"
+              else
+                null;
+            defaultText = lib.literalExpression ''
+              if config.services.dependency-track.database.type == "h2" then "embedded"
+              else if config.services.dependency-track.database.type == "postgresql" then "external"
+              else null
+            '';
+            description = ''
+              Defines the database mode of operation. Valid choices are:
+              'server', 'embedded', and 'external'.
+              In server mode, the database will listen for connections from remote hosts.
+              In embedded mode, the system will be more secure and slightly faster.
+              External mode should be used when utilizing an external database server
+              (i.e. mysql, postgresql, etc).
+            '';
+          };
+          "alpine.database.url" = lib.mkOption {
+            type = lib.types.str;
+            default =
+              if cfg.database.type == "h2" then
+                "jdbc:h2:/var/lib/dependency-track/db"
+              else if cfg.database.type == "postgresql" then
+                "jdbc:postgresql:${cfg.database.databaseName}?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg&socketFactoryArg=/run/postgresql/.s.PGSQL.5432"
+              else
+                null;
+
+            defaultText = lib.literalExpression ''
+              if config.services.dependency-track.database.type == "h2" then "jdbc:h2:/var/lib/dependency-track/db"
+                else if config.services.dependency-track.database.type == "postgresql" then "jdbc:postgresql:''${config.services.dependency-track.database.name}?socketFactory=org.newsclub.net.unix.AFUNIXSocketFactory$FactoryArg&socketFactoryArg=/run/postgresql/.s.PGSQL.5432"
+                else null
+            '';
+            description = "Specifies the JDBC URL to use when connecting to the database.";
+          };
+          "alpine.database.driver" = lib.mkOption {
+            type = lib.types.enum [
+              "org.h2.Driver"
+              "org.postgresql.Driver"
+              "com.microsoft.sqlserver.jdbc.SQLServerDriver"
+              "com.mysql.cj.jdbc.Driver"
+            ];
+            default =
+              if cfg.database.type == "h2" then
+                "org.h2.Driver"
+              else if cfg.database.type == "postgresql" then
+                "org.postgresql.Driver"
+              else
+                null;
+            defaultText = lib.literalExpression ''
+              if config.services.dependency-track.database.type == "h2" then "org.h2.Driver"
+              else if config.services.dependency-track.database.type == "postgresql" then "org.postgresql.Driver"
+              else null;
+            '';
+            description = "Specifies the JDBC driver class to use.";
+          };
+          "alpine.database.username" = lib.mkOption {
+            type = lib.types.str;
+            default = if cfg.database.createLocally then "dependency-track" else cfg.database.username;
+            defaultText = lib.literalExpression ''
+              if config.services.dependency-track.database.createLocally then "dependency-track"
+              else config.services.dependency-track.database.username
+            '';
+            description = "Specifies the username to use when authenticating to the database.";
+          };
+          "alpine.ldap.enabled" = lib.mkOption {
+            type = lib.types.bool;
+            default = false;
+            description = ''
+              Defines if LDAP will be used for user authentication. If enabled,
+              alpine.ldap.* properties should be set accordingly.
+            '';
+          };
+          "alpine.oidc.enabled" = lib.mkOption {
+            type = lib.types.bool;
+            default = cfg.oidc.enable;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.enable";
+            description = ''
+              Defines if OpenID Connect will be used for user authentication.
+              If enabled, alpine.oidc.* properties should be set accordingly.
+            '';
+          };
+          "alpine.oidc.client.id" = lib.mkOption {
+            type = lib.types.str;
+            default = cfg.oidc.clientId;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.clientId";
+            description = ''
+              Defines the client ID to be used for OpenID Connect.
+              The client ID should be the same as the one configured for the frontend,
+              and will only be used to validate ID tokens.
+            '';
+          };
+          "alpine.oidc.issuer" = lib.mkOption {
+            type = lib.types.str;
+            default = cfg.oidc.issuer;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.issuer";
+            description = ''
+              Defines the issuer URL to be used for OpenID Connect.
+              This issuer MUST support provider configuration via the /.well-known/openid-configuration endpoint.
+              See also:
+              - https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata
+              - https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfig
+            '';
+          };
+          "alpine.oidc.username.claim" = lib.mkOption {
+            type = lib.types.str;
+            default = cfg.oidc.usernameClaim;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.usernameClaim";
+            description = ''
+              Defines the name of the claim that contains the username in the provider's userinfo endpoint.
+              Common claims are "name", "username", "preferred_username" or "nickname".
+              See also: https://openid.net/specs/openid-connect-core-1_0.html#UserInfoResponse
+            '';
+          };
+          "alpine.oidc.user.provisioning" = lib.mkOption {
+            type = lib.types.bool;
+            default = cfg.oidc.userProvisioning;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.userProvisioning";
+            description = ''
+              Specifies if mapped OpenID Connect accounts are automatically created upon successful
+              authentication. When a user logs in with a valid access token but an account has
+              not been previously provisioned, an authentication failure will be returned.
+              This allows admins to control specifically which OpenID Connect users can access the
+              system and which users cannot. When this value is set to true, a local OpenID Connect
+              user will be created and mapped to the OpenID Connect account automatically. This
+              automatic provisioning only affects authentication, not authorization.
+            '';
+          };
+          "alpine.oidc.team.synchronization" = lib.mkOption {
+            type = lib.types.bool;
+            default = cfg.oidc.teamSynchronization;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.teamSynchronization";
+            description = ''
+              This option will ensure that team memberships for OpenID Connect users are dynamic and
+              synchronized with membership of OpenID Connect groups or assigned roles. When a team is
+              mapped to an OpenID Connect group, all local OpenID Connect users will automatically be
+              assigned to the team if they are a member of the group the team is mapped to. If the user
+              is later removed from the OpenID Connect group, they will also be removed from the team. This
+              option provides the ability to dynamically control user permissions via the identity provider.
+              Note that team synchronization is only performed during user provisioning and after successful
+              authentication.
+            '';
+          };
+          "alpine.oidc.teams.claim" = lib.mkOption {
+            type = lib.types.str;
+            default = cfg.oidc.teams.claim;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.teams.claim";
+            description = ''
+              Defines the name of the claim that contains group memberships or role assignments in the provider's userinfo endpoint.
+              The claim must be an array of strings. Most public identity providers do not support group or role management.
+              When using a customizable / on-demand hosted identity provider, name, content, and inclusion in the userinfo endpoint
+              will most likely need to be configured.
+            '';
+          };
+          "alpine.oidc.teams.default" = lib.mkOption {
+            type = lib.types.nullOr lib.types.commas;
+            default = cfg.oidc.teams.default;
+            defaultText = lib.literalExpression "config.services.dependency-track.oidc.teams.default";
+            description = ''
+              Defines one or more team names that auto-provisioned OIDC users shall be added to.
+              Multiple team names may be provided as comma-separated list.
+
+              Has no effect when {option}`services.dependency-track.oidc.userProvisioning`=false,
+              or {option}`services.dependency-track.oidc.teamSynchronization`=true.
+            '';
+          };
+        };
+      };
+      default = { };
+      description = "See https://docs.dependencytrack.org/getting-started/configuration/#default-configuration for possible options";
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    services.nginx = lib.mkIf cfg.nginx.enable {
+      enable = true;
+      recommendedGzipSettings = lib.mkDefault true;
+      recommendedOptimisation = lib.mkDefault true;
+      recommendedProxySettings = lib.mkDefault true;
+      recommendedTlsSettings = lib.mkDefault true;
+      upstreams.dependency-track.servers."localhost:${toString cfg.port}" = { };
+      virtualHosts.${cfg.nginx.domain} = {
+        locations = {
+          "/".proxyPass = "http://dependency-track";
+          "= /static/config.json".alias = frontendConfigFile;
+        };
+      };
+    };
+
+    systemd.services.dependency-track-postgresql-init = lib.mkIf cfg.database.createLocally {
+      after = [ "postgresql.service" ];
+      before = [ "dependency-track.service" ];
+      bindsTo = [ "postgresql.service" ];
+      path = [ config.services.postgresql.package ];
+      serviceConfig = {
+        Type = "oneshot";
+        RemainAfterExit = true;
+        User = "postgres";
+        Group = "postgres";
+        LoadCredential = [ "db_password:${cfg.database.passwordFile}" ];
+        PrivateTmp = true;
+      };
+      script = ''
+        set -eou pipefail
+        shopt -s inherit_errexit
+
+        # Read the password from the credentials directory and
+        # escape any single quotes by adding additional single
+        # quotes after them, following the rules laid out here:
+        # https://www.postgresql.org/docs/current/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS
+        db_password="$(<"$CREDENTIALS_DIRECTORY/db_password")"
+        db_password="''${db_password//\'/\'\'}"
+
+        echo "CREATE ROLE \"dependency-track\" WITH LOGIN PASSWORD '$db_password' CREATEDB" > /tmp/create_role.sql
+        psql -tAc "SELECT 1 FROM pg_roles WHERE rolname='dependency-track'" | grep -q 1 || psql -tA --file="/tmp/create_role.sql"
+        psql -tAc "SELECT 1 FROM pg_database WHERE datname = 'dependency-track'" | grep -q 1 || psql -tAc 'CREATE DATABASE "dependency-track" OWNER "dependency-track"'
+      '';
+    };
+
+    services.postgresql.enable = lib.mkIf cfg.database.createLocally (lib.mkDefault true);
+
+    systemd.services."dependency-track" =
+      let
+        databaseServices =
+          if cfg.database.createLocally then
+            [
+              "dependency-track-postgresql-init.service"
+              "postgresql.service"
+            ]
+          else
+            [ ];
+      in
+      {
+        description = "Dependency Track";
+        wantedBy = [ "multi-user.target" ];
+        requires = databaseServices;
+        after = databaseServices;
+        # provide settings via env vars to allow overriding default settings.
+        environment = {
+          HOME = "%S/dependency-track";
+        } // renderSettings cfg.settings;
+        serviceConfig = {
+          User = "dependency-track";
+          Group = "dependency-track";
+          DynamicUser = true;
+          StateDirectory = "dependency-track";
+          LoadCredential =
+            [ "db_password:${cfg.database.passwordFile}" ]
+            ++ lib.optional cfg.settings."alpine.ldap.enabled"
+              "ldap_bind_password:${cfg.ldap.bindPasswordFile}";
+        };
+        script = ''
+          set -eou pipefail
+          shopt -s inherit_errexit
+
+          export ALPINE_DATABASE_PASSWORD_FILE="$CREDENTIALS_DIRECTORY/db_password"
+          ${lib.optionalString cfg.settings."alpine.ldap.enabled" ''
+            export ALPINE_LDAP_BIND_PASSWORD="$(<"$CREDENTIALS_DIRECTORY/ldap_bind_password")"
+          ''}
+
+          exec ${lib.getExe pkgs.jre_headless} ${
+            lib.escapeShellArgs (
+              cfg.javaArgs
+              ++ [
+                "-DdependencyTrack.logging.level=${cfg.logLevel}"
+                "-jar"
+                "${cfg.package}/share/dependency-track/dependency-track.jar"
+                "-port"
+                "${toString cfg.port}"
+              ]
+            )
+          }
+        '';
+      };
+  };
+
+  meta = {
+    maintainers = lib.teams.cyberus.members;
+  };
+}
diff --git a/nixos/modules/services/web-apps/pretix.nix b/nixos/modules/services/web-apps/pretix.nix
index d298caab5b862..bcd59ce40ae72 100644
--- a/nixos/modules/services/web-apps/pretix.nix
+++ b/nixos/modules/services/web-apps/pretix.nix
@@ -249,7 +249,7 @@ in
             };
 
             host = mkOption {
-              type = with types; nullOr path;
+              type = with types; nullOr str;
               default = if cfg.settings.database.backend == "postgresql" then "/run/postgresql" else null;
               defaultText = literalExpression ''
                 if config.services.pretix.settings..database.backend == "postgresql" then "/run/postgresql"
diff --git a/nixos/modules/services/web-servers/darkhttpd.nix b/nixos/modules/services/web-servers/darkhttpd.nix
index f6b693139a1ef..ab647b11de5d1 100644
--- a/nixos/modules/services/web-servers/darkhttpd.nix
+++ b/nixos/modules/services/web-servers/darkhttpd.nix
@@ -1,11 +1,11 @@
 { config, lib, pkgs, ... }:
 
-with lib;
-
 let
+  inherit (lib) mkIf mkOption optional;
+  inherit (lib.types) path bool listOf str port;
   cfg = config.services.darkhttpd;
 
-  args = concatStringsSep " " ([
+  args = lib.concatStringsSep " " ([
     cfg.rootDir
     "--port ${toString cfg.port}"
     "--addr ${cfg.address}"
@@ -14,12 +14,12 @@ let
     ++ optional config.networking.enableIPv6 "--ipv6");
 
 in {
-  options.services.darkhttpd = with types; {
-    enable = mkEnableOption "DarkHTTPd web server";
+  options.services.darkhttpd = {
+    enable = lib.mkEnableOption "DarkHTTPd web server";
 
     port = mkOption {
       default = 80;
-      type = types.port;
+      type = port;
       description = ''
         Port to listen on.
         Pass 0 to let the system choose any free port for you.
diff --git a/nixos/modules/system/boot/systemd/sysusers.nix b/nixos/modules/system/boot/systemd/sysusers.nix
index 98f93f25c54de..d0af52e0ae9e4 100644
--- a/nixos/modules/system/boot/systemd/sysusers.nix
+++ b/nixos/modules/system/boot/systemd/sysusers.nix
@@ -68,14 +68,10 @@ in
         assertion = config.system.activationScripts.users == "";
         message = "system.activationScripts.users has to be empty to use systemd-sysusers";
       }
-      {
-        assertion = config.users.mutableUsers -> config.system.etc.overlay.enable;
-        message = "config.users.mutableUsers requires config.system.etc.overlay.enable.";
-      }
     ] ++ (lib.mapAttrsToList
-      (_username: opts: {
+      (username: opts: {
         assertion = !opts.isNormalUser;
-        message = "systemd-sysusers doesn't create normal users. You can currently only use it to create system users.";
+        message = "${username} is a normal user. systemd-sysusers doesn't create normal users, only system users.";
       })
       userCfg.users)
     ++ lib.mapAttrsToList
diff --git a/nixos/modules/system/etc/etc-activation.nix b/nixos/modules/system/etc/etc-activation.nix
index 9b43d76e87467..6c6352b0419d5 100644
--- a/nixos/modules/system/etc/etc-activation.nix
+++ b/nixos/modules/system/etc/etc-activation.nix
@@ -26,13 +26,6 @@
           assertion = lib.versionAtLeast config.boot.kernelPackages.kernel.version "6.6";
           message = "`system.etc.overlay.enable requires a newer kernel, at least version 6.6";
         }
-        {
-          assertion = config.systemd.sysusers.enable -> (config.users.mutableUsers == config.system.etc.overlay.mutable);
-          message = ''
-            When using systemd-sysusers and mounting `/etc` via an overlay, users
-            can only be mutable when `/etc` is mutable and vice versa.
-          '';
-        }
       ];
 
       boot.initrd.availableKernelModules = [ "loop" "erofs" "overlay" ];
diff --git a/nixos/release.nix b/nixos/release.nix
index eeca73ea4c550..8a8c45f8f8425 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -49,7 +49,7 @@ let
     system.nixos.revision = nixpkgs.rev or nixpkgs.shortRev;
 
     # At creation time we do not have state yet, so just default to latest.
-    system.stateVersion = config.system.nixos.version;
+    system.stateVersion = config.system.nixos.release;
   };
 
   makeModules = module: rest: [ configuration versionModule module rest ];
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 0e73302475751..a625cd92e236d 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -255,6 +255,7 @@ in {
   deepin = handleTest ./deepin.nix {};
   deluge = handleTest ./deluge.nix {};
   dendrite = handleTest ./matrix/dendrite.nix {};
+  dependency-track = handleTest ./dependency-track.nix {};
   devpi-server = handleTest ./devpi-server.nix {};
   dex-oidc = handleTest ./dex-oidc.nix {};
   dhparams = handleTest ./dhparams.nix {};
diff --git a/nixos/tests/dependency-track.nix b/nixos/tests/dependency-track.nix
new file mode 100644
index 0000000000000..ab0d78827286d
--- /dev/null
+++ b/nixos/tests/dependency-track.nix
@@ -0,0 +1,65 @@
+import ./make-test-python.nix (
+  { pkgs, ... }:
+  let
+    dependencyTrackPort = 8081;
+  in
+  {
+    name = "dependency-track";
+    meta = {
+      maintainers = pkgs.lib.teams.cyberus.members;
+    };
+
+    nodes = {
+      server =
+        { pkgs, ... }:
+        {
+          virtualisation = {
+            cores = 2;
+            diskSize = 4096;
+          };
+
+          environment.systemPackages = with pkgs; [ curl ];
+          systemd.services.dependency-track = {
+            # source: https://github.com/DependencyTrack/dependency-track/blob/37e0ba59e8057c18a87a7a76e247a8f75677a56c/dev/scripts/data-nist-generate-dummy.sh
+            preStart = ''
+              set -euo pipefail
+
+              NIST_DIR="$HOME/.dependency-track/nist"
+
+              rm -rf "$NIST_DIR"
+              mkdir -p "$NIST_DIR"
+
+              for feed in $(seq "2024" "2002"); do
+                touch "$NIST_DIR/nvdcve-1.1-$feed.json.gz"
+                echo "9999999999999" > "$NIST_DIR/nvdcve-1.1-$feed.json.gz.ts"
+              done
+            '';
+          };
+          services.dependency-track = {
+            enable = true;
+            port = dependencyTrackPort;
+            nginx.domain = "localhost";
+            database.passwordFile = "${pkgs.writeText "dbPassword" ''hunter2'THE'''H''''E''}";
+          };
+        };
+    };
+
+    testScript = ''
+      import json
+
+      start_all()
+
+      server.wait_for_unit("dependency-track.service")
+      server.wait_until_succeeds(
+        "journalctl -o cat -u dependency-track.service | grep 'Dependency-Track is ready'"
+      )
+      server.wait_for_open_port(${toString dependencyTrackPort})
+
+      with subtest("version api returns correct version"):
+        version = json.loads(
+          server.succeed("curl http://localhost/api/version")
+        )
+        assert version["version"] == "${pkgs.dependency-track.version}"
+    '';
+  }
+)
diff --git a/nixos/tests/k3s/multi-node.nix b/nixos/tests/k3s/multi-node.nix
index 5fe106453f308..bc06ad858d8cb 100644
--- a/nixos/tests/k3s/multi-node.nix
+++ b/nixos/tests/k3s/multi-node.nix
@@ -195,9 +195,7 @@ import ../make-test-python.nix (
       server.wait_until_succeeds("k3s kubectl get node agent")
 
       for m in machines:
-          # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
-          if not is_aarch64:
-              m.succeed("k3s check-config")
+          m.succeed("k3s check-config")
           m.succeed(
               "${pauseImage} | k3s ctr image import -"
           )
diff --git a/nixos/tests/k3s/single-node.nix b/nixos/tests/k3s/single-node.nix
index 145bce3242999..55a15324c88f5 100644
--- a/nixos/tests/k3s/single-node.nix
+++ b/nixos/tests/k3s/single-node.nix
@@ -76,44 +76,40 @@ import ../make-test-python.nix (
         };
       };
 
-    testScript =
-      ''
-        start_all()
+    testScript = ''
+      start_all()
 
-        machine.wait_for_unit("k3s")
-        machine.succeed("kubectl cluster-info")
-        machine.fail("sudo -u noprivs kubectl cluster-info")
-      '' # Fix-Me: Tests fail for 'aarch64-linux' as: "CONFIG_CGROUP_FREEZER: missing (fail)"
-      + lib.optionalString (!pkgs.stdenv.isAarch64) ''machine.succeed("k3s check-config")''
-      + ''
+      machine.wait_for_unit("k3s")
+      machine.succeed("kubectl cluster-info")
+      machine.fail("sudo -u noprivs kubectl cluster-info")
+      machine.succeed("k3s check-config")
+      machine.succeed(
+          "${pauseImage} | ctr image import -"
+      )
 
-        machine.succeed(
-            "${pauseImage} | ctr image import -"
-        )
+      # Also wait for our service account to show up; it takes a sec
+      machine.wait_until_succeeds("kubectl get serviceaccount default")
+      machine.succeed("kubectl apply -f ${testPodYaml}")
+      machine.succeed("kubectl wait --for 'condition=Ready' pod/test")
+      machine.succeed("kubectl delete -f ${testPodYaml}")
 
-        # Also wait for our service account to show up; it takes a sec
-        machine.wait_until_succeeds("kubectl get serviceaccount default")
-        machine.succeed("kubectl apply -f ${testPodYaml}")
-        machine.succeed("kubectl wait --for 'condition=Ready' pod/test")
-        machine.succeed("kubectl delete -f ${testPodYaml}")
+      # regression test for #176445
+      machine.fail("journalctl -o cat -u k3s.service | grep 'ipset utility not found'")
 
-        # regression test for #176445
-        machine.fail("journalctl -o cat -u k3s.service | grep 'ipset utility not found'")
+      with subtest("Run k3s-killall"):
+          # Call the killall script with a clean path to assert that
+          # all required commands are wrapped
+          output = machine.succeed("PATH= ${k3s}/bin/k3s-killall.sh 2>&1 | tee /dev/stderr")
+          assert "command not found" not in output, "killall script contains unknown command"
 
-        with subtest("Run k3s-killall"):
-            # Call the killall script with a clean path to assert that
-            # all required commands are wrapped
-            output = machine.succeed("PATH= ${k3s}/bin/k3s-killall.sh 2>&1 | tee /dev/stderr")
-            assert "command not found" not in output, "killall script contains unknown command"
+          # Check that killall cleaned up properly
+          machine.fail("systemctl is-active k3s.service")
+          machine.fail("systemctl list-units | grep containerd")
+          machine.fail("ip link show | awk -F': ' '{print $2}' | grep -e flannel -e cni0")
+          machine.fail("ip netns show | grep cni-")
 
-            # Check that killall cleaned up properly
-            machine.fail("systemctl is-active k3s.service")
-            machine.fail("systemctl list-units | grep containerd")
-            machine.fail("ip link show | awk -F': ' '{print $2}' | grep -e flannel -e cni0")
-            machine.fail("ip netns show | grep cni-")
-
-        machine.shutdown()
-      '';
+      machine.shutdown()
+    '';
 
     meta.maintainers = lib.teams.k3s.members;
   }
diff --git a/nixos/tests/kernel-generic.nix b/nixos/tests/kernel-generic.nix
index 3e2302810ef04..e5d3b36642e72 100644
--- a/nixos/tests/kernel-generic.nix
+++ b/nixos/tests/kernel-generic.nix
@@ -25,7 +25,6 @@ let
   }) args);
   kernels = pkgs.linuxKernel.vanillaPackages // {
     inherit (pkgs.linuxKernel.packages)
-      linux_4_19_hardened
       linux_5_4_hardened
       linux_5_10_hardened
       linux_5_15_hardened
diff --git a/nixos/tests/logrotate.nix b/nixos/tests/logrotate.nix
index f9c5e90609709..8d5887abec941 100644
--- a/nixos/tests/logrotate.nix
+++ b/nixos/tests/logrotate.nix
@@ -127,5 +127,7 @@ import ./make-test-python.nix ({ pkgs, ... }: rec {
           if info["ActiveState"] != "failed":
               raise Exception('logrotate-checkconf.service was not failed')
 
+      machine.log(machine.execute("systemd-analyze security logrotate.service | grep -v ✓")[1])
+
     '';
 })
diff --git a/nixos/tests/mysql/mariadb-galera.nix b/nixos/tests/mysql/mariadb-galera.nix
index 7455abbce5fb0..65705afbf82cd 100644
--- a/nixos/tests/mysql/mariadb-galera.nix
+++ b/nixos/tests/mysql/mariadb-galera.nix
@@ -1,8 +1,8 @@
 {
   system ? builtins.currentSystem,
-  config ? {},
+  config ? { },
   pkgs ? import ../../.. { inherit system config; },
-  lib ? pkgs.lib
+  lib ? pkgs.lib,
 }:
 
 let
@@ -11,240 +11,263 @@ let
   makeTest = import ./../make-test-python.nix;
 
   # Common user configuration
-  makeGaleraTest = {
-    mariadbPackage,
-    name ? mkTestName mariadbPackage,
-    galeraPackage ? pkgs.mariadb-galera
-  }: makeTest {
-    name = "${name}-galera-mariabackup";
-    meta = {
-      maintainers = with lib.maintainers; [ izorkin ] ++ lib.teams.helsinki-systems.members;
-    };
+  makeGaleraTest =
+    {
+      mariadbPackage,
+      name ? mkTestName mariadbPackage,
+      galeraPackage ? pkgs.mariadb-galera,
+    }:
+    makeTest {
+      name = "${name}-galera-mariabackup";
+      meta = {
+        maintainers = with lib.maintainers; [ izorkin ] ++ lib.teams.helsinki-systems.members;
+      };
 
-    # The test creates a Galera cluster with 3 nodes and is checking if mariabackup-based SST works. The cluster is tested by creating a DB and an empty table on one node,
-    # and checking the table's presence on the other node.
-    nodes = let
-      mkGaleraNode = {
-        id,
-        method
-      }: let
-        address = "192.168.1.${toString id}";
-        isFirstClusterNode = id == 1 || id == 4;
-      in {
-        users = {
-          users.testuser = {
-            isSystemUser = true;
-            group = "testusers";
-          };
-          groups.testusers = { };
-        };
+      # The test creates a Galera cluster with 3 nodes and is checking if mariabackup-based SST works. The cluster is tested by creating a DB and an empty table on one node,
+      # and checking the table's presence on the other node.
+      nodes =
+        let
+          mkGaleraNode =
+            {
+              id,
+              method,
+            }:
+            let
+              address = "192.168.1.${toString id}";
+              isFirstClusterNode = id == 1 || id == 4;
+            in
+            {
+              users = {
+                users.testuser = {
+                  isSystemUser = true;
+                  group = "testusers";
+                };
+                groups.testusers = { };
+              };
 
-        networking = {
-          interfaces.eth1 = {
-            ipv4.addresses = [
-              { inherit address; prefixLength = 24; }
-            ];
-          };
-          extraHosts = lib.concatMapStringsSep "\n" (i: "192.168.1.${toString i} galera_0${toString i}") (lib.range 1 6);
-          firewall.allowedTCPPorts = [ 3306 4444 4567 4568 ];
-          firewall.allowedUDPPorts = [ 4567 ];
-        };
-        systemd.services.mysql = with pkgs; {
-          path = with pkgs; [
-            bash
-            gawk
-            gnutar
-            gzip
-            inetutils
-            iproute2
-            netcat
-            procps
-            pv
-            rsync
-            socat
-            stunnel
-            which
-          ];
-        };
-        services.mysql = {
-          enable = true;
-          package = mariadbPackage;
-          ensureDatabases = lib.mkIf isFirstClusterNode [ "testdb" ];
-          ensureUsers = lib.mkIf isFirstClusterNode [{
-            name = "testuser";
-            ensurePermissions = {
-              "testdb.*" = "ALL PRIVILEGES";
-            };
-          }];
-          initialScript = lib.mkIf isFirstClusterNode (pkgs.writeText "mariadb-init.sql" ''
-            GRANT ALL PRIVILEGES ON *.* TO 'check_repl'@'localhost' IDENTIFIED BY 'check_pass' WITH GRANT OPTION;
-            FLUSH PRIVILEGES;
-          '');
-          settings = {
-            mysqld = {
-              bind_address = "0.0.0.0";
-            };
-            galera = {
-              wsrep_on = "ON";
-              wsrep_debug = "NONE";
-              wsrep_retry_autocommit = "3";
-              wsrep_provider = "${galeraPackage}/lib/galera/libgalera_smm.so";
-              wsrep_cluster_address = "gcomm://"
-                + lib.optionalString (id == 2 || id == 3) "galera_01,galera_02,galera_03"
-                + lib.optionalString (id == 5 || id == 6) "galera_04,galera_05,galera_06";
-              wsrep_cluster_name = "galera";
-              wsrep_node_address = address;
-              wsrep_node_name = "galera_0${toString id}";
-              wsrep_sst_method = method;
-              wsrep_sst_auth = "check_repl:check_pass";
-              binlog_format = "ROW";
-              enforce_storage_engine = "InnoDB";
-              innodb_autoinc_lock_mode = "2";
+              networking = {
+                interfaces.eth1 = {
+                  ipv4.addresses = [
+                    {
+                      inherit address;
+                      prefixLength = 24;
+                    }
+                  ];
+                  ipv6.addresses = lib.mkForce [ ];
+                };
+                extraHosts = lib.concatMapStringsSep "\n" (i: "192.168.1.${toString i} galera_0${toString i}") (
+                  lib.range 1 6
+                );
+                firewall.allowedTCPPorts = [
+                  3306
+                  4444
+                  4567
+                  4568
+                ];
+                firewall.allowedUDPPorts = [ 4567 ];
+              };
+              systemd.services.mysql = with pkgs; {
+                path = with pkgs; [
+                  bash
+                  gawk
+                  gnutar
+                  gzip
+                  inetutils
+                  iproute2
+                  netcat
+                  procps
+                  pv
+                  rsync
+                  socat
+                  stunnel
+                  which
+                ];
+              };
+              services.mysql = {
+                enable = true;
+                package = mariadbPackage;
+                ensureDatabases = lib.mkIf isFirstClusterNode [ "testdb" ];
+                ensureUsers = lib.mkIf isFirstClusterNode [
+                  {
+                    name = "testuser";
+                    ensurePermissions = {
+                      "testdb.*" = "ALL PRIVILEGES";
+                    };
+                  }
+                ];
+                initialScript = lib.mkIf isFirstClusterNode (
+                  pkgs.writeText "mariadb-init.sql" ''
+                    GRANT ALL PRIVILEGES ON *.* TO 'check_repl'@'localhost' IDENTIFIED BY 'check_pass' WITH GRANT OPTION;
+                    FLUSH PRIVILEGES;
+                  ''
+                );
+                settings = {
+                  mysqld = {
+                    bind_address = "0.0.0.0";
+                  };
+                  galera = {
+                    wsrep_on = "ON";
+                    wsrep_debug = "NONE";
+                    wsrep_retry_autocommit = "3";
+                    wsrep_provider = "${galeraPackage}/lib/galera/libgalera_smm.so";
+                    wsrep_cluster_address =
+                      "gcomm://"
+                      + lib.optionalString (id == 2 || id == 3) "galera_01,galera_02,galera_03"
+                      + lib.optionalString (id == 5 || id == 6) "galera_04,galera_05,galera_06";
+                    wsrep_cluster_name = "galera";
+                    wsrep_node_address = address;
+                    wsrep_node_name = "galera_0${toString id}";
+                    wsrep_sst_method = method;
+                    wsrep_sst_auth = "check_repl:check_pass";
+                    binlog_format = "ROW";
+                    enforce_storage_engine = "InnoDB";
+                    innodb_autoinc_lock_mode = "2";
+                  };
+                };
+              };
             };
+        in
+        {
+          galera_01 = mkGaleraNode {
+            id = 1;
+            method = "mariabackup";
           };
-        };
-      };
-    in {
-      galera_01 = mkGaleraNode {
-        id = 1;
-        method = "mariabackup";
-      };
 
-      galera_02 = mkGaleraNode {
-        id = 2;
-        method = "mariabackup";
-      };
+          galera_02 = mkGaleraNode {
+            id = 2;
+            method = "mariabackup";
+          };
 
-      galera_03 = mkGaleraNode {
-        id = 3;
-        method = "mariabackup";
-      };
+          galera_03 = mkGaleraNode {
+            id = 3;
+            method = "mariabackup";
+          };
 
-      galera_04 = mkGaleraNode {
-        id = 4;
-        method = "rsync";
-      };
+          galera_04 = mkGaleraNode {
+            id = 4;
+            method = "rsync";
+          };
 
-      galera_05 = mkGaleraNode {
-        id = 5;
-        method = "rsync";
-      };
+          galera_05 = mkGaleraNode {
+            id = 5;
+            method = "rsync";
+          };
 
-      galera_06 = mkGaleraNode {
-        id = 6;
-        method = "rsync";
-      };
+          galera_06 = mkGaleraNode {
+            id = 6;
+            method = "rsync";
+          };
 
-    };
+        };
 
-    testScript = ''
-      galera_01.start()
-      galera_01.wait_for_unit("mysql")
-      galera_01.wait_for_open_port(3306)
-      galera_01.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
-      )
-      galera_01.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (37);'"
-      )
-      galera_02.start()
-      galera_02.wait_for_unit("mysql")
-      galera_02.wait_for_open_port(3306)
-      galera_03.start()
-      galera_03.wait_for_unit("mysql")
-      galera_03.wait_for_open_port(3306)
-      galera_02.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
-      )
-      galera_02.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
-      )
-      galera_02.succeed("systemctl stop mysql")
-      galera_01.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (38);'"
-      )
-      galera_03.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
-      )
-      galera_01.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (39);'"
-      )
-      galera_02.succeed("systemctl start mysql")
-      galera_02.wait_for_open_port(3306)
-      galera_02.succeed(
-          "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
-      )
-      galera_03.succeed(
-          "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
-      )
-      galera_01.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 39"
-      )
-      galera_02.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 38"
-      )
-      galera_03.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
-      )
-      galera_01.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
-      galera_02.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
-      galera_03.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
-      galera_01.crash()
-      galera_02.crash()
-      galera_03.crash()
+      testScript = ''
+        galera_01.start()
+        galera_01.wait_for_unit("mysql")
+        galera_01.wait_for_open_port(3306)
+        galera_01.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        )
+        galera_01.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (37);'"
+        )
+        galera_02.start()
+        galera_02.wait_for_unit("mysql")
+        galera_02.wait_for_open_port(3306)
+        galera_03.start()
+        galera_03.wait_for_unit("mysql")
+        galera_03.wait_for_open_port(3306)
+        galera_02.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
+        )
+        galera_02.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        )
+        galera_02.succeed("systemctl stop mysql")
+        galera_01.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (38);'"
+        )
+        galera_03.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        )
+        galera_01.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (39);'"
+        )
+        galera_02.succeed("systemctl start mysql")
+        galera_02.wait_for_open_port(3306)
+        galera_02.succeed(
+            "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
+        )
+        galera_03.succeed(
+            "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
+        )
+        galera_01.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 39"
+        )
+        galera_02.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 38"
+        )
+        galera_03.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 37"
+        )
+        galera_01.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
+        galera_02.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
+        galera_03.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
+        galera_01.crash()
+        galera_02.crash()
+        galera_03.crash()
 
-      galera_04.start()
-      galera_04.wait_for_unit("mysql")
-      galera_04.wait_for_open_port(3306)
-      galera_04.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
-      )
-      galera_04.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (41);'"
-      )
-      galera_05.start()
-      galera_05.wait_for_unit("mysql")
-      galera_05.wait_for_open_port(3306)
-      galera_06.start()
-      galera_06.wait_for_unit("mysql")
-      galera_06.wait_for_open_port(3306)
-      galera_05.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
-      )
-      galera_05.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
-      )
-      galera_05.succeed("systemctl stop mysql")
-      galera_04.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (42);'"
-      )
-      galera_06.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
-      )
-      galera_04.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (43);'"
-      )
-      galera_05.succeed("systemctl start mysql")
-      galera_05.wait_for_open_port(3306)
-      galera_05.succeed(
-          "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
-      )
-      galera_06.succeed(
-          "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
-      )
-      galera_04.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 43"
-      )
-      galera_05.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 42"
-      )
-      galera_06.succeed(
-          "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
-      )
-      galera_04.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
-      galera_05.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
-      galera_06.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
-    '';
-  };
+        galera_04.start()
+        galera_04.wait_for_unit("mysql")
+        galera_04.wait_for_open_port(3306)
+        galera_04.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; create table db1 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        )
+        galera_04.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db1 values (41);'"
+        )
+        galera_05.start()
+        galera_05.wait_for_unit("mysql")
+        galera_05.wait_for_open_port(3306)
+        galera_06.start()
+        galera_06.wait_for_unit("mysql")
+        galera_06.wait_for_open_port(3306)
+        galera_05.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
+        )
+        galera_05.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; create table db2 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        )
+        galera_05.succeed("systemctl stop mysql")
+        galera_04.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db2 values (42);'"
+        )
+        galera_06.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; create table db3 (test_id INT, PRIMARY KEY (test_id)) ENGINE = InnoDB;'"
+        )
+        galera_04.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; insert into db3 values (43);'"
+        )
+        galera_05.succeed("systemctl start mysql")
+        galera_05.wait_for_open_port(3306)
+        galera_05.succeed(
+            "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_cluster_size.*3'"
+        )
+        galera_06.succeed(
+            "sudo -u testuser mysql -u testuser -e 'show status' -N | grep 'wsrep_local_state_comment.*Synced'"
+        )
+        galera_04.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db3;' -N | grep 43"
+        )
+        galera_05.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db2;' -N | grep 42"
+        )
+        galera_06.succeed(
+            "sudo -u testuser mysql -u testuser -e 'use testdb; select test_id from db1;' -N | grep 41"
+        )
+        galera_04.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db3;'")
+        galera_05.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db2;'")
+        galera_06.succeed("sudo -u testuser mysql -u testuser -e 'use testdb; drop table db1;'")
+      '';
+    };
 in
-  lib.mapAttrs (_: mariadbPackage: makeGaleraTest { inherit mariadbPackage; }) mariadbPackages
+lib.mapAttrs (_: mariadbPackage: makeGaleraTest { inherit mariadbPackage; }) mariadbPackages
diff --git a/nixos/tests/mysql/mysql-autobackup.nix b/nixos/tests/mysql/mysql-autobackup.nix
index b49466db0a9ce..80dbb47adcd29 100644
--- a/nixos/tests/mysql/mysql-autobackup.nix
+++ b/nixos/tests/mysql/mysql-autobackup.nix
@@ -1,8 +1,8 @@
 {
   system ? builtins.currentSystem,
-  config ? {},
+  config ? { },
   pkgs ? import ../../.. { inherit system config; },
-  lib ? pkgs.lib
+  lib ? pkgs.lib,
 }:
 
 let
@@ -10,44 +10,52 @@ let
 
   makeTest = import ./../make-test-python.nix;
 
-  makeAutobackupTest = {
-    package,
-    name ? mkTestName package,
-  }: makeTest {
-    name = "${name}-automysqlbackup";
-    meta.maintainers = [ lib.maintainers.aanderse ];
-
-    nodes.machine = {
-      services.mysql = {
-        inherit package;
-        enable = true;
-        initialDatabases = [ { name = "testdb"; schema = ./testdb.sql; } ];
+  makeAutobackupTest =
+    {
+      package,
+      name ? mkTestName package,
+    }:
+    makeTest {
+      name = "${name}-automysqlbackup";
+      meta.maintainers = [ lib.maintainers.aanderse ];
+
+      nodes.machine = {
+        services.mysql = {
+          inherit package;
+          enable = true;
+          initialDatabases = [
+            {
+              name = "testdb";
+              schema = ./testdb.sql;
+            }
+          ];
+        };
+
+        services.automysqlbackup.enable = true;
+        automysqlbackup.settings.mysql_dump_port = "";
       };
 
-      services.automysqlbackup.enable = true;
-    };
-
-    testScript = ''
-      start_all()
+      testScript = ''
+        start_all()
 
-      # Need to have mysql started so that it can be populated with data.
-      machine.wait_for_unit("mysql.service")
+        # Need to have mysql started so that it can be populated with data.
+        machine.wait_for_unit("mysql.service")
 
-      with subtest("Wait for testdb to be fully populated (5 rows)."):
-          machine.wait_until_succeeds(
-              "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
-          )
+        with subtest("Wait for testdb to be fully populated (5 rows)."):
+            machine.wait_until_succeeds(
+                "mysql -u root -D testdb -N -B -e 'select count(id) from tests' | grep -q 5"
+            )
 
-      with subtest("Do a backup and wait for it to start"):
-          machine.start_job("automysqlbackup.service")
-          machine.wait_for_job("automysqlbackup.service")
+        with subtest("Do a backup and wait for it to start"):
+            machine.start_job("automysqlbackup.service")
+            machine.wait_for_job("automysqlbackup.service")
 
-      with subtest("wait for backup file and check that data appears in backup"):
-          machine.wait_for_file("/var/backup/mysql/daily/testdb")
-          machine.succeed(
-              "${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
-          )
+        with subtest("wait for backup file and check that data appears in backup"):
+            machine.wait_for_file("/var/backup/mysql/daily/testdb")
+            machine.succeed(
+                "${pkgs.gzip}/bin/zcat /var/backup/mysql/daily/testdb/daily_testdb_*.sql.gz | grep hello"
+            )
       '';
-  };
+    };
 in
-  lib.mapAttrs (_: package: makeAutobackupTest { inherit package; }) mariadbPackages
+lib.mapAttrs (_: package: makeAutobackupTest { inherit package; }) mariadbPackages
diff --git a/nixos/tests/systemd-machinectl.nix b/nixos/tests/systemd-machinectl.nix
index 555a8bb43b30e..40ea4905ec67b 100644
--- a/nixos/tests/systemd-machinectl.nix
+++ b/nixos/tests/systemd-machinectl.nix
@@ -16,7 +16,7 @@ let
 
     imports = [ ../modules/profiles/minimal.nix ];
 
-    system.stateVersion = config.system.nixos.version;
+    system.stateVersion = config.system.nixos.release;
   };
 
   containerSystem = (import ../lib/eval-config.nix {
diff --git a/pkgs/applications/audio/carla/default.nix b/pkgs/applications/audio/carla/default.nix
index 51f8144ae5c25..68016e4a16bee 100644
--- a/pkgs/applications/audio/carla/default.nix
+++ b/pkgs/applications/audio/carla/default.nix
@@ -26,13 +26,13 @@ assert withQt -> wrapQtAppsHook != null;
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "carla";
-  version = "2.5.8";
+  version = "2.5.9";
 
   src = fetchFromGitHub {
     owner = "falkTX";
     repo = "carla";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-H15T/z/IRfgWdqToTzq2eJ7q3n9Kj44IZXsd4uaipuU=";
+    hash = "sha256-FM/6TtNhDml1V9C5VisjLcZ3CzXsuwCZrsoz4yP3kI8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/noson/default.nix b/pkgs/applications/audio/noson/default.nix
index 0184934ff2208..bf2c115758c48 100644
--- a/pkgs/applications/audio/noson/default.nix
+++ b/pkgs/applications/audio/noson/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "noson";
-  version = "5.6.7";
+  version = "5.6.8";
 
   src = fetchFromGitHub {
     owner = "janbar";
     repo = "noson-app";
     rev = finalAttrs.version;
-    hash = "sha256-lroQYO+Ab7uPQmsrUFK6uWdCoGQp1klyfLw6eAxdzjg=";
+    hash = "sha256-hCVGi+++6CcTRMXeRKH8xRncm/Gl83GgU3aAIPI/yGU=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
index 77365da2b5966..5981faab2d1c9 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages.nix
@@ -29,6 +29,8 @@ lib.packagesFromDirectoryRecursive {
 
   tree-sitter-langs = callPackage ./manual-packages/tree-sitter-langs { final = self; };
 
+  zstd = callPackage ./manual-packages/zstd { inherit (pkgs) zstd; };
+
   # From old emacsPackages (pre emacsPackagesNg)
   cedille = callPackage ./manual-packages/cedille { inherit (pkgs) cedille; };
 
diff --git a/pkgs/applications/editors/emacs/elisp-packages/manual-packages/zstd/default.nix b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/zstd/default.nix
new file mode 100644
index 0000000000000..4dfe2484dbfdd
--- /dev/null
+++ b/pkgs/applications/editors/emacs/elisp-packages/manual-packages/zstd/default.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  melpaBuild,
+  stdenv,
+  fetchFromGitHub,
+  zstd,
+}:
+
+let
+  libExt = stdenv.hostPlatform.extensions.sharedLibrary;
+in
+melpaBuild {
+  pname = "zstd";
+  version = "0-unstable-2020-06-03";
+
+  src = fetchFromGitHub {
+    owner = "syohex";
+    repo = "emacs-zstd";
+    rev = "072b264e2cbd5c05be06a1208ebccc2dab44be39";
+    hash = "sha256-p8bxefytTOSV6vIG8PAPBXfVKA2rfmWdRtVwjE42mAw=";
+  };
+
+  buildInputs = [ zstd ];
+
+  preBuild = ''
+    $CC -std=gnu99 -shared -o zstd-core${libExt} zstd-core.c -lzstd
+  '';
+
+  files = ''(:defaults "zstd-core${libExt}")'';
+
+  meta = {
+    homepage = "https://github.com/syohex/emacs-zstd";
+    description = "Zstd binding for Emacs Lisp";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ nagy ];
+  };
+}
diff --git a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
index 0ea8a79431530..d61d83bb5aaa2 100644
--- a/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
+++ b/pkgs/applications/editors/emacs/elisp-packages/melpa-packages.nix
@@ -364,6 +364,13 @@ let
 
         forge = buildWithGit super.forge;
 
+        gnuplot = super.gnuplot.overrideAttrs (attrs: {
+           postPatch = attrs.postPatch or "" + ''
+             substituteInPlace gnuplot.el \
+               --replace-fail 'gnuplot-program "gnuplot"' 'gnuplot-program "${lib.getExe pkgs.gnuplot}"'
+           '';
+        });
+
         gnuplot-mode = super.gnuplot-mode.overrideAttrs (attrs: {
           postPatch = attrs.postPatch or "" + ''
             substituteInPlace gnuplot-mode.el \
diff --git a/pkgs/applications/editors/neovim/build-neovim-plugin.nix b/pkgs/applications/editors/neovim/build-neovim-plugin.nix
index 9d9778c1fe3b5..6f9bda5b108bd 100644
--- a/pkgs/applications/editors/neovim/build-neovim-plugin.nix
+++ b/pkgs/applications/editors/neovim/build-neovim-plugin.nix
@@ -11,13 +11,15 @@ in
   # function to create vim plugin from lua packages that are already packaged in
   # luaPackages
   {
-    # the lua attribute name that matches this vim plugin. Both should be equal
-    # in the majority of cases but we make it possible to have different attribute names
-    luaAttr ? (normalizeName attrs.pname)
+    # the lua derivation to convert into a neovim plugin
+     luaAttr ? (lua.pkgs.${normalizeName attrs.pname})
     , ...
   }@attrs:
     let
-      originalLuaDrv = lua.pkgs.${luaAttr};
+      originalLuaDrv = if (lib.typeOf luaAttr == "string") then
+        lib.warn "luaAttr as string is deprecated since September 2024. Pass a lua derivation directly ( e.g., `buildNeovimPlugin { luaAttr = lua.pkgs.plenary-nvim; }`)" lua.pkgs.${normalizeName luaAttr}
+        else luaAttr;
+
 
       luaDrv = originalLuaDrv.overrideAttrs (oa: {
         version = attrs.version or oa.version;
diff --git a/pkgs/applications/editors/neovim/tests/default.nix b/pkgs/applications/editors/neovim/tests/default.nix
index 9152d93c15444..14d682e14e431 100644
--- a/pkgs/applications/editors/neovim/tests/default.nix
+++ b/pkgs/applications/editors/neovim/tests/default.nix
@@ -1,4 +1,13 @@
-# run tests by building `neovim.tests`
+/*
+run tests with `nix-build -A neovim.tests`
+
+The attrset exposes both the wrapped neovim and the associated test for easier debugging
+
+Here are some common neovim flags used in the tests:
+-e runs neovim in `:h Ex-mode` which returns an exit code != 0 when hitting an error
+-i NONE  gets rid of shada warnings
+
+*/
 { vimUtils, writeText, neovim, vimPlugins
 , neovimUtils, wrapNeovimUnstable
 , neovim-unwrapped
@@ -43,7 +52,7 @@ let
     '';
   };
 
-  nvim-with-luasnip = wrapNeovim2 "-with-lua-packages" (makeNeovimConfig {
+  nvim-with-luasnip = wrapNeovim2 "-with-luasnip" (makeNeovimConfig {
     plugins = [ {
         plugin = vimPlugins.luasnip;
 
@@ -65,15 +74,6 @@ let
     sha256 = "1ykcvyx82nhdq167kbnpgwkgjib8ii7c92y3427v986n2s5lsskc";
   };
 
-  # this plugin checks that it's ftplugin/vim.tex is loaded before $VIMRUNTIME/ftplugin/vim.tex
-  # $VIMRUNTIME/ftplugin/vim.tex sources $VIMRUNTIME/ftplugin/initex.vim which sets b:did_ftplugin
-  # we save b:did_ftplugin's value in a `plugin_was_loaded_too_late` file
-  texFtplugin = (pkgs.runCommandLocal "tex-ftplugin" {} ''
-    mkdir -p $out/ftplugin
-    echo 'call system("echo ". exists("b:did_ftplugin") . " > plugin_was_loaded_too_late")' >> $out/ftplugin/tex.vim
-    echo ':q!' >> $out/ftplugin/tex.vim
-  '') // { pname = "test-ftplugin"; };
-
   # neovim-drv must be a wrapped neovim
   runTest = neovim-drv: buildCommand:
     runCommandLocal "test-${neovim-drv.name}" ({
@@ -81,18 +81,21 @@ let
       meta.platforms = neovim-drv.meta.platforms;
     }) (''
       source ${nmt}/bash-lib/assertions.sh
-      vimrc="${writeText "init.vim" neovim-drv.initRc}"
-      luarc="${writeText "init.lua" neovim-drv.luaRcContent}"
+      vimrc="${writeText "test-${neovim-drv.name}-init.vim" neovim-drv.initRc}"
+      luarc="${writeText "test-${neovim-drv.name}-init.lua" neovim-drv.luaRcContent}"
       luarcGeneric="$out/patched.lua"
       vimrcGeneric="$out/patched.vim"
       mkdir $out
+      export HOME=$TMPDIR
       ${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$vimrc" > "$vimrcGeneric"
       ${pkgs.perl}/bin/perl -pe "s|\Q$NIX_STORE\E/[a-z0-9]{32}-|$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-|g" < "$luarc" > "$luarcGeneric"
     '' + buildCommand);
 
 in
-  pkgs.recurseIntoAttrs (
-rec {
+  pkgs.recurseIntoAttrs (rec {
+
+  inherit nmt;
+
   vim_empty_config = vimUtils.vimrcFile { beforePlugins = ""; customRC = ""; };
 
   ### neovim tests
@@ -138,11 +141,21 @@ rec {
   };
 
   run_nvim_with_plug = runTest nvim_with_plug ''
-    export HOME=$TMPDIR
-    ${nvim_with_plug}/bin/nvim -i NONE -c 'color base16-tomorrow-night'  +quit! -e
+    ${nvim_with_plug}/bin/nvim -V3log.txt -i NONE -c 'color base16-tomorrow-night'  +quit! -e
   '';
 
-  nvim_with_ftplugin = neovim.override {
+  nvim_with_ftplugin = let
+    # this plugin checks that it's ftplugin/vim.tex is loaded before $VIMRUNTIME/ftplugin/vim.tex
+    # $VIMRUNTIME/ftplugin/vim.tex sources $VIMRUNTIME/ftplugin/initex.vim which sets b:did_ftplugin
+    # we save b:did_ftplugin's value in a `plugin_was_loaded_too_late` file
+    texFtplugin = (pkgs.runCommandLocal "tex-ftplugin" {} ''
+      mkdir -p $out/ftplugin
+      echo 'call system("echo ". exists("b:did_ftplugin") . " > plugin_was_loaded_too_late")' >> $out/ftplugin/tex.vim
+      echo ':q!' >> $out/ftplugin/tex.vim
+    '') // { pname = "test-ftplugin"; };
+    in
+
+    neovim.override {
     extraName = "-with-ftplugin";
     configure.packages.plugins = {
       start = [
@@ -154,13 +167,14 @@ rec {
   # regression test that ftplugin files from plugins are loaded before the ftplugin
   # files from $VIMRUNTIME
   run_nvim_with_ftplugin = runTest nvim_with_ftplugin ''
-    export HOME=$TMPDIR
     echo '\documentclass{article}' > main.tex
 
-    ${nvim_with_ftplugin}/bin/nvim main.tex -c "set ft?" -c quit
+    ${nvim_with_ftplugin}/bin/nvim -i NONE -V3log.txt main.tex -c "set ft?" -c quit
     ls -l $TMPDIR
-    # if the file exists, then our plugin has been loaded instead of neovim's
-    [ ! -f plugin_was_loaded_too_late ]
+    # check the saved value b:did_ftplugin then our plugin has been loaded instead of neovim's
+    result="$(cat plugin_was_loaded_too_late)"
+    echo $result
+    [ "$result" = 0 ]
   '';
 
 
@@ -191,8 +205,8 @@ rec {
       ];
     };
   };
+
   checkHelpLuaPackages = runTest nvim_with_gitsigns_plugin ''
-    export HOME=$TMPDIR
     ${nvim_with_gitsigns_plugin}/bin/nvim -i NONE -c 'help gitsigns' +quitall! -e
   '';
 
@@ -220,8 +234,8 @@ rec {
 
   checkAliases = runTest nvim_with_aliases ''
       folder=${nvim_with_aliases}/bin
-      assertFileExists "$folder/vi"
-      assertFileExists "$folder/vim"
+      assertFileIsExecutable "$folder/vi"
+      assertFileIsExecutable "$folder/vim"
   '';
 
   # having no RC generated should autodisable init.vim wrapping
@@ -247,8 +261,7 @@ rec {
   });
 
   nvim_with_lua_packages = runTest nvimWithLuaPackages ''
-    export HOME=$TMPDIR
-    ${nvimWithLuaPackages}/bin/nvim -i NONE --noplugin -es
+    ${nvimWithLuaPackages}/bin/nvim -V3log.txt -i NONE --noplugin +quitall! -e
   '';
 
   # nixpkgs should install optional packages in the opt folder
@@ -286,7 +299,6 @@ rec {
   };
 
   run_nvim_with_opt_plugin = runTest nvim_with_opt_plugin ''
-    export HOME=$TMPDIR
     ${nvim_with_opt_plugin}/bin/nvim -i NONE +quit! -e
   '';
 
@@ -296,9 +308,8 @@ rec {
   # for instance luasnip has a dependency on jsregexp
   can_require_transitive_deps =
     runTest nvim-with-luasnip ''
-    export HOME=$TMPDIR
     cat ${nvim-with-luasnip}/bin/nvim
-    ${nvim-with-luasnip}/bin/nvim -i NONE --cmd "lua require'jsregexp'" -e
+    ${nvim-with-luasnip}/bin/nvim -i NONE --cmd "lua require'jsregexp'" -e +quitall!
   '';
 
 })
diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix
index cf19ea5a8cca1..ce8939dfc34d5 100644
--- a/pkgs/applications/editors/texmacs/default.nix
+++ b/pkgs/applications/editors/texmacs/default.nix
@@ -21,7 +21,7 @@
 
 let
   pname = "texmacs";
-  version = "2.1.2";
+  version = "2.1.4";
   common = callPackage ./common.nix {
     inherit extraFonts chineseFonts japaneseFonts koreanFonts;
     tex = texliveSmall;
@@ -32,7 +32,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz";
-    hash = "sha256-Ds9gxOwMYSttEWrawgxLHGxHyMBvt8WmyPIwBP2g/CM=";
+    hash = "sha256-h6aSLuDdrAtVzOnNVPqMEWX9WLDHtkCjPy9JXWnBgYY=";
   };
 
   postPatch = common.postPatch + ''
diff --git a/pkgs/applications/editors/vim/plugins/default.nix b/pkgs/applications/editors/vim/plugins/default.nix
index e557cd7effe3a..fd821bbec9701 100644
--- a/pkgs/applications/editors/vim/plugins/default.nix
+++ b/pkgs/applications/editors/vim/plugins/default.nix
@@ -1,7 +1,7 @@
 # TODO check that no license information gets lost
 { callPackage, config, lib, vimUtils, vim, darwin, llvmPackages
+, neovim-unwrapped
 , neovimUtils
-, luaPackages
 }:
 
 let
@@ -27,7 +27,7 @@ let
   overrides = callPackage ./overrides.nix {
     inherit (darwin.apple_sdk.frameworks) Cocoa CoreFoundation CoreServices;
     inherit buildVimPlugin;
-    inherit llvmPackages luaPackages;
+    inherit llvmPackages;
   };
 
   aliases = if config.allowAliases then (import ./aliases.nix lib) else final: prev: {};
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index 2bfda55a474df..d8c6728c619e3 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -36,6 +36,7 @@
 , languagetool
 , llvmPackages
 , meson
+, neovim-unwrapped
 , nim1
 , nodePackages
 , openscad
@@ -129,10 +130,12 @@
 , # hurl dependencies
   hurl
 , # must be lua51Packages
-  luaPackages
-, luajitPackages
+  luajitPackages
 ,
 }: self: super:
+let
+  luaPackages = neovim-unwrapped.lua.pkgs;
+in
 {
   alpha-nvim = super.alpha-nvim.overrideAttrs {
     dependencies = [
@@ -452,12 +455,12 @@
 
   codesnap-nvim =
     let
-      version = "1.6.0";
+      version = "1.6.1";
       src = fetchFromGitHub {
         owner = "mistricky";
         repo = "codesnap.nvim";
         rev = "refs/tags/v${version}";
-        hash = "sha256-3z0poNmS6LOS7/qGTBhvz1Q9WpYC7Wu4rNvHsUXB5ZY=";
+        hash = "sha256-OmSgrTYDtNb2plMyzjVvxGrfXB/lGKDpUQhpRqKfAMA=";
       };
       codesnap-lib = rustPlatform.buildRustPackage {
         pname = "codesnap-lib";
@@ -465,7 +468,7 @@
 
         sourceRoot = "${src.name}/generator";
 
-        cargoHash = "sha256-u0NvChN50LIxUhmsT4mvWs5xB/TwJkMabggFePA/b1E=";
+        cargoHash = "sha256-6n37n8oHIHrz3S1+40nuD0Ud3l0iNgXig1ZwrgsnYTI=";
 
         nativeBuildInputs = [
           pkg-config
@@ -915,7 +918,7 @@
     dependencies = with self; [ nvim-treesitter ];
   };
 
-  haskell-tools-nvim = neovimUtils.buildNeovimPlugin { luaAttr = "haskell-tools-nvim"; };
+  haskell-tools-nvim = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.haskell-tools-nvim; };
 
   hex-nvim = super.hex-nvim.overrideAttrs {
     postPatch = ''
@@ -1058,7 +1061,7 @@
   };
 
   lsp-progress-nvim = neovimUtils.buildNeovimPlugin {
-    luaAttr = "lsp-progress-nvim";
+    luaAttr = luaPackages.lsp-progress-nvim;
     nvimRequireCheck = "lsp-progress";
   };
 
@@ -1066,11 +1069,11 @@
     dependencies = with self; [ luaPackages.jsregexp ];
   };
 
-  lz-n = neovimUtils.buildNeovimPlugin { luaAttr = "lz-n"; };
+  lz-n = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.lz-n; };
 
-  lze = neovimUtils.buildNeovimPlugin { luaAttr = "lze"; };
+  lze = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.lze; };
 
-  lzn-auto-require = neovimUtils.buildNeovimPlugin { luaAttr = "lzn-auto-require"; };
+  lzn-auto-require = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.lzn-auto-require; };
 
   magma-nvim-goose = buildVimPlugin {
     pname = "magma-nvim-goose";
@@ -1146,7 +1149,7 @@
   };
 
   middleclass = neovimUtils.buildNeovimPlugin {
-    luaAttr = "middleclass";
+    luaAttr = luaPackages.middleclass;
     nvimRequireCheck = "middleclass";
   };
 
@@ -1506,17 +1509,17 @@
     ];
   };
 
-  rocks-nvim = neovimUtils.buildNeovimPlugin { luaAttr = "rocks-nvim"; };
+  rocks-nvim = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.rocks-nvim; };
 
-  rocks-config-nvim = neovimUtils.buildNeovimPlugin { luaAttr = "rocks-config-nvim"; };
+  rocks-config-nvim = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.rocks-config-nvim; };
 
   roslyn-nvim = super.roslyn-nvim.overrideAttrs {
     dependencies = with self; [ nvim-lspconfig ];
   };
 
-  rtp-nvim = neovimUtils.buildNeovimPlugin { luaAttr = "rtp-nvim"; };
+  rtp-nvim = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.rtp-nvim; };
 
-  rustaceanvim = neovimUtils.buildNeovimPlugin { luaAttr = "rustaceanvim"; };
+  rustaceanvim = neovimUtils.buildNeovimPlugin { luaAttr = luaPackages.rustaceanvim; };
 
   sg-nvim = super.sg-nvim.overrideAttrs (old:
     let
diff --git a/pkgs/applications/editors/vim/plugins/updater.nix b/pkgs/applications/editors/vim/plugins/updater.nix
index 00fb8b8dedc54..1a62f13a04086 100644
--- a/pkgs/applications/editors/vim/plugins/updater.nix
+++ b/pkgs/applications/editors/vim/plugins/updater.nix
@@ -33,12 +33,12 @@ buildPythonApplication {
 
     # wrap python scripts
     makeWrapperArgs+=( --prefix PATH : "${lib.makeBinPath [
-      nix nix-prefetch-git neovim-unwrapped nurl ]}" --prefix PYTHONPATH : "${./.}:${../../../../../maintainers/scripts}" )
+      nix nix-prefetch-git neovim-unwrapped nurl ]}" --prefix PYTHONPATH : "${./.}:${../../../../../maintainers/scripts/pluginupdate-py}" )
     wrapPythonPrograms
   '';
 
   shellHook = ''
-    export PYTHONPATH=pkgs/applications/editors/vim/plugins:maintainers/scripts:$PYTHONPATH
+    export PYTHONPATH=pkgs/applications/editors/vim/plugins:maintainers/scripts/pluginupdate-py:$PYTHONPATH
     '';
 
   meta.mainProgram = "vim-plugins-updater";
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index 3d58a59a61c42..cade496d6b536 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -313,8 +313,8 @@ let
         mktplcRef = {
           name = "vscode-apollo";
           publisher = "apollographql";
-          version = "2.2.0";
-          hash = "sha256-9CKm9SLotPlwkAELb7Us/blK959HVt6eXiDp0fgVLmA=";
+          version = "2.3.2";
+          hash = "sha256-5PAmyy4RX2hLgviWxgnxGZjgeFWZaJKNiYGNdCTL0IE=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/apollographql.vscode-apollo/changelog";
@@ -1234,8 +1234,8 @@ let
         mktplcRef = {
           name = "vscode-markdownlint";
           publisher = "DavidAnson";
-          version = "0.55.0";
-          hash = "sha256-slfHfRPcuRu+649n6kAr2bv9H6J+DvYVN/ysq1QpPQM=";
+          version = "0.56.0";
+          hash = "sha256-ITSpPe032XcGIlfRQtJSR0iNTizs85qwfRaTtKwNn50=";
         };
         meta = {
           changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
@@ -4073,8 +4073,8 @@ let
         mktplcRef = {
           name = "wikitext";
           publisher = "RoweWilsonFrederiskHolme";
-          version = "3.8.1";
-          hash = "sha256-piwS3SPjx10nsjN5axC+EN0MEDf0r2lVFllqQzciOfc=";
+          version = "3.8.2";
+          hash = "sha256-rWifSoJSN37xPIaCQgPyXRz9tCX2Akahl/3CuqzXq94=";
         };
         meta = {
           description = "Extension that helps users view and write MediaWiki's Wikitext files";
@@ -4867,8 +4867,8 @@ let
         mktplcRef = {
           name = "uiua-vscode";
           publisher = "uiua-lang";
-          version = "0.0.53";
-          hash = "sha256-5CHAX1jGyJ2VVEBTh5G1JM8+L9paryBa2zJoTkZ+G7Q=";
+          version = "0.0.54";
+          hash = "sha256-oY8z3q4LOLhiTttm9Rtcy/CnhaSHkjyCBjwqYnuNBQA=";
         };
         meta = {
           description = "VSCode language extension for Uiua";
diff --git a/pkgs/applications/emulators/vbam/default.nix b/pkgs/applications/emulators/vbam/default.nix
index 67a2d62f7567f..b1916a86867a6 100644
--- a/pkgs/applications/emulators/vbam/default.nix
+++ b/pkgs/applications/emulators/vbam/default.nix
@@ -19,12 +19,12 @@
 
 stdenv.mkDerivation rec {
   pname = "visualboyadvance-m";
-  version = "2.1.10";
+  version = "2.1.11";
   src = fetchFromGitHub {
     owner = "visualboyadvance-m";
     repo = "visualboyadvance-m";
     rev = "v${version}";
-    sha256 = "sha256-ca+BKedHuOwHOCXgjLkkpR6Pd+59X2R66dbPWEg2O5A=";
+    sha256 = "sha256-OtJ632H449kPRY1i4Ydlcc1tgG00Mv622KrCyJ80OF4=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapGAppsHook3 ];
diff --git a/pkgs/applications/emulators/wine/sources.nix b/pkgs/applications/emulators/wine/sources.nix
index e41e8a61a1965..cf517bfc0f1a6 100644
--- a/pkgs/applications/emulators/wine/sources.nix
+++ b/pkgs/applications/emulators/wine/sources.nix
@@ -69,9 +69,9 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the hash for staging as well.
-    version = "9.17";
+    version = "9.18";
     url = "https://dl.winehq.org/wine/source/9.x/wine-${version}.tar.xz";
-    hash = "sha256-Ptt+tvMbtcP3N43VYj2p2V99TW18g3iv2JyOOjCqCAw=";
+    hash = "sha256-ZSb1IRwIVFO8tkKUbrLOjR1CqKSmgWi/Kg1z8yYS3Rw=";
     inherit (stable) patches;
 
     ## see http://wiki.winehq.org/Gecko
@@ -117,7 +117,7 @@ in rec {
   staging = fetchFromGitLab rec {
     # https://gitlab.winehq.org/wine/wine-staging
     inherit (unstable) version;
-    hash = "sha256-ez7P9R5Q7t+FpaU5bVer4n2bt+evgXLJb83gP+zxIAw=";
+    hash = "sha256-m3tuwb6OFcgZ/NATixIH1j3YgrzsREJNpnVbevN/9FY=";
     domain = "gitlab.winehq.org";
     owner = "wine";
     repo = "wine-staging";
diff --git a/pkgs/applications/graphics/geeqie/default.nix b/pkgs/applications/graphics/geeqie/default.nix
index 3c44ae0bddf1e..2d07fbb8633d7 100644
--- a/pkgs/applications/graphics/geeqie/default.nix
+++ b/pkgs/applications/graphics/geeqie/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "geeqie";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchFromGitHub {
     owner = "BestImageViewer";
     repo = "geeqie";
     rev = "v${version}";
-    hash = "sha256-MVBKaiKcKknU0rChUYJ+N4oX4tVm145s+NqGQuDHY2g=";
+    hash = "sha256-k2FXj2ZKZzB5XpCcWzEv7Q1ozATfU3221XKcOFdWOGU=";
   };
 
   patches = [
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index 667a1d505751a..f5c9266b571df 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -155,7 +155,7 @@ in
     };
   };
 
-  farbfeld = pluginDerivation rec {
+  farbfeld = pluginDerivation {
     pname = "farbfeld";
     version = "unstable-2019-08-12";
 
@@ -309,7 +309,7 @@ in
     variant = "gimp";
   };
 
-  gimplensfun = pluginDerivation rec {
+  gimplensfun = pluginDerivation {
     version = "unstable-2018-10-21";
     pname = "gimplensfun";
 
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index 60d5e22a4c897..d4def73be8830 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -83,44 +83,10 @@ python3Packages.buildPythonPackage rec {
   ];
 
   nativeCheckInputs = with python3Packages; [
-    nose
     mock
     httmock
   ];
 
-  # most tests are failing, presumably because we are not using test.py
-  checkPhase = ''
-    runHook preCheck
-
-    nosetests $src/hydrus/test  \
-      -e TestClientAPI \
-      -e TestClientConstants \
-      -e TestClientDaemons \
-      -e TestClientData \
-      -e TestClientDB \
-      -e TestClientDBDuplicates \
-      -e TestClientDBTags \
-      -e TestClientImageHandling \
-      -e TestClientImportOptions \
-      -e TestClientListBoxes \
-      -e TestClientMigration \
-      -e TestClientNetworking \
-      -e TestClientTags \
-      -e TestClientThreading \
-      -e TestDialogs \
-      -e TestFunctions \
-      -e TestHydrusNetwork \
-      -e TestHydrusNATPunch \
-      -e TestHydrusSerialisable \
-      -e TestHydrusServer \
-      -e TestHydrusSessions \
-      -e TestServer \
-      -e TestClientMetadataMigration \
-      -e TestClientFileStorage \
-
-    runHook postCheck
-  '';
-
   outputs = [ "out" "doc" ];
 
   installPhase = ''
@@ -140,6 +106,7 @@ python3Packages.buildPythonPackage rec {
     mkdir -p $out/bin
     install -m0755 hydrus_server.py $out/bin/hydrus-server
     install -m0755 hydrus_client.py $out/bin/hydrus-client
+    install -m0755 hydrus_test.py $out/bin/hydrus-test
 
     # desktop item
     mkdir -p "$out/share/icons/hicolor/scalable/apps"
@@ -154,6 +121,16 @@ python3Packages.buildPythonPackage rec {
     runHook postInstall
   '';
 
+  checkPhase = ''
+    runHook preCheck
+
+    export QT_QPA_PLATFORM=offscreen
+    export HOME=$(mktemp -d)
+    $out/bin/hydrus-test
+
+    runHook postCheck
+  '';
+
   dontWrapQtApps = true;
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index 62936d950521b..add7ea7a789cf 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -9,7 +9,6 @@
 , qtpositioning ? null # qt6 only
 , qtserialport
 , qtsvg
-, qt5compat ? null # qt6 only
 , wrapQtAppsHook
 }:
 
@@ -18,13 +17,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "gpxsee";
-  version = "13.24";
+  version = "13.26";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = finalAttrs.version;
-    hash = "sha256-qdfNW29SvY0dQy4rS4IDVuYL3h6BByluCecsNSgHbn8=";
+    hash = "sha256-EIeUcSHJXpd1/90fAPrP9F/DVyZhkcZk8MJd9VO1D70=";
   };
 
   buildInputs = [
@@ -33,7 +32,6 @@ stdenv.mkDerivation (finalAttrs: {
     qtbase
     qtpositioning
     qtsvg
-    qt5compat
   ] else [
     qtlocation
   ]);
diff --git a/pkgs/applications/misc/klayout/default.nix b/pkgs/applications/misc/klayout/default.nix
index 0b1bc647917a7..afff0cd683684 100644
--- a/pkgs/applications/misc/klayout/default.nix
+++ b/pkgs/applications/misc/klayout/default.nix
@@ -1,17 +1,17 @@
 { lib, mkDerivation, fetchFromGitHub
 , python3, ruby, qtbase, qtmultimedia, qttools, qtxmlpatterns
-, which, perl
+, which, perl, libgit2
 }:
 
 mkDerivation rec {
   pname = "klayout";
-  version = "0.28.12";
+  version = "0.29.6";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    hash = "sha256-QvEoXKJ9sH5WIarYPsYEWwoFwA/pZa2etegA+AD8rPo=";
+    hash = "sha256-gbbes8CPh+Z9wCeQaAaObZjQvBTMe06z8oR12i6e12M=";
   };
 
   postPatch = ''
@@ -31,6 +31,7 @@ mkDerivation rec {
     qtmultimedia
     qttools
     qtxmlpatterns
+    libgit2
   ];
 
   buildPhase = ''
diff --git a/pkgs/applications/misc/lunatask/default.nix b/pkgs/applications/misc/lunatask/default.nix
index 8850ec597fee0..7471d7ce5e97d 100644
--- a/pkgs/applications/misc/lunatask/default.nix
+++ b/pkgs/applications/misc/lunatask/default.nix
@@ -1,12 +1,12 @@
 { lib, appimageTools, fetchurl }:
 
 let
-  version = "2.0.4";
+  version = "2.0.9";
   pname = "lunatask";
 
   src = fetchurl {
     url = "https://lunatask.app/download/Lunatask-${version}.AppImage";
-    sha256 = "sha256-U+yelFSulAhgsn5xt45mxC7qGpQwmb3m3lt9nEW6MHU=";
+    sha256 = "sha256-tV3giMBF3DN8Aop1B1D7pGp3HYPMQlcZ52JrOhxFrEE=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/misc/onboard/default.nix b/pkgs/applications/misc/onboard/default.nix
index 2fcaa7f4c48aa..0ebe02881003b 100644
--- a/pkgs/applications/misc/onboard/default.nix
+++ b/pkgs/applications/misc/onboard/default.nix
@@ -121,10 +121,10 @@ python3.pkgs.buildPythonApplication rec {
     hunspellDicts.en-us
     hunspellDicts.es-es
     hunspellDicts.it-it
-
-    python3.pkgs.nose
   ];
 
+  # Tests have never been enabled, and upstream uses nose as a test
+  # runner (though not as a library).
   doCheck = false;
 
   preBuild = ''
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index b0b5fbbe441ab..1ef2e9d153825 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch
+{ stdenv, lib, fetchpatch
 , recompressTarball
 , buildPackages
 , buildPlatform
@@ -65,10 +65,6 @@ let
   python3WithPackages = python3.pythonOnBuildForHost.withPackages(ps: with ps; [
     ply jinja2 setuptools
   ]);
-  clangFormatPython3 = fetchurl {
-    url = "https://chromium.googlesource.com/chromium/tools/build/+/e77882e0dde52c2ccf33c5570929b75b4a2a2522/recipes/recipe_modules/chromium/resources/clang-format?format=TEXT";
-    hash = "sha256-1BRxXP+0QgejAWdFHJzGrLMhk/MsRDoVdK/GVoyFg0U=";
-  };
 
   # The additional attributes for creating derivations based on the chromium
   # source tree.
@@ -379,9 +375,6 @@ let
       # Allow to put extensions into the system-path.
       sed -i -e 's,/usr,/run/current-system/sw,' chrome/common/chrome_paths.cc
 
-      # We need the fix for https://bugs.chromium.org/p/chromium/issues/detail?id=1254408:
-      base64 --decode ${clangFormatPython3} > buildtools/linux64/clang-format
-
       # Add final newlines to scripts that do not end with one.
       # This is a temporary workaround until https://github.com/NixOS/nixpkgs/pull/255463 (or similar) has been merged,
       # as patchShebangs hard-crashes when it encounters files that contain only a shebang and do not end with a final
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
index 246327a443644..a484da72b6fbb 100644
--- a/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "arkade";
-  version = "0.11.24";
+  version = "0.11.26";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "arkade";
     rev = version;
-    hash = "sha256-9g3SGfJLzn+WIkBGcCwgOaJSuSUSFSU8d/9NZlN0h8E=";
+    hash = "sha256-p3rLQQwuJ/5AUzsQfGA9JSoifYaG4vAE2NaNfTf6/uk=";
   };
 
   CGO_ENABLED = 0;
diff --git a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
index bc9082351edd2..94828973bd1fe 100644
--- a/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
+++ b/pkgs/applications/networking/cluster/helm/plugins/helm-diff.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "helm-diff";
-  version = "3.9.10";
+  version = "3.9.11";
 
   src = fetchFromGitHub {
     owner = "databus23";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-umb8f0qCqFVN8K5T441Koyl2pq7VOskDxKCXlqB5UoA=";
+    hash = "sha256-DwZZi7A6/UsKiFJSgMdo/zqlsRFz9RkFy8+s8RTumXg=";
   };
 
-  vendorHash = "sha256-pWynrkL/d6TPojeyCJ6RjLNel4qA21UP+jzWnC8DnB8=";
+  vendorHash = "sha256-3TtUpwg8HLHp/fILH5/qBnMKFmBlALOGSSYoEg3s1h0=";
 
   ldflags = [ "-s" "-w" "-X github.com/databus23/helm-diff/v3/cmd.Version=${version}" ];
 
diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
index baa070a17608b..e7d879a83aac1 100644
--- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
+++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "kubelogin";
-  version = "1.29.0";
+  version = "1.30.0";
 
   src = fetchFromGitHub {
     owner = "int128";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fGCllV07YustUIX1XiSvsC42obDOgl2yV5ruQMT2R0c=";
+    sha256 = "sha256-DHg46t0gMypK6Nj428gpOMtPuA+XcW4IJU39CHTVGPw=";
   };
 
   subPackages = ["."];
 
-  vendorHash = "sha256-wtxSoRSpmRwuIOdKGmCRR+QLwOvONiiltg6KL6t2cf8=";
+  vendorHash = "sha256-gr+SsC7MiLj/MZ8kca5Hcfge+7Pm4y963TfwyKHEhBY=";
 
   # Rename the binary instead of symlinking to avoid conflict with the
   # Azure version of kubelogin
diff --git a/pkgs/applications/networking/cluster/nixops/default.nix b/pkgs/applications/networking/cluster/nixops/default.nix
index d9d31d94ac96b..88c426565fc4e 100644
--- a/pkgs/applications/networking/cluster/nixops/default.nix
+++ b/pkgs/applications/networking/cluster/nixops/default.nix
@@ -19,13 +19,13 @@ let
     };
 
     plugins = ps: _super: with ps; rec {
-      nixops-aws = callPackage ./plugins/nixops-aws.nix { };
       nixops-digitalocean = callPackage ./plugins/nixops-digitalocean.nix { };
       nixops-encrypted-links = callPackage ./plugins/nixops-encrypted-links.nix { };
       nixops-hercules-ci = callPackage ./plugins/nixops-hercules-ci.nix { };
       nixops-vbox = callPackage ./plugins/nixops-vbox.nix { };
       nixos-modules-contrib = callPackage ./plugins/nixos-modules-contrib.nix { };
 
+      nixops-aws = throw "nixops-aws was broken and was removed from nixpkgs";
       nixops-gce = throw "nixops-gce was broken and was removed from nixpkgs";
       nixops-libvirtd = throw "nixops-libvirtd was broken and was removed from nixpkgs";
       nixops-hetzner = throw "nixops-hetzner was broken and was removed from nixpkgs";
@@ -42,7 +42,7 @@ let
     selectedPlugins = [];
 
     # selector is a function mapping pythonPackages to a list of plugins
-    # e.g. nixops_unstable.withPlugins (ps: with ps; [ nixops-aws ])
+    # e.g. nixops_unstable.withPlugins (ps: with ps; [ nixops-digitalocean ])
     withPlugins = selector:
       this.extend (this: _old: {
         selectedPlugins = selector this.availablePlugins;
@@ -109,8 +109,6 @@ in
 
   # Not recommended; too fragile.
   nixops_unstable_full = minimal.withPlugins (ps: [
-    # currently broken
-    # ps.nixops-aws
     ps.nixops-digitalocean
     ps.nixops-encrypted-links
     ps.nixops-hercules-ci
diff --git a/pkgs/applications/networking/cluster/nixops/plugins/nixops-aws.nix b/pkgs/applications/networking/cluster/nixops/plugins/nixops-aws.nix
deleted file mode 100644
index 895794d3e0f66..0000000000000
--- a/pkgs/applications/networking/cluster/nixops/plugins/nixops-aws.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unstableGitUpdater
-, poetry-core
-, boto
-, boto3
-, nixops
-, nixos-modules-contrib
-, typing-extensions
-}:
-
-buildPythonPackage {
-  pname = "nixops-aws";
-  version = "1.0.0-unstable-2024-02-29";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "NixOS";
-    repo = "nixops-aws";
-    rev = "d173b2f14ec767d782ceab45fb22b32fe3b5a1f7";
-    hash = "sha256-ocTtc7POt1bugb9Bki2ew2Eh5uc933GftNw1twoOJsc=";
-  };
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-    --replace poetry.masonry.api poetry.core.masonry.api \
-    --replace "poetry>=" "poetry-core>="
-  '';
-
-  nativeBuildInputs = [
-    poetry-core
-  ];
-
-  buildInputs = [
-    nixops
-  ];
-
-  propagatedBuildInputs = [
-    boto
-    boto3
-    nixos-modules-contrib
-    typing-extensions
-  ];
-
-  pythonImportsCheck = [ "nixops_aws" ];
-
-  passthru.updateScript = unstableGitUpdater {
-    tagPrefix = "v";
-  };
-
-  meta = with lib; {
-    description = "AWS plugin for NixOps";
-    homepage = "https://github.com/NixOS/nixops-aws";
-    license = licenses.lgpl3Only;
-    broken = true; # fails with `nose-1.3.7 not supported for interpreter python3.12`
-    maintainers = nixops.meta.maintainers;
-  };
-}
diff --git a/pkgs/applications/networking/cluster/rke2/testing/versions.nix b/pkgs/applications/networking/cluster/rke2/testing/versions.nix
index 1801831584d19..5cf0039d5abd8 100644
--- a/pkgs/applications/networking/cluster/rke2/testing/versions.nix
+++ b/pkgs/applications/networking/cluster/rke2/testing/versions.nix
@@ -1,14 +1,14 @@
 {
-  rke2Version = "1.31.0-rc1+rke2r1";
-  rke2RepoSha256 = "0mfl01rv6xn2kg2739215j9hsyym16mgp92bqsz0hkpfm61dd96j";
-  rke2Commit = "3acd10e9389fa930860896ca6ed925a15dff61a3";
-  rke2VendorHash = "sha256-/ALzC2fYYI+DbF+2TSNBiMy57T8wfXGPpdyKtbqdrtE=";
-  k8sVersion = "v1.31.0";
-  k8sImageTag = "v1.31.0-rke2r1-build20240815";
+  rke2Version = "1.31.1-rc3+rke2r1";
+  rke2RepoSha256 = "1j09f95d99xk1jbsy08cl1rw5y1ljnrmq3nv1rixlc4hgqwz56pm";
+  rke2Commit = "909d20d6a28cd7656b7177190f06f69f57927613";
+  rke2VendorHash = "sha256-7nWbWi4oJTOWZ5iZr9ptECDJJakPg4qZ7hW+tU7LBsI=";
+  k8sVersion = "v1.31.1";
+  k8sImageTag = "v1.31.1-rke2r1-build20240912";
   etcdVersion = "v3.5.13-k3s1";
   pauseVersion = "3.6";
-  ccmVersion = "v1.29.3-build20240515";
-  dockerizedVersion = "v1.31.0-dev.";
-  golangVersion = "go1.22.5";
+  ccmVersion = "v1.31.0-build20240910";
+  dockerizedVersion = "v1.31.1-dev.";
+  golangVersion = "go1.22.6";
   eol = "2025-10-28";
 }
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
index 1277c57527870..40666c4eca308 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/signal-desktop.nix
@@ -2,7 +2,7 @@
 callPackage ./generic.nix { } rec {
   pname = "signal-desktop";
   dir = "Signal";
-  version = "7.24.1";
+  version = "7.25.0";
   url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-  hash = "sha256-wT8pbUcdDYVEVAOroHeORl4+rwzfWJvZNxC1pnNsnjQ=";
+  hash = "sha256-KcVCQkDSpI+eq2/wvPZxq6ILLQk3xe+wrKfbnJnTQTo=";
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 6b13616ee1a55..e3a370c352596 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -60,8 +60,8 @@ in rec {
   };
 
   thunderbird-128 = common {
-    version = "128.1.1esr";
-    sha512 = "91e17d63383b05a7565838c61eda3b642f1bb3b4c43ae78a8810dd6d9ba2e5f10939be17598dd5e87bdf28d6f70ff9e154e54218aaf161bd89a5a6d30b504427";
+    version = "128.2.3esr";
+    sha512 = "f852d1fe6b8d41aa2f0fbc0fceae93cccf1e5f88d9c0447f504de775283289b82b246b79a01e8eb26e9c87197fb33138fb18c75ecc3f5f1bcfefa3920a7c7512";
 
     updateScript = callPackage ./update.nix {
       attrPath = "thunderbirdPackages.thunderbird-128";
diff --git a/pkgs/applications/networking/protonvpn-gui/default.nix b/pkgs/applications/networking/protonvpn-gui/default.nix
index 9484a1c42dcf0..c60fe44d24572 100644
--- a/pkgs/applications/networking/protonvpn-gui/default.nix
+++ b/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -16,8 +16,6 @@
   proton-vpn-killswitch-network-manager,
   proton-vpn-logger,
   proton-vpn-network-manager,
-  proton-vpn-network-manager-openvpn,
-  proton-vpn-network-manager-wireguard,
   proton-vpn-session,
   pycairo,
   pygobject3,
@@ -67,8 +65,6 @@ buildPythonApplication rec {
     proton-vpn-killswitch-network-manager
     proton-vpn-logger
     proton-vpn-network-manager
-    proton-vpn-network-manager-openvpn
-    proton-vpn-network-manager-wireguard
     proton-vpn-session
     pycairo
     pygobject3
diff --git a/pkgs/applications/networking/xpipe/default.nix b/pkgs/applications/networking/xpipe/default.nix
index 15e46e291bd20..58d818bbe2c51 100644
--- a/pkgs/applications/networking/xpipe/default.nix
+++ b/pkgs/applications/networking/xpipe/default.nix
@@ -33,14 +33,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-25FFXrUE1NvIXlOFR9KZyjD3w8xuvPlpqz/KkUTt1TQ=";
+    x86_64-linux = "sha256-l7uu101UcY5AGMh6BzMvXvPMw1tlaX6grus9eL9Kxf8=";
   }.${system} or throwSystem;
 
   displayname = "XPipe";
 
 in stdenvNoCC.mkDerivation rec {
   pname = "xpipe";
-  version = "11.2";
+  version = "11.3";
 
   src = fetchzip {
     url = "https://github.com/xpipe-io/xpipe/releases/download/${version}/xpipe-portable-linux-${arch}.tar.gz";
diff --git a/pkgs/applications/science/electronics/nvc/default.nix b/pkgs/applications/science/electronics/nvc/default.nix
index f0d49ac11f028..0c557fbeca3e1 100644
--- a/pkgs/applications/science/electronics/nvc/default.nix
+++ b/pkgs/applications/science/electronics/nvc/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nvc";
-  version = "1.13.3";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "nickg";
     repo = "nvc";
     rev = "r${version}";
-    hash = "sha256-u+EmZ+h+TVBHEmrELgU4s1C+Z8Cfp3gN9BnQruwCsYU=";
+    hash = "sha256-xaJt3zMAv+Op7cQAaKJOyI28oEssMw/7zvEnfReS4aw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix
index fd20908c9329a..c45ee7190e77f 100644
--- a/pkgs/applications/science/logic/coq/default.nix
+++ b/pkgs/applications/science/logic/coq/default.nix
@@ -5,7 +5,7 @@
 # - The exact version can be specified through the `version` argument to
 #   the derivation; it defaults to the latest stable version.
 
-{ lib, stdenv, fetchzip, writeText, pkg-config, gnumake42
+{ lib, stdenv, fetchzip, fetchurl, writeText, pkg-config, gnumake42
 , customOCamlPackages ? null
 , ocamlPackages_4_05, ocamlPackages_4_09, ocamlPackages_4_10, ocamlPackages_4_12
 , ocamlPackages_4_14
@@ -62,7 +62,7 @@ let
   };
   releaseRev = v: "V${v}";
   fetched = import ../../../../build-support/coq/meta-fetch/default.nix
-    { inherit lib stdenv fetchzip; }
+    { inherit lib stdenv fetchzip fetchurl; }
     { inherit release releaseRev; location = { owner = "coq"; repo = "coq";}; }
     args.version;
   version = fetched.version;
diff --git a/pkgs/applications/science/math/caffe/default.nix b/pkgs/applications/science/math/caffe/default.nix
index 0f36c4783df78..2390e91377510 100644
--- a/pkgs/applications/science/math/caffe/default.nix
+++ b/pkgs/applications/science/math/caffe/default.nix
@@ -80,7 +80,7 @@ stdenv.mkDerivation rec {
     # requirements.txt
     let pp = python.pkgs; in ([
       pp.numpy pp.scipy pp.scikit-image pp.h5py
-      pp.matplotlib pp.ipython pp.networkx pp.nose
+      pp.matplotlib pp.ipython pp.networkx
       pp.pandas pp.python-dateutil pp.protobuf pp.gflags
       pp.pyyaml pp.pillow pp.six
     ] ++ lib.optional leveldbSupport pp.leveldb)
diff --git a/pkgs/applications/science/math/mathematica/default.nix b/pkgs/applications/science/math/mathematica/default.nix
index 9e2552478765d..9d0a308f44357 100644
--- a/pkgs/applications/science/math/mathematica/default.nix
+++ b/pkgs/applications/science/math/mathematica/default.nix
@@ -53,8 +53,8 @@ let versions = callPackage ./versions.nix { };
 
     matchesDoc = v:
       builtins.match (if webdoc
-                      then ".*[0-9]_LINUX.sh"
-                      else ".*[0-9]_BNDL_LINUX.sh") v.src.name != null;
+                      then ".*[0-9]_LIN(UX)?.sh"
+                      else ".*_B[Nn][Dd][Ll].sh") v.src.name != null;
 
 in
 
@@ -71,7 +71,7 @@ callPackage ./generic.nix {
     homepage = "http://www.wolfram.com/mathematica/";
     license = licenses.unfree;
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    maintainers = with maintainers; [ herberteuler rafaelrc ];
+    maintainers = with maintainers; [ herberteuler rafaelrc chewblacka ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/applications/science/math/mathematica/generic.nix b/pkgs/applications/science/math/mathematica/generic.nix
index c1c10f8937ce0..6bf8992308125 100644
--- a/pkgs/applications/science/math/mathematica/generic.nix
+++ b/pkgs/applications/science/math/mathematica/generic.nix
@@ -157,9 +157,15 @@ in stdenv.mkDerivation {
 
     mkdir -p "$out/lib/udev/rules.d"
 
-    # Patch MathInstaller's shebangs and udev rules dir
-    patchShebangs MathInstaller
-    substituteInPlace MathInstaller \
+    # Set name of installer file
+    if [ -f "MathInstaller" ]; then
+      INSTALLER="MathInstaller"
+    else
+      INSTALLER="WolframInstaller"
+    fi
+    # Patch Installer's shebangs and udev rules dir
+    patchShebangs $INSTALLER
+    substituteInPlace $INSTALLER \
       --replace /etc/udev/rules.d $out/lib/udev/rules.d
 
     # Remove PATH restriction, root and avahi daemon checks, and hostname call
@@ -169,13 +175,13 @@ in stdenv.mkDerivation {
       s/^\s*checkAvahiDaemon$/:/
       s/^\s*installBundledInstall$/:/
       s/`hostname`/""/
-    ' MathInstaller
+    ' $INSTALLER
 
     # NOTE: some files placed under HOME may be useful
     XDG_DATA_HOME="$out/share" HOME="$TMPDIR/home" vernierLink=y \
-      ./MathInstaller -execdir="$out/bin" -targetdir="$out/libexec/Mathematica" -auto -verbose -createdir=y
+      ./$INSTALLER -execdir="$out/bin" -targetdir="$out/libexec/Mathematica" -auto -verbose -createdir=y
 
-    # Check if MathInstaller produced any errors
+    # Check if Installer produced any errors
     errLog="$out/libexec/Mathematica/InstallErrors"
     if [ -f "$errLog" ]; then
       echo "Installation errors:"
diff --git a/pkgs/applications/science/math/mathematica/versions.nix b/pkgs/applications/science/math/mathematica/versions.nix
index 98e65d376b393..a88aca6f12a8f 100644
--- a/pkgs/applications/science/math/mathematica/versions.nix
+++ b/pkgs/applications/science/math/mathematica/versions.nix
@@ -8,6 +8,20 @@
 
 let versions = [
   {
+    version = "14.1.0";
+    lang = "en";
+    language = "English";
+    sha256 = "sha256-PCpjwqA6NC+iwvYxddYBlmF5+vl76r+MoIYAL91WFns=";
+    installer = "Wolfram_14.1.0_LIN.sh";
+  }
+  {
+    version = "14.1.0";
+    lang = "en";
+    language = "English";
+    sha256 = "sha256-pnu60Pv3xo3+MAkDLiU3yTPVbbQ00diV45vSVL8B310=";
+    installer = "Wolfram_14.1.0_LIN_Bndl.sh";
+  }
+  {
     version = "14.0.0";
     lang = "en";
     language = "English";
diff --git a/pkgs/applications/science/misc/toil/default.nix b/pkgs/applications/science/misc/toil/default.nix
deleted file mode 100644
index 9142676fff48d..0000000000000
--- a/pkgs/applications/science/misc/toil/default.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ lib
-, fetchFromGitHub
-, python3
-, rsync
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "toil";
-  version = "5.12.0";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "DataBiosphere";
-    repo = pname;
-    rev = "refs/tags/releases/${version}";
-    hash = "sha256-cTpbQo9tPZifUO59vbnIa3XUinFJ2/5Slfe4yszglFM=";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    addict
-    dill
-    docker
-    enlighten
-    psutil
-    py-tes
-    pypubsub
-    python-dateutil
-    pytz
-    pyyaml
-    requests
-    typing-extensions
-  ];
-
-  nativeCheckInputs = [
-    rsync
-  ] ++ (with python3.pkgs; [
-    boto
-    botocore
-    flask
-    pytestCheckHook
-    stubserver
-  ]);
-
-  pytestFlagsArray = [
-    "src/toil/test"
-  ];
-
-  pythonImportsCheck = [
-    "toil"
-  ];
-
-  disabledTestPaths = [
-    # Tests are reaching their timeout
-    "src/toil/test/docs/scriptsTest.py"
-    "src/toil/test/jobStores/jobStoreTest.py"
-    "src/toil/test/provisioners/aws/awsProvisionerTest.py"
-    "src/toil/test/src"
-    "src/toil/test/wdl"
-    "src/toil/test/utils/utilsTest.py"
-    "src/toil/test/cwl/cwlTest.py"
-    "src/toil/test/lib/test_ec2.py"
-    "src/toil/test/lib/aws/test_iam.py"
-    "src/toil/test/lib/aws/test_s3.py"
-  ];
-
-  disabledTests = [
-    # Tests fail starting with 5.7.1
-    "testServices"
-    "testConcurrencyWithDisk"
-    "testJobConcurrency"
-    "testNestedResourcesDoNotBlock"
-    "test_omp_threads"
-    "testFileSingle"
-    "testFileSingle10000"
-    "testFileSingleCheckpoints"
-    "testFileSingleNonCaching"
-    "testFetchJobStoreFiles"
-    "testFetchJobStoreFilesWSymlinks"
-    "testJobStoreContents"
-    "test_cwl_on_arm"
-    "test_cwl_toil_kill"
-  ];
-
-  meta = with lib; {
-    description = "Workflow engine written in pure Python";
-    homepage = "https://toil.ucsc-cgl.org/";
-    license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ veprbl ];
-  };
-}
diff --git a/pkgs/applications/version-management/git-cliff/default.nix b/pkgs/applications/version-management/git-cliff/default.nix
index 5cdc41af2b6ec..92660f32267e9 100644
--- a/pkgs/applications/version-management/git-cliff/default.nix
+++ b/pkgs/applications/version-management/git-cliff/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-cliff";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = "git-cliff";
     rev = "v${version}";
-    hash = "sha256-d6IawXBumA5ZJiigMTx4IZgOFrH5bNrbRsNHfT4Ik3w=";
+    hash = "sha256-GRvZ9jdooduFylTGgUQNjdnD2Aa+jT5faV0/c3GBpqw=";
   };
 
-  cargoHash = "sha256-zXcVOE+yTD4SsVNTYhXnKy6et5en9jzYXPKPVnCOixI=";
+  cargoHash = "sha256-vgVTHTEKfjWJzxDQ5w0dwp9qxyN5sgbBseXHN25bx9o=";
 
   # attempts to run the program on .git in src which is not deterministic
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-town/default.nix b/pkgs/applications/version-management/git-town/default.nix
index 892c856bc8674..9f70f7594472a 100644
--- a/pkgs/applications/version-management/git-town/default.nix
+++ b/pkgs/applications/version-management/git-town/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "git-town";
-  version = "16.1.1";
+  version = "16.2.1";
 
   src = fetchFromGitHub {
     owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    hash = "sha256-H4FtFSI/c7UxRLZB8kz873DIN6kLUwmRZtz3+4zaR7w=";
+    hash = "sha256-/60n/JvT7XRfEVic6Jmi05WpsAy4mRsE/GAnetTMC1I=";
   };
 
   vendorHash = null;
diff --git a/pkgs/applications/video/vdr/softhddevice/default.nix b/pkgs/applications/video/vdr/softhddevice/default.nix
index afce9a79d0abb..612731acdcc10 100644
--- a/pkgs/applications/video/vdr/softhddevice/default.nix
+++ b/pkgs/applications/video/vdr/softhddevice/default.nix
@@ -14,12 +14,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "vdr-softhddevice";
-  version = "2.3.7";
+  version = "2.3.8";
 
   src = fetchFromGitHub {
     owner = "ua0lnj";
     repo = "vdr-plugin-softhddevice";
-    sha256 = "sha256-gn1Z3pw8f0Tpo8Ot0hP9+p/KbK/EGOInE34BCH3aVp0=";
+    sha256 = "sha256-/eNPhkrLpxXeX/5EitMJUgZCPy1Ked3oKuMdD6OuEYc=";
     rev = "v${version}";
   };
 
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index e72797bea8e08..45099329c2e62 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.29.3";
+  version = "2.29.7";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    hash = "sha256-t9NyBW9wUwwMB2VAqRUn8KosQFuqWFwuG4Z6KmHXmXc=";
+    hash = "sha256-6ksZAGVAFnLwPnCXlCtp4cWfxzJRp/bfVkpvp3Z6fiQ=";
   };
 
   postPatch = ''
@@ -16,7 +16,7 @@ buildGoModule rec {
     rm -rf e2e/
   '';
 
-  vendorHash = "sha256-hhqNKueE5mJzGbhHqu/Cg9uQJ4v6I8q7+h4MB0MsJww=";
+  vendorHash = "sha256-B2ywdZjp7h7eFYNJ4wXmAdbOxc8ftGqHnLmDvzQASJE=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
diff --git a/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix b/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
index ff917162dc3a1..47b131ba61806 100644
--- a/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
+++ b/pkgs/applications/window-managers/hyprwm/xdg-desktop-portal-hyprland/default.nix
@@ -2,15 +2,16 @@
   lib,
   stdenv,
   fetchFromGitHub,
-  fetchpatch,
   cmake,
-  pkg-config,
-  wayland-scanner,
   makeWrapper,
+  pkg-config,
   wrapQtAppsHook,
   nix-update-script,
+  hyprland,
   hyprland-protocols,
   hyprlang,
+  hyprutils,
+  hyprwayland-scanner,
   libdrm,
   mesa,
   pipewire,
@@ -18,58 +19,39 @@
   qttools,
   qtwayland,
   sdbus-cpp,
+  slurp,
   systemd,
   wayland,
   wayland-protocols,
-  hyprland,
-  hyprpicker,
-  slurp,
+  wayland-scanner,
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "xdg-desktop-portal-hyprland";
-  version = "1.3.3";
+  version = "1.3.5";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "xdg-desktop-portal-hyprland";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-cyyxu/oj4QEFp3CVx2WeXa9T4OAUyynuBJHGkBZSxJI=";
+    rev = "refs/tags/v${finalAttrs.version}";
+    hash = "sha256-xTqnMoJsEojuvqJLuM+U7EZ7q71efaj3pbvjutq4TXc=";
   };
 
-  patches = [
-    # CMake formatting, required for the next two commits to cleanly apply
-    (fetchpatch {
-      url = "https://github.com/hyprwm/xdg-desktop-portal-hyprland/commit/5555f467f68ce7cdf1060991c24263073b95e9da.patch";
-      hash = "sha256-yNkg7GCXDPJdsE7M6J98YylnRxQWpcM5N3olix7Oc1A=";
-    })
-    # removes wayland-scanner from deps, as it includes a pkg-config that
-    # defines that it has a non-existent include directory which trips up CMake
-    (fetchpatch {
-      url = "https://github.com/hyprwm/xdg-desktop-portal-hyprland/commit/0dd9af698b9386bcf25d3ea9f5017eca721831c1.patch";
-      hash = "sha256-Y6eWASHoMXVN2rYJ1rs0jy2qP81/qbHsZU+6b7XNBBg=";
-    })
-    # handle finding wayland-scanner more nicely
-    (fetchpatch {
-      url = "https://github.com/hyprwm/xdg-desktop-portal-hyprland/commit/2425e8f541525fa7409d9f26a8ffaf92a3767251.patch";
-      hash = "sha256-6dCg/U/SIjtvo07Z3tn0Hn8Xwx72nwVz6Q2cFnObonU=";
-    })
-  ];
-
   depsBuildBuild = [
     pkg-config
   ];
 
   nativeBuildInputs = [
     cmake
-    pkg-config
-    wayland-scanner
     makeWrapper
+    pkg-config
     wrapQtAppsHook
+    hyprwayland-scanner
   ];
 
   buildInputs = [
     hyprland-protocols
     hyprlang
+    hyprutils
     libdrm
     mesa
     pipewire
@@ -80,6 +62,7 @@ stdenv.mkDerivation (finalAttrs: {
     systemd
     wayland
     wayland-protocols
+    wayland-scanner
   ];
 
   dontWrapQtApps = true;
@@ -95,12 +78,7 @@ stdenv.mkDerivation (finalAttrs: {
       }
 
     wrapProgramShell $out/libexec/xdg-desktop-portal-hyprland \
-      --prefix PATH ":" ${
-        lib.makeBinPath [
-          (placeholder "out")
-          hyprpicker
-        ]
-      }
+      --prefix PATH ":" ${lib.makeBinPath [ (placeholder "out") ]}
   '';
 
   passthru = {
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index 6451feeabe3c9..a6b08042db993 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -205,6 +205,8 @@ rec {
       at-spi2-core
       pciutils # for FreeCAD
       pipewire # immersed-vr wayland support
+
+      libsecret # For bitwarden
     ];
   };
 }
diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix
index e55e22215daaf..866b0d3256c73 100644
--- a/pkgs/build-support/coq/default.nix
+++ b/pkgs/build-support/coq/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, coqPackages, coq, which, fetchzip }@args:
+{ lib, stdenv, coqPackages, coq, which, fetchzip, fetchurl }@args:
 
 let
   lib = import ./extra-lib.nix {
@@ -71,7 +71,7 @@ let
     "extraInstallFlags" "setCOQBIN" "mlPlugin"
     "dropAttrs" "dropDerivationAttrs" "keepAttrs" ] ++ dropAttrs) keepAttrs;
   fetch = import ../coq/meta-fetch/default.nix
-    { inherit lib stdenv fetchzip; } ({
+    { inherit lib stdenv fetchzip fetchurl; } ({
       inherit release releaseRev;
       location = { inherit domain owner repo; };
     } // optionalAttrs (args?fetcher) {inherit fetcher;});
diff --git a/pkgs/build-support/coq/meta-fetch/default.nix b/pkgs/build-support/coq/meta-fetch/default.nix
index daed9faa3efed..ad0a69e29f2ce 100644
--- a/pkgs/build-support/coq/meta-fetch/default.nix
+++ b/pkgs/build-support/coq/meta-fetch/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip }@args:
+{ lib, stdenv, fetchurl, fetchzip }@args:
 
 let
   lib = import ../extra-lib.nix {
@@ -28,11 +28,16 @@ let
 
   inherit (lib.strings) match split;
 
-  default-fetcher = {domain ? "github.com", owner ? "", repo, rev, name ? "source", sha256 ? null, ...}@args:
-    let ext = if args?sha256 then "zip" else "tar.gz";
-        fmt = if args?sha256 then "zip" else "tarball";
+  default-fetcher = {domain ? "github.com", owner ? "", repo, rev, name ? "source", sha256 ? null, artifact ? null, ...}@args:
+    let kind = switch-if [
+          { cond = artifact != null; out = {ext = "tbz"; fmt = "tbz"; fetchfun = fetchurl; }; }
+          { cond = args?sha256 ; out = {ext = "zip"; fmt = "zip"; fetchfun = fetchzip; }; }
+        ] {ext = "tar.gz"; fmt = "tarball"; fetchfun = builtins.fetchTarball; }; in
+    with kind; let
         pr  = match "^#(.*)$" rev;
         url = switch-if [
+          { cond = pr == null && (match "^github.*" domain) != null && artifact != null;
+            out = "https://github.com/${owner}/${repo}/releases/download/${rev}/${artifact}"; }
           { cond = pr == null && (match "^github.*" domain) != null;
             out = "https://${domain}/${owner}/${repo}/archive/${rev}.${ext}"; }
           { cond = pr != null && (match "^github.*" domain) != null;
@@ -42,7 +47,7 @@ let
           { cond = (match "(www.)?mpi-sws.org" domain) != null;
             out = "https://www.mpi-sws.org/~${owner}/${repo}/download/${repo}-${rev}.${ext}";}
         ] (throw "meta-fetch: no fetcher found for domain ${domain} on ${rev}");
-        fetch = x: if args?sha256 then fetchzip (x // { inherit sha256; }) else builtins.fetchTarball x;
+        fetch = x: fetchfun (if args?sha256 then (x // { inherit sha256; }) else x);
     in fetch { inherit url ; };
 in
 {
@@ -50,8 +55,10 @@ in
   location,
   release ? {},
   releaseRev ? (v: v),
+  releaseArtifact ? (v: null)
 }:
-let isVersion      = x: isString x && match "^/.*" x == null && release?${x};
+let
+    isVersion      = x: isString x && match "^/.*" x == null && release?${x};
     shortVersion   = x: if (isString x && match "^/.*" x == null)
       then findFirst (v: versions.majorMinor v == x) null
         (sort versionAtLeast (attrNames release))
@@ -71,7 +78,7 @@ switch arg [
     in
       {
         version = rv.version or v;
-        src = rv.src or fetcher (location // { rev = releaseRev v; } // rv);
+        src = rv.src or fetcher (location // { rev = releaseRev v; artifact = releaseArtifact v; } // rv);
       };
     }
   { case = isString;
diff --git a/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py b/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py
index fbb51960ad7b6..b3cd3e511f090 100644
--- a/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py
+++ b/pkgs/build-support/dlang/dub-to-nix/dub-to-nix.py
@@ -13,7 +13,7 @@ def eprint(text: str):
 
 if not os.path.exists("dub.selections.json"):
     eprint("The file `dub.selections.json` does not exist in the current working directory")
-    eprint("run `dub upgrade --annotate` to generate it")
+    eprint("run `dub upgrade` to generate it")
     sys.exit(1)
 
 with open("dub.selections.json") as f:
diff --git a/pkgs/build-support/php/builders/v1/build-composer-project.nix b/pkgs/build-support/php/builders/v1/build-composer-project.nix
index 698391ad1603c..912fe7d72f3cb 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-project.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-project.nix
@@ -94,12 +94,6 @@ let
             or (if finalAttrs.composerRepository.composerLock == null then nix-update-script { } else null);
       };
 
-      env = {
-        COMPOSER_CACHE_DIR = "/dev/null";
-        COMPOSER_DISABLE_NETWORK = "1";
-        COMPOSER_MIRROR_PATH_REPOS = "1";
-      };
-
       meta = previousAttrs.meta or { } // {
         platforms = lib.platforms.all;
       };
diff --git a/pkgs/build-support/php/builders/v1/build-composer-repository.nix b/pkgs/build-support/php/builders/v1/build-composer-repository.nix
index 037d8bdeb3eb1..c16056ce8fdfe 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-repository.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-repository.nix
@@ -102,13 +102,6 @@ let
           runHook postInstallCheck
         '';
 
-      env = {
-        COMPOSER_CACHE_DIR = "/dev/null";
-        COMPOSER_MIRROR_PATH_REPOS = "1";
-        COMPOSER_HTACCESS_PROTECT = "0";
-        COMPOSER_DISABLE_NETWORK = "0";
-      };
-
       outputHashMode = "recursive";
       outputHashAlgo =
         if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256";
diff --git a/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix b/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
index 060b51241e6c8..e199000f4f7bc 100644
--- a/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
+++ b/pkgs/build-support/php/builders/v1/build-composer-with-plugin.nix
@@ -149,12 +149,6 @@ let
             or (if finalAttrs.vendor.composerLock == null then nix-update-script { } else null);
       };
 
-      env = {
-        COMPOSER_CACHE_DIR = "/dev/null";
-        COMPOSER_DISABLE_NETWORK = "1";
-        COMPOSER_MIRROR_PATH_REPOS = "1";
-      };
-
       meta = previousAttrs.meta or composer.meta;
     };
 in
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
index 44e87d06d3a53..d69050ecc6a4d 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-install-hook.sh
@@ -24,7 +24,7 @@ composerInstallConfigureHook() {
     fi
 
     if [[ ! -f "composer.lock" ]]; then
-        setComposeRootVersion
+        setComposerRootVersion
 
         composer \
             --no-install \
@@ -79,7 +79,7 @@ composerInstallConfigureHook() {
 composerInstallBuildHook() {
     echo "Executing composerInstallBuildHook"
 
-    setComposeRootVersion
+    setComposerRootVersion
 
     # Since this file cannot be generated in the composer-repository-hook.sh
     # because the file contains hardcoded nix store paths, we generate it here.
@@ -99,7 +99,8 @@ composerInstallCheckHook() {
 composerInstallInstallHook() {
     echo "Executing composerInstallInstallHook"
 
-    setComposeRootVersion
+    setComposerRootVersion
+    setComposerEnvVariables
 
     # Finally, run `composer install` to install the dependencies and generate
     # the autoloader.
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
index ec9777541fc0f..9d7b048870ee6 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-repository-hook.sh
@@ -20,7 +20,7 @@ composerRepositoryConfigureHook() {
     fi
 
     if [[ ! -f "composer.lock" ]]; then
-        setComposeRootVersion
+        setComposerRootVersion
 
         composer \
             --no-install \
@@ -58,7 +58,7 @@ composerRepositoryBuildHook() {
 
     mkdir -p repository
 
-    setComposeRootVersion
+    setComposerRootVersion
 
     # Build the local composer repository
     # The command 'build-local-repo' is provided by the Composer plugin
diff --git a/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh b/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
index 0d88d14094ad4..186b72111cca3 100644
--- a/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
+++ b/pkgs/build-support/php/builders/v1/hooks/composer-with-plugin-vendor-hook.sh
@@ -28,7 +28,7 @@ composerWithPluginConfigureHook() {
     cp -ar $src $out/src
 
     if [[ ! -f "$out/composer.lock" ]]; then
-        setComposeRootVersion
+        setComposerRootVersion
 
         composer \
             global \
diff --git a/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash b/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
index 65c0a3b410f69..d1b8a25c949db 100644
--- a/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
+++ b/pkgs/build-support/php/builders/v1/hooks/php-script-utils.bash
@@ -2,7 +2,7 @@ declare version
 declare composerStrictValidation
 declare composerGlobal
 
-setComposeRootVersion() {
+setComposerRootVersion() {
     set +e # Disable exit on error
 
     if [[ -v version ]]; then
@@ -13,8 +13,15 @@ setComposeRootVersion() {
     set -e
 }
 
+setComposerEnvVariables() {
+    echo -e "\e[32mSetting some required environment variables for Composer...\e[0m"
+    export COMPOSER_MIRROR_PATH_REPOS=1
+    export COMPOSER_CACHE_DIR=/dev/null
+    export COMPOSER_HTACCESS_PROTECT=0
+}
+
 checkComposerValidate() {
-    setComposeRootVersion
+    setComposerRootVersion
 
     if [ "1" == "${composerGlobal-}" ]; then
       global="global";
diff --git a/pkgs/build-support/php/builders/v2/build-composer-project.nix b/pkgs/build-support/php/builders/v2/build-composer-project.nix
index 6013225e7c594..bfbd2327812bc 100644
--- a/pkgs/build-support/php/builders/v2/build-composer-project.nix
+++ b/pkgs/build-support/php/builders/v2/build-composer-project.nix
@@ -94,12 +94,6 @@ let
             or (if finalAttrs.composerVendor.composerLock == null then nix-update-script { } else null);
       };
 
-      env = {
-        COMPOSER_CACHE_DIR = "/dev/null";
-        COMPOSER_DISABLE_NETWORK = "1";
-        COMPOSER_MIRROR_PATH_REPOS = "1";
-      };
-
       meta = previousAttrs.meta or { } // {
         platforms = lib.platforms.all;
       };
diff --git a/pkgs/build-support/php/builders/v2/build-composer-vendor.nix b/pkgs/build-support/php/builders/v2/build-composer-vendor.nix
index b68e16e6cc1a0..cbbe643d20f1e 100644
--- a/pkgs/build-support/php/builders/v2/build-composer-vendor.nix
+++ b/pkgs/build-support/php/builders/v2/build-composer-vendor.nix
@@ -87,13 +87,6 @@ let
           runHook postInstallCheck
         '';
 
-      env = {
-        COMPOSER_CACHE_DIR = "/dev/null";
-        COMPOSER_MIRROR_PATH_REPOS = "1";
-        COMPOSER_HTACCESS_PROTECT = "0";
-        COMPOSER_DISABLE_NETWORK = "0";
-      };
-
       outputHashMode = "recursive";
       outputHashAlgo =
         if (finalAttrs ? vendorHash && finalAttrs.vendorHash != "") then null else "sha256";
diff --git a/pkgs/build-support/php/builders/v2/hooks/composer-install-hook.sh b/pkgs/build-support/php/builders/v2/hooks/composer-install-hook.sh
index 7cc176058b504..0b04af6222334 100644
--- a/pkgs/build-support/php/builders/v2/hooks/composer-install-hook.sh
+++ b/pkgs/build-support/php/builders/v2/hooks/composer-install-hook.sh
@@ -14,7 +14,7 @@ source @phpScriptUtils@
 composerInstallConfigureHook() {
     echo "Executing composerInstallConfigureHook"
 
-    setComposeRootVersion
+    setComposerRootVersion
 
     if [[ ! -e "${composerVendor}" ]]; then
         echo "No local composer vendor found."
diff --git a/pkgs/build-support/php/builders/v2/hooks/composer-vendor-hook.sh b/pkgs/build-support/php/builders/v2/hooks/composer-vendor-hook.sh
index 7a14e544ae0de..24f3eaa2744e2 100644
--- a/pkgs/build-support/php/builders/v2/hooks/composer-vendor-hook.sh
+++ b/pkgs/build-support/php/builders/v2/hooks/composer-vendor-hook.sh
@@ -15,7 +15,7 @@ source @phpScriptUtils@
 composerVendorConfigureHook() {
     echo "Executing composerVendorConfigureHook"
 
-    setComposeRootVersion
+    setComposerRootVersion
 
     if [[ -e "$composerLock" ]]; then
         echo -e "\e[32mUsing user provided \`composer.lock\` file from \`$composerLock\`\e[0m"
@@ -59,9 +59,13 @@ composerVendorConfigureHook() {
 composerVendorBuildHook() {
     echo "Executing composerVendorBuildHook"
 
+    setComposerEnvVariables
+
     composer \
-        --apcu-autoloader \
-        --apcu-autoloader-prefix="$(jq -r -c 'try ."content-hash"' < composer.lock)" \
+        `# The acpu-autoloader is not reproducible and has to be disabled.` \
+        `# Upstream PR: https://github.com/composer/composer/pull/12090` \
+        `# --apcu-autoloader` \
+        `# --apcu-autoloader-prefix="$(jq -r -c 'try ."content-hash"' < composer.lock)"` \
         --no-interaction \
         --no-progress \
         --optimize-autoloader \
diff --git a/pkgs/build-support/php/builders/v2/hooks/php-script-utils.bash b/pkgs/build-support/php/builders/v2/hooks/php-script-utils.bash
index 3e8299bf15d37..573b82c2baff4 100644
--- a/pkgs/build-support/php/builders/v2/hooks/php-script-utils.bash
+++ b/pkgs/build-support/php/builders/v2/hooks/php-script-utils.bash
@@ -2,7 +2,7 @@ declare version
 declare composerStrictValidation
 declare composerGlobal
 
-setComposeRootVersion() {
+setComposerRootVersion() {
     set +e # Disable exit on error
 
     if [[ -v version ]]; then
@@ -13,6 +13,13 @@ setComposeRootVersion() {
     set -e
 }
 
+setComposerEnvVariables() {
+    echo -e "\e[32mSetting some required environment variables for Composer...\e[0m"
+    export COMPOSER_MIRROR_PATH_REPOS=1
+    export COMPOSER_CACHE_DIR=/dev/null
+    export COMPOSER_HTACCESS_PROTECT=0
+}
+
 checkComposerValidate() {
     if [ "1" == "${composerGlobal-}" ]; then
       global="global";
diff --git a/pkgs/development/tools/analysis/actionlint/default.nix b/pkgs/by-name/ac/actionlint/package.nix
index 417a28cd1599a..38090f7bebde9 100644
--- a/pkgs/development/tools/analysis/actionlint/default.nix
+++ b/pkgs/by-name/ac/actionlint/package.nix
@@ -1,16 +1,20 @@
-{ lib
-, buildGoModule
-, fetchFromGitHub
-, installShellFiles
-, makeWrapper
-, python3Packages
-, ronn
-, shellcheck
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+  makeWrapper,
+  python3Packages,
+  ronn,
+  shellcheck,
 }:
 
-buildGoModule rec {
-  pname = "actionlint";
+let
   version = "1.7.1";
+in
+buildGoModule {
+  pname = "actionlint";
+  inherit version;
 
   subPackages = [ "cmd/actionlint" ];
 
@@ -23,23 +27,36 @@ buildGoModule rec {
 
   vendorHash = "sha256-ZREtrdHUD1B1Mogidp1y/kFTK+KR4qYJj1c/M+0utPM=";
 
-  nativeBuildInputs = [ makeWrapper ronn installShellFiles ];
+  nativeBuildInputs = [
+    makeWrapper
+    ronn
+    installShellFiles
+  ];
 
   postInstall = ''
     ronn --roff man/actionlint.1.ronn
     installManPage man/actionlint.1
     wrapProgram "$out/bin/actionlint" \
-      --prefix PATH : ${lib.makeBinPath [ python3Packages.pyflakes shellcheck ]}
+      --prefix PATH : ${
+        lib.makeBinPath [
+          python3Packages.pyflakes
+          shellcheck
+        ]
+      }
   '';
 
-  ldflags = [ "-s" "-w" "-X github.com/rhysd/actionlint.version=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/rhysd/actionlint.version=${version}"
+  ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://rhysd.github.io/actionlint/";
     description = "Static checker for GitHub Actions workflow files";
     changelog = "https://github.com/rhysd/actionlint/raw/v${version}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = [ ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ momeemt ];
     mainProgram = "actionlint";
   };
 }
diff --git a/pkgs/by-name/ai/aider-chat/package.nix b/pkgs/by-name/ai/aider-chat/package.nix
index dcbbf36e8c2fa..d1ed4c6f936b4 100644
--- a/pkgs/by-name/ai/aider-chat/package.nix
+++ b/pkgs/by-name/ai/aider-chat/package.nix
@@ -12,7 +12,7 @@ let
     self = python3;
     packageOverrides = _: super: { tree-sitter = super.tree-sitter_0_21; };
   };
-  version = "0.56.0";
+  version = "0.57.0";
 in
 python3.pkgs.buildPythonApplication {
   pname = "aider-chat";
@@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication {
     owner = "paul-gauthier";
     repo = "aider";
     rev = "refs/tags/v${version}";
-    hash = "sha256-e0Fqj67vYt41Zbr1FN2fuLp6cHRius8RtacBHLgB9dM=";
+    hash = "sha256-ErDepSju8B4GochHKxL03aUfOLAiNfTaXBAllAZ144M=";
   };
 
   pythonRelaxDeps = true;
@@ -60,6 +60,7 @@ python3.pkgs.buildPythonApplication {
       pypandoc
       pyperclip
       pyyaml
+      psutil
       rich
       scipy
       sounddevice
diff --git a/pkgs/development/tools/algolia-cli/default.nix b/pkgs/by-name/al/algolia-cli/package.nix
index f8572eeb19412..1f1debffbd5d0 100644
--- a/pkgs/development/tools/algolia-cli/default.nix
+++ b/pkgs/by-name/al/algolia-cli/package.nix
@@ -1,8 +1,15 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
-
-buildGoModule rec {
-  pname = "algolia-cli";
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+}:
+let
   version = "1.6.11";
+in
+buildGoModule {
+  pname = "algolia-cli";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "algolia";
@@ -17,7 +24,11 @@ buildGoModule rec {
 
   subPackages = [ "cmd/algolia" ];
 
-  ldflags = [ "-s" "-w" "-X github.com/algolia/cli/pkg/version.Version=${version}" ];
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/algolia/cli/pkg/version.Version=${version}"
+  ];
 
   postInstall = ''
     installShellCompletion --cmd algolia \
@@ -26,11 +37,11 @@ buildGoModule rec {
       --zsh <($out/bin/algolia completion zsh)
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Algolia’s official CLI devtool";
     mainProgram = "algolia";
     homepage = "https://algolia.com/doc/tools/cli/";
-    license = licenses.mit;
-    maintainers = [ ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ momeemt ];
   };
 }
diff --git a/pkgs/by-name/al/aliae/package.nix b/pkgs/by-name/al/aliae/package.nix
new file mode 100644
index 0000000000000..7d8b7c73436e9
--- /dev/null
+++ b/pkgs/by-name/al/aliae/package.nix
@@ -0,0 +1,56 @@
+{
+  lib,
+  stdenv,
+  buildGoModule,
+  fetchFromGitHub,
+  installShellFiles,
+}:
+
+buildGoModule rec {
+  pname = "aliae";
+  version = "0.22.1";
+
+  src = fetchFromGitHub {
+    owner = "jandedobbeleer";
+    repo = "aliae";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-slixB7mzEdX3ecgbM6tO9IzVH+1w6DwssD1X3MrwAHw=";
+  };
+
+  vendorHash = "sha256-U0Mt2U8WxDFDadIxASz609tUtiF4tETobAmYrk29Lh0=";
+
+  sourceRoot = "${src.name}/src";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.Version=${version}"
+  ];
+
+  tags = [
+    "netgo"
+    "osusergo"
+  ];
+
+  postInstall =
+    ''
+      mv $out/bin/{src,aliae}
+    ''
+    + lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
+      installShellCompletion --cmd aliae \
+        --bash <($out/bin/aliae completion bash) \
+        --fish <($out/bin/aliae completion fish) \
+        --zsh <($out/bin/aliae completion zsh)
+    '';
+
+  meta = {
+    description = "Cross shell and platform alias management";
+    mainProgram = "aliae";
+    homepage = "https://aliae.dev";
+    changelog = "https://github.com/JanDeDobbeleer/aliae/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ vedantmgoyal9 ];
+  };
+}
diff --git a/pkgs/by-name/an/ananicy-rules-cachyos/package.nix b/pkgs/by-name/an/ananicy-rules-cachyos/package.nix
index 695714175c503..c282aff0c4d76 100644
--- a/pkgs/by-name/an/ananicy-rules-cachyos/package.nix
+++ b/pkgs/by-name/an/ananicy-rules-cachyos/package.nix
@@ -7,13 +7,13 @@
 
 stdenvNoCC.mkDerivation {
   pname = "ananicy-rules-cachyos";
-  version = "0-unstable-2024-08-26";
+  version = "0-unstable-2024-09-18";
 
   src = fetchFromGitHub {
     owner = "CachyOS";
     repo = "ananicy-rules";
-    rev = "a78b76536246898045fd1844aced381d01b7f1c6";
-    hash = "sha256-bDfvWg5r4LmWI8tPrx9qzgEnJuMSYBm6MDf6yOaPqkY=";
+    rev = "1da705ebab9ab44bb933c1275961f963cc4440eb";
+    hash = "sha256-6dVY0sZ09H5vdhfk5nGNjt+KG+Qw62b2YbJQCprXBPQ=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/by-name/an/anytype/package.nix b/pkgs/by-name/an/anytype/package.nix
index 387681956e515..8c99a0d24be87 100644
--- a/pkgs/by-name/an/anytype/package.nix
+++ b/pkgs/by-name/an/anytype/package.nix
@@ -1,4 +1,4 @@
-{ lib, fetchurl, appimageTools, makeWrapper }:
+{ lib, fetchurl, appimageTools, makeWrapper, commandLineArgs ? "" }:
 
 let
   pname = "anytype";
@@ -17,7 +17,8 @@ in appimageTools.wrapType2 {
   extraInstallCommands = ''
     source "${makeWrapper}/nix-support/setup-hook"
     wrapProgram $out/bin/${pname} \
-      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}"
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}}" \
+      --add-flags ${lib.escapeShellArg commandLineArgs}
     install -m 444 -D ${appimageContents}/anytype.desktop -t $out/share/applications
     substituteInPlace $out/share/applications/anytype.desktop \
       --replace 'Exec=AppRun' 'Exec=${pname}'
diff --git a/pkgs/by-name/ap/apostrophe/package.nix b/pkgs/by-name/ap/apostrophe/package.nix
index a7b9ee5133317..3f39ac1244535 100644
--- a/pkgs/by-name/ap/apostrophe/package.nix
+++ b/pkgs/by-name/ap/apostrophe/package.nix
@@ -5,6 +5,7 @@
   libspelling,
   fetchFromGitHub,
   python3Packages,
+  nodePackages,
   meson,
   ninja,
   pkg-config,
@@ -50,7 +51,7 @@ let
     hash = "sha256-a+J+GasFmRvu5cJ1GLXscoJ+owzFXsLhCbeDbYChkyQ=";
   };
 in
-python3Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication {
   inherit version src;
   pname = "apostrophe";
   pyproject = false;
@@ -62,6 +63,11 @@ python3Packages.buildPythonApplication rec {
 
       patchShebangs --build build-aux/meson_post_install.py
     ''
+    # Use mathjax from nixpkgs to avoid loading from CDN
+    + ''
+      substituteInPlace apostrophe/preview_converter.py \
+        --replace-fail "--mathjax" "--mathjax=file://${nodePackages.mathjax}/lib/node_modules/mathjax/es5/tex-chtml-full.js"
+    ''
     # Should be done in postInstall, but meson checks this eagerly before build
     + ''
       install -d $out/share/apostrophe/libs
diff --git a/pkgs/by-name/as/astartectl/package.nix b/pkgs/by-name/as/astartectl/package.nix
index a22f6bd598f17..ac88b96cfab7f 100644
--- a/pkgs/by-name/as/astartectl/package.nix
+++ b/pkgs/by-name/as/astartectl/package.nix
@@ -5,16 +5,16 @@
 }:
 buildGoModule rec {
   pname = "astartectl";
-  version = "24.5.0";
+  version = "24.5.2";
 
   src = fetchFromGitHub {
     owner = "astarte-platform";
     repo = "astartectl";
     rev = "v${version}";
-    hash = "sha256-4Iyd+1hLSatWyeV2J7RSqo2jVEc8dSp5JBObsn3RciI=";
+    hash = "sha256-T4/lkeipE7GWq1zTxkoV3MfADlduFKtGuB/dsI4YZZw=";
   };
 
-  vendorHash = "sha256-NWPLHbUHrk/oJXCOJF8kKhQiZR8aqZChxuz73Acu1cM=";
+  vendorHash = "sha256-kVI1DigDlTvrYLVRUYoW+AAkd31d9EehjRJxrqo8OB4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/by-name/au/autologin/package.nix b/pkgs/by-name/au/autologin/package.nix
new file mode 100644
index 0000000000000..091a2cb8ad5be
--- /dev/null
+++ b/pkgs/by-name/au/autologin/package.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  stdenv,
+  fetchFromSourcehut,
+  meson,
+  ninja,
+  pam,
+  nix-update-script,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "autologin";
+  version = "1.0.0";
+
+  src = fetchFromSourcehut {
+    owner = "~kennylevinsen";
+    repo = "autologin";
+    rev = version;
+    hash = "sha256-Cy4v/1NuaiSr5Bl6SQMWk5rga8h1QMBUkHpN6M3bWOc=";
+  };
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    meson
+    ninja
+  ];
+  buildInputs = [ pam ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    description = "Run a command inside of a new PAM user session";
+    homepage = "https://sr.ht/~kennylevinsen/autologin";
+    changelog = "https://git.sr.ht/~kennylevinsen/autologin/refs/${version}";
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ beviu ];
+    mainProgram = "autologin";
+  };
+}
diff --git a/pkgs/by-name/au/autosuspend/package.nix b/pkgs/by-name/au/autosuspend/package.nix
index 798dc89b8375f..479f6d69d736d 100644
--- a/pkgs/by-name/au/autosuspend/package.nix
+++ b/pkgs/by-name/au/autosuspend/package.nix
@@ -6,7 +6,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "autosuspend";
-  version = "7.0.0";
+  version = "7.0.1";
 
   disabled = python3.pythonOlder "3.10";
 
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "languitar";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-AJ0ZWRxqhBJEics6XnIVWyf7pJI8MphQU4LRqSYYNSQ=";
+    hash = "sha256-Zjo8H5PU6JezrBF0XBHvmePUTNeX74BX4NsHtPozcKs=";
   };
 
   dependencies = with python3.pkgs; [
diff --git a/pkgs/by-name/bi/bitbucket-cli/package.nix b/pkgs/by-name/bi/bitbucket-cli/package.nix
new file mode 100644
index 0000000000000..f5927ec44de54
--- /dev/null
+++ b/pkgs/by-name/bi/bitbucket-cli/package.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+buildGoModule rec {
+  pname = "bitbucket-cli";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "swisscom";
+    repo = "bitbucket-cli";
+    rev = "v${version}";
+    hash = "sha256-8Qvlv/S5IkRk+2D/Pnb0+FP7ryHh1kSRJCiUjSO0OtI=";
+  };
+
+  vendorHash = "sha256-xjCY3Ycz5Ty6jTDHNNUWYp2SP8EPhDiwO7+WJBL3lAQ=";
+
+  # Tests seem to be using Swisscom's live servers.
+  doCheck = false;
+
+  meta = {
+    description = "Bitbucket Enterprise CLI";
+    homepage = "https://github.com/swisscom/bitbucket-cli";
+    mainProgram = "bitbucket-cli";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ attila ];
+    platforms = with lib.platforms; linux ++ darwin;
+  };
+}
diff --git a/pkgs/by-name/bi/bitwarden-desktop/package.nix b/pkgs/by-name/bi/bitwarden-desktop/package.nix
index 104abfb85505b..a45712bfe8019 100644
--- a/pkgs/by-name/bi/bitwarden-desktop/package.nix
+++ b/pkgs/by-name/bi/bitwarden-desktop/package.nix
@@ -3,7 +3,7 @@
 , cargo
 , copyDesktopItems
 , dbus
-, electron_31
+, electron_32
 , fetchFromGitHub
 , glib
 , gnome-keyring
@@ -26,16 +26,16 @@
 let
   description = "Secure and free password manager for all of your devices";
   icon = "bitwarden";
-  electron = electron_31;
+  electron = electron_32;
 in buildNpmPackage rec {
   pname = "bitwarden-desktop";
-  version = "2024.8.2";
+  version = "2024.9.0";
 
   src = fetchFromGitHub {
     owner = "bitwarden";
     repo = "clients";
     rev = "desktop-v${version}";
-    hash = "sha256-KATT4W2pP7VTcoHeshGx5VrBwlg3UqzKPcRY0Rzo7II=";
+    hash = "sha256-o5nRG2j73qheDOyeFfSga64D8HbTn1EUrCiN0W+Xn0w=";
   };
 
   patches = [
@@ -52,7 +52,7 @@ in buildNpmPackage rec {
   makeCacheWritable = true;
   npmFlags = [ "--engine-strict" "--legacy-peer-deps" ];
   npmWorkspace = "apps/desktop";
-  npmDepsHash = "sha256-SnrK26QaxHYKX0532rGBASjx9PwxKSsVFRzZ3Cs2GPk=";
+  npmDepsHash = "sha256-L7/frKCNlq0xr6T+aSqyEQ44yrIXwcpdU/djrhCJNNk=";
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
@@ -68,7 +68,7 @@ in buildNpmPackage rec {
       patches;
     patchFlags = [ "-p4" ];
     sourceRoot = "${src.name}/${cargoRoot}";
-    hash = "sha256-MjGKQky6LGtpG1maBWd+WkMZlnZfdl9Sm2dlvdD8ANw=";
+    hash = "sha256-y+6vaESiOeVrFJpZoOJ75onOpldqSsT2kqkMMzTDUmM=";
   };
   cargoRoot = "apps/desktop/desktop_native";
 
diff --git a/pkgs/by-name/bo/boilr/0001-update-time.patch b/pkgs/by-name/bo/boilr/0001-update-time.patch
new file mode 100644
index 0000000000000..334d0fe1e9b3c
--- /dev/null
+++ b/pkgs/by-name/bo/boilr/0001-update-time.patch
@@ -0,0 +1,287 @@
+From 047681f1425c7cd68b77fdd729ea4664f73126b8 Mon Sep 17 00:00:00 2001
+From: wxt <3264117476@qq.com>
+Date: Mon, 23 Sep 2024 15:11:09 +0800
+Subject: [PATCH] update time
+
+---
+ Cargo.lock | 87 +++++++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 56 insertions(+), 31 deletions(-)
+
+diff --git a/Cargo.lock b/Cargo.lock
+index be4fbeb..42f29b8 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -265,7 +265,7 @@ checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -282,7 +282,7 @@ checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -467,7 +467,7 @@ checksum = "fdde5c9cd29ebd706ce1b35600920a33550e402fc998a2e53ad3b42c3c47a192"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -809,6 +809,15 @@ dependencies = [
+  "serde",
+ ]
+ 
++[[package]]
++name = "deranged"
++version = "0.3.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
++dependencies = [
++ "powerfmt",
++]
++
+ [[package]]
+ name = "derivative"
+ version = "2.2.0"
+@@ -1007,7 +1016,7 @@ checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -1259,7 +1268,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -2002,6 +2011,12 @@ dependencies = [
+  "winapi",
+ ]
+ 
++[[package]]
++name = "num-conv"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
++
+ [[package]]
+ name = "num-integer"
+ version = "0.1.45"
+@@ -2156,7 +2171,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -2308,7 +2323,7 @@ dependencies = [
+  "pest_meta",
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -2339,7 +2354,7 @@ checksum = "39407670928234ebc5e6e580247dd567ad73a3578460c5990f9503df207e8f07"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -2389,6 +2404,12 @@ dependencies = [
+  "windows-sys 0.48.0",
+ ]
+ 
++[[package]]
++name = "powerfmt"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
++
+ [[package]]
+ name = "ppv-lite86"
+ version = "0.2.17"
+@@ -2407,9 +2428,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "proc-macro2"
+-version = "1.0.57"
++version = "1.0.86"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "c4ec6d5fe0b140acb27c9a0444118cf55bfbb4e0b259739429abb4521dd67c16"
++checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+ dependencies = [
+  "unicode-ident",
+ ]
+@@ -2425,9 +2446,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "quote"
+-version = "1.0.27"
++version = "1.0.37"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500"
++checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+ dependencies = [
+  "proc-macro2",
+ ]
+@@ -2711,22 +2732,22 @@ dependencies = [
+ 
+ [[package]]
+ name = "serde"
+-version = "1.0.163"
++version = "1.0.210"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "2113ab51b87a539ae008b5c6c02dc020ffa39afd2d83cffcb3f4eb2722cebec2"
++checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+ dependencies = [
+  "serde_derive",
+ ]
+ 
+ [[package]]
+ name = "serde_derive"
+-version = "1.0.163"
++version = "1.0.210"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8c805777e3930c8883389c602315a24224bcc738b63905ef87cd1420353ea93e"
++checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -2748,7 +2769,7 @@ checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -2981,9 +3002,9 @@ dependencies = [
+ 
+ [[package]]
+ name = "syn"
+-version = "2.0.16"
++version = "2.0.77"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "a6f671d4b5ffdb8eadec19c0ae67fe2639df8684bd7bc4b83d986b8db549cf01"
++checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+@@ -3035,7 +3056,7 @@ checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -3061,11 +3082,14 @@ dependencies = [
+ 
+ [[package]]
+ name = "time"
+-version = "0.3.21"
++version = "0.3.36"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc"
++checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+ dependencies = [
++ "deranged",
+  "itoa",
++ "num-conv",
++ "powerfmt",
+  "serde",
+  "time-core",
+  "time-macros",
+@@ -3073,16 +3097,17 @@ dependencies = [
+ 
+ [[package]]
+ name = "time-core"
+-version = "0.1.1"
++version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb"
++checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+ 
+ [[package]]
+ name = "time-macros"
+-version = "0.2.9"
++version = "0.2.18"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b"
++checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
+ dependencies = [
++ "num-conv",
+  "time-core",
+ ]
+ 
+@@ -3153,7 +3178,7 @@ checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -3260,7 +3285,7 @@ checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+ ]
+ 
+ [[package]]
+@@ -3443,7 +3468,7 @@ dependencies = [
+  "once_cell",
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+  "wasm-bindgen-shared",
+ ]
+ 
+@@ -3477,7 +3502,7 @@ checksum = "e128beba882dd1eb6200e1dc92ae6c5dbaa4311aa7bb211ca035779e5efc39f8"
+ dependencies = [
+  "proc-macro2",
+  "quote",
+- "syn 2.0.16",
++ "syn 2.0.77",
+  "wasm-bindgen-backend",
+  "wasm-bindgen-shared",
+ ]
+-- 
+2.46.0
+
diff --git a/pkgs/by-name/bo/boilr/package.nix b/pkgs/by-name/bo/boilr/package.nix
index d7e95b5a8bf90..83a83011c1c99 100644
--- a/pkgs/by-name/bo/boilr/package.nix
+++ b/pkgs/by-name/bo/boilr/package.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, rustPlatform
-, clangStdenv
-, gtk3
-, xorg
-, perl
-, openssl
-, speechd-minimal
-, libxkbcommon
-, libGL
-, wayland
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  clangStdenv,
+  gtk3,
+  xorg,
+  perl,
+  openssl,
+  speechd-minimal,
+  libxkbcommon,
+  libGL,
+  wayland,
 }:
 let
   rpathLibs = [
@@ -38,11 +39,15 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   src = fetchFromGitHub {
     owner = "PhilipK";
     repo = "BoilR";
-    rev = "v.${version}";
+    rev = "refs/tags/v.${version}";
     hash = "sha256-bwCTsoZ/9TeO3wyEcOqxKePnj9glsDXWUBCLd3nVT80=";
   };
 
-  cargoHash = "sha256-nAZU1xVpeRXubotla4I6InGMH4lisPMOnoqaK5mBPCM=";
+  cargoPatches = [
+    ./0001-update-time.patch
+  ];
+
+  cargoHash = "sha256-09vPP+kNrmk0nN3Bdn9T7QjvuZvJeqQ56lCQIFb+Zrs=";
 
   nativeBuildInputs = [ perl ];
 
@@ -57,10 +62,12 @@ rustPlatform.buildRustPackage.override { stdenv = clangStdenv; } rec {
   dontPatchELF = true;
 
   meta = {
-    description =
-      "Automatically adds (almost) all your games to your Steam library (including image art)";
+    description = "Automatically adds (almost) all your games to your Steam library (including image art)";
     homepage = "https://github.com/PhilipK/BoilR";
-    license = with lib.licenses; [ asl20 mit ];
+    license = with lib.licenses; [
+      asl20
+      mit
+    ];
     platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ foolnotion ];
     mainProgram = "boilr";
diff --git a/pkgs/by-name/ca/capslock/package.nix b/pkgs/by-name/ca/capslock/package.nix
index b9290fed59f81..06746e1b654e1 100644
--- a/pkgs/by-name/ca/capslock/package.nix
+++ b/pkgs/by-name/ca/capslock/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "capslock";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "capslock";
     rev = "v${version}";
-    hash = "sha256-xeezGU9bI1MwonSGv+XimSfboMQr/1TPMTduDQ+MP1g=";
+    hash = "sha256-w2dB8DUCjbuzdEfX4nmaGbf9TZH58t+NZtyMoBHVG8I=";
   };
 
-  vendorHash = "sha256-Z4oj+af8jqqhgHQrTb+lkbIMMa/yOnvkMti/s+wiQsI=";
+  vendorHash = "sha256-ZRDoKB3/oxJhVFNWT71sKu8WbvIUyvXNKY1hD8ljo5U=";
 
   subPackages = [ "cmd/capslock" ];
 
diff --git a/pkgs/by-name/ca/cargo-shear/package.nix b/pkgs/by-name/ca/cargo-shear/package.nix
index 9ff861190d04e..8eaa8247089e0 100644
--- a/pkgs/by-name/ca/cargo-shear/package.nix
+++ b/pkgs/by-name/ca/cargo-shear/package.nix
@@ -6,7 +6,7 @@
   cargo-shear,
 }:
 let
-  version = "1.1.2";
+  version = "1.1.3";
 in
 rustPlatform.buildRustPackage {
   pname = "cargo-shear";
@@ -16,10 +16,10 @@ rustPlatform.buildRustPackage {
     owner = "Boshen";
     repo = "cargo-shear";
     rev = "v${version}";
-    hash = "sha256-JnQrQBx9VuXI0wj1mMLfl15lxC85f1kUBucgC3Q8F0c=";
+    hash = "sha256-xKO/57yvHSGzjWyDPu1DmI9eeDESyFgMschqK+OLUMs=";
   };
 
-  cargoHash = "sha256-iFcW9REkEolrDDbEwoepUSO79OgUdsLUhSkk12y4yxk=";
+  cargoHash = "sha256-lwPD46irkBg+Xg9/d07Q6BPk2rzKYkj3114EiMbbd+U=";
 
   # https://github.com/Boshen/cargo-shear/blob/a0535415a3ea94c86642f39f343f91af5cdc3829/src/lib.rs#L20-L23
   SHEAR_VERSION = version;
diff --git a/pkgs/by-name/cb/cbeams/package.nix b/pkgs/by-name/cb/cbeams/package.nix
new file mode 100644
index 0000000000000..c5278cdbf897f
--- /dev/null
+++ b/pkgs/by-name/cb/cbeams/package.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  python3Packages,
+  fetchPypi,
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "cbeams";
+  version = "1.0.3";
+  pyproject = true;
+
+  disabled = !python3Packages.isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-8Q2sWsAc39Mu34K1wWOKOJERKzBStE4GmtuzOs2T7Kk=";
+  };
+
+  build-system = [ python3Packages.setuptools ];
+
+  postPatch = ''
+    substituteInPlace cbeams/terminal.py \
+      --replace-fail "blessings" "blessed"
+  '';
+
+  pythonRemoveDeps = [ "blessings" ];
+
+  dependencies = with python3Packages; [
+    blessed
+    docopt
+  ];
+
+  doCheck = false; # no tests
+
+  meta = {
+    homepage = "https://github.com/tartley/cbeams";
+    description = "Command-line program to draw animated colored circles in the terminal";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      oxzi
+      sigmanificient
+    ];
+  };
+}
diff --git a/pkgs/by-name/co/compose2nix/package.nix b/pkgs/by-name/co/compose2nix/package.nix
index 87b875ab33f3d..af02f0d7c6dac 100644
--- a/pkgs/by-name/co/compose2nix/package.nix
+++ b/pkgs/by-name/co/compose2nix/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "compose2nix";
-  version = "0.2.2";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "aksiksi";
     repo = "compose2nix";
     rev = "v${version}";
-    hash = "sha256-2t4pXTzd5TDpAOzNS8MfnE9p8Rm55OPLaEpSPF4/UbE=";
+    hash = "sha256-qN7MFw6JKBbzwiqURkZ3or/8hT29mRpfITovSHdzDEY=";
   };
 
-  vendorHash = "sha256-SwJzyOXE23BLoJ+efFuSIhDTMjirEUmBhGGmgrnKhXw=";
+  vendorHash = "sha256-yGBdsej6DjRMWzS13WyqCLaY5M/N9BrMARAM3oHsc+s=";
 
   passthru.tests = {
     version = testers.testVersion {
diff --git a/pkgs/by-name/cr/crossplane-cli/package.nix b/pkgs/by-name/cr/crossplane-cli/package.nix
index 204d89407d6be..f9391a02f6205 100644
--- a/pkgs/by-name/cr/crossplane-cli/package.nix
+++ b/pkgs/by-name/cr/crossplane-cli/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "crossplane-cli";
-  version = "1.16.1";
+  version = "1.17.1";
 
   src = fetchFromGitHub {
     owner = "crossplane";
     repo = "crossplane";
     rev = "v${version}";
-    hash = "sha256-wRbQKpWEzos5fzzf1tUF2xQAlk8KIrhXJ/QZ9JKCa2M=";
+    hash = "sha256-zcORVw+6QUucxJkHx/QWOHn50fd4+Jp+ZtiGuwfEQ6I=";
   };
 
-  vendorHash = "sha256-XzIDLtEP4wrz23Cewz1QFuS62F/XQr7JNoaPAQfanEs=";
+  vendorHash = "sha256-de9xt3aFmGDddwMO2GgKKKmSfvsfnpit3wUrBme//fI=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/by-name/db/dbeaver-bin/package.nix b/pkgs/by-name/db/dbeaver-bin/package.nix
index 4eafe0b9ab98f..a8d3dbf0969fb 100644
--- a/pkgs/by-name/db/dbeaver-bin/package.nix
+++ b/pkgs/by-name/db/dbeaver-bin/package.nix
@@ -17,7 +17,7 @@
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "dbeaver-bin";
-  version = "24.2.0";
+  version = "24.2.1";
 
   src =
     let
@@ -30,10 +30,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
         aarch64-darwin = "macos-aarch64.dmg";
       };
       hash = selectSystem {
-        x86_64-linux = "sha256-N4r2immlH6B6rWluFX9abU5gnavPFY1ZoNtKpzCxwh4=";
-        aarch64-linux = "sha256-oRU+0iMLno1xIVI3NzeJfDrz5CuPlccICM/zpxRvV40=";
-        x86_64-darwin = "sha256-oUUof1HYeULP3qPr9mB69ZU83VuI4hJ09w03fjc+1Y4=";
-        aarch64-darwin = "sha256-JZfj0dgaqEndzyLgBwFrFebWxz7O/53qA9aTeOEWvLE=";
+        x86_64-linux = "sha256-U1KJxE1PzRRMvYw3jSYV2n6JuhzyL30le1HeY0kft1k=";
+        aarch64-linux = "sha256-AT/Xx+Hwu64sUfR1fS9nI+RTsIfdi9udF9TR9hbjnxg=";
+        x86_64-darwin = "sha256-hCIfBv6FaNoZiTvpx1UCdwBg15vq+ZsTG5upmbWXN0M=";
+        aarch64-darwin = "sha256-g0G6fqR75AoOEzlYr6MbTBL8aQ/hWQuFyw1G2w9/JlU=";
       };
     in
     fetchurl {
diff --git a/pkgs/by-name/de/dependency-track/0000-remove-frontend-download.patch b/pkgs/by-name/de/dependency-track/0000-remove-frontend-download.patch
new file mode 100644
index 0000000000000..6e68f1813c253
--- /dev/null
+++ b/pkgs/by-name/de/dependency-track/0000-remove-frontend-download.patch
@@ -0,0 +1,44 @@
+diff --git a/pom.xml b/pom.xml
+index 9988e765..906917c0 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -660,38 +660,13 @@
+                         <artifactId>maven-antrun-plugin</artifactId>
+                         <version>3.1.0</version>
+                         <executions>
+-                            <execution>
+-                                <id>frontend-download</id>
+-                                <phase>prepare-package</phase>
+-                                <configuration>
+-                                    <target>
+-                                        <get src="https://github.com/DependencyTrack/frontend/releases/download/${frontend.version}/frontend-dist.zip" dest="${project.build.directory}" verbose="true"/>
+-                                    </target>
+-                                </configuration>
+-                                <goals>
+-                                    <goal>run</goal>
+-                                </goals>
+-                            </execution>
+-                            <execution>
+-                                <id>frontend-extract</id>
+-                                <phase>prepare-package</phase>
+-                                <configuration>
+-                                    <target>
+-                                        <unzip src="${project.build.directory}/frontend-dist.zip" dest="${project.build.directory}/frontend">
+-                                        </unzip>
+-                                    </target>
+-                                </configuration>
+-                                <goals>
+-                                    <goal>run</goal>
+-                                </goals>
+-                            </execution>
+                             <execution>
+                                 <id>frontend-resource-deploy</id>
+                                 <phase>prepare-package</phase>
+                                 <configuration>
+                                     <target>
+                                         <copy todir="${project.build.directory}/${project.artifactId}">
+-                                            <fileset dir="${project.build.directory}/frontend/dist">
++                                            <fileset dir="${project.basedir}/frontend/dist">
+                                                 <include name="**/*"/>
+                                             </fileset>
+                                         </copy>
diff --git a/pkgs/by-name/de/dependency-track/0001-add-junixsocket.patch b/pkgs/by-name/de/dependency-track/0001-add-junixsocket.patch
new file mode 100644
index 0000000000000..c6b0f9e76c651
--- /dev/null
+++ b/pkgs/by-name/de/dependency-track/0001-add-junixsocket.patch
@@ -0,0 +1,17 @@
+diff --git a/pom.xml b/pom.xml
+index 9988e765..f69576b4 100644
+--- a/pom.xml
++++ b/pom.xml
+@@ -457,6 +457,12 @@
+             <version>${lib.testcontainers.version}</version>
+             <scope>test</scope>
+         </dependency>
++        <dependency>
++            <groupId>com.kohlschutter.junixsocket</groupId>
++            <artifactId>junixsocket-core</artifactId>
++            <version>2.10.0</version>
++            <type>pom</type>
++        </dependency>
+     </dependencies>
+ 
+     <build>
diff --git a/pkgs/by-name/de/dependency-track/package.nix b/pkgs/by-name/de/dependency-track/package.nix
new file mode 100644
index 0000000000000..64f45f5c06192
--- /dev/null
+++ b/pkgs/by-name/de/dependency-track/package.nix
@@ -0,0 +1,113 @@
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  jre_headless,
+  cyclonedx-cli,
+  makeWrapper,
+  maven,
+  nix-update-script,
+  nixosTests,
+}:
+let
+  version = "4.11.7";
+
+  frontend = buildNpmPackage {
+    pname = "dependency-track-frontend";
+    inherit version;
+
+    src = fetchFromGitHub {
+      owner = "DependencyTrack";
+      repo = "frontend";
+      rev = version;
+      hash = "sha256-hgBDzzG90gunnlZeektzdBIdatNjbkDVmNLbxjyxAXE=";
+    };
+
+    npmDepsHash = "sha256-veyt7fn4g/eh/+2CapQxlEssZP8cQXONpI6sSW299tk=";
+    forceGitDeps = true;
+    makeCacheWritable = true;
+
+    # The prepack script runs the build script, which we'd rather do in the build phase.
+    npmPackFlags = [ "--ignore-scripts" ];
+  };
+in
+
+maven.buildMavenPackage rec {
+  inherit version;
+  pname = "dependency-track";
+
+  src = fetchFromGitHub {
+    owner = "DependencyTrack";
+    repo = "dependency-track";
+    rev = version;
+    hash = "sha256-BMkn9WnUGs4RxH5I1QQ2UDrlo32JcbfjfFcOG5YogLI=";
+  };
+
+  patches = [
+    ./0000-remove-frontend-download.patch
+    ./0001-add-junixsocket.patch
+  ];
+
+  mvnJdk = jre_headless;
+  mvnHash = "sha256-c/JwBiKsXuWbCm1dTCrVc+V/1G7Eii1mUW8xDyewyLs=";
+  manualMvnArtifacts = [ "com.coderplus.maven.plugins:copy-rename-maven-plugin:1.0.1" ];
+  buildOffline = true;
+
+  mvnDepsParameters = lib.escapeShellArgs [
+    "-Dmaven.test.skip=true"
+    "-P enhance"
+    "-P embedded-jetty"
+  ];
+
+  mvnParameters = lib.escapeShellArgs [
+    "-Dmaven.test.skip=true"
+    "-P enhance"
+    "-P embedded-jetty"
+    "-P bundle-ui"
+    "-Dservices.bom.merge.skip=false"
+    "-Dlogback.configuration.file=${src}/src/main/docker/logback.xml"
+    "-Dcyclonedx-cli.path=${lib.getExe cyclonedx-cli}"
+  ];
+
+  preBuild = ''
+    mkdir -p frontend
+    cp -r ${frontend}/lib/node_modules/@dependencytrack/frontend/dist frontend/
+  '';
+
+  afterDepsSetup = ''
+    mvn cyclonedx:makeBom -Dmaven.repo.local=$mvnDeps/.m2 \
+      org.codehaus.mojo:exec-maven-plugin:exec@merge-services-bom
+  '';
+
+  doCheck = false;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 target/dependency-track-*.jar $out/share/dependency-track/dependency-track.jar
+    makeWrapper ${jre_headless}/bin/java $out/bin/dependency-track \
+      --add-flags "-jar $out/share/dependency-track/dependency-track.jar"
+
+    runHook postInstall
+  '';
+
+  passthru = {
+    # passthru for nix-update
+    inherit (frontend) npmDeps;
+    tests = {
+      inherit (nixosTests) dependency-track;
+    };
+    updateScript = nix-update-script { };
+  };
+
+  meta = {
+    description = "Intelligent Component Analysis platform that allows organizations to identify and reduce risk in the software supply chain";
+    homepage = "https://github.com/DependencyTrack/dependency-track";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.cyberus.members;
+    mainProgram = "dependency-track";
+    inherit (jre_headless.meta) platforms;
+  };
+}
diff --git a/pkgs/by-name/do/dopamine/package.nix b/pkgs/by-name/do/dopamine/package.nix
index 0b05839f1976d..10a45cbb2b421 100644
--- a/pkgs/by-name/do/dopamine/package.nix
+++ b/pkgs/by-name/do/dopamine/package.nix
@@ -6,11 +6,11 @@
 }:
 appimageTools.wrapType2 rec {
   pname = "dopamine";
-  version = "3.0.0-preview.33";
+  version = "3.0.0-preview.34";
 
   src = fetchurl {
     url = "https://github.com/digimezzo/dopamine/releases/download/v${version}/Dopamine-${version}.AppImage";
-    hash = "sha256-W8XkXnsP0AqYV0wznKe1dbPm2VuhoZWl03G7hib/uxE=";
+    hash = "sha256-K4dDYYzo2oMAZvlb25cQuh1G187efSyJfAA6jdCKaT0=";
   };
 
   extraInstallCommands =
diff --git a/pkgs/by-name/do/dotenvx/package.nix b/pkgs/by-name/do/dotenvx/package.nix
index ca2c269d728b3..f43fd1cf4266e 100644
--- a/pkgs/by-name/do/dotenvx/package.nix
+++ b/pkgs/by-name/do/dotenvx/package.nix
@@ -8,16 +8,16 @@
 
 buildNpmPackage rec {
   pname = "dotenvx";
-  version = "1.14.0";
+  version = "1.14.1";
 
   src = fetchFromGitHub {
     owner = "dotenvx";
     repo = "dotenvx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UVev21LZ2y0C8BCSm6I8BTQziSDZUXP3A/ThOpKtsrQ=";
+    hash = "sha256-PdX8picIFqeZZCMP0ABoWpySERSy0leAvp0XyjTW1Rc=";
   };
 
-  npmDepsHash = "sha256-ehWHIKYkSAkdTLGpBOU7lJoWNa5uv9Zy0+2qwnCv0m8=";
+  npmDepsHash = "sha256-lo+R0YP50FIN+syj6VqCeEBFr7EZ6NSVXAhafG5JsI0=";
 
   dontNpmBuild = true;
 
diff --git a/pkgs/by-name/do/doublecmd/package.nix b/pkgs/by-name/do/doublecmd/package.nix
index fa15709d3c0ae..766ce66b1dbc5 100644
--- a/pkgs/by-name/do/doublecmd/package.nix
+++ b/pkgs/by-name/do/doublecmd/package.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "doublecmd";
-  version = "1.1.17";
+  version = "1.1.18";
 
   src = fetchFromGitHub {
     owner = "doublecmd";
     repo = "doublecmd";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-TKlhPvfnq62XWTo2twKO8hEjBZW0mWkKruXWhwirtR4=";
+    hash = "sha256-1lmDmtvkLMLxvF6ZTOShr5fsYN++Jm6+ngzgFyNjFn4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/du/dumbpipe/package.nix b/pkgs/by-name/du/dumbpipe/package.nix
index bf2c3632b21c0..9dc1e12cbac90 100644
--- a/pkgs/by-name/du/dumbpipe/package.nix
+++ b/pkgs/by-name/du/dumbpipe/package.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dumbpipe";
-  version = "0.16.0";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "n0-computer";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-gv6V5I9LPNfXyuopo8BaYRELxzTfNhTG1EBWoZ/4cpc=";
+    hash = "sha256-7OHghotSibkGRrcsh7CqZBp94FY6RKZvcn8QW+dTH1I=";
   };
 
-  cargoHash = "sha256-t6w2XrMSm5g6dmYQ5gX+w8M3pPzWDytGY9uSuXYgnDA=";
+  cargoHash = "sha256-rlhfGw/b0HnV1Xl9VWIqEuyM9pq29O6bpaawk2hnG+o=";
 
   buildInputs = lib.optionals stdenv.isDarwin (
     with darwin.apple_sdk.frameworks; [
diff --git a/pkgs/applications/emulators/dynamips/default.nix b/pkgs/by-name/dy/dynamips/package.nix
index 1abc0dcf52365..77f662acb6e11 100644
--- a/pkgs/applications/emulators/dynamips/default.nix
+++ b/pkgs/by-name/dy/dynamips/package.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, libelf
-, libpcap
-, nix-update-script
+{
+  lib,
+  stdenv,
+  cmake,
+  fetchFromGitHub,
+  libelf,
+  libpcap,
+  nix-update-script,
 }:
 
 stdenv.mkDerivation rec {
@@ -13,30 +14,40 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "GNS3";
-    repo = pname;
-    rev = "v${version}";
+    repo = "dynamips";
+    rev = "refs/tags/v${version}";
     hash = "sha256-+h+WsZ/QrDd+dNrR6CJb2uMG+vbUvK8GTxFJZOxknL0=";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ libelf libpcap ];
 
-  cmakeFlags = [ "-DDYNAMIPS_CODE=stable" ];
+  buildInputs = [
+    libelf
+    libpcap
+  ];
+
+  cmakeFlags = [
+    (lib.cmakeFeature "DYNAMIPS_CODE" "stable")
+  ];
 
   passthru = {
     updateScript = nix-update-script { };
   };
 
   meta = with lib; {
-    inherit (src.meta) homepage;
     description = "Cisco router emulator";
     longDescription = ''
       Dynamips is an emulator computer program that was written to emulate Cisco
       routers.
     '';
+    homepage = "https://github.com/GNS3/dynamips";
+    changelog = "https://github.com/GNS3/dynamips/releases/tag/v${version}";
     license = licenses.gpl2Plus;
     mainProgram = "dynamips";
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [
+      primeos
+      anthonyroussel
+    ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/by-name/ea/easytier/package.nix b/pkgs/by-name/ea/easytier/package.nix
new file mode 100644
index 0000000000000..9928fd07b0db4
--- /dev/null
+++ b/pkgs/by-name/ea/easytier/package.nix
@@ -0,0 +1,51 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  rustPlatform,
+  protobuf,
+  nix-update-script,
+  darwin,
+  withQuic ? false, # with QUIC protocol support
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "easytier";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "EasyTier";
+    repo = "EasyTier";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-7T6xdJrVTgg7rSTC2PaVTsBTgi14qJzaR6M8tRUL8OQ=";
+  };
+
+  cargoHash = "sha256-9wAGUVYKz7+Q8y+dmay8pEZnv7PikzuAoas/h5T3sLE=";
+
+  nativeBuildInputs = [ protobuf ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+  ];
+
+  buildNoDefaultFeatures = stdenv.isMips;
+  buildFeatures = lib.optional stdenv.isMips "mips" ++ lib.optional withQuic "quic";
+
+  doCheck = false; # tests failed due to heavy rely on network
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/EasyTier/EasyTier";
+    changelog = "https://github.com/EasyTier/EasyTier/releases/tag/v${version}";
+    description = "Simple, decentralized mesh VPN with WireGuard support";
+    longDescription = ''
+      EasyTier is a simple, safe and decentralized VPN networking solution implemented
+      with the Rust language and Tokio framework.
+    '';
+    mainProgram = "easytier-core";
+    license = lib.licenses.asl20;
+    platforms = with lib.platforms; unix ++ windows;
+    maintainers = with lib.maintainers; [ ltrump ];
+  };
+}
diff --git a/pkgs/by-name/fa/fastfetch/package.nix b/pkgs/by-name/fa/fastfetch/package.nix
index d240ac5abd92d..05723d9fa4a6a 100644
--- a/pkgs/by-name/fa/fastfetch/package.nix
+++ b/pkgs/by-name/fa/fastfetch/package.nix
@@ -47,13 +47,13 @@ let
 in
 stdenv'.mkDerivation (finalAttrs: {
   pname = "fastfetch";
-  version = "2.24.0";
+  version = "2.25.0";
 
   src = fetchFromGitHub {
     owner = "fastfetch-cli";
     repo = "fastfetch";
     rev = finalAttrs.version;
-    hash = "sha256-MnN+XZTiIjXGVM6rF5J7sDTndLijGCdgsBF8oYzRHqY=";
+    hash = "sha256-I8In6JK9XWM29QdAj3wU2WHn/RsrDJo7s5S7R79HV8g=";
   };
 
   outputs = [
diff --git a/pkgs/by-name/fi/firefly-iii-data-importer/package.nix b/pkgs/by-name/fi/firefly-iii-data-importer/package.nix
index a4614f5ae27ba..106069c1e7ff3 100644
--- a/pkgs/by-name/fi/firefly-iii-data-importer/package.nix
+++ b/pkgs/by-name/fi/firefly-iii-data-importer/package.nix
@@ -13,13 +13,13 @@
 
 let
   pname = "firefly-iii-data-importer";
-  version = "1.5.5";
+  version = "1.5.6";
 
   src = fetchFromGitHub {
     owner = "firefly-iii";
     repo = "data-importer";
     rev = "v${version}";
-    hash = "sha256-nAeLXxUwaw/wHYh3NywI4/mFi82i/2b3McFfCFGAIjE=";
+    hash = "sha256-IIlcOGulcBJsYz7Yx3YWV/c6yvb8+82AvFghQ05dUcI=";
   };
 in
 
@@ -42,12 +42,12 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   composerStrictValidation = true;
   strictDeps = true;
 
-  vendorHash = "sha256-yLu/FMKn/uUy5g6td3mfPAb9ptjJne4vd478fjaS9U0=";
+  vendorHash = "sha256-j1rCcHt5E1aFwgnOKZZccaGPs5JfpBtN05edeSvId94=";
 
   npmDeps = fetchNpmDeps {
     inherit src;
     name = "${pname}-npm-deps";
-    hash = "sha256-35mS+0Ea69CAwV9liTU3lcKp3ww3qLbTRWlF0AQNx5w=";
+    hash = "sha256-mdBQubfV5Bgk9NxsWokTS6zA4r3gggWVSwhrfKPUi5s=";
   };
 
   composerRepository = php83.mkComposerRepository {
diff --git a/pkgs/by-name/fi/fittrackee/package.nix b/pkgs/by-name/fi/fittrackee/package.nix
index b69d3b428ade6..467e65f044340 100644
--- a/pkgs/by-name/fi/fittrackee/package.nix
+++ b/pkgs/by-name/fi/fittrackee/package.nix
@@ -2,6 +2,7 @@
   fetchFromGitHub,
   fetchPypi,
   lib,
+  stdenv,
   postgresql,
   postgresqlTestHook,
   python3,
@@ -27,14 +28,14 @@ let
 in
 python.pkgs.buildPythonApplication rec {
   pname = "fittrackee";
-  version = "0.8.8";
+  version = "0.8.9";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SamR1";
     repo = "FitTrackee";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IO6M+HXAR3Gn0/71KwkaQr6sB0eCQzmnqHYgO+mzIZM=";
+    hash = "sha256-raN6Ef/Z/JbdJDMKBIaBL8nmvFwvuZFX4rfC0ZgWgKI=";
   };
 
   build-system = [
@@ -47,6 +48,8 @@ python.pkgs.buildPythonApplication rec {
     "gunicorn"
     "pyjwt"
     "pyopenssl"
+    "pytz"
+    "sqlalchemy"
   ];
 
   dependencies =
@@ -95,8 +98,10 @@ python.pkgs.buildPythonApplication rec {
     export DATABASE_TEST_URL=postgresql://$PGUSER/$PGDATABASE?host=$PGHOST
   '';
 
+  doCheck = !stdenv.isDarwin; # tests are a bit flaky on darwin
+
   preCheck = ''
-    export TMP=$(mktemp -d)
+    export TMP=$TMPDIR
   '';
 
   meta = {
@@ -104,7 +109,6 @@ python.pkgs.buildPythonApplication rec {
     homepage = "https://github.com/SamR1/FitTrackee";
     changelog = "https://github.com/SamR1/FitTrackee/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.agpl3Only;
-    platforms = lib.platforms.linux;
     maintainers = with lib.maintainers; [ traxys ];
   };
 }
diff --git a/pkgs/by-name/fl/flexget/package.nix b/pkgs/by-name/fl/flexget/package.nix
index 3080bd4237e99..343fef81b3853 100644
--- a/pkgs/by-name/fl/flexget/package.nix
+++ b/pkgs/by-name/fl/flexget/package.nix
@@ -5,7 +5,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.11.45";
+  version = "3.11.46";
   pyproject = true;
 
   # Fetch from GitHub in order to use `requirements.in`
@@ -13,7 +13,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "Flexget";
     repo = "Flexget";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QtxtkXKBYf46cS+TAxJGQNQktHpLgGDIf7Czfznzr1s=";
+    hash = "sha256-zaysfvfsuA4XTj46vN1FHggqEaL8rfHL0UJVILhrwjg=";
   };
 
   # relax dep constrains, keep environment constraints
diff --git a/pkgs/by-name/gi/gitlab-ci-ls/package.nix b/pkgs/by-name/gi/gitlab-ci-ls/package.nix
index 98c7c3949924d..7468842c6468c 100644
--- a/pkgs/by-name/gi/gitlab-ci-ls/package.nix
+++ b/pkgs/by-name/gi/gitlab-ci-ls/package.nix
@@ -10,15 +10,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitlab-ci-ls";
-  version = "0.21.1";
+  version = "0.21.2";
   src = fetchFromGitHub {
     owner = "alesbrelih";
     repo = "gitlab-ci-ls";
     rev = "${version}";
-    hash = "sha256-0aVwI+E/UmYDSQDArQZsaNc0jDXXOG/zDr/5o0I1aLw=";
+    hash = "sha256-wkL6ko43oWrpyscEpCMuoFamDMJk9+xI3qYOs+DgI8g=";
   };
 
-  cargoHash = "sha256-rZXIc9O+pIdR/M8kV7judiHTCwnKcX+7P1LWEqZLeD8=";
+  cargoHash = "sha256-H/p29QbCaZRa81g+5eUsG47tUJPVgB1J9zZYY5/n5Vk=";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs =
diff --git a/pkgs/by-name/go/google-chrome/package.nix b/pkgs/by-name/go/google-chrome/package.nix
index 272331e5ccc7a..d5c54c6400b53 100644
--- a/pkgs/by-name/go/google-chrome/package.nix
+++ b/pkgs/by-name/go/google-chrome/package.nix
@@ -258,11 +258,11 @@ let
 
   darwin = stdenvNoCC.mkDerivation (finalAttrs: {
     inherit pname meta passthru;
-    version = "128.0.6613.138";
+    version = "129.0.6668.59";
 
     src = fetchurl {
-      url = "http://dl.google.com/release2/chrome/gtm24cqmnwgcp7dtscvlmsbrwa_128.0.6613.138/GoogleChrome-128.0.6613.138.dmg";
-      hash = "sha256-wd6n3AeKxKdz+5X9XxTi1QHzmByzKRgIWcc3iBHhtZs=";
+      url = "http://dl.google.com/release2/chrome/acinjqjzbtmzhvrebvzymzvzfaoq_129.0.6668.59/GoogleChrome-129.0.6668.59.dmg";
+      hash = "sha256-02J3TpcAsCvsB71C8/bfgIxiqcGIxjKiTWR32On66+g=";
     };
 
     dontPatch = true;
diff --git a/pkgs/by-name/go/google-chrome/update.sh b/pkgs/by-name/go/google-chrome/update.sh
index 0e63c9bb60908..cf5113eac6a80 100755
--- a/pkgs/by-name/go/google-chrome/update.sh
+++ b/pkgs/by-name/go/google-chrome/update.sh
@@ -10,7 +10,7 @@ get_version_info() {
     local start_pattern="$2"
     local end_pattern="$3"
 
-    local url="https://versionhistory.googleapis.com/v1/chrome/platforms/${platform}/channels/stable/versions/all/releases"
+    local url="https://versionhistory.googleapis.com/v1/chrome/platforms/${platform}/channels/stable/versions/all/releases?filter=endtime=none,fraction>=0.5&order_by=version%20desc"
     local response
     local version
     local current_version
diff --git a/pkgs/by-name/ha/halloy/Cargo.lock b/pkgs/by-name/ha/halloy/Cargo.lock
index b8f19e6443391..6bbad68198497 100644
--- a/pkgs/by-name/ha/halloy/Cargo.lock
+++ b/pkgs/by-name/ha/halloy/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "ab_glyph"
-version = "0.2.26"
+version = "0.2.28"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e53b0a3d5760cd2ba9b787ae0c6440ad18ee294ff71b05e3381c900a7d16cfd"
+checksum = "79faae4620f45232f599d9bc7b290f88247a0834162c4495ab2f02d60004adfb"
 dependencies = [
  "ab_glyph_rasterizer",
  "owned_ttf_parser",
@@ -79,20 +79,41 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5c6cb57a04249c6480766f7f7cef5467412af1490f8d1e243141daddada3264f"
 
 [[package]]
+name = "alsa"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "37fe60779335388a88c01ac6c3be40304d1e349de3ada3b15f7808bb90fa9dce"
+dependencies = [
+ "alsa-sys",
+ "bitflags 2.6.0",
+ "libc",
+]
+
+[[package]]
+name = "alsa-sys"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527"
+dependencies = [
+ "libc",
+ "pkg-config",
+]
+
+[[package]]
 name = "android-activity"
 version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ef6978589202a00cd7e118380c448a08b6ed394c3a8df3a430d0898e3a42d046"
 dependencies = [
  "android-properties",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cc",
  "cesu8",
  "jni",
  "jni-sys",
  "libc",
  "log",
- "ndk",
+ "ndk 0.9.0",
  "ndk-context",
  "ndk-sys 0.6.0+11769913",
  "num_enum",
@@ -137,9 +158,9 @@ dependencies = [
 
 [[package]]
 name = "arrayref"
-version = "0.3.7"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545"
+checksum = "9d151e35f61089500b617991b791fc8bfd237ae50cd5950803758a179b41e67a"
 
 [[package]]
 name = "arrayvec"
@@ -205,9 +226,9 @@ dependencies = [
 
 [[package]]
 name = "async-executor"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c8828ec6e544c02b0d6691d21ed9f9218d0384a82542855073c2a3f58304aaf0"
+checksum = "d7ebdfa2ebdab6b1760375fa7d6f382b9f486eac35fc994625a00e89280bdbb7"
 dependencies = [
  "async-task",
  "concurrent-queue",
@@ -241,9 +262,9 @@ dependencies = [
 
 [[package]]
 name = "async-io"
-version = "2.3.3"
+version = "2.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d6baa8f0178795da0e71bc42c9e5d13261aac7ee549853162e66a241ba17964"
+checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
 dependencies = [
  "async-lock",
  "cfg-if",
@@ -255,7 +276,7 @@ dependencies = [
  "rustix",
  "slab",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -271,9 +292,9 @@ dependencies = [
 
 [[package]]
 name = "async-process"
-version = "2.2.3"
+version = "2.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f7eda79bbd84e29c2b308d1dc099d7de8dcc7035e48f4bf5dc4a531a44ff5e2a"
+checksum = "a8a07789659a4d385b79b18b9127fc27e1a59e1e89117c78c5ea3b806f016374"
 dependencies = [
  "async-channel",
  "async-io",
@@ -286,7 +307,7 @@ dependencies = [
  "futures-lite",
  "rustix",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -297,14 +318,14 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
 name = "async-signal"
-version = "0.2.8"
+version = "0.2.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "794f185324c2f00e771cd9f1ae8b5ac68be2ca7abb129a87afd6e86d228bc54d"
+checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
 dependencies = [
  "async-io",
  "async-lock",
@@ -315,7 +336,7 @@ dependencies = [
  "rustix",
  "signal-hook-registry",
  "slab",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -326,13 +347,13 @@ checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
 
 [[package]]
 name = "async-trait"
-version = "0.1.80"
+version = "0.1.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6fa2087f2753a7da8cc1c0dbfcf89579dd57458e36769de5ac750b4671737ca"
+checksum = "6e0c28dcc82d7c8ead5cb13beb15405b57b8546e93215673ff8ca0349a028107"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -381,6 +402,26 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
+name = "bindgen"
+version = "0.69.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0"
+dependencies = [
+ "bitflags 2.6.0",
+ "cexpr",
+ "clang-sys",
+ "itertools 0.12.1",
+ "lazy_static",
+ "lazycell",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "rustc-hash 1.1.0",
+ "shlex",
+ "syn 2.0.74",
+]
+
+[[package]]
 name = "bit-set"
 version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -409,9 +450,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
 
 [[package]]
 name = "bitflags"
-version = "2.5.0"
+version = "2.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
 
 [[package]]
 name = "block"
@@ -464,22 +505,22 @@ checksum = "64fa3c856b712db6612c019f14756e64e4bcea13337a6b33b696333a9eaa2d06"
 
 [[package]]
 name = "bytemuck"
-version = "1.16.1"
+version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b236fc92302c97ed75b38da1f4917b5cdda4984745740f153a5d3059e48d725e"
+checksum = "6fd4c6dcc3b0aea2f5c0b4b82c2b15fe39ddbc76041a310848f4706edf76bb31"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.7.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1ee891b04274a59bd38b412188e24b849617b2e45a0fd8d057deb63e7403761b"
+checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -490,9 +531,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
 
 [[package]]
 name = "bytes"
-version = "1.6.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "514de17de45fdb8dc022b1a7975556c53c86f9f0aa5f534b98977b171857c2c9"
+checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
 
 [[package]]
 name = "bytesize"
@@ -506,7 +547,21 @@ version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fba7adb4dd5aa98e5553510223000e7148f621165ec5f9acd7113f6ca4995298"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
+ "log",
+ "polling",
+ "rustix",
+ "slab",
+ "thiserror",
+]
+
+[[package]]
+name = "calloop"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b99da2f8558ca23c71f4fd15dc57c906239752dd27ff3c00a1d56b685b7cbfec"
+dependencies = [
+ "bitflags 2.6.0",
  "log",
  "polling",
  "rustix",
@@ -520,7 +575,19 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0f0ea9b9476c7fad82841a8dbb380e2eae480c21910feba80725b46931ed8f02"
 dependencies = [
- "calloop",
+ "calloop 0.12.4",
+ "rustix",
+ "wayland-backend",
+ "wayland-client",
+]
+
+[[package]]
+name = "calloop-wayland-source"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95a66a987056935f7efce4ab5668920b5d0dac4a7c99991a67395f13702ddd20"
+dependencies = [
+ "calloop 0.13.0",
  "rustix",
  "wayland-backend",
  "wayland-client",
@@ -528,13 +595,13 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.99"
+version = "1.1.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96c51067fd44124faa7f870b4b1c969379ad32b2ba805aa959430ceaa384f695"
+checksum = "72db2f7947ecee9b03b510377e8bb9077afa27176fdbff55c51027e976fdcc48"
 dependencies = [
  "jobserver",
  "libc",
- "once_cell",
+ "shlex",
 ]
 
 [[package]]
@@ -544,6 +611,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c"
 
 [[package]]
+name = "cexpr"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766"
+dependencies = [
+ "nom",
+]
+
+[[package]]
 name = "cfg-if"
 version = "1.0.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -573,14 +649,31 @@ dependencies = [
  "num-traits",
  "serde",
  "wasm-bindgen",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "clang-sys"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4"
+dependencies = [
+ "glob",
+ "libc",
+ "libloading 0.8.5",
 ]
 
 [[package]]
+name = "claxon"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bfbf56724aa9eca8afa4fcfadeb479e722935bb2a0900c2d37e0cc477af0688"
+
+[[package]]
 name = "clipboard-win"
-version = "5.3.1"
+version = "5.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad"
+checksum = "15efe7a882b08f34e38556b14f2fb3daa98769d06c7f0c1b076dfd0d983bc892"
 dependencies = [
  "error-code",
 ]
@@ -682,6 +775,26 @@ dependencies = [
 ]
 
 [[package]]
+name = "const_format"
+version = "0.2.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3a214c7af3d04997541b18d432afaff4c455e79e2029079647e72fc2bd27673"
+dependencies = [
+ "const_format_proc_macros",
+]
+
+[[package]]
+name = "const_format_proc_macros"
+version = "0.2.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7f6ff08fd20f4f299298a28e2dfa8a8ba1036e6cd2460ac1de7b425d76f2500"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
 name = "core-foundation"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -693,9 +806,9 @@ dependencies = [
 
 [[package]]
 name = "core-foundation-sys"
-version = "0.8.6"
+version = "0.8.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
 
 [[package]]
 name = "core-graphics"
@@ -722,20 +835,42 @@ dependencies = [
 ]
 
 [[package]]
+name = "coreaudio-rs"
+version = "0.11.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "321077172d79c662f64f5071a03120748d5bb652f5231570141be24cfcd2bace"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation-sys",
+ "coreaudio-sys",
+]
+
+[[package]]
+name = "coreaudio-sys"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f01585027057ff5f0a5bf276174ae4c1594a2c5bde93d5f46a016d76270f5a9"
+dependencies = [
+ "bindgen",
+]
+
+[[package]]
 name = "cosmic-text"
-version = "0.10.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75acbfb314aeb4f5210d379af45ed1ec2c98c7f1790bf57b8a4c562ac0c51b71"
+checksum = "59fd57d82eb4bfe7ffa9b1cec0c05e2fd378155b47f255a67983cb4afe0e80c2"
 dependencies = [
+ "bitflags 2.6.0",
  "fontdb",
- "libm",
  "log",
  "rangemap",
- "rustc-hash",
+ "rayon",
+ "rustc-hash 1.1.0",
  "rustybuzz",
  "self_cell",
  "swash",
  "sys-locale",
+ "ttf-parser 0.21.1",
  "unicode-bidi",
  "unicode-linebreak",
  "unicode-script",
@@ -743,10 +878,33 @@ dependencies = [
 ]
 
 [[package]]
+name = "cpal"
+version = "0.15.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "873dab07c8f743075e57f524c583985fbaf745602acbe916a01539364369a779"
+dependencies = [
+ "alsa",
+ "core-foundation-sys",
+ "coreaudio-rs",
+ "dasp_sample",
+ "jni",
+ "js-sys",
+ "libc",
+ "mach2",
+ "ndk 0.8.0",
+ "ndk-context",
+ "oboe",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "windows 0.54.0",
+]
+
+[[package]]
 name = "cpufeatures"
-version = "0.2.12"
+version = "0.2.13"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504"
+checksum = "51e852e6dc9a5bed1fae92dd2375037bf2b768725bf3be87811edee3249d09ad"
 dependencies = [
  "libc",
 ]
@@ -819,8 +977,8 @@ version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3e3d747f100290a1ca24b752186f61f6637e1deffe3bf6320de6fcb29510a307"
 dependencies = [
- "bitflags 2.5.0",
- "libloading 0.8.3",
+ "bitflags 2.6.0",
+ "libloading 0.8.5",
  "winapi",
 ]
 
@@ -841,20 +999,29 @@ dependencies = [
 ]
 
 [[package]]
+name = "dasp_sample"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c87e182de0887fd5361989c677c4e8f5000cd9491d6d563161a8f3a5519fc7f"
+
+[[package]]
 name = "data"
 version = "0.1.0"
 dependencies = [
  "base64 0.21.7",
  "bytes",
  "chrono",
+ "const_format",
  "dirs-next",
  "flate2",
  "futures",
  "hex",
  "iced_core",
  "irc",
- "itertools",
+ "itertools 0.12.1",
  "log",
+ "nom",
+ "once_cell",
  "palette",
  "rand",
  "rand_chacha",
@@ -870,6 +1037,7 @@ dependencies = [
  "tokio-stream",
  "toml",
  "url",
+ "walkdir",
  "xdg",
 ]
 
@@ -957,7 +1125,7 @@ version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "330c60081dcc4c72131f8eb70510f1ac07223e5d4163db481a04a0befcffa412"
 dependencies = [
- "libloading 0.8.3",
+ "libloading 0.8.5",
 ]
 
 [[package]]
@@ -983,7 +1151,7 @@ version = "0.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98888c4bbd601524c11a7ed63f814b8825f420514f78e96f752c437ae9cbb5d1"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "bytemuck",
  "drm-ffi",
  "drm-fourcc",
@@ -1013,20 +1181,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fd39dde40b6e196c2e8763f23d119ddb1a8714534bf7d77fa97a65b0feda3986"
 dependencies = [
  "libc",
- "linux-raw-sys 0.6.4",
+ "linux-raw-sys 0.6.5",
 ]
 
 [[package]]
 name = "either"
-version = "1.12.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3dca9240753cf90908d7e4aac30f630662b02aebaa1b58a3cadabdb23385b58b"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
 
 [[package]]
 name = "embed-resource"
-version = "2.4.2"
+version = "2.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6985554d0688b687c5cb73898a34fbe3ad6c24c58c238a4d91d5e840670ee9d"
+checksum = "4edcacde9351c33139a41e3c97eb2334351a81a2791bebb0b243df837128f602"
 dependencies = [
  "cc",
  "memchr",
@@ -1069,7 +1237,7 @@ checksum = "de0d48a183585823424a4ce1aa132d174a6a81bd540895822eb4c8373a8e49e8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -1196,9 +1364,9 @@ dependencies = [
 
 [[package]]
 name = "flate2"
-version = "1.0.30"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f54427cfd1c7829e2a139fcefea601bf088ebca651d2bf53ebc600eac295dae"
+checksum = "7f211bbe8e69bbd0cfdea405084f128ae8b4aaa6b0b522fc8f2b009084797920"
 dependencies = [
  "crc32fast",
  "miniz_oxide",
@@ -1221,34 +1389,34 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
 
 [[package]]
 name = "font-types"
-version = "0.5.5"
+version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34fd7136aca682873d859ef34494ab1a7d3f57ecd485ed40eb6437ee8c85aa29"
+checksum = "8f0189ccb084f77c5523e08288d418cbaa09c451a08515678a0aa265df9a8b60"
 dependencies = [
  "bytemuck",
 ]
 
 [[package]]
 name = "fontconfig-parser"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a595cb550439a117696039dfc69830492058211b771a2a165379f2a1a53d84d"
+checksum = "c1fcfcd44ca6e90c921fee9fa665d530b21ef1327a4c1a6c5250ea44b776ada7"
 dependencies = [
  "roxmltree",
 ]
 
 [[package]]
 name = "fontdb"
-version = "0.15.0"
+version = "0.16.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "020e203f177c0fb250fb19455a252e838d2bbbce1f80f25ecc42402aafa8cd38"
+checksum = "b0299020c3ef3f60f526a4f64ab4a3d4ce116b1acbf24cdd22da0068e5d81dc3"
 dependencies = [
  "fontconfig-parser",
  "log",
- "memmap2 0.8.0",
+ "memmap2",
  "slotmap",
  "tinyvec",
- "ttf-parser 0.19.2",
+ "ttf-parser 0.20.0",
 ]
 
 [[package]]
@@ -1278,7 +1446,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -1372,7 +1540,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -1470,6 +1638,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "151665d9be52f9bb40fc7966565d39666f2d1e69233571b71b87791c7e0528b3"
 
 [[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
 name = "glow"
 version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1493,12 +1667,12 @@ dependencies = [
 [[package]]
 name = "glyphon"
 version = "0.5.0"
-source = "git+https://github.com/hecrj/glyphon.git?rev=f07e7bab705e69d39a5e6e52c73039a93c4552f8#f07e7bab705e69d39a5e6e52c73039a93c4552f8"
+source = "git+https://github.com/hecrj/glyphon.git?rev=feef9f5630c2adb3528937e55f7bfad2da561a65#feef9f5630c2adb3528937e55f7bfad2da561a65"
 dependencies = [
  "cosmic-text",
  "etagere",
  "lru",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "wgpu",
 ]
 
@@ -1508,7 +1682,7 @@ version = "0.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fbcd2dba93594b227a1f57ee09b8b9da8892c34d55aa332e034a228d0fe6a171"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "gpu-alloc-types",
 ]
 
@@ -1518,7 +1692,7 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "98ff03b468aa837d70984d55f5d3f846f6ec31fe34bbb97c4f85219caeee1ca4"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -1540,7 +1714,7 @@ version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "cc11df1ace8e7e564511f53af41f3e42ddc95b56fd07b3f4445d2a6048bc682c"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "gpu-descriptor-types",
  "hashbrown 0.14.5",
 ]
@@ -1551,7 +1725,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6bf0b36e6f090b7e1d8a4b49c0cb81c1f8376f72198c65dd3ad9ff3556b8b78c"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -1606,17 +1780,20 @@ dependencies = [
  "iced",
  "image",
  "ipc",
+ "itertools 0.13.0",
  "log",
  "notify-rust",
  "once_cell",
  "open",
  "palette",
  "rfd",
+ "rodio",
  "thiserror",
  "timeago",
  "tokio",
  "unicode-segmentation",
  "uuid",
+ "windows_exe_info",
 ]
 
 [[package]]
@@ -1644,10 +1821,10 @@ version = "0.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "af2a7e73e1f34c48da31fb668a907f250794837e08faa144fd24f0b8b741e890"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "com",
  "libc",
- "libloading 0.8.3",
+ "libloading 0.8.5",
  "thiserror",
  "widestring",
  "winapi",
@@ -1684,6 +1861,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
 
 [[package]]
+name = "hound"
+version = "3.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f"
+
+[[package]]
 name = "http"
 version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1696,9 +1879,9 @@ dependencies = [
 
 [[package]]
 name = "http-body"
-version = "1.0.0"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643"
+checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184"
 dependencies = [
  "bytes",
  "http",
@@ -1725,9 +1908,9 @@ checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
 
 [[package]]
 name = "hyper"
-version = "1.3.1"
+version = "1.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fe575dd17d0862a9a33781c8c4696a55c320909004a67a00fb286ba8b1bc496d"
+checksum = "50dfd22e0e76d0f662d429a5f80fcaf3855009297eab6a0a9f8543834744ba05"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1778,9 +1961,9 @@ dependencies = [
 
 [[package]]
 name = "hyper-util"
-version = "0.1.5"
+version = "0.1.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b875924a60b96e5d7b9ae7b066540b1dd1cbd90d1828f54c92e02a283351c56"
+checksum = "cde7055719c54e36e95e8719f95883f22072a48ede39db7fc17a4e1d5281e9b9"
 dependencies = [
  "bytes",
  "futures-channel",
@@ -1822,7 +2005,7 @@ dependencies = [
 [[package]]
 name = "iced"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "iced_core",
  "iced_futures",
@@ -1836,9 +2019,9 @@ dependencies = [
 [[package]]
 name = "iced_core"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "bytes",
  "dark-light",
  "glam",
@@ -1846,7 +2029,7 @@ dependencies = [
  "num-traits",
  "once_cell",
  "palette",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "smol_str",
  "thiserror",
  "web-time",
@@ -1855,12 +2038,12 @@ dependencies = [
 [[package]]
 name = "iced_futures"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "futures",
  "iced_core",
  "log",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "tokio",
  "wasm-bindgen-futures",
  "wasm-timer",
@@ -1869,9 +2052,9 @@ dependencies = [
 [[package]]
 name = "iced_graphics"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "bytemuck",
  "cosmic-text",
  "half",
@@ -1882,7 +2065,7 @@ dependencies = [
  "log",
  "once_cell",
  "raw-window-handle",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "thiserror",
  "unicode-segmentation",
 ]
@@ -1890,7 +2073,7 @@ dependencies = [
 [[package]]
 name = "iced_renderer"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "iced_graphics",
  "iced_tiny_skia",
@@ -1902,7 +2085,7 @@ dependencies = [
 [[package]]
 name = "iced_runtime"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "bytes",
  "iced_core",
@@ -1914,14 +2097,14 @@ dependencies = [
 [[package]]
 name = "iced_tiny_skia"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "bytemuck",
  "cosmic-text",
  "iced_graphics",
  "kurbo",
  "log",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "softbuffer",
  "tiny-skia",
 ]
@@ -1929,9 +2112,9 @@ dependencies = [
 [[package]]
 name = "iced_wgpu"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "bytemuck",
  "futures",
  "glam",
@@ -1940,7 +2123,7 @@ dependencies = [
  "iced_graphics",
  "log",
  "once_cell",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "thiserror",
  "wgpu",
 ]
@@ -1948,13 +2131,14 @@ dependencies = [
 [[package]]
 name = "iced_widget"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "iced_renderer",
  "iced_runtime",
  "num-traits",
+ "once_cell",
  "ouroboros",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "thiserror",
  "unicode-segmentation",
 ]
@@ -1962,13 +2146,13 @@ dependencies = [
 [[package]]
 name = "iced_winit"
 version = "0.13.0-dev"
-source = "git+https://github.com/iced-rs/iced?rev=19db068bbbebcda1756720525da247f35bd3a5e0#19db068bbbebcda1756720525da247f35bd3a5e0"
+source = "git+https://github.com/iced-rs/iced?rev=9628dc20d5dab128b9fff2c4b73cc66b0071e149#9628dc20d5dab128b9fff2c4b73cc66b0071e149"
 dependencies = [
  "iced_futures",
  "iced_graphics",
  "iced_runtime",
  "log",
- "rustc-hash",
+ "rustc-hash 2.0.0",
  "thiserror",
  "tracing",
  "wasm-bindgen-futures",
@@ -2008,9 +2192,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.6"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+checksum = "93ead53efc7ea8ed3cfb0c79fc8023fbb782a5432b52830b6518941cebe6505c"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.5",
@@ -2093,7 +2277,7 @@ dependencies = [
 name = "irc_proto"
 version = "0.1.0"
 dependencies = [
- "itertools",
+ "itertools 0.12.1",
  "nom",
  "thiserror",
 ]
@@ -2136,6 +2320,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "itertools"
+version = "0.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186"
+dependencies = [
+ "either",
+]
+
+[[package]]
 name = "itoa"
 version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2165,9 +2358,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "jobserver"
-version = "0.1.31"
+version = "0.1.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2b099aaa34a9751c5bf0878add70444e1ed2dd73f347be99003d4577277de6e"
+checksum = "48d1dbcbbeb6a7fec7e059840aa538bd62aaccf972c7346c4d9d2059312853d0"
 dependencies = [
  "libc",
 ]
@@ -2183,9 +2376,9 @@ dependencies = [
 
 [[package]]
 name = "js-sys"
-version = "0.3.69"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -2206,7 +2399,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6aae1df220ece3c0ada96b8153459b67eebe9ae9212258bb0134ae60416fdf76"
 dependencies = [
  "libc",
- "libloading 0.8.3",
+ "libloading 0.8.5",
  "pkg-config",
 ]
 
@@ -2227,16 +2420,39 @@ dependencies = [
 ]
 
 [[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+[[package]]
+name = "lazycell"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
+
+[[package]]
 name = "lebe"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
 
 [[package]]
+name = "lewton"
+version = "0.10.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "777b48df9aaab155475a83a7df3070395ea1ac6902f5cd062b8f2b028075c030"
+dependencies = [
+ "byteorder",
+ "ogg",
+ "tinyvec",
+]
+
+[[package]]
 name = "libc"
-version = "0.2.155"
+version = "0.2.156"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
+checksum = "a5f43f184355eefb8d17fc948dbecf6c13be3c141f20d834ae842193a448c72a"
 
 [[package]]
 name = "libloading"
@@ -2250,12 +2466,12 @@ dependencies = [
 
 [[package]]
 name = "libloading"
-version = "0.8.3"
+version = "0.8.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c2a198fb6b0eada2a8df47933734e6d35d350665a33a3593d7164fa52c75c19"
+checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4"
 dependencies = [
  "cfg-if",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -2270,7 +2486,7 @@ version = "0.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "3af92c55d7d839293953fcd0fda5ecfe93297cfde6ffbdec13b41d99c0ba6607"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "libc",
  "redox_syscall 0.4.1",
 ]
@@ -2281,7 +2497,7 @@ version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "libc",
 ]
 
@@ -2293,9 +2509,9 @@ checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
 
 [[package]]
 name = "linux-raw-sys"
-version = "0.6.4"
+version = "0.6.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f0b5399f6804fbab912acbd8878ed3532d506b7c951b8f9f164ef90fef39e3f4"
+checksum = "2a385b1be4e5c3e362ad2ffa73c392e53f031eaa5b7d648e64cd87f27f6063d7"
 
 [[package]]
 name = "lock_api"
@@ -2309,15 +2525,15 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.21"
+version = "0.4.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
 
 [[package]]
 name = "lru"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d3262e75e648fce39813cb56ac41f3c3e3f65217ebf3844d818d1f9398cfb0dc"
+checksum = "37ee39891760e7d94734f6f63fedc29a2e4a152f836120753a72503f09fcf904"
 
 [[package]]
 name = "mac-notification-sys"
@@ -2333,6 +2549,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "mach2"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "19b955cdeb2a02b9117f121ce63aa52d08ade45de53e48fe6a38b39c10f6f709"
+dependencies = [
+ "libc",
+]
+
+[[package]]
 name = "malloc_buf"
 version = "0.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2349,15 +2574,6 @@ checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
 
 [[package]]
 name = "memmap2"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43a5a03cefb0d953ec0be133036f14e109412fa594edc2f77227249db66cc3ed"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memmap2"
 version = "0.9.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "fe751422e4a8caa417e13c3ea66452215d7d63e19e604f4980461212f3ae1322"
@@ -2380,7 +2596,7 @@ version = "0.27.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c43f73953f8cbe511f021b58f18c3ce1c3d1ae13fe953293e13345bf83217f25"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block",
  "core-graphics-types",
  "foreign-types 0.5.0",
@@ -2413,13 +2629,14 @@ dependencies = [
 
 [[package]]
 name = "mio"
-version = "0.8.11"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
 dependencies = [
+ "hermit-abi 0.3.9",
  "libc",
  "wasi",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
@@ -2435,13 +2652,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "50e3524642f53d9af419ab5e8dd29d3ba155708267667c2f3f06c88c9e130843"
 dependencies = [
  "bit-set",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "codespan-reporting",
  "hexf-parse",
  "indexmap",
  "log",
  "num-traits",
- "rustc-hash",
+ "rustc-hash 1.1.0",
  "spirv",
  "termcolor",
  "thiserror",
@@ -2467,11 +2684,25 @@ dependencies = [
 
 [[package]]
 name = "ndk"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2076a31b7010b17a38c01907c45b945e8f11495ee4dd588309718901b1f7a5b7"
+dependencies = [
+ "bitflags 2.6.0",
+ "jni-sys",
+ "log",
+ "ndk-sys 0.5.0+25.2.9519653",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk"
 version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "jni-sys",
  "log",
  "ndk-sys 0.6.0+11769913",
@@ -2506,13 +2737,13 @@ dependencies = [
 
 [[package]]
 name = "nix"
-version = "0.28.0"
+version = "0.29.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cfg-if",
- "cfg_aliases 0.1.1",
+ "cfg_aliases 0.2.1",
  "libc",
  "memoffset",
 ]
@@ -2529,9 +2760,9 @@ dependencies = [
 
 [[package]]
 name = "notify-rust"
-version = "4.11.0"
+version = "4.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5312f837191c317644f313f7b2b39f9cb1496570c74f7c17152dd3961219551f"
+checksum = "26a1d03b6305ecefdd9c6c60150179bb8d9f0cd4e64bbcad1e41419e7bf5e414"
 dependencies = [
  "log",
  "mac-notification-sys",
@@ -2547,6 +2778,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
 
 [[package]]
+name = "num-derive"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.74",
+]
+
+[[package]]
 name = "num-traits"
 version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2567,23 +2809,23 @@ dependencies = [
 
 [[package]]
 name = "num_enum"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02339744ee7253741199f897151b38e72257d13802d4ee837285cc2990a90845"
+checksum = "4e613fc340b2220f734a8595782c551f1250e969d87d3be1ae0579e8d4065179"
 dependencies = [
  "num_enum_derive",
 ]
 
 [[package]]
 name = "num_enum_derive"
-version = "0.7.2"
+version = "0.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "681030a937600a36906c185595136d26abfebb4aa9c65701cefcaf8578bb982b"
+checksum = "af1844ef2428cc3e1cb900be36181049ef3d3193c63e43026cfe202983b27a56"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -2629,7 +2871,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e4e89ad9e3d7d297152b17d39ed92cd50ca8063a89a9fa569046d41568891eff"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "libc",
  "objc2",
@@ -2645,7 +2887,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "74dd3b56391c7a0596a295029734d3c1c5e7e510a4cb30245f8221ccea96b009"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "objc2",
  "objc2-core-location",
@@ -2669,7 +2911,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "617fbf49e071c178c0b24c080767db52958f716d9eabdf0890523aeae54773ef"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "objc2",
  "objc2-foundation",
@@ -2711,7 +2953,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "0ee638a5da3799329310ad4cfa62fbf045d5f56e3ef5ba4149e7452dcf89d5a8"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "dispatch",
  "libc",
@@ -2736,7 +2978,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "dd0cba1276f6023976a406a14ffa85e1fdd19df6b0f737b063b95f6c8c7aadd6"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "objc2",
  "objc2-foundation",
@@ -2748,7 +2990,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e42bee7bff906b14b167da2bac5efe6b6a07e6f7c0a21a7308d40c960242dc7a"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "objc2",
  "objc2-foundation",
@@ -2771,7 +3013,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b8bb46798b20cd6b91cbd113524c490f1686f4c4e8f49502431415f3512e2b6f"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "objc2",
  "objc2-cloud-kit",
@@ -2803,7 +3045,7 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "76cfcbf642358e8689af64cee815d139339f3ed8ad05103ed5eaf73db8d84cb3"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "objc2",
  "objc2-core-location",
@@ -2830,14 +3072,46 @@ dependencies = [
 
 [[package]]
 name = "object"
-version = "0.36.0"
+version = "0.36.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "576dfe1fc8f9df304abb159d767a29d0476f7750fbf8aa7ad07816004a207434"
+checksum = "27b64972346851a39438c60b341ebc01bba47464ae329e55cf343eb93964efd9"
 dependencies = [
  "memchr",
 ]
 
 [[package]]
+name = "oboe"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8b61bebd49e5d43f5f8cc7ee2891c16e0f41ec7954d36bcb6c14c5e0de867fb"
+dependencies = [
+ "jni",
+ "ndk 0.8.0",
+ "ndk-context",
+ "num-derive",
+ "num-traits",
+ "oboe-sys",
+]
+
+[[package]]
+name = "oboe-sys"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8bb09a4a2b1d668170cfe0a7d5bc103f8999fb316c98099b6a9939c9f2e79d"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ogg"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6951b4e8bf21c8193da321bcce9c9dd2e13c858fe078bf9054a288b419ae5d6e"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
 name = "once_cell"
 version = "1.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2845,9 +3119,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "open"
-version = "5.1.4"
+version = "5.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5ca541f22b1c46d4bb9801014f234758ab4297e7870b904b6a8415b980a7388"
+checksum = "61a877bf6abd716642a53ef1b89fb498923a4afca5c754f9050b4d081c05c4b3"
 dependencies = [
  "is-wsl",
  "libc",
@@ -2856,11 +3130,11 @@ dependencies = [
 
 [[package]]
 name = "openssl"
-version = "0.10.64"
+version = "0.10.66"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "95a0481286a310808298130d22dd1fef0fa571e05a8f44ec801801e84b216b1f"
+checksum = "9529f4786b70a3e8c61e11179af17ab6188ad8d0ded78c5529441ed39d4bd9c1"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cfg-if",
  "foreign-types 0.3.2",
  "libc",
@@ -2877,7 +3151,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -2888,9 +3162,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
 
 [[package]]
 name = "openssl-sys"
-version = "0.9.102"
+version = "0.9.103"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c597637d56fbc83893a35eb0dd04b2b8e7a50c91e64e9493e398b5df4fb45fa2"
+checksum = "7f9e8deee91df40a943c71b917e5874b951d32a802526c85721ce3b776c929d6"
 dependencies = [
  "cc",
  "libc",
@@ -2945,20 +3219,20 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "39b0deead1528fd0e5947a8546a9642a9777c25f6e1e26f34c97b204bbb465bd"
 dependencies = [
  "heck",
- "itertools",
+ "itertools 0.12.1",
  "proc-macro2",
  "proc-macro2-diagnostics",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
 name = "owned_ttf_parser"
-version = "0.21.0"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b41438d2fc63c46c74a2203bf5ccd82c41ba04347b2fcf5754f230b167067d5"
+checksum = "490d3a563d3122bf7c911a59b0add9389e5ec0f5f0c3ac6b91ff235a0e6a7f90"
 dependencies = [
- "ttf-parser 0.21.1",
+ "ttf-parser 0.24.1",
 ]
 
 [[package]]
@@ -2982,7 +3256,7 @@ dependencies = [
  "by_address",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -3034,9 +3308,9 @@ checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
- "redox_syscall 0.5.2",
+ "redox_syscall 0.5.3",
  "smallvec",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -3087,7 +3361,7 @@ dependencies = [
  "phf_shared",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -3116,7 +3390,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -3133,9 +3407,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
 
 [[package]]
 name = "piper"
-version = "0.2.3"
+version = "0.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae1d5c74c9876f070d3e8fd503d748c7d974c3e48da8f41350fa5222ef9b4391"
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
 dependencies = [
  "atomic-waker",
  "fastrand",
@@ -3163,9 +3437,9 @@ dependencies = [
 
 [[package]]
 name = "polling"
-version = "3.7.2"
+version = "3.7.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3ed00ed3fbf728b5816498ecd316d1716eecaced9c0c8d2c5a6740ca214985b"
+checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
 dependencies = [
  "cfg-if",
  "concurrent-queue",
@@ -3173,7 +3447,7 @@ dependencies = [
  "pin-project-lite",
  "rustix",
  "tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -3190,9 +3464,12 @@ checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
 
 [[package]]
 name = "ppv-lite86"
-version = "0.2.17"
+version = "0.2.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
 
 [[package]]
 name = "presser"
@@ -3211,9 +3488,9 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.85"
+version = "1.0.86"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "22244ce15aa966053a896d1accb3a6e68469b97c7f33f284b99f0d576879fc23"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
 dependencies = [
  "unicode-ident",
 ]
@@ -3226,7 +3503,7 @@ checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
  "version_check",
  "yansi",
 ]
@@ -3256,6 +3533,15 @@ dependencies = [
 ]
 
 [[package]]
+name = "quick-xml"
+version = "0.34.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f24d770aeca0eacb81ac29dfbc55ebcc09312fdd1f8bbecdc7e4a84e000e3b4"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
 name = "quote"
 version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3334,9 +3620,9 @@ dependencies = [
 
 [[package]]
 name = "read-fonts"
-version = "0.19.3"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e8b8af39d1f23869711ad4cea5e7835a20daa987f80232f7f2a2374d648ca64d"
+checksum = "8c141b9980e1150201b2a3a32879001c8f975fe313ec3df5471a9b5c79a880cd"
 dependencies = [
  "bytemuck",
  "font-types",
@@ -3362,11 +3648,11 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c82cf8cff14456045f55ec4241383baeff27af886adb72ffb2162f99911de0fd"
+checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -3382,9 +3668,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.10.5"
+version = "1.10.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b91213439dad192326a0d7c6ee3955910425f441d7038e0d6933b0aec5c4517f"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -3497,10 +3783,24 @@ dependencies = [
 ]
 
 [[package]]
-name = "roxmltree"
+name = "rodio"
 version = "0.19.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3cd14fd5e3b777a7422cca79358c57a8f6e3a703d9ac187448d0daf220c2407f"
+checksum = "6006a627c1a38d37f3d3a85c6575418cfe34a5392d60a686d0071e1c8d427acb"
+dependencies = [
+ "claxon",
+ "cpal",
+ "hound",
+ "lewton",
+ "symphonia",
+ "thiserror",
+]
+
+[[package]]
+name = "roxmltree"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c20b6793b5c2fa6553b250154b78d6d0db37e72700ae35fad9387a46f487c97"
 
 [[package]]
 name = "rust-ini"
@@ -3525,6 +3825,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
+name = "rustc-hash"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "583034fd73374156e66797ed8e5b0d5690409c9226b22d87cb7f19821c05d152"
+
+[[package]]
 name = "rustc_version"
 version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3539,7 +3845,7 @@ version = "0.38.34"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "errno",
  "libc",
  "linux-raw-sys 0.4.14",
@@ -3548,9 +3854,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.23.10"
+version = "0.23.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05cff451f60db80f490f3c182b77c35260baace73209e9cdbbe526bfe3a4d402"
+checksum = "c58f8c84392efc0a126acce10fa59ff7b3d2ac06ab451a33f2741989b806b044"
 dependencies = [
  "once_cell",
  "ring",
@@ -3562,9 +3868,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-native-certs"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f1fb85efa936c42c6d5fc28d2629bb51e4b2f4b8a5211e297d599cc5a093792"
+checksum = "a88d6d420651b496bdd98684116959239430022a115c1240e6c3993be0b15fba"
 dependencies = [
  "openssl-probe",
  "rustls-pemfile",
@@ -3575,9 +3881,9 @@ dependencies = [
 
 [[package]]
 name = "rustls-pemfile"
-version = "2.1.2"
+version = "2.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "29993a25686778eb88d4189742cd713c9bce943bc54251a33509dc63cbacf73d"
+checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
 dependencies = [
  "base64 0.22.1",
  "rustls-pki-types",
@@ -3585,15 +3891,15 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "976295e77ce332211c0d24d92c0e83e50f5c5f046d11082cea19f3df13a3562d"
+checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.4"
+version = "0.102.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff448f7e92e913c4b7d4c6d8e4540a1724b319b4152b8aef6d4cf8339712b33e"
+checksum = "8e6b52d4fda176fd835fdc55a835d4a89b8499cad995885a21149d5ad62f852e"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -3602,15 +3908,15 @@ dependencies = [
 
 [[package]]
 name = "rustybuzz"
-version = "0.11.0"
+version = "0.14.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ee8fe2a8461a0854a37101fe7a1b13998d0cfa987e43248e81d2a5f4570f6fa"
+checksum = "cfb9cf8877777222e4a3bc7eb247e398b56baba500c38c1c46842431adc8b55c"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags 2.6.0",
  "bytemuck",
  "libm",
  "smallvec",
- "ttf-parser 0.20.0",
+ "ttf-parser 0.21.1",
  "unicode-bidi-mirroring",
  "unicode-ccc",
  "unicode-properties",
@@ -3655,14 +3961,14 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "sctk-adwaita"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7de61fa7334ee8ee1f5c3c58dcc414fb9361e7e8f5bff9d45f4d69eeb89a7169"
+checksum = "7555fcb4f753d095d734fdefebb0ad8c98478a21db500492d87c55913d3b0086"
 dependencies = [
  "ab_glyph",
  "log",
- "memmap2 0.9.4",
- "smithay-client-toolkit",
+ "memmap2",
+ "smithay-client-toolkit 0.18.1",
  "tiny-skia",
 ]
 
@@ -3674,11 +3980,11 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
 
 [[package]]
 name = "security-framework"
-version = "2.11.0"
+version = "2.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c627723fd09706bacdb5cf41499e95098555af3c3c29d014dc3c458ef6be11c0"
+checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "core-foundation",
  "core-foundation-sys",
  "libc",
@@ -3687,9 +3993,9 @@ dependencies = [
 
 [[package]]
 name = "security-framework-sys"
-version = "2.11.0"
+version = "2.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "317936bbbd05227752583946b9e66d7ce3b489f84e11a94a510b4437fef407d7"
+checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
 dependencies = [
  "core-foundation-sys",
  "libc",
@@ -3709,31 +4015,32 @@ checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
 
 [[package]]
 name = "serde"
-version = "1.0.203"
+version = "1.0.208"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7253ab4de971e72fb7be983802300c30b5a7f0c2e56fab8abfc6a214307c0094"
+checksum = "cff085d2cb684faa248efb494c39b68e522822ac0de72ccf08109abde717cfb2"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.203"
+version = "1.0.208"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "500cbc0ebeb6f46627f50f3f5811ccf6bf00643be300b4c3eabc0ef55dc5b5ba"
+checksum = "24008e81ff7613ed8e5ba0cfaf24e2c2f1e5b8a0495711e44fcd4882fca62bcf"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
 name = "serde_json"
-version = "1.0.117"
+version = "1.0.125"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "455182ea6142b14f93f4bc5320a2b31c1f266b66a4a5c858b013302a5d8cbfc3"
+checksum = "83c8e735a073ccf5be70aa8066aa984eaf2fa000db6c8d0100ae605b366d31ed"
 dependencies = [
  "itoa",
+ "memchr",
  "ryu",
  "serde",
 ]
@@ -3746,14 +4053,14 @@ checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
 name = "serde_spanned"
-version = "0.6.6"
+version = "0.6.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79e674e01f999af37c49f70a6ede167a8a60b2503e56c5599532a65baa5969a0"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
 dependencies = [
  "serde",
 ]
@@ -3793,6 +4100,12 @@ dependencies = [
 ]
 
 [[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
 name = "signal-hook-registry"
 version = "1.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -3815,9 +4128,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
 
 [[package]]
 name = "skrifa"
-version = "0.19.3"
+version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ab45fb68b53576a43d4fc0e9ec8ea64e29a4d2cc7f44506964cb75f288222e9"
+checksum = "abea4738067b1e628c6ce28b2c216c19e9ea95715cdb332680e821c3bec2ef23"
 dependencies = [
  "bytemuck",
  "read-fonts",
@@ -3853,33 +4166,58 @@ version = "0.18.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "922fd3eeab3bd820d76537ce8f582b1cf951eceb5475c28500c7457d9d17f53a"
 dependencies = [
- "bitflags 2.5.0",
- "calloop",
- "calloop-wayland-source",
+ "bitflags 2.6.0",
+ "calloop 0.12.4",
+ "calloop-wayland-source 0.2.0",
  "cursor-icon",
  "libc",
  "log",
- "memmap2 0.9.4",
+ "memmap2",
  "rustix",
  "thiserror",
  "wayland-backend",
  "wayland-client",
  "wayland-csd-frame",
  "wayland-cursor",
- "wayland-protocols",
- "wayland-protocols-wlr",
+ "wayland-protocols 0.31.2",
+ "wayland-protocols-wlr 0.2.0",
+ "wayland-scanner",
+ "xkeysym",
+]
+
+[[package]]
+name = "smithay-client-toolkit"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3457dea1f0eb631b4034d61d4d8c32074caa6cd1ab2d59f2327bd8461e2c0016"
+dependencies = [
+ "bitflags 2.6.0",
+ "calloop 0.13.0",
+ "calloop-wayland-source 0.3.0",
+ "cursor-icon",
+ "libc",
+ "log",
+ "memmap2",
+ "rustix",
+ "thiserror",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-csd-frame",
+ "wayland-cursor",
+ "wayland-protocols 0.32.3",
+ "wayland-protocols-wlr 0.3.3",
  "wayland-scanner",
  "xkeysym",
 ]
 
 [[package]]
 name = "smithay-clipboard"
-version = "0.7.1"
+version = "0.7.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c091e7354ea8059d6ad99eace06dd13ddeedbb0ac72d40a9a6e7ff790525882d"
+checksum = "cc8216eec463674a0e90f29e0ae41a4db573ec5b56b1c6c1c71615d249b6d846"
 dependencies = [
  "libc",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.19.2",
  "wayland-backend",
 ]
 
@@ -3904,9 +4242,9 @@ dependencies = [
 
 [[package]]
 name = "softbuffer"
-version = "0.4.4"
+version = "0.4.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ae0d2e93c874cca74fe830bccbd1132299318932d273d2a3c77ad77476a3d7e"
+checksum = "d623bff5d06f60d738990980d782c8c866997d9194cfe79ecad00aa2f76826dd"
 dependencies = [
  "as-raw-xcb-connection",
  "bytemuck",
@@ -3917,13 +4255,13 @@ dependencies = [
  "foreign-types 0.5.0",
  "js-sys",
  "log",
- "memmap2 0.9.4",
+ "memmap2",
  "objc2",
  "objc2-app-kit",
  "objc2-foundation",
  "objc2-quartz-core",
  "raw-window-handle",
- "redox_syscall 0.5.2",
+ "redox_syscall 0.5.3",
  "rustix",
  "tiny-xlib",
  "wasm-bindgen",
@@ -3959,7 +4297,7 @@ version = "0.3.0+sdk-1.3.268.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "eda41003dc44290527a59b13432d4a0379379fa074b70174882adfbdfd917844"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
 ]
 
 [[package]]
@@ -3976,9 +4314,9 @@ checksum = "6637bab7722d379c8b41ba849228d680cc12d0a45ba1fa2b48f2a30577a06731"
 
 [[package]]
 name = "subtle"
-version = "2.5.0"
+version = "2.6.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
 
 [[package]]
 name = "svg_fmt"
@@ -3988,9 +4326,9 @@ checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca"
 
 [[package]]
 name = "swash"
-version = "0.1.17"
+version = "0.1.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d7773d67fe3373048cf840bfcc54ec3207cfc1e95c526b287ef2eb5eff9faf6"
+checksum = "93cdc334a50fcc2aa3f04761af3b28196280a6aaadb1ef11215c478ae32615ac"
 dependencies = [
  "skrifa",
  "yazi",
@@ -3998,6 +4336,55 @@ dependencies = [
 ]
 
 [[package]]
+name = "symphonia"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "815c942ae7ee74737bb00f965fa5b5a2ac2ce7b6c01c0cc169bbeaf7abd5f5a9"
+dependencies = [
+ "lazy_static",
+ "symphonia-bundle-mp3",
+ "symphonia-core",
+ "symphonia-metadata",
+]
+
+[[package]]
+name = "symphonia-bundle-mp3"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c01c2aae70f0f1fb096b6f0ff112a930b1fb3626178fba3ae68b09dce71706d4"
+dependencies = [
+ "lazy_static",
+ "log",
+ "symphonia-core",
+ "symphonia-metadata",
+]
+
+[[package]]
+name = "symphonia-core"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "798306779e3dc7d5231bd5691f5a813496dc79d3f56bf82e25789f2094e022c3"
+dependencies = [
+ "arrayvec",
+ "bitflags 1.3.2",
+ "bytemuck",
+ "lazy_static",
+ "log",
+]
+
+[[package]]
+name = "symphonia-metadata"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bc622b9841a10089c5b18e99eb904f4341615d5aa55bbf4eedde1be721a4023c"
+dependencies = [
+ "encoding_rs",
+ "lazy_static",
+ "log",
+ "symphonia-core",
+]
+
+[[package]]
 name = "syn"
 version = "1.0.109"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4010,9 +4397,9 @@ dependencies = [
 
 [[package]]
 name = "syn"
-version = "2.0.66"
+version = "2.0.74"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c42f3f41a2de00b01c0aaad383c5a45241efc8b2d1eda5661812fda5f3cdcff5"
+checksum = "1fceb41e3d546d0bd83421d3409b1460cc7444cd389341a4c880fe7a042cb3d7"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4061,21 +4448,22 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f89f5fb70d6f62381f5d9b2ba9008196150b40b75f3068eb24faeddf1c686871"
 dependencies = [
- "quick-xml",
+ "quick-xml 0.31.0",
  "windows 0.56.0",
  "windows-version",
 ]
 
 [[package]]
 name = "tempfile"
-version = "3.10.1"
+version = "3.12.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
 dependencies = [
  "cfg-if",
  "fastrand",
+ "once_cell",
  "rustix",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -4089,22 +4477,22 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.61"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c546c80d6be4bc6a00c0f01730c08df82eaa7a7a61f11d656526506112cc1709"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.61"
+version = "1.0.63"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c3384250002a6d5af4d114f2845d37b57521033f30d5c3f46c4d70e1197533"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -4181,16 +4569,16 @@ checksum = "1d52f22673960ad13af14ff4025997312def1223bfa7c8e4949d099e6b3d5d1c"
 dependencies = [
  "as-raw-xcb-connection",
  "ctor-lite",
- "libloading 0.8.3",
+ "libloading 0.8.5",
  "pkg-config",
  "tracing",
 ]
 
 [[package]]
 name = "tinyvec"
-version = "1.6.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
 dependencies = [
  "tinyvec_macros",
 ]
@@ -4209,33 +4597,32 @@ checksum = "c7c4ceeeca15c8384bbc3e011dbd8fccb7f068a440b752b7d9b32ceb0ca0e2e8"
 
 [[package]]
 name = "tokio"
-version = "1.38.0"
+version = "1.39.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba4f4a02a7a80d6f274636f0aa95c7e383b912d41fe721a31f29e29698585a4a"
+checksum = "daa4fb1bc778bd6f04cbfc4bb2d06a7396a8f299dc33ea1900cedaa316f467b1"
 dependencies = [
  "backtrace",
  "bytes",
  "libc",
  "mio",
- "num_cpus",
  "parking_lot 0.12.3",
  "pin-project-lite",
  "signal-hook-registry",
  "socket2",
  "tokio-macros",
  "tracing",
- "windows-sys 0.48.0",
+ "windows-sys 0.52.0",
 ]
 
 [[package]]
 name = "tokio-macros"
-version = "2.3.0"
+version = "2.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f5ae998a069d4b5aba8ee9dad856af7d520c3699e6159b185c2acd48155d39a"
+checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -4285,21 +4672,21 @@ dependencies = [
 
 [[package]]
 name = "toml"
-version = "0.8.14"
+version = "0.8.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f49eb2ab21d2f26bd6db7bf383edc527a7ebaee412d17af4d40fdccd442f335"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
 dependencies = [
  "serde",
  "serde_spanned",
  "toml_datetime",
- "toml_edit 0.22.14",
+ "toml_edit 0.22.20",
 ]
 
 [[package]]
 name = "toml_datetime"
-version = "0.6.6"
+version = "0.6.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4badfd56924ae69bcc9039335b2e017639ce3f9b001c393c1b2d1ef846ce2cbf"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
 dependencies = [
  "serde",
 ]
@@ -4317,15 +4704,15 @@ dependencies = [
 
 [[package]]
 name = "toml_edit"
-version = "0.22.14"
+version = "0.22.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f21c7aaf97f1bd9ca9d4f9e73b0a6c74bd5afef56f2bc931943a6e1c37e04e38"
+checksum = "583c44c02ad26b0c3f3066fe629275e50627026c51ac2e595cca4c230ce1ce1d"
 dependencies = [
  "indexmap",
  "serde",
  "serde_spanned",
  "toml_datetime",
- "winnow 0.6.13",
+ "winnow 0.6.18",
 ]
 
 [[package]]
@@ -4345,15 +4732,15 @@ dependencies = [
 
 [[package]]
 name = "tower-layer"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0"
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
 
 [[package]]
 name = "tower-service"
-version = "0.3.2"
+version = "0.3.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52"
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
 
 [[package]]
 name = "tracing"
@@ -4374,7 +4761,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -4394,12 +4781,6 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
 
 [[package]]
 name = "ttf-parser"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1"
-
-[[package]]
-name = "ttf-parser"
 version = "0.20.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17f77d76d837a7830fe1d4f12b7b4ba4192c1888001c7164257e4bc6d21d96b4"
@@ -4411,6 +4792,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "2c591d83f69777866b9126b24c6dd9a18351f177e49d625920d19f989fd31cf8"
 
 [[package]]
+name = "ttf-parser"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be21190ff5d38e8b4a2d3b6a3ae57f612cc39c96e83cedeaf7abc338a8bac4a"
+
+[[package]]
 name = "typenum"
 version = "1.17.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -4435,15 +4822,15 @@ checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
 
 [[package]]
 name = "unicode-bidi-mirroring"
-version = "0.1.0"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56d12260fb92d52f9008be7e4bca09f584780eb2266dc8fecc6a192bec561694"
+checksum = "23cb788ffebc92c5948d0e997106233eeb1d8b9512f93f41651f52b6c5f5af86"
 
 [[package]]
 name = "unicode-ccc"
-version = "0.1.2"
+version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc2520efa644f8268dce4dcd3050eaa7fc044fca03961e9998ac7e2e92b77cf1"
+checksum = "1df77b101bcc4ea3d78dafc5ad7e4f58ceffe0b2b16bf446aeb50b6cb4157656"
 
 [[package]]
 name = "unicode-ident"
@@ -4522,9 +4909,9 @@ checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
 
 [[package]]
 name = "uuid"
-version = "1.8.0"
+version = "1.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+checksum = "81dfa00651efa65069b0b6b651f4aaa31ba9e3c3ce0137aaad053604ee7e0314"
 dependencies = [
  "getrandom",
 ]
@@ -4537,9 +4924,9 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
 
 [[package]]
 name = "version_check"
-version = "0.9.4"
+version = "0.9.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
 
 [[package]]
 name = "vswhom"
@@ -4588,34 +4975,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
 dependencies = [
  "cfg-if",
+ "once_cell",
  "wasm-bindgen-macro",
 ]
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
 dependencies = [
  "bumpalo",
  "log",
  "once_cell",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.42"
+version = "0.4.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76bc14366121efc8dbb487ab05bcc9d346b3b5ec0eaa76e46594cabbe51762c0"
+checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -4625,9 +5013,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -4635,22 +5023,22 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
  "wasm-bindgen-backend",
  "wasm-bindgen-shared",
 ]
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.92"
+version = "0.2.93"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
 
 [[package]]
 name = "wasm-timer"
@@ -4669,9 +5057,9 @@ dependencies = [
 
 [[package]]
 name = "wayland-backend"
-version = "0.3.4"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34e9e6b6d4a2bb4e7e69433e0b35c7923b95d4dc8503a84d25ec917a4bbfdf07"
+checksum = "f90e11ce2ca99c97b940ee83edbae9da2d56a08f9ea8158550fd77fa31722993"
 dependencies = [
  "cc",
  "downcast-rs",
@@ -4683,11 +5071,11 @@ dependencies = [
 
 [[package]]
 name = "wayland-client"
-version = "0.31.3"
+version = "0.31.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e63801c85358a431f986cffa74ba9599ff571fc5774ac113ed3b490c19a1133"
+checksum = "7e321577a0a165911bdcfb39cf029302479d7527b517ee58ab0f6ad09edf0943"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "rustix",
  "wayland-backend",
  "wayland-scanner",
@@ -4699,16 +5087,16 @@ version = "0.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "625c5029dbd43d25e6aa9615e88b829a5cad13b2819c4ae129fdbb7c31ab4c7e"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cursor-icon",
  "wayland-backend",
 ]
 
 [[package]]
 name = "wayland-cursor"
-version = "0.31.3"
+version = "0.31.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a206e8b2b53b1d3fcb9428fec72bc278ce539e2fa81fe2bfc1ab27703d5187b9"
+checksum = "6ef9489a8df197ebf3a8ce8a7a7f0a2320035c3743f3c1bd0bdbccf07ce64f95"
 dependencies = [
  "rustix",
  "wayland-client",
@@ -4721,7 +5109,19 @@ version = "0.31.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8f81f365b8b4a97f422ac0e8737c438024b5951734506b0e1d775c73030561f4"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols"
+version = "0.32.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62989625a776e827cc0f15d41444a3cea5205b963c3a25be48ae1b52d6b4daaa"
+dependencies = [
+ "bitflags 2.6.0",
  "wayland-backend",
  "wayland-client",
  "wayland-scanner",
@@ -4733,10 +5133,10 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "23803551115ff9ea9bce586860c5c5a971e360825a0309264102a9495a5ff479"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "wayland-backend",
  "wayland-client",
- "wayland-protocols",
+ "wayland-protocols 0.31.2",
  "wayland-scanner",
 ]
 
@@ -4746,29 +5146,42 @@ version = "0.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ad1f61b76b6c2d8742e10f9ba5c3737f6530b4c243132c2a2ccc8aa96fe25cd6"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
+ "wayland-backend",
+ "wayland-client",
+ "wayland-protocols 0.31.2",
+ "wayland-scanner",
+]
+
+[[package]]
+name = "wayland-protocols-wlr"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd993de54a40a40fbe5601d9f1fbcaef0aebcc5fda447d7dc8f6dcbaae4f8953"
+dependencies = [
+ "bitflags 2.6.0",
  "wayland-backend",
  "wayland-client",
- "wayland-protocols",
+ "wayland-protocols 0.32.3",
  "wayland-scanner",
 ]
 
 [[package]]
 name = "wayland-scanner"
-version = "0.31.2"
+version = "0.31.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67da50b9f80159dec0ea4c11c13e24ef9e7574bd6ce24b01860a175010cea565"
+checksum = "d7b56f89937f1cf2ee1f1259cf2936a17a1f45d8f0aa1019fae6d470d304cfa6"
 dependencies = [
  "proc-macro2",
- "quick-xml",
+ "quick-xml 0.34.0",
  "quote",
 ]
 
 [[package]]
 name = "wayland-sys"
-version = "0.31.2"
+version = "0.31.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "105b1842da6554f91526c14a2a2172897b7f745a805d62af4ce698706be79c12"
+checksum = "43676fe2daf68754ecf1d72026e4e6c15483198b5d24e888b74d3f22f887a148"
 dependencies = [
  "dlib",
  "log",
@@ -4778,9 +5191,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.67"
+version = "0.3.70"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -4835,7 +5248,7 @@ checksum = "28b94525fc99ba9e5c9a9e24764f2bc29bad0911a7446c12f446a8277369bf3a"
 dependencies = [
  "arrayvec",
  "bit-vec",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "cfg_aliases 0.1.1",
  "codespan-reporting",
  "indexmap",
@@ -4845,7 +5258,7 @@ dependencies = [
  "parking_lot 0.12.3",
  "profiling",
  "raw-window-handle",
- "rustc-hash",
+ "rustc-hash 1.1.0",
  "smallvec",
  "thiserror",
  "web-sys",
@@ -4855,15 +5268,15 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.19.4"
+version = "0.19.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc1a4924366df7ab41a5d8546d6534f1f33231aa5b3f72b9930e300f254e39c3"
+checksum = "bfabcfc55fd86611a855816326b2d54c3b2fd7972c27ce414291562650552703"
 dependencies = [
  "android_system_properties",
  "arrayvec",
  "ash",
  "bit-set",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block",
  "cfg_aliases 0.1.1",
  "core-graphics-types",
@@ -4877,7 +5290,7 @@ dependencies = [
  "js-sys",
  "khronos-egl",
  "libc",
- "libloading 0.8.3",
+ "libloading 0.8.5",
  "log",
  "metal",
  "naga",
@@ -4889,7 +5302,7 @@ dependencies = [
  "range-alloc",
  "raw-window-handle",
  "renderdoc-sys",
- "rustc-hash",
+ "rustc-hash 1.1.0",
  "smallvec",
  "thiserror",
  "wasm-bindgen",
@@ -4904,7 +5317,7 @@ version = "0.19.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "b671ff9fb03f78b46ff176494ee1ebe7d603393f42664be55b64dc8d53969805"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "js-sys",
  "web-sys",
 ]
@@ -4933,11 +5346,11 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 
 [[package]]
 name = "winapi-util"
-version = "0.1.8"
+version = "0.1.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
 dependencies = [
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -4967,7 +5380,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e48a53791691ab099e5e2ad123536d0fff50652600abaf43bbf952894110d0be"
 dependencies = [
  "windows-core 0.52.0",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9252e5725dbed82865af151df558e754e4a3c2c30818359eb17465f1346a1b49"
+dependencies = [
+ "windows-core 0.54.0",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -4977,7 +5400,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1de69df01bdf1ead2f4ac895dc77c9351aefff65b2f3db429a343f9cbf05e132"
 dependencies = [
  "windows-core 0.56.0",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -4986,7 +5409,17 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
 dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-core"
+version = "0.54.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "12661b9c89351d684a50a8a643ce5f608e20243b9fb84687800163429f161d65"
+dependencies = [
+ "windows-result",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -4998,7 +5431,7 @@ dependencies = [
  "windows-implement",
  "windows-interface",
  "windows-result",
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -5009,7 +5442,7 @@ checksum = "f6fc35f58ecd95a9b71c4f2329b911016e6bec66b3f2e6a4aad86bd2e99e2f9b"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -5020,7 +5453,7 @@ checksum = "08990546bf4edef8f431fa6326e032865f27138718c587dc21bc0265bbcb57cc"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -5029,7 +5462,7 @@ version = "0.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "5e383302e8ec8515204254685643de10811af0ed97ea37210dc26fb0032647f8"
 dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -5056,7 +5489,16 @@ version = "0.52.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
 dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -5091,18 +5533,18 @@ dependencies = [
 
 [[package]]
 name = "windows-targets"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
 dependencies = [
- "windows_aarch64_gnullvm 0.52.5",
- "windows_aarch64_msvc 0.52.5",
- "windows_i686_gnu 0.52.5",
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
  "windows_i686_gnullvm",
- "windows_i686_msvc 0.52.5",
- "windows_x86_64_gnu 0.52.5",
- "windows_x86_64_gnullvm 0.52.5",
- "windows_x86_64_msvc 0.52.5",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
 ]
 
 [[package]]
@@ -5111,7 +5553,7 @@ version = "0.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "6998aa457c9ba8ff2fb9f13e9d2a930dabcea28f1d0ab94d687d8b3654844515"
 dependencies = [
- "windows-targets 0.52.5",
+ "windows-targets 0.52.6",
 ]
 
 [[package]]
@@ -5128,9 +5570,9 @@ checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
 
 [[package]]
 name = "windows_aarch64_msvc"
@@ -5146,9 +5588,18 @@ checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.52.5"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_exe_info"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+checksum = "f7e7bfd02caf5cd98a197cec15c852685c8c42605f91d7be3083541a0b40a7ff"
+dependencies = [
+ "embed-resource",
+]
 
 [[package]]
 name = "windows_i686_gnu"
@@ -5164,15 +5615,15 @@ checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
 
 [[package]]
 name = "windows_i686_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
 
 [[package]]
 name = "windows_i686_msvc"
@@ -5188,9 +5639,9 @@ checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
 
 [[package]]
 name = "windows_x86_64_gnu"
@@ -5206,9 +5657,9 @@ checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
@@ -5224,9 +5675,9 @@ checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
 
 [[package]]
 name = "windows_x86_64_msvc"
@@ -5242,9 +5693,9 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.52.5"
+version = "0.52.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
 
 [[package]]
 name = "winit"
@@ -5254,10 +5705,10 @@ dependencies = [
  "ahash 0.8.11",
  "android-activity",
  "atomic-waker",
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "block2",
  "bytemuck",
- "calloop",
+ "calloop 0.12.4",
  "cfg_aliases 0.2.1",
  "concurrent-queue",
  "core-foundation",
@@ -5266,8 +5717,8 @@ dependencies = [
  "dpi",
  "js-sys",
  "libc",
- "memmap2 0.9.4",
- "ndk",
+ "memmap2",
+ "ndk 0.9.0",
  "objc2",
  "objc2-app-kit",
  "objc2-foundation",
@@ -5279,7 +5730,7 @@ dependencies = [
  "redox_syscall 0.4.1",
  "rustix",
  "sctk-adwaita",
- "smithay-client-toolkit",
+ "smithay-client-toolkit 0.18.1",
  "smol_str",
  "tracing",
  "unicode-segmentation",
@@ -5287,7 +5738,7 @@ dependencies = [
  "wasm-bindgen-futures",
  "wayland-backend",
  "wayland-client",
- "wayland-protocols",
+ "wayland-protocols 0.31.2",
  "wayland-protocols-plasma",
  "web-sys",
  "web-time",
@@ -5308,9 +5759,9 @@ dependencies = [
 
 [[package]]
 name = "winnow"
-version = "0.6.13"
+version = "0.6.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59b5e5f6c299a3c7890b876a2a587f3115162487e704907d9b6cd29473052ba1"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
 dependencies = [
  "memchr",
 ]
@@ -5354,7 +5805,7 @@ dependencies = [
  "as-raw-xcb-connection",
  "gethostname",
  "libc",
- "libloading 0.8.3",
+ "libloading 0.8.5",
  "once_cell",
  "rustix",
  "x11rb-protocol",
@@ -5368,9 +5819,9 @@ checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
 
 [[package]]
 name = "xcursor"
-version = "0.3.5"
+version = "0.3.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a0ccd7b4a5345edfcd0c3535718a4e9ff7798ffc536bb5b5a0e26ff84732911"
+checksum = "0ef33da6b1660b4ddbfb3aef0ade110c8b8a781a3b6382fa5f2b5b040fd55f61"
 
 [[package]]
 name = "xdg"
@@ -5380,12 +5831,12 @@ checksum = "213b7324336b53d2414b2db8537e56544d981803139155afa84f76eeebb7a546"
 
 [[package]]
 name = "xdg-home"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca91dcf8f93db085f3a0a29358cd0b9d670915468f4290e8b85d118a34211ab8"
+checksum = "ec1cdab258fb55c0da61328dc52c8764709b249011b2cad0454c72f0bf10a1f6"
 dependencies = [
  "libc",
- "windows-sys 0.52.0",
+ "windows-sys 0.59.0",
 ]
 
 [[package]]
@@ -5394,7 +5845,7 @@ version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "d039de8032a9a8856a6be89cea3e5d12fdd82306ab7c94d74e6deab2460651c5"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags 2.6.0",
  "dlib",
  "log",
  "once_cell",
@@ -5409,9 +5860,9 @@ checksum = "b9cc00251562a284751c9973bace760d86c0276c471b4be569fe6b068ee97a56"
 
 [[package]]
 name = "xml-rs"
-version = "0.8.20"
+version = "0.8.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "791978798f0597cfc70478424c2b4fdc2b7a8024aaff78497ef00f24ef674193"
+checksum = "539a77ee7c0de333dcc6da69b177380a0b81e0dacfa4f7344c465a36871ee601"
 
 [[package]]
 name = "yansi"
@@ -5427,9 +5878,9 @@ checksum = "c94451ac9513335b5e23d7a8a2b61a7102398b8cca5160829d313e84c9d98be1"
 
 [[package]]
 name = "zbus"
-version = "4.3.0"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23915fcb26e7a9a9dc05fd93a9870d336d6d032cd7e8cebf1c5c37666489fdd5"
+checksum = "bb97012beadd29e654708a0fdb4c84bc046f537aecfde2c3ee0a9e4b4d48c725"
 dependencies = [
  "async-broadcast",
  "async-executor",
@@ -5466,14 +5917,14 @@ dependencies = [
 
 [[package]]
 name = "zbus_macros"
-version = "4.3.0"
+version = "4.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02bcca0b586d2f8589da32347b4784ba424c4891ed86aa5b50d5e88f6b2c4f5d"
+checksum = "267db9407081e90bbfa46d841d3cbc60f59c0351838c4bc65199ecd79ab1983e"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
  "zvariant_utils",
 ]
 
@@ -5496,22 +5947,23 @@ checksum = "dd15f8e0dbb966fd9245e7498c7e9e5055d9e5c8b676b95bd67091cd11a1e697"
 
 [[package]]
 name = "zerocopy"
-version = "0.7.34"
+version = "0.7.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ae87e3fcd617500e5d106f0380cf7b77f3c6092aae37191433159dda23cfb087"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
 dependencies = [
+ "byteorder",
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.34"
+version = "0.7.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15e934569e47891f7d9411f1a451d947a60e000ab3bd24fbb970f000387d1b3b"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
 
 [[package]]
@@ -5531,9 +5983,9 @@ dependencies = [
 
 [[package]]
 name = "zvariant"
-version = "4.1.1"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9aa6d31a02fbfb602bfde791de7fedeb9c2c18115b3d00f3a36e489f46ffbbc7"
+checksum = "2084290ab9a1c471c38fc524945837734fbf124487e105daec2bb57fd48c81fe"
 dependencies = [
  "endi",
  "enumflags2",
@@ -5545,24 +5997,24 @@ dependencies = [
 
 [[package]]
 name = "zvariant_derive"
-version = "4.1.1"
+version = "4.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "642bf1b6b6d527988b3e8193d20969d53700a36eac734d21ae6639db168701c8"
+checksum = "73e2ba546bda683a90652bac4a279bc146adad1386f25379cf73200d2002c449"
 dependencies = [
  "proc-macro-crate",
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
  "zvariant_utils",
 ]
 
 [[package]]
 name = "zvariant_utils"
-version = "2.0.0"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc242db087efc22bd9ade7aa7809e4ba828132edc312871584a6b4391bdf8786"
+checksum = "c51bcff7cc3dbb5055396bcf774748c3dab426b4b8659046963523cee4808340"
 dependencies = [
  "proc-macro2",
  "quote",
- "syn 2.0.66",
+ "syn 2.0.74",
 ]
diff --git a/pkgs/by-name/ha/halloy/package.nix b/pkgs/by-name/ha/halloy/package.nix
index 44fd206c57498..3421fbe9f1ea9 100644
--- a/pkgs/by-name/ha/halloy/package.nix
+++ b/pkgs/by-name/ha/halloy/package.nix
@@ -13,25 +13,26 @@
   vulkan-loader,
   wayland,
   xorg,
+  alsa-lib,
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "halloy";
-  version = "2024.8";
+  version = "2024.11";
 
   src = fetchFromGitHub {
     owner = "squidowl";
     repo = "halloy";
     rev = "refs/tags/${version}";
-    hash = "sha256-OxxXjenZjP+3KrkxyXYxOXRFmrYm3deeiCuGrhpnF2I=";
+    hash = "sha256-kmdsC0SQoL5gppzBhnF0LfOFj14zeI3C6SdCBiVoKj0=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
       "dpi-0.1.1" = "sha256-25sOvEBhlIaekTeWvy3UhjPI1xrJbOQvw/OkTg12kQY=";
-      "glyphon-0.5.0" = "sha256-+z2my51aUeK9txLZKVAyQcWJ6f2YDY1mjxfc8Xsqi8E=";
-      "iced-0.13.0-dev" = "sha256-eHlauEZibbuqK5mdkNP6gsy1z9qxqEDn/xfFw7W5TcY=";
+      "glyphon-0.5.0" = "sha256-OGXLqiMjaZ7gR5ANkuCgkfn/I7c/4h9SRE6MZZMW3m4=";
+      "iced-0.13.0-dev" = "sha256-XQUaI16lGEMGFxqK3UNd8jQfUiBzomxlT/I+yeZncFo=";
     };
   };
 
@@ -43,6 +44,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs =
     [
+      alsa-lib
       libxkbcommon
       openssl
       vulkan-loader
diff --git a/pkgs/by-name/ha/halo/package.nix b/pkgs/by-name/ha/halo/package.nix
index ca51b3f8ecfd2..80abccbf14601 100644
--- a/pkgs/by-name/ha/halo/package.nix
+++ b/pkgs/by-name/ha/halo/package.nix
@@ -7,10 +7,10 @@
 }:
 stdenv.mkDerivation rec {
   pname = "halo";
-  version = "2.19.2";
+  version = "2.19.3";
   src = fetchurl {
     url = "https://github.com/halo-dev/halo/releases/download/v${version}/halo-${version}.jar";
-    hash = "sha256-+mp195Yyj4O5k/WxnAllVHbeTt/ZzR7olPG27xfUrlQ=";
+    hash = "sha256-Re0L+2P/Sxzj+fnuZi5uK2Hk72d8EvQGdjhglVbt41M=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/he/hello/package.nix b/pkgs/by-name/he/hello/package.nix
index 70cc95364afc8..659899bd5f9b5 100644
--- a/pkgs/by-name/he/hello/package.nix
+++ b/pkgs/by-name/he/hello/package.nix
@@ -31,12 +31,6 @@ stdenv.mkDerivation (finalAttrs: {
 
   passthru.tests = {
     version = testers.testVersion { package = hello; };
-
-    invariant-under-noXlibs =
-      testers.testEqualDerivation
-        "hello must not be rebuilt when environment.noXlibs is set."
-        hello
-        (nixos { environment.noXlibs = true; }).pkgs.hello;
   };
 
   passthru.tests.run = callPackage ./test.nix { hello = finalAttrs.finalPackage; };
diff --git a/pkgs/by-name/hy/hyprutils/package.nix b/pkgs/by-name/hy/hyprutils/package.nix
index bb8b059f7eb2a..076b77604958d 100644
--- a/pkgs/by-name/hy/hyprutils/package.nix
+++ b/pkgs/by-name/hy/hyprutils/package.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprutils";
-  version = "0.2.1";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprutils";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=";
+    hash = "sha256-PNnIpwGqpTvMU3N2r0wMQwK1E+t4Bb5fbJwblQvr+80=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/hy/hyprwayland-scanner/package.nix b/pkgs/by-name/hy/hyprwayland-scanner/package.nix
index b0a73bbceff85..c6c46e9fb15e9 100644
--- a/pkgs/by-name/hy/hyprwayland-scanner/package.nix
+++ b/pkgs/by-name/hy/hyprwayland-scanner/package.nix
@@ -9,13 +9,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "hyprwayland-scanner";
-  version = "0.4.0";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "hyprwm";
     repo = "hyprwayland-scanner";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-JPdL+Qul+jEueAn8CARfcWP83eJgwkhMejQYfDvrgvU=";
+    hash = "sha256-HIPEXyRRVZoqD6U+lFS1B0tsIU7p83FaB9m7KT/x6mQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ig/ignite-cli/package.nix b/pkgs/by-name/ig/ignite-cli/package.nix
index f4595e0b048e6..0db9b0a99b6fa 100644
--- a/pkgs/by-name/ig/ignite-cli/package.nix
+++ b/pkgs/by-name/ig/ignite-cli/package.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "ignite-cli";
-  version = "28.5.2";
+  version = "28.5.3";
 
   src = fetchFromGitHub {
     repo = "cli";
     owner = "ignite";
     rev = "v${version}";
-    hash = "sha256-RaK8NooOYYuk8RhxeeU9mB9PNSgWJ9nOxxcpi87YQQ0=";
+    hash = "sha256-ziuzSV7LjRgR1wNE1QD+OszIeXiip7pPU4/BD8fhV5s=";
   };
 
-  vendorHash = "sha256-u/EwT43K7Tu7ns0NIWkRl7OiQuP37zz4ERUwCLXY1TE=";
+  vendorHash = "sha256-5Z5AuZtPwfENKp8wMYfRqmnkX4W4fWTjWulT5uNusPo=";
 
   nativeBuildInputs = [ makeWrapper ];
 
diff --git a/pkgs/by-name/im/imgpkg/package.nix b/pkgs/by-name/im/imgpkg/package.nix
new file mode 100644
index 0000000000000..66b32695c2127
--- /dev/null
+++ b/pkgs/by-name/im/imgpkg/package.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildGoModule,
+  fetchFromGitHub,
+}:
+
+buildGoModule rec {
+  pname = "imgpkg";
+  version = "0.43.1";
+
+  src = fetchFromGitHub {
+    owner = "carvel-dev";
+    repo = "imgpkg";
+    rev = "v${version}";
+    hash = "sha256-RjTVJjuzjNTZrg1VZ4NrDf1SZmS+CGzofYTBQEZNIag=";
+  };
+
+  vendorHash = null;
+
+  subPackages = [ "cmd/imgpkg" ];
+
+  CGO_ENABLED = "0";
+  ldflags = [ "-X=carvel.dev/imgpkg/pkg/imgpkg/cmd.Version=${version}" ];
+
+  meta = {
+    description = "Store application configuration files in Docker/OCI registries";
+    homepage = "https://carvel.dev/imgpkg";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ benchand ];
+    mainProgram = "imgpkg";
+  };
+}
diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix
index 91216d32199a0..eb0a8c9e49586 100644
--- a/pkgs/by-name/ja/jan/package.nix
+++ b/pkgs/by-name/ja/jan/package.nix
@@ -5,10 +5,10 @@
 
 let
   pname = "jan";
-  version = "0.5.3";
+  version = "0.5.4";
   src = fetchurl {
     url = "https://github.com/janhq/jan/releases/download/v${version}/jan-linux-x86_64-${version}.AppImage";
-    hash = "sha256-lfN5ant3oS7uschxyCxmiKNLJUJiqWVZLaJ8djqNKzQ=";
+    hash = "sha256-BrNfpf9v8yAs4y3vaPlqtOI9SE7IFfZm/CYegcuZT3c=";
   };
 
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
diff --git a/pkgs/by-name/ko/koboldcpp/package.nix b/pkgs/by-name/ko/koboldcpp/package.nix
index 6b4a942fd4849..85053dc716ce4 100644
--- a/pkgs/by-name/ko/koboldcpp/package.nix
+++ b/pkgs/by-name/ko/koboldcpp/package.nix
@@ -53,13 +53,13 @@ let
 in
 effectiveStdenv.mkDerivation (finalAttrs: {
   pname = "koboldcpp";
-  version = "1.74";
+  version = "1.75.2";
 
   src = fetchFromGitHub {
     owner = "LostRuins";
     repo = "koboldcpp";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-tGG1+EGlCUmFpx/axijonOXydurwFxqjuoeDwHxC+pc=";
+    hash = "sha256-olMlYzde97RSx0OmDULSOFlM3imUq3AVxQdXyYBPd3Q=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/by-name/la/latexminted/package.nix b/pkgs/by-name/la/latexminted/package.nix
index 313084f41d47f..79b7a6b2b85dc 100644
--- a/pkgs/by-name/la/latexminted/package.nix
+++ b/pkgs/by-name/la/latexminted/package.nix
@@ -7,12 +7,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "latexminted";
-  version = "0.1.0b9";
+  version = "0.1.0b16";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QUFfoX1jv5pVQDEBGaVd1madfqbTWTJyXPh4gw7P5UE=";
+    hash = "sha256-9iUxoJIctp5IPEaEHqw0AwgcEkxlEyPTZhRkpXSjSIA=";
   };
 
   build-system = with python3Packages; [
@@ -22,6 +22,7 @@ python3Packages.buildPythonApplication rec {
   dependencies = with python3Packages; [
     pygments
     latex2pydata
+    latexrestricted
   ];
 
   passthru = {
diff --git a/pkgs/by-name/le/lefthook/package.nix b/pkgs/by-name/le/lefthook/package.nix
index 3d4fc68dbef96..531b0d6815553 100644
--- a/pkgs/by-name/le/lefthook/package.nix
+++ b/pkgs/by-name/le/lefthook/package.nix
@@ -6,7 +6,7 @@
 
 let
   pname = "lefthook";
-  version = "1.7.15";
+  version = "1.7.16";
 in
 buildGoModule {
   inherit pname version;
@@ -15,7 +15,7 @@ buildGoModule {
     owner = "evilmartians";
     repo = "lefthook";
     rev = "v${version}";
-    hash = "sha256-N79unpeeOwcdHJo9IbsGa/gmTyg+QQCJF599cshV3sc=";
+    hash = "sha256-SAFrtiSISW5QhFq9fow0CA5qvBY1RIfzZGvvfhOqxbY=";
   };
 
   vendorHash = "sha256-rJdtax3r5Nwew+ptY4kIAUtxqPguwrFMMRk78zrZUcU=";
diff --git a/pkgs/by-name/lu/luarocks-packages-updater/package.nix b/pkgs/by-name/lu/luarocks-packages-updater/package.nix
index 617bfa1057fbc..0659cd25aaf8e 100644
--- a/pkgs/by-name/lu/luarocks-packages-updater/package.nix
+++ b/pkgs/by-name/lu/luarocks-packages-updater/package.nix
@@ -4,10 +4,6 @@
 , lib
 , nix-prefetch-scripts
 , luarocks-nix
-, lua5_1
-, lua5_2
-, lua5_3
-, lua5_4
 , pluginupdate
 }:
 let
@@ -16,52 +12,44 @@ let
     nix nix-prefetch-scripts luarocks-nix
   ];
 
-  luaversions = [
-    lua5_1
-    lua5_2
-    lua5_3
-    lua5_4
-  ];
-
+  attrs = builtins.fromTOML (builtins.readFile ./pyproject.toml);
+  pname = attrs.project.name;
+  inherit (attrs.project) version;
 in
+
 python3Packages.buildPythonApplication {
-  pname = "luarocks-packages-updater";
-  version = "0.1";
+  inherit pname version;
+  pyproject = true;
 
-  format = "other";
+  src = lib.cleanSource ./.;
 
-  nativeBuildInputs = [
-    makeWrapper
-    python3Packages.wrapPython
+  build-system = [
+    python3Packages.setuptools
   ];
-  propagatedBuildInputs = [
+
+  dependencies = [
     python3Packages.gitpython
   ];
 
-  dontUnpack = true;
-
-  installPhase =
-    ''
-    mkdir -p $out/bin $out/lib
-    cp ${./updater.py} $out/bin/luarocks-packages-updater
-    cp ${pluginupdate} $out/lib/pluginupdate.py
-
-    # wrap python scripts
-    makeWrapperArgs+=( --prefix PATH : "${path}" --prefix PYTHONPATH : "$out/lib" \
-      --set LUA_51 ${lua5_1} \
-      --set LUA_52 ${lua5_2} \
-      --set LUA_53 ${lua5_3} \
-      --set LUA_54 ${lua5_4}
-    )
-    wrapPythonProgramsIn "$out"
+  postFixup = ''
+    echo "pluginupdate folder ${pluginupdate}"
+    wrapProgram $out/bin/luarocks-packages-updater \
+     --prefix PYTHONPATH : "${pluginupdate}" \
+     --prefix PATH : "${path}"
   '';
 
   shellHook = ''
-    export PYTHONPATH="maintainers/scripts:$PYTHONPATH"
+    export PYTHONPATH="maintainers/scripts/pluginupdate-py:$PYTHONPATH"
     export PATH="${path}:$PATH"
   '';
 
-  meta.mainProgram = "luarocks-packages-updater";
+  meta = {
+    inherit (attrs.project) description;
+    license = lib.licenses.gpl3Only;
+    homepage = attrs.project.urls.Homepage;
+    mainProgram = "luarocks-packages-updater";
+    maintainers = with lib.maintainers; [ teto ];
+  };
 }
 
 
diff --git a/pkgs/by-name/lu/luarocks-packages-updater/pyproject.toml b/pkgs/by-name/lu/luarocks-packages-updater/pyproject.toml
new file mode 100644
index 0000000000000..0f19ce5f832c7
--- /dev/null
+++ b/pkgs/by-name/lu/luarocks-packages-updater/pyproject.toml
@@ -0,0 +1,19 @@
+[build-system]
+build-backend = "setuptools.build_meta"
+requires = [ "setuptools" ]
+
+[project]
+name = "luarocks-packages-updater"
+version = "0.0.1"
+description = """
+Module to update luarocks-packages"""
+
+[project.urls]
+Homepage = "https://github.com/NixOS/nixpkgs/tree/master/pkgs/by-name/lu/luarocks-packages-updater"
+
+[project.scripts]
+luarocks-packages-updater = "updater:main"
+
+[tool.ruff]
+line-length = 120
+indent-width = 4
diff --git a/pkgs/by-name/lu/luarocks-packages-updater/updater.py b/pkgs/by-name/lu/luarocks-packages-updater/updater.py
index 335e15c444276..91194879b875e 100755
--- a/pkgs/by-name/lu/luarocks-packages-updater/updater.py
+++ b/pkgs/by-name/lu/luarocks-packages-updater/updater.py
@@ -50,7 +50,7 @@ class LuaPlugin:
     name: str
     """Name of the plugin, as seen on luarocks.org"""
     rockspec: str
-    """Full path towards the rockspec"""
+    """Full URI towards the rockspec"""
     ref: Optional[str]
     """git reference (branch name/tag)"""
     version: Optional[str]
@@ -60,7 +60,7 @@ class LuaPlugin:
     Its value can be 'http://luarocks.org/dev'
     """
     luaversion: Optional[str]
-    """Attribue of the lua interpreter if a package is available only for a specific lua version"""
+    """lua version if a package is available only for a specific lua version"""
     maintainers: Optional[str]
     """ Optional string listing maintainers separated by spaces"""
 
diff --git a/pkgs/by-name/ma/maestro/package.nix b/pkgs/by-name/ma/maestro/package.nix
index 37adfb274d299..e0f83c3ba4d19 100644
--- a/pkgs/by-name/ma/maestro/package.nix
+++ b/pkgs/by-name/ma/maestro/package.nix
@@ -5,15 +5,16 @@
   unzip,
   makeWrapper,
   jre_headless,
+  writeScript,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "maestro";
-  version = "1.37.9";
+  version = "1.38.1";
 
   src = fetchurl {
-    url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${version}/maestro.zip";
-    hash = "sha256-bWZuD2+v6molwW1ef2a3djBnVfYscBjILLGXeeSUmoU=";
+    url = "https://github.com/mobile-dev-inc/maestro/releases/download/cli-${finalAttrs.version}/maestro.zip";
+    hash = "sha256-AogEVg8R73x5Q/LxZamGbFacCqB8JZeERqyf+UPXBx0=";
   };
 
   dontUnpack = true;
@@ -33,12 +34,24 @@ stdenv.mkDerivation rec {
     wrapProgram $out/bin/maestro --prefix PATH : "${lib.makeBinPath [ jre_headless ]}"
   '';
 
+  passthru.updateScript = writeScript "update-maestro" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+    set -o errexit -o nounset -o pipefail
+
+    NEW_VERSION=$(curl --silent https://api.github.com/repos/mobile-dev-inc/maestro/releases | jq 'first(.[].tag_name | ltrimstr("cli-") | select(contains("dev.") | not))' --raw-output)
+
+    update-source-version "maestro" "$NEW_VERSION" --print-changes
+  '';
+
   meta = with lib; {
     description = "Mobile UI Automation tool";
     homepage = "https://maestro.mobile.dev/";
     license = licenses.asl20;
     platforms = lib.platforms.all;
+    sourceProvenance = [ lib.sourceTypes.binaryNativeCode ];
     changelog = "https://github.com/mobile-dev-inc/maestro/blob/main/CHANGELOG.md";
     maintainers = with maintainers; [ SubhrajyotiSen ];
+    mainProgram = "maestro";
   };
-}
+})
diff --git a/pkgs/by-name/ma/manifold/package.nix b/pkgs/by-name/ma/manifold/package.nix
index af0057327d8da..6eafc1e001afc 100644
--- a/pkgs/by-name/ma/manifold/package.nix
+++ b/pkgs/by-name/ma/manifold/package.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "manifold";
-  version = "2.5.1-unstable-2024-09-06";
+  version = "2.5.1-unstable-2024-09-15";
 
   src = fetchFromGitHub {
     owner = "elalish";
     repo = "manifold";
-    rev = "6f009ca13fab71e53f118179742cc2bb40455721";
-    hash = "sha256-McP/Rdxss93YHZcPSSWaRjyGgUiQJ3mZXgzcHWldORU=";
+    rev = "22c66051dfdbcefa2012e30dd12c9b5a20f89a01";
+    hash = "sha256-Fbev5dTgXjXdC7fzWfHnypTBel++DiMns8OzN1bH1OA=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -49,5 +49,6 @@ stdenv.mkDerivation (finalAttrs: {
       hzeller
       pca006132
     ];
+    platforms = lib.platforms.linux; # currently issues with Darwin
   };
 })
diff --git a/pkgs/by-name/ma/maven/build-maven-package.nix b/pkgs/by-name/ma/maven/build-maven-package.nix
index 3808d40c6f9fc..a84cd64ee43c8 100644
--- a/pkgs/by-name/ma/maven/build-maven-package.nix
+++ b/pkgs/by-name/ma/maven/build-maven-package.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation (builtins.removeAttrs args [ "mvnFetchExtraArgs" ] // {
     runHook preBuild
 
     mvnDeps=$(cp -dpR ${fetchedMavenDeps}/.m2 ./ && chmod +w -R .m2 && pwd)
+    runHook afterDepsSetup
     mvn package -o -nsu "-Dmaven.repo.local=$mvnDeps/.m2" ${mvnSkipTests} ${mvnParameters}
 
     runHook postBuild
diff --git a/pkgs/by-name/mi/misconfig-mapper/package.nix b/pkgs/by-name/mi/misconfig-mapper/package.nix
index ae7bdf39a2365..c611ccdd7eaf0 100644
--- a/pkgs/by-name/mi/misconfig-mapper/package.nix
+++ b/pkgs/by-name/mi/misconfig-mapper/package.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "misconfig-mapper";
-  version = "1.8.4";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "intigriti";
     repo = "misconfig-mapper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zg7OBHrveBmsljUJUE0/kz3AkIbUtTHf64BQbROUXsQ=";
+    hash = "sha256-mi3lM/BQ16dCVX/kVRNhIis4sh6M0TMuK05q/pXJiS8=";
   };
 
   vendorHash = "sha256-aABtsS39yxBBFMN98fjr4gy6QeF3dobrZqeZmmv2ywQ=";
diff --git a/pkgs/by-name/mo/mountpoint-s3/package.nix b/pkgs/by-name/mo/mountpoint-s3/package.nix
index 2a80e949de43c..68533127f9bad 100644
--- a/pkgs/by-name/mo/mountpoint-s3/package.nix
+++ b/pkgs/by-name/mo/mountpoint-s3/package.nix
@@ -8,17 +8,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mountpoint-s3";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "mountpoint-s3";
     rev = "v${version}";
-    hash = "sha256-uzTnkspTS3WvJUOmp8z7L/L1ut6NvnSlnsRa5yvaTRI=";
+    hash = "sha256-8t/gAz08jFRuF0q3bo4y8tiIq4iYgAkXf5udYNIccu0=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-kru8CBN9Mqm8Og7SKICjqSvds7z58RRqI4W2txLvWXo=";
+  cargoHash = "sha256-Fz7LfAn78JVip0QshoL5KMAEHMtG8bkLzz4v95/qt3E=";
 
   # thread 'main' panicked at cargo-auditable/src/collect_audit_data.rs:77:9:
   # cargo metadata failure: error: none of the selected packages contains these features: libfuse3
diff --git a/pkgs/by-name/nw/nwg-drawer/package.nix b/pkgs/by-name/nw/nwg-drawer/package.nix
index aee0747973c09..c5ba0f1e396f6 100644
--- a/pkgs/by-name/nw/nwg-drawer/package.nix
+++ b/pkgs/by-name/nw/nwg-drawer/package.nix
@@ -12,16 +12,16 @@
 
 let
   pname = "nwg-drawer";
-  version = "0.4.9";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "nwg-piotr";
     repo = "nwg-drawer";
     rev = "v${version}";
-    hash = "sha256-KhgALKJNS7Y+u5pAfpvTup0W1+Vi6r1uaVFQZRiv4Dk=";
+    hash = "sha256-0ksvat0NDC2P+T0TyDAKh7YNLYhH+znxqLCqQ/5GDj8=";
   };
 
-  vendorHash = "sha256-J7r3YyfV5lRZbjKo7ZNHQrOqR1GNbUB7GxRMlXuuw/c=";
+  vendorHash = "sha256-KULOXphc6GWIGP79C9sgfAIRMoqwcjaVp4jVyF6of/E=";
 in
 buildGoModule {
   inherit pname version src vendorHash;
diff --git a/pkgs/by-name/op/openmsx/package.nix b/pkgs/by-name/op/openmsx/package.nix
index c05b882b9634a..0680d48ebecd3 100644
--- a/pkgs/by-name/op/openmsx/package.nix
+++ b/pkgs/by-name/op/openmsx/package.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "openmsx";
-  version = "19.1";
+  version = "20_0";
 
   src = fetchFromGitHub {
     owner = "openMSX";
     repo = "openMSX";
     rev = "RELEASE_${builtins.replaceStrings ["."] ["_"] finalAttrs.version}";
-    hash = "sha256-5ULljLmEDGFp32rnrXKLfL6P3ad2STJUNngBuWlRCbc=";
+    hash = "sha256-iY+oZ7fHZnnEGunM4kOxOGH2Biqj2PfdLhbT8J4mYrA=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/by-name/op/openscad-unstable/package.nix b/pkgs/by-name/op/openscad-unstable/package.nix
index a720fafe20d9a..eb1dd005af464 100644
--- a/pkgs/by-name/op/openscad-unstable/package.nix
+++ b/pkgs/by-name/op/openscad-unstable/package.nix
@@ -28,6 +28,7 @@
 , libsForQt5
 , libspnav
 , libzip
+, manifold
 , mesa
 , mpfr
 , python3
@@ -36,61 +37,23 @@
 , wayland-protocols
 , wrapGAppsHook3
 , xorg
+, mimalloc
+, opencsg
 }:
-let
-  # get cccl from source to avoid license issues
-  nvidia-cccl = clangStdenv.mkDerivation {
-    pname = "nvidia-cccl";
-    # note, after v2.2.0, manifold dependency fails with some swap() ambiguities
-    version = "2.2.0";
-    src = fetchFromGitHub {
-      owner = "NVIDIA";
-      repo = "cccl";
-      fetchSubmodules = true;
-      rev = "v2.2.0";
-      hash = "sha256-azHDAuK0rAHrH+XkN3gHDrbwZOclP3zbEMe8VRpMjDQ=";
-    };
-    patches = [ ./thrust-cmake.patch ];
-    nativeBuildInputs = [ cmake pkg-config ];
-    buildInputs = [ tbb_2021_11 ];
-    cmakeFlags = [
-      # only enable what we need
-      "-DCCCL_ENABLE_CUB=OFF"
-      "-DCCCL_ENABLE_LIBCUDACXX=ON"
-      "-DCCCL_ENABLE_THRUST=ON"
-      "-DCCCL_ENABLE_TESTING=OFF"
-      "-DCCCL_ENABLE_EXAMPLES=OFF"
-
-      "-DTHRUST_DEVICE_SYSTEM=TBB"
-      "-DTHRUST_HOST_SYSTEM=CPP"
-      "-DTHRUST_ENABLE_HEADER_TESTING=OFF"
-      "-DTHRUST_ENABLE_TESTING=OFF"
-      "-DTHRUST_ENABLE_EXAMPLES=OFF"
-
-      "-DLIBCUDACXX_ENABLE_CUDA=OFF"
-      "-DLIBCUDACXX_ENABLE_STATIC_LIBRARY=OFF"
-      "-DLIBCUDACXX_ENABLE_LIBCUDACXX_TESTS=OFF"
-    ];
-    meta = with lib; {
-      description = "CUDA C++ Core Libraries";
-      homepage = "https://github.com/NVIDIA/cccl";
-      license = licenses.asl20;
-      platforms = platforms.unix;
-    };
-  };
-in
 # clang consume much less RAM than GCC
 clangStdenv.mkDerivation rec {
   pname = "openscad-unstable";
-  version = "2024-08-17";
+  version = "2024-09-22";
   src = fetchFromGitHub {
     owner = "openscad";
     repo = "openscad";
-    rev = "a16ca2a670840cfecb76254967380385d4d573cb";
-    hash = "sha256-YadbrYaxxdVNejasFW0MbcYwjwTHHQbVjqen9PKEsYQ=";
-    fetchSubmodules = true;
+    rev = "1cf4e97ed488d606c823f107dcc361f218aa84ca";
+    hash = "sha256-5WzLAQnjH+4JjJhh9pCgY3j8+lyNPrtY9a104tzkglo=";
+    fetchSubmodules = true;  # Only really need sanitizers-cmake and MCAD
   };
+
   patches = [ ./test.diff ];
+
   nativeBuildInputs = [
     (python3.withPackages (ps: with ps; [ numpy pillow ]))
     bison
@@ -103,12 +66,10 @@ clangStdenv.mkDerivation rec {
     pkg-config
   ];
   buildInputs = with libsForQt5; with qt5; [
-    # manifold dependencies
     clipper2
     glm
     tbb_2021_11
-    nvidia-cccl
-
+    mimalloc
     boost
     cairo
     cgal_5
@@ -119,11 +80,13 @@ clangStdenv.mkDerivation rec {
     ghostscript
     glib
     gmp
+    opencsg
     harfbuzz
     hidapi
     lib3mf
     libspnav
     libzip
+    manifold
     mpfr
     qscintilla
     qtbase
@@ -143,7 +106,8 @@ clangStdenv.mkDerivation rec {
   cmakeFlags = [
     "-DEXPERIMENTAL=ON" # enable experimental options
     "-DSNAPSHOT=ON" # nightly icons
-    "-DUSE_BUILTIN_OPENCSG=ON" # bundled latest opencsg
+    "-DUSE_BUILTIN_OPENCSG=OFF"
+    "-DUSE_BUILTIN_MANIFOLD=OFF"
     "-DOPENSCAD_VERSION=\"${builtins.replaceStrings ["-"] ["."] version}\""
     "-DCMAKE_UNITY_BUILD=ON" # faster build
     # IPO
@@ -180,6 +144,5 @@ clangStdenv.mkDerivation rec {
     platforms = lib.platforms.unix;
     maintainers = with lib.maintainers; [ pca006132 raskin ];
     mainProgram = "openscad";
-    broken = true;  # https://github.com/NixOS/nixpkgs/issues/341043
   };
 }
diff --git a/pkgs/by-name/pi/pipet/package.nix b/pkgs/by-name/pi/pipet/package.nix
new file mode 100644
index 0000000000000..6a49e7d3c934c
--- /dev/null
+++ b/pkgs/by-name/pi/pipet/package.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildGoModule,
+}:
+
+buildGoModule rec {
+  pname = "pipet";
+  version = "0.2.1";
+
+  src = fetchFromGitHub {
+    owner = "bjesus";
+    repo = "pipet";
+    rev = version;
+    hash = "sha256-PqOx/aFI5gHt78th1nkSKlTGw/r1eU7Ggz5kvtjMCmI=";
+  };
+
+  vendorHash = "sha256-jNIjF5jxcpNLAjuWo7OG/Ac4l6NpQNCKzYUgdAoL+C4=";
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=${version}"
+    "-X main.currentSha=${src.rev}"
+  ];
+
+  doCheck = false; # Requires network
+
+  meta = {
+    homepage = "https://github.com/bjesus/pipet";
+    description = "Scraping and extracting data from online assets";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bjesus ];
+    mainProgram = "pipet";
+  };
+}
diff --git a/pkgs/tools/misc/plantuml/plantuml-c4.nix b/pkgs/by-name/pl/plantuml-c4/package.nix
index 77cfa82e894fc..a17aedefee262 100644
--- a/pkgs/tools/misc/plantuml/plantuml-c4.nix
+++ b/pkgs/by-name/pl/plantuml-c4/package.nix
@@ -1,4 +1,13 @@
-{ lib, stdenv, makeWrapper, fetchzip, runCommand, plantuml, plantuml-c4, jre }:
+{
+  lib,
+  stdenv,
+  fetchzip,
+  jre,
+  makeWrapper,
+  plantuml-c4,
+  plantuml,
+  runCommand,
+}:
 
 # The C4-PlantUML docs say that it suffices to run plantuml with the
 # -DRELATIVE_INCLUDE="..." arg to make plantuml find the C4 templates
@@ -12,13 +21,13 @@
 
 let
   c4-lib = fetchzip {
-    url = "https://github.com/plantuml-stdlib/C4-PlantUML/archive/refs/tags/v2.8.0.zip";
-    hash = "sha256-pGtTFg7HcAFYPrjd+CAaxS4C6Cqaj94aq45v3NpiAxM=";
+    url = "https://github.com/plantuml-stdlib/C4-PlantUML/archive/refs/tags/v2.10.0.zip";
+    hash = "sha256-p9Njb7VauXVf6yOBDQrO9mS+za9NntFUCK5tig0mH3U=";
   };
 
   sprites = fetchzip {
-    url = "https://github.com/tupadr3/plantuml-icon-font-sprites/archive/fa3f885dbd45c9cd0cdf6c0e5e4fb51ec8b76582.zip";
-    hash = "sha256-lt9+NNMIaZSkKNsGyHoqXUCTlKmZFGfNYYGjer6X0Xc=";
+    url = "https://github.com/tupadr3/plantuml-icon-font-sprites/archive/refs/tags/v3.0.0.zip";
+    hash = "sha256-I/cR1VPR7aKyTZF9X/4GkgcxV9+sLgNpTZugvCy0Dvs=";
   };
 
   # In order to pre-fix the plantuml.jar parameter with the argument
@@ -26,22 +35,24 @@ let
   # This way the plantuml derivation can remain unchanged.
   plantumlWithExtraPath =
     let
-      plantumlIncludePath = lib.concatStringsSep ":" [ c4-lib sprites ];
+      plantumlIncludePath = lib.concatStringsSep ":" [
+        c4-lib
+        sprites
+      ];
       includeFlag = "-Dplantuml.include.path=${lib.escapeShellArg plantumlIncludePath}";
-      postFixedJre =
-        runCommand "jre-postfixed" { nativeBuildInputs = [ makeWrapper ]; } ''
-          mkdir -p $out/bin
+      postFixedJre = runCommand "jre-postfixed" { nativeBuildInputs = [ makeWrapper ]; } ''
+        mkdir -p $out/bin
 
-          makeWrapper ${jre}/bin/java $out/bin/java \
-            --add-flags ${lib.escapeShellArg includeFlag}
-        '';
+        makeWrapper ${jre}/bin/java $out/bin/java \
+          --add-flags ${lib.escapeShellArg includeFlag}
+      '';
     in
     plantuml.override { jre = postFixedJre; };
 in
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   pname = "plantuml-c4";
-  version = "2.8.0";
+  version = "2.10.0";
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -55,20 +66,24 @@ stdenv.mkDerivation rec {
   '';
 
   passthru.tests.example-c4-diagram =
-    runCommand "c4-plantuml-sample.png" { nativeBuildInputs = [ plantuml-c4 ]; } ''
-      sed 's/https:.*\///' "${c4-lib}/samples/C4_Context Diagram Sample - enterprise.puml" > sample.puml
-      plantuml sample.puml -o $out
+    runCommand "c4-plantuml-sample.png" { nativeBuildInputs = [ plantuml-c4 ]; }
+      ''
+        sed 's/https:.*\///' "${c4-lib}/samples/C4_Context Diagram Sample - enterprise.puml" > sample.puml
+        plantuml sample.puml -o $out
 
-      sed 's/!include ..\//!include /' ${sprites}/examples/complex-example.puml > sprites.puml
-      plantuml sprites.puml -o $out
-    '';
+        sed 's/!include ..\//!include /' ${sprites}/examples/complex-example.puml > sprites.puml
+        plantuml sprites.puml -o $out
+      '';
 
   meta = with lib; {
     description = "PlantUML bundled with C4-Plantuml and plantuml sprites library";
     mainProgram = "plantuml";
     homepage = "https://github.com/plantuml-stdlib/C4-PlantUML";
     license = licenses.mit;
-    maintainers = with maintainers; [ tfc ];
+    maintainers = with maintainers; [
+      tfc
+      anthonyroussel
+    ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/plantuml-server/default.nix b/pkgs/by-name/pl/plantuml-server/package.nix
index 0eed91bdb99e8..189da083d1ef2 100644
--- a/pkgs/tools/misc/plantuml-server/default.nix
+++ b/pkgs/by-name/pl/plantuml-server/package.nix
@@ -1,18 +1,22 @@
-{ lib, stdenv, fetchurl, nixosTests }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  nixosTests,
+}:
 
-let
-  version = "1.2024.7";
-in
 stdenv.mkDerivation rec {
   pname = "plantuml-server";
-  inherit version;
+  version = "1.2024.7";
+
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml-server/releases/download/v${version}/plantuml-v${version}.war";
-    sha256 = "sha256-9YTclV+FoiNbcpeNtlbbozqjB1BN9EJn03CzyHDbC+8=";
+    hash = "sha256-9YTclV+FoiNbcpeNtlbbozqjB1BN9EJn03CzyHDbC+8=";
   };
 
   dontUnpack = true;
-  installPhase = ''
+
+  postInstall = ''
     mkdir -p "$out/webapps"
     cp "$src" "$out/webapps/plantuml.war"
   '';
@@ -27,6 +31,9 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3Plus;
     platforms = platforms.all;
-    maintainers = with maintainers; [ truh ];
+    maintainers = with maintainers; [
+      truh
+      anthonyroussel
+    ];
   };
 }
diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/by-name/pl/plantuml/package.nix
index 83476bd995735..cfb35e1d7c632 100644
--- a/pkgs/tools/misc/plantuml/default.nix
+++ b/pkgs/by-name/pl/plantuml/package.nix
@@ -1,18 +1,20 @@
-{ lib
-, stdenvNoCC
-, fetchurl
-, makeBinaryWrapper
-, jre
-, graphviz
+{
+  lib,
+  stdenvNoCC,
+  fetchurl,
+  graphviz,
+  jre,
+  makeBinaryWrapper,
+  testers,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "plantuml";
-  version = "1.2024.5";
+  version = "1.2024.7";
 
   src = fetchurl {
     url = "https://github.com/plantuml/plantuml/releases/download/v${finalAttrs.version}/plantuml-pdf-${finalAttrs.version}.jar";
-    hash = "sha256-YayIedHIIpecVF7BZSvBTp66Eb7He+l+1RCir5KuL28=";
+    hash = "sha256-8BlAPc2BeojyTcZVboUA6+sOA5AO5eG871mSIWinm5E=";
   };
 
   nativeBuildInputs = [
@@ -30,18 +32,28 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   doInstallCheck = true;
+
   postCheckInstall = ''
     $out/bin/plantuml -help
     $out/bin/plantuml -testdot
   '';
 
+  passthru.tests.version = testers.testVersion {
+    package = finalAttrs.finalPackage;
+    command = "plantuml --version";
+  };
+
   meta = {
     description = "Draw UML diagrams using a simple and human readable text description";
     homepage = "https://plantuml.com/";
     # "plantuml -license" says GPLv3 or later
     license = lib.licenses.gpl3Plus;
     mainProgram = "plantuml";
-    maintainers = with lib.maintainers; [ bjornfor Mogria ];
+    maintainers = with lib.maintainers; [
+      bjornfor
+      Mogria
+      anthonyroussel
+    ];
     platforms = lib.platforms.unix;
     sourceProvenance = with lib.sourceTypes; [ binaryBytecode ];
   };
diff --git a/pkgs/by-name/pm/pmtiles/package.nix b/pkgs/by-name/pm/pmtiles/package.nix
index 230b1d65bdaa9..47afc221df151 100644
--- a/pkgs/by-name/pm/pmtiles/package.nix
+++ b/pkgs/by-name/pm/pmtiles/package.nix
@@ -1,16 +1,16 @@
 { lib, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "pmtiles";
-  version = "1.21.0";
+  version = "1.22.0";
 
   src = fetchFromGitHub {
     owner = "protomaps";
     repo = "go-pmtiles";
     rev = "v${version}";
-    hash = "sha256-scicNAl1Lu8oD/g/63CXLeys+yorpH6Unhk5p4V78eY=";
+    hash = "sha256-r3gp0f771Cfy4JNekilnct+FKu4nOb+8y+B1A+anJ5Y=";
   };
 
-  vendorHash = "sha256-8HShM4YznUAc6rJyDbdL5vv0dOk+d4IRKQpmEhWiNjo=";
+  vendorHash = "sha256-5oKcq1eTrcjQKWySDOsEFFbKkld9g494D5Tg9Bej8JQ=";
 
   ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=v${version}" ];
 
diff --git a/pkgs/by-name/pr/previewqt/package.nix b/pkgs/by-name/pr/previewqt/package.nix
index 82508c4df5d3d..4014fa91050ec 100644
--- a/pkgs/by-name/pr/previewqt/package.nix
+++ b/pkgs/by-name/pr/previewqt/package.nix
@@ -1,64 +1,98 @@
 {
   lib,
-  vips,
-  resvg,
-  mpv,
-  libraw,
-  imagemagick,
-  libdevil,
-  stdenv,
-  fetchFromGitLab,
   cmake,
+  exiv2,
+  extra-cmake-modules,
+  fetchFromGitLab,
+  imagemagick,
   libarchive,
+  libdevil,
+  libraw,
+  mpv,
+  pkg-config,
   qt6Packages,
-  extra-cmake-modules,
-  exiv2,
+  resvg,
+  stdenv,
+  vips,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "previewqt";
   version = "3.0";
 
   src = fetchFromGitLab {
+    name = "previewqt-sources-${finalAttrs.version}";
     owner = "lspies";
     repo = "previewqt";
-    rev = "refs/tags/v${version}";
+    rev = "refs/tags/v${finalAttrs.version}";
     hash = "sha256-cDtqgezKGgSdhw8x1mM4cZ0H3SfUPEyWP6rRD+kRwXc=";
   };
 
-  # can't find qtquick3d
-  strictDeps = false;
-
   nativeBuildInputs = [
     cmake
-    extra-cmake-modules
+    pkg-config
     qt6Packages.wrapQtAppsHook
   ];
 
-  buildInputs = [
-    exiv2
-    imagemagick
-    qt6Packages.poppler
-    qt6Packages.qtmultimedia
-    qt6Packages.qtquick3d
-    qt6Packages.qtsvg
-    qt6Packages.qttools
-    qt6Packages.qtwebengine
-    libarchive
-    libdevil
-    libraw
-    mpv
-    resvg
-    vips
-  ];
+  buildInputs =
+    [
+      exiv2
+      extra-cmake-modules
+      imagemagick
+      libarchive
+      libdevil
+      libraw
+      mpv
+      resvg
+      vips
+    ]
+    ++ [
+      qt6Packages.poppler
+      qt6Packages.qtmultimedia
+      qt6Packages.qtquick3d
+      qt6Packages.qtsvg
+      qt6Packages.qttools
+      qt6Packages.qtwebengine
+    ];
+
+  strictDeps = true;
 
   meta = {
+    homepage = "https://previewqt.org/";
     description = "Qt-based file previewer";
-    homepage = "https://photoqt.org/previewqt";
-    changelog = "https://gitlab.com/lspies/previewqt/-/blob/v${version}/CHANGELOG";
+    longDescription = ''
+      PhotoQt is an image viewer that provides a simple and uncluttered
+      interface. Yet, hidden beneath the surface awaits a large array of
+      features. Here are some of its main features (not an exhaustive
+      list). Suggestions for new features are always welcome.
+
+      - Support of ImageMagick/GraphicsMagick, Libraw, FreeImage, DevIL,
+        libvips, Poppler, libarchive, and video files.
+      - Touchscreen support
+      - Support for Motion Photos and Apple Live Photos
+      - Support for (partial) photo spheres and 360 degree panoramas using
+        equirectangular projection
+      - Explore images on an interactive map according to their embedded GPS
+        location
+      - Chromecast support
+      - Basic image manipulations
+      - Convert images between formats
+      - Keyboard and mouse shortcuts
+      - Upload images directly to imgur.com
+      - Set image as wallpaper directly from inside PhotoQt
+      - Slideshow feature
+      - Display Exif information (including tagging of faces)
+      - Detect and display bar codes and QR codes in images
+      - Thumbnail Cache
+      - System Tray Usage
+      - Command Line Options
+      - Several translations available (help wanted)
+      - and much more...
+    '';
+    changelog = "https://gitlab.com/lspies/previewqt/-/blob/v${finalAttrs.version}/CHANGELOG";
     license = lib.licenses.gpl2Plus;
-    maintainers = with lib.maintainers; [ ];
     mainProgram = "previewqt";
+    maintainers = with lib.maintainers; [ AndersonTorres ];
     platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/by-name/qr/qrtool/package.nix b/pkgs/by-name/qr/qrtool/package.nix
index bc79fb038f8e0..1743b5e511d09 100644
--- a/pkgs/by-name/qr/qrtool/package.nix
+++ b/pkgs/by-name/qr/qrtool/package.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "qrtool";
-  version = "0.11.4";
+  version = "0.11.5";
 
   src = fetchFromGitHub {
     owner = "sorairolake";
     repo = "qrtool";
     rev = "v${version}";
-    hash = "sha256-lD/xi2k5baZGUUixy/032jTBevr0uQIT/JmX+d+kPyA=";
+    hash = "sha256-2Msc8VTEzpK5eQHxJxNekj6YSqFRX/DN206hvYshiOg=";
   };
 
-  cargoHash = "sha256-lR/LusIgdA+G7YeSLHjxdcC96tOSqSyalVamS42ORs0=";
+  cargoHash = "sha256-wBEimPiht7VN3lQfPlflrG2L47bfNnipK/JmurKqHrg=";
 
   nativeBuildInputs = [
     asciidoctor
diff --git a/pkgs/by-name/ra/railway/package.nix b/pkgs/by-name/ra/railway/package.nix
index df8b8e7224a57..2e7cf3d90e05d 100644
--- a/pkgs/by-name/ra/railway/package.nix
+++ b/pkgs/by-name/ra/railway/package.nix
@@ -12,16 +12,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "railway";
-  version = "3.14.0";
+  version = "3.14.1";
 
   src = fetchFromGitHub {
     owner = "railwayapp";
     repo = "cli";
     rev = "v${version}";
-    hash = "sha256-W9p987yn04Ije6JXFndHXB4rENGBTIiRmCh6fDhXJ4I=";
+    hash = "sha256-w52PzDRApKuRgJLYxY8ikqNOo6rC0kLCKWh8tgFzcIY=";
   };
 
-  cargoHash = "sha256-/Lot/Cxg/BUp4MFp6VkJHR7jy7mUe7qwJDhPS8kOeUk=";
+  cargoHash = "sha256-6VjloZ8s5LqyYPz1uMwdkwvHIhXjmifjd46PIx5d8xQ=";
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/pkgs/by-name/re/renovate/package.nix b/pkgs/by-name/re/renovate/package.nix
index 8dbf447958d33..e7f615aba6048 100644
--- a/pkgs/by-name/re/renovate/package.nix
+++ b/pkgs/by-name/re/renovate/package.nix
@@ -21,13 +21,13 @@ let
 in
 stdenv'.mkDerivation (finalAttrs: {
   pname = "renovate";
-  version = "38.73.5";
+  version = "38.93.1";
 
   src = fetchFromGitHub {
     owner = "renovatebot";
     repo = "renovate";
     rev = "refs/tags/${finalAttrs.version}";
-    hash = "sha256-+kracgelM8VOIgEtDfaXWokNZgiwl+s/k1yx6RxQk0c=";
+    hash = "sha256-4NvFS4WWdV3Csuv28/wq6EvB+in5bo1N4Fn602bi4rE=";
   };
 
   postPatch = ''
@@ -44,7 +44,7 @@ stdenv'.mkDerivation (finalAttrs: {
 
   pnpmDeps = pnpm_9.fetchDeps {
     inherit (finalAttrs) pname version src;
-    hash = "sha256-J61fOjANS7WKd3HLaqJZE1m2jFrMTknW6SGdy/yVIKg=";
+    hash = "sha256-cjk7PS4DUAgmg+mLUaWJFTjQv2GcPdr1VchNRjJgqsk=";
   };
 
   env.COREPACK_ENABLE_STRICT = 0;
diff --git a/pkgs/by-name/ru/ruff/Cargo.lock b/pkgs/by-name/ru/ruff/Cargo.lock
index 64652add4bfdd..ba39c9202094f 100644
--- a/pkgs/by-name/ru/ruff/Cargo.lock
+++ b/pkgs/by-name/ru/ruff/Cargo.lock
@@ -2083,9 +2083,7 @@ dependencies = [
  "countme",
  "hashbrown",
  "insta",
- "once_cell",
  "ordermap",
- "path-slash",
  "ruff_db",
  "ruff_index",
  "ruff_python_ast",
@@ -2094,6 +2092,7 @@ dependencies = [
  "ruff_python_stdlib",
  "ruff_source_file",
  "ruff_text_size",
+ "ruff_vendored",
  "rustc-hash 2.0.0",
  "salsa",
  "smallvec",
@@ -2102,8 +2101,6 @@ dependencies = [
  "test-case",
  "thiserror",
  "tracing",
- "walkdir",
- "zip",
 ]
 
 [[package]]
@@ -2159,6 +2156,7 @@ dependencies = [
  "ruff_db",
  "ruff_python_ast",
  "ruff_text_size",
+ "ruff_vendored",
  "rustc-hash 2.0.0",
  "salsa",
  "tempfile",
@@ -2255,7 +2253,7 @@ dependencies = [
 
 [[package]]
 name = "ruff"
-version = "0.6.6"
+version = "0.6.7"
 dependencies = [
  "anyhow",
  "argfile",
@@ -2450,15 +2448,18 @@ version = "0.1.0"
 dependencies = [
  "anyhow",
  "clap",
+ "once_cell",
  "red_knot_python_semantic",
  "ruff_cache",
  "ruff_db",
  "ruff_linter",
  "ruff_macros",
  "ruff_python_ast",
+ "ruff_python_parser",
  "salsa",
  "schemars",
  "serde",
+ "zip",
 ]
 
 [[package]]
@@ -2471,7 +2472,7 @@ dependencies = [
 
 [[package]]
 name = "ruff_linter"
-version = "0.6.6"
+version = "0.6.7"
 dependencies = [
  "aho-corasick",
  "annotate-snippets 0.9.2",
@@ -2790,8 +2791,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "ruff_vendored"
+version = "0.0.0"
+dependencies = [
+ "once_cell",
+ "path-slash",
+ "ruff_db",
+ "walkdir",
+ "zip",
+]
+
+[[package]]
 name = "ruff_wasm"
-version = "0.6.6"
+version = "0.6.7"
 dependencies = [
  "console_error_panic_hook",
  "console_log",
diff --git a/pkgs/by-name/ru/ruff/package.nix b/pkgs/by-name/ru/ruff/package.nix
index 288190ade1f0e..ab16ddf240d7f 100644
--- a/pkgs/by-name/ru/ruff/package.nix
+++ b/pkgs/by-name/ru/ruff/package.nix
@@ -14,13 +14,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "ruff";
-  version = "0.6.6";
+  version = "0.6.7";
 
   src = fetchFromGitHub {
     owner = "astral-sh";
     repo = "ruff";
     rev = "refs/tags/${version}";
-    hash = "sha256-8EKOBlF6bgjgB5t3KP4AcWU7YkLaiFoAj+wuJWEOAic=";
+    hash = "sha256-1udxvl98RveGJmnG8kwlecWD9V+BPadA/YE8jbt9jNo=";
   };
 
   cargoLock = {
diff --git a/pkgs/by-name/ru/rustdesk-flutter/package.nix b/pkgs/by-name/ru/rustdesk-flutter/package.nix
index aa403cc04b9ec..18e2234a355a7 100644
--- a/pkgs/by-name/ru/rustdesk-flutter/package.nix
+++ b/pkgs/by-name/ru/rustdesk-flutter/package.nix
@@ -1,28 +1,31 @@
-{ lib
-, clangStdenv
-, cargo
-, copyDesktopItems
-, fetchFromGitHub
-, flutter316
-, ffmpeg
-, gst_all_1
-, fuse3
-, libXtst
-, libaom
-, libopus
-, libpulseaudio
-, libva
-, libvdpau
-, libvpx
-, libxkbcommon
-, libyuv
-, pam
-, makeDesktopItem
-, rustPlatform
-, rustc
-, rustfmt
-, xdotool
-}: let
+{
+  lib,
+  clangStdenv,
+  cargo,
+  copyDesktopItems,
+  fetchFromGitHub,
+  flutter316,
+  ffmpeg,
+  gst_all_1,
+  fuse3,
+  libXtst,
+  libaom,
+  libopus,
+  libpulseaudio,
+  libva,
+  libvdpau,
+  libvpx,
+  libxkbcommon,
+  libyuv,
+  pam,
+  makeDesktopItem,
+  rustPlatform,
+  libayatana-appindicator,
+  rustc,
+  rustfmt,
+  xdotool,
+}:
+let
 
   flutterRustBridge = rustPlatform.buildRustPackage rec {
     pname = "flutter_rust_bridge_codegen";
@@ -36,13 +39,17 @@
     };
 
     cargoHash = "sha256-dDyiptG9TKes+fXx2atwx697SWH7Rltx6xVubtTn7FM=";
-    cargoBuildFlags = [ "--package" "flutter_rust_bridge_codegen" ];
+    cargoBuildFlags = [
+      "--package"
+      "flutter_rust_bridge_codegen"
+    ];
     doCheck = false;
   };
 
   sharedLibraryExt = rustc.stdenv.hostPlatform.extensions.sharedLibrary;
 
-in flutter316.buildFlutterApplication rec {
+in
+flutter316.buildFlutterApplication rec {
   pname = "rustdesk";
   version = "1.3.0";
   src = fetchFromGitHub {
@@ -76,34 +83,34 @@ in flutter316.buildFlutterApplication rec {
     # and fixing the resulting errors by removing the other registry deps.
     lockFile = ./Cargo.lock;
     outputHashes = {
-    "android-wakelock-0.1.0" = "sha256-09EH/U1BBs3l4galQOrTKmPUYBgryUjfc/rqPZhdYc4=";
-    "arboard-3.4.0" = "sha256-lZIG5z115ExR6DcUut1rk9MrYFzSyCYH9kNGIikOPJM=";
-    "cacao-0.4.0-beta2" = "sha256-U5tCLeVxjmZCm7ti1u71+i116xmozPaR69pCsA4pxrM=";
-    "clipboard-master-4.0.0-beta.6" = "sha256-GZyzGMQOZ0iwGNZa/ZzFp8gU2tQVWZBpAbim8yb6yZA=";
-    "confy-0.4.0-2" = "sha256-V7BCKISrkJIxWC3WT5+B5Vav86YTQvdO9TO6A++47FU=";
-    "core-foundation-0.9.3" = "sha256-iB4OVmWZhuWbs9RFWvNc+RNut6rip2/50o5ZM6c0c3g=";
-    "evdev-0.11.5" = "sha256-aoPmjGi/PftnH6ClEWXHvIj0X3oh15ZC1q7wPC1XPr0=";
-    "hwcodec-0.7.0" = "sha256-pfzcaD7h/U5ou+P7qRLR56iXOkm043rF74y+Q0FsVLo=";
-    "impersonate_system-0.1.0" = "sha256-pIV7s2qGoCIUrhaRovBDCJaGQ/pMdJacDXJmeBpkcyI=";
-    "keepawake-0.4.3" = "sha256-cqSpkq/PCz+5+ZUyPy5hF6rP3fBzuZDywyxMUQ50Rk4=";
-    "machine-uid-0.3.0" = "sha256-rEOyNThg6p5oqE9URnxSkPtzyW8D4zKzLi9pAnzTElE=";
-    "magnum-opus-0.4.0" = "sha256-T4qaYOl8lCK1h9jWa9KqGvnVfDViT9Ob5R+YgnSw2tg=";
-    "pam-0.7.0" = "sha256-o47tVoFlW9RiL7O8Lvuwz7rMYQHO+5TG27XxkAdHEOE=";
-    "pam-sys-1.0.0-alpha4" = "sha256-5HIErVWnanLo5054NgU+DEKC2wwyiJ8AHvbx0BGbyWo=";
-    "parity-tokio-ipc-0.7.3-4" = "sha256-PKw2Twd2ap+tRrQxqg8T1FvpoeKn0hvBqn1Z44F1LcY=";
-    "rdev-0.5.0-2" = "sha256-KrzNa4sKyuVw3EV/Ec9VBNRyJy7QFR2Gu4c2WkltwUw=";
-    "reqwest-0.11.23" = "sha256-kEUT+gs4ziknDiGdPMLnj5pmxC5SBpLopZ8jZ34GDWc=";
-    "rust-pulsectl-0.2.12" = "sha256-8jXTspWvjONFcvw9/Z8C43g4BuGZ3rsG32tvLMQbtbM=";
-    "sciter-rs-0.5.57" = "sha256-5Nd9npdx8yQJEczHv7WmSmrE1lBfvp5z7BubTbYBg3E=";
-    "sysinfo-0.29.10" = "sha256-/UsFAvlWs/F7X1xT+97Fx+pnpCguoPHU3hTynqYMEs4=";
-    "tao-0.25.0" = "sha256-kLmx1z9Ybn/hDt2OcszEjtZytQIE+NKTIn9zNr9oEQk=";
-    "tfc-0.7.0" = "sha256-4plK8ttbHsBPat3/rS+4RhGzirq2Ked2wrU8cQEU1zo=";
-    "tokio-socks-0.5.2-1" = "sha256-i1dfNatqN4dinMcyAdLhj9hJWVsT10OWpCXsxl7pifI=";
-    "tray-icon-0.14.3" = "sha256-dSX7LucZaLplRrh6zLwmFzyZN4ZtwIXzAEdZzlu3gQg=";
-    "wallpaper-3.2.0" = "sha256-p9NRmusdA0wvF6onp1UTL0/4t7XnEAc19sqyGDnfg/Q=";
-    "webm-1.1.0" = "sha256-p4BMej7yvb8c/dJynRWZmwo2hxAAY96Qx6Qx2DbT8hE=";
-    "x11-2.19.0" = "sha256-GDCeKzUtvaLeBDmPQdyr499EjEfT6y4diBMzZVEptzc=";
-    "x11-clipboard-0.8.1" = "sha256-PtqmSD2MwkbLVWbfTSXZW3WEvEnUlo04qieUTjN2whE=";
+      "android-wakelock-0.1.0" = "sha256-09EH/U1BBs3l4galQOrTKmPUYBgryUjfc/rqPZhdYc4=";
+      "arboard-3.4.0" = "sha256-lZIG5z115ExR6DcUut1rk9MrYFzSyCYH9kNGIikOPJM=";
+      "cacao-0.4.0-beta2" = "sha256-U5tCLeVxjmZCm7ti1u71+i116xmozPaR69pCsA4pxrM=";
+      "clipboard-master-4.0.0-beta.6" = "sha256-GZyzGMQOZ0iwGNZa/ZzFp8gU2tQVWZBpAbim8yb6yZA=";
+      "confy-0.4.0-2" = "sha256-V7BCKISrkJIxWC3WT5+B5Vav86YTQvdO9TO6A++47FU=";
+      "core-foundation-0.9.3" = "sha256-iB4OVmWZhuWbs9RFWvNc+RNut6rip2/50o5ZM6c0c3g=";
+      "evdev-0.11.5" = "sha256-aoPmjGi/PftnH6ClEWXHvIj0X3oh15ZC1q7wPC1XPr0=";
+      "hwcodec-0.7.0" = "sha256-pfzcaD7h/U5ou+P7qRLR56iXOkm043rF74y+Q0FsVLo=";
+      "impersonate_system-0.1.0" = "sha256-pIV7s2qGoCIUrhaRovBDCJaGQ/pMdJacDXJmeBpkcyI=";
+      "keepawake-0.4.3" = "sha256-cqSpkq/PCz+5+ZUyPy5hF6rP3fBzuZDywyxMUQ50Rk4=";
+      "machine-uid-0.3.0" = "sha256-rEOyNThg6p5oqE9URnxSkPtzyW8D4zKzLi9pAnzTElE=";
+      "magnum-opus-0.4.0" = "sha256-T4qaYOl8lCK1h9jWa9KqGvnVfDViT9Ob5R+YgnSw2tg=";
+      "pam-0.7.0" = "sha256-o47tVoFlW9RiL7O8Lvuwz7rMYQHO+5TG27XxkAdHEOE=";
+      "pam-sys-1.0.0-alpha4" = "sha256-5HIErVWnanLo5054NgU+DEKC2wwyiJ8AHvbx0BGbyWo=";
+      "parity-tokio-ipc-0.7.3-4" = "sha256-PKw2Twd2ap+tRrQxqg8T1FvpoeKn0hvBqn1Z44F1LcY=";
+      "rdev-0.5.0-2" = "sha256-KrzNa4sKyuVw3EV/Ec9VBNRyJy7QFR2Gu4c2WkltwUw=";
+      "reqwest-0.11.23" = "sha256-kEUT+gs4ziknDiGdPMLnj5pmxC5SBpLopZ8jZ34GDWc=";
+      "rust-pulsectl-0.2.12" = "sha256-8jXTspWvjONFcvw9/Z8C43g4BuGZ3rsG32tvLMQbtbM=";
+      "sciter-rs-0.5.57" = "sha256-5Nd9npdx8yQJEczHv7WmSmrE1lBfvp5z7BubTbYBg3E=";
+      "sysinfo-0.29.10" = "sha256-/UsFAvlWs/F7X1xT+97Fx+pnpCguoPHU3hTynqYMEs4=";
+      "tao-0.25.0" = "sha256-kLmx1z9Ybn/hDt2OcszEjtZytQIE+NKTIn9zNr9oEQk=";
+      "tfc-0.7.0" = "sha256-4plK8ttbHsBPat3/rS+4RhGzirq2Ked2wrU8cQEU1zo=";
+      "tokio-socks-0.5.2-1" = "sha256-i1dfNatqN4dinMcyAdLhj9hJWVsT10OWpCXsxl7pifI=";
+      "tray-icon-0.14.3" = "sha256-dSX7LucZaLplRrh6zLwmFzyZN4ZtwIXzAEdZzlu3gQg=";
+      "wallpaper-3.2.0" = "sha256-p9NRmusdA0wvF6onp1UTL0/4t7XnEAc19sqyGDnfg/Q=";
+      "webm-1.1.0" = "sha256-p4BMej7yvb8c/dJynRWZmwo2hxAAY96Qx6Qx2DbT8hE=";
+      "x11-2.19.0" = "sha256-GDCeKzUtvaLeBDmPQdyr499EjEfT6y4diBMzZVEptzc=";
+      "x11-clipboard-0.8.1" = "sha256-PtqmSD2MwkbLVWbfTSXZW3WEvEnUlo04qieUTjN2whE=";
     };
   };
   dontCargoBuild = true;
@@ -147,11 +154,17 @@ in flutter316.buildFlutterApplication rec {
   prePatch = ''
     chmod -R +w ..
   '';
-  patchFlags = [ "-p1" "-d" ".." ];
+  patchFlags = [
+    "-p1"
+    "-d"
+    ".."
+  ];
 
   patches = [ ./make-build-reproducible.patch ];
 
   postPatch = ''
+    substituteInPlace $cargoDepsCopy/libappindicator-sys-*/src/lib.rs \
+      --replace-fail "libayatana-appindicator3.so.1" "${lib.getLib libayatana-appindicator}/lib/libayatana-appindicator3.so.1"
     substituteInPlace ../Cargo.toml --replace-fail ", \"staticlib\", \"rlib\"" ""
     # The supplied Cargo.lock doesn't work with our fetcher so copy over the fixed version
     cp ${./Cargo.lock} ../Cargo.lock
@@ -201,7 +214,11 @@ in flutter316.buildFlutterApplication rec {
       terminal = false;
       type = "Application";
       startupNotify = true;
-      categories = [ "Network" "RemoteAccess" "GTK" ];
+      categories = [
+        "Network"
+        "RemoteAccess"
+        "GTK"
+      ];
       keywords = [ "internet" ];
       actions.new-window = {
         name = "Open a New Window";
diff --git a/pkgs/by-name/sa/saunafs/package.nix b/pkgs/by-name/sa/saunafs/package.nix
index 7ffc14ec81cb5..587df043f050f 100644
--- a/pkgs/by-name/sa/saunafs/package.nix
+++ b/pkgs/by-name/sa/saunafs/package.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "saunafs";
-  version = "4.5.0";
+  version = "4.5.1";
 
   src = fetchFromGitHub {
     owner = "leil-io";
     repo = "saunafs";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-jimq+Dx3RoJmnUDcfCkgE6Hk7OvPH/fs1v/Nri8Xtz8=";
+    hash = "sha256-oMFS5eNNzCpaineCLn0hh3bXGw3SNdj+Pdvk3pevIZg=";
   };
 
   patches = [
diff --git a/pkgs/by-name/sh/shotcut/package.nix b/pkgs/by-name/sh/shotcut/package.nix
index 811f34bf6d46f..09bcb4447aed1 100644
--- a/pkgs/by-name/sh/shotcut/package.nix
+++ b/pkgs/by-name/sh/shotcut/package.nix
@@ -18,13 +18,13 @@
 }:
 stdenv.mkDerivation (finalAttrs: {
   pname = "shotcut";
-  version = "24.08.29";
+  version = "24.09.13";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-iWXq9IdXfARe9h3Habe0rr0ohdxBARiwg5g7F53bhRg=";
+    hash = "sha256-hYpb3ZCRXd07KQVZ3xpNeEJY5HFLNDsqpPJp3b9UXtE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/sm/smatch/package.nix b/pkgs/by-name/sm/smatch/package.nix
new file mode 100644
index 0000000000000..6acf05652319a
--- /dev/null
+++ b/pkgs/by-name/sm/smatch/package.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  pkg-config,
+  sqlite,
+  openssl,
+  buildllvmsparse ? false,
+  buildc2xml ? false,
+  libllvm,
+  libxml2,
+}:
+let
+  version = "1.73";
+in
+stdenv.mkDerivation {
+  pname = "smatch";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "error27";
+    repo = "smatch";
+    rev = version;
+    sha256 = "sha256-Pv3bd2cjnQKnhH7TrkYWfDEeaq6u/q/iK1ZErzn6bME=";
+  };
+
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [
+    "-Wno-incompatible-function-pointer-types"
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    sqlite
+    openssl
+  ] ++ lib.optionals buildllvmsparse [ libllvm ] ++ lib.optionals buildc2xml [ libxml2.dev ];
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "CXX=${stdenv.cc.targetPrefix}c++"
+  ];
+
+  meta = {
+    description = "Semantic analysis tool for C";
+    homepage = "https://sparse.docs.kernel.org/";
+    maintainers = with lib.maintainers; [ momeemt ];
+    license = lib.licenses.gpl2Plus;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/by-name/sn/snipe-it/package.nix b/pkgs/by-name/sn/snipe-it/package.nix
index 5f2606a951fa4..da38ec7f58874 100644
--- a/pkgs/by-name/sn/snipe-it/package.nix
+++ b/pkgs/by-name/sn/snipe-it/package.nix
@@ -8,13 +8,13 @@
 
 php.buildComposerProject (finalAttrs: {
   pname = "snipe-it";
-  version = "7.0.11";
+  version = "7.0.12";
 
   src = fetchFromGitHub {
     owner = "snipe";
     repo = "snipe-it";
     rev = "v${finalAttrs.version}";
-    hash = "sha256-XMsLK6IKbnlYZk7tPYq++prv+28FefEbahOqmeEAAiY=";
+    hash = "sha256-CTOhnGDmvxcQrS7VPsMeap6aD9YajSZ/C25RcRbL65w=";
   };
 
   vendorHash = "sha256-8YZD6Q1Mb5VUGL/KQnYTtXKL3aziPfAmwvVthDdyBYY=";
diff --git a/pkgs/development/tools/analysis/snyk/default.nix b/pkgs/by-name/sn/snyk/package.nix
index 550bdb462b88a..b974fd0ee5f77 100644
--- a/pkgs/development/tools/analysis/snyk/default.nix
+++ b/pkgs/by-name/sn/snyk/package.nix
@@ -1,14 +1,18 @@
-{ lib
-, buildNpmPackage
-, fetchFromGitHub
-, stdenv
-, testers
-, snyk
+{
+  lib,
+  buildNpmPackage,
+  fetchFromGitHub,
+  stdenv,
+  testers,
+  snyk,
 }:
 
-buildNpmPackage rec {
-  pname = "snyk";
+let
   version = "1.1293.1";
+in
+buildNpmPackage {
+  pname = "snyk";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "snyk";
@@ -26,7 +30,9 @@ buildNpmPackage rec {
 
   env.NIX_CFLAGS_COMPILE =
     # Fix error: no member named 'aligned_alloc' in the global namespace
-    lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) "-D_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION=1";
+    lib.optionalString (
+      stdenv.isDarwin && stdenv.isx86_64
+    ) "-D_LIBCPP_HAS_NO_LIBRARY_ALIGNED_ALLOCATION=1";
 
   npmBuildScript = "build:prod";
 
@@ -34,12 +40,12 @@ buildNpmPackage rec {
     package = snyk;
   };
 
-  meta = with lib; {
+  meta = {
     description = "Scans and monitors projects for security vulnerabilities";
     homepage = "https://snyk.io";
     changelog = "https://github.com/snyk/cli/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = [ ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ momeemt ];
     mainProgram = "snyk";
   };
 }
diff --git a/pkgs/by-name/st/stalwart-mail/package.nix b/pkgs/by-name/st/stalwart-mail/package.nix
index 959b4d2c2fe59..7175714c8778a 100644
--- a/pkgs/by-name/st/stalwart-mail/package.nix
+++ b/pkgs/by-name/st/stalwart-mail/package.nix
@@ -26,7 +26,7 @@ let
   # See upstream issue for rocksdb 9.X support
   # https://github.com/stalwartlabs/mail-server/issues/407
   rocksdb = rocksdb_8_11;
-  version = "0.9.4";
+  version = "0.10.0";
 in
 rustPlatform.buildRustPackage {
   pname = "stalwart-mail";
@@ -36,11 +36,11 @@ rustPlatform.buildRustPackage {
     owner = "stalwartlabs";
     repo = "mail-server";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GDi7kRwI0GujQBJXItQpYZT1I1Hz3DUMyTixJ/lQySY=";
+    hash = "sha256-9qk7+LJntEmCIuxp0707OOHBVkywlAJA1QmWllR9ZHg=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-7gJi6sykmKRuZZ8svXWlktHnwr78zaE2jxVIt+sZPHg=";
+  cargoHash = "sha256-O1LuEHH5VD/6875Psfp5N/oWYlo1cuTlHzwcgG9RrpI=";
 
   patches = [
     # Remove "PermissionsStartOnly" from systemd service files,
@@ -140,6 +140,10 @@ rustPlatform.buildRustPackage {
     # thread 'smtp::queue::concurrent::concurrent_queue' panicked at tests/src/smtp/inbound/mod.rs:65:9:
     # assertion `left == right` failed
     "--skip=smtp::queue::concurrent::concurrent_queue"
+    # Failed to read system DNS config: io error: No such file or directory (os error 2)
+    "--skip=smtp::inbound::auth::auth"
+    # Failed to read system DNS config: io error: No such file or directory (os error 2)
+    "--skip=smtp::inbound::vrfy::vrfy_expn"
   ];
 
   doCheck = !(stdenv.isLinux && stdenv.isAarch64);
diff --git a/pkgs/development/tools/analysis/stylelint/default.nix b/pkgs/by-name/st/stylelint/package.nix
index 6525d524c7361..ddf631ff8de59 100644
--- a/pkgs/development/tools/analysis/stylelint/default.nix
+++ b/pkgs/by-name/st/stylelint/package.nix
@@ -1,8 +1,15 @@
-{ buildNpmPackage, fetchFromGitHub, lib }:
+{
+  buildNpmPackage,
+  fetchFromGitHub,
+  lib,
+}:
 
-buildNpmPackage rec {
-  pname = "stylelint";
+let
   version = "16.9.0";
+in
+buildNpmPackage {
+  pname = "stylelint";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "stylelint";
@@ -15,11 +22,11 @@ buildNpmPackage rec {
 
   dontNpmBuild = true;
 
-  meta = with lib; {
+  meta = {
     description = "Mighty CSS linter that helps you avoid errors and enforce conventions";
     mainProgram = "stylelint";
     homepage = "https://stylelint.io";
-    license = licenses.mit;
-    maintainers = [ ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ momeemt ];
   };
 }
diff --git a/pkgs/by-name/ui/uiua/package.nix b/pkgs/by-name/ui/uiua/package.nix
index 86c238328e3a9..a3d6dd08bbabb 100644
--- a/pkgs/by-name/ui/uiua/package.nix
+++ b/pkgs/by-name/ui/uiua/package.nix
@@ -18,16 +18,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "uiua";
-  version = "0.12.3";
+  version = "0.13.0-dev.1";
 
   src = fetchFromGitHub {
     owner = "uiua-lang";
     repo = "uiua";
     rev = version;
-    hash = "sha256-gI+FaiNN7Hql9HMsrl5skJuJDJv/mVarsFqslLXVvLU=";
+    hash = "sha256-dwiwv24bhn8/WVxrq8uReEPhU/5zn3oaH/AMjNJiA4M=";
   };
 
-  cargoHash = "sha256-9mdspWwuZ+dLBnhklSqi4Lg2SjJyhhfn5Ax58evtkDA=";
+  cargoHash = "sha256-4XHKcmOeaeSGfl7uvQQdhm29DBWEdZLX021d9+Ebrww=";
 
   nativeBuildInputs =
     lib.optionals stdenv.isDarwin [ rustPlatform.bindgenHook ]
diff --git a/pkgs/by-name/uw/uwsm/package.nix b/pkgs/by-name/uw/uwsm/package.nix
index 7df5b832c7465..44611002f9caa 100644
--- a/pkgs/by-name/uw/uwsm/package.nix
+++ b/pkgs/by-name/uw/uwsm/package.nix
@@ -27,13 +27,13 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "uwsm";
-  version = "0.19.0";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "Vladimir-csp";
     repo = "uwsm";
     rev = "refs/tags/v${finalAttrs.version}";
-    hash = "sha256-gptZld9BIQaujg9fGAgKD7wXjKeL5quXnSGOKn25jn8=";
+    hash = "sha256-neozpNSTxC4lkCuUpKPAeqGtQGgxf05WZZQOMTIkj2E=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/wi/wireguard-ui/package.nix b/pkgs/by-name/wi/wireguard-ui/package.nix
new file mode 100644
index 0000000000000..b046bdc5a3028
--- /dev/null
+++ b/pkgs/by-name/wi/wireguard-ui/package.nix
@@ -0,0 +1,81 @@
+{
+  buildGoModule,
+  lib,
+  fetchFromGitHub,
+  fetchYarnDeps,
+  yarn,
+  fixup-yarn-lock,
+  nodejs,
+  fetchpatch2,
+}:
+
+buildGoModule rec {
+  pname = "wireguard-ui";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "ngoduykhanh";
+    repo = "wireguard-ui";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-fK7l9I2s0zSxG1g1oQ1KjJZUcypwS9DxnNN7lhVI+1s=";
+  };
+
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/ngoduykhanh/wireguard-ui/commit/2fdafd34ca6c8f7f1415a3a1d89498bb575a7171.patch?full_index=1";
+      hash = "sha256-nq/TX+TKDB29NcPQ3pLWD0jcXubULuwqisn9IcEW8B8=";
+    })
+  ];
+
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${src}/yarn.lock";
+    hash = "sha256-ps/GtdtDKA3y5o1GZpRG+z08lSzk8d9zgxb95kjr/gc=";
+  };
+
+  vendorHash = "sha256-FTjZ6wf0ym6kFJ58Z3E3shmbq9SaMwlXWeueHQXwkX4=";
+
+  nativeBuildInputs = [
+    yarn
+    fixup-yarn-lock
+    nodejs
+  ];
+
+  ldflags = [
+    "-X main.appVersion=v${version}"
+  ];
+
+  preConfigure = ''
+    # This is what prepare_assets.sh do.
+    export HOME=$(mktemp -d)
+    yarn config --offline set yarn-offline-mirror "$offlineCache"
+    fixup-yarn-lock yarn.lock
+    yarn --offline install
+
+    mkdir -p "./assets/dist/js" "./assets/dist/css" && \
+    cp -r "./node_modules/admin-lte/dist/js/adminlte.min.js" "./assets/dist/js/adminlte.min.js" && \
+    cp -r "./node_modules/admin-lte/dist/css/adminlte.min.css" "./assets/dist/css/adminlte.min.css"
+
+    cp -r "./custom" "./assets"
+
+    mkdir -p "./assets/plugins" && \
+    cp -r "./node_modules/admin-lte/plugins/jquery" \
+    "./node_modules/admin-lte/plugins/fontawesome-free" \
+    "./node_modules/admin-lte/plugins/bootstrap" \
+    "./node_modules/admin-lte/plugins/icheck-bootstrap" \
+    "./node_modules/admin-lte/plugins/toastr" \
+    "./node_modules/admin-lte/plugins/jquery-validation" \
+    "./node_modules/admin-lte/plugins/select2" \
+    "./node_modules/jquery-tags-input" \
+    "./assets/plugins/"
+  '';
+
+  meta = {
+    description = "Web user interface to manage your WireGuard setup";
+    changelog = "https://github.com/ngoduykhanh/wireguard-ui/releases/tag/v${version}";
+    homepage = "https://github.com/ngoduykhanh/wireguard-ui";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ bot-wxt1221 ];
+    mainProgram = "wireguard-ui";
+  };
+}
diff --git a/pkgs/by-name/wl/wl-gammarelay-applet/package.nix b/pkgs/by-name/wl/wl-gammarelay-applet/package.nix
new file mode 100644
index 0000000000000..64388cf0b7bec
--- /dev/null
+++ b/pkgs/by-name/wl/wl-gammarelay-applet/package.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  stdenv,
+  wayland,
+  libxkbcommon,
+  fontconfig,
+  pkg-config,
+  autoPatchelfHook,
+}:
+
+rustPlatform.buildRustPackage {
+  pname = "wl-gammarelay-applet";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "lgbishop";
+    repo = "wl-gammarelay-applet";
+    rev = "8a0d9e6364d7445fc69c59b2f168cfec91c2fe87";
+    sha256 = "sha256-t6bycmaquZ0IMs/WnAzkz5FnIWKIq0BTbeeoUFLeuYg=";
+  };
+
+  cargoHash = "sha256-1hJLu/ndnBYdzJ+NjLaCYENFszvAj9MYpLsZyLEq0Sg=";
+
+  nativeBuildInputs = [
+    pkg-config
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+  ];
+
+  runtimeDependencies = [
+    wayland
+    libxkbcommon
+    fontconfig.lib
+  ];
+
+  meta = {
+    description = "Control wl-gammarelay-rs via applet";
+    longDescription = ''
+      wl-gammarelay-applet is a small desktop applet for controlling
+      wl-gammarelay-rs via DBus. This applet is written in Rust and
+      provides a Slint UI.
+    '';
+    homepage = "https://github.com/lgbishop/wl-gammarelay-applet";
+    mainProgram = "wl-gammarelay-applet";
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+    maintainers = with lib.maintainers; [ lgbishop ];
+  };
+}
diff --git a/pkgs/by-name/ws/wstunnel/package.nix b/pkgs/by-name/ws/wstunnel/package.nix
index d6c66e152bb6a..ba3800abcd51c 100644
--- a/pkgs/by-name/ws/wstunnel/package.nix
+++ b/pkgs/by-name/ws/wstunnel/package.nix
@@ -2,9 +2,11 @@
   lib,
   fetchFromGitHub,
   rustPlatform,
+  stdenv,
   nixosTests,
   nix-update-script,
   versionCheckHook,
+  darwin,
 }:
 
 let
@@ -25,6 +27,9 @@ rustPlatform.buildRustPackage {
   cargoHash = "sha256-3b+pX/qQuhOY1OYr+CfT5wtiJcEJ8CJJsQZ4QOcYv74=";
 
   nativeBuildInputs = [ versionCheckHook ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
+    darwin.apple_sdk.frameworks.CoreServices
+  ];
 
   doInstallCheck = true;
 
diff --git a/pkgs/by-name/xt/xtf/package.nix b/pkgs/by-name/xt/xtf/package.nix
index bb2916c54eb49..4a19f84c89ecf 100644
--- a/pkgs/by-name/xt/xtf/package.nix
+++ b/pkgs/by-name/xt/xtf/package.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation {
   pname = "xtf";
-  version = "0-unstable-2024-08-30";
+  version = "0-unstable-2024-09-13";
 
   outputs = [
     "out" # xtf-runner and test suite.
@@ -20,8 +20,8 @@ stdenv.mkDerivation {
 
   src = fetchgit {
     url = "https://xenbits.xenproject.org/git-http/xtf.git";
-    rev = "f503efe8e5cf8858ec0704f1aaa82d0bf50891a5";
-    hash = "sha256-ccI9FcrK7T4Zrv3przZ7qZhJ/ZsPPi+1KOIVCdFKKdc=";
+    rev = "c9a5e404e70c21c7621db4b8cabdf68261db7e1c";
+    hash = "sha256-FMFbAdgH5KCpocAzUXb7nM3wpn4xs/gk/0M8AUVxXv0=";
   };
 
   nativeBuildInputs =
diff --git a/pkgs/by-name/ya/yandex-music/info.json b/pkgs/by-name/ya/yandex-music/info.json
index 7564f59339ccd..0223a0ae3ad39 100644
--- a/pkgs/by-name/ya/yandex-music/info.json
+++ b/pkgs/by-name/ya/yandex-music/info.json
@@ -1,7 +1,7 @@
 {
   "branch": "master",
-  "commit_hash": "98fed92683e2e5a49999d04b5559edd02eddf627",
+  "commit_hash": "d446a98850abccfe28a78363c96468a2a8109cfc",
   "commit_message": "Update packages",
-  "date": "2024-09-10",
-  "tag": "v5.15.0"
+  "date": "2024-09-22",
+  "tag": "v5.18.2"
 }
diff --git a/pkgs/by-name/ya/yandex-music/package.nix b/pkgs/by-name/ya/yandex-music/package.nix
index a26e729d7b168..6ee96d54fdd6f 100644
--- a/pkgs/by-name/ya/yandex-music/package.nix
+++ b/pkgs/by-name/ya/yandex-music/package.nix
@@ -14,13 +14,13 @@
 }:
 stdenvNoCC.mkDerivation rec {
   pname = "yandex-music";
-  version = "5.15.0";
+  version = "5.18.2";
 
   src = fetchFromGitHub {
     owner = "cucumber-sp";
     repo = "yandex-music-linux";
     rev = "v${version}";
-    hash = "sha256-c+OKyhbgpXMryc6QQH4b5cePlqyHeSfDh4kT2rU+Tpo=";
+    hash = "sha256-y+T2ckrnhrOiiPKBUlnvDb4FwrIfbaIXwVi16AoX/bQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/by-name/ya/yandex-music/ym_info.json b/pkgs/by-name/ya/yandex-music/ym_info.json
index 49ff918d36a80..cba72691edb92 100644
--- a/pkgs/by-name/ya/yandex-music/ym_info.json
+++ b/pkgs/by-name/ya/yandex-music/ym_info.json
@@ -1,9 +1,9 @@
 {
   "ym": {
-    "version": "5.15.0",
-    "exe_name": "Yandex_Music_x64_5.15.0.exe",
-    "exe_link": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.15.0.exe",
-    "exe_sha256": "14396a25b35199f28175d3c15924ec75560cbae6f5fb6767ec7f326637723e36"
+    "version": "5.18.2",
+    "exe_name": "Yandex_Music_x64_5.18.2.exe",
+    "exe_link": "https://music-desktop-application.s3.yandex.net/stable/Yandex_Music_x64_5.18.2.exe",
+    "exe_sha256": "a513eb6aa4bd05bae8503f5578a8e91d778794ffe4eb3a450040903570106941"
   },
   "electron": {
     "version": "29.4.6",
diff --git a/pkgs/by-name/yu/yubico-piv-tool/package.nix b/pkgs/by-name/yu/yubico-piv-tool/package.nix
index 1375a66b65828..ba0476862841d 100644
--- a/pkgs/by-name/yu/yubico-piv-tool/package.nix
+++ b/pkgs/by-name/yu/yubico-piv-tool/package.nix
@@ -18,7 +18,7 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "yubico-piv-tool";
-  version = "2.6.0";
+  version = "2.6.1";
 
   outputs = [
     "out"
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
     owner = "Yubico";
     repo = "yubico-piv-tool";
     rev = "refs/tags/yubico-piv-tool-${finalAttrs.version}";
-    hash = "sha256-53cgwXMzVKnouwHhbt6pODhjF2MH0sK5CPWpbZe71jE=";
+    hash = "sha256-RYT/kBlUfVkJG8RNELVQ5gyC+HDteD5xqaI479nsvKw=";
   };
 
   postPatch = ''
diff --git a/pkgs/by-name/zo/zoekt/package.nix b/pkgs/by-name/zo/zoekt/package.nix
index afc6e099c0adf..49a4bc5887e95 100644
--- a/pkgs/by-name/zo/zoekt/package.nix
+++ b/pkgs/by-name/zo/zoekt/package.nix
@@ -7,16 +7,16 @@
 
 buildGoModule {
   pname = "zoekt";
-  version = "0-unstable-2024-09-05";
+  version = "3.7.2-2-unstable-2024-09-10";
 
   src = fetchFromGitHub {
     owner = "sourcegraph";
     repo = "zoekt";
-    rev = "35dda3e212b7d7fb0df43dcbd88eb7a7b49ad9d8";
-    hash = "sha256-YdInCAq7h7iC1sfMekLgxqu3plUHr5Ku6FxyPKluQzw=";
+    rev = "44eab0c512ef7ff25b09b2c133d4cba3d9850519";
+    hash = "sha256-ZQs0JPCEIA1+mxOm/uhu+Ulhb393kE7fBz/zUIcvRRE=";
   };
 
-  vendorHash = "sha256-GPeMRL5zWVjJVYpFPnB211Gfm/IaqisP1s6RNaLvN6M=";
+  vendorHash = "sha256-+ayixWCD2e+7Nh9WJmDAloSzp63v9hQYQd8UMuo8qxQ=";
 
   nativeCheckInputs = [
     git
diff --git a/pkgs/by-name/zs/zsh-wd/package.nix b/pkgs/by-name/zs/zsh-wd/package.nix
index e59b17a67e493..4a80ec499e89b 100644
--- a/pkgs/by-name/zs/zsh-wd/package.nix
+++ b/pkgs/by-name/zs/zsh-wd/package.nix
@@ -2,13 +2,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "wd";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "mfaerevaag";
     repo = "wd";
     rev = "v${version}";
-    hash = "sha256-rHHCnHa0/t2ij+6rExgvNt2EFBnkgs6l7oE6zL+xc58=";
+    hash = "sha256-8gL0+SZwVCQRokcYwSljDHtSusYY79/T9hqJGgAK1EU=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/data/themes/adw-gtk3/default.nix b/pkgs/data/themes/adw-gtk3/default.nix
index fd73f1cf4d4d9..65043d8a24b45 100644
--- a/pkgs/data/themes/adw-gtk3/default.nix
+++ b/pkgs/data/themes/adw-gtk3/default.nix
@@ -9,13 +9,13 @@
 
 stdenvNoCC.mkDerivation rec {
   pname = "adw-gtk3";
-  version = "5.3";
+  version = "5.4";
 
   src = fetchFromGitHub {
     owner = "lassekongo83";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DpJLX9PJX1Q8dDOx7YOXQzgNECsKp5uGiCVTX6iSlbI=";
+    sha256 = "sha256-FwODgA3BK5O1WoNNbn27H18Epuqwcsnoc3hZUB59+Wg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/apps/deepin-editor/default.nix b/pkgs/desktops/deepin/apps/deepin-editor/default.nix
index 9af8a60088d6e..096a353224d4e 100644
--- a/pkgs/desktops/deepin/apps/deepin-editor/default.nix
+++ b/pkgs/desktops/deepin/apps/deepin-editor/default.nix
@@ -4,48 +4,43 @@
   fetchFromGitHub,
   cmake,
   pkg-config,
-  qttools,
-  wrapQtAppsHook,
   dtkwidget,
   qt5integration,
   qt5platform-plugins,
-  qtbase,
-  qtsvg,
   dde-qt-dbus-factory,
-  kcodecs,
-  syntax-highlighting,
   libchardet,
   libuchardet,
   libiconv,
+  libsForQt5,
 }:
 
 stdenv.mkDerivation rec {
   pname = "deepin-editor";
-  version = "6.5.0";
+  version = "6.5.2";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-f6CJlSgsKU311ziXmm7Ado8tH+3dNRpWB1e4TewVf/8=";
+    hash = "sha256-Z3fsnjo4Pcu1e8lKvWdWBhpoOFFy0dSrI2HehRYKJ0k=";
   };
 
   nativeBuildInputs = [
     cmake
     pkg-config
-    qttools
-    wrapQtAppsHook
+    libsForQt5.qttools
+    libsForQt5.wrapQtAppsHook
   ];
 
   buildInputs = [
     dtkwidget
     qt5integration
     qt5platform-plugins
-    qtbase
-    qtsvg
+    libsForQt5.qtbase
+    libsForQt5.qtsvg
     dde-qt-dbus-factory
-    kcodecs
-    syntax-highlighting
+    libsForQt5.kcodecs
+    libsForQt5.syntax-highlighting
     libchardet
     libuchardet
     libiconv
diff --git a/pkgs/desktops/deepin/core/dde-control-center/default.nix b/pkgs/desktops/deepin/core/dde-control-center/default.nix
index a3a3b52c23891..6600df5b79640 100644
--- a/pkgs/desktops/deepin/core/dde-control-center/default.nix
+++ b/pkgs/desktops/deepin/core/dde-control-center/default.nix
@@ -4,35 +4,28 @@
   fetchFromGitHub,
   cmake,
   pkg-config,
-  qttools,
   doxygen,
-  wrapQtAppsHook,
-  wrapGAppsHook3,
   wayland-scanner,
+  wayland,
   dtkwidget,
   qt5integration,
   qt5platform-plugins,
+  libsForQt5,
   deepin-pw-check,
-  qtbase,
-  qtx11extras,
-  qtmultimedia,
-  polkit-qt,
   libxcrypt,
-  librsvg,
   gtest,
   runtimeShell,
-  dbus,
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-control-center";
-  version = "6.0.59";
+  version = "6.0.65";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-OniY/B/9319AYYFFPnsUMNrnc0yVGG3rfCLPjgNFyag=";
+    hash = "sha256-9v2UtLjQQ3OX69UxMknLlrQhorahDI4Z4EEHItBs7G0=";
   };
 
   postPatch = ''
@@ -43,24 +36,22 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     cmake
     pkg-config
-    qttools
+    libsForQt5.qttools
     doxygen
-    wrapQtAppsHook
-    wrapGAppsHook3
+    libsForQt5.wrapQtAppsHook
     wayland-scanner
   ];
-  dontWrapGApps = true;
 
   buildInputs = [
+    wayland
     dtkwidget
     qt5platform-plugins
+    qt5integration
     deepin-pw-check
-    qtbase
-    qtx11extras
-    qtmultimedia
-    polkit-qt
+    libsForQt5.qtbase
+    libsForQt5.qtmultimedia
+    libsForQt5.polkit-qt
     libxcrypt
-    librsvg
     gtest
   ];
 
@@ -79,17 +70,7 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     # qt.qpa.plugin: Could not find the Qt platform plugin "minimal"
     # A workaround is to set QT_PLUGIN_PATH explicitly
-    export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix}
-  '';
-
-  # qt5integration must be placed before qtsvg in QT_PLUGIN_PATH
-  qtWrapperArgs = [
-    "--prefix QT_PLUGIN_PATH : ${qt5integration}/${qtbase.qtPluginPrefix}"
-    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ librsvg ]}"
-  ];
-
-  preFixup = ''
-    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
+    export QT_PLUGIN_PATH=${libsForQt5.qtbase.bin}/${libsForQt5.qtbase.qtPluginPrefix}
   '';
 
   outputs = [
@@ -97,12 +78,12 @@ stdenv.mkDerivation rec {
     "dev"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Control panel of Deepin Desktop Environment";
     mainProgram = "dde-control-center";
     homepage = "https://github.com/linuxdeepin/dde-control-center";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.deepin.members;
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.deepin.members;
   };
 }
diff --git a/pkgs/desktops/deepin/core/dde-launchpad/default.nix b/pkgs/desktops/deepin/core/dde-launchpad/default.nix
index 44d46a0c9fae0..1a7b2cb5107c1 100644
--- a/pkgs/desktops/deepin/core/dde-launchpad/default.nix
+++ b/pkgs/desktops/deepin/core/dde-launchpad/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dde-launchpad";
-  version = "0.8.4";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-MPOzKAgwhJa7pMO6EZ6vYyYgZSD/SbU/L0L1dkN9/po=";
+    hash = "sha256-kczdSd9+ZmMZQ2fWg3SRW+CS/aWktYLz/H+Ky81TwVM=";
   };
 
   nativeBuildInputs = [
@@ -45,12 +45,12 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [ "-DSYSTEMD_USER_UNIT_DIR=${placeholder "out"}/lib/systemd/user" ];
 
-  meta = with lib; {
+  meta = {
     description = "'launcher' or 'start menu' component for DDE";
     mainProgram = "dde-launchpad";
     homepage = "https://github.com/linuxdeepin/dde-launchpad";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.deepin.members;
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.deepin.members;
   };
 }
diff --git a/pkgs/desktops/deepin/core/dde-network-core/default.nix b/pkgs/desktops/deepin/core/dde-network-core/default.nix
index 422b239edf184..9d5272df72663 100644
--- a/pkgs/desktops/deepin/core/dde-network-core/default.nix
+++ b/pkgs/desktops/deepin/core/dde-network-core/default.nix
@@ -3,44 +3,40 @@
   lib,
   fetchFromGitHub,
   cmake,
-  qttools,
   pkg-config,
-  wrapQtAppsHook,
-  qtbase,
-  qtsvg,
   dtkwidget,
   dde-control-center,
   dde-session-shell,
-  networkmanager-qt,
+  libsForQt5,
   glib,
   gtest,
 }:
 
 stdenv.mkDerivation rec {
   pname = "dde-network-core";
-  version = "2.0.32";
+  version = "2.0.34";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-dXLvBCNitlV07dH/rPatsbP6DFf8SZQ7hcDUYtqt2FA=";
+    hash = "sha256-bS/PkutP5BQtqZ6MzeImFyGKoztoTswXhXaEftEv0FI=";
   };
 
   nativeBuildInputs = [
     cmake
-    qttools
+    libsForQt5.qttools
     pkg-config
-    wrapQtAppsHook
+    libsForQt5.wrapQtAppsHook
   ];
 
   buildInputs = [
-    qtbase
-    qtsvg
+    libsForQt5.qtbase
+    libsForQt5.qtsvg
     dtkwidget
     dde-control-center
     dde-session-shell
-    networkmanager-qt
+    libsForQt5.networkmanager-qt
     glib
     gtest
   ];
@@ -49,11 +45,11 @@ stdenv.mkDerivation rec {
 
   strictDeps = true;
 
-  meta = with lib; {
+  meta = {
     description = "DDE network library framework";
     homepage = "https://github.com/linuxdeepin/dde-network-core";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = teams.deepin.members;
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.linux;
+    maintainers = lib.teams.deepin.members;
   };
 }
diff --git a/pkgs/desktops/deepin/core/dde-shell/default.nix b/pkgs/desktops/deepin/core/dde-shell/default.nix
index 4f4a3f0f71e68..a27406db98928 100644
--- a/pkgs/desktops/deepin/core/dde-shell/default.nix
+++ b/pkgs/desktops/deepin/core/dde-shell/default.nix
@@ -2,7 +2,6 @@
   stdenv,
   lib,
   fetchFromGitHub,
-  fetchpatch,
   cmake,
   extra-cmake-modules,
   pkg-config,
@@ -23,22 +22,17 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dde-shell";
-  version = "0.0.43";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = "dde-shell";
     rev = finalAttrs.version;
-    hash = "sha256-wSk1gEJbTxKUPZ6DiTeVw2qyX+CwANA37ZP0tXnz0J0=";
+    hash = "sha256-I3z6HL1h3qmLfOrwhyLhtSz3og4kHcAdlHJx4+SgPRo=";
   };
 
   patches = [
     ./fix-path-for-nixos.diff
-    (fetchpatch {
-      name = "fix-libdock-plugin_so-contains-a-forbidden-reference.diff";
-      url = "https://github.com/linuxdeepin/dde-shell/commit/bf9a0472bc44748a3c389d796d144dad6b13617b.patch";
-      hash = "sha256-cP5zMsfPyi4FIR1OIbVSnn+Z+KqRuIK7a214VjVb/7w=";
-    })
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/deepin/core/dde-tray-loader/default.nix b/pkgs/desktops/deepin/core/dde-tray-loader/default.nix
index c1e2fde90e852..06d76e0398fd2 100644
--- a/pkgs/desktops/deepin/core/dde-tray-loader/default.nix
+++ b/pkgs/desktops/deepin/core/dde-tray-loader/default.nix
@@ -18,20 +18,20 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dde-tray-loader";
-  version = "0.0.11";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = "dde-tray-loader";
     rev = finalAttrs.version;
-    hash = "sha256-kz8+essf6O3ckeY5/5a/Z6539qNcfOnGbGTqSo5swhc=";
+    hash = "sha256-FEvoVgwzDYN23TJxu1kRSMSbS4hELYFFByxOsEO9JKE=";
   };
 
   patches = [
     (fetchpatch {
-      name = "set-version-for-dde-dock_pc.patch";
-      url = "https://github.com/linuxdeepin/dde-tray-loader/commit/0f9b90a9aa8096a92c21c8f01d29b4785aaf04e5.patch";
-      hash = "sha256-A6k8XjyIDbA+XuUxYWd5yxFJ8yOWMOtUH5Vg10o//YM=";
+      name = "remove-useless-function.patch";
+      url = "https://github.com/linuxdeepin/dde-tray-loader/commit/cf85f68db52472a0291bbbc3c298d7a2b701e4bc.patch";
+      hash = "sha256-ks7Rg5kLQvo03XKbfQaqu/heP2yoVEbNO6UhDv99JBY=";
     })
   ];
 
diff --git a/pkgs/desktops/deepin/library/dtk6core/default.nix b/pkgs/desktops/deepin/library/dtk6core/default.nix
index 31bf59583c047..2e8b53dfa7f67 100644
--- a/pkgs/desktops/deepin/library/dtk6core/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6core/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dtk6core";
-  version = "6.0.18";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = "dtk6core";
     rev = finalAttrs.version;
-    hash = "sha256-zyhqkxxWB5U37eBxINNxcbnF5NpImg+E7H1VhfJDz60=";
+    hash = "sha256-3MwvTnjtVVcMjQa1f4UdagEtWhJj8aDgfUlmnGo/R7s=";
   };
 
   patches = [
diff --git a/pkgs/desktops/deepin/library/dtk6declarative/default.nix b/pkgs/desktops/deepin/library/dtk6declarative/default.nix
index 83d3140db7e48..ed54eb321cab6 100644
--- a/pkgs/desktops/deepin/library/dtk6declarative/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6declarative/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dtk6declarative";
-  version = "6.0.18";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = "dtk6declarative";
     rev = finalAttrs.version;
-    hash = "sha256-/bQGb87UbnIRWwR6Of67VrRUkrNk6dmY7bjgwDXc30Y";
+    hash = "sha256-BxWPLJeuQDbNg4UoyHD/VAMV2QFWDjWZiFx5JOEmLxg=";
   };
 
   patches = [
diff --git a/pkgs/desktops/deepin/library/dtk6gui/default.nix b/pkgs/desktops/deepin/library/dtk6gui/default.nix
index 524a4bbb1c288..e6dddb93587f8 100644
--- a/pkgs/desktops/deepin/library/dtk6gui/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6gui/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dtk6gui";
-  version = "6.0.18";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = "dtk6gui";
     rev = finalAttrs.version;
-    hash = "sha256-w8tyc06v/juTP0YSsyWai1ONl4Aa7dzREIc5wLnI/vw=";
+    hash = "sha256-nqwkBMcCQiW4iqYhceTaSNNxoR5tvCNfjKUVVHkzN3A=";
   };
 
   patches = [
diff --git a/pkgs/desktops/deepin/library/dtk6widget/default.nix b/pkgs/desktops/deepin/library/dtk6widget/default.nix
index 7e47a4c92ca6a..b76a189b271fe 100644
--- a/pkgs/desktops/deepin/library/dtk6widget/default.nix
+++ b/pkgs/desktops/deepin/library/dtk6widget/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation (finalAttrs: {
   pname = "dtk6widget";
-  version = "6.0.18";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = "dtk6widget";
     rev = finalAttrs.version;
-    hash = "sha256-6H3Dtdyq/adb3jz9lGaKmOguXqvhvZn1/G7+YajyF2k=";
+    hash = "sha256-VlFzecX76RMNSBpnMc9HwMPZ5z3zzzkcVcNlGKSShyA=";
   };
 
   patches = [
diff --git a/pkgs/desktops/deepin/library/qt6integration/default.nix b/pkgs/desktops/deepin/library/qt6integration/default.nix
index 07b93c85f74cb..19f6d5f936693 100644
--- a/pkgs/desktops/deepin/library/qt6integration/default.nix
+++ b/pkgs/desktops/deepin/library/qt6integration/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qt6integration";
-  version = "6.0.18";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-7FGOnAAcwOonpMDDukj88s1b4WmLJNu7MZSW7f7P44g=";
+    hash = "sha256-RVhAuEthrTE1QkRIKmBK4VM86frgAqLMJL31F11H8R8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/deepin/library/qt6platform-plugins/default.nix b/pkgs/desktops/deepin/library/qt6platform-plugins/default.nix
index 84eff44d2330b..93ac45236ba9e 100644
--- a/pkgs/desktops/deepin/library/qt6platform-plugins/default.nix
+++ b/pkgs/desktops/deepin/library/qt6platform-plugins/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qt6platform-plugins";
-  version = "6.0.18";
+  version = "6.0.19";
 
   src = fetchFromGitHub {
     owner = "linuxdeepin";
     repo = pname;
     rev = version;
-    hash = "sha256-O2wylkNKqN0JxKffwFNSfv7S1hPIFrVKwSsppSGTp6I=";
+    hash = "sha256-aHqm+WKZLoUymiMFfrF3jgWrxgq51d6yTXWiOMsFgiQ=";
   };
 
   postUnpack = ''
diff --git a/pkgs/development/compilers/cairo/default.nix b/pkgs/development/compilers/cairo/default.nix
index 10dc215065ab7..0749175f08375 100644
--- a/pkgs/development/compilers/cairo/default.nix
+++ b/pkgs/development/compilers/cairo/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cairo";
-  version = "2.8.0";
+  version = "2.8.2";
 
   src = fetchFromGitHub {
     owner = "starkware-libs";
     repo = "cairo";
     rev = "v${version}";
-    hash = "sha256-zQ+kc4c8YI9vURUEQNqX55mTJBcc2NLp4K8kab3ZjEs=";
+    hash = "sha256-vBdIGkdQa/csqsu4DbgIYitVbDLDUAFmIUytZ7IcxNk=";
   };
 
-  cargoHash = "sha256-3ah6cHyCppkLJ2e73aGhVemyMRBl9R5a6ufWHmrJHSk=";
+  cargoHash = "sha256-w3kzEM34HYQ6KgILaDpmZbCgAh8Ql24DRe12woUAhVI=";
 
   # openssl crate requires perl during build process
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/dart/sources.nix b/pkgs/development/compilers/dart/sources.nix
index 9246628d01994..7f2054e3e0c13 100644
--- a/pkgs/development/compilers/dart/sources.nix
+++ b/pkgs/development/compilers/dart/sources.nix
@@ -1,24 +1,24 @@
-let version = "3.5.2"; in
+let version = "3.5.3"; in
 { fetchurl }: {
   versionUsed = version;
   "${version}-x86_64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-x64-release.zip";
-    sha256 = "0k1h7kbcagm7s0n8696lzws814rabz3491khd7z78mb3ivahxw35";
+    sha256 = "1z6hl6pqsg2l7pfchzr5dk90b2dchidhwnnnc4q5dzz0xjikqrvx";
   };
   "${version}-aarch64-darwin" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-macos-arm64-release.zip";
-    sha256 = "036jw4qq3wicyfpamy7v6qsbrj0m7dyny45yzdgil4snvfagvfsv";
+    sha256 = "12rzl1nm1y0q5ff9p8gslki4cz37y3bdn8p2s3x2nc81bdda4gn7";
   };
   "${version}-aarch64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-arm64-release.zip";
-    sha256 = "1wm1157hbsms872pp1fkn0i3khz3h4r909bdvpk2rhag2l928f0a";
+    sha256 = "1rp54g8di8j715n955wdr6i0pcrx2dn73qmvmrisyahi0qjrk0py";
   };
   "${version}-x86_64-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-x64-release.zip";
-    sha256 = "160dk1dpdzdh0pphmvdw7agavpyxniw8zf5w30yamkdi7r9g0l0b";
+    sha256 = "001mpb3fniamlmnqmhxdpbvp8crdvnf6sam13vvfmnr6na1fpxil";
   };
   "${version}-i686-linux" = fetchurl {
     url = "https://storage.googleapis.com/dart-archive/channels/stable/release/${version}/sdk/dartsdk-linux-ia32-release.zip";
-    sha256 = "0nrgjdzc2skqc2b52pzw78056jqrqmiwzwwd9wh699dwwfnrjcf4";
+    sha256 = "0z9qjx2b2rmiqyqww0a5slj0pi1k8sn4fjihkn53im65rhhqra2y";
   };
 }
diff --git a/pkgs/development/compilers/dotnet/common.nix b/pkgs/development/compilers/dotnet/common.nix
index 491b8c0ff272d..9fcd79c752d1a 100644
--- a/pkgs/development/compilers/dotnet/common.nix
+++ b/pkgs/development/compilers/dotnet/common.nix
@@ -35,8 +35,8 @@
   });
 
   propagatedBuildInputs =
-    (args.propagatedBuildInputs or [])
-    ++ [ nugetPackageHook ];
+    (args.propagatedBuildInputs or [ ])
+    ++ lib.optional (type == "sdk") nugetPackageHook;
 
   nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ installShellFiles ];
 
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index bfc9597f38749..0a9d0feccd818 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -1,4 +1,4 @@
-{ useNixpkgsEngine ? false, callPackage, fetchzip, fetchFromGitHub, dart, lib, stdenv }@args:
+{ useNixpkgsEngine ? false, callPackage, fetchzip, fetchFromGitHub, dart, lib, stdenv }:
 let
   mkCustomFlutter = args: callPackage ./flutter.nix args;
   wrapFlutter = flutter: callPackage ./wrapper.nix { inherit flutter; };
@@ -19,7 +19,7 @@ let
     , pubspecLock
     , artifactHashes
     , channel
-    }@fargs:
+    }:
     let
       args = {
         inherit version engineVersion engineSwiftShaderRev engineSwiftShaderHash engineHashes enginePatches patches pubspecLock artifactHashes useNixpkgsEngine channel;
diff --git a/pkgs/development/compilers/flutter/sdk-symlink.nix b/pkgs/development/compilers/flutter/sdk-symlink.nix
index 044a508805f58..98051efa56136 100644
--- a/pkgs/development/compilers/flutter/sdk-symlink.nix
+++ b/pkgs/development/compilers/flutter/sdk-symlink.nix
@@ -17,6 +17,28 @@ let
         if [ -d '${flutter.sdk}/.git' ]; then
           ln -s '${flutter.sdk}/.git' "$out"
         fi
+
+        # For iOS/macOS builds, *.xcframework/'s from the pre-built
+        # artifacts are copied into each built app. However, the symlinkJoin
+        # means that the *.xcframework's contain symlinks into the nix store,
+        # which causes issues when actually running the apps.
+        #
+        # We'll fix this by only linking to an outer *.xcframework dir instead
+        # of trying to symlinkJoin the files inside the *.xcframework.
+        artifactsDir="$out/bin/cache/artifacts/engine"
+        shopt -s globstar
+        for file in "$artifactsDir"/**/*.xcframework/Info.plist; do
+          # Get the unwrapped path from the Info.plist inside each .xcframework
+          origFile="$(readlink -f "$file")"
+          origFrameworkDir="$(dirname "$origFile")"
+
+          # Remove the symlinkJoin .xcframework dir and replace it with a symlink
+          # to the unwrapped .xcframework dir.
+          frameworkDir="$(dirname "$file")"
+          rm -r "$frameworkDir"
+          ln -s "$origFrameworkDir" "$frameworkDir"
+        done
+        shopt -u globstar
       '';
 
       passthru = flutter.passthru // {
diff --git a/pkgs/development/compilers/flutter/versions/3_24/patches/fix-ios-build-xcode-backend-sh.patch b/pkgs/development/compilers/flutter/versions/3_24/patches/fix-ios-build-xcode-backend-sh.patch
new file mode 100644
index 0000000000000..825d40fc6176a
--- /dev/null
+++ b/pkgs/development/compilers/flutter/versions/3_24/patches/fix-ios-build-xcode-backend-sh.patch
@@ -0,0 +1,69 @@
+From 6df275df3b8694daf16302b407520e3b1dee6724 Mon Sep 17 00:00:00 2001
+From: Philip Hayes <philiphayes9@gmail.com>
+Date: Thu, 12 Sep 2024 13:23:00 -0700
+Subject: [PATCH] fix: cleanup xcode_backend.sh to fix iOS build w/
+ `NixOS/nixpkgs` flutter
+
+This patch cleans up `xcode_backend.sh`. It now effectively just runs
+`exec $FLUTTER_ROOT/bin/dart ./xcode_backend.dart`.
+
+The previous `xcode_backend.sh` tries to discover `$FLUTTER_ROOT` from
+argv[0], even though its presence is already guaranteed (the wrapped
+`xcode_backend.dart` also relies on this env).
+
+When using nixpkgs flutter, the flutter SDK directory is composed of several
+layers, joined together using symlinks (called a `symlinkJoin`). Without this
+patch, the auto-discover traverses the symlinks into the wrong layer, and so it
+uses an "unwrapped" `dart` command instead of a "wrapped" dart that sets some
+important envs/flags (like `$FLUTTER_ROOT`).
+
+Using the "unwrapped" dart then manifests in this error when compiling, since
+it doesn't see the ios build-support artifacts:
+
+```
+$ flutter run -d iphone
+Running Xcode build...
+Xcode build done.                                            6.4s
+Failed to build iOS app
+Error (Xcode): Target debug_unpack_ios failed: Error: Flutter failed to create a directory at "/<nix-store>/XXXX-flutter-3.24.1-unwrapped/bin/cache/artifacts".
+```
+---
+ packages/flutter_tools/bin/xcode_backend.sh | 25 ++++-----------------
+ 1 file changed, 4 insertions(+), 21 deletions(-)
+
+diff --git a/packages/flutter_tools/bin/xcode_backend.sh b/packages/flutter_tools/bin/xcode_backend.sh
+index 2889d7c8e4..48b9d06c6e 100755
+--- a/packages/flutter_tools/bin/xcode_backend.sh
++++ b/packages/flutter_tools/bin/xcode_backend.sh
+@@ -6,24 +6,7 @@
+ # exit on error, or usage of unset var
+ set -euo pipefail
+ 
+-# Needed because if it is set, cd may print the path it changed to.
+-unset CDPATH
+-
+-function follow_links() (
+-  cd -P "$(dirname -- "$1")"
+-  file="$PWD/$(basename -- "$1")"
+-  while [[ -h "$file" ]]; do
+-    cd -P "$(dirname -- "$file")"
+-    file="$(readlink -- "$file")"
+-    cd -P "$(dirname -- "$file")"
+-    file="$PWD/$(basename -- "$file")"
+-  done
+-  echo "$file"
+-)
+-
+-PROG_NAME="$(follow_links "${BASH_SOURCE[0]}")"
+-BIN_DIR="$(cd "${PROG_NAME%/*}" ; pwd -P)"
+-FLUTTER_ROOT="$BIN_DIR/../../.."
+-DART="$FLUTTER_ROOT/bin/dart"
+-
+-"$DART" "$BIN_DIR/xcode_backend.dart" "$@"
++# Run `dart ./xcode_backend.dart` with the dart from $FLUTTER_ROOT.
++dart="${FLUTTER_ROOT}/bin/dart"
++xcode_backend_dart="${BASH_SOURCE[0]%.sh}.dart"
++exec "${dart}" "${xcode_backend_dart}" "$@"
+-- 
+2.46.0
+
diff --git a/pkgs/development/compilers/flutter/wrapper.nix b/pkgs/development/compilers/flutter/wrapper.nix
index c988eba2e5aeb..2c1b1ea125c86 100644
--- a/pkgs/development/compilers/flutter/wrapper.nix
+++ b/pkgs/development/compilers/flutter/wrapper.nix
@@ -18,7 +18,6 @@
 , extraCFlags ? [ ]
 , extraLinkerFlags ? [ ]
 , makeWrapper
-, runCommandLocal
 , writeShellScript
 , wrapGAppsHook3
 , git
@@ -39,7 +38,6 @@
 , cmake
 , ninja
 , clang
-, lndir
 , symlinkJoin
 }:
 
@@ -56,7 +54,7 @@ let
       };
     }));
 
-  cacheDir = symlinkJoin rec {
+  cacheDir = symlinkJoin {
     name = "flutter-cache-dir";
     paths = builtins.attrValues flutterPlatformArtifacts;
     postBuild = ''
diff --git a/pkgs/development/compilers/jetbrains-jdk/default.nix b/pkgs/development/compilers/jetbrains-jdk/default.nix
index 0f003a3ea4fdd..59a6704e31035 100644
--- a/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -38,26 +38,26 @@ let
 in
 jdk.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk" + lib.optionalString withJcef "-jcef";
-  javaVersion = "21.0.3";
-  build = "509.11";
+  javaVersion = "21.0.4";
+  build = "598.4";
   # To get the new tag:
   # git clone https://github.com/jetbrains/jetbrainsruntime
   # cd jetbrainsruntime
   # git checkout jbr-release-${javaVersion}b${build}
   # git log --simplify-by-decoration --decorate=short --pretty=short | grep "jbr-" --color=never | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ","
-  openjdkTag = "jbr-21.0.2+13";
+  openjdkTag = "jbr-21.0.4+8";
   version = "${javaVersion}-b${build}";
 
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${version}";
-    hash = "sha256-zTstmrH4KteR40BVDRfxOrl8aUQ26acE+ywscBd8sw8=";
+    hash = "sha256-YF5Z1A4qmD9Z4TE6f2i8wv9ZD+NqHGY5Q0oIVQiC3Bg=";
   };
 
   BOOT_JDK = jdk.home;
   # run `git log -1 --pretty=%ct` in jdk repo for new value on update
-  SOURCE_DATE_EPOCH = 1723453663;
+  SOURCE_DATE_EPOCH = 1726275531;
 
   patches = [ ];
 
diff --git a/pkgs/development/compilers/llvm/common/bolt/default.nix b/pkgs/development/compilers/llvm/common/bolt/default.nix
index ee89de4ac751d..9d6385ae74b34 100644
--- a/pkgs/development/compilers/llvm/common/bolt/default.nix
+++ b/pkgs/development/compilers/llvm/common/bolt/default.nix
@@ -12,6 +12,7 @@
   python3,
   buildLlvmTools,
   patches ? [ ],
+  devExtraCmakeFlags ? [ ],
 }:
 
 stdenv.mkDerivation (finalAttrs: {
@@ -43,9 +44,11 @@ stdenv.mkDerivation (finalAttrs: {
     libxml2
   ];
 
-  cmakeFlags = lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
-    (lib.cmakeFeature "LLVM_TABLEGEN_EXE" "${buildLlvmTools.llvm}/bin/llvm-tblgen")
-  ];
+  cmakeFlags =
+    lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
+      (lib.cmakeFeature "LLVM_TABLEGEN_EXE" "${buildLlvmTools.llvm}/bin/llvm-tblgen")
+    ]
+    ++ devExtraCmakeFlags;
 
   postUnpack = ''
     chmod -R u+w -- $sourceRoot/..
diff --git a/pkgs/development/compilers/llvm/common/clang/default.nix b/pkgs/development/compilers/llvm/common/clang/default.nix
index 5a6d775804b64..9ef1a3a3c644b 100644
--- a/pkgs/development/compilers/llvm/common/clang/default.nix
+++ b/pkgs/development/compilers/llvm/common/clang/default.nix
@@ -17,6 +17,7 @@
 , fixDarwinDylibNames
 , enableManpages ? false
 , clang-tools-extra_src ? null
+, devExtraCmakeFlags ? []
 }:
 
 let
@@ -69,7 +70,9 @@ let
       # `clang-pseudo-gen`: https://github.com/llvm/llvm-project/commit/cd2292ef824591cc34cc299910a3098545c840c7
       "-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${buildLlvmTools.libclang.dev}/bin/clang-tidy-confusable-chars-gen"
       "-DCLANG_PSEUDO_GEN=${buildLlvmTools.libclang.dev}/bin/clang-pseudo-gen"
-    ]) ++ lib.optional (stdenv.targetPlatform.useLLVM or false) "-DCLANG_DEFAULT_CXX_STDLIB=ON";
+    ]) ++ lib.optionals (stdenv.targetPlatform.useLLVM or false) [
+      "-DCLANG_DEFAULT_CXX_STDLIB=ON"
+    ] ++ devExtraCmakeFlags;
 
     postPatch = ''
       # Make sure clang passes the correct location of libLTO to ld64
diff --git a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
index 288ad81dcd21b..e43ff09931b8a 100644
--- a/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/common/compiler-rt/default.nix
@@ -28,6 +28,7 @@
 # `libcompiler_rt` library, at least under certain configurations. Some
 # platforms stil expect this, however, so we symlink one into place.
 , forceLinkCompilerRt ? stdenv.hostPlatform.isOpenBSD
+, devExtraCmakeFlags ? []
 }:
 
 let
@@ -134,9 +135,9 @@ stdenv.mkDerivation ({
     "-DCOMPILER_RT_ENABLE_IOS=OFF"
   ]) ++ lib.optionals (lib.versionAtLeast version "19" && stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
     "-DSANITIZER_MIN_OSX_VERSION=10.10"
-  ]  ++ lib.optionals (noSanitizers && lib.versionAtLeast release_version "19") [
+  ] ++ lib.optionals (noSanitizers && lib.versionAtLeast release_version "19") [
     "-DCOMPILER_RT_BUILD_CTX_PROFILE=OFF"
-  ];
+  ] ++ devExtraCmakeFlags;
 
   outputs = [ "out" "dev" ];
 
diff --git a/pkgs/development/compilers/llvm/common/default.nix b/pkgs/development/compilers/llvm/common/default.nix
index 1c56e0f6f4c1c..689ea9f7cb7b7 100644
--- a/pkgs/development/compilers/llvm/common/default.nix
+++ b/pkgs/development/compilers/llvm/common/default.nix
@@ -27,6 +27,9 @@
   officialRelease ? null,
   monorepoSrc ? null,
   version ? null,
+  # Allows passthrough to packages via newScope. This makes it possible to
+  # do `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+  # an llvmPackages whose packages are overridden in an internally consistent way.
   ...
 }@args:
 
diff --git a/pkgs/development/compilers/llvm/common/libcxx/default.nix b/pkgs/development/compilers/llvm/common/libcxx/default.nix
index f646edf03019d..2893d012151d0 100644
--- a/pkgs/development/compilers/llvm/common/libcxx/default.nix
+++ b/pkgs/development/compilers/llvm/common/libcxx/default.nix
@@ -16,6 +16,7 @@
 , cxxabi ? if stdenv.hostPlatform.isFreeBSD then freebsd.libcxxrt else null
 , libunwind
 , enableShared ? !stdenv.hostPlatform.isStatic
+, devExtraCmakeFlags ? []
 }:
 
 # external cxxabi is not supported on Darwin as the build will not link libcxx
@@ -103,7 +104,8 @@ let
     "-DCMAKE_CXX_COMPILER_WORKS=ON"
     "-DUNIX=ON" # Required otherwise libc++ fails to detect the correct linker
   ] ++ cxxCMakeFlags
-    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags;
+    ++ lib.optionals (cxxabi == null) cxxabiCMakeFlags
+    ++ devExtraCmakeFlags;
 
 in
 
diff --git a/pkgs/development/compilers/llvm/common/libunwind/default.nix b/pkgs/development/compilers/llvm/common/libunwind/default.nix
index 515914e6acb64..77854ddfcc5de 100644
--- a/pkgs/development/compilers/llvm/common/libunwind/default.nix
+++ b/pkgs/development/compilers/llvm/common/libunwind/default.nix
@@ -12,6 +12,7 @@
 , python3
 , libcxx
 , enableShared ? !stdenv.hostPlatform.isStatic
+, devExtraCmakeFlags ? []
 }:
 let
   pname = "libunwind";
@@ -68,7 +69,8 @@ stdenv.mkDerivation (rec {
   ];
 
   cmakeFlags = lib.optional (lib.versionAtLeast release_version "15") "-DLLVM_ENABLE_RUNTIMES=libunwind"
-    ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF";
+    ++ lib.optional (!enableShared) "-DLIBUNWIND_ENABLE_SHARED=OFF"
+    ++ devExtraCmakeFlags;
 
   meta = llvm_meta // {
     # Details: https://github.com/llvm/llvm-project/blob/main/libunwind/docs/index.rst
diff --git a/pkgs/development/compilers/llvm/common/lld/default.nix b/pkgs/development/compilers/llvm/common/lld/default.nix
index 99bb150a817dc..2c87d4cfa96f2 100644
--- a/pkgs/development/compilers/llvm/common/lld/default.nix
+++ b/pkgs/development/compilers/llvm/common/lld/default.nix
@@ -13,6 +13,7 @@
 , libxml2
 , libllvm
 , version
+, devExtraCmakeFlags ? []
 }:
 let
   pname = "lld";
@@ -55,7 +56,7 @@ stdenv.mkDerivation (rec {
     "-DLLD_INSTALL_PACKAGE_DIR=${placeholder "dev"}/lib/cmake/lld"
   ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
-  ];
+  ] ++ devExtraCmakeFlags;
 
   # Musl's default stack size is too small for lld to be able to link Firefox.
   LDFLAGS = lib.optionalString stdenv.hostPlatform.isMusl "-Wl,-z,stack-size=2097152";
diff --git a/pkgs/development/compilers/llvm/common/lldb.nix b/pkgs/development/compilers/llvm/common/lldb.nix
index 65974e757c4ba..d174570c1f34a 100644
--- a/pkgs/development/compilers/llvm/common/lldb.nix
+++ b/pkgs/development/compilers/llvm/common/lldb.nix
@@ -23,6 +23,7 @@
 , monorepoSrc ? null
 , patches ? [ ]
 , enableManpages ? false
+, devExtraCmakeFlags ? [ ]
 , ...
 }:
 
@@ -142,7 +143,7 @@ stdenv.mkDerivation (rec {
   ]) ++ lib.optionals doCheck [
     "-DLLDB_TEST_C_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc"
     "-DLLDB_TEST_CXX_COMPILER=${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++"
-  ];
+  ] ++ devExtraCmakeFlags;
 
   doCheck = false;
   doInstallCheck = lib.versionOlder release_version "15";
diff --git a/pkgs/development/compilers/llvm/common/llvm/default.nix b/pkgs/development/compilers/llvm/common/llvm/default.nix
index a995c83405e98..e39ba171373f6 100644
--- a/pkgs/development/compilers/llvm/common/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/common/llvm/default.nix
@@ -40,6 +40,7 @@
   && !stdenv.hostPlatform.isAarch
 , enablePolly ? lib.versionAtLeast release_version "14"
 , enableTerminfo ? true
+, devExtraCmakeFlags ? []
 }:
 
 let
@@ -399,7 +400,7 @@ stdenv.mkDerivation (rec {
         nativeInstallFlags
       ])
     )
-  ];
+  ] ++ devExtraCmakeFlags;
 
   postInstall = ''
     mkdir -p $python/share
diff --git a/pkgs/development/compilers/llvm/common/mlir/default.nix b/pkgs/development/compilers/llvm/common/mlir/default.nix
index 891e66b1d57c5..3ef689b7fefed 100644
--- a/pkgs/development/compilers/llvm/common/mlir/default.nix
+++ b/pkgs/development/compilers/llvm/common/mlir/default.nix
@@ -10,6 +10,7 @@
 , libllvm
 , version
 , doCheck ? (!stdenv.isx86_32 /* TODO: why */) && (!stdenv.hostPlatform.isMusl)
+, devExtraCmakeFlags ? []
 }:
 
 stdenv.mkDerivation rec {
@@ -63,7 +64,7 @@ stdenv.mkDerivation rec {
   ] ++ lib.optionals ((stdenv.hostPlatform != stdenv.buildPlatform) && !(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) [
     "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen"
     "-DMLIR_TABLEGEN_EXE=${buildLlvmTools.mlir}/bin/mlir-tblgen"
-  ];
+  ] ++ devExtraCmakeFlags;
 
   outputs = [ "out" "dev" ];
 
diff --git a/pkgs/development/compilers/llvm/common/openmp/default.nix b/pkgs/development/compilers/llvm/common/openmp/default.nix
index 0de91473dd8c4..57c6de07c7843 100644
--- a/pkgs/development/compilers/llvm/common/openmp/default.nix
+++ b/pkgs/development/compilers/llvm/common/openmp/default.nix
@@ -15,6 +15,7 @@
 , perl
 , pkg-config
 , version
+, devExtraCmakeFlags ? []
 }:
 let
   pname = "openmp";
@@ -60,7 +61,7 @@ stdenv.mkDerivation (rec {
     "-DCLANG_TOOL=${clang-unwrapped}/bin/clang"
     "-DOPT_TOOL=${llvm}/bin/opt"
     "-DLINK_TOOL=${llvm}/bin/llvm-link"
-  ];
+  ] ++ devExtraCmakeFlags;
 
   meta = llvm_meta // {
     homepage = "https://openmp.llvm.org/";
diff --git a/pkgs/development/compilers/llvm/default.nix b/pkgs/development/compilers/llvm/default.nix
index 4924dd11003fb..2d0ffd4740f89 100644
--- a/pkgs/development/compilers/llvm/default.nix
+++ b/pkgs/development/compilers/llvm/default.nix
@@ -14,7 +14,12 @@
   bootBintoolsNoLibc ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintoolsNoLibc,
   bootBintools ? if stdenv.targetPlatform.linker == "lld" then null else pkgs.bintools,
   llvmVersions ? { },
-}:
+  # Allows passthrough to packages via newScope in ./common/default.nix.
+  # This makes it possible to do
+  # `(llvmPackages.override { <someLlvmDependency> = bar; }).clang` and get
+  # an llvmPackages whose packages are overridden in an internally consistent way.
+  ...
+}@packageSetArgs:
 let
   versions = {
     "13.0.1".officialRelease.sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k";
@@ -53,25 +58,29 @@ let
     in
     lib.nameValuePair attrName (
       recurseIntoAttrs (
-        callPackage ./common {
-          inherit (stdenvAdapters) overrideCC;
-          buildLlvmTools = buildPackages."llvmPackages_${attrName}".tools;
-          targetLlvmLibraries =
-            targetPackages."llvmPackages_${attrName}".libraries or llvmPackages."${attrName}".libraries;
-          targetLlvm = targetPackages."llvmPackages_${attrName}".llvm or llvmPackages."${attrName}".llvm;
-          stdenv =
-            if (lib.versions.major release_version == "13" && stdenv.cc.cc.isGNU or false) then
-              gcc12Stdenv
-            else
-              stdenv; # does not build with gcc13
-          inherit bootBintoolsNoLibc bootBintools;
-          inherit
-            officialRelease
-            gitRelease
-            monorepoSrc
-            version
-            ;
-        }
+        callPackage ./common (
+          {
+            inherit (stdenvAdapters) overrideCC;
+            buildLlvmTools = buildPackages."llvmPackages_${attrName}".tools;
+            targetLlvmLibraries =
+              targetPackages."llvmPackages_${attrName}".libraries or llvmPackages."${attrName}".libraries;
+            targetLlvm = targetPackages."llvmPackages_${attrName}".llvm or llvmPackages."${attrName}".llvm;
+            inherit
+              officialRelease
+              gitRelease
+              monorepoSrc
+              version
+              ;
+          }
+          // packageSetArgs # Allow overrides.
+          // {
+            stdenv =
+              if (lib.versions.major release_version == "13" && stdenv.cc.cc.isGNU or false) then
+                gcc12Stdenv
+              else
+                stdenv; # does not build with gcc13
+          }
+        )
       )
     );
 
diff --git a/pkgs/development/coq-modules/QuickChick/default.nix b/pkgs/development/coq-modules/QuickChick/default.nix
index 451353a341423..d9a0182c26592 100644
--- a/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/pkgs/development/coq-modules/QuickChick/default.nix
@@ -6,7 +6,7 @@ let recent = lib.versions.isGe "8.7" coq.coq-version || coq.coq-version == "dev"
   owner = "QuickChick";
   inherit version;
   defaultVersion = lib.switch [ coq.coq-version ssreflect.version ] [
-      { cases = [ (lib.versions.range "8.15" "8.19") lib.pred.true  ]; out = "2.0.2"; }
+      { cases = [ (lib.versions.range "8.15" "8.20") lib.pred.true  ]; out = "2.0.4"; }
       { cases = [ (lib.versions.range "8.13" "8.17") lib.pred.true  ]; out = "1.6.5"; }
       { cases = [ "8.13" lib.pred.true           ]; out = "1.5.0"; }
       { cases = [ "8.12" lib.pred.true           ]; out = "1.4.0"; }
@@ -18,6 +18,7 @@ let recent = lib.versions.isGe "8.7" coq.coq-version || coq.coq-version == "dev"
       { cases = [ "8.6"  lib.pred.true           ]; out = "20171102"; }
       { cases = [ "8.5"  lib.pred.true           ]; out = "20170512"; }
     ] null;
+  release."2.0.4".sha256    = "sha256-WD8B+n8gyGctHMO+M8201Ca3Uw8zCWYsOatSNGCf0/s=";
   release."2.0.2".sha256    = "sha256-xxKkwDRjB8nUiXNhein1Ppn0DP5FZ13J90xUPAnQBbs=";
   release."2.0.1".sha256    = "sha256-gJc+9Or6tbqE00920Il4pnEvokRoiADX6CxP/Q0QZaY=";
   release."1.6.5".sha256    = "sha256-rcFyRDH8UbB9KVk10P5qjtPkWs04p78VNHkCq4mXr3U=";
diff --git a/pkgs/development/coq-modules/simple-io/default.nix b/pkgs/development/coq-modules/simple-io/default.nix
index a5418ce08dc31..e3fa7036a8668 100644
--- a/pkgs/development/coq-modules/simple-io/default.nix
+++ b/pkgs/development/coq-modules/simple-io/default.nix
@@ -6,9 +6,11 @@
   repo = "coq-simple-io";
   inherit version;
   defaultVersion = with lib.versions; lib.switch coq.coq-version [
+    { case = range "8.17" "8.20"; out = "1.10.0"; }
     { case = range "8.11" "8.19"; out = "1.8.0"; }
     { case = range "8.7"  "8.13"; out = "1.3.0"; }
   ] null;
+  release."1.10.0".sha256 = "sha256-67cBhLvRMWLWBL7NXK1zZTQC4PtSKu9qtesU4SqKkOw=";
   release."1.8.0".sha256 = "sha256-3ADNeXrBIpYRlfUW+LkLHUWV1w1HFrVc/TZISMuwvRY=";
   release."1.7.0".sha256 = "sha256:1a1q9x2abx71hqvjdai3n12jxzd49mhf3nqqh3ya2ssl2lj609ci";
   release."1.3.0".sha256 = "1yp7ca36jyl9kz35ghxig45x6cd0bny2bpmy058359p94wc617ax";
@@ -20,9 +22,7 @@
   doCheck = true;
   checkTarget = "test";
 
-  useDuneifVersion = v:
-    (lib.versionAtLeast v "1.8.0" || v == "dev")
-    && (lib.versionAtLeast coq.version "8.20" || coq.version == "dev");
+  useDuneifVersion = v: (lib.versionAtLeast v "1.10.0" || v == "dev");
 
   passthru.tests.HelloWorld = callPackage ./test.nix {};
 
diff --git a/pkgs/development/emilua-plugins/botan/default.nix b/pkgs/development/emilua-plugins/botan/default.nix
new file mode 100644
index 0000000000000..895e400281980
--- /dev/null
+++ b/pkgs/development/emilua-plugins/botan/default.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  stdenv,
+  meson,
+  ninja,
+  fetchFromGitLab,
+  gperf,
+  gawk,
+  gitUpdater,
+  pkg-config,
+  boost,
+  luajit_openresty,
+  asciidoctor,
+  emilua,
+  liburing,
+  openssl,
+  fmt,
+  botan3,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "emilua-botan";
+  version = "1.1.0";
+
+  src = fetchFromGitLab {
+    owner = "emilua";
+    repo = "botan";
+    rev = "v${version}";
+    hash = "sha256-5/vcm6vNucBhl1Aki+OFNjAU7Hvc7OLAAH4CYchlBIY=";
+  };
+
+  buildInputs = [
+    emilua
+    liburing
+    fmt
+    botan3
+    luajit_openresty
+    openssl
+    boost
+  ];
+
+  nativeBuildInputs = [
+    gperf
+    gawk
+    pkg-config
+    asciidoctor
+    meson
+    ninja
+  ];
+
+  passthru = {
+    updateScript = gitUpdater { rev-prefix = "v"; };
+  };
+
+  meta = with lib; {
+    description = "Securely clears secrets from memory in Emilua";
+    homepage = "https://emilua.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ manipuladordedados ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/emilua-plugins/secp256k1/default.nix b/pkgs/development/emilua-plugins/secp256k1/default.nix
new file mode 100644
index 0000000000000..6b83ed573dc1f
--- /dev/null
+++ b/pkgs/development/emilua-plugins/secp256k1/default.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  stdenv,
+  meson,
+  ninja,
+  fetchFromGitLab,
+  gperf,
+  gawk,
+  gitUpdater,
+  pkg-config,
+  boost,
+  luajit_openresty,
+  asciidoctor,
+  emilua,
+  liburing,
+  openssl,
+  fmt,
+  secp256k1,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "emilua-secp256k1";
+  version = "0.5.0";
+
+  src = fetchFromGitLab {
+    owner = "emilua";
+    repo = "secp256k1";
+    rev = "v${version}";
+    hash = "sha256-xbyDKxuU03U0k4YSD7Sahw2Z4ZSpQHwrpWcSN0F5CCw=";
+  };
+
+  buildInputs = [
+    emilua
+    liburing
+    fmt
+    secp256k1
+    luajit_openresty
+    openssl
+    boost
+  ];
+
+  nativeBuildInputs = [
+    gperf
+    gawk
+    pkg-config
+    asciidoctor
+    meson
+    ninja
+  ];
+
+  passthru = {
+    updateScript = gitUpdater { rev-prefix = "v"; };
+  };
+
+  meta = with lib; {
+    description = "Emilua bindings to libsecp256k1";
+    homepage = "https://emilua.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ manipuladordedados ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 23139af6fda2b..3abbd578e5c45 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -12,8 +12,8 @@
 { pkgs, haskellLib }:
 
 let
-  inherit (pkgs) fetchpatch fetchpatch2 lib;
-  inherit (lib) throwIfNot versionOlder versions;
+  inherit (pkgs) fetchpatch lib;
+  inherit (lib) throwIfNot versionOlder;
 in
 
 with haskellLib;
@@ -2649,7 +2649,7 @@ self: super: {
       purescript =
         lib.pipe
           (super.purescript.overrideScope purescriptOverlay)
-          ([
+          [
             # https://github.com/purescript/purescript/pull/4547
             (appendPatches [
               (pkgs.fetchpatch {
@@ -2668,7 +2668,7 @@ self: super: {
             doJailbreak
             # Generate shell completions
             (self.generateOptparseApplicativeCompletions [ "purs" ])
-          ]);
+          ];
 
       purenix =
         lib.pipe
diff --git a/pkgs/development/libraries/arpa2common/default.nix b/pkgs/development/libraries/arpa2common/default.nix
index fc7a897f0d143..77f9694e69a96 100644
--- a/pkgs/development/libraries/arpa2common/default.nix
+++ b/pkgs/development/libraries/arpa2common/default.nix
@@ -1,29 +1,39 @@
-{ lib
-, stdenv
-, fetchFromGitLab
-, cmake
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  fetchpatch,
+  cmake,
 
-, arpa2cm
-, doxygen
-, e2fsprogs
-, graphviz
-, lmdb
-, openssl
-, pkg-config
-, ragel
+  arpa2cm,
+  doxygen,
+  e2fsprogs,
+  graphviz,
+  libsodium,
+  lmdb,
+  openssl,
+  pkg-config,
+  ragel,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "arpa2common";
-  version = "2.2.18";
+  version = "2.6.2";
 
   src = fetchFromGitLab {
     owner = "arpa2";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-UpAVyDXCe07ZwjD307t6G9f/Nny4QYXxGxft1KsiYYg=";
+    repo = "arpa2common";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-eWfWaO6URCK2FWQ+NYAoeCONkovgsVDPSRQVCGFnW3s=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://gitlab.com/arpa2/arpa2common/-/commit/13ea82df60b87a5367db00a8c6f3502e8ecb7298.patch";
+      hash = "sha256-V9Dhr6PeArqXnuXmFuDjcirlGl7xovq7VQZsrbbMFSk=";
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     arpa2cm
@@ -34,17 +44,15 @@ stdenv.mkDerivation rec {
 
   propagatedBuildInputs = [
     e2fsprogs
+    libsodium
     lmdb
     openssl
     ragel
   ];
 
-  # the project uses single argument `printf` throughout the program
-  hardeningDisable = [ "format" ];
-
   meta = {
-    description =
-      "ARPA2 ID and ACL libraries and other core data structures for ARPA2";
+    changelog = "https://gitlab.com/arpa2/arpa2common/-/blob/v${finalAttrs.version}/CHANGES";
+    description = "ARPA2 ID and ACL libraries and other core data structures for ARPA2";
     longDescription = ''
       The ARPA2 Common Library package offers elementary services that can
       benefit many software packages.  They are designed to be easy to
@@ -53,8 +61,13 @@ stdenv.mkDerivation rec {
       liberate users.
     '';
     homepage = "https://gitlab.com/arpa2/arpa2common";
-    license = with lib.licenses; [ bsd2 cc-by-sa-40 cc0 isc ];
+    license = with lib.licenses; [
+      bsd2
+      cc-by-sa-40
+      cc0
+      isc
+    ];
     maintainers = with lib.maintainers; [ fufexan ];
     platforms = lib.platforms.linux;
   };
-}
+})
diff --git a/pkgs/development/libraries/libraqm/default.nix b/pkgs/development/libraries/libraqm/default.nix
index 98769f2e374a0..9899c70b8089e 100644
--- a/pkgs/development/libraries/libraqm/default.nix
+++ b/pkgs/development/libraries/libraqm/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libraqm";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = "HOST-Oman";
     repo = "libraqm";
     rev = "v${version}";
-    sha256 = "sha256-H9W+7Mob3o5ctxfp5UhIxatSdXqqvkpyEibJx9TO7a8=";
+    sha256 = "sha256-KhGE66GS5rIieVXJUFA3jSsXEpbdnzN0VIAF/zOelU4=";
   };
 
   buildInputs = [ freetype harfbuzz fribidi ];
diff --git a/pkgs/development/libraries/mongoc/default.nix b/pkgs/development/libraries/mongoc/default.nix
index b881a527fb6dd..802226c46f8a7 100644
--- a/pkgs/development/libraries/mongoc/default.nix
+++ b/pkgs/development/libraries/mongoc/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mongoc";
-  version = "1.27.6";
+  version = "1.28.0";
 
   src = fetchFromGitHub {
     owner = "mongodb";
     repo = "mongo-c-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-771DZ+8cr0iHHcs4TZVEkTP6qWK1bMzOxlG4OS14t28=";
+    hash = "sha256-cfet+A2i33iHbVRouPS4Ul8TmHolrcIMTRba6Olqfeg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/tagparser/default.nix b/pkgs/development/libraries/tagparser/default.nix
index 832756d1ef492..3eaa0e238518c 100644
--- a/pkgs/development/libraries/tagparser/default.nix
+++ b/pkgs/development/libraries/tagparser/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tagparser";
-  version = "12.3.0";
+  version = "12.3.1";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "tagparser";
     rev = "v${version}";
-    hash = "sha256-dhdUbEnwj4hP/Mn9bT6nja9OjPdXftzZou7mtH+P9bI=";
+    hash = "sha256-ihrtUd9R8Tdkuv0kdIZNzBDrhwmsC3LNDsmoCroSMPM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix
index 9a8d0b299f19f..7f6213c7df187 100644
--- a/pkgs/development/libraries/wlroots/default.nix
+++ b/pkgs/development/libraries/wlroots/default.nix
@@ -137,8 +137,8 @@ rec {
   };
 
   wlroots_0_18 = generic {
-    version = "0.18.0";
-    hash = "sha256-LiRnvu7qCbfSg+ONWVCtWwdzxxFZHfbgmy7zApCIW40=";
+    version = "0.18.1";
+    hash = "sha256-BlI3EUoGEHdO6IBh99o/Aadct2dd7Xjc4PG0Sv+flqI=";
     extraNativeBuildInputs = [
       hwdata
     ];
diff --git a/pkgs/development/ocaml-modules/angstrom/default.nix b/pkgs/development/ocaml-modules/angstrom/default.nix
index a96848fba08f3..4c6ed4064ef64 100644
--- a/pkgs/development/ocaml-modules/angstrom/default.nix
+++ b/pkgs/development/ocaml-modules/angstrom/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "angstrom";
-  version = "0.16.0";
+  version = "0.16.1";
 
   minimalOCamlVersion = "4.04";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner  = "inhabitedtype";
     repo   = pname;
     rev    = version;
-    hash = "sha256-vilGto5ciyKzVJd72z4B+AvM1nf3x3O7DHXrK5SIajQ=";
+    hash = "sha256-EPqDK+7RU2vHEHvuoTXb8V2FkdXQ6tGu0ghbNPS3gZ4=";
   };
 
   checkInputs = [ alcotest ppx_let ];
diff --git a/pkgs/development/ocaml-modules/elpi/default.nix b/pkgs/development/ocaml-modules/elpi/default.nix
index 980c68298adcc..f9ee8ca6a1935 100644
--- a/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/pkgs/development/ocaml-modules/elpi/default.nix
@@ -9,39 +9,36 @@
 , ppxlib_0_15, ppx_deriving_0_15
 , coqPackages
 , version ? if lib.versionAtLeast ocaml.version "4.08" then "1.18.1"
-    else if lib.versionAtLeast ocaml.version "4.07" then "1.15.2" else "1.14.1"
+    else "1.15.2"
 }:
 
 let p5 = camlp5; in
 let camlp5 = p5.override { legacy = true; }; in
 
 let fetched = coqPackages.metaFetch ({
-    release."1.19.2".sha256 = "sha256-7VTUbsFVoNT6srLwcAn5WNSsWC7cVUdphKRWBHHiH5M=";
-    release."1.18.1".sha256 = "sha256-zgBJefQDe3JyCGbC0wvMcx/9iMVbftBJ43NPogkNeHY=";
-    release."1.17.0".sha256 = "sha256-DTxE8CvYl0et20pxueydI+WzraI6UPHMNvxyp2gU/+w=";
-    release."1.16.5".sha256 = "sha256-tKX5/cVPoBeHiUe+qn7c5FIRYCwY0AAukN7vSd/Nz9A=";
-    release."1.15.2".sha256 = "sha256-XgopNP83POFbMNyl2D+gY1rmqGg03o++Ngv3zJfCn2s=";
-    release."1.15.0".sha256 = "sha256:1ngdc41sgyzyz3i3lkzjhnj66gza5h912virkh077dyv17ysb6ar";
-    release."1.14.1".sha256 = "sha256-BZPVL8ymjrE9kVGyf6bpc+GA2spS5JBpkUtZi04nPis=";
-    release."1.13.7".sha256 = "10fnwz30bsvj7ii1vg4l1li5pd7n0qqmwj18snkdr5j9gk0apc1r";
-    release."1.13.5".sha256 = "02a6r23mximrdvs6kgv6rp0r2dgk7zynbs99nn7lphw2c4189kka";
-    release."1.13.1".sha256 = "12a9nbdvg9gybpw63lx3nw5wnxfznpraprb0wj3l68v1w43xq044";
-    release."1.13.0".sha256 = "0dmzy058m1mkndv90byjaik6lzzfk3aaac7v84mpmkv6my23bygr";
-    release."1.12.0".sha256 = "1agisdnaq9wrw3r73xz14yrq3wx742i6j8i5icjagqk0ypmly2is";
-    release."1.11.4".sha256 = "1m0jk9swcs3jcrw5yyw5343v8mgax238cjb03s8gc4wipw1fn9f5";
+    release."1.19.2".sha256 = "sha256-dBj5Ek7PWq/8Btq/dggJUqa8cUtfvbi6EWo/lJEDOU4=";
+    release."1.18.1".sha256 = "sha256-rrIv/mVC0Ez3nU7fpnzwduIC3tI6l73DjgAbv1gd2v0=";
+    release."1.17.0".sha256 = "sha256-J8FJBeaB+2HtHjrkgNzOZJngZ2AcYU+npL9Y1HNPnzo=";
+    release."1.15.2".sha256 = "sha256-+sQYQiN3n+dlzXzi5opOjhkJZqpkNwlHZcUjaUM6+xQ=";
+    release."1.15.0".sha256 = "sha256-vpQzbkDqJPCmaBmXcBnzlWGS7djW9wWv8xslkIlXgP0=";
+    release."1.13.7".sha256 = "sha256-0QbOEnrRCYA2mXDGRKe+QYCXSESLJvLzRW0Iq+/3P9Y=";
+    release."1.12.0".sha256 = "sha256-w4JzLZB8jcxw7nA7AfgU9jTZTr6IYUxPU5E2vNIFC4Q=";
+    release."1.11.4".sha256 = "sha256-dyzEpzokgffsF9lt+FZgUlcZEuAb70vGuHfGUtjZYIM=";
     releaseRev = v: "v${v}";
+    releaseArtifact = v: if lib.versionAtLeast v "1.13.8"
+      then "elpi-${v}.tbz"
+      else "elpi-v${v}.tbz";
     location = { domain = "github.com"; owner = "LPCIC"; repo = "elpi"; };
   }) version;
 in
-buildDunePackage rec {
+buildDunePackage {
   pname = "elpi";
   inherit (fetched) version src;
 
   patches = lib.optional (version == "1.16.5")
     ./atd_2_10.patch;
 
-  minimalOCamlVersion = "4.04";
-  duneVersion = "3";
+  minimalOCamlVersion = "4.07";
 
   # atdgen is both a library and executable
   nativeBuildInputs = [ perl ]
@@ -68,6 +65,6 @@ buildDunePackage rec {
   };
 
   postPatch = ''
-    substituteInPlace elpi_REPL.ml --replace "tput cols" "${ncurses}/bin/tput cols"
+    substituteInPlace elpi_REPL.ml --replace-warn "tput cols" "${ncurses}/bin/tput cols"
   '';
 }
diff --git a/pkgs/development/ocaml-modules/uucd/default.nix b/pkgs/development/ocaml-modules/uucd/default.nix
index 847868032ca1b..d350071304c0d 100644
--- a/pkgs/development/ocaml-modules/uucd/default.nix
+++ b/pkgs/development/ocaml-modules/uucd/default.nix
@@ -6,11 +6,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "ocaml-${pname}-${version}";
-  version = "15.1.0";
+  version = "16.0.0";
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    hash = "sha256-HIANZ5SDJcytlpw/W9Ae2eFTutrutJj2PgJCfByobfI=";
+    hash = "sha256-VVGPG6ZjchUqo8xMCJRahqCCF5WheDBpK1stuts+orM=";
   };
 
   nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
diff --git a/pkgs/development/python-modules/aioautomower/default.nix b/pkgs/development/python-modules/aioautomower/default.nix
index c6fe28fb0ea0c..c3a4ec04b50c0 100644
--- a/pkgs/development/python-modules/aioautomower/default.nix
+++ b/pkgs/development/python-modules/aioautomower/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aioautomower";
-  version = "2024.9.0";
+  version = "2024.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "Thomas55555";
     repo = "aioautomower";
     rev = "refs/tags/${version}";
-    hash = "sha256-M+RiO5XTiJ1Cpmf3wbQYzcjH/VAZUlLV9ZdWJCkF6HA=";
+    hash = "sha256-MdsK+QP8YdMceTiNwhuf84KARIHCyn7/g6WKrDB6yCc=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiostreammagic/default.nix b/pkgs/development/python-modules/aiostreammagic/default.nix
index 76ebb24f5c853..fdee19ddc1f81 100644
--- a/pkgs/development/python-modules/aiostreammagic/default.nix
+++ b/pkgs/development/python-modules/aiostreammagic/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiostreammagic";
-  version = "2.3.1";
+  version = "2.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "noahhusby";
     repo = "aiostreammagic";
     rev = "refs/tags/${version}";
-    hash = "sha256-IMCs4EgOign56mThQ3ljnHs7/lt5874Ni1kavkHnKws=";
+    hash = "sha256-TWGDviQ1SYLlzuIsot7JgB5XIEZES54ERJ3tv7+9DNc=";
   };
 
   pythonRelaxDeps = [ "websockets" ];
diff --git a/pkgs/development/python-modules/ansible-compat/default.nix b/pkgs/development/python-modules/ansible-compat/default.nix
index cbe3fde9a5bf0..68eb5fb6a75e5 100644
--- a/pkgs/development/python-modules/ansible-compat/default.nix
+++ b/pkgs/development/python-modules/ansible-compat/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "ansible-compat";
-  version = "24.9.0";
+  version = "24.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "ansible_compat";
     inherit version;
-    hash = "sha256-xaQqVt0hJiXPyx0x5RpuD1JZNpG94f5KeIgeixt4prg=";
+    hash = "sha256-n/ICReG9nemyOjZ5AlJKsOEfvPt0GDGZbaXaW2Crld8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/asteval/default.nix b/pkgs/development/python-modules/asteval/default.nix
index 090188b5cbc92..43872ff90ed34 100644
--- a/pkgs/development/python-modules/asteval/default.nix
+++ b/pkgs/development/python-modules/asteval/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "asteval";
-  version = "1.0.3";
+  version = "1.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "lmfit";
     repo = "asteval";
     rev = "refs/tags/${version}";
-    hash = "sha256-CAjj5vlXCfelH7nyE/tS44ThCQrCwrNETyjXEVbfmiA=";
+    hash = "sha256-rq8qZqTtnKyVclX5R+yRouLz1FySRgc7DMN9W9UBkyI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/billiard/default.nix b/pkgs/development/python-modules/billiard/default.nix
index d3358fe645639..4604eb15f43d3 100644
--- a/pkgs/development/python-modules/billiard/default.nix
+++ b/pkgs/development/python-modules/billiard/default.nix
@@ -1,7 +1,8 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
+  setuptools,
   pytestCheckHook,
   psutil,
   pythonOlder,
@@ -9,33 +10,32 @@
 
 buildPythonPackage rec {
   pname = "billiard";
-  version = "4.2.0";
-  format = "setuptools";
+  version = "4.2.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-mjwxhMsnWqF6cy+T9lsgxSXT2fJTci0mqCGUgDreWiw=";
+  src = fetchFromGitHub {
+    owner = "celery";
+    repo = "billiard";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-9LuAlIn6hNiZGvWuaaDQxx9g0aBVF6Z2krxEOrssqRs=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     psutil
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # psutil.NoSuchProcess: process no longer exists (pid=168)
-    "test_set_pdeathsig"
-  ];
-
   pythonImportsCheck = [ "billiard" ];
 
-  meta = with lib; {
+  meta = {
     description = "Python multiprocessing fork with improvements and bugfixes";
     homepage = "https://github.com/celery/billiard";
     changelog = "https://github.com/celery/billiard/blob/v${version}/CHANGES.txt";
-    license = licenses.bsd3;
-    maintainers = [ ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ nickcao ];
   };
 }
diff --git a/pkgs/development/python-modules/blessings/default.nix b/pkgs/development/python-modules/blessings/default.nix
deleted file mode 100644
index d4d4e887ce113..0000000000000
--- a/pkgs/development/python-modules/blessings/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  six,
-  nose,
-}:
-
-buildPythonPackage rec {
-  pname = "blessings";
-  version = "1.7";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "98e5854d805f50a5b58ac2333411b0482516a8210f23f43308baeb58d77c157d";
-  };
-
-  # 4 failing tests, 2to3
-  doCheck = false;
-
-  propagatedBuildInputs = [ six ];
-  nativeCheckInputs = [ nose ];
-
-  checkPhase = ''
-    nosetests
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/erikrose/blessings";
-    description = "Thin, practical wrapper around terminal coloring, styling, and positioning";
-    license = licenses.mit;
-    maintainers = with maintainers; [ domenkozar ];
-  };
-}
diff --git a/pkgs/development/python-modules/boto/0005-Don-t-mock-list-subclass.patch b/pkgs/development/python-modules/boto/0005-Don-t-mock-list-subclass.patch
deleted file mode 100644
index 4add58640d7ae..0000000000000
--- a/pkgs/development/python-modules/boto/0005-Don-t-mock-list-subclass.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From: Jochen Sprickerhof <jspricke@debian.org>
-Date: Thu, 15 Dec 2022 07:44:54 +0100
-Subject: Don't mock list subclass
-
----
- tests/unit/ec2/test_volume.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/unit/ec2/test_volume.py b/tests/unit/ec2/test_volume.py
-index 81d7f55..d4d8e4f 100644
---- a/tests/unit/ec2/test_volume.py
-+++ b/tests/unit/ec2/test_volume.py
-@@ -55,7 +55,7 @@ class VolumeTests(unittest.TestCase):
-     @mock.patch("boto.resultset.ResultSet")
-     def test_startElement_with_name_tagSet_calls_ResultSet(self, ResultSet, startElement):
-         startElement.return_value = None
--        result_set = mock.Mock(ResultSet([("item", Tag)]))
-+        result_set = ResultSet([("item", Tag)])
-         volume = Volume()
-         volume.tags = result_set
-         retval = volume.startElement("tagSet", None, None)
diff --git a/pkgs/development/python-modules/boto/bug-953970_python3.8-compat.patch b/pkgs/development/python-modules/boto/bug-953970_python3.8-compat.patch
deleted file mode 100644
index ac56210423753..0000000000000
--- a/pkgs/development/python-modules/boto/bug-953970_python3.8-compat.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Index: python-boto/tests/unit/utils/test_utils.py
-===================================================================
---- python-boto.orig/tests/unit/utils/test_utils.py
-+++ python-boto/tests/unit/utils/test_utils.py
-@@ -85,7 +85,7 @@ class TestPassword(unittest.TestCase):
-         def hmac_hashfunc(cls, msg):
-             if not isinstance(msg, bytes):
-                 msg = msg.encode('utf-8')
--            return hmac.new(b'mysecretkey', msg)
-+            return hmac.new(b'mysecretkey', msg, digestmod='sha256')
-
-         class HMACPassword(Password):
-             hashfunc = hmac_hashfunc
-@@ -95,15 +95,15 @@ class TestPassword(unittest.TestCase):
-         password.set('foo')
-
-         self.assertEquals(str(password),
--                          hmac.new(b'mysecretkey', b'foo').hexdigest())
-+                          hmac.new(b'mysecretkey', b'foo', digestmod='sha256').hexdigest())
-
-     def test_constructor(self):
--        hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg)
-+        hmac_hashfunc = lambda msg: hmac.new(b'mysecretkey', msg, digestmod='sha256')
-
-         password = Password(hashfunc=hmac_hashfunc)
-         password.set('foo')
-         self.assertEquals(password.str,
--                          hmac.new(b'mysecretkey', b'foo').hexdigest())
-+                          hmac.new(b'mysecretkey', b'foo', digestmod='sha256').hexdigest())
-
-
- class TestPythonizeName(unittest.TestCase):
-Index: python-boto/boto/ecs/item.py
-===================================================================
---- python-boto.orig/boto/ecs/item.py
-+++ python-boto/boto/ecs/item.py
-@@ -22,6 +22,7 @@
-
- import xml.sax
- import cgi
-+from html import escape
- from boto.compat import six, StringIO
-
- class ResponseGroup(xml.sax.ContentHandler):
-@@ -67,7 +68,7 @@ class ResponseGroup(xml.sax.ContentHandl
-         return None
-
-     def endElement(self, name, value, connection):
--        self._xml.write("%s</%s>" % (cgi.escape(value).replace("&amp;amp;", "&amp;"), name))
-+        self._xml.write("%s</%s>" % (escape(value).replace("&amp;amp;", "&amp;"), name))
-         if len(self._nodepath) == 0:
-             return
-         obj = None
diff --git a/pkgs/development/python-modules/boto/default.nix b/pkgs/development/python-modules/boto/default.nix
deleted file mode 100644
index 3549c6986cf13..0000000000000
--- a/pkgs/development/python-modules/boto/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  python,
-  nose,
-  mock,
-  requests,
-  httpretty,
-}:
-
-buildPythonPackage rec {
-  pname = "boto";
-  version = "2.49.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ea0d3b40a2d852767be77ca343b58a9e3a4b00d9db440efb8da74b4e58025e5a";
-  };
-
-  patches = [
-    # fixes hmac tests
-    # https://sources.debian.org/src/python-boto/2.49.0-4/debian/patches/bug-953970_python3.8-compat.patch/
-    ./bug-953970_python3.8-compat.patch
-    # fixes test_startElement_with_name_tagSet_calls_ResultSet
-    # https://sources.debian.org/src/python-boto/2.49.0-4.1/debian/patches/0005-Don-t-mock-list-subclass.patch/
-    ./0005-Don-t-mock-list-subclass.patch
-  ];
-
-  # boto is deprecated by upstream as of 2021-05-27 (https://github.com/boto/boto/commit/4980ac58764c3d401cb0b9552101f9c61c18f445)
-  # this patch is a bit simpler than https://github.com/boto/boto/pull/3898
-  # as we don't have to take care of pythonOlder "3.3".
-  postPatch = ''
-    substituteInPlace boto/dynamodb/types.py --replace 'from collections import Mapping' 'from collections.abc import Mapping'
-    substituteInPlace boto/mws/connection.py --replace 'import collections' 'import collections.abc as collections'
-  '';
-
-  checkPhase = ''
-    ${python.interpreter} tests/test.py default
-  '';
-
-  nativeCheckInputs = [
-    nose
-    mock
-  ];
-  propagatedBuildInputs = [
-    requests
-    httpretty
-  ];
-
-  meta = with lib; {
-    homepage = "https://github.com/boto/boto";
-    license = licenses.mit;
-    description = "Python interface to Amazon Web Services";
-    longDescription = ''
-      The boto module is an integrated interface to current and
-      future infrastructural services offered by Amazon Web
-      Services.  This includes S3, SQS, EC2, among others.
-    '';
-    maintainers = [ ];
-    # Unmaintained since 2020, archived in the beginning of May 2024 and broken
-    # https://github.com/boto/boto/issues/3951
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/cirq-rigetti/default.nix b/pkgs/development/python-modules/cirq-rigetti/default.nix
index d6848fe013a47..aaf29a81755cd 100644
--- a/pkgs/development/python-modules/cirq-rigetti/default.nix
+++ b/pkgs/development/python-modules/cirq-rigetti/default.nix
@@ -1,6 +1,7 @@
 {
   buildPythonPackage,
   cirq-core,
+  fetchpatch2,
   lib,
   pytestCheckHook,
   attrs,
@@ -31,6 +32,16 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.7";
 
+  patches = [
+    # https://github.com/quantumlib/Cirq/pull/6734
+    (fetchpatch2 {
+      name = "fix-rigetti-check-for-aspen-family-device-kind.patch";
+      url = "https://github.com/quantumlib/Cirq/commit/dd395fb71fb7f92cfd34f008bf2a98fc70b57fae.patch";
+      stripLen = 1;
+      hash = "sha256-EWB2CfMS2+M3zNFX5PwFNtEBdgJkNVUVNd+I/E6n9kI=";
+    })
+  ];
+
   sourceRoot = "${src.name}/${pname}";
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index 1210cc0cf3532..57006c8d7938b 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.8.4";
+  version = "10.8.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-5HDPEFn43JQyNTp9nJapBpoigoFtgyPZ5HXulMsjc8s=";
+    hash = "sha256-lCFjZcPp4ih2fKaRXQxyxBkgRRPSaTOawiMqeXg25cg=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/clustershell/default.nix b/pkgs/development/python-modules/clustershell/default.nix
index 964b2724d07c3..9c166af7f5507 100644
--- a/pkgs/development/python-modules/clustershell/default.nix
+++ b/pkgs/development/python-modules/clustershell/default.nix
@@ -3,9 +3,11 @@
   lib,
   buildPythonPackage,
   fetchPypi,
+  setuptools,
+  distutils,
   pyyaml,
   openssh,
-  nose,
+  unittestCheckHook,
   bc,
   hostname,
   bash,
@@ -14,6 +16,7 @@
 buildPythonPackage rec {
   pname = "clustershell";
   version = "1.9.2";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "ClusterShell";
@@ -21,30 +24,29 @@ buildPythonPackage rec {
     hash = "sha256-rsF/HG4GNBC+N49b+sDO2AyUI1G44wJNBUwQNPzShD0=";
   };
 
+  build-system = [
+    setuptools
+    distutils
+  ];
+
   postPatch = ''
     substituteInPlace lib/ClusterShell/Worker/Ssh.py \
-      --replace '"ssh"' '"${openssh}/bin/ssh"' \
-      --replace '"scp"' '"${openssh}/bin/scp"'
+      --replace-fail '"ssh"' '"${openssh}/bin/ssh"' \
+      --replace-fail '"scp"' '"${openssh}/bin/scp"'
 
     substituteInPlace lib/ClusterShell/Worker/fastsubprocess.py \
-      --replace '"/bin/sh"' '"${bash}/bin/sh"'
+      --replace-fail '"/bin/sh"' '"${bash}/bin/sh"'
 
     for f in tests/*; do
       substituteInPlace $f \
-        --replace '/bin/hostname'   '${hostname}/bin/hostname' \
-        --replace '/bin/sleep'      'sleep' \
-        --replace '/bin/echo'       'echo' \
-        --replace '/bin/uname'      'uname' \
-        --replace '/bin/false'      'false' \
-        --replace '/bin/true'       'true' \
-        --replace '/usr/bin/printf' 'printf'
+        --replace-quiet '/bin/hostname'   '${hostname}/bin/hostname' \
+        --replace-quiet '/bin/sleep'      'sleep' \
+        --replace-quiet '/bin/echo'       'echo' \
+        --replace-quiet '/bin/uname'      'uname' \
+        --replace-quiet '/bin/false'      'false' \
+        --replace-quiet '/bin/true'       'true' \
+        --replace-quiet '/usr/bin/printf' 'printf'
     done
-
-    # Fix warnings
-    substituteInPlace lib/ClusterShell/Task.py \
-      --replace "notifyAll" "notify_all"
-    substituteInPlace tests/TaskPortTest.py lib/ClusterShell/Task.py \
-      --replace "currentThread" "current_thread"
   '';
 
   propagatedBuildInputs = [ pyyaml ];
@@ -52,18 +54,22 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     bc
     hostname
-    nose
+    unittestCheckHook
   ];
 
   pythonImportsCheck = [ "ClusterShell" ];
 
-  doCheck = false; # tests often get stuck
+  unittestFlagsArray = [
+    "tests"
+    "-p"
+    "'*Test.py'"
+  ];
 
   # Many tests want to open network connections
   # https://github.com/cea-hpc/clustershell#test-suite
   #
   # Several tests fail on Darwin
-  checkPhase = ''
+  preCheck = ''
     rm tests/CLIClushTest.py
     rm tests/TreeWorkerTest.py
     rm tests/TaskDistantMixin.py
@@ -72,29 +78,6 @@ buildPythonPackage rec {
     rm tests/TaskDistantPdshTest.py
     rm tests/TaskRLimitsTest.py
     rm tests/TreeGatewayTest.py
-
-    nosetests -v \
-      -e test_fromall_grouplist \
-      -e test_rank_placeholder \
-      -e test_engine_on_the_fly_launch \
-      -e test_ev_pickup_fanout \
-      -e test_ev_pickup_fanout_legacy \
-      -e test_timeout \
-      -e test_008_broken_pipe_on_write \
-      -e testLocalBufferRCGathering \
-      -e testLocalBuffers \
-      -e testLocalErrorBuffers \
-      -e testLocalFanout \
-      -e testLocalRetcodes \
-      -e testLocalRCBufferGathering \
-      -e testLocalSingleLineBuffers \
-      -e testLocalWorkerFanout \
-      -e testSimpleMultipleCommands \
-      -e testClushConfigSetRlimit  \
-      -e testTimerInvalidateInHandler \
-      -e testTimerSetNextFireInHandler \
-      -e test_node_placeholder \
-    tests/*.py
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 766e7af77ad8f..da178007ba92e 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.50.0";
+  version = "0.50.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OljoX42kfEpHiTtCx1lXC6AoDNISQT2bckbLj8uG9YY=";
+    hash = "sha256-V51NtUvW75GMUlAhftsVuAt7EVgrjiT85DcCdow/Li0=";
   };
 
   nativeBuildInputs = [ hatchling ];
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index b91cc2f548ab5..0aacc52e3f76e 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.7.8";
+  version = "1.7.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "fastai";
     repo = "fastcore";
     rev = "refs/tags/${version}";
-    hash = "sha256-pBmtNrXincaOBADKgTaq7OmcrFlz6q7HROsUSRN0w8k=";
+    hash = "sha256-OGqd+pLM3THcPD3JtccjH6sgpVEhcNVnGbIbyMFfqTU=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index 38ab5efc74703..e9da4f44b6659 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   azure-storage-blob,
-  boto,
   buildPythonPackage,
   fetchpatch,
   fetchFromGitHub,
@@ -53,7 +52,6 @@ buildPythonPackage rec {
   ];
 
   optional-dependencies = {
-    aws = [ boto ];
     azure = [ azure-storage-blob ];
   };
 
diff --git a/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix b/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix
deleted file mode 100644
index 0cb900cffb8d9..0000000000000
--- a/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix
+++ /dev/null
@@ -1,61 +0,0 @@
-{
-  lib,
-  boto,
-  buildPythonPackage,
-  fetchFromGitHub,
-  freezegun,
-  google-reauth,
-  httplib2,
-  oauth2client,
-  pyopenssl,
-  pytestCheckHook,
-  pythonOlder,
-  retry-decorator,
-  rsa,
-  six,
-}:
-
-buildPythonPackage rec {
-  pname = "gcs-oauth2-boto-plugin";
-  version = "3.0";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
-
-  src = fetchFromGitHub {
-    owner = "GoogleCloudPlatform";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-slTxh2j9VhLiSyiTmJIFFakzpzH/+mgilDRxx0VqqKQ=";
-  };
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "rsa==4.7.2" "rsa" \
-      --replace "version='2.7'" "version='${version}'"
-  '';
-
-  propagatedBuildInputs = [
-    boto
-    freezegun
-    google-reauth
-    httplib2
-    oauth2client
-    pyopenssl
-    retry-decorator
-    rsa
-    six
-  ];
-
-  nativeCheckInputs = [ pytestCheckHook ];
-
-  pythonImportsCheck = [ "gcs_oauth2_boto_plugin" ];
-
-  meta = with lib; {
-    description = "Auth plugin allowing use the use of OAuth 2.0 credentials for Google Cloud Storage";
-    homepage = "https://github.com/GoogleCloudPlatform/gcs-oauth2-boto-plugin";
-    changelog = "https://github.com/GoogleCloudPlatform/gcs-oauth2-boto-plugin/releases/tag/v${version}";
-    license = with licenses; [ asl20 ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix
index 0edd09dc64ac8..e86b6382a83f6 100644
--- a/pkgs/development/python-modules/hishel/default.nix
+++ b/pkgs/development/python-modules/hishel/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hishel";
-  version = "0.0.30";
+  version = "0.0.31";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "karpetrosyan";
     repo = "hishel";
     rev = "refs/tags/${version}";
-    hash = "sha256-+ine7Q60dT9GyFWGHtbH6G1E4TzTQaY5y9Yxxxbgnp8=";
+    hash = "sha256-mJPvzGmu0veFlG7jlWdf919qOp3KfGv6SPRcFVFjhnc=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/invocations/default.nix b/pkgs/development/python-modules/invocations/default.nix
index 17828c47ae466..68160afc5435c 100644
--- a/pkgs/development/python-modules/invocations/default.nix
+++ b/pkgs/development/python-modules/invocations/default.nix
@@ -1,7 +1,7 @@
 {
   lib,
   buildPythonPackage,
-  blessings,
+  blessed,
   fetchFromGitHub,
   invoke,
   pythonOlder,
@@ -10,6 +10,11 @@
   tabulate,
   tqdm,
   twine,
+  pytestCheckHook,
+  pytest-relaxed,
+  pytest-mock,
+  icecream,
+  pip,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +31,15 @@ buildPythonPackage rec {
     hash = "sha256-JnhdcxhBNsYgDMcljtGKjOT1agujlao/66QifGuh6I0=";
   };
 
+  patches = [ ./replace-blessings-with-blessed.patch ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "semantic_version>=2.4,<2.7" "semantic_version"
   '';
 
   propagatedBuildInputs = [
-    blessings
+    blessed
     invoke
     releases
     semantic-version
@@ -41,11 +48,27 @@ buildPythonPackage rec {
     twine
   ];
 
-  # There's an error loading the test suite. See https://github.com/pyinvoke/invocations/issues/29.
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-relaxed
+    pytest-mock
+    icecream
+    pip
+  ];
 
   pythonImportsCheck = [ "invocations" ];
 
+  disabledTests = [
+    # invoke.exceptions.UnexpectedExit
+    "autodoc_"
+
+    # ValueError: Call either Version('1.2.3') or Version(major=1, ...)
+    "component_state_enums_contain_human_readable_values"
+    "load_version_"
+    "prepare_"
+    "status_"
+  ];
+
   meta = with lib; {
     description = "Common/best-practice Invoke tasks and collections";
     homepage = "https://invocations.readthedocs.io/";
diff --git a/pkgs/development/python-modules/invocations/replace-blessings-with-blessed.patch b/pkgs/development/python-modules/invocations/replace-blessings-with-blessed.patch
new file mode 100644
index 0000000000000..fe03889e85550
--- /dev/null
+++ b/pkgs/development/python-modules/invocations/replace-blessings-with-blessed.patch
@@ -0,0 +1,26 @@
+diff --git a/invocations/packaging/release.py b/invocations/packaging/release.py
+index 54322c3..81ac173 100644
+--- a/invocations/packaging/release.py
++++ b/invocations/packaging/release.py
+@@ -23,7 +23,7 @@ from shutil import rmtree
+ 
+ from invoke.vendor.lexicon import Lexicon
+ 
+-from blessings import Terminal
++from blessed import Terminal
+ from docutils.utils import Reporter
+ from enum import Enum
+ from invoke import Collection, task, Exit
+diff --git a/setup.py b/setup.py
+index 78ae28b..c78a74c 100644
+--- a/setup.py
++++ b/setup.py
+@@ -16,7 +16,7 @@ requirements = [
+     # time if missing), but that got hairy fast, and these are all
+     # pure-Python packages, so it shouldn't be a huge burden for users to
+     # obtain them.
+-    "blessings>=1.6",
++    "blessed",
+     "releases>=1.6",
+     "semantic_version>=2.4,<2.7",
+     "tabulate>=0.7.5",
diff --git a/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix b/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
deleted file mode 100644
index 622ad6ceff84f..0000000000000
--- a/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchFromGitHub,
-  ipython-genutils,
-  jupyter-contrib-core,
-  jupyter-highlight-selected-word,
-  jupyter-nbextensions-configurator,
-  lxml,
-  nose,
-  pytestCheckHook,
-  notebook,
-}:
-
-buildPythonPackage rec {
-  pname = "jupyter-contrib-nbextensions";
-  version = "0.7.0";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "ipython-contrib";
-    repo = "jupyter_contrib_nbextensions";
-    rev = "refs/tags/${version}";
-    hash = "sha256-1o8tBfRw6jNcKfNE7xXrQaEhx+KOv7mLOruvuMDtJ1Q=";
-  };
-
-  propagatedBuildInputs = [
-    ipython-genutils
-    jupyter-contrib-core
-    jupyter-highlight-selected-word
-    jupyter-nbextensions-configurator
-    lxml
-  ];
-
-  nativeCheckInputs = [
-    nose
-    pytestCheckHook
-  ];
-
-  disabledTestPaths = [
-    # Thoses tests fail upstream because of nbconvert being too recent
-    # https://github.com/ipython-contrib/jupyter_contrib_nbextensions/issues/1606
-    "tests/test_exporters.py"
-
-    # Requires to run jupyter which is not feasible here
-    "tests/test_application.py"
-  ];
-
-  pythonImportsCheck = [ "jupyter_contrib_nbextensions" ];
-
-  meta = with lib; {
-    description = "Collection of various notebook extensions for Jupyter";
-    homepage = "https://github.com/ipython-contrib/jupyter_contrib_nbextensions";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ GaetanLepage ];
-    # https://github.com/ipython-contrib/jupyter_contrib_nbextensions/issues/1647
-    broken = versionAtLeast notebook.version "7";
-  };
-}
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index c45edec702bc8..f7bd15615c850 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -27,14 +27,14 @@
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.120";
+  version = "0.1.125";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K8QIlyQnaTKCBoRCsTQ26KovIIw8uK6HBynEplrB6wI=";
+    hash = "sha256-0/ych7iP7G75R2kGaXzsxSy4jRYCvxeqd8aBq4QhRgI=";
   };
 
   sourceRoot = "${src.name}/python";
diff --git a/pkgs/development/python-modules/latexrestricted/default.nix b/pkgs/development/python-modules/latexrestricted/default.nix
new file mode 100644
index 0000000000000..394176397b74c
--- /dev/null
+++ b/pkgs/development/python-modules/latexrestricted/default.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "latexrestricted";
+  version = "0.4.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-AMfDTruJKejDdXW98VkeeEwELql5566bsL1SutLDpso=";
+  };
+
+  build-system = [ setuptools ];
+
+  pythonImportsCheck = [ "latexrestricted" ];
+
+  # upstream has no tests
+  doCheck = false;
+
+  meta = {
+    homepage = "https://github.com/gpoore/latexrestricted";
+    description = "Python library for creating executables compatible with LaTeX restricted shell escape";
+    changelog = "https://github.com/gpoore/latexrestricted/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.lppl13c;
+    maintainers = with lib.maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/development/python-modules/libretranslate/default.nix b/pkgs/development/python-modules/libretranslate/default.nix
index eae30cc7407d9..39a2b99ddf0dd 100644
--- a/pkgs/development/python-modules/libretranslate/default.nix
+++ b/pkgs/development/python-modules/libretranslate/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "libretranslate";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "LibreTranslate";
     repo = "LibreTranslate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QH+H1UubDDv2SZa/razs+JYu4BbZzWHh7DLWfZEWCes=";
+    hash = "sha256-c/MbO8KST2QnP32Y2FfXjJcfh6O7hqQFcZOn1U0FqRM=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/lockfile/default.nix b/pkgs/development/python-modules/lockfile/default.nix
index 5423a1abb300f..04e4bc881bfc4 100644
--- a/pkgs/development/python-modules/lockfile/default.nix
+++ b/pkgs/development/python-modules/lockfile/default.nix
@@ -4,7 +4,7 @@
   fetchPypi,
   setuptools,
   pbr,
-  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,25 +14,21 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799";
+    hash = "sha256-au0C3gPLok76vNYAswVAFAY0/AbPpgOCLVCNU2Hp95k=";
   };
 
+  patches = [ ./fix-tests.patch ];
+
   build-system = [
     pbr
     setuptools
   ];
 
-  nativeCheckInputs = [ nose ];
-
-  checkPhase = ''
-    runHook preCheck
-    nosetests
-    runHook postcheck
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://launchpad.net/pylockfile";
     description = "Platform-independent advisory file locking capability for Python applications";
-    license = licenses.asl20;
+    license = lib.licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/lockfile/fix-tests.patch b/pkgs/development/python-modules/lockfile/fix-tests.patch
new file mode 100644
index 0000000000000..882a7dc2af718
--- /dev/null
+++ b/pkgs/development/python-modules/lockfile/fix-tests.patch
@@ -0,0 +1,28 @@
+diff --git a/test/compliancetest.py b/test/compliancetest.py
+index bf4e59c..f55e258 100644
+--- a/test/compliancetest.py
++++ b/test/compliancetest.py
+@@ -6,18 +6,19 @@ import lockfile
+ 
+ 
+ class ComplianceTest(object):
+-    def __init__(self):
+-        self.saved_class = lockfile.LockFile
++    @classmethod
++    def setup_class(cls):
++        cls.saved_class = lockfile.LockFile
+ 
+     def _testfile(self):
+         """Return platform-appropriate file.  Helper for tests."""
+         import tempfile
+         return os.path.join(tempfile.gettempdir(), 'trash-%s' % os.getpid())
+ 
+-    def setup(self):
++    def setup_method(self):
+         lockfile.LockFile = self.class_to_test
+ 
+-    def teardown(self):
++    def teardown_method(self):
+         try:
+             tf = self._testfile()
+             if os.path.isdir(tf):
diff --git a/pkgs/development/python-modules/meteoswiss-async/default.nix b/pkgs/development/python-modules/meteoswiss-async/default.nix
new file mode 100644
index 0000000000000..b837f49c08c65
--- /dev/null
+++ b/pkgs/development/python-modules/meteoswiss-async/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  aiohttp,
+  asyncstdlib,
+  buildPythonPackage,
+  dataclasses-json,
+  fetchFromGitHub,
+  pytest-cov-stub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "meteoswiss-async";
+  version = "0.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "albertomontesg";
+    repo = "meteoswiss-async";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xFvfyLZvBfnbzShKN+94piNUVjV1cfi4jWpc/Xw6XG4=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    aiohttp
+    asyncstdlib
+    dataclasses-json
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+    pytest-cov-stub
+  ];
+
+  pythonImportsCheck = [ "meteoswiss_async" ];
+
+  meta = {
+    description = "Asynchronous client library for MeteoSwiss API";
+    homepage = "https://github.com/albertomontesg/meteoswiss-async";
+    changelog = "https://github.com/albertomontesg/meteoswiss-async/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/mhcflurry/default.nix b/pkgs/development/python-modules/mhcflurry/default.nix
index 68b4624125a40..29c00af47c230 100644
--- a/pkgs/development/python-modules/mhcflurry/default.nix
+++ b/pkgs/development/python-modules/mhcflurry/default.nix
@@ -1,29 +1,34 @@
 {
-  appdirs,
+  lib,
   buildPythonPackage,
   fetchFromGitHub,
+
+  # dependencies
+  appdirs,
   keras,
-  lib,
   mhcgnomes,
-  nose,
   pandas,
-  pytestCheckHook,
   pyyaml,
   scikit-learn,
   tensorflow,
+  tf-keras,
   tqdm,
+
+  # tests
+  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "mhcflurry";
-  version = "2.1.1";
+  version = "2.1.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "openvax";
     repo = "mhcflurry";
     rev = "refs/tags/v${version}";
-    hash = "sha256-absIKvcFo6I1Uu0t+l8OLOU/AQ4kD295P4+KVwMAWMc=";
+    hash = "sha256-Xz3Myd+pifNQMTH1BC2qsQEy7UorYNQNj+7ysMVmCOs=";
   };
 
   # keras and tensorflow are not in the official setup.py requirements but are required for the CLI utilities to run.
@@ -35,6 +40,7 @@ buildPythonPackage rec {
     pyyaml
     scikit-learn
     tensorflow
+    tf-keras
     tqdm
   ];
 
@@ -88,7 +94,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/openvax/mhcflurry/releases/tag/v${version}";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ samuela ];
-    # ModuleNotFoundError: No module named 'keras.api._v2' as tensorflow is too outdated
-    broken = true;
+    # Requires a recent version of tensorflow
+    broken = lib.versionOlder tensorflow.version "2.15.0";
   };
 }
diff --git a/pkgs/development/python-modules/mmengine/default.nix b/pkgs/development/python-modules/mmengine/default.nix
index 89992981ea2f8..ff07caeb877ed 100644
--- a/pkgs/development/python-modules/mmengine/default.nix
+++ b/pkgs/development/python-modules/mmengine/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "mmengine";
-  version = "0.10.4";
+  version = "0.10.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -77,6 +77,14 @@ buildPythonPackage rec {
     "tests/test_runner/test_activation_checkpointing.py"
     # missing dependencies
     "tests/test_visualizer/test_vis_backend.py"
+    # Tests are outdated (runTest instead of run_test)
+    "mmengine/testing/_internal"
+    "tests/test_dist/test_dist.py"
+    "tests/test_dist/test_utils.py"
+    "tests/test_hooks/test_sync_buffers_hook.py"
+    "tests/test_model/test_wrappers/test_model_wrapper.py"
+    "tests/test_optim/test_optimizer/test_optimizer.py"
+    "tests/test_optim/test_optimizer/test_optimizer_wrapper.py"
   ];
 
   disabledTests = [
diff --git a/pkgs/development/python-modules/morecantile/default.nix b/pkgs/development/python-modules/morecantile/default.nix
index 00a6a7c533b47..0a8a5001c0036 100644
--- a/pkgs/development/python-modules/morecantile/default.nix
+++ b/pkgs/development/python-modules/morecantile/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   fetchFromGitHub,
   pytestCheckHook,
@@ -16,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "morecantile";
-  version = "5.3.0";
+  version = "5.4.2";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "developmentseed";
     repo = "morecantile";
     rev = version;
-    hash = "sha256-F7xYQrOngoRsZjmS6ZHRGN0/GD53AYcMQzyY1LZ1O7I=";
+    hash = "sha256-kUAde+6IUu95tFHFCB6kWoYsRf9GxR+gRJki/tvhIaY=";
   };
 
   nativeBuildInputs = [ flit ];
@@ -42,6 +43,11 @@ buildPythonPackage rec {
     rasterio
   ];
 
+  disabledTests = lib.optionals stdenv.isDarwin [
+    # https://github.com/developmentseed/morecantile/issues/156
+    "test_tiles_when_tms_bounds_and_provided_bounds_cross_antimeridian"
+  ];
+
   pythonImportsCheck = [ "morecantile" ];
 
   meta = {
diff --git a/pkgs/development/python-modules/n3fit/default.nix b/pkgs/development/python-modules/n3fit/default.nix
deleted file mode 100644
index 01c56659465c2..0000000000000
--- a/pkgs/development/python-modules/n3fit/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  hyperopt,
-  keras,
-  nnpdf,
-  psutil,
-  tensorflow,
-  validphys2,
-}:
-
-buildPythonPackage rec {
-  pname = "n3fit";
-  version = "4.0";
-  format = "setuptools";
-
-  inherit (nnpdf) src;
-
-  prePatch = ''
-    cd n3fit
-  '';
-
-  postPatch = ''
-    substituteInPlace src/n3fit/version.py \
-      --replace '= __give_git()' '= "'$version'"'
-  '';
-
-  propagatedBuildInputs = [
-    hyperopt
-    keras
-    psutil
-    tensorflow
-    validphys2
-  ];
-
-  postInstall = ''
-    for prog in "$out"/bin/*; do
-      wrapProgram "$prog" --set PYTHONPATH "$PYTHONPATH:$(toPythonPath "$out")"
-    done
-  '';
-
-  doCheck = false; # no tests
-  pythonImportsCheck = [ "n3fit" ];
-
-  meta = with lib; {
-    description = "NNPDF fitting framework";
-    homepage = "https://docs.nnpdf.science";
-    inherit (nnpdf.meta) license;
-    maintainers = with maintainers; [ veprbl ];
-  };
-}
diff --git a/pkgs/development/python-modules/nbdev/default.nix b/pkgs/development/python-modules/nbdev/default.nix
index 9263ed7b0419b..f3b766f086c52 100644
--- a/pkgs/development/python-modules/nbdev/default.nix
+++ b/pkgs/development/python-modules/nbdev/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "nbdev";
-  version = "2.3.29";
+  version = "2.3.31";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-N5oO77DiLMzybQiE45mIIfu5DoT3/nR0iejB/SPpWLQ=";
+    hash = "sha256-a0BOBwzlZ1HFvpamqQHn8rtgghdkTfr9778wW84q7Xo=";
   };
 
 
diff --git a/pkgs/development/python-modules/numpyro/default.nix b/pkgs/development/python-modules/numpyro/default.nix
index dd5aca045f434..a1aed20a52686 100644
--- a/pkgs/development/python-modules/numpyro/default.nix
+++ b/pkgs/development/python-modules/numpyro/default.nix
@@ -1,8 +1,7 @@
 {
   lib,
   buildPythonPackage,
-  pythonOlder,
-  fetchPypi,
+  fetchFromGitHub,
 
   # build-system
   setuptools,
@@ -14,23 +13,31 @@
   numpy,
   tqdm,
 
-  # checks
+  # tests
+  # Our current version of tensorflow (2.13.0) is too old and doesn't support python>=3.12
+  # We remove optional test dependencies that require tensorflow and skip the corresponding tests to
+  # avoid introducing a useless incompatibility with python 3.12:
+  # dm-haiku,
+  # flax,
+  # tensorflow-probability,
   funsor,
+  graphviz,
+  optax,
+  pyro-api,
   pytestCheckHook,
-# TODO: uncomment when tensorflow-probability gets fixed.
-# , tensorflow-probability
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
   pname = "numpyro";
-  version = "0.15.2";
+  version = "0.15.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
-
-  src = fetchPypi {
-    inherit version pname;
-    hash = "sha256-6G3TrDyQ5N2uuzLzzEus1czCtvg3M0wBorLo2vQZozE=";
+  src = fetchFromGitHub {
+    owner = "pyro-ppl";
+    repo = "numpyro";
+    rev = "refs/tags/${version}";
+    hash = "sha256-g+ep221hhLbCjQasKpiEAXkygI5A3Hglqo1tV8lv5eg=";
   };
 
   build-system = [ setuptools ];
@@ -44,9 +51,14 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    # dm-haiku
+    # flax
     funsor
+    graphviz
+    optax
+    pyro-api
     pytestCheckHook
-    # TODO: uncomment when tensorflow-probability gets fixed.
+    scikit-learn
     # tensorflow-probability
   ];
 
@@ -63,17 +75,50 @@ buildPythonPackage rec {
     "test_kl_dirichlet_dirichlet"
     "test_kl_univariate"
     "test_mean_var"
+
     # Tests want to download data
     "data_load"
     "test_jsb_chorales"
+
     # RuntimeWarning: overflow encountered in cast
     "test_zero_inflated_logits_probs_agree"
+
     # NameError: unbound axis name: _provenance
     "test_model_transformation"
+
+    # require dm-haiku
+    "test_flax_state_dropout_smoke"
+    "test_flax_module"
+    "test_random_module_mcmc"
+
+    # require flax
+    "test_haiku_state_dropout_smoke"
+    "test_haiku_module"
+    "test_random_module_mcmc"
+
+    # require tensorflow-probability
+    "test_modified_bessel_first_kind_vect"
+    "test_diag_spectral_density_periodic"
+    "test_kernel_approx_periodic"
+    "test_modified_bessel_first_kind_one_dim"
+    "test_modified_bessel_first_kind_vect"
+    "test_periodic_gp_one_dim_model"
+    "test_no_tracer_leak_at_lazy_property_sample"
+
+    # flaky on darwin
+    # TODO: uncomment at next release (0.15.4) as it has been fixed:
+    # https://github.com/pyro-ppl/numpyro/pull/1863
+    "test_change_point_x64"
   ];
 
-  # TODO: remove when tensorflow-probability gets fixed.
-  disabledTestPaths = [ "test/test_distributions.py" ];
+  disabledTestPaths = [
+    # require jaxns (unpackaged)
+    "test/contrib/test_nested_sampling.py"
+
+    # requires tensorflow-probability
+    "test/contrib/test_tfp.py"
+    "test/test_distributions.py"
+  ];
 
   meta = {
     description = "Library for probabilistic programming with NumPy";
diff --git a/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix
deleted file mode 100644
index 25c9715e7e6be..0000000000000
--- a/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchFromGitHub,
-  gobject-introspection,
-  setuptools,
-  proton-core,
-  proton-vpn-network-manager,
-  pytestCheckHook,
-  pytest-cov-stub,
-}:
-
-buildPythonPackage rec {
-  pname = "proton-vpn-network-manager-openvpn";
-  version = "0.1.0";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "ProtonVPN";
-    repo = "python-proton-vpn-network-manager-openvpn";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-eDBcpuz37crfAFX6oysB4FCkSmVLyfLJ0R2L0cZgjRo=";
-  };
-
-  nativeBuildInputs = [
-    # Solves Namespace NM not available
-    gobject-introspection
-  ];
-
-  build-system = [
-    setuptools
-  ];
-
-  dependencies = [
-    proton-core
-    proton-vpn-network-manager
-  ];
-
-  pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager.protocol" ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-cov-stub
-  ];
-
-  meta = {
-    description = "Adds support for the OpenVPN protocol using NetworkManager";
-    homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager-openvpn";
-    license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ sebtm ];
-  };
-}
diff --git a/pkgs/development/python-modules/proton-vpn-network-manager-wireguard/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager-wireguard/default.nix
deleted file mode 100644
index e32a4b5a1b88a..0000000000000
--- a/pkgs/development/python-modules/proton-vpn-network-manager-wireguard/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchFromGitHub,
-  gobject-introspection,
-  setuptools,
-  proton-core,
-  proton-vpn-killswitch-network-manager-wireguard,
-  proton-vpn-network-manager,
-  pytestCheckHook,
-  pytest-cov-stub,
-}:
-
-buildPythonPackage rec {
-  pname = "proton-vpn-network-manager-wireguard";
-  version = "0.4.1";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "ProtonVPN";
-    repo = "python-proton-vpn-network-manager-wireguard";
-    rev = "v${version}";
-    hash = "sha256-DZXixcm2VwXhbN4buABlkybDgXIg/mbeUVHOpdoj0Kw=";
-  };
-
-  nativeBuildInputs = [
-    # Solves Namespace NM not available
-    gobject-introspection
-  ];
-
-  build-system = [
-    setuptools
-  ];
-
-  dependencies = [
-    proton-core
-    proton-vpn-killswitch-network-manager-wireguard
-    proton-vpn-network-manager
-  ];
-
-  preCheck = ''
-    # Needed for Permission denied: '/homeless-shelter'
-    export HOME=$(mktemp -d)
-  '';
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-cov-stub
-  ];
-
-  meta = {
-    description = "Adds support for the Wireguard protocol using NetworkManager";
-    homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager-wireguard";
-    license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ sebtm ];
-  };
-}
diff --git a/pkgs/development/python-modules/proton-vpn-network-manager/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
index fea0d2e304d00..2103b9c14855d 100644
--- a/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "proton-vpn-network-manager";
-  version = "0.5.2";
+  version = "0.6.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ProtonVPN";
     repo = "python-proton-vpn-network-manager";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hTJE9sUjPMsE9d0fIA/OhoasumtfsWuFwn0aTm10PN4=";
+    hash = "sha256-fbA3kvhU3l20+7irThiTk/fDe60yR4aWxhE3Ol2K7ow=";
   };
 
   nativeBuildInputs = [
@@ -54,6 +54,11 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
+  preCheck = ''
+    # Needed for Permission denied: '/homeless-shelter'
+    export HOME=$(mktemp -d)
+  '';
+
   meta = {
     description = "Provides the necessary functionality for other ProtonVPN components to interact with NetworkManager";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager";
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index f3528c2485519..3103506106dfd 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "1.0.2.20240918";
+  version = "1.0.2.20240920";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6OBk3CwWX4Wlq8w4JQims5lTuIREpm2jCJmy/c1Z1rI=";
+    hash = "sha256-LZDAepnKR2/BfU/grBE1Aw3wXwt9atAPu3dfh9KZ9tE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pydy/default.nix b/pkgs/development/python-modules/pydy/default.nix
index e9b916c888e22..b4172a855052b 100644
--- a/pkgs/development/python-modules/pydy/default.nix
+++ b/pkgs/development/python-modules/pydy/default.nix
@@ -6,22 +6,36 @@
   scipy,
   sympy,
   setuptools,
-  nose,
+  pytestCheckHook,
   cython,
+  fetchpatch2,
 }:
 
 buildPythonPackage rec {
   pname = "pydy";
   version = "0.7.1";
-
   pyproject = true;
-  build-system = [ setuptools ];
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-aaRinJMGR8v/OVkeSp1hA4+QLOrmDWq50wvA6b/suvk=";
   };
 
+  build-system = [ setuptools ];
+
+  patches = [
+    # Migrate tests to pytest
+    (fetchpatch2 {
+      url = "https://github.com/pydy/pydy/commit/e679638fecf80def25f5ed20f01c49c5d931e4d8.patch?full_index=1";
+      hash = "sha256-wJmYkyc5Yh0152OyNL5ZbZJxmpX7C65Hqrms4gm3zt0=";
+      excludes = [
+        ".github/workflows/oldest.yml"
+        ".github/workflows/tests.yml"
+        "bin/test"
+      ];
+    })
+  ];
+
   dependencies = [
     numpy
     scipy
@@ -29,24 +43,16 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
+    pytestCheckHook
     cython
   ];
 
-  checkPhase = ''
-    runHook preCheck
-
-    nosetests pydy
-
-    runHook postCheck
-  '';
-
   pythonImportsCheck = [ "pydy" ];
 
-  meta = with lib; {
+  meta = {
     description = "Python tool kit for multi-body dynamics";
     homepage = "http://pydy.org";
-    license = licenses.bsd3;
-    maintainers = [ ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-relaxed/default.nix b/pkgs/development/python-modules/pytest-relaxed/default.nix
index 6eecdcbc958b2..522202a510110 100644
--- a/pkgs/development/python-modules/pytest-relaxed/default.nix
+++ b/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   decorator,
   fetchPypi,
-  invocations,
   invoke,
   pytest,
   pytestCheckHook,
@@ -27,7 +26,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ decorator ];
 
   nativeCheckInputs = [
-    invocations
     invoke
     pytestCheckHook
   ];
diff --git a/pkgs/development/python-modules/qcs-api-client-common/Cargo.lock b/pkgs/development/python-modules/qcs-api-client-common/Cargo.lock
new file mode 100644
index 0000000000000..e014440032fd6
--- /dev/null
+++ b/pkgs/development/python-modules/qcs-api-client-common/Cargo.lock
@@ -0,0 +1,3879 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "addr2line"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5fb1d8e4442bd405fdfd1dacb42792696b0cf9cb15882e5d097b742a676d375"
+dependencies = [
+ "gimli",
+]
+
+[[package]]
+name = "adler2"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "512761e0bb2578dd7380c6baaa0f4ce03e84f95e960231d1dec8bf4d7d6e2627"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[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 = "anyhow"
+version = "1.0.89"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86fdf8605db99b54d3cd748a44c6d04df638eb5dafb219b135d0149bd0db01f6"
+
+[[package]]
+name = "ascii-canvas"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6"
+dependencies = [
+ "term",
+]
+
+[[package]]
+name = "assert-json-diff"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "47e4f2b81832e72834d7518d8487a0396a28cc408186a2e8854c0f98011faf12"
+dependencies = [
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "async-attributes"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5"
+dependencies = [
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "async-channel"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35"
+dependencies = [
+ "concurrent-queue",
+ "event-listener 2.5.3",
+ "futures-core",
+]
+
+[[package]]
+name = "async-channel"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "89b47800b0be77592da0afd425cc03468052844aff33b84e33cc696f64e77b6a"
+dependencies = [
+ "concurrent-queue",
+ "event-listener-strategy",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-executor"
+version = "1.13.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30ca9a001c1e8ba5149f91a74362376cc6bc5b919d92d988668657bd570bdcec"
+dependencies = [
+ "async-task",
+ "concurrent-queue",
+ "fastrand",
+ "futures-lite",
+ "slab",
+]
+
+[[package]]
+name = "async-global-executor"
+version = "2.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c"
+dependencies = [
+ "async-channel 2.3.1",
+ "async-executor",
+ "async-io",
+ "async-lock",
+ "blocking",
+ "futures-lite",
+ "once_cell",
+]
+
+[[package]]
+name = "async-io"
+version = "2.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "444b0228950ee6501b3568d3c93bf1176a1fdbc3b758dcd9475046d30f4dc7e8"
+dependencies = [
+ "async-lock",
+ "cfg-if",
+ "concurrent-queue",
+ "futures-io",
+ "futures-lite",
+ "parking",
+ "polling",
+ "rustix",
+ "slab",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "async-lock"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff6e472cdea888a4bd64f342f09b3f50e1886d32afe8df3d663c01140b811b18"
+dependencies = [
+ "event-listener 5.3.1",
+ "event-listener-strategy",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-object-pool"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "333c456b97c3f2d50604e8b2624253b7f787208cb72eb75e64b0ad11b221652c"
+dependencies = [
+ "async-std",
+]
+
+[[package]]
+name = "async-process"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "63255f1dc2381611000436537bbedfe83183faa303a5a0edaf191edef06526bb"
+dependencies = [
+ "async-channel 2.3.1",
+ "async-io",
+ "async-lock",
+ "async-signal",
+ "async-task",
+ "blocking",
+ "cfg-if",
+ "event-listener 5.3.1",
+ "futures-lite",
+ "rustix",
+ "tracing",
+]
+
+[[package]]
+name = "async-signal"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "637e00349800c0bdf8bfc21ebbc0b6524abea702b0da4168ac00d070d0c0b9f3"
+dependencies = [
+ "async-io",
+ "async-lock",
+ "atomic-waker",
+ "cfg-if",
+ "futures-core",
+ "futures-io",
+ "rustix",
+ "signal-hook-registry",
+ "slab",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "async-socks5"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77f634add2445eb2c1f785642a67ca1073fedd71e73dc3ca69435ef9b9bdedc7"
+dependencies = [
+ "async-trait",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "async-std"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c634475f29802fde2b8f0b505b1bd00dfe4df7d4a000f0b36f7671197d5c3615"
+dependencies = [
+ "async-attributes",
+ "async-channel 1.9.0",
+ "async-global-executor",
+ "async-io",
+ "async-lock",
+ "async-process",
+ "crossbeam-utils",
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-lite",
+ "gloo-timers",
+ "kv-log-macro",
+ "log",
+ "memchr",
+ "once_cell",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "async-stream"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51"
+dependencies = [
+ "async-stream-impl",
+ "futures-core",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "async-stream-impl"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "async-task"
+version = "4.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b75356056920673b02621b35afd0f7dda9306d03c79a30f5c56c44cf256e3de"
+
+[[package]]
+name = "async-trait"
+version = "0.1.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a27b8a3a6e1a44fa4c8baf1f653e4172e81486d4941f2237e20dc2d0cf4ddff1"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "atomic"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d818003e740b63afc82337e3160717f4f63078720a810b7b903e70a5d1d2994"
+dependencies = [
+ "bytemuck",
+]
+
+[[package]]
+name = "atomic-waker"
+version = "1.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
+
+[[package]]
+name = "autocfg"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
+
+[[package]]
+name = "axum"
+version = "0.6.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf"
+dependencies = [
+ "async-trait",
+ "axum-core",
+ "bitflags 1.3.2",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "itoa",
+ "matchit",
+ "memchr",
+ "mime",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustversion",
+ "serde",
+ "sync_wrapper",
+ "tower",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "axum-core"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "futures-util",
+ "http",
+ "http-body",
+ "mime",
+ "rustversion",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "backoff"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1"
+dependencies = [
+ "futures-core",
+ "getrandom",
+ "instant",
+ "pin-project-lite",
+ "rand",
+ "tokio",
+]
+
+[[package]]
+name = "backtrace"
+version = "0.3.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d82cb332cdfaed17ae235a638438ac4d4839913cc2af585c3c6746e8f8bee1a"
+dependencies = [
+ "addr2line",
+ "cfg-if",
+ "libc",
+ "miniz_oxide",
+ "object",
+ "rustc-demangle",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "base64"
+version = "0.21.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567"
+
+[[package]]
+name = "base64"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
+
+[[package]]
+name = "basic-cookies"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "67bd8fd42c16bdb08688243dc5f0cc117a3ca9efeeaba3a345a18a6159ad96f7"
+dependencies = [
+ "lalrpop",
+ "lalrpop-util",
+ "regex",
+]
+
+[[package]]
+name = "bit-set"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
+dependencies = [
+ "bit-vec",
+]
+
+[[package]]
+name = "bit-vec"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
+
+[[package]]
+name = "block-buffer"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
+dependencies = [
+ "generic-array",
+]
+
+[[package]]
+name = "blocking"
+version = "1.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "703f41c54fc768e63e091340b424302bb1c29ef4aa0c7f10fe849dfb114d29ea"
+dependencies = [
+ "async-channel 2.3.1",
+ "async-task",
+ "futures-io",
+ "futures-lite",
+ "piper",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "bytemuck"
+version = "1.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94bbb0ad554ad961ddc5da507a12a29b14e4ae5bda06b19f575a3e6079d2e2ae"
+
+[[package]]
+name = "byteorder"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
+
+[[package]]
+name = "bytes"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8318a53db07bb3f8dca91a600466bdb3f2eaadeedfdbcf02e1accbad9271ba50"
+
+[[package]]
+name = "cc"
+version = "1.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "45bcde016d64c21da4be18b655631e5ab6d3107607e71a73a9f53eb48aae23fb"
+dependencies = [
+ "shlex",
+]
+
+[[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.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "js-sys",
+ "num-traits",
+ "wasm-bindgen",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "concurrent-queue"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ca0197aee26d1ae37445ee532fefce43251d24cc7c166799f4d46817f1d3973"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[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.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
+
+[[package]]
+name = "cpufeatures"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "608697df725056feaccfa42cffdaeeec3fccc4ffc38358ecd19b243e716a78e0"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33480d6946193aa8033910124896ca395333cae7e2d1113d1fef6c3272217df2"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22ec99545bb0ed0ea7bb9b8e1e9122ea386ff8a48c0922e43f36d45ab09e0e80"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "crypto-common"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+dependencies = [
+ "generic-array",
+ "typenum",
+]
+
+[[package]]
+name = "darling"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f63b86c8a8826a49b8c21f08a2d07338eec8d900540f8630dc76284be802989"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95133861a8032aaea082871032f5815eb9e98cef03fa916ab4500513994df9e5"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d336a2a514f6ccccaa3e09b02d41d35330c07ddf03a62165fcec10bb561c7806"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "deranged"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b42b6fa04a440b495c8b04d0e71b707c585f83cb9cb28cf8cd0d976c315e31b4"
+dependencies = [
+ "powerfmt",
+]
+
+[[package]]
+name = "derive_builder"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd33f37ee6a119146a1781d3356a7c26028f83d779b2e04ecd45fdc75c76877b"
+dependencies = [
+ "derive_builder_macro",
+]
+
+[[package]]
+name = "derive_builder_core"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7431fa049613920234f22c47fdc33e6cf3ee83067091ea4277a3f8c4587aae38"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "derive_builder_macro"
+version = "0.20.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4abae7035bf79b9877b779505d8cf3749285b80c43941eda66604841889451dc"
+dependencies = [
+ "derive_builder_core",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "derive_more"
+version = "0.99.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce"
+dependencies = [
+ "convert_case",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "digest"
+version = "0.10.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
+dependencies = [
+ "block-buffer",
+ "crypto-common",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys",
+]
+
+[[package]]
+name = "dirs-next"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1"
+dependencies = [
+ "cfg-if",
+ "dirs-sys-next",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "dirs-sys-next"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "either"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60b1af1c220855b6ceac025d3f6ecdd2b7c4894bfe9cd9bda4fbb4bc7c0d4cf0"
+
+[[package]]
+name = "ena"
+version = "0.14.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d248bdd43ce613d87415282f69b9bb99d947d290b10962dd6c56233312c2ad5"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "encoding_rs"
+version = "0.8.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b45de904aa0b010bce2ab45264d0631681847fa7b6f2eaa7dab7619943bc4f59"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "534c5cf6194dfab3db3242765c03bbe257cf92f22b38f6bc0c58d59108a820ba"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "event-listener"
+version = "2.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
+
+[[package]]
+name = "event-listener"
+version = "5.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
+dependencies = [
+ "concurrent-queue",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "event-listener-strategy"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f214dc438f977e6d4e3500aaa277f5ad94ca83fbbd9b1a15713ce2344ccc5a1"
+dependencies = [
+ "event-listener 5.3.1",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8c02a5121d4ea3eb16a80748c74f5549a5665e4c21333c6098f283870fbdea6"
+
+[[package]]
+name = "figment"
+version = "0.10.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3"
+dependencies = [
+ "atomic",
+ "parking_lot",
+ "pear",
+ "serde",
+ "tempfile",
+ "toml",
+ "uncased",
+ "version_check",
+]
+
+[[package]]
+name = "fixedbitset"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "futures"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1"
+
+[[package]]
+name = "futures-lite"
+version = "2.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52527eb5074e35e9339c6b4e8d12600c7128b68fb25dcb9fa9dec18f7c25f3a5"
+dependencies = [
+ "fastrand",
+ "futures-core",
+ "futures-io",
+ "parking",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "futures-macro"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5"
+
+[[package]]
+name = "futures-task"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004"
+
+[[package]]
+name = "futures-timer"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24"
+
+[[package]]
+name = "futures-util"
+version = "0.3.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project-lite",
+ "pin-utils",
+ "slab",
+]
+
+[[package]]
+name = "generic-array"
+version = "0.14.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
+dependencies = [
+ "typenum",
+ "version_check",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "gimli"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32085ea23f3234fc7846555e85283ba4de91e21016dc0455a16286d87a292d64"
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "gloo-timers"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb143cf96099802033e0d4f4963b19fd2e0b728bcf076cd9cf7f6634f092994"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "h2"
+version = "0.3.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81fe527a889e1532da5c525686d96d4c2e74cdd345badf8dfef9f6b39dd5f5e8"
+dependencies = [
+ "bytes",
+ "fnv",
+ "futures-core",
+ "futures-sink",
+ "futures-util",
+ "http",
+ "indexmap 2.5.0",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tracing",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "headers"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06683b93020a07e3dbcf5f8c0f6d40080d725bea7936fc01ad345c01b97dc270"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "headers-core",
+ "http",
+ "httpdate",
+ "mime",
+ "sha1",
+]
+
+[[package]]
+name = "headers-core"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429"
+dependencies = [
+ "http",
+]
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hermit-abi"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fbf6a919d6cf397374f7dfeeea91d974c7c0a7221d0d0f4f20d859d329e53fcc"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "http"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1"
+dependencies = [
+ "bytes",
+ "fnv",
+ "itoa",
+]
+
+[[package]]
+name = "http-body"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2"
+dependencies = [
+ "bytes",
+ "http",
+ "pin-project-lite",
+]
+
+[[package]]
+name = "http-range-header"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "add0ab9360ddbd88cfeb3bd9574a1d85cfdfa14db10b3e21d3700dbc4328758f"
+
+[[package]]
+name = "httparse"
+version = "1.9.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fcc0b4a115bf80b728eb8ea024ad5bd707b615bfed49e0665b6e0f86fd082d9"
+
+[[package]]
+name = "httpdate"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9"
+
+[[package]]
+name = "httpmock"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08ec9586ee0910472dec1a1f0f8acf52f0fdde93aea74d70d4a3107b4be0fd5b"
+dependencies = [
+ "assert-json-diff",
+ "async-object-pool",
+ "async-std",
+ "async-trait",
+ "base64 0.21.7",
+ "basic-cookies",
+ "crossbeam-utils",
+ "form_urlencoded",
+ "futures-util",
+ "hyper",
+ "lazy_static",
+ "levenshtein",
+ "log",
+ "regex",
+ "serde",
+ "serde_json",
+ "serde_regex",
+ "similar",
+ "tokio",
+ "url",
+]
+
+[[package]]
+name = "hyper"
+version = "0.14.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a152ddd61dfaec7273fe8419ab357f33aee0d914c5f4efbf0d96fa749eea5ec9"
+dependencies = [
+ "bytes",
+ "futures-channel",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "httparse",
+ "httpdate",
+ "itoa",
+ "pin-project-lite",
+ "socket2",
+ "tokio",
+ "tower-service",
+ "tracing",
+ "want",
+]
+
+[[package]]
+name = "hyper-proxy"
+version = "0.9.1"
+source = "git+https://github.com/rigetti/hyper-proxy#e08329b56787326d6ec8d0bbcc1f96913af105c8"
+dependencies = [
+ "bytes",
+ "futures-util",
+ "headers",
+ "http",
+ "hyper",
+ "hyper-rustls",
+ "rustls-native-certs 0.6.3",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tower-service",
+ "webpki",
+]
+
+[[package]]
+name = "hyper-rustls"
+version = "0.24.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590"
+dependencies = [
+ "futures-util",
+ "http",
+ "hyper",
+ "log",
+ "rustls 0.21.12",
+ "rustls-native-certs 0.6.3",
+ "tokio",
+ "tokio-rustls 0.24.1",
+]
+
+[[package]]
+name = "hyper-socks2"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc38166fc2732d450e9372388d269eb38ff0b75a3cfb4c542e65b2f6893629c4"
+dependencies = [
+ "async-socks5",
+ "futures",
+ "http",
+ "hyper",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "hyper-timeout"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1"
+dependencies = [
+ "hyper",
+ "pin-project-lite",
+ "tokio",
+ "tokio-io-timeout",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.61"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "235e081f3925a06703c2d0117ea8b91f042756fd6e7a6e5d901e8ca1a996b220"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "indexmap"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+dependencies = [
+ "autocfg",
+ "hashbrown 0.12.3",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68b900aa2f7301e21c36462b170ee99994de34dff39a4a6a528e80e7376d07e5"
+dependencies = [
+ "equivalent",
+ "hashbrown 0.14.5",
+]
+
+[[package]]
+name = "indoc"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
+
+[[package]]
+name = "inlinable_string"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb"
+
+[[package]]
+name = "instant"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0242819d153cba4b4b05a5a8f2a7e9bbf97b6055b2a002b395c96b5ff3c0222"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "inventory"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f958d3d68f4167080a18141e10381e7634563984a537f2a49a30fd8e53ac5767"
+
+[[package]]
+name = "ipnet"
+version = "2.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "187674a687eed5fe42285b40c6291f9a01517d415fad1c3cbc6a9f778af7fcd4"
+
+[[package]]
+name = "itertools"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "js-sys"
+version = "0.3.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1868808506b929d7b0cfa8f75951347aa71bb21144b7791bae35d9bccfcfe37a"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "jsonwebtoken"
+version = "9.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9ae10193d25051e74945f1ea2d0b42e03cc3b890f7e4cc5faa44997d808193f"
+dependencies = [
+ "base64 0.21.7",
+ "js-sys",
+ "pem",
+ "ring",
+ "serde",
+ "serde_json",
+ "simple_asn1",
+]
+
+[[package]]
+name = "kv-log-macro"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "lalrpop"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca"
+dependencies = [
+ "ascii-canvas",
+ "bit-set",
+ "ena",
+ "itertools 0.11.0",
+ "lalrpop-util",
+ "petgraph",
+ "pico-args",
+ "regex",
+ "regex-syntax",
+ "string_cache",
+ "term",
+ "tiny-keccak",
+ "unicode-xid",
+ "walkdir",
+]
+
+[[package]]
+name = "lalrpop-util"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
+dependencies = [
+ "regex-automata",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe"
+
+[[package]]
+name = "levenshtein"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db13adb97ab515a3691f56e4dbab09283d0b86cb45abd991d8634a9d6f501760"
+
+[[package]]
+name = "libc"
+version = "0.2.158"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8adc4bb1803a324070e64a98ae98f38934d91957a99cfb3a43dcbc01bc56439"
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.6.0",
+ "libc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
+dependencies = [
+ "value-bag",
+]
+
+[[package]]
+name = "matchit"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e7465ac9959cc2b1404e8e2367b43684a6d13790fe23056cc8c6c5a6b7bcb94"
+
+[[package]]
+name = "memchr"
+version = "2.7.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mime"
+version = "0.3.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a"
+
+[[package]]
+name = "mime_guess"
+version = "2.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7c44f8e672c00fe5308fa235f821cb4198414e1c77935c1ab6948d3fd78550e"
+dependencies = [
+ "mime",
+ "unicase",
+]
+
+[[package]]
+name = "miniz_oxide"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2d80299ef12ff69b16a84bb182e3b9df68b5a91574d3d4fa6e41b65deec4df1"
+dependencies = [
+ "adler2",
+]
+
+[[package]]
+name = "mio"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80e04d1dcff3aae0704555fe5fee3bcfaf3d1fdf8a7e521d5b9d2b42acb52cec"
+dependencies = [
+ "hermit-abi 0.3.9",
+ "libc",
+ "wasi",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "multimap"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "defc4c55412d89136f966bbb339008b474350e5e6e78d2714439c386b3137a03"
+
+[[package]]
+name = "new_debug_unreachable"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "num-bigint"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9"
+dependencies = [
+ "num-integer",
+ "num-traits",
+]
+
+[[package]]
+name = "num-complex"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73f88a1307638156682bada9d7604135552957b7818057dcef22705b4d509495"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-conv"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "51d515d32fb182ee37cda2ccdcb92950d6a3c2893aa280e540671c2cd0f3b1d9"
+
+[[package]]
+name = "num-integer"
+version = "0.1.46"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "object"
+version = "0.36.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "084f1a5821ac4c651660a94a7153d27ac9d8a53736203f58b31945ded098070a"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf"
+
+[[package]]
+name = "opentelemetry"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9591d937bc0e6d2feb6f71a559540ab300ea49955229c347a517a28d27784c54"
+dependencies = [
+ "opentelemetry_api",
+ "opentelemetry_sdk",
+]
+
+[[package]]
+name = "opentelemetry-http"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7594ec0e11d8e33faf03530a4c49af7064ebba81c1480e01be67d90b356508b"
+dependencies = [
+ "async-trait",
+ "bytes",
+ "http",
+ "opentelemetry_api",
+]
+
+[[package]]
+name = "opentelemetry_api"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a81f725323db1b1206ca3da8bb19874bbd3f57c3bcd59471bfb04525b265b9b"
+dependencies = [
+ "futures-channel",
+ "futures-util",
+ "indexmap 1.9.3",
+ "js-sys",
+ "once_cell",
+ "pin-project-lite",
+ "thiserror",
+ "urlencoding",
+]
+
+[[package]]
+name = "opentelemetry_sdk"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa8e705a0612d48139799fcbaba0d4a90f06277153e43dd2bdc16c6f0edd8026"
+dependencies = [
+ "async-trait",
+ "crossbeam-channel",
+ "futures-channel",
+ "futures-executor",
+ "futures-util",
+ "once_cell",
+ "opentelemetry_api",
+ "ordered-float",
+ "percent-encoding",
+ "rand",
+ "regex",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+]
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "ordered-float"
+version = "3.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1e1c390732d15f1d48471625cd92d154e66db2c56645e29a9cd26f4699f72dc"
+dependencies = [
+ "num-traits",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "parking"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f38d5652c16fde515bb1ecef450ab0f6a219d619a7274976324d5e377f7dceba"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a"
+
+[[package]]
+name = "pbjson"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1030c719b0ec2a2d25a5df729d6cff1acf3cc230bf766f4f97833591f7577b90"
+dependencies = [
+ "base64 0.21.7",
+ "serde",
+]
+
+[[package]]
+name = "pbjson-build"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2580e33f2292d34be285c5bc3dba5259542b083cfad6037b6d70345f24dcb735"
+dependencies = [
+ "heck 0.4.1",
+ "itertools 0.11.0",
+ "prost",
+ "prost-types",
+]
+
+[[package]]
+name = "pbjson-types"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "18f596653ba4ac51bdecbb4ef6773bc7f56042dc13927910de1684ad3d32aa12"
+dependencies = [
+ "bytes",
+ "chrono",
+ "pbjson",
+ "pbjson-build",
+ "prost",
+ "prost-build",
+ "serde",
+]
+
+[[package]]
+name = "pear"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467"
+dependencies = [
+ "inlinable_string",
+ "pear_codegen",
+ "yansi",
+]
+
+[[package]]
+name = "pear_codegen"
+version = "0.2.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147"
+dependencies = [
+ "proc-macro2",
+ "proc-macro2-diagnostics",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "pem"
+version = "3.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e459365e590736a54c3fa561947c84837534b8e9af6fc5bf781307e82658fae"
+dependencies = [
+ "base64 0.22.1",
+ "serde",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "petgraph"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db"
+dependencies = [
+ "fixedbitset",
+ "indexmap 2.5.0",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6796ad771acdc0123d2a88dc428b5e38ef24456743ddb1744ed628f9815c096"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pico-args"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5be167a7af36ee22fe3115051bc51f6e6c7054c9348e28deb4f49bd6f705a315"
+
+[[package]]
+name = "pin-project"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6bf43b791c5b9e34c3d182969b4abb522f9343702850a2e57f460d00d09b4b3"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "1.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "piper"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066"
+dependencies = [
+ "atomic-waker",
+ "fastrand",
+ "futures-io",
+]
+
+[[package]]
+name = "polling"
+version = "3.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc2790cd301dec6cd3b7a025e4815cf825724a51c98dccfe6a3e55f05ffb6511"
+dependencies = [
+ "cfg-if",
+ "concurrent-queue",
+ "hermit-abi 0.4.0",
+ "pin-project-lite",
+ "rustix",
+ "tracing",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "portable-atomic"
+version = "1.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da544ee218f0d287a911e9c99a39a8c9bc8fcad3cb8db5959940044ecfc67265"
+
+[[package]]
+name = "powerfmt"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391"
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77957b295656769bb8ad2b6a6b09d897d94f05c41b069aede1fcdaa675eaea04"
+dependencies = [
+ "zerocopy",
+]
+
+[[package]]
+name = "precomputed-hash"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
+
+[[package]]
+name = "prettyplease"
+version = "0.2.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "479cf940fbbb3426c32c5d5176f62ad57549a0bb84773423ba8be9d089f5faba"
+dependencies = [
+ "proc-macro2",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "proc-macro-crate"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecf48c7ca261d60b74ab1a7b20da18bede46776b2e55535cb958eb595c5fa7b"
+dependencies = [
+ "toml_edit",
+]
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.86"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "proc-macro2-diagnostics"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+ "version_check",
+ "yansi",
+]
+
+[[package]]
+name = "prost"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deb1435c188b76130da55f17a466d252ff7b1418b2ad3e037d127b94e3411f29"
+dependencies = [
+ "bytes",
+ "prost-derive",
+]
+
+[[package]]
+name = "prost-build"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22505a5c94da8e3b7c2996394d1c933236c4d743e81a410bcca4e6989fc066a4"
+dependencies = [
+ "bytes",
+ "heck 0.5.0",
+ "itertools 0.12.1",
+ "log",
+ "multimap",
+ "once_cell",
+ "petgraph",
+ "prettyplease",
+ "prost",
+ "prost-types",
+ "regex",
+ "syn 2.0.77",
+ "tempfile",
+]
+
+[[package]]
+name = "prost-derive"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81bddcdb20abf9501610992b6759a4c888aef7d1a7247ef75e2404275ac24af1"
+dependencies = [
+ "anyhow",
+ "itertools 0.12.1",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "prost-types"
+version = "0.12.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9091c90b0a32608e984ff2fa4091273cbdd755d54935c51d520887f4a1dbd5b0"
+dependencies = [
+ "prost",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
+dependencies = [
+ "cfg-if",
+ "indoc",
+ "inventory",
+ "libc",
+ "memoffset",
+ "num-complex",
+ "parking_lot",
+ "portable-atomic",
+ "pyo3-build-config 0.20.3",
+ "pyo3-ffi",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-asyncio"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ea6b68e93db3622f3bb3bf363246cf948ed5375afe7abff98ccbdd50b184995"
+dependencies = [
+ "futures",
+ "once_cell",
+ "pin-project-lite",
+ "pyo3",
+ "tokio",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.22.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e61cef80755fe9e46bb8a0b8f20752ca7676dcc07a5277d8b7768c6172e529b3"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
+dependencies = [
+ "libc",
+ "pyo3-build-config 0.20.3",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
+dependencies = [
+ "proc-macro2",
+ "pyo3-macros-backend",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.20.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "pyo3-build-config 0.20.3",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "qcs-api-client-common"
+version = "0.10.2"
+dependencies = [
+ "async-trait",
+ "backoff",
+ "base64 0.22.1",
+ "chrono",
+ "derive_builder",
+ "figment",
+ "futures",
+ "home",
+ "http",
+ "httpmock",
+ "jsonwebtoken",
+ "paste",
+ "pyo3",
+ "pyo3-asyncio",
+ "pyo3-build-config 0.22.3",
+ "reqwest",
+ "rigetti-pyo3",
+ "rstest 0.21.0",
+ "serde",
+ "serial_test",
+ "shellexpand",
+ "thiserror",
+ "time",
+ "tokio",
+ "toml",
+ "tracing",
+ "url",
+ "urlpattern",
+]
+
+[[package]]
+name = "qcs-api-client-grpc"
+version = "0.10.2"
+dependencies = [
+ "async-std",
+ "backoff",
+ "futures-util",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-proxy",
+ "hyper-socks2",
+ "jsonwebtoken",
+ "once_cell",
+ "opentelemetry",
+ "opentelemetry-http",
+ "opentelemetry_api",
+ "opentelemetry_sdk",
+ "pbjson",
+ "pbjson-build",
+ "pbjson-types",
+ "prost",
+ "prost-build",
+ "qcs-api-client-common",
+ "rstest 0.17.0",
+ "serde",
+ "serde_json",
+ "tempfile",
+ "thiserror",
+ "tokio",
+ "tokio-stream",
+ "tonic",
+ "tonic-build",
+ "tonic-health",
+ "tonic-web",
+ "tower",
+ "tracing",
+ "tracing-opentelemetry",
+ "tracing-subscriber",
+ "url",
+ "urlpattern",
+]
+
+[[package]]
+name = "qcs-api-client-openapi"
+version = "0.11.2"
+dependencies = [
+ "anyhow",
+ "qcs-api-client-common",
+ "reqwest",
+ "reqwest-middleware",
+ "reqwest-tracing",
+ "rstest 0.17.0",
+ "serde",
+ "serde_json",
+ "task-local-extensions",
+ "tokio",
+ "tracing",
+ "url",
+ "urlpattern",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0884ad60e090bf1345b93da0a5de8923c93884cd03f40dfcfddd3b4bee661853"
+dependencies = [
+ "bitflags 2.6.0",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4219d74c6b67a3654a9fbebc4b419e22126d13d2f3c4a07ee0cb61ff79a79619"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38caf58cc5ef2fed281f89292ef23f6365465ed9a41b7a7754eb4e26496c92df"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
+
+[[package]]
+name = "relative-path"
+version = "1.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba39f3699c378cd8970968dcbff9c43159ea4cfbd88d43c00b22f2ef10a435d2"
+
+[[package]]
+name = "reqwest"
+version = "0.11.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "encoding_rs",
+ "futures-core",
+ "futures-util",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-rustls",
+ "ipnet",
+ "js-sys",
+ "log",
+ "mime",
+ "mime_guess",
+ "once_cell",
+ "percent-encoding",
+ "pin-project-lite",
+ "rustls 0.21.12",
+ "rustls-native-certs 0.6.3",
+ "rustls-pemfile 1.0.4",
+ "serde",
+ "serde_json",
+ "serde_urlencoded",
+ "sync_wrapper",
+ "system-configuration",
+ "tokio",
+ "tokio-rustls 0.24.1",
+ "tokio-socks",
+ "tower-service",
+ "url",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+ "winreg",
+]
+
+[[package]]
+name = "reqwest-middleware"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a735987236a8e238bf0296c7e351b999c188ccc11477f311b82b55c93984216"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "http",
+ "reqwest",
+ "serde",
+ "task-local-extensions",
+ "thiserror",
+]
+
+[[package]]
+name = "reqwest-tracing"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "190838e54153d7a7e2ea98851304b3ce92daeabf14c54d32b01b84a3e636f683"
+dependencies = [
+ "anyhow",
+ "async-trait",
+ "getrandom",
+ "matchit",
+ "opentelemetry",
+ "reqwest",
+ "reqwest-middleware",
+ "task-local-extensions",
+ "tracing",
+ "tracing-opentelemetry",
+]
+
+[[package]]
+name = "rigetti-pyo3"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59068763670399bb3e895a17cc631d9214c3172b64fc74d3ab63dac7371c340"
+dependencies = [
+ "num-complex",
+ "num-traits",
+ "paste",
+ "pyo3",
+ "time",
+]
+
+[[package]]
+name = "ring"
+version = "0.17.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c17fa4cb658e3583423e915b9f3acc01cceaee1860e33d59ebae66adc3a2dc0d"
+dependencies = [
+ "cc",
+ "cfg-if",
+ "getrandom",
+ "libc",
+ "spin",
+ "untrusted",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rstest"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de1bb486a691878cd320c2f0d319ba91eeaa2e894066d8b5f8f117c000e9d962"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros 0.17.0",
+ "rustc_version",
+]
+
+[[package]]
+name = "rstest"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9afd55a67069d6e434a95161415f5beeada95a01c7b815508a82dcb0e1593682"
+dependencies = [
+ "futures",
+ "futures-timer",
+ "rstest_macros 0.21.0",
+ "rustc_version",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "290ca1a1c8ca7edb7c3283bd44dc35dd54fdec6253a3912e201ba1072018fca8"
+dependencies = [
+ "cfg-if",
+ "proc-macro2",
+ "quote",
+ "rustc_version",
+ "syn 1.0.109",
+ "unicode-ident",
+]
+
+[[package]]
+name = "rstest_macros"
+version = "0.21.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4165dfae59a39dd41d8dec720d3cbfbc71f69744efb480a3920f5d4e0cc6798d"
+dependencies = [
+ "cfg-if",
+ "glob",
+ "proc-macro-crate",
+ "proc-macro2",
+ "quote",
+ "regex",
+ "relative-path",
+ "rustc_version",
+ "syn 2.0.77",
+ "unicode-ident",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f"
+
+[[package]]
+name = "rustc_version"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92"
+dependencies = [
+ "semver",
+]
+
+[[package]]
+name = "rustix"
+version = "0.38.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811"
+dependencies = [
+ "bitflags 2.6.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustls"
+version = "0.21.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-webpki 0.101.7",
+ "sct",
+]
+
+[[package]]
+name = "rustls"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
+dependencies = [
+ "log",
+ "ring",
+ "rustls-pki-types",
+ "rustls-webpki 0.102.8",
+ "subtle",
+ "zeroize",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.6.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 1.0.4",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-native-certs"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5bfb394eeed242e909609f56089eecfe5fda225042e8b171791b9c95f5931e5"
+dependencies = [
+ "openssl-probe",
+ "rustls-pemfile 2.1.3",
+ "rustls-pki-types",
+ "schannel",
+ "security-framework",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c"
+dependencies = [
+ "base64 0.21.7",
+]
+
+[[package]]
+name = "rustls-pemfile"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "196fe16b00e106300d3e45ecfcb764fa292a535d7326a29a5875c579c7417425"
+dependencies = [
+ "base64 0.22.1",
+ "rustls-pki-types",
+]
+
+[[package]]
+name = "rustls-pki-types"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc0a2ce646f8655401bb81e7927b812614bd5d91dbc968696be50603510fcaf0"
+
+[[package]]
+name = "rustls-webpki"
+version = "0.101.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "rustls-webpki"
+version = "0.102.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "64ca1bc8749bd4cf37b5ce386cc146580777b4e8572c7b97baf22c83f444bee9"
+dependencies = [
+ "ring",
+ "rustls-pki-types",
+ "untrusted",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "955d28af4278de8121b7ebeb796b6a45735dc01436d898801014aced2773a3d6"
+
+[[package]]
+name = "ryu"
+version = "1.0.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scc"
+version = "2.1.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c947adb109a8afce5fc9c7bf951f87f146e9147b3a6a58413105628fb1d1e66"
+dependencies = [
+ "sdd",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9aaafd5a2b6e3d657ff009d82fbd630b6bd54dd4eb06f21693925cdf80f9b8b"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "sct"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[package]]
+name = "sdd"
+version = "3.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60a7b59a5d9b0099720b417b6325d91a52cbf5b3dcb5041d864be53eefa58abc"
+
+[[package]]
+name = "security-framework"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02"
+dependencies = [
+ "bitflags 2.6.0",
+ "core-foundation",
+ "core-foundation-sys",
+ "libc",
+ "security-framework-sys",
+]
+
+[[package]]
+name = "security-framework-sys"
+version = "2.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "75da29fe9b9b08fe9d6b22b5b4bcbc75d8db3aa31e639aa56bb62e9d46bfceaf"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "semver"
+version = "1.0.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61697e0a1c7e512e84a621326239844a24d8207b4669b41bc18b32ea5cbf988b"
+
+[[package]]
+name = "serde"
+version = "1.0.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c8e3592472072e6e22e0a54d5904d9febf8508f65fb8552499a1abc7d1078c3a"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.210"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "243902eda00fad750862fc144cea25caca5e20d615af0a81bee94ca738f1df1f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.128"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6ff5456707a1de34e7e37f2a6fd3d3f808c318259cbd01ab6377795054b483d8"
+dependencies = [
+ "itoa",
+ "memchr",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_regex"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf"
+dependencies = [
+ "regex",
+ "serde",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb5b1b31579f3811bf615c144393417496f152e12ac8b7663bf664f4a815306d"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_urlencoded"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
+dependencies = [
+ "form_urlencoded",
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serial_test"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4b4b487fe2acf240a021cf57c6b2b4903b1e78ca0ecd862a71b71d2a51fed77d"
+dependencies = [
+ "futures",
+ "log",
+ "once_cell",
+ "parking_lot",
+ "scc",
+ "serial_test_derive",
+]
+
+[[package]]
+name = "serial_test_derive"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "sha1"
+version = "0.10.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba"
+dependencies = [
+ "cfg-if",
+ "cpufeatures",
+ "digest",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shellexpand"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
+dependencies = [
+ "dirs",
+]
+
+[[package]]
+name = "shlex"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
+
+[[package]]
+name = "signal-hook-registry"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9e9e0b4211b72e7b8b6e85c807d36c212bdb33ea8587f7569562a84df5465b1"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "similar"
+version = "2.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1de1d4f81173b03af4c0cbed3c898f6bff5b870e4a7f5d6f4057d62a7a4b686e"
+
+[[package]]
+name = "simple_asn1"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adc4e5204eb1910f40f9cfa375f6f05b68c3abac4b6fd879c8ff5e7ae8a0a085"
+dependencies = [
+ "num-bigint",
+ "num-traits",
+ "thiserror",
+ "time",
+]
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "slab"
+version = "0.4.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "socket2"
+version = "0.5.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "spin"
+version = "0.9.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67"
+
+[[package]]
+name = "string_cache"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f91138e76242f575eb1d3b38b4f1362f10d3a43f47d182a5b359af488a02293b"
+dependencies = [
+ "new_debug_unreachable",
+ "once_cell",
+ "parking_lot",
+ "phf_shared",
+ "precomputed-hash",
+]
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "subtle"
+version = "2.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.77"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f35bcdf61fd8e7be6caf75f429fdca8beb3ed76584befb503b1569faee373ed"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "sync_wrapper"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
+
+[[package]]
+name = "system-configuration"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7"
+dependencies = [
+ "bitflags 1.3.2",
+ "core-foundation",
+ "system-configuration-sys",
+]
+
+[[package]]
+name = "system-configuration-sys"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9"
+dependencies = [
+ "core-foundation-sys",
+ "libc",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
+
+[[package]]
+name = "task-local-extensions"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba323866e5d033818e3240feeb9f7db2c4296674e4d9e16b97b7bf8f490434e8"
+dependencies = [
+ "pin-utils",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04cbcdd0c794ebb0d4cf35e88edd2f7d2c4c3e9a5a6dab322839b321c6a87a64"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "once_cell",
+ "rustix",
+ "windows-sys 0.59.0",
+]
+
+[[package]]
+name = "term"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f"
+dependencies = [
+ "dirs-next",
+ "rustversion",
+ "winapi",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0342370b38b6a11b6cc11d6a805569958d54cfa061a29969c3b5ce2ea405724"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.63"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4558b58466b9ad7ca0f102865eccc95938dca1a74a856f2b57b6629050da261"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "time"
+version = "0.3.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5dfd88e563464686c916c7e46e623e520ddc6d79fa6641390f2e3fa86e83e885"
+dependencies = [
+ "deranged",
+ "itoa",
+ "num-conv",
+ "powerfmt",
+ "serde",
+ "time-core",
+ "time-macros",
+]
+
+[[package]]
+name = "time-core"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3"
+
+[[package]]
+name = "time-macros"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f252a68540fde3a3877aeea552b832b40ab9a69e318efd078774a01ddee1ccf"
+dependencies = [
+ "num-conv",
+ "time-core",
+]
+
+[[package]]
+name = "tiny-keccak"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237"
+dependencies = [
+ "crunchy",
+]
+
+[[package]]
+name = "tinyvec"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "445e881f4f6d382d5f27c034e25eb92edd7c784ceab92a0937db7f2e9471b938"
+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 = "tokio"
+version = "1.40.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2b070231665d27ad9ec9b8df639893f46727666c6767db40317fbe920a5d998"
+dependencies = [
+ "backtrace",
+ "bytes",
+ "libc",
+ "mio",
+ "parking_lot",
+ "pin-project-lite",
+ "signal-hook-registry",
+ "socket2",
+ "tokio-macros",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "tokio-io-timeout"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf"
+dependencies = [
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-macros"
+version = "2.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.24.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
+dependencies = [
+ "rustls 0.21.12",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-rustls"
+version = "0.25.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
+dependencies = [
+ "rustls 0.22.4",
+ "rustls-pki-types",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-socks"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d4770b8024672c1101b3f6733eab95b18007dbe0847a8afe341fcf79e06043f"
+dependencies = [
+ "either",
+ "futures-util",
+ "thiserror",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-stream"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4f4e6ce100d0eb49a2734f8c0812bcd324cf357d21810932c5df6b96ef2b86f1"
+dependencies = [
+ "futures-core",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "tokio-util"
+version = "0.7.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61e7c3654c13bcd040d4a03abee2c75b1d14a37b423cf5a813ceae1cc903ec6a"
+dependencies = [
+ "bytes",
+ "futures-core",
+ "futures-sink",
+ "pin-project-lite",
+ "tokio",
+]
+
+[[package]]
+name = "toml"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3b072cee73c449a636ffd6f32bd8de3a9f7119139aff882f44943ce2986dc5cf"
+dependencies = [
+ "indexmap 2.5.0",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tonic"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76c4eb7a4e9ef9d4763600161f12f5070b92a578e1b634db88a6887844c91a13"
+dependencies = [
+ "async-stream",
+ "async-trait",
+ "axum",
+ "base64 0.21.7",
+ "bytes",
+ "h2",
+ "http",
+ "http-body",
+ "hyper",
+ "hyper-timeout",
+ "percent-encoding",
+ "pin-project",
+ "prost",
+ "rustls-native-certs 0.7.3",
+ "rustls-pemfile 2.1.3",
+ "rustls-pki-types",
+ "tokio",
+ "tokio-rustls 0.25.0",
+ "tokio-stream",
+ "tower",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tonic-build"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4ef6dd70a610078cb4e338a0f79d06bc759ff1b22d2120c2ff02ae264ba9c2"
+dependencies = [
+ "prettyplease",
+ "proc-macro2",
+ "prost-build",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "tonic-health"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2cef6e24bc96871001a7e48e820ab240b3de2201e59b517cf52835df2f1d2350"
+dependencies = [
+ "async-stream",
+ "prost",
+ "tokio",
+ "tokio-stream",
+ "tonic",
+]
+
+[[package]]
+name = "tonic-web"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc3b0e1cedbf19fdfb78ef3d672cb9928e0a91a9cb4629cc0c916e8cff8aaaa1"
+dependencies = [
+ "base64 0.21.7",
+ "bytes",
+ "http",
+ "http-body",
+ "hyper",
+ "pin-project",
+ "tokio-stream",
+ "tonic",
+ "tower-http",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c"
+dependencies = [
+ "futures-core",
+ "futures-util",
+ "indexmap 1.9.3",
+ "pin-project",
+ "pin-project-lite",
+ "rand",
+ "slab",
+ "tokio",
+ "tokio-util",
+ "tower-layer",
+ "tower-service",
+ "tracing",
+]
+
+[[package]]
+name = "tower-http"
+version = "0.4.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61c5bb1d698276a2443e5ecfabc1008bf15a36c12e6a7176e7bf089ea9131140"
+dependencies = [
+ "bitflags 2.6.0",
+ "bytes",
+ "futures-core",
+ "futures-util",
+ "http",
+ "http-body",
+ "http-range-header",
+ "pin-project-lite",
+ "tower-layer",
+ "tower-service",
+]
+
+[[package]]
+name = "tower-layer"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e"
+
+[[package]]
+name = "tower-service"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f751112709b4e791d8ce53e32c4ed2d353565a795ce84da2285393f41557bdf2"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-opentelemetry"
+version = "0.20.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc09e402904a5261e42cf27aea09ccb7d5318c6717a9eec3d8e2e65c56b18f19"
+dependencies = [
+ "once_cell",
+ "opentelemetry",
+ "tracing",
+ "tracing-core",
+ "tracing-log 0.1.4",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "nu-ansi-term",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing-core",
+ "tracing-log 0.2.0",
+]
+
+[[package]]
+name = "try-lock"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b"
+
+[[package]]
+name = "typenum"
+version = "1.17.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
+
+[[package]]
+name = "uncased"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-ident"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e230a37c0381caa9219d67cf063aa3a375ffed5bf541a452db16e744bdab6987"
+dependencies = [
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicase"
+version = "2.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89"
+dependencies = [
+ "version_check",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e91b56cd4cadaeb79bbf1a5645f6b4f8dc5bde8834ad5894a8db35fda9efa1fe"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "229730647fbc343e3a80e463c1db7f78f3855d3f3739bee0dda773c9a037c90a"
+
+[[package]]
+name = "unindent"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
+
+[[package]]
+name = "untrusted"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
+
+[[package]]
+name = "url"
+version = "2.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "22784dbdf76fdde8af1aeda5622b546b422b6fc585325248a2bf9f5e41e94d6c"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+]
+
+[[package]]
+name = "urlencoding"
+version = "2.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da"
+
+[[package]]
+name = "urlpattern"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9bd5ff03aea02fa45b13a7980151fe45009af1980ba69f651ec367121a31609"
+dependencies = [
+ "derive_more",
+ "regex",
+ "serde",
+ "unic-ucd-ident",
+ "url",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "value-bag"
+version = "1.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5a84c137d37ab0142f0f2ddfe332651fdbf252e7b7dbb4e67b6c1f1b2e925101"
+
+[[package]]
+name = "version_check"
+version = "0.9.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a"
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "want"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e"
+dependencies = [
+ "try-lock",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a82edfc16a6c469f5f44dc7b571814045d60404b55a0ee849f9bcfa2e63dd9b5"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9de396da306523044d3302746f1208fa71d7532227f15e347e2d93e4145dd77b"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61e9300f63a621e96ed275155c108eb6f843b6a26d053f122ab69724559dc8ed"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "585c4c91a46b072c92e908d99cb1dcdf95c5218eeb6f3bf1efa991ee7a68cccf"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "afc340c74d9005395cf9dd098506f7f44e38f2b4a21c6aaacf9a105ea5e1e836"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.93"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c62a0a307cb4a311d3a07867860911ca130c3494e8c2719593806c08bc5d0484"
+
+[[package]]
+name = "web-sys"
+version = "0.3.70"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26fdeaafd9bd129f65e7c031593c24d62186301e0c72c8978fa1678be7d532c0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "webpki"
+version = "0.22.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53"
+dependencies = [
+ "ring",
+ "untrusted",
+]
+
+[[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.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf221c93e13a30d793f7645a0e7762c55d169dbb0a49671918a2319d289b10bb"
+dependencies = [
+ "windows-sys 0.59.0",
+]
+
+[[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-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
+dependencies = [
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+
+[[package]]
+name = "winnow"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68a9bda4691f099d435ad181000724da8e5899daa10713c2d432552b9ccd3a6f"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winreg"
+version = "0.50.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1"
+dependencies = [
+ "cfg-if",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "yansi"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049"
+
+[[package]]
+name = "zerocopy"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b9b4fd18abc82b8136838da5d50bae7bdea537c574d8dc1a34ed098d6c166f0"
+dependencies = [
+ "byteorder",
+ "zerocopy-derive",
+]
+
+[[package]]
+name = "zerocopy-derive"
+version = "0.7.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa4f8080344d4671fb4e831a13ad1e68092748387dfc4f55e356242fae12ce3e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.77",
+]
+
+[[package]]
+name = "zeroize"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
diff --git a/pkgs/development/python-modules/qcs-api-client-common/default.nix b/pkgs/development/python-modules/qcs-api-client-common/default.nix
new file mode 100644
index 0000000000000..fc0a04a74ba04
--- /dev/null
+++ b/pkgs/development/python-modules/qcs-api-client-common/default.nix
@@ -0,0 +1,77 @@
+{
+  buildPythonPackage,
+  cargo,
+  fetchFromGitHub,
+  grpc-interceptor,
+  grpcio,
+  httpx,
+  lib,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  rustc,
+  rustPlatform,
+  syrupy,
+}:
+
+buildPythonPackage rec {
+  pname = "qcs-api-client-common";
+  version = "0.10.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "rigetti";
+    repo = "qcs-api-client-rust";
+    rev = "refs/tags/common/v${version}";
+    hash = "sha256-WXTqzdbBZmBj/+mVK/watOuaq/WqKtaMVhp+ogjmhqM=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "hyper-proxy-0.9.1" = "sha256-P9/qMHfq56rkQoBQF3o/SmbOfcePcFf8yh1YQve3oGM=";
+    };
+  };
+
+  # FIXME use
+  #     buildAndTestSubdir = "qcs-api-client-common";
+  # instead, which makes the tests fail
+  postPatch = ''
+    cd qcs-api-client-common
+  '';
+  cargoRoot = "..";
+
+  build-system = [ rustPlatform.maturinBuildHook ];
+
+  nativeBuildInputs = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+  ];
+
+  dependencies = [
+    grpc-interceptor
+    grpcio
+    httpx
+  ];
+
+  preCheck = ''
+    # import from $out
+    rm -r qcs_api_client_common
+  '';
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+    syrupy
+  ];
+
+  meta = {
+    changelog = "https://github.com/rigetti/qcs-api-client-rust/blob/${src.rev}/qcs-api-client-common/CHANGELOG-py.md";
+    description = "Contains core QCS client functionality and middleware implementations";
+    homepage = "https://github.com/rigetti/qcs-api-client-rust/tree/main/qcs-api-client-common";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
index 2309fd0205f39..6a205f28323de 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -1592,18 +1592,18 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
 
 [[package]]
 name = "lexical"
-version = "6.1.1"
+version = "7.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6"
+checksum = "8ecd3381ac77c22d4e2607284ac71e44b21c21bd3785ee807d21976d54ee16f9"
 dependencies = [
  "lexical-core",
 ]
 
 [[package]]
 name = "lexical-core"
-version = "0.8.5"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46"
+checksum = "0885f6cdfe75c96e45bbf1c4e49511f128201391ce3b56e60e29f5a1fadbc1c1"
 dependencies = [
  "lexical-parse-float",
  "lexical-parse-integer",
@@ -1614,9 +1614,9 @@ dependencies = [
 
 [[package]]
 name = "lexical-parse-float"
-version = "0.8.5"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+checksum = "924f7ec090cd4f60bd873f160b0fb69a0c80bb3a98f2e778a1893ae0e5c4b0b9"
 dependencies = [
  "lexical-parse-integer",
  "lexical-util",
@@ -1625,9 +1625,9 @@ dependencies = [
 
 [[package]]
 name = "lexical-parse-integer"
-version = "0.8.6"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+checksum = "8feab1da84a2ab0ddbbad2fb1830b755f71a9a8d996c7a1f2a553faf72aa3686"
 dependencies = [
  "lexical-util",
  "static_assertions",
@@ -1635,18 +1635,18 @@ dependencies = [
 
 [[package]]
 name = "lexical-util"
-version = "0.8.5"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+checksum = "591ce1a12ecd3b26d4121ab360a6a4483a67f05a5372add6acbfd0b65c9285d9"
 dependencies = [
  "static_assertions",
 ]
 
 [[package]]
 name = "lexical-write-float"
-version = "0.8.5"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862"
+checksum = "05b0f3f9ddada5942b54e97654d535df37c9340ad66c24b50360a90619779f41"
 dependencies = [
  "lexical-util",
  "lexical-write-integer",
@@ -1655,9 +1655,9 @@ dependencies = [
 
 [[package]]
 name = "lexical-write-integer"
-version = "0.8.5"
+version = "1.0.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446"
+checksum = "48c6d47254ddb292771dce7697ae2be9619f8e369d01a9ccda15ef2ff50443fc"
 dependencies = [
  "lexical-util",
  "static_assertions",
@@ -2551,7 +2551,7 @@ dependencies = [
  "num-complex",
  "parking_lot",
  "portable-atomic",
- "pyo3-build-config",
+ "pyo3-build-config 0.20.3",
  "pyo3-ffi",
  "pyo3-macros",
  "unindent",
@@ -2581,13 +2581,23 @@ dependencies = [
 ]
 
 [[package]]
+name = "pyo3-build-config"
+version = "0.22.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7879eb018ac754bba32cb0eec7526391c02c14a093121857ed09fbf1d1057d41"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
 name = "pyo3-ffi"
 version = "0.20.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
 dependencies = [
  "libc",
- "pyo3-build-config",
+ "pyo3-build-config 0.20.3",
 ]
 
 [[package]]
@@ -2621,7 +2631,7 @@ checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
 dependencies = [
  "heck 0.4.1",
  "proc-macro2",
- "pyo3-build-config",
+ "pyo3-build-config 0.20.3",
  "quote",
  "syn 2.0.66",
 ]
@@ -2674,7 +2684,7 @@ dependencies = [
 
 [[package]]
 name = "qcs"
-version = "0.23.2"
+version = "0.24.1"
 dependencies = [
  "assert2",
  "async-trait",
@@ -2736,19 +2746,25 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-common"
-version = "0.8.4"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "040552f233992abe94376304cf17dab2d79ff62d4a9ee986d75efe3d19337f57"
+checksum = "1cf1692d12ab36478f43f1ef493a8b2445f7f5d17164f739d8b0fd57ad59e6e6"
 dependencies = [
  "async-trait",
  "backoff",
+ "base64 0.22.1",
  "derive_builder 0.20.0",
  "figment",
  "futures",
  "home",
  "http",
  "jsonwebtoken",
+ "paste",
+ "pyo3",
+ "pyo3-asyncio",
+ "pyo3-build-config 0.22.1",
  "reqwest",
+ "rigetti-pyo3 0.3.6",
  "serde",
  "shellexpand",
  "thiserror",
@@ -2762,9 +2778,9 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-grpc"
-version = "0.8.4"
+version = "0.10.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb755cd59b1b3ce99abe52ff6898ad74ca26463e94300c103cafaac4f345c4f3"
+checksum = "b6224aeaaafb92d44439a398a03b042889edacbe23a115cfb1ff1e17c80c8bf2"
 dependencies = [
  "backoff",
  "http",
@@ -2795,9 +2811,9 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-openapi"
-version = "0.9.4"
+version = "0.11.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "008d06c4051dd4b3e7d5b6c1f31457c68384f8f36b05b304de6059bbd81c6128"
+checksum = "c5107bbd313d31d1eede8dec2bc9c69e0aa50ffc6207457bb4d8c3ab3cb32434"
 dependencies = [
  "anyhow",
  "qcs-api-client-common",
@@ -2815,7 +2831,7 @@ dependencies = [
 
 [[package]]
 name = "qcs-sdk-python"
-version = "0.19.3"
+version = "0.20.1"
 dependencies = [
  "async-trait",
  "numpy",
@@ -2823,9 +2839,10 @@ dependencies = [
  "opentelemetry 0.23.0",
  "opentelemetry_sdk 0.23.0",
  "paste",
+ "prost",
  "pyo3",
  "pyo3-asyncio",
- "pyo3-build-config",
+ "pyo3-build-config 0.20.3",
  "pyo3-log",
  "pyo3-opentelemetry",
  "pyo3-tracing-subscriber",
@@ -2835,7 +2852,7 @@ dependencies = [
  "qcs-api-client-grpc",
  "qcs-api-client-openapi",
  "quil-rs",
- "rigetti-pyo3",
+ "rigetti-pyo3 0.4.1",
  "serde_json",
  "thiserror",
  "tokio",
@@ -2850,8 +2867,8 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quil-rs"
-version = "0.27.1"
-source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.11.1#ab5b976573b38f3ba2605f57482ccadb1f13bf30"
+version = "0.28.1"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.12.1#a0f2776893d3ce33eb9f29449f3b4b0e9ed24174"
 dependencies = [
  "approx",
  "indexmap 2.2.6",
@@ -3100,6 +3117,19 @@ dependencies = [
 ]
 
 [[package]]
+name = "rigetti-pyo3"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f924032d36104a859f936762576a9e6fc0811b37a1f4a8144c0b9b25ee89607b"
+dependencies = [
+ "num-complex",
+ "num-traits",
+ "paste",
+ "pyo3",
+ "time",
+]
+
+[[package]]
 name = "ring"
 version = "0.16.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index b0d4808f9e0c3..4d0d1ffe38c7c 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -8,6 +8,7 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
+  qcs-api-client-common,
   quil,
   rustPlatform,
   darwin,
@@ -17,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "qcs-sdk-python";
-  version = "0.19.3";
+  version = "0.20.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,13 +27,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-sdk-rust";
     rev = "python/v${version}";
-    hash = "sha256-TyXUkuiYdz6Z6s96DD33QdEuI0ch4hRjUGWahEBpkX4=";
+    hash = "sha256-OuFEygZWfNnhRDLeEY10gGYD9EF5LkPd+K3Uu8X0hwY=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "quil-rs-0.27.1" = "sha256-w97kkdwRnVVfKNTIKypl3shFQJV5Rh/kF6jp7jCiyqw=";
+      "quil-rs-0.28.1" = "sha256-nyKLBL5Q51u2OTkpr9oKb0c5saWeW3wmZC3g7vxyeEQ=";
     };
   };
 
@@ -43,7 +44,10 @@ buildPythonPackage rec {
     rustPlatform.maturinBuildHook
   ];
 
-  dependencies = [ quil ];
+  dependencies = [
+    qcs-api-client-common
+    quil
+  ];
 
   optional-dependencies = {
     tracing-opentelemetry = [ opentelemetry-api ];
diff --git a/pkgs/development/python-modules/qds-sdk/default.nix b/pkgs/development/python-modules/qds-sdk/default.nix
deleted file mode 100644
index 34876b7aaa856..0000000000000
--- a/pkgs/development/python-modules/qds-sdk/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchFromGitHub,
-  setuptools,
-  boto,
-  inflection,
-  requests,
-  six,
-  urllib3,
-  mock,
-  pytestCheckHook,
-}:
-
-buildPythonPackage rec {
-  pname = "qds-sdk";
-  version = "1.16.1";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "qubole";
-    repo = "qds-sdk-py";
-    rev = "refs/tags/V${version}";
-    hash = "sha256-8aPIE2E3Fy2EiBM2FPRyjnJolIBdOzafI3Fvlod5hxU=";
-  };
-
-  nativeBuildInputs = [ setuptools ];
-
-  propagatedBuildInputs = [
-    boto
-    inflection
-    requests
-    six
-    urllib3
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    mock
-  ];
-
-  pythonImportsCheck = [ "qds_sdk" ];
-
-  meta = with lib; {
-    description = "Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
-    homepage = "https://github.com/qubole/qds-sdk-py";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ shahrukh330 ];
-    mainProgram = "qds.py";
-  };
-}
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index c1cd530a21684..79f6a4c6ed068 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "quil";
-  version = "0.11.4";
+  version = "0.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,13 +22,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "quil-rs";
     rev = "quil-py/v${version}";
-    hash = "sha256-I8LV7lqJP2xc8eVxMbixeHMRYiTpmpSahfA3WWRjoHA=";
+    hash = "sha256-OCQp8WKOxyZNMu2waeasSZ4E8VhFqDZcgGbDoMpKeHg=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-U9AVJ4i9E0TeG5cPxdx9hJcMKkZvUXcRfZF7VkM7ddI=";
+    hash = "sha256-EmSDjheLEyFr0w6XOvJYdRmGGlv2L/wh3qAN8Nn5lyg=";
   };
 
   buildAndTestSubdir = "quil-py";
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index 4e236beb99d78..fd4d306c1c82c 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.9.9";
+  version = "0.9.10";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-Zv81F7EvukrmA2uLFizJX6EIH4OBJICC7H9k8EtIumI=";
+    hash = "sha256-wN2rWoRuxP5uLl2TkSnxlEwl29z6C8dDo9UkJ7amExo=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/reportengine/default.nix b/pkgs/development/python-modules/reportengine/default.nix
deleted file mode 100644
index ec88a805dd736..0000000000000
--- a/pkgs/development/python-modules/reportengine/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  flit,
-  jinja2,
-  ruamel-yaml,
-  matplotlib,
-  pandas,
-  pandoc,
-  pygments,
-  blessings,
-  curio,
-  hypothesis,
-  pytestCheckHook,
-}:
-
-buildPythonPackage rec {
-  pname = "reportengine";
-  version = "0.31";
-  format = "pyproject";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-jrt+ml8o1PUidV1bY0hCyNgcPaVTBloW574/i5Pl7iE=";
-  };
-
-  nativeBuildInputs = [ flit ];
-
-  propagatedBuildInputs = [
-    jinja2
-    ruamel-yaml
-    matplotlib
-    pandas
-    pygments
-    blessings
-    curio
-  ];
-
-  nativeCheckInputs = [
-    hypothesis
-    pandoc
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [ "reportengine" ];
-
-  meta = with lib; {
-    description = "Framework for declarative data analysis";
-    homepage = "https://github.com/NNPDF/reportengine/";
-    license = with licenses; [ gpl2Only ];
-    maintainers = with maintainers; [ veprbl ];
-    # Incompatibility with ruamel >= 0.18
-    # https://github.com/NNPDF/reportengine/issues/60
-    broken = versionAtLeast ruamel-yaml.version "0.18";
-  };
-}
diff --git a/pkgs/development/python-modules/restfly/default.nix b/pkgs/development/python-modules/restfly/default.nix
index e7cb1dcbf694d..3cdb15c0044de 100644
--- a/pkgs/development/python-modules/restfly/default.nix
+++ b/pkgs/development/python-modules/restfly/default.nix
@@ -3,36 +3,43 @@
   arrow,
   buildPythonPackage,
   fetchFromGitHub,
+  pytest-cov-stub,
   pytest-datafiles,
   pytest-vcr,
   pytestCheckHook,
   python-box,
   pythonOlder,
-  responses,
   requests,
+  responses,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "restfly";
-  version = "1.4.7";
-  format = "setuptools";
+  version = "1.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "stevemcgrath";
-    repo = pname;
-    rev = version;
-    hash = "sha256-PPXJHatJKve9fIjveVYRnTSIDHFmnSDWTnkgO91twJs=";
+    repo = "restfly";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Zdn/hUvAZ9TaAWyDpNiEiA9mYDbWmiXBUa+IV/g8n2M=";
   };
 
-  propagatedBuildInputs = [
-    requests
+  build-system = [ setuptools ];
+
+  dependencies = [
     arrow
     python-box
+    requests
+    typing-extensions
   ];
 
   nativeCheckInputs = [
+    pytest-cov-stub
     pytest-datafiles
     pytest-vcr
     pytestCheckHook
@@ -49,7 +56,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python RESTfly API Library Framework";
     homepage = "https://github.com/stevemcgrath/restfly";
-    license = with licenses; [ mit ];
+    changelog = "https://github.com/librestfly/restfly/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/ronin/default.nix b/pkgs/development/python-modules/ronin/default.nix
deleted file mode 100644
index 63d6d419cf14f..0000000000000
--- a/pkgs/development/python-modules/ronin/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  fetchPypi,
-  blessings,
-  colorama,
-  glob2,
-}:
-
-buildPythonPackage rec {
-  pname = "ronin";
-  version = "1.1.1";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit version pname;
-    hash = "sha256-5gZ8S0NR4JzKBIdi/xYtVmFg9ObbCSkT7sz+OKWnK/U=";
-  };
-
-  propagatedBuildInputs = [
-    blessings
-    colorama
-    glob2
-  ];
-
-  pythonImportsCheck = [ "ronin" ];
-
-  meta = with lib; {
-    homepage = "https://github.com/tliron/ronin/";
-    description = "Straightforward but powerful build system based on Ninja and Python";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ AndersonTorres ];
-  };
-}
diff --git a/pkgs/development/python-modules/rx/default.nix b/pkgs/development/python-modules/rx/default.nix
index 9bbac4b45437b..3102568bcb82c 100644
--- a/pkgs/development/python-modules/rx/default.nix
+++ b/pkgs/development/python-modules/rx/default.nix
@@ -3,13 +3,14 @@
   fetchPypi,
   buildPythonPackage,
   pythonOlder,
-  nose,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "rx";
   version = "3.2.0";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.6";
 
   # Use fetchPypi to avoid the updater script to migrate it to `reactivex` which
@@ -20,12 +21,9 @@ buildPythonPackage rec {
     sha256 = "b657ca2b45aa485da2f7dcfd09fac2e554f7ac51ff3c2f8f2ff962ecd963d91c";
   };
 
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
 
-  # Some tests are nondeterministic. (`grep sleep -r tests`)
-  # test_timeout_schedule_action_cancel: https://hydra.nixos.org/build/74954646
-  # test_new_thread_scheduler_timeout: https://hydra.nixos.org/build/74949851
-  doCheck = false;
+  doCheck = false; # PyPI tarball does not provides tests
 
   pythonImportsCheck = [ "rx" ];
 
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index ce57cb147a309..2f4c2d0f00819 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.33.0";
+  version = "3.33.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-S41OyTyFjEfKvTlKwxHq7P/uzWreMIHimI6pECItTzo=";
+    hash = "sha256-OcGzpYwa8Ouf1ojQS9KnqlL37EYCZo5yjNeXXrkd0B4=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sqlalchemy/1_4.nix b/pkgs/development/python-modules/sqlalchemy/1_4.nix
index 45664292350cf..b741a7710c560 100644
--- a/pkgs/development/python-modules/sqlalchemy/1_4.nix
+++ b/pkgs/development/python-modules/sqlalchemy/1_4.nix
@@ -36,21 +36,18 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy";
-  version = "1.4.53";
+  version = "1.4.54";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "sqlalchemy";
     repo = "sqlalchemy";
     rev = "rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-CpFvL0W/X7/4N/FpufAdud5o11LHBuox8m+8EailqXg=";
+    hash = "sha256-6qAjyqMVrugABHssAQuql3z1YHTAOSm5hARJuJXJJvo=";
   };
 
   postPatch = ''
     sed -i '/tag_build = dev/d' setup.cfg
-
-    substituteInPlace pyproject.toml \
-      --replace-fail "setuptools>=44,<69.3" "setuptools"
   '';
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/svg-py/default.nix b/pkgs/development/python-modules/svg-py/default.nix
index b59d23c539a07..30396791e8761 100644
--- a/pkgs/development/python-modules/svg-py/default.nix
+++ b/pkgs/development/python-modules/svg-py/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "svg-py";
-  version = "1.4.3";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "orsinium-labs";
     repo = "svg.py";
     rev = "refs/tags/${version}";
-    hash = "sha256-rnxznJM3ihuEJrD3ba6uMdGMozIrLw/QyGzA3JPygH4=";
+    hash = "sha256-Lxzk3IVCD4PG36Pozz2crccwxCAAAM2QfS4rgwbjs6g=";
   };
 
   nativeBuildInputs = [ flit-core ];
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index cb1b5724f8000..94d272b429d76 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1235";
+  version = "3.0.1237";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-OiifyoM9rMnLK3B/xdC/0grSLUKH1IZh4CDI1Yur3/8=";
+    hash = "sha256-5pzdj+Es0JunISOCID5KJ+cR42EjD+c0Pt/B9dVJw2k=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index edde349d41253..bb85250daebfa 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -8,22 +8,25 @@
   numpy,
   pytestCheckHook,
   pythonOlder,
+  setuptools,
   zarr,
 }:
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2024.6.18";
-  format = "setuptools";
+  version = "2024.9.20";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-V+DSoDS8tih+oxVdhxZQjfrIZEOiV/ZQK1fuf4ozs7Y=";
+    hash = "sha256-P7874vmVpwUaiuBaS+cMlvwHifIu1vHEEEyXPPaKZAs=";
   };
 
-  propagatedBuildInputs = [ numpy ];
+  build-system = [ setuptools ];
+
+  dependencies = [ numpy ];
 
   nativeCheckInputs = [
     dask
diff --git a/pkgs/development/python-modules/ttfautohint-py/default.nix b/pkgs/development/python-modules/ttfautohint-py/default.nix
index 60ded9cc82ddf..98358555eed62 100644
--- a/pkgs/development/python-modules/ttfautohint-py/default.nix
+++ b/pkgs/development/python-modules/ttfautohint-py/default.nix
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ttfautohint" ];
 
   meta = {
-    description = "Command line utility and Python library that merges two UFO source format fonts into a single file";
+    description = "Python wrapper for ttfautohint, a free auto-hinter for TrueType fonts";
     homepage = "https://github.com/fonttools/ttfautohint-py";
     changelog = "https://github.com/fonttools/ttfautohint-py/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/ufmt/default.nix b/pkgs/development/python-modules/ufmt/default.nix
index 9ee19bff8eab8..d8e3492614184 100644
--- a/pkgs/development/python-modules/ufmt/default.nix
+++ b/pkgs/development/python-modules/ufmt/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "ufmt";
-  version = "2.7.2";
+  version = "2.7.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "omnilib";
     repo = "ufmt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nWdGaW/RlU6kV2ORKpVuJ634QoemhZR2zdcOOO1W9Wk=";
+    hash = "sha256-hXCOsetw5o3V9NCR0TOfYSFyfBnuOOZDMiUd/6ER9WU=";
   };
 
   build-system = [ flit-core ];
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index 70113a9ed04ed..afa02b4477398 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -57,7 +57,7 @@
   grpcio,
 }:
 let
-  version = "0.15.10";
+  version = "0.15.13";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -100,7 +100,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-Wgv7IcyYuOICYZDmj/jdkpSHx53ZXCR06952GmVEGOY=";
+    hash = "sha256-DbOuNh+p+4vsEO6AQUeMq25RTLm5Zn9FyzcTKJedbTM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/validphys2/default.nix b/pkgs/development/python-modules/validphys2/default.nix
deleted file mode 100644
index fd408820a2d72..0000000000000
--- a/pkgs/development/python-modules/validphys2/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{
-  lib,
-  buildPythonPackage,
-  lhapdf,
-  nnpdf,
-  prompt-toolkit,
-  reportengine,
-  requests,
-  seaborn,
-  validobj,
-}:
-
-buildPythonPackage rec {
-  pname = "validphys2";
-  version = "4.0";
-  format = "setuptools";
-
-  inherit (nnpdf) src;
-
-  prePatch = ''
-    cd validphys2
-  '';
-
-  postPatch = ''
-    substituteInPlace src/validphys/version.py \
-      --replace '= __give_git()' '= "'$version'"'
-  '';
-
-  propagatedBuildInputs = [
-    lhapdf
-    nnpdf
-    prompt-toolkit
-    reportengine
-    requests
-    seaborn
-    validobj
-  ];
-
-  doCheck = false; # no tests
-  pythonImportsCheck = [ "validphys" ];
-
-  meta = with lib; {
-    description = "NNPDF analysis framework";
-    homepage = "https://data.nnpdf.science/validphys-docs/guide.html";
-    inherit (nnpdf.meta) license;
-    maintainers = with maintainers; [ veprbl ];
-  };
-}
diff --git a/pkgs/development/python-modules/weheat/default.nix b/pkgs/development/python-modules/weheat/default.nix
index 00bdac870ffa1..a8f42433894ab 100644
--- a/pkgs/development/python-modules/weheat/default.nix
+++ b/pkgs/development/python-modules/weheat/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "weheat";
-  version = "2024.09.10";
+  version = "2024.09.23";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "wefabricate";
     repo = "wh-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-D9m9IR5RTRphIgDX25izkbAHeLml9AYL6xdH46ryqaI=";
+    hash = "sha256-egxc4gJaFIjbdvDVmenN61Rsg1NmlJSqxdG/7con9mU=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index 81bf772611f38..660f520c246bb 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "xmlschema";
-  version = "3.4.1";
+  version = "3.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ypyBBo00ZjYRvljn/eGaTxMViHzgoxq5IoNclWb7ghA=";
+    hash = "sha256-0x8nk8F+kg5SSDQI4dOnv67ilyN4z2MZ5phPC3PW4WQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/tools/analysis/smatch/default.nix b/pkgs/development/tools/analysis/smatch/default.nix
deleted file mode 100644
index ef5b3ab2d1d59..0000000000000
--- a/pkgs/development/tools/analysis/smatch/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, pkg-config
-, sqlite
-, openssl
-, buildllvmsparse ? false
-, buildc2xml ? false
-, libllvm
-, libxml2
-}:
-
-stdenv.mkDerivation rec {
-  pname = "smatch";
-  version = "1.73";
-
-  src = fetchFromGitHub {
-    owner = "error27";
-    repo = "smatch";
-    rev = version;
-    sha256 = "sha256-Pv3bd2cjnQKnhH7TrkYWfDEeaq6u/q/iK1ZErzn6bME=";
-  };
-
-  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isClang [
-    "-Wno-incompatible-function-pointer-types"
-  ];
-
-  nativeBuildInputs = [ pkg-config ];
-
-  buildInputs = [ sqlite openssl ]
-    ++ lib.optionals buildllvmsparse [ libllvm ]
-    ++ lib.optionals buildc2xml [ libxml2.dev ];
-
-  makeFlags = [ "PREFIX=${placeholder "out"}" "CXX=${stdenv.cc.targetPrefix}c++" ];
-
-  meta = with lib; {
-    description = "Semantic analysis tool for C";
-    homepage = "https://sparse.docs.kernel.org/";
-    maintainers = [ ];
-    license = licenses.gpl2Plus;
-    platforms = platforms.all;
-  };
-}
diff --git a/pkgs/development/tools/aws-sam-cli/default.nix b/pkgs/development/tools/aws-sam-cli/default.nix
index 73a1e5cc7c313..bc28ff15db2e7 100644
--- a/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/pkgs/development/tools/aws-sam-cli/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, python3
-, fetchFromGitHub
-, git
-, testers
-, aws-sam-cli
-, nix-update-script
-, enableTelemetry ? false
+{
+  lib,
+  python3,
+  fetchFromGitHub,
+  git,
+  testers,
+  aws-sam-cli,
+  nix-update-script,
+  enableTelemetry ? false,
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -13,8 +14,6 @@ python3.pkgs.buildPythonApplication rec {
   version = "1.120.0";
   pyproject = true;
 
-  disabled = python3.pythonOlder "3.8";
-
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-sam-cli";
@@ -22,9 +21,7 @@ python3.pkgs.buildPythonApplication rec {
     hash = "sha256-XFVh7e9ooIBhWRkVovPdrSuyosBMQ84PDRjV2o0x9ns=";
   };
 
-  build-system = with python3.pkgs; [
-    setuptools
-  ];
+  build-system = with python3.pkgs; [ setuptools ];
 
   pythonRelaxDeps = [
     "aws-lambda-builders"
@@ -43,44 +40,47 @@ python3.pkgs.buildPythonApplication rec {
     "watchdog"
   ];
 
-  dependencies = with python3.pkgs; [
-    aws-lambda-builders
-    aws-sam-translator
-    boto3
-    boto3-stubs
-    cfn-lint
-    chevron
-    click
-    cookiecutter
-    dateparser
-    docker
-    flask
-    jsonschema
-    pyopenssl
-    pyyaml
-    requests
-    rich
-    ruamel-yaml
-    tomlkit
-    typing-extensions
-    tzlocal
-    watchdog
-  ] ++ (with python3.pkgs.boto3-stubs.optional-dependencies; [
-    apigateway
-    cloudformation
-    ecr
-    iam
-    kinesis
-    lambda
-    s3
-    schemas
-    secretsmanager
-    signer
-    sqs
-    stepfunctions
-    sts
-    xray
-  ]);
+  dependencies =
+    with python3.pkgs;
+    [
+      aws-lambda-builders
+      aws-sam-translator
+      boto3
+      boto3-stubs
+      cfn-lint
+      chevron
+      click
+      cookiecutter
+      dateparser
+      docker
+      flask
+      jsonschema
+      pyopenssl
+      pyyaml
+      requests
+      rich
+      ruamel-yaml
+      tomlkit
+      typing-extensions
+      tzlocal
+      watchdog
+    ]
+    ++ (with python3.pkgs.boto3-stubs.optional-dependencies; [
+      apigateway
+      cloudformation
+      ecr
+      iam
+      kinesis
+      lambda
+      s3
+      schemas
+      secretsmanager
+      signer
+      sqs
+      stepfunctions
+      sts
+      xray
+    ]);
 
   postFixup = ''
     # Disable telemetry: https://github.com/aws/aws-sam-cli/issues/1272
@@ -92,6 +92,7 @@ python3.pkgs.buildPythonApplication rec {
   nativeCheckInputs = with python3.pkgs; [
     filelock
     flaky
+    jaraco-text
     parameterized
     psutil
     pytest-timeout
@@ -133,9 +134,7 @@ python3.pkgs.buildPythonApplication rec {
     "test_import_should_succeed_for_a_defined_hidden_package_540_pkg_resources_py2_warn"
   ];
 
-  pythonImportsCheck = [
-    "samcli"
-  ];
+  pythonImportsCheck = [ "samcli" ];
 
   passthru = {
     tests.version = testers.testVersion {
@@ -143,7 +142,10 @@ python3.pkgs.buildPythonApplication rec {
       command = "sam --version";
     };
     updateScript = nix-update-script {
-      extraArgs = [ "--version-regex" "^v([0-9.]+)$" ];
+      extraArgs = [
+        "--version-regex"
+        "^v([0-9.]+)$"
+      ];
     };
   };
 
@@ -155,6 +157,9 @@ python3.pkgs.buildPythonApplication rec {
     changelog = "https://github.com/aws/aws-sam-cli/releases/tag/v${version}";
     license = licenses.asl20;
     mainProgram = "sam";
-    maintainers = with maintainers; [ lo1tuma anthonyroussel ];
+    maintainers = with maintainers; [
+      lo1tuma
+      anthonyroussel
+    ];
   };
 }
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index b278c4d6807ae..bfc3b39c158c9 100644
--- a/pkgs/development/tools/doctl/default.nix
+++ b/pkgs/development/tools/doctl/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.112.0";
+  version = "1.114.0";
 
   vendorHash = null;
 
@@ -31,7 +31,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-+s5kxP79ZWpJsm6yk26jLGSPJ3GkToPXfl2tX+a1A1U=";
+    sha256 = "sha256-E+/rfOpUDBvHaVVN7xhhcFd1W1X6cSEWpxjqoKoQR80=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/dump_syms/default.nix b/pkgs/development/tools/dump_syms/default.nix
index 631051ee3a2d1..61d323d83274e 100644
--- a/pkgs/development/tools/dump_syms/default.nix
+++ b/pkgs/development/tools/dump_syms/default.nix
@@ -17,7 +17,7 @@
 
 let
   pname = "dump_syms";
-  version = "2.3.3";
+  version = "2.3.4";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
@@ -26,10 +26,10 @@ rustPlatform.buildRustPackage {
     owner = "mozilla";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-pZlWA7LZeMb+ZhnfQh9MzvDDlre1kkPc6aSVNZcVi/w=";
+    hash = "sha256-6VDuZ5rw2N4z6wOVbaOKO6TNaq8QA5RstsIzmuE3QrI=";
   };
 
-  cargoHash = "sha256-srphb7jFSJB08hSShk3f5QYPoYu8UwbUzkzn0zpMqyg=";
+  cargoHash = "sha256-ndRw5z4CfuX0KNqNgpA4yohG8p/cUR/Op2fIunuO6GM=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/development/tools/electron/binary/info.json b/pkgs/development/tools/electron/binary/info.json
index 89308480266e7..8aa43f8213e5a 100644
--- a/pkgs/development/tools/electron/binary/info.json
+++ b/pkgs/development/tools/electron/binary/info.json
@@ -64,5 +64,16 @@
             "x86_64-linux": "9b95e66cb4d55bb632e37bcb6083992a5d665f0b378466a771a2948c1aab57b7"
         },
         "version": "31.4.0"
+    },
+    "32": {
+        "hashes": {
+            "aarch64-darwin": "b0e04b765702c35341e587e41b01eb9bcb1233953ab243a0c82e9555c04b269b",
+            "aarch64-linux": "1bf3b53cba77e070fb0da4b32540fedc29586b2111700b897fd62e3577708d53",
+            "armv7l-linux": "6e52f9fd163e54cb482354645dc32d42b24c6624bbb8927d194dbbb9eaf92959",
+            "headers": "0gw7yvj9i3kwmxbjj6w4l442saac3pcn3g7m42kvbpbwbfds1h4d",
+            "x86_64-darwin": "e3bb68b37e723af4aab8d9694661e5e9ecbe7b1fbc253fe263940dafffd66864",
+            "x86_64-linux": "5a9980bc3c80d1d2af0965eba2bc3c0f532b4ccc29194a595cefdd4dbe98e7dc"
+        },
+        "version": "32.1.1"
     }
 }
diff --git a/pkgs/development/tools/electron/chromedriver/info.json b/pkgs/development/tools/electron/chromedriver/info.json
index 213bc53abf74c..f80b67c66eaf7 100644
--- a/pkgs/development/tools/electron/chromedriver/info.json
+++ b/pkgs/development/tools/electron/chromedriver/info.json
@@ -34,13 +34,13 @@
     },
     "32": {
         "hashes": {
-            "aarch64-darwin": "8f40b497d21a8b7d2b3df168b1cf4311f6a39acab241f05ffee0dad6409e0801",
-            "aarch64-linux": "f92df0fafdf1be14d38a4ed4b1555f71c922ab3c096148c71aef8a46f95e0127",
-            "armv7l-linux": "f8c170268d348411fa5d27642327305aeca539459615a5e7648484728f4e0eed",
-            "headers": "01wwikj54d3fm6bsz9z61dcl7d5mzbk48mcaycrbmq1rg0h0kk5a",
-            "x86_64-darwin": "5efdf72e580336e91d6d696dab79ab9b932a2eaf91ff4da744b63da24f8288ca",
-            "x86_64-linux": "f48ca709758744f6c1ab5062444405c1416c27b57143707bfea321116f641cec"
+            "aarch64-darwin": "3fff987133294dcc18420500292bdfc32b452cfcf72f2e89af96404aa566aa27",
+            "aarch64-linux": "cfd75fdd5ec2bc86483b0779f241f98f775b74e4b75407a08b3755103304421a",
+            "armv7l-linux": "469d23434bca0f8bd4def7d3d9d3e9ff30dfa29e65450bac88cbbc0ae1ffc09c",
+            "headers": "0gw7yvj9i3kwmxbjj6w4l442saac3pcn3g7m42kvbpbwbfds1h4d",
+            "x86_64-darwin": "2b0e23c214580716dbeedd7b6bccc2b8994cbaa7827fa34208ed22ccb4ccdf77",
+            "x86_64-linux": "5d824770f97216138a209f268fbcab3de64bc967046ed9ad92ec0059abef184f"
         },
-        "version": "32.1.0"
+        "version": "32.1.1"
     }
 }
diff --git a/pkgs/development/tools/electron/info.json b/pkgs/development/tools/electron/info.json
index 1bef706fa16fd..d7af407e417be 100644
--- a/pkgs/development/tools/electron/info.json
+++ b/pkgs/development/tools/electron/info.json
@@ -1856,5 +1856,946 @@
         "modules": "125",
         "node": "20.16.0",
         "version": "31.4.0"
+    },
+    "32": {
+        "chrome": "128.0.6613.137",
+        "chromium": {
+            "deps": {
+                "gn": {
+                    "hash": "sha256-BiMGbML5aNUt4JzzVqSszBj+8BMlEc92csNugo5qjUk=",
+                    "rev": "b2afae122eeb6ce09c52d63f67dc53fc517dbdc8",
+                    "url": "https://gn.googlesource.com/gn",
+                    "version": "2024-06-11"
+                }
+            },
+            "version": "128.0.6613.137"
+        },
+        "chromium_npm_hash": "sha256-OBUYgjfoEZly8JLTtprfU+hlKNFSnHLheaVWhrirGJk=",
+        "deps": {
+            "src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-H+C79mGXUaDYcDoJz25iobN3xWUJz6OplleJlTX3ilg=",
+                "postFetch": "rm -r $out/third_party/blink/web_tests; rm -r $out/third_party/hunspell/tests; rm -r $out/content/test/data; rm -r $out/courgette/testdata; rm -r $out/extensions/test/data; rm -r $out/media/test/data; ",
+                "rev": "128.0.6613.137",
+                "url": "https://chromium.googlesource.com/chromium/src.git"
+            },
+            "src/chrome/test/data/perf/canvas_bench": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-svOuyBGKloBLM11xLlWCDsB4PpRjdKTBdW2UEW4JQjM=",
+                "rev": "a7b40ea5ae0239517d78845a5fc9b12976bfc732",
+                "url": "https://chromium.googlesource.com/chromium/canvas_bench.git"
+            },
+            "src/chrome/test/data/perf/frame_rate/content": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-t4kcuvH0rkPBkcdiMsoNQaRwU09eU+oSvyHDiAHrKXo=",
+                "rev": "c10272c88463efeef6bb19c9ec07c42bc8fe22b9",
+                "url": "https://chromium.googlesource.com/chromium/frame_rate/content.git"
+            },
+            "src/chrome/test/data/xr/webvr_info": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-BsAPwc4oEWri0TlqhyxqFNqKdfgVSrB0vQyISmYY4eg=",
+                "rev": "c58ae99b9ff9e2aa4c524633519570bf33536248",
+                "url": "https://chromium.googlesource.com/external/github.com/toji/webvr.info.git"
+            },
+            "src/docs/website": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-6pM0P5zXJQXNSQ7MaXSKEHfb7KmtztfhlNlS+i8ugD4=",
+                "rev": "82c1d3e5b812b35df1cb6a031f59616dc594d4f7",
+                "url": "https://chromium.googlesource.com/website.git"
+            },
+            "src/electron": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-OErkW4OrDU9WJd8iqWAUZZ5qR4vuX+laLzwTt5OMrOc=",
+                "owner": "electron",
+                "repo": "electron",
+                "rev": "v32.1.1"
+            },
+            "src/media/cdm/api": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-6J6aSYW0or99VAgMNJJOdJqMJspoG7w1HxDN50MV5bw=",
+                "rev": "fef0b5aa1bd31efb88dfab804bdbe614f3d54f28",
+                "url": "https://chromium.googlesource.com/chromium/cdm.git"
+            },
+            "src/net/third_party/quiche/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-bFe79wg+PHRphP6I5q2wRheGTUARKx0zjyn3LxCie0s=",
+                "rev": "aecfea159d58ef53bd690688e4aca512fc4a3d35",
+                "url": "https://quiche.googlesource.com/quiche.git"
+            },
+            "src/testing/libfuzzer/fuzzers/wasm_corpus": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-qWsGQNUptbz0jYvUuxP7woNf5QQrfn9k3uvr82Yk0QM=",
+                "rev": "f650ff816f2ef227f61ea2e9f222aa69708ab367",
+                "url": "https://chromium.googlesource.com/v8/fuzzer_wasm_corpus.git"
+            },
+            "src/third_party/accessibility_test_framework/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-mzVgoxxBWebesG6okyMxxmO6oH+TITA4o9ucHHMMzkQ=",
+                "rev": "4a764c690353ea136c82f1a696a70bf38d1ef5fe",
+                "url": "https://chromium.googlesource.com/external/github.com/google/Accessibility-Test-Framework-for-Android.git"
+            },
+            "src/third_party/angle": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-YV7RIbGq3zcnl4ZXJndjqbaPPDxCOzPJ87aH672mNq0=",
+                "rev": "713102774487cf1a8b3f433529eb8181cbcec31a",
+                "url": "https://chromium.googlesource.com/angle/angle.git"
+            },
+            "src/third_party/angle/third_party/VK-GL-CTS/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-haO6KT+VbG/d2FljtsoJT7xghPTeEY5GPJdh2s9faVs=",
+                "rev": "5b2dfe7c775aa7b7909432944ba3535abcd25fc9",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/VK-GL-CTS"
+            },
+            "src/third_party/angle/third_party/glmark2/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-L7+zWM0qn8WFhmON7DGvarTsN1YHt1sn5+hazTOZrrk=",
+                "rev": "ca8de51fedb70bace5351c6b002eb952c747e889",
+                "url": "https://chromium.googlesource.com/external/github.com/glmark2/glmark2"
+            },
+            "src/third_party/angle/third_party/rapidjson/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-btUl1a/B0sXwf/+hyvCvVJjWqIkXfVYCpHm3TeBuOxk=",
+                "rev": "781a4e667d84aeedbeb8184b7b62425ea66ec59f",
+                "url": "https://chromium.googlesource.com/external/github.com/Tencent/rapidjson"
+            },
+            "src/third_party/anonymous_tokens/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-o/9lOnPR6vT0pkqWgenfyh9nI5Qoxyd030MNTfcoRSc=",
+                "rev": "76bfcccb6418239183df55111f2f24782d9f3680",
+                "url": "https://chromium.googlesource.com/external/github.com/google/anonymous-tokens.git"
+            },
+            "src/third_party/beto-core/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-E2oaN2nbqG21qFhUtatsbXwC8KhoQadvU6BmYxF2lgs=",
+                "rev": "08537fdd2b0990270ea0214a61dfd318f293bc15",
+                "url": "https://beto-core.googlesource.com/beto-core.git"
+            },
+            "src/third_party/boringssl/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-jZ9T5/6t1ImeCDBAMzW0aSmT/NcLxbESYv/F+cBjIFY=",
+                "rev": "f01108e4761e1d4189cb134322c3cb01dc71ef87",
+                "url": "https://boringssl.googlesource.com/boringssl.git"
+            },
+            "src/third_party/breakpad/breakpad": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-QuMzYywRDzbwZHJrz/Gm/W6kclvBImRZCnGq8AbTxUY=",
+                "rev": "81819541a78c49e9109d2267462775e801f89ce6",
+                "url": "https://chromium.googlesource.com/breakpad/breakpad.git"
+            },
+            "src/third_party/cast_core/public/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-AalRQhJmornCqmvE2+36J/3LubaA0jr6P1PXy32lX4I=",
+                "rev": "71f51fd6fa45fac73848f65421081edd723297cd",
+                "url": "https://chromium.googlesource.com/cast_core/public"
+            },
+            "src/third_party/catapult": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-LIPOcMBxugyuYJ7IE1VszqLAWBBR58Ozy9VCRqVL208=",
+                "rev": "523ebded2f72a446544e2d9271ef39857f4e6ae7",
+                "url": "https://chromium.googlesource.com/catapult.git"
+            },
+            "src/third_party/ced/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-ySG74Rj2i2c/PltEgHVEDq+N8yd9gZmxNktc56zIUiY=",
+                "rev": "ba412eaaacd3186085babcd901679a48863c7dd5",
+                "url": "https://chromium.googlesource.com/external/github.com/google/compact_enc_det.git"
+            },
+            "src/third_party/chromium-variations": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-E6deeWYQt2BxT+9Zb2VSXvZWCQI64Kf1dzUYAZJVA2s=",
+                "rev": "c134de595151ae72a112767e22da4448eb50e57f",
+                "url": "https://chromium.googlesource.com/chromium-variations.git"
+            },
+            "src/third_party/clang-format/script": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-whD8isX2ZhLrFzdxHhFP1S/sZDRgyrzLFaVd7OEFqYo=",
+                "rev": "3c0acd2d4e73dd911309d9e970ba09d58bf23a62",
+                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/clang/tools/clang-format.git"
+            },
+            "src/third_party/cld_3/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-C3MOMBUy9jgkT9BAi/Fgm2UH4cxRuwSBEcRl3hzM2Ss=",
+                "rev": "b48dc46512566f5a2d41118c8c1116c4f96dc661",
+                "url": "https://chromium.googlesource.com/external/github.com/google/cld_3.git"
+            },
+            "src/third_party/colorama/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-6ZTdPYSHdQOLYMSnE+Tp7PgsVTs3U2awGu9Qb4Rg/tk=",
+                "rev": "3de9f013df4b470069d03d250224062e8cf15c49",
+                "url": "https://chromium.googlesource.com/external/colorama.git"
+            },
+            "src/third_party/content_analysis_sdk/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-f5Jmk1MiGjaRdLun+v/GKVl8Yv9hOZMTQUSxgiJalcY=",
+                "rev": "9a408736204513e0e95dd2ab3c08de0d95963efc",
+                "url": "https://chromium.googlesource.com/external/github.com/chromium/content_analysis_sdk.git"
+            },
+            "src/third_party/cpu_features/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-E8LoVzhe+TAmARWZTSuINlsVhzpUJMxPPCGe/dHZcyA=",
+                "rev": "936b9ab5515dead115606559502e3864958f7f6e",
+                "url": "https://chromium.googlesource.com/external/github.com/google/cpu_features.git"
+            },
+            "src/third_party/cpuinfo/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-UKy9TIiO/UJ5w+qLRlMd085CX2qtdVH2W3rtxB5r6MY=",
+                "rev": "ca678952a9a8eaa6de112d154e8e104b22f9ab3f",
+                "url": "https://chromium.googlesource.com/external/github.com/pytorch/cpuinfo.git"
+            },
+            "src/third_party/crabbyavif/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-vnFxeAu6NMY6TOb2+LvGbCyOLbVD9R+utl/nnnCWVks=",
+                "rev": "716408df5cb6d43ebe31cb24194979b81a83b03c",
+                "url": "https://chromium.googlesource.com/external/github.com/webmproject/CrabbyAvif.git"
+            },
+            "src/third_party/crc32c/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-urg0bmnfMfHagLPELp4WrNCz1gBZ6DFOWpDue1KsMtc=",
+                "rev": "fa5ade41ee480003d9c5af6f43567ba22e4e17e6",
+                "url": "https://chromium.googlesource.com/external/github.com/google/crc32c.git"
+            },
+            "src/third_party/cros-components/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-6XVrzfpQ8Rh99bCGbUkGd/zmFNgt4ZyRsyNvUkIfEyE=",
+                "rev": "39e57dd0d30ed019d6fb07c24b350f5fe78a1625",
+                "url": "https://chromium.googlesource.com/external/google3/cros_components.git"
+            },
+            "src/third_party/cros_system_api": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Wq6XYQYAWzy3AurVkLGofFF4avntKIPmx6L7vPW2c2Q=",
+                "rev": "86bdf11581c80f776bfdf54db7f39f930fd6abaf",
+                "url": "https://chromium.googlesource.com/chromiumos/platform2/system_api.git"
+            },
+            "src/third_party/crossbench": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-ICE5UkP91LHBT0vCpwKmdR+3ePnYcwnFroPUpJMKDvU=",
+                "rev": "b03a515f9e56280ecabfb254b188349d1a049827",
+                "url": "https://chromium.googlesource.com/crossbench.git"
+            },
+            "src/third_party/dav1d/libdav1d": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-SlHTLgqaVST4pRstuzSBZmMx87I9TJ1c0qhClvU2sjI=",
+                "rev": "2355eeb8f254a1c34dbb0241be5c70cdf6ed46d1",
+                "url": "https://chromium.googlesource.com/external/github.com/videolan/dav1d.git"
+            },
+            "src/third_party/dawn": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-6ljZh99QPH8/9JAV1tVm6BVAYsJWqkJjzlM2AG2m01g=",
+                "rev": "5f86f5a316f4e082b2419d8b954ebb79c2be590d",
+                "url": "https://dawn.googlesource.com/dawn.git"
+            },
+            "src/third_party/dawn/third_party/dxc": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-oIByfTUMy1EY3J0/m0iOqJbHd+DzpVAmZbaIdllcF04=",
+                "rev": "3ea0e7f6b5f464814d6b896eaf69cbd5ebe7fac4",
+                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectXShaderCompiler"
+            },
+            "src/third_party/dawn/third_party/dxheaders": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-0Miw1Cy/jmOo7bLFBOHuTRDV04cSeyvUEyPkpVsX9DA=",
+                "rev": "980971e835876dc0cde415e8f9bc646e64667bf7",
+                "url": "https://chromium.googlesource.com/external/github.com/microsoft/DirectX-Headers"
+            },
+            "src/third_party/dawn/third_party/glfw": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-E1zXIDiw87badrLOZTvV+Wh9NZHu51nb70ZK9vlAlqE=",
+                "rev": "b35641f4a3c62aa86a0b3c983d163bc0fe36026d",
+                "url": "https://chromium.googlesource.com/external/github.com/glfw/glfw"
+            },
+            "src/third_party/dawn/third_party/khronos/EGL-Registry": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Z6DwLfgQ1wsJXz0KKJyVieOatnDmx3cs0qJ6IEgSq1A=",
+                "rev": "7dea2ed79187cd13f76183c4b9100159b9e3e071",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/EGL-Registry"
+            },
+            "src/third_party/dawn/third_party/khronos/OpenGL-Registry": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-K3PcRIiD3AmnbiSm5TwaLs4Gu9hxaN8Y91WMKK8pOXE=",
+                "rev": "5bae8738b23d06968e7c3a41308568120943ae77",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/OpenGL-Registry"
+            },
+            "src/third_party/dawn/third_party/webgpu-cts": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-jDjxhMN+cXrf2+sCdp5GqhXuoO2EkoEijSx3PcYahpg=",
+                "rev": "5167b71635dfbfa5d4558de0da01923d446a5cd4",
+                "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts"
+            },
+            "src/third_party/dawn/third_party/webgpu-headers": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-J3PcwYoO79HqrACFgk77BZLTCi7oi5k2J6v3wlcFVD4=",
+                "rev": "8049c324dc7b3c09dc96ea04cb02860f272c8686",
+                "url": "https://chromium.googlesource.com/external/github.com/webgpu-native/webgpu-headers"
+            },
+            "src/third_party/depot_tools": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Tc3x10zkgOvOqMap0xwsFd7W2l8ZyA923C0RRgw+jp0=",
+                "rev": "31e21628c3a558d4f2189712e25849d608b3ff8c",
+                "url": "https://chromium.googlesource.com/chromium/tools/depot_tools.git"
+            },
+            "src/third_party/devtools-frontend/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-agqi21oQNixRF+foVECaf4MiDVQdA308sLIgLGKiwYI=",
+                "rev": "47f04a536265028feb1254a3663853e0ce526455",
+                "url": "https://chromium.googlesource.com/devtools/devtools-frontend"
+            },
+            "src/third_party/dom_distiller_js/dist": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-yuEBD2XQlV3FGI/i7lTmJbCqzeBiuG1Qow8wvsppGJw=",
+                "rev": "199de96b345ada7c6e7e6ba3d2fa7a6911b8767d",
+                "url": "https://chromium.googlesource.com/chromium/dom-distiller/dist.git"
+            },
+            "src/third_party/eigen3/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-qmFsmFEQCDH+TRFc8+5BsYAG1ybL08fWhn8NpM6H6xY=",
+                "rev": "33d0937c6bdf5ec999939fb17f2a553183d14a74",
+                "url": "https://chromium.googlesource.com/external/gitlab.com/libeigen/eigen.git"
+            },
+            "src/third_party/electron_node": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-fYx771gbZTsgEmHQf4mj3qSqmFHs8YVg4sVyUnfsmqI=",
+                "owner": "nodejs",
+                "repo": "node",
+                "rev": "v20.17.0"
+            },
+            "src/third_party/emoji-segmenter/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-oT9mAKoKnrsFsBAeTRfPOXM76HRQQabFAlPpfKUGFhs=",
+                "rev": "9ba6d25d0d9313569665d4a9d2b34f0f39f9a50e",
+                "url": "https://chromium.googlesource.com/external/github.com/google/emoji-segmenter.git"
+            },
+            "src/third_party/engflow-reclient-configs": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-aZXYPj9KYBiZnljqOLlWJWS396Fg3EhjiQLZmkwCBsY=",
+                "owner": "EngFlow",
+                "repo": "reclient-configs",
+                "rev": "955335c30a752e9ef7bff375baab5e0819b6c00d"
+            },
+            "src/third_party/expat/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-fr18LL/xX23t9TIn3q8jWdV9Y6coepbGsO3vJVdDW6k=",
+                "rev": "a59c3edffa54a77b8d7b268ef527da541076ca6a",
+                "url": "https://chromium.googlesource.com/external/github.com/libexpat/libexpat.git"
+            },
+            "src/third_party/farmhash/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-5n58VEUxa/K//jAfZqG4cXyfxrp50ogWDNYcgiXVHdc=",
+                "rev": "816a4ae622e964763ca0862d9dbd19324a1eaf45",
+                "url": "https://chromium.googlesource.com/external/github.com/google/farmhash.git"
+            },
+            "src/third_party/ffmpeg": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-HVsENaBsYThsScvLwwuBT9dhjq5Acf3eskMIH+09mu0=",
+                "rev": "d941d9677bb4802f01750fd908ec284fb72c84df",
+                "url": "https://chromium.googlesource.com/chromium/third_party/ffmpeg.git"
+            },
+            "src/third_party/flac": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-gvTFPNOlBfozptaH7lTb9iD/09AmpdT3kCl9ClszjEs=",
+                "rev": "689da3a7ed50af7448c3f1961d1791c7c1d9c85c",
+                "url": "https://chromium.googlesource.com/chromium/deps/flac.git"
+            },
+            "src/third_party/flatbuffers/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-sdcZAL3ZHIHO9c1ko0xCfyii4jibwA+25RQkDa9XqTo=",
+                "rev": "fb9afbafc7dfe226b9db54d4923bfb8839635274",
+                "url": "https://chromium.googlesource.com/external/github.com/google/flatbuffers.git"
+            },
+            "src/third_party/fontconfig/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-W5WIgC6A52kY4fNkbsDEa0o+dfd97Rl5NKfgnIRpI00=",
+                "rev": "14d466b30a8ab4a9d789977ed94f2c30e7209267",
+                "url": "https://chromium.googlesource.com/external/fontconfig.git"
+            },
+            "src/third_party/fp16/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-m2d9bqZoGWzuUPGkd29MsrdscnJRtuIkLIMp3fMmtRY=",
+                "rev": "0a92994d729ff76a58f692d3028ca1b64b145d91",
+                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FP16.git"
+            },
+            "src/third_party/freetype-testing/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-2aHPchIK5Oce5+XxdXVCC+8EM6i0XT0rFbjSIVa2L1A=",
+                "rev": "7a69b1a2b028476f840ab7d4a2ffdfe4eb2c389f",
+                "url": "https://chromium.googlesource.com/external/github.com/freetype/freetype2-testing.git"
+            },
+            "src/third_party/freetype/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-4WPGveEx3PoBpMlh1PyCJ3w5hdpXztzrXcTZfQ+7DtA=",
+                "rev": "37cefe33b284d0bad4ec52bcccc1a8c2d8704340",
+                "url": "https://chromium.googlesource.com/chromium/src/third_party/freetype2.git"
+            },
+            "src/third_party/fuzztest/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Go2Mrehkvk5fz2SlFrChMBnZJ3H8luhJU+M1TtqG7vg=",
+                "rev": "32eb84a95951fa3a0148fb3e6a1a02f830ded136",
+                "url": "https://chromium.googlesource.com/external/github.com/google/fuzztest.git"
+            },
+            "src/third_party/fxdiv/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-LjX5kivfHbqCIA5pF9qUvswG1gjOFo3CMpX0VR+Cn38=",
+                "rev": "63058eff77e11aa15bf531df5dd34395ec3017c8",
+                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/FXdiv.git"
+            },
+            "src/third_party/gemmlowp/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-O5wD8wxgis0qYMaY+xZ21GBDVQFphMRvInCOswS6inA=",
+                "rev": "13d57703abca3005d97b19df1f2db731607a7dc2",
+                "url": "https://chromium.googlesource.com/external/github.com/google/gemmlowp.git"
+            },
+            "src/third_party/glslang/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-FhuQ4i8Xhy8FsEdAqJntffpo1vJRPsYdR5GFWXDtQD0=",
+                "rev": "dc9f6f61adaec755a09e1943cf7014c688443bcb",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/glslang"
+            },
+            "src/third_party/google_benchmark/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-gztnxui9Fe/FTieMjdvfJjWHjkImtlsHn6fM1FruyME=",
+                "rev": "344117638c8ff7e239044fd0fa7085839fc03021",
+                "url": "https://chromium.googlesource.com/external/github.com/google/benchmark.git"
+            },
+            "src/third_party/googletest/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-iBR2otKeTc864DvCw0n7hpcn/4fHP+CIu2kLmBWym9M=",
+                "rev": "cee1ba1f24fb12b9ae8f31e70dca3f73dbb12cc2",
+                "url": "https://chromium.googlesource.com/external/github.com/google/googletest.git"
+            },
+            "src/third_party/grpc/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-64JEVCx/PCM0dvv7kAQvSjLc0QbRAZVBDzwD/FAV6T8=",
+                "rev": "822dab21d9995c5cf942476b35ca12a1aa9d2737",
+                "url": "https://chromium.googlesource.com/external/github.com/grpc/grpc.git"
+            },
+            "src/third_party/harfbuzz-ng/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-iR49rfGDKxPObCff1/30hYHpP5FpZ28ROgMZhNk9eFY=",
+                "rev": "1da053e87f0487382404656edca98b85fe51f2fd",
+                "url": "https://chromium.googlesource.com/external/github.com/harfbuzz/harfbuzz.git"
+            },
+            "src/third_party/highway/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-PXsXIqWB4NNiFhanRjMIFSWYuW/IRuQo8mMPUBEentY=",
+                "rev": "8295336dd70f1201d42c22ab5b0861de38cf8fbf",
+                "url": "https://chromium.googlesource.com/external/github.com/google/highway.git"
+            },
+            "src/third_party/hunspell_dictionaries": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-67mvpJRFFa9eMfyqFMURlbxOaTJBICnk+gl0b0mEHl8=",
+                "rev": "41cdffd71c9948f63c7ad36e1fb0ff519aa7a37e",
+                "url": "https://chromium.googlesource.com/chromium/deps/hunspell_dictionaries.git"
+            },
+            "src/third_party/icu": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-YlX+PaPhvYh9JzHT9WtS1beUK+cQrHGVUl+IBbv7GeQ=",
+                "rev": "9408c6fd4a39e6fef0e1c4077602e1c83b15f3fb",
+                "url": "https://chromium.googlesource.com/chromium/deps/icu.git"
+            },
+            "src/third_party/instrumented_libs": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-kHKGADAgzlaeckXFbpU1GhJK+zkiRd9XvdtPF6qrQFY=",
+                "rev": "bb6dbcf2df7a9beb34c3773ef4df161800e3aed9",
+                "url": "https://chromium.googlesource.com/chromium/third_party/instrumented_libraries.git"
+            },
+            "src/third_party/jsoncpp/source": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-bSLNcoYBz3QCt5VuTR056V9mU2PmBuYBa0W6hFg2m8Q=",
+                "rev": "42e892d96e47b1f6e29844cc705e148ec4856448",
+                "url": "https://chromium.googlesource.com/external/github.com/open-source-parsers/jsoncpp.git"
+            },
+            "src/third_party/leveldatabase/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-TTX2FrmcWsgqrh4uzqMyGnnnG51cVC2ILfdLxD65MLY=",
+                "rev": "068d5ee1a3ac40dabd00d211d5013af44be55bea",
+                "url": "https://chromium.googlesource.com/external/leveldb.git"
+            },
+            "src/third_party/libFuzzer/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-T0dO+1A0r6kLFoleMkY8heu80biPntCpvA6YfqA7b+E=",
+                "rev": "758bd21f103a501b362b1ca46fa8fcb692eaa303",
+                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/compiler-rt/lib/fuzzer.git"
+            },
+            "src/third_party/libaddressinput/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-xvUUQSPrvqUp5DI9AqlRTWurwDW087c6v4RvI+4sfOQ=",
+                "rev": "e8712e415627f22d0b00ebee8db99547077f39bd",
+                "url": "https://chromium.googlesource.com/external/libaddressinput.git"
+            },
+            "src/third_party/libaom/source/libaom": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-igHNDa/Jch0hiwDczrDOdrnGL4nMZMRevwX3AsYiUQ0=",
+                "rev": "93b8eee4f428675195c5c76e8da719ff50c2a01c",
+                "url": "https://aomedia.googlesource.com/aom.git"
+            },
+            "src/third_party/libavif/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-aol16YtRFF1xQYXNRIZf4QMf5+ba09aDMEBx4lcAbWI=",
+                "rev": "03acd65314fe29e6627cf4eab752819f6ee15d74",
+                "url": "https://chromium.googlesource.com/external/github.com/AOMediaCodec/libavif.git"
+            },
+            "src/third_party/libavifinfo/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-61OPjdMCIbHvWncmBzNw6sqlHcuc1kyqm9k1j4UTcZ0=",
+                "rev": "8d8b58a3f517ef8d1794baa28ca6ae7d19f65514",
+                "url": "https://aomedia.googlesource.com/libavifinfo.git"
+            },
+            "src/third_party/libc++/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-vRRQW+ekjNpstfUI+OOA6rxwJp/OjRhfStmGEb/fOFg=",
+                "rev": "6bb75caa139ee1e686d2205910454cf6ea212e58",
+                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxx.git"
+            },
+            "src/third_party/libc++abi/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-tSIbtraD/pbqq4lCzgOakepXrSimCyry0WgcGAnkbwM=",
+                "rev": "a3c7d3e2f3e1e724b4651891b1a71257cbd88acc",
+                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libcxxabi.git"
+            },
+            "src/third_party/libdrm/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-NUxS2rBJ0nFblvHRQUfKT933+DAws5RUTDb+RLxRF4M=",
+                "rev": "98e1db501173303e58ef6a1def94ab7a2d84afc1",
+                "url": "https://chromium.googlesource.com/chromiumos/third_party/libdrm.git"
+            },
+            "src/third_party/libgav1/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-+ss9S5t+yoHzqbtX68+5OyyUbJVecYLwp+C3EXfAziE=",
+                "rev": "a2f139e9123bdb5edf7707ac6f1b73b3aa5038dd",
+                "url": "https://chromium.googlesource.com/codecs/libgav1.git"
+            },
+            "src/third_party/libipp/libipp": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-gxU92lHLd6uxO8T3QWhZIK0hGy97cki705DV0VimCPY=",
+                "rev": "2209bb84a8e122dab7c02fe66cc61a7b42873d7f",
+                "url": "https://chromium.googlesource.com/chromiumos/platform2/libipp.git"
+            },
+            "src/third_party/libjpeg_turbo": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-UhDKDfAgcCS92R2EvxKpoiJMvakUDQgyHu2k/xeE7do=",
+                "rev": "ccfbe1c82a3b6dbe8647ceb36a3f9ee711fba3cf",
+                "url": "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git"
+            },
+            "src/third_party/liblouis/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-EI/uaHXe0NlqdEw764q0SjerThYEVLRogUlmrsZwXnY=",
+                "rev": "9700847afb92cb35969bdfcbbfbbb74b9c7b3376",
+                "url": "https://chromium.googlesource.com/external/liblouis-github.git"
+            },
+            "src/third_party/libphonenumber/dist": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-3hSnTFTD3KAdbyxfKg12qbIYTmw6YlTCH64gMP/HUJo=",
+                "rev": "140dfeb81b753388e8a672900fb7a971e9a0d362",
+                "url": "https://chromium.googlesource.com/external/libphonenumber.git"
+            },
+            "src/third_party/libprotobuf-mutator/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-ZyPweW+V5foxFQwjjMLkaRUo+FNV+kEDGIH/4oRV614=",
+                "rev": "a304ec48dcf15d942607032151f7e9ee504b5dcf",
+                "url": "https://chromium.googlesource.com/external/github.com/google/libprotobuf-mutator.git"
+            },
+            "src/third_party/libsrtp": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-XOPiDAOHpWyCiXI+fi1CAie0Zaj4v14m9Kc8+jbzpUY=",
+                "rev": "7a7e64c8b5a632f55929cb3bb7d3e6fb48c3205a",
+                "url": "https://chromium.googlesource.com/chromium/deps/libsrtp.git"
+            },
+            "src/third_party/libsync/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Mkl6C1LxF3RYLwYbxiSfoQPt8QKFwQWj/Ati2sNJ32E=",
+                "rev": "f4f4387b6bf2387efbcfd1453af4892e8982faf6",
+                "url": "https://chromium.googlesource.com/aosp/platform/system/core/libsync.git"
+            },
+            "src/third_party/libunwind/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-uUiAqW0OoB+ZWnTFpk2PJqI7kO9WgYLHiHkz8jikSKA=",
+                "rev": "d09db732ff68f40fd3581306c650b17ea1955b4e",
+                "url": "https://chromium.googlesource.com/external/github.com/llvm/llvm-project/libunwind.git"
+            },
+            "src/third_party/libvpx/source/libvpx": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-uG9dnz4l28RB8R1AZBR97Fz7RN/ZYknP0/RffR1FJ1g=",
+                "rev": "057e53d759ac05417bbc7880b1d2e2ac7f08fc67",
+                "url": "https://chromium.googlesource.com/webm/libvpx.git"
+            },
+            "src/third_party/libwebm/source": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-u/5nkJed0DzdhR5OLL2kIhZhOnrbyzL1Kx37vV/jcEo=",
+                "rev": "e4fbea0c9751ae8aa86629b197a28d8276a2b0da",
+                "url": "https://chromium.googlesource.com/webm/libwebm.git"
+            },
+            "src/third_party/libwebp/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-xuRpEwOnaLGZmrPvfUn3DSoJANd94CG+JXcN7Mdmk5I=",
+                "rev": "845d5476a866141ba35ac133f856fa62f0b7445f",
+                "url": "https://chromium.googlesource.com/webm/libwebp.git"
+            },
+            "src/third_party/libyuv": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-hD5B9fPNwf8M98iS/PYeUJgJxtBvvf2BrrlnBNYXSg0=",
+                "rev": "a6a2ec654b1be1166b376476a7555c89eca0c275",
+                "url": "https://chromium.googlesource.com/libyuv/libyuv.git"
+            },
+            "src/third_party/lss": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-hE8uZf9Fst66qJkoVYChiB8G41ie+k9M4X0W+5JUSdw=",
+                "rev": "ce877209e11aa69dcfffbd53ef90ea1d07136521",
+                "url": "https://chromium.googlesource.com/linux-syscall-support.git"
+            },
+            "src/third_party/material_color_utilities/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Y85XU+z9W6tvmDNHJ/dXQnUKXvvDkO3nH/kUJRLqbc4=",
+                "rev": "13434b50dcb64a482cc91191f8cf6151d90f5465",
+                "url": "https://chromium.googlesource.com/external/github.com/material-foundation/material-color-utilities.git"
+            },
+            "src/third_party/minigbm/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-9HwvjTETerbQ7YKXH9kUB2eWa8PxGWMAJfx1jAluhrs=",
+                "rev": "3018207f4d89395cc271278fb9a6558b660885f5",
+                "url": "https://chromium.googlesource.com/chromiumos/platform/minigbm.git"
+            },
+            "src/third_party/nan": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-cwti+BWmF/l/dqa/cN0C587EK4WwRWcWy6gjFVkaMTg=",
+                "owner": "nodejs",
+                "repo": "nan",
+                "rev": "e14bdcd1f72d62bca1d541b66da43130384ec213"
+            },
+            "src/third_party/nasm": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-SiRXHsUlWXtH6dbDjDjqNAm105ibEB3jOfNtQAM4CaY=",
+                "rev": "f477acb1049f5e043904b87b825c5915084a9a29",
+                "url": "https://chromium.googlesource.com/chromium/deps/nasm.git"
+            },
+            "src/third_party/nearby/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-1cj+yG9B9hEvPiGW0jGJhiFG882l56PvgEUXyCBFsSk=",
+                "rev": "76651429b8f96fc6c80949ba8f4e18c4b738e216",
+                "url": "https://chromium.googlesource.com/external/github.com/google/nearby-connections.git"
+            },
+            "src/third_party/neon_2_sse/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-299ZptvdTmCnIuVVBkrpf5ZTxKPwgcGUob81tEI91F0=",
+                "rev": "a15b489e1222b2087007546b4912e21293ea86ff",
+                "url": "https://chromium.googlesource.com/external/github.com/intel/ARM_NEON_2_x86_SSE.git"
+            },
+            "src/third_party/openh264/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-J7Eqe2QevZh1xfap19W8AVCcwfRu7ztknnbKFJUAH1c=",
+                "rev": "09a4f3ec842a8932341b195c5b01e141c8a16eb7",
+                "url": "https://chromium.googlesource.com/external/github.com/cisco/openh264"
+            },
+            "src/third_party/openscreen/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-x/SiWPBPeU2Rg7WqrwZcFvDk2J8ILTXyMEGix8r+7Js=",
+                "rev": "4f7c05781bc43e93706b0330eb830e2bc33fcb6c",
+                "url": "https://chromium.googlesource.com/openscreen"
+            },
+            "src/third_party/openscreen/src/buildtools": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-suuxUL//BfAMmG8os8ChI7ic9EjGTi7y5kjxiAyrEQc=",
+                "rev": "4e0e9c73a0f26735f034f09a9cab2a5c0178536b",
+                "url": "https://chromium.googlesource.com/chromium/src/buildtools"
+            },
+            "src/third_party/openscreen/src/third_party/tinycbor/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-fMKBFUSKmODQyg4hKIa1hwnEKIV6WBbY1Gb8DOSnaHA=",
+                "rev": "d393c16f3eb30d0c47e6f9d92db62272f0ec4dc7",
+                "url": "https://chromium.googlesource.com/external/github.com/intel/tinycbor.git"
+            },
+            "src/third_party/ots/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-kiUXrXsaGOzPkKh0dVmU1I13WHt0Stzj7QLMqHN9FbU=",
+                "rev": "46bea9879127d0ff1c6601b078e2ce98e83fcd33",
+                "url": "https://chromium.googlesource.com/external/github.com/khaledhosny/ots.git"
+            },
+            "src/third_party/pdfium": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-GRihOFfswz+cNDxU/6LHZLp6rVSuHhz+5apRXQapOnQ=",
+                "rev": "66c80ddf43e3c3181d404607dcdc0cf37fdf7675",
+                "url": "https://pdfium.googlesource.com/pdfium.git"
+            },
+            "src/third_party/perfetto": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-zs3PFwBmIxSfAk4HZpKsezkyE9kqaFNTbFQ7MSCl20Y=",
+                "rev": "077d742d9f9738a0453e408560a283a7514c9e8e",
+                "url": "https://android.googlesource.com/platform/external/perfetto.git"
+            },
+            "src/third_party/protobuf-javascript/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-TmP6xftUVTD7yML7UEM/DB8bcsL5RFlKPyCpcboD86U=",
+                "rev": "e34549db516f8712f678fcd4bc411613b5cc5295",
+                "url": "https://chromium.googlesource.com/external/github.com/protocolbuffers/protobuf-javascript"
+            },
+            "src/third_party/pthreadpool/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-R4YmNzWEELSkAws/ejmNVxqXDTJwcqjLU/o/HvgRn2E=",
+                "rev": "4fe0e1e183925bf8cfa6aae24237e724a96479b8",
+                "url": "https://chromium.googlesource.com/external/github.com/Maratyszcza/pthreadpool.git"
+            },
+            "src/third_party/pyelftools": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-I/7p3IEvfP/gkes4kx18PvWwhAKilQKb67GXoW4zFB4=",
+                "rev": "19b3e610c86fcadb837d252c794cb5e8008826ae",
+                "url": "https://chromium.googlesource.com/chromiumos/third_party/pyelftools.git"
+            },
+            "src/third_party/pywebsocket3/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-WEqqu2/7fLqcf/2/IcD7/FewRSZ6jTgVlVBvnihthYQ=",
+                "rev": "50602a14f1b6da17e0b619833a13addc6ea78bc2",
+                "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/pywebsocket3.git"
+            },
+            "src/third_party/quic_trace/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Nf9ZDLcE1JunhbpEMHhrY2ROnbgrvVZoRkPwWq1DU0g=",
+                "rev": "caa0a6eaba816ecb737f9a70782b7c80b8ac8dbc",
+                "url": "https://chromium.googlesource.com/external/github.com/google/quic-trace.git"
+            },
+            "src/third_party/re2/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-IeANwJlJl45yf8iu/AZNDoiyIvTCZIeK1b74sdCfAIc=",
+                "rev": "6dcd83d60f7944926bfd308cc13979fc53dd69ca",
+                "url": "https://chromium.googlesource.com/external/github.com/google/re2.git"
+            },
+            "src/third_party/ruy/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-4NVvqUZn2BdwTxJINTHwPeRqbGXZrWdcd7jv1Y+eoKY=",
+                "rev": "c08ec529fc91722bde519628d9449258082eb847",
+                "url": "https://chromium.googlesource.com/external/github.com/google/ruy.git"
+            },
+            "src/third_party/securemessage/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-GS4ccnuiqxMs/LVYAtvSlVAYFp4a5GoZsxcriTX3k78=",
+                "rev": "fa07beb12babc3b25e0c5b1f38c16aa8cb6b8f84",
+                "url": "https://chromium.googlesource.com/external/github.com/google/securemessage.git"
+            },
+            "src/third_party/skia": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-B5zb35NkwR3yT58344iAOM1Kywn8Yr/TuNBSJcrxwh4=",
+                "rev": "938144dd79c6e3664a3c0bbd019daedddf655ffa",
+                "url": "https://skia.googlesource.com/skia.git"
+            },
+            "src/third_party/smhasher/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-RyC//me08hwGXRrWcK8GZ1uhIkBq4FByA7fHCVDsniw=",
+                "rev": "e87738e57558e0ec472b2fc3a643b838e5b6e88f",
+                "url": "https://chromium.googlesource.com/external/smhasher.git"
+            },
+            "src/third_party/snappy/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-5fV6NfO8vmqK+iCwpLtE2YjYOzjsshctauyjNIOxrH0=",
+                "rev": "c9f9edf6d75bb065fa47468bf035e051a57bec7c",
+                "url": "https://chromium.googlesource.com/external/github.com/google/snappy.git"
+            },
+            "src/third_party/speedometer/v3.0": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-qMQ4naX+4uUu3vtzzinjkhxX9/dNoTwj6vWCu4FdQmU=",
+                "rev": "8d67f28d0281ac4330f283495b7f48286654ad7d",
+                "url": "https://chromium.googlesource.com/external/github.com/WebKit/Speedometer.git"
+            },
+            "src/third_party/spirv-cross/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-H43M9DXfEuyKuvo6rjb5k0KEbYOSFodbPJh8ZKY4PQg=",
+                "rev": "b8fcf307f1f347089e3c46eb4451d27f32ebc8d3",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Cross"
+            },
+            "src/third_party/spirv-headers/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-5lRPxsfXGWimJ7jNtM6kJembcAz357ER8PwFXnh6o4E=",
+                "rev": "db5a00f8cebe81146cafabf89019674a3c4bf03d",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers"
+            },
+            "src/third_party/spirv-tools/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Uld5cLV+oD0wm8TxK0V15yiwrdiUbWGqPQEbtMW9Apg=",
+                "rev": "a0817526b8e391732632e6a887134be256a20a18",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools"
+            },
+            "src/third_party/sqlite/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-ZDByCZjc0coy19a0/BkVAU8y/Fkt7FKgWtCwI5K0Tdo=",
+                "rev": "9e45bccab2b8de8140c1732b0ec490db0362f730",
+                "url": "https://chromium.googlesource.com/chromium/deps/sqlite.git"
+            },
+            "src/third_party/squirrel.mac": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-4GfKQg0u3c9GI+jl3ixESNqWXQJKRMi+00QT0s2Shqw=",
+                "owner": "Squirrel",
+                "repo": "Squirrel.Mac",
+                "rev": "0e5d146ba13101a1302d59ea6e6e0b3cace4ae38"
+            },
+            "src/third_party/squirrel.mac/vendor/Mantle": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-ogFkMJybf2Ue606ojXJu6Gy5aXSi1bSKm60qcTAIaPk=",
+                "owner": "Mantle",
+                "repo": "Mantle",
+                "rev": "78d3966b3c331292ea29ec38661b25df0a245948"
+            },
+            "src/third_party/squirrel.mac/vendor/ReactiveObjC": {
+                "fetcher": "fetchFromGitHub",
+                "hash": "sha256-/MCqC1oFe3N9TsmfVLgl+deR6qHU6ZFQQjudb9zB5Mo=",
+                "owner": "ReactiveCocoa",
+                "repo": "ReactiveObjC",
+                "rev": "74ab5baccc6f7202c8ac69a8d1e152c29dc1ea76"
+            },
+            "src/third_party/swiftshader": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-YGVv/wDle+VyO/Ue7wR004dl8nvO5GjmDeWsoC30+kc=",
+                "rev": "c4dfa69de7deecf52c6b53badbc8bb7be1a05e8c",
+                "url": "https://swiftshader.googlesource.com/SwiftShader.git"
+            },
+            "src/third_party/text-fragments-polyfill/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-4rW2u1cQAF4iPWHAt1FvVXIpz2pmI901rEPks/w/iFA=",
+                "rev": "c036420683f672d685e27415de0a5f5e85bdc23f",
+                "url": "https://chromium.googlesource.com/external/github.com/GoogleChromeLabs/text-fragments-polyfill.git"
+            },
+            "src/third_party/tflite/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-2iYz04vqZI1nbvtnMjjy6aE9PMzvpLhttNbTrEvhC4M=",
+                "rev": "f9122e774969459927e9d956674c0aac06eb3b68",
+                "url": "https://chromium.googlesource.com/external/github.com/tensorflow/tensorflow.git"
+            },
+            "src/third_party/ukey2/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-aaLs6ZS+CdBlCJ6ZhsmdAPFxiBIij6oufsDcNeRSV1E=",
+                "rev": "0275885d8e6038c39b8a8ca55e75d1d4d1727f47",
+                "url": "https://chromium.googlesource.com/external/github.com/google/ukey2.git"
+            },
+            "src/third_party/vulkan-deps": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-88nATFDj0QqE57ZH7effuNXByjYwGI58SYiAdvyjrt8=",
+                "rev": "d8095b45a0b2dcc2a85327ff4cc306c618dfa39a",
+                "url": "https://chromium.googlesource.com/vulkan-deps"
+            },
+            "src/third_party/vulkan-headers/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-5gslQRGEeHu7lshmlM6SON+P6cKTGOYrmwkBRmu9NIw=",
+                "rev": "fabe9e2672334fdb9a622d42a2e8f94578952082",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers"
+            },
+            "src/third_party/vulkan-loader/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-CwBKsSCvrhp8gw9zm5lw+aJ/lzYksXd5zGZw0abw2JY=",
+                "rev": "5892ebe2d7505c2238a643288d9a5b2e68784a36",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Loader"
+            },
+            "src/third_party/vulkan-tools/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-BraOoeYPOaLw7LfqnG+bZHQiJtWByYjnUU8Gw5ee29k=",
+                "rev": "2cee0d5b1d8c34e26fd6d9992d3d428ac4c5139d",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools"
+            },
+            "src/third_party/vulkan-utility-libraries/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-0p4CEh0BzMXRDxOh72QIPUjhYFB+9cna2bRtJXEGE/M=",
+                "rev": "67522b34edde86dbb97e164280291f387ade55fc",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries"
+            },
+            "src/third_party/vulkan-validation-layers/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-ompMbxRxa0acD/+a830N0VL88s1GepOO0e8Rkg5Nmjk=",
+                "rev": "919599474e6e6639527e7c3775ed1064665412d3",
+                "url": "https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-ValidationLayers"
+            },
+            "src/third_party/vulkan_memory_allocator": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-YzxHZagz/M8Y54UnI4h1wu5jSTuaOgv0ifC9d3fJZlQ=",
+                "rev": "56300b29fbfcc693ee6609ddad3fdd5b7a449a21",
+                "url": "https://chromium.googlesource.com/external/github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git"
+            },
+            "src/third_party/wayland-protocols/gtk": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-75XNnLkF5Lt1LMRGT+T61k0/mLa3kkynfN+QWvZ0LiQ=",
+                "rev": "40ebed3a03aef096addc0af09fec4ec529d882a0",
+                "url": "https://chromium.googlesource.com/external/github.com/GNOME/gtk.git"
+            },
+            "src/third_party/wayland-protocols/kde": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Dmcp/2ms/k7NxPPmPkp0YNfM9z2Es1ZO0uX10bc7N2Y=",
+                "rev": "0b07950714b3a36c9b9f71fc025fc7783e82926e",
+                "url": "https://chromium.googlesource.com/external/github.com/KDE/plasma-wayland-protocols.git"
+            },
+            "src/third_party/wayland-protocols/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-5gWBte8oiuXM01StvyXFAsxFwuQZHjZT/LZ6l0mvrwI=",
+                "rev": "c7e9c4f5d396cda4051e49b15d7d0e4f91e4efac",
+                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland-protocols.git"
+            },
+            "src/third_party/wayland/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Cxu9+Kzw2t1BDfuGzNobaraT4eJcSPO7jvnHpuUANoo=",
+                "rev": "31577177454b89db37ceabd94e1640d398adbc87",
+                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/wayland.git"
+            },
+            "src/third_party/webdriver/pylib": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-WIqWXIKVgElgg8P8laLAlUrgwodGdeVcwohZxnPKedw=",
+                "rev": "fc5e7e70c098bfb189a9a74746809ad3c5c34e04",
+                "url": "https://chromium.googlesource.com/external/github.com/SeleniumHQ/selenium/py.git"
+            },
+            "src/third_party/webgl/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-Yn0e1bpvtD4mGdZaRiBytc+upLulYVyHJqXJiTWEfmA=",
+                "rev": "1b6371436a0a60e6b9a4ae2a40a8eba198e3af02",
+                "url": "https://chromium.googlesource.com/external/khronosgroup/webgl.git"
+            },
+            "src/third_party/webgpu-cts/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-4ZDhNhd4kh2lT47PV9zBISNmZDqxZO8WY+pTtxajEfw=",
+                "rev": "198d1770062c1a8aba86e7d6e001bb47bea028ee",
+                "url": "https://chromium.googlesource.com/external/github.com/gpuweb/cts.git"
+            },
+            "src/third_party/webrtc": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-ZHkIEiazTp9MBDUufupLGeV97UEfjTwXxG87OUeHcog=",
+                "rev": "f237dc146debcfde3d70038c2b66f71bfea8d24b",
+                "url": "https://webrtc.googlesource.com/src.git"
+            },
+            "src/third_party/weston/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-y2srFaPUOoB2umzpo4+hFfhNlqXM2AoMGOpUy/ZSacg=",
+                "rev": "ccf29cb237c3ed09c5f370f35239c93d07abfdd7",
+                "url": "https://chromium.googlesource.com/external/anongit.freedesktop.org/git/wayland/weston.git"
+            },
+            "src/third_party/wuffs/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-373d2F/STcgCHEq+PO+SCHrKVOo6uO1rqqwRN5eeBCw=",
+                "rev": "e3f919ccfe3ef542cfc983a82146070258fb57f8",
+                "url": "https://skia.googlesource.com/external/github.com/google/wuffs-mirror-release-c.git"
+            },
+            "src/third_party/xdg-utils": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-WuQ9uDq+QD17Y20ACFGres4nbkeOiTE2y+tY1avAT5U=",
+                "rev": "cb54d9db2e535ee4ef13cc91b65a1e2741a94a44",
+                "url": "https://chromium.googlesource.com/chromium/deps/xdg-utils.git"
+            },
+            "src/third_party/xnnpack/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-JO49N/vJz2nske13dcNFxC9hO7oO/1X6AsNnRCW/RqI=",
+                "rev": "8df2e765487685757ab5dabd12516cd0a24e3e25",
+                "url": "https://chromium.googlesource.com/external/github.com/google/XNNPACK.git"
+            },
+            "src/third_party/zstd/src": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-sy6cs+c3t/XlwwJOMKCuBmoyrOiYHYeqsr/uOMVOdlI=",
+                "rev": "0ff651dd876823b99fa5c5f53292be28381aee9b",
+                "url": "https://chromium.googlesource.com/external/github.com/facebook/zstd.git"
+            },
+            "src/tools/page_cycler/acid3": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-s/49EaYQRsyxuLejXc1zGDYTD7uO0ddaQIJBP50Bvw0=",
+                "rev": "a926d0a32e02c4c03ae95bb798e6c780e0e184ba",
+                "url": "https://chromium.googlesource.com/chromium/deps/acid3.git"
+            },
+            "src/v8": {
+                "fetcher": "fetchFromGitiles",
+                "hash": "sha256-bhGdJhSfvBFUh0PY9xssNinO1CKb36lxKuU3b35aV0M=",
+                "rev": "6f774f929205be0a49cf861b8d73a92655e1dd36",
+                "url": "https://chromium.googlesource.com/v8/v8.git"
+            }
+        },
+        "electron_yarn_hash": "0jb1rs1in1bp71syim7a7p0n669kbc6as90y3zi6nd0q340cwgqa",
+        "modules": "128",
+        "node": "20.17.0",
+        "version": "32.1.1"
     }
 }
diff --git a/pkgs/development/tools/fq/default.nix b/pkgs/development/tools/fq/default.nix
index f31f68b5021b3..4b9560f72e5cc 100644
--- a/pkgs/development/tools/fq/default.nix
+++ b/pkgs/development/tools/fq/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "fq";
-  version = "0.12.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "wader";
     repo = "fq";
     rev = "v${version}";
-    hash = "sha256-XvR2Ja3x75unzs7BeyuppmyzDdTZw+BlUmnjqfDTQI0=";
+    hash = "sha256-bHyLEJiSM42arZiM1VVKga6wp3Q3EAMgUrFnh3hbk9M=";
   };
 
-  vendorHash = "sha256-QYeOd144ko04Aowi1gtPxgR+3mo7DozCca2xtEN8ARs=";
+  vendorHash = "sha256-in+c8Wl7ffXAqMvs+3K6dzAd5ePqBpRaxU2iM81moQM=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/go-mockery/default.nix b/pkgs/development/tools/go-mockery/default.nix
index 99f1cc7cf3789..61cc59d4a8112 100644
--- a/pkgs/development/tools/go-mockery/default.nix
+++ b/pkgs/development/tools/go-mockery/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "go-mockery";
-  version = "2.45.1";
+  version = "2.46.0";
 
   src = fetchFromGitHub {
     owner = "vektra";
     repo = "mockery";
     rev = "v${version}";
-    sha256 = "sha256-9zekTcbojUtVaiA6JiWhY78qyDleNIreFwO3kTmffFg=";
+    sha256 = "sha256-qPE4hzdu5soGVfw6mLJLWvjiXxdkUAT+kpOCWMO1sL8=";
   };
 
   preCheck = ''
diff --git a/pkgs/development/tools/gqlgenc/default.nix b/pkgs/development/tools/gqlgenc/default.nix
index 34a279ec108a5..3b08fda8ad9d0 100644
--- a/pkgs/development/tools/gqlgenc/default.nix
+++ b/pkgs/development/tools/gqlgenc/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "gqlgenc";
-  version = "0.25.0";
+  version = "0.25.1";
 
   src = fetchFromGitHub {
     owner = "yamashou";
     repo = "gqlgenc";
     rev = "v${version}";
-    sha256 = "sha256-4d2IFJIoIX0IlS/v/EJkn1cK8hJl9808PE8ZnwqYzu8=";
+    sha256 = "sha256-i2+J8hWbADeOmua4I3/NX8MC6FKP+5I9BqwCDkLOnvw=";
   };
 
   excludedPackages = [ "example" ];
 
-  vendorHash = "sha256-GcqLW/Ooy2h5spYA94/HmaG0yYiqA4g5DyKlg9EORCQ=";
+  vendorHash = "sha256-/lrOc2suNyNRlpi22QUr6MZCIrdWaWiZUv6pe/mYnB8=";
 
   meta = with lib; {
     description = "Go tool for building GraphQL client with gqlgen";
diff --git a/pkgs/development/tools/jql/default.nix b/pkgs/development/tools/jql/default.nix
index 8bb3b03a6fcc4..b9add5050a744 100644
--- a/pkgs/development/tools/jql/default.nix
+++ b/pkgs/development/tools/jql/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "jql";
-  version = "7.1.13";
+  version = "7.2.0";
 
   src = fetchFromGitHub {
     owner = "yamafaktory";
     repo = pname;
     rev = "jql-v${version}";
-    hash = "sha256-JJV/r64TQecj2Sa/sjxaddiVFCGmtjEn+wfobUbN1OU=";
+    hash = "sha256-UyZ7unIbKRn/5WsoYxkHWQ5k0Tb5NcC+UGpiyvpShBo=";
   };
 
-  cargoHash = "sha256-w3MF4FcBCq5gQnhVVlcXOeGH4r2cA6kWwIzGVeLY5zg=";
+  cargoHash = "sha256-gJQsap31twigZT5n5w7oHATdNf0DfqoNfdS7cMU/hiA=";
 
   meta = with lib; {
     description = "JSON Query Language CLI tool built with Rust";
diff --git a/pkgs/development/tools/misc/elfutils/cxx-header-collision.patch b/pkgs/development/tools/misc/elfutils/cxx-header-collision.patch
new file mode 100644
index 0000000000000..a3442c6aa276a
--- /dev/null
+++ b/pkgs/development/tools/misc/elfutils/cxx-header-collision.patch
@@ -0,0 +1,331 @@
+From: Tristan Ross <tristan.ross@midstall.com>
+Date: Wed, 31 Jul 2024 04:03:03 +0000 (-0700)
+Subject: Prevent binaries in src from colliding with libc++ headers
+X-Git-Url: https://sourceware.org/git/?p=elfutils.git;a=commitdiff_plain;h=232b9ede92cbecabbd61291c2fc9aaf3fc61061f;hp=87a60d22299c4ba7b94cbce04a32c2abf015f98a
+
+Prevent binaries in src from colliding with libc++ headers
+
+Discovered with Nix and LLVM 17. Headers inside of libc++ can easily
+collide with binaries being linked in src. This results in clang trying
+to include a binary as a header.
+
+Fix this by removing '-I.' and '-I$(srcdir)' from AM_CPPFLAGS and
+DEFAULT_INCLUDES in src/Makefile.am.
+
+To facilitate this config/eu.am has been refactored.  New file
+config/eu-common.am contains all of the old eu.am but with the
+AM_CPPFLAGS definition removed. eu.am now includes eu-common.am and
+contains the old AM_CPPFLAGS definition.
+
+eu.am functionality does not change, but src/Makefile.am can instead
+include eu-common.am and define its own AM_CPPFLAGS without causing a
+"multiply defined" warning during autoreconf.
+
+Signed-off-by: Tristan Ross <tristan.ross@midstall.com>
+---
+
+diff --git a/config/eu-common.am b/config/eu-common.am
+new file mode 100644
+index 000000000..9cc7f6969
+--- /dev/null
++++ b/config/eu-common.am
+@@ -0,0 +1,148 @@
++## Common automake fragments for elfutils subdirectory makefiles.
++##
++## Copyright (C) 2010, 2014, 2016 Red Hat, Inc.
++## Copyright (C) 2023, Mark J. Wielaard <mark@klomp.org>
++##
++## This file is part of elfutils.
++##
++## This file is free software; you can redistribute it and/or modify
++## it under the terms of either
++##
++##   * the GNU Lesser General Public License as published by the Free
++##     Software Foundation; either version 3 of the License, or (at
++##     your option) any later version
++##
++## or
++##
++##   * the GNU General Public License as published by the Free
++##     Software Foundation; either version 2 of the License, or (at
++##     your option) any later version
++##
++## or both in parallel, as here.
++##
++## elfutils is distributed in the hope that it will be useful, but
++## WITHOUT ANY WARRANTY; without even the implied warranty of
++## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++## General Public License for more details.
++##
++## You should have received copies of the GNU General Public License and
++## the GNU Lesser General Public License along with this program.  If
++## not, see <http://www.gnu.org/licenses/>.
++##
++
++DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
++
++# Drop the 'u' flag that automake adds by default. It is incompatible
++# with deterministic archives.
++ARFLAGS = cr
++
++# Warn about stack usage of more than 256K = 262144 bytes.
++if ADD_STACK_USAGE_WARNING
++STACK_USAGE_WARNING=-Wstack-usage=262144
++STACK_USAGE_NO_ERROR=-Wno-error=stack-usage=
++else
++STACK_USAGE_WARNING=
++STACK_USAGE_NO_ERROR=
++endif
++
++if SANE_LOGICAL_OP_WARNING
++LOGICAL_OP_WARNING=-Wlogical-op
++else
++LOGICAL_OP_WARNING=
++endif
++
++if HAVE_DUPLICATED_COND_WARNING
++DUPLICATED_COND_WARNING=-Wduplicated-cond
++else
++DUPLICATED_COND_WARNING=
++endif
++
++if HAVE_NULL_DEREFERENCE_WARNING
++NULL_DEREFERENCE_WARNING=-Wnull-dereference
++else
++NULL_DEREFERENCE_WARNING=
++endif
++
++if HAVE_IMPLICIT_FALLTHROUGH_WARNING
++# Use strict fallthrough. Only __attribute__((fallthrough)) will prevent the
++# warning
++if HAVE_IMPLICIT_FALLTHROUGH_5_WARNING
++IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough=5
++else
++IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough
++endif
++else
++IMPLICIT_FALLTHROUGH_WARNING=
++endif
++
++if HAVE_TRAMPOLINES_WARNING
++TRAMPOLINES_WARNING=-Wtrampolines
++else
++TRAMPOLINES_WARNING=
++endif
++
++if HAVE_NO_PACKED_NOT_ALIGNED_WARNING
++NO_PACKED_NOT_ALIGNED_WARNING=-Wno-packed-not-aligned
++else
++NO_PACKED_NOT_ALIGNED_WARNING=
++endif
++
++if HAVE_USE_AFTER_FREE3_WARNING
++USE_AFTER_FREE3_WARNING=-Wuse-after-free=3
++else
++USE_AFTER_FREE3_WARNING=
++endif
++
++AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
++	    -Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \
++	    $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
++	    $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
++	    $(USE_AFTER_FREE3_WARNING) \
++	    $(if $($(*F)_no_Werror),,-Werror) \
++	    $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
++	    $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++	    $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
++	    $($(*F)_CFLAGS)
++
++AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
++	   $(TRAMPOLINES_WARNING) \
++	   $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
++	   $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
++	   $(if $($(*F)_no_Werror),,-Werror) \
++	   $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
++	   $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
++	   $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
++	   $($(*F)_CXXFLAGS)
++
++COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
++
++DEFS.os = -DPIC -DSHARED
++if SYMBOL_VERSIONING
++DEFS.os += -DSYMBOL_VERSIONING
++else
++endif
++
++%.os: %.c %.o
++if AMDEP
++	$(AM_V_CC)if $(COMPILE.os) -c -o $@ $(fpic_CFLAGS) $(DEFS.os) -MT $@ -MD -MP \
++	  -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
++	then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
++	     rm -f "$(DEPDIR)/$*.Tpo"; \
++	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
++	fi
++else
++	$(AM_V_CC)$(COMPILE.os) -c -o $@ $(fpic_CFLAGS) $(DEFS.os) $<
++endif
++
++CLEANFILES = *.gcno *.gcda
++
++textrel_msg = echo "WARNING: TEXTREL found in '$@'"
++if FATAL_TEXTREL
++textrel_found = $(textrel_msg); exit 1
++else
++textrel_found = $(textrel_msg)
++endif
++textrel_check = if $(READELF) -d $@ | grep -F -q TEXTREL; then $(textrel_found); fi
++
++print-%:
++	@echo $*=$($*)
+diff --git a/config/eu.am b/config/eu.am
+index e6c241f9d..3aa6048aa 100644
+--- a/config/eu.am
++++ b/config/eu.am
+@@ -1,4 +1,5 @@
+-## Common automake fragments for elfutils subdirectory makefiles.
++## Common automake fragments for elfutils subdirectory makefiles
++## with AM_CPPFLAGS set.
+ ##
+ ## Copyright (C) 2010, 2014, 2016 Red Hat, Inc.
+ ## Copyright (C) 2023, Mark J. Wielaard <mark@klomp.org>
+@@ -30,120 +31,5 @@
+ ## not, see <http://www.gnu.org/licenses/>.
+ ##
+ 
+-DEFS = -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"${localedir}"'
+ AM_CPPFLAGS = -I. -I$(srcdir) -I$(top_srcdir)/lib -I..
+-
+-# Drop the 'u' flag that automake adds by default. It is incompatible
+-# with deterministic archives.
+-ARFLAGS = cr
+-
+-# Warn about stack usage of more than 256K = 262144 bytes.
+-if ADD_STACK_USAGE_WARNING
+-STACK_USAGE_WARNING=-Wstack-usage=262144
+-STACK_USAGE_NO_ERROR=-Wno-error=stack-usage=
+-else
+-STACK_USAGE_WARNING=
+-STACK_USAGE_NO_ERROR=
+-endif
+-
+-if SANE_LOGICAL_OP_WARNING
+-LOGICAL_OP_WARNING=-Wlogical-op
+-else
+-LOGICAL_OP_WARNING=
+-endif
+-
+-if HAVE_DUPLICATED_COND_WARNING
+-DUPLICATED_COND_WARNING=-Wduplicated-cond
+-else
+-DUPLICATED_COND_WARNING=
+-endif
+-
+-if HAVE_NULL_DEREFERENCE_WARNING
+-NULL_DEREFERENCE_WARNING=-Wnull-dereference
+-else
+-NULL_DEREFERENCE_WARNING=
+-endif
+-
+-if HAVE_IMPLICIT_FALLTHROUGH_WARNING
+-# Use strict fallthrough. Only __attribute__((fallthrough)) will prevent the
+-# warning
+-if HAVE_IMPLICIT_FALLTHROUGH_5_WARNING
+-IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough=5
+-else
+-IMPLICIT_FALLTHROUGH_WARNING=-Wimplicit-fallthrough
+-endif
+-else
+-IMPLICIT_FALLTHROUGH_WARNING=
+-endif
+-
+-if HAVE_TRAMPOLINES_WARNING
+-TRAMPOLINES_WARNING=-Wtrampolines
+-else
+-TRAMPOLINES_WARNING=
+-endif
+-
+-if HAVE_NO_PACKED_NOT_ALIGNED_WARNING
+-NO_PACKED_NOT_ALIGNED_WARNING=-Wno-packed-not-aligned
+-else
+-NO_PACKED_NOT_ALIGNED_WARNING=
+-endif
+-
+-if HAVE_USE_AFTER_FREE3_WARNING
+-USE_AFTER_FREE3_WARNING=-Wuse-after-free=3
+-else
+-USE_AFTER_FREE3_WARNING=
+-endif
+-
+-AM_CFLAGS = -std=gnu99 -Wall -Wshadow -Wformat=2 \
+-	    -Wold-style-definition -Wstrict-prototypes $(TRAMPOLINES_WARNING) \
+-	    $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
+-	    $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
+-	    $(USE_AFTER_FREE3_WARNING) \
+-	    $(if $($(*F)_no_Werror),,-Werror) \
+-	    $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-	    $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+-	    $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
+-	    $($(*F)_CFLAGS)
+-
+-AM_CXXFLAGS = -std=c++11 -Wall -Wshadow \
+-	   $(TRAMPOLINES_WARNING) \
+-	   $(LOGICAL_OP_WARNING) $(DUPLICATED_COND_WARNING) \
+-	   $(NULL_DEREFERENCE_WARNING) $(IMPLICIT_FALLTHROUGH_WARNING) \
+-	   $(if $($(*F)_no_Werror),,-Werror) \
+-	   $(if $($(*F)_no_Wunused),,-Wunused -Wextra) \
+-	   $(if $($(*F)_no_Wstack_usage),,$(STACK_USAGE_WARNING)) \
+-	   $(if $($(*F)_no_Wpacked_not_aligned),$(NO_PACKED_NOT_ALIGNED_WARNING),) \
+-	   $($(*F)_CXXFLAGS)
+-
+-COMPILE.os = $(filter-out -fprofile-arcs -ftest-coverage, $(COMPILE))
+-
+-DEFS.os = -DPIC -DSHARED
+-if SYMBOL_VERSIONING
+-DEFS.os += -DSYMBOL_VERSIONING
+-else
+-endif
+-
+-%.os: %.c %.o
+-if AMDEP
+-	$(AM_V_CC)if $(COMPILE.os) -c -o $@ $(fpic_CFLAGS) $(DEFS.os) -MT $@ -MD -MP \
+-	  -MF "$(DEPDIR)/$*.Tpo" `test -f '$<' || echo '$(srcdir)/'`$<; \
+-	then cat "$(DEPDIR)/$*.Tpo" >> "$(DEPDIR)/$*.Po"; \
+-	     rm -f "$(DEPDIR)/$*.Tpo"; \
+-	else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; \
+-	fi
+-else
+-	$(AM_V_CC)$(COMPILE.os) -c -o $@ $(fpic_CFLAGS) $(DEFS.os) $<
+-endif
+-
+-CLEANFILES = *.gcno *.gcda
+-
+-textrel_msg = echo "WARNING: TEXTREL found in '$@'"
+-if FATAL_TEXTREL
+-textrel_found = $(textrel_msg); exit 1
+-else
+-textrel_found = $(textrel_msg)
+-endif
+-textrel_check = if $(READELF) -d $@ | grep -F -q TEXTREL; then $(textrel_found); fi
+-
+-print-%:
+-	@echo $*=$($*)
++include $(top_srcdir)/config/eu-common.am
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 1d592d4de..5fcebc21d 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -16,10 +16,12 @@
+ ## You should have received a copy of the GNU General Public License
+ ## along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ ##
+-include $(top_srcdir)/config/eu.am
++include $(top_srcdir)/config/eu-common.am
+ DEFS += $(YYDEBUG) -DDEBUGPRED=@DEBUGPRED@ \
+ 	-DSRCDIR=\"$(shell cd $(srcdir);pwd)\" -DOBJDIR=\"$(shell pwd)\"
+-AM_CPPFLAGS += -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
++DEFAULT_INCLUDES = -I$(top_builddir)
++AM_CPPFLAGS = -I$(top_srcdir)/lib -I.. \
++	    -I$(srcdir)/../libelf -I$(srcdir)/../libebl \
+ 	    -I$(srcdir)/../libdw -I$(srcdir)/../libdwelf \
+ 	    -I$(srcdir)/../libdwfl -I$(srcdir)/../libasm -I../debuginfod
diff --git a/pkgs/development/tools/misc/elfutils/default.nix b/pkgs/development/tools/misc/elfutils/default.nix
index 78c88f3420e96..260d385e350ba 100644
--- a/pkgs/development/tools/misc/elfutils/default.nix
+++ b/pkgs/development/tools/misc/elfutils/default.nix
@@ -2,7 +2,7 @@
 , musl-obstack, m4, zlib, zstd, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs
 , argp-standalone
 , enableDebuginfod ? true, sqlite, curl, libmicrohttpd, libarchive
-, gitUpdater
+, gitUpdater, autoreconfHook
 }:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
@@ -37,7 +37,10 @@ stdenv.mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/main/elfutils/musl-strndupa.patch?id=2e3d4976eeffb4704cf83e2cc3306293b7c7b2e9";
       sha256 = "sha256-7daehJj1t0wPtQzTv+/Rpuqqs5Ng/EYnZzrcf2o/Lb0=";
     })
-  ] ++ lib.optionals stdenv.hostPlatform.isMusl [ ./musl-error_h.patch ];
+  ] ++ lib.optionals stdenv.hostPlatform.isMusl [ ./musl-error_h.patch ]
+    # Prevent headers and binaries from colliding which results in an error.
+    # https://sourceware.org/pipermail/elfutils-devel/2024q3/007281.html
+    ++ lib.optional (stdenv.targetPlatform.useLLVM or false) ./cxx-header-collision.patch;
 
   postPatch = ''
     patchShebangs tests/*.sh
@@ -53,7 +56,8 @@ stdenv.mkDerivation rec {
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
   nativeBuildInputs = [ m4 bison flex gettext bzip2 ]
-    ++ lib.optional enableDebuginfod pkg-config;
+    ++ lib.optional enableDebuginfod pkg-config
+    ++ lib.optional (stdenv.targetPlatform.useLLVM or false) autoreconfHook;
   buildInputs = [ zlib zstd bzip2 xz ]
     ++ lib.optionals stdenv.hostPlatform.isMusl [
     argp-standalone
diff --git a/pkgs/development/tools/ocaml/ocamlbuild/default.nix b/pkgs/development/tools/ocaml/ocamlbuild/default.nix
index 6696a99977a09..194ea1c8a023a 100644
--- a/pkgs/development/tools/ocaml/ocamlbuild/default.nix
+++ b/pkgs/development/tools/ocaml/ocamlbuild/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv, fetchFromGitHub, ocaml, findlib
-, version ? if lib.versionAtLeast ocaml.version "4.07" then "0.15.0" else "0.14.3"
+, version ? if lib.versionAtLeast ocaml.version "4.08" then "0.15.0" else "0.14.3"
 }:
 
 stdenv.mkDerivation (finalAttrs: {
diff --git a/pkgs/development/tools/revive/default.nix b/pkgs/development/tools/revive/default.nix
index 1c181c0efbe02..927eb7b43c5f1 100644
--- a/pkgs/development/tools/revive/default.nix
+++ b/pkgs/development/tools/revive/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "revive";
-  version = "1.3.9";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "mgechev";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-ZfZNqr7zeMrLjSS1h3ZbjiXNjX1UiqldtrEFth2Z4f0=";
+    hash = "sha256-ViYNXZXvlOOpBjQuMAQXwcDtu1HoF+NstrOZzQcBOuQ=";
     # populate values that require us to use git. By doing this in postFetch we
     # can delete .git afterwards and maintain better reproducibility of the src.
     leaveDotGit = true;
@@ -18,7 +18,7 @@ buildGoModule rec {
       rm -rf $out/.git
     '';
   };
-  vendorHash = "sha256-iIAKPCE06lhAf/4f4TRVO51RdlvuXNA7yMlGVPGrIeo=";
+  vendorHash = "sha256-btuAXaJL8URkJvzPy+9tci5gOAqSkkNZn3mN2ox1Vfk=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/rust/cargo-chef/default.nix b/pkgs/development/tools/rust/cargo-chef/default.nix
index 50025c628f106..b307704c76fb7 100644
--- a/pkgs/development/tools/rust/cargo-chef/default.nix
+++ b/pkgs/development/tools/rust/cargo-chef/default.nix
@@ -2,14 +2,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-chef";
-  version = "0.1.67";
+  version = "0.1.68";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-5bvA3lss+F2Wx0SSx5KRCmpERdIXUkUhFP+zRn8aZH0=";
+    hash = "sha256-NTFrNSEIzHppwOOjI3VadjhdV6EgGUmJzyX5JmTsJoI=";
   };
 
-  cargoHash = "sha256-EIpi1k5GffGCk+fzHSW32T+ZLkRfswnEGZdER95TyBk=";
+  cargoHash = "sha256-DoIkK/tj3AYt0vm7u7f4SmgOKbdQZv3ZunMFT68+37E=";
 
   meta = with lib; {
     description = "Cargo-subcommand to speed up Rust Docker builds using Docker layer caching";
diff --git a/pkgs/development/tools/rust/cargo-show-asm/default.nix b/pkgs/development/tools/rust/cargo-show-asm/default.nix
index f6d52a2c54c61..80af89869c147 100644
--- a/pkgs/development/tools/rust/cargo-show-asm/default.nix
+++ b/pkgs/development/tools/rust/cargo-show-asm/default.nix
@@ -9,14 +9,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-show-asm";
-  version = "0.2.38";
+  version = "0.2.39";
 
   src = fetchCrate {
     inherit pname version;
-    hash = "sha256-CYnW6wv4aL/Qs6IwPaRi9w8/iNMo5to0J3z4zTdgHaE=";
+    hash = "sha256-fGUx2SOgs5IF7KTr36fHktykrFkxqLWp4CWVGOZ+MeM=";
   };
 
-  cargoHash = "sha256-jRsxP4b1URTDcnp8VsZvSTaPNOBBwq570eCn2jfQSGg=";
+  cargoHash = "sha256-iCHf4/bqICZ0bTeFFeVopU0Yl8VbxRd+Cr4WucuptVk=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/development/tools/rust/cargo-temp/default.nix b/pkgs/development/tools/rust/cargo-temp/default.nix
index a00d4fef2275c..8f1e96c5562dc 100644
--- a/pkgs/development/tools/rust/cargo-temp/default.nix
+++ b/pkgs/development/tools/rust/cargo-temp/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-temp";
-  version = "0.2.21";
+  version = "0.2.22";
 
   src = fetchFromGitHub {
     owner = "yozhgoor";
     repo = "cargo-temp";
     rev = "v${version}";
-    hash = "sha256-8VkhEpggSoE0DIdZk8Y1fCYAwN6CZd2nK6auWRIbS6w=";
+    hash = "sha256-gsrmHCj9DC6OkGS0CD/NE2UMc/9TdjA2In6f3iKXMOg=";
   };
 
-  cargoHash = "sha256-fYpG/Bl3hsbkWWTkbX59UqD/HuL9OpmcZc6hPAmnNtM=";
+  cargoHash = "sha256-ryvv4SuhxIXPJKa3WLdjNQZAP+JLAjWtrCfWXUm+WVg=";
 
   meta = with lib; {
     description = "CLI tool that allow you to create a temporary new Rust project using cargo with already installed dependencies";
diff --git a/pkgs/development/tools/zed/default.nix b/pkgs/development/tools/zed/default.nix
index 8adf786836c90..a567ce7f474b2 100644
--- a/pkgs/development/tools/zed/default.nix
+++ b/pkgs/development/tools/zed/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "zed";
-  version = "1.17.0";
+  version = "1.18.0";
 
   src = fetchFromGitHub {
     owner = "brimdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-bafX3i6jEMqYB4YCpIX4z4SgQbJjryGmZ6pvqtVrk3A=";
+    sha256 = "sha256-NCoeTeOkxkCsj/nRBhMJeEshFuwozOXNJvgp8vyCQDk=";
   };
 
-  vendorHash = "sha256-X1rE6/sgpB6jeTjLZJL/a7ghjRJYTXSQDHB4PmEFUmU=";
+  vendorHash = "sha256-E9CXS3BQAglJV36BPgwhkb9SswxAj/yBcGqJ+XXwTmE=";
 
   subPackages = [ "cmd/zed" "cmd/zq" ];
 
diff --git a/pkgs/games/shattered-pixel-dungeon/default.nix b/pkgs/games/shattered-pixel-dungeon/default.nix
index 0de47544df897..7b97a9af33f4e 100644
--- a/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -5,13 +5,13 @@
 
 callPackage ./generic.nix rec {
   pname = "shattered-pixel-dungeon";
-  version = "2.5.0";
+  version = "2.5.2";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
     repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    hash = "sha256-G/g84Jl+jkmvxmQtCIPHsW9vHi3FPKt7A087SkVxNVE=";
+    hash = "sha256-/CxOiJaBiOgKEKVSX7qx2HjMLUgeE+lRyRn4nrAqzsg=";
   };
 
   depsPath = ./deps.json;
diff --git a/pkgs/games/steam/fhsenv.nix b/pkgs/games/steam/fhsenv.nix
index 85f3bf1abfacc..1c92bb2617651 100644
--- a/pkgs/games/steam/fhsenv.nix
+++ b/pkgs/games/steam/fhsenv.nix
@@ -299,7 +299,7 @@ in buildFHSEnv rec {
   '' + args.extraPreBwrapCmds or "";
 
   extraBwrapArgs = [
-    "--bind /etc/NIXOS /etc/NIXOS" # required 32bit driver check in runScript
+    "--bind-try /etc/NIXOS /etc/NIXOS" # required 32bit driver check in runScript
     "--bind-try /tmp/dumps /tmp/dumps"
   ] ++ args.extraBwrapArgs or [];
 
diff --git a/pkgs/misc/cbeams/default.nix b/pkgs/misc/cbeams/default.nix
deleted file mode 100644
index 928b03df09f7d..0000000000000
--- a/pkgs/misc/cbeams/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildPythonApplication, fetchPypi, isPy3k, blessings, docopt }:
-
-buildPythonApplication rec {
-  pname = "cbeams";
-  version = "1.0.3";
-  disabled = !isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1agcjg6kmcyvk834xd2j60mi349qi9iw3dc2vwpd7pqwq1daq3gi";
-  };
-
-  propagatedBuildInputs = [ blessings docopt ];
-
-  meta = with lib; {
-    homepage = "https://github.com/tartley/cbeams";
-    description = "Command-line program to draw animated colored circles in the terminal";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ oxzi ];
-  };
-}
diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix
index 2a7672465d813..aeb78f1ad38a9 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -33,15 +33,12 @@ let
 
     debug = {
       # Necessary for BTF
-      DEBUG_INFO                = lib.mkMerge [
-        (whenOlder "5.2" (if (features.debug or false) then yes else no))
-        (whenBetween "5.2" "5.18" yes)
-      ];
+      DEBUG_INFO                = whenOlder "5.18" yes;
       DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT = whenAtLeast "5.18" yes;
       # Reduced debug info conflict with BTF and have been enabled in
       # aarch64 defconfig since 5.13
       DEBUG_INFO_REDUCED        = whenAtLeast "5.13" (option no);
-      DEBUG_INFO_BTF            = whenAtLeast "5.2" (option yes);
+      DEBUG_INFO_BTF            = option yes;
       # Allow loading modules with mismatched BTFs
       # FIXME: figure out how to actually make BTFs reproducible instead
       # See https://github.com/NixOS/nixpkgs/pull/181456 for details.
@@ -86,7 +83,7 @@ let
       # ACPI Firmware Performance Data Table Support
       ACPI_FPDT                        = whenAtLeast "5.12" (option yes);
       # ACPI Heterogeneous Memory Attribute Table Support
-      ACPI_HMAT                        = whenAtLeast "5.2" (option yes);
+      ACPI_HMAT                        = option yes;
       # ACPI Platform Error Interface
       ACPI_APEI                        = (option yes);
       # APEI Generic Hardware Error Source
@@ -128,7 +125,7 @@ let
       PWM                              = yes;
     } // lib.optionalAttrs (stdenv.hostPlatform.isx86) {
       INTEL_IDLE                       = yes;
-      INTEL_RAPL                       = whenAtLeast "5.3" module;
+      INTEL_RAPL                       = module;
       X86_INTEL_LPSS                   = yes;
       X86_INTEL_PSTATE                 = yes;
       X86_AMD_PSTATE                   = whenAtLeast "5.17" yes;
@@ -202,15 +199,15 @@ let
       IOSCHED_CFQ = whenOlder "5.0" yes; # Removed in 5.0-RC1
       BLK_CGROUP  = yes; # required by CFQ"
       BLK_CGROUP_IOLATENCY = yes;
-      BLK_CGROUP_IOCOST = whenAtLeast "5.4" yes;
+      BLK_CGROUP_IOCOST = yes;
       IOSCHED_DEADLINE = whenOlder "5.0" yes; # Removed in 5.0-RC1
       MQ_IOSCHED_DEADLINE = yes;
       BFQ_GROUP_IOSCHED = yes;
       MQ_IOSCHED_KYBER = yes;
       IOSCHED_BFQ = module;
       # Enable CPU utilization clamping for RT tasks
-      UCLAMP_TASK = whenAtLeast "5.3" yes;
-      UCLAMP_TASK_GROUP = whenAtLeast "5.4" yes;
+      UCLAMP_TASK = yes;
+      UCLAMP_TASK_GROUP = yes;
     };
 
 
@@ -244,7 +241,7 @@ let
       HAVE_EBPF_JIT      = whenPlatformHasEBPFJit yes;
       BPF_STREAM_PARSER  = yes;
       XDP_SOCKETS        = yes;
-      XDP_SOCKETS_DIAG   = whenAtLeast "5.1" yes;
+      XDP_SOCKETS_DIAG   = yes;
       WAN                = yes;
       TCP_CONG_ADVANCED  = yes;
       TCP_CONG_CUBIC     = yes; # This is the default congestion control algorithm since 2.6.19
@@ -306,8 +303,7 @@ let
       # IPv6: Netfilter Configuration
       NF_TABLES_IPV6              = yes;
       # Bridge Netfilter Configuration
-      NF_TABLES_BRIDGE            = lib.mkMerge [ (whenOlder "5.3" yes)
-                                              (whenAtLeast "5.3" module) ];
+      NF_TABLES_BRIDGE            = module;
       # Expose some debug info
       NF_CONNTRACK_PROCFS         = yes;
       NF_FLOW_TABLE_PROCFS        = whenAtLeast "6.0" yes;
@@ -377,9 +373,9 @@ let
       ATH10K_DFS_CERTIFIED        = option yes;
       B43_PHY_HT                  = option yes;
       BCMA_HOST_PCI               = option yes;
-      RTW88                       = whenAtLeast "5.2" module;
-      RTW88_8822BE                = lib.mkMerge [ (whenBetween "5.2" "5.8" yes) (whenAtLeast "5.8" module) ];
-      RTW88_8822CE                = lib.mkMerge [ (whenBetween "5.2" "5.8" yes) (whenAtLeast "5.8" module) ];
+      RTW88                       = module;
+      RTW88_8822BE                = lib.mkMerge [ (whenOlder "5.8" yes) (whenAtLeast "5.8" module) ];
+      RTW88_8822CE                = lib.mkMerge [ (whenOlder "5.8" yes) (whenAtLeast "5.8" module) ];
     };
 
     fb = {
@@ -415,7 +411,7 @@ let
     };
 
     video = let
-      whenHasDevicePrivate = lib.mkIf (!stdenv.isx86_32 && lib.versionAtLeast version "5.1");
+      whenHasDevicePrivate = lib.mkIf (!stdenv.isx86_32);
     in {
       # compile in DRM so simpledrm can load before initrd if necessary
       AGP = yes;
@@ -423,7 +419,7 @@ let
 
       DRM_LEGACY = whenOlder "6.8" no;
 
-      NOUVEAU_LEGACY_CTX_SUPPORT = whenBetween "5.2" "6.3" no;
+      NOUVEAU_LEGACY_CTX_SUPPORT = whenOlder "6.3" no;
 
       # Enable simpledrm and use it for generic framebuffer
       # Technically added in 5.14, but adding more complex configuration is not worth it
@@ -446,8 +442,8 @@ let
       DRM_DISPLAY_DP_AUX_CHARDEV = whenAtLeast "6.10" yes;
       # amdgpu display core (DC) support
       DRM_AMD_DC_DCN1_0 = whenOlder "5.6" yes;
-      DRM_AMD_DC_DCN2_0 = whenBetween "5.3" "5.6" yes;
-      DRM_AMD_DC_DCN2_1 = whenBetween "5.4" "5.6" yes;
+      DRM_AMD_DC_DCN2_0 = whenOlder "5.6" yes;
+      DRM_AMD_DC_DCN2_1 = whenOlder "5.6" yes;
       DRM_AMD_DC_DCN3_0 = whenBetween "5.9" "5.11" yes;
       DRM_AMD_DC_DCN = whenBetween "5.11" "6.4" yes;
       DRM_AMD_DC_FP = whenAtLeast "6.4" yes;
@@ -578,7 +574,7 @@ let
 
       TMPFS           = yes;
       TMPFS_POSIX_ACL = yes;
-      FS_ENCRYPTION   = if (lib.versionAtLeast version "5.1") then yes else option module;
+      FS_ENCRYPTION   = yes;
 
       EXT2_FS_XATTR     = yes;
       EXT2_FS_POSIX_ACL = yes;
@@ -589,7 +585,6 @@ let
 
       EXT4_FS_POSIX_ACL = yes;
       EXT4_FS_SECURITY  = yes;
-      EXT4_ENCRYPTION   = whenOlder "5.1" yes;
 
       NTFS_FS            = whenBetween "5.15" "6.9" no;
       NTFS3_LZX_XPRESS   = whenAtLeast "5.15" yes;
@@ -618,7 +613,6 @@ let
 
       F2FS_FS             = module;
       F2FS_FS_SECURITY    = option yes;
-      F2FS_FS_ENCRYPTION  = whenOlder "5.1" yes;
       F2FS_FS_COMPRESSION = whenAtLeast "5.6" yes;
       UDF_FS              = module;
 
@@ -640,7 +634,6 @@ let
       CIFS_FSCACHE      = yes;
       CIFS_WEAK_PW_HASH = whenOlder "5.15" yes;
       CIFS_UPCALL       = yes;
-      CIFS_ACL          = whenOlder "5.3" yes;
       CIFS_DFS_UPCALL   = yes;
 
       CEPH_FSCACHE      = yes;
@@ -668,7 +661,7 @@ let
 
       DEVTMPFS = yes;
 
-      UNICODE = whenAtLeast "5.2" yes; # Casefolding support for filesystems
+      UNICODE = yes; # Casefolding support for filesystems
     };
 
     security = {
@@ -687,7 +680,6 @@ let
       STRICT_MODULE_RWX                = yes;
       STRICT_DEVMEM                    = lib.mkDefault yes; # Filter access to /dev/mem
       IO_STRICT_DEVMEM                 = lib.mkDefault yes;
-      SECURITY_SELINUX_BOOTPARAM_VALUE = whenOlder "5.1" (freeform "0"); # Disable SELinux by default
 
       # Prevent processes from ptracing non-children processes
       SECURITY_YAMA                    = option yes;
@@ -705,17 +697,17 @@ let
       SECURITY_DMESG_RESTRICT          = yes;
 
       RANDOM_TRUST_CPU                 = whenOlder "6.2" yes; # allow RDRAND to seed the RNG
-      RANDOM_TRUST_BOOTLOADER          = whenOlder "6.2" (whenAtLeast "5.4" yes); # allow the bootloader to seed the RNG
+      RANDOM_TRUST_BOOTLOADER          = whenOlder "6.2" yes; # allow the bootloader to seed the RNG
 
       MODULE_SIG            = no; # r13y, generates a random key during build and bakes it in
       # Depends on MODULE_SIG and only really helps when you sign your modules
       # and enforce signatures which we don't do by default.
-      SECURITY_LOCKDOWN_LSM = whenAtLeast "5.4" no;
+      SECURITY_LOCKDOWN_LSM = no;
 
       # provides a register of persistent per-UID keyrings, useful for encrypting storage pools in stratis
       PERSISTENT_KEYRINGS              = yes;
       # enable temporary caching of the last request_key() result
-      KEYS_REQUEST_CACHE               = whenAtLeast "5.3" yes;
+      KEYS_REQUEST_CACHE               = yes;
       # randomized slab caches
       RANDOM_KMALLOC_CACHES            = whenAtLeast "6.6" yes;
 
@@ -732,9 +724,9 @@ let
       # Enable support for page poisoning. Still needs to be enabled on the command line to actually work.
       PAGE_POISONING                   = yes;
       # Randomize page allocator when page_alloc.shuffle=1
-      SHUFFLE_PAGE_ALLOCATOR = whenAtLeast "5.2" yes;
+      SHUFFLE_PAGE_ALLOCATOR = yes;
 
-      INIT_ON_ALLOC_DEFAULT_ON = whenAtLeast "5.3" yes;
+      INIT_ON_ALLOC_DEFAULT_ON = yes;
 
       # Enable stack smashing protections in schedule()
       # See: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?h=v4.8&id=0d9e26329b0c9263d4d9e0422d80a0e73268c52f
@@ -848,7 +840,7 @@ let
 
       VFIO_PCI_VGA = lib.mkIf stdenv.is64bit yes;
 
-      UDMABUF = whenAtLeast "4.20" yes;
+      UDMABUF = yes;
 
       # VirtualBox guest drivers in the kernel conflict with the ones in the
       # official additions package and prevent the vboxsf module from loading,
@@ -872,7 +864,6 @@ let
       XEN_PVH                     = option yes;
       XEN_PVHVM                   = option yes;
       XEN_SAVE_RESTORE            = option yes;
-      XEN_SELFBALLOONING          = whenOlder "5.3" yes;
 
       # Enable device detection on virtio-mmio hypervisors
       VIRTIO_MMIO_CMDLINE_DEVICES = yes;
@@ -1034,7 +1025,7 @@ let
       SERIAL_DEV_BUS = yes; # enables support for serial devices
       SERIAL_DEV_CTRL_TTYPORT = yes; # enables support for TTY serial devices
 
-      BT_HCIBTUSB_MTK = whenAtLeast "5.3" yes; # MediaTek protocol support
+      BT_HCIBTUSB_MTK = yes; # MediaTek protocol support
 
       BT_HCIUART        = module; # required for BT devices with serial port interface (QCA6390)
       BT_HCIUART_BCM    = option yes; # Broadcom Bluetooth support
@@ -1074,12 +1065,10 @@ let
       IDE                 = whenOlder "5.14" no; # deprecated IDE support, removed in 5.14
       IDLE_PAGE_TRACKING  = yes;
 
-      JOYSTICK_IFORCE_232 = { optional = true; tristate = whenOlder "5.3" "y"; }; # I-Force Serial joysticks and wheels
-      JOYSTICK_IFORCE_USB = { optional = true; tristate = whenOlder "5.3" "y"; }; # I-Force USB joysticks and wheels
       JOYSTICK_XPAD_FF    = option yes; # X-Box gamepad rumble support
       JOYSTICK_XPAD_LEDS  = option yes; # LED Support for Xbox360 controller 'BigX' LED
 
-      KEYBOARD_APPLESPI = whenAtLeast "5.3" module;
+      KEYBOARD_APPLESPI = module;
 
       KEXEC_FILE      = option yes;
       KEXEC_JUMP      = option yes;
@@ -1109,9 +1098,9 @@ let
       NVME_TARGET_AUTH = whenAtLeast "6.0" yes;
       NVME_TARGET_TCP_TLS = whenAtLeast "6.7" yes;
 
-      PCI_P2PDMA = lib.mkIf (stdenv.hostPlatform.is64bit && lib.versionAtLeast version "4.20") yes;
+      PCI_P2PDMA = lib.mkIf (stdenv.hostPlatform.is64bit) yes;
 
-      PSI = whenAtLeast "4.20" yes;
+      PSI = yes;
 
       MOUSE_ELAN_I2C_SMBUS = yes;
       MOUSE_PS2_ELANTECH = yes; # Elantech PS/2 protocol extension
@@ -1168,17 +1157,17 @@ let
       # Disable the firmware helper fallback, udev doesn't implement it any more
       FW_LOADER_USER_HELPER_FALLBACK = option no;
 
-      FW_LOADER_COMPRESS = whenAtLeast "5.3" yes;
+      FW_LOADER_COMPRESS = yes;
       FW_LOADER_COMPRESS_ZSTD = whenAtLeast "5.19" yes;
 
       HOTPLUG_PCI_ACPI = yes; # PCI hotplug using ACPI
       HOTPLUG_PCI_PCIE = yes; # PCI-Expresscard hotplug support
 
       # Enable AMD's ROCm GPU compute stack
-      HSA_AMD =     lib.mkIf stdenv.hostPlatform.is64bit (whenAtLeast "4.20" yes);
-      ZONE_DEVICE = lib.mkIf stdenv.hostPlatform.is64bit (whenAtLeast "5.3" yes);
-      HMM_MIRROR = whenAtLeast "5.3" yes;
-      DRM_AMDGPU_USERPTR = whenAtLeast "5.3" yes;
+      HSA_AMD =     lib.mkIf stdenv.hostPlatform.is64bit (yes);
+      ZONE_DEVICE = lib.mkIf stdenv.hostPlatform.is64bit (yes);
+      HMM_MIRROR = yes;
+      DRM_AMDGPU_USERPTR = yes;
 
       PREEMPT = no;
       PREEMPT_VOLUNTARY = yes;
@@ -1239,13 +1228,13 @@ let
       NR_CPUS = freeform "384";
 
       # Enable LEDS to display link-state status of PHY devices (i.e. eth lan/wan interfaces)
-      LED_TRIGGER_PHY = whenAtLeast "4.10" yes;
+      LED_TRIGGER_PHY = yes;
     } // lib.optionalAttrs (stdenv.hostPlatform.system == "armv7l-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enables support for the Allwinner Display Engine 2.0
       SUN8I_DE2_CCU = yes;
 
       # See comments on https://github.com/NixOS/nixpkgs/commit/9b67ea9106102d882f53d62890468071900b9647
-      CRYPTO_AEGIS128_SIMD = whenAtLeast "5.4" no;
+      CRYPTO_AEGIS128_SIMD = no;
 
       # Distros should configure the default as a kernel option.
       # We previously defined it on the kernel command line as cma=
@@ -1279,7 +1268,7 @@ let
       #  differently when run under aarch64 kernels compared to when
       #  it is run under an aarch32 kernel.
       COMPAT_ALIGNMENT_FIXUPS = lib.mkIf (stdenv.hostPlatform.system == "aarch64-linux") (whenAtLeast "6.1" yes);
-    } // lib.optionalAttrs (lib.versionAtLeast version "5.4" && (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux")) {
+    } // lib.optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Required for various hardware features on Chrome OS devices
       CHROME_PLATFORMS = yes;
       CHROMEOS_TBMC = module;
@@ -1294,10 +1283,10 @@ let
       CROS_KBD_LED_BACKLIGHT = module;
 
       TCG_TIS_SPI_CR50 = whenAtLeast "5.5" yes;
-    } // lib.optionalAttrs (lib.versionAtLeast version "5.4" && stdenv.hostPlatform.system == "x86_64-linux") {
+    } // lib.optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       CHROMEOS_LAPTOP = module;
       CHROMEOS_PSTORE = module;
-    } // lib.optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
+
       # Enable x86 resource control
       X86_CPU_RESCTRL = whenAtLeast "5.0" yes;
 
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 62f1fcdda20c6..dc3b43a4d19f9 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -1,82 +1,62 @@
 {
-    "4.19": {
-        "patch": {
-            "extra": "-hardened1",
-            "name": "linux-hardened-4.19.315-hardened1.patch",
-            "sha256": "1w17mwsv618pw5bkahmz6in0i5zjjxd3d14gggafqdd3dgfr1h8q",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.315-hardened1/linux-hardened-4.19.315-hardened1.patch"
-        },
-        "sha256": "1j1j8awy0237jp2r211qpa305c10y7rlcbkxkzdvzbgyhwy4spkc",
-        "version": "4.19.315"
-    },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.218-hardened1.patch",
-            "sha256": "1ah4pznha17ngg3w7l0j74h4910gjv8qj503adrap7plvapf82m4",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.218-hardened1/linux-hardened-5.10.218-hardened1.patch"
+            "name": "linux-hardened-v5.10.226-hardened1.patch",
+            "sha256": "1vxcr0f3ikkg10wcvq76djxzmhlc6h5fv34xf8vm48wfi7ryajbk",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/v5.10.226-hardened1/linux-hardened-v5.10.226-hardened1.patch"
         },
-        "sha256": "1mmj5hwm5i16gc1y4nzr1cs882vi6vrihrincdcivv63x11v4dlw",
-        "version": "5.10.218"
+        "sha256": "19hwwl5sbya65mch7fwmji2cli9b8796zjqbmkybjrarg1j9m8gn",
+        "version": "5.10.226"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.160-hardened1.patch",
-            "sha256": "1r10ylx886rslsmrixlijjm4crhwzkl3wj6kpyn2344qik1gxpqr",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.160-hardened1/linux-hardened-5.15.160-hardened1.patch"
+            "name": "linux-hardened-v5.15.167-hardened1.patch",
+            "sha256": "1mwww490bf5i1njzyprnamfn8n471r94klgn7wghwi2f5vsn6j9g",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/v5.15.167-hardened1/linux-hardened-v5.15.167-hardened1.patch"
         },
-        "sha256": "018v19a7rhzc4szybzzn86jlnk42x7jm6xkadfd2d3xq6f7727pl",
-        "version": "5.15.160"
+        "sha256": "0c6s6l5sz9ibws7bymb393ww0z9i3amsk1yx0bahipz3xhc1yxdi",
+        "version": "5.15.167"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.277-hardened1.patch",
-            "sha256": "1zjw5wl8lj69j402qm8dg3m4dxgq3ppx2jyz8jks976vyhh8fsg4",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.277-hardened1/linux-hardened-5.4.277-hardened1.patch"
+            "name": "linux-hardened-v5.4.284-hardened1.patch",
+            "sha256": "1skqaq90bigrxg0w075nssqbdq868ii62r8asx0m6wcvd5cl50af",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/v5.4.284-hardened1/linux-hardened-v5.4.284-hardened1.patch"
         },
-        "sha256": "0l8zq3k07hdprfpvw69ykkf2pdg8wiv28xz733yxsjcfb0l5n7vy",
-        "version": "5.4.277"
+        "sha256": "0axkwfhvq3w2072xjqww476qa3rjglxyqmf72mlp9b5ymswil8kp",
+        "version": "5.4.284"
     },
     "6.1": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.1.92-hardened1.patch",
-            "sha256": "0cw87ygmisi823y3f7xrck12b6zh3mq1qmb7lcmr3hg6w3xskmn3",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.1.92-hardened1/linux-hardened-6.1.92-hardened1.patch"
-        },
-        "sha256": "1j9n8gk76nn4gw42iba5zgghr360gb9n1mslr5dyv76wpwkz86ch",
-        "version": "6.1.92"
-    },
-    "6.6": {
-        "patch": {
-            "extra": "-hardened1",
-            "name": "linux-hardened-6.6.32-hardened1.patch",
-            "sha256": "19362a6lxs3cnaw19jvda7n791y95lfgn9ki4wmaxnw2qbpi0bgg",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.6.32-hardened1/linux-hardened-6.6.32-hardened1.patch"
+            "name": "linux-hardened-v6.1.110-hardened1.patch",
+            "sha256": "1v43n3h9d3y3xjjyf6r8n7a3fh3zpqw4f925bn2z5vwzblmg4bhf",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.1.110-hardened1/linux-hardened-v6.1.110-hardened1.patch"
         },
-        "sha256": "1qbc8dqmk2xs1cz968rysw5xvhq3lj8g0pxp48fr2qbzy3m29a5a",
-        "version": "6.6.32"
+        "sha256": "0slgvwldjdyi5vzhgriamkmrj4p942yacclgcw29331gfjs39gly",
+        "version": "6.1.110"
     },
-    "6.8": {
+    "6.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.8.11-hardened1.patch",
-            "sha256": "08i03dmri9h6jxcjd9g6s7pv0spqi3f4fgch1ars68cgngikvbpq",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.8.11-hardened1/linux-hardened-6.8.11-hardened1.patch"
+            "name": "linux-hardened-v6.10.10-hardened1.patch",
+            "sha256": "13hlk1qd9inq711bz2sw4rq6r2lcagdl7mwxkx6rq8iimic758f2",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.10.10-hardened1/linux-hardened-v6.10.10-hardened1.patch"
         },
-        "sha256": "1di8kr596sf68sm61kp5rz6bn3sb0q5ag1qc5hm8f9dpyq4wv3dp",
-        "version": "6.8.11"
+        "sha256": "1kcvh1g3p1sj4q34ylcmm43824f97z4k695lcxnzp7pbnlsyg1z6",
+        "version": "6.10.10"
     },
-    "6.9": {
+    "6.6": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-6.9.2-hardened1.patch",
-            "sha256": "0ph1m0pnlqrhvddz2mjgcwvs0ddcpzigz8kgi9zi063qinlfbm3q",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/6.9.2-hardened1/linux-hardened-6.9.2-hardened1.patch"
+            "name": "linux-hardened-v6.6.51-hardened1.patch",
+            "sha256": "03m82lylflnk466ixz3dywnj7scp6ynif4qhbx67ak3f0n44f738",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/v6.6.51-hardened1/linux-hardened-v6.6.51-hardened1.patch"
         },
-        "sha256": "1yg5j284y1gz7zwxjz2abvlnas259m1y1vzd9lmcqqar5kgmnv6l",
-        "version": "6.9.2"
+        "sha256": "1cq8l3n12gnk6kgms5c7v71l199ip8lc9fpx7s8w8y88cla9l30w",
+        "version": "6.6.51"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/hardened/update.py b/pkgs/os-specific/linux/kernel/hardened/update.py
index 8b46137afb37b..0603812124bea 100755
--- a/pkgs/os-specific/linux/kernel/hardened/update.py
+++ b/pkgs/os-specific/linux/kernel/hardened/update.py
@@ -145,7 +145,7 @@ def fetch_patch(*, name: str, release_info: ReleaseInfo) -> Optional[Patch]:
     if not sig_ok:
         return None
 
-    kernel_ver = re.sub(r"(.*)(-hardened[\d]+)$", r'\1', release_info.release.tag_name)
+    kernel_ver = re.sub(r"v?(.*)(-hardened[\d]+)$", r'\1', release_info.release.tag_name)
     major = kernel_ver.split('.')[0]
     sha256_kernel, _ = nix_prefetch_url(f"mirror://kernel/linux/kernel/v{major}.x/linux-{kernel_ver}.tar.xz")
 
@@ -157,8 +157,11 @@ def fetch_patch(*, name: str, release_info: ReleaseInfo) -> Optional[Patch]:
 
 
 def parse_version(version_str: str) -> Version:
+    # There have been two variants v6.10[..] and 6.10[..], drop the v
+    version_str_without_v = version_str[1:] if not version_str[0].isdigit() else version_str
     version: Version = []
-    for component in re.split(r'\.|\-', version_str):
+
+    for component in re.split(r'\.|\-', version_str_without_v):
         try:
             version.append(int(component))
         except ValueError:
@@ -227,7 +230,7 @@ for release in repo.get_releases():
     # It's not reliable to exit earlier because not every kernel minor may
     # have hardened patches, hence the naive search below.
     i += 1
-    if i > 500:
+    if i > 100:
         break
 
     version = parse_version(release.tag_name)
diff --git a/pkgs/os-specific/linux/kernel/kernels-org.json b/pkgs/os-specific/linux/kernel/kernels-org.json
index ba862f9551c73..2eb28ea420256 100644
--- a/pkgs/os-specific/linux/kernel/kernels-org.json
+++ b/pkgs/os-specific/linux/kernel/kernels-org.json
@@ -19,22 +19,10 @@
         "version": "5.4.284",
         "hash": "sha256:0axkwfhvq3w2072xjqww476qa3rjglxyqmf72mlp9b5ymswil8kp"
     },
-    "4.19": {
-        "version": "4.19.322",
-        "hash": "sha256:0qj106lj554y1kdqj8kwyf7pk9bvrrpgz6s8zyh7d61mk7wws9sf"
-    },
     "6.6": {
         "version": "6.6.52",
         "hash": "sha256:1f5l6y7abscm01dr740fzvq8r756ar854n0i299smm4rhcsap48m"
     },
-    "6.8": {
-        "version": "6.8.12",
-        "hash": "sha256:0fb0m0fv4521g63gq04d7lm6hy8169s1rykiav5bkd99s9b1kcqr"
-    },
-    "6.9": {
-        "version": "6.9.12",
-        "hash": "sha256:08ngskni7d9wi93vlwcmbdg7sb2jl1drhhzn62k9nsrg1r7crrss"
-    },
     "6.10": {
         "version": "6.10.11",
         "hash": "sha256:15ihkbsj0idwzbvhynjm3kcnkk0alf3xipip8ngib1f1z13a0kgv"
diff --git a/pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch b/pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch
deleted file mode 100644
index 58a9191989ae9..0000000000000
--- a/pkgs/os-specific/linux/kernel/modinst-arg-list-too-long.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/scripts/Makefile.modinst b/scripts/Makefile.modinst
-index 07650ee..934a7a8 100644
---- a/scripts/Makefile.modinst
-+++ b/scripts/Makefile.modinst
-@@ -9,7 +9,8 @@ include scripts/Kbuild.include
- 
- #
- 
--__modules := $(sort $(shell grep -h '\.ko$$' /dev/null $(wildcard $(MODVERDIR)/*.mod)))
-+__modules := $(sort $(foreach f,$(wildcard $(MODVERDIR)/*.mod),$(shell \
-+    grep -h '\.ko$$' '$f')))
- modules := $(patsubst %.o,%.ko,$(wildcard $(__modules:.ko=.o)))
- 
- PHONY += $(modules)
diff --git a/pkgs/os-specific/linux/kernel/patches.nix b/pkgs/os-specific/linux/kernel/patches.nix
index 5d4ebc214dc7b..9e15991dd635a 100644
--- a/pkgs/os-specific/linux/kernel/patches.nix
+++ b/pkgs/os-specific/linux/kernel/patches.nix
@@ -39,11 +39,6 @@
       patch = ./request-key-helper-updated.patch;
     };
 
-  modinst_arg_list_too_long =
-    { name = "modinst-arglist-too-long";
-      patch = ./modinst-arg-list-too-long.patch;
-    };
-
   hardened = let
     mkPatch = kernelVersion: { version, sha256, patch }: let src = patch; in {
       name = lib.removeSuffix ".patch" src.name;
diff --git a/pkgs/os-specific/linux/kernel/perf/default.nix b/pkgs/os-specific/linux/kernel/perf/default.nix
index 15f92157e1470..0d639531e840b 100644
--- a/pkgs/os-specific/linux/kernel/perf/default.nix
+++ b/pkgs/os-specific/linux/kernel/perf/default.nix
@@ -57,13 +57,12 @@ in
 
 stdenv.mkDerivation {
   pname = "perf-linux";
-  version = kernel.version;
+  inherit (kernel) version src;
 
-  inherit (kernel) src;
-
-  # Fix 6.10.0 holding pkg-config completely wrong.
-  # Patches from perf-tools-next, should be in 6.11 or hopefully backported.
-  patches = lib.optionals (lib.versions.majorMinor kernel.version == "6.10") [
+  patches = [
+    # fix wrong path to dmesg
+    ./fix-dmesg-path.diff
+  ] ++ lib.optionals (lib.versions.majorMinor kernel.version == "6.10") [
     (fetchpatch {
       url = "https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git/patch/?id=0f0e1f44569061e3dc590cd0b8cb74d8fd53706b";
       hash = "sha256-9u/zhbsDgwOr4T4k9td/WJYRuSHIfbtfS+oNx8nbOlM=";
diff --git a/pkgs/os-specific/linux/kernel/perf/fix-dmesg-path.diff b/pkgs/os-specific/linux/kernel/perf/fix-dmesg-path.diff
new file mode 100644
index 0000000000000..0bc3300a2eaf2
--- /dev/null
+++ b/pkgs/os-specific/linux/kernel/perf/fix-dmesg-path.diff
@@ -0,0 +1,11 @@
+--- a/tools/perf/util/evsel.c	2023-10-20 15:50:53.011023294 +0200
++++ b/tools/perf/util/evsel.c	2023-10-20 15:51:03.205997633 +0200
+@@ -3076,7 +3076,7 @@
+ 
+ 	return scnprintf(msg, size,
+ 	"The sys_perf_event_open() syscall returned with %d (%s) for event (%s).\n"
+-	"/bin/dmesg | grep -i perf may provide additional information.\n",
++	"\"dmesg | grep -i perf\" may provide additional information.\n",
+ 			 err, str_error_r(err, sbuf, sizeof(sbuf)), evsel__name(evsel));
+ }
+ 
diff --git a/pkgs/os-specific/linux/nfs-utils/default.nix b/pkgs/os-specific/linux/nfs-utils/default.nix
index 89f4ae7c97f23..74f560992adeb 100644
--- a/pkgs/os-specific/linux/nfs-utils/default.nix
+++ b/pkgs/os-specific/linux/nfs-utils/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, lib, pkg-config, util-linux, libcap, libtirpc, libevent
 , sqlite, libkrb5, kmod, libuuid, keyutils, lvm2, systemd, coreutils, tcp_wrappers
-, python3, buildPackages, nixosTests, rpcsvc-proto, openldap, libxml2
+, python3, buildPackages, nixosTests, rpcsvc-proto, openldap, cyrus_sasl, libxml2
 , enablePython ? true, enableLdap ? true
 }:
 
@@ -27,7 +27,10 @@ stdenv.mkDerivation rec {
     libtirpc libcap libevent sqlite lvm2
     libuuid keyutils libkrb5 tcp_wrappers libxml2
   ] ++ lib.optional enablePython python3
-    ++ lib.optional enableLdap  openldap;
+  ++ lib.optionals enableLdap [
+    openldap
+    cyrus_sasl
+  ];
 
   enableParallelBuilding = true;
 
@@ -48,7 +51,7 @@ stdenv.mkDerivation rec {
       "--with-pluginpath=${placeholder "lib"}/lib/libnfsidmap" # this installs libnfsidmap
       "--with-rpcgen=${buildPackages.rpcsvc-proto}/bin/rpcgen"
       "--with-modprobedir=${placeholder "out"}/etc/modprobe.d"
-    ] ++ lib.optional enableLdap "--with-ldap";
+    ] ++ lib.optional enableLdap "--enable-ldap";
 
   patches = lib.optionals stdenv.hostPlatform.isMusl [
     # http://openwall.com/lists/musl/2015/08/18/10
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index b3a54b1e622b9..1ce8a8a2f9dc0 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -17,20 +17,20 @@ let
 in
 python3.pkgs.buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.114.0";
+  version = "1.115.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "element-hq";
     repo = "synapse";
     rev = "v${version}";
-    hash = "sha256-AvUc6vE2gjsUEbRLaexDbvEPwJio7W3YMyN3fJvr4c0=";
+    hash = "sha256-R7TAuAdEGvk/cAttxbrOZkZfsfbrsPujt0zVcp3aDZQ=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-cAGTEi7UwNVfTzckWBpjxfEMWXZRZDdkXIhx/HjAiTg=";
+    hash = "sha256-h84Hp+vhGfunbD3nRb1EXPnGhnMXncjk3ASKdRr805Y=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/minio/default.nix b/pkgs/servers/minio/default.nix
index 09918625b1c16..15351840a2b18 100644
--- a/pkgs/servers/minio/default.nix
+++ b/pkgs/servers/minio/default.nix
@@ -21,16 +21,16 @@ let
 in
 buildGoModule rec {
   pname = "minio";
-  version = "2024-09-09T16-59-28Z";
+  version = "2024-09-13T20-26-02Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    hash = "sha256-mFt1oo48GC9mVnGXSWc3SgtgQZlu1L9zAfM7nBYd9jE=";
+    hash = "sha256-ldPPnN63OZdnsQjeiKT32VVFkaRyvJ10M5EsVCBoz8I=";
   };
 
-  vendorHash = "sha256-otRSkxMoshDHLwUn/VA+svvb/fJhkBqZth1lfOUBytY=";
+  vendorHash = "sha256-nK3t3wwV6vhU7SHYfhV/LDs5S9N5yTXjB2cbB0rwk+I=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/monitoring/loki/default.nix b/pkgs/servers/monitoring/loki/default.nix
index 00924d94c5ae8..aa70eda0de812 100644
--- a/pkgs/servers/monitoring/loki/default.nix
+++ b/pkgs/servers/monitoring/loki/default.nix
@@ -10,14 +10,14 @@
 }:
 
 buildGoModule rec {
-  version = "3.1.1";
+  version = "3.2.0";
   pname = "grafana-loki";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = "loki";
     rev = "v${version}";
-    hash = "sha256-QOokLht/nIzQAzXQuJv5M4QTQD0Zhzf9+Q0ILl2Mds0=";
+    hash = "sha256-dche8MbVSlwKMD/znOCj80FNf5KZmEuI3uodrFLrmjM=";
   };
 
   vendorHash = null;
diff --git a/pkgs/servers/sql/mariadb/default.nix b/pkgs/servers/sql/mariadb/default.nix
index dfa16d47968e3..7887704279646 100644
--- a/pkgs/servers/sql/mariadb/default.nix
+++ b/pkgs/servers/sql/mariadb/default.nix
@@ -244,28 +244,26 @@ in
     # see https://mariadb.org/about/#maintenance-policy for EOLs
     mariadb_105 = self.callPackage generic {
       # Supported until 2025-06-24
-      # TODO should be removed
-      version = "10.5.25";
-      hash = "sha256-lhnQ9R6GQ1dGayxjMBo0pT99/ZnxjE/UUvqyK/Obpk4=";
+      version = "10.5.26";
+      hash = "sha256-3V+ZodMK5HNl/Bix3u/23AqzishOfZ/ZyMBP9rAZYfE=";
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
     mariadb_106 = self.callPackage generic {
       # Supported until 2026-07-06
-      version = "10.6.18";
-      hash = "sha256-aJihER9HEwcJ4ouix70aV+S7VxAfbhCeWX1R5tOFzxg=";
+      version = "10.6.19";
+      hash = "sha256-vOyw/3t5pBNEc2+plHEHh8FVFtUet3FfJ4w/D8t+hwM=";
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
     mariadb_1011 = self.callPackage generic {
       # Supported until 2028-02-16
-      version = "10.11.8";
-      hash = "sha256-XwTz4z2fHL7/BeecVNQdMCYwUAyZWu5ysGOOL5383w8=";
+      version = "10.11.9";
+      hash = "sha256-CgAYCGTNAWGHyYb6q4AQ3iOhF7mnX5HWRWQh+JTkjSA=";
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
-    mariadb_110 = self.callPackage generic {
-      # Supported until 2024-06-07
-      # TODO should be removed
-      version = "11.0.6";
-      hash = "sha256-AYnWKUbDfG20a/GkaLqVgLy6joDwWVjsSDwzh+zPmgA=";
+    mariadb_114 = self.callPackage generic {
+      # Supported until 2029-05-29
+      version = "11.4.3";
+      hash = "sha256-bwAXuZAbsYl94O7SHK75/6nWbvVZNFoNim8BEwhBPs4=";
       inherit (self.darwin.apple_sdk.frameworks) CoreServices;
     };
   }
diff --git a/pkgs/servers/sql/mariadb/patch/0001-Fix-build-with-libxml2-2.12.patch b/pkgs/servers/sql/mariadb/patch/0001-Fix-build-with-libxml2-2.12.patch
deleted file mode 100644
index a12dfb73d09de..0000000000000
--- a/pkgs/servers/sql/mariadb/patch/0001-Fix-build-with-libxml2-2.12.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From 1f1ee5d3776af7ef56ffa3f4dcd22532c2c86c74 Mon Sep 17 00:00:00 2001
-From: Jan Tojnar <jtojnar@gmail.com>
-Date: Sun, 7 Jan 2024 10:19:54 +0100
-Subject: [PATCH] Fix build with libxml2 2.12
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-libxml2 2.12.0 made `xmlGetLastError()` return `const` pointer:
-
-https://gitlab.gnome.org/GNOME/libxml2/-/commit/61034116d0a3c8b295c6137956adc3ae55720711
-
-Clang 16 does not like this:
-
-    error: assigning to 'xmlErrorPtr' (aka '_xmlError *') from 'const xmlError *' (aka 'const _xmlError *') discards qualifiers
-    error: cannot initialize a variable of type 'xmlErrorPtr' (aka '_xmlError *') with an rvalue of type 'const xmlError *' (aka 'const _xmlError *')
-
-Let’s update the variables to `const`.
-For older versions, it will be automatically converted.
-
-But then `xmlResetError(xmlError*)` will not like the `const` pointer:
-
-    error: no matching function for call to 'xmlResetError'
-    note: candidate function not viable: 1st argument ('const xmlError *' (aka 'const _xmlError *')) would lose const qualifier
-
-Let’s replace it with `xmlResetLastError()`.
-
-ALso remove `LIBXMLDOC::Xerr` protected member property.
-It was introduced in 65b0e5455b547a3d574fa77b34cce23ae3bea0a0
-along with the `xmlResetError` calls.
-It does not appear to be used for anything.
----
- storage/connect/libdoc.cpp | 39 +++++++++++++++++++-------------------
- 1 file changed, 19 insertions(+), 20 deletions(-)
-
-diff --git a/storage/connect/libdoc.cpp b/storage/connect/libdoc.cpp
-index e414aa88355..10edcbc3ffa 100644
---- a/storage/connect/libdoc.cpp
-+++ b/storage/connect/libdoc.cpp
-@@ -93,7 +93,6 @@ class LIBXMLDOC : public XMLDOCUMENT {
-   xmlXPathContextPtr Ctxp;
-   xmlXPathObjectPtr  Xop;
-   xmlXPathObjectPtr  NlXop;
--  xmlErrorPtr        Xerr;
-   char              *Buf;                  // Temporary
-   bool               Nofreelist;
- }; // end of class LIBXMLDOC
-@@ -327,7 +326,6 @@ LIBXMLDOC::LIBXMLDOC(char *nsl, char *nsdf, char *enc, PFBLOCK fp)
-   Ctxp = NULL;
-   Xop = NULL;
-   NlXop = NULL;
--  Xerr = NULL;
-   Buf = NULL;
-   Nofreelist = false;
-   } // end of LIBXMLDOC constructor
-@@ -365,8 +363,8 @@ bool LIBXMLDOC::ParseFile(PGLOBAL g, char *fn)
-       Encoding = (char*)Docp->encoding;
- 
-     return false;
--  } else if ((Xerr = xmlGetLastError()))
--    xmlResetError(Xerr);
-+  } else if (xmlGetLastError())
-+    xmlResetLastError();
- 
-   return true;
-   } // end of ParseFile
-@@ -505,9 +503,9 @@ int LIBXMLDOC::DumpDoc(PGLOBAL g, char *ofn)
- #if 1
-   // This function does not crash (
-   if (xmlSaveFormatFileEnc((const char *)ofn, Docp, Encoding, 0) < 0) {
--    xmlErrorPtr err = xmlGetLastError();
-+    const xmlError *err = xmlGetLastError();
-     strcpy(g->Message, (err) ? err->message : "Error saving XML doc");
--    xmlResetError(Xerr);
-+    xmlResetLastError();
-     rc = -1;
-     } // endif Save
- //  rc = xmlDocDump(of, Docp);
-@@ -546,8 +544,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
-     if (Nlist) {
-       xmlXPathFreeNodeSet(Nlist);
- 
--      if ((Xerr = xmlGetLastError()))
--        xmlResetError(Xerr);
-+      if (xmlGetLastError())
-+        xmlResetLastError();
- 
-       Nlist = NULL;
-       } // endif Nlist
-@@ -555,8 +553,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
-     if (Xop) {
-       xmlXPathFreeObject(Xop);
- 
--      if ((Xerr = xmlGetLastError()))
--        xmlResetError(Xerr);
-+      if (xmlGetLastError())
-+        xmlResetLastError();
- 
-       Xop = NULL;
-       } // endif Xop
-@@ -564,8 +562,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
-     if (NlXop) {
-       xmlXPathFreeObject(NlXop);
- 
--      if ((Xerr = xmlGetLastError()))
--        xmlResetError(Xerr);
-+      if (xmlGetLastError())
-+        xmlResetLastError();
- 
-       NlXop = NULL;
-       } // endif NlXop
-@@ -573,8 +571,8 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
-     if (Ctxp) {
-       xmlXPathFreeContext(Ctxp);
- 
--      if ((Xerr = xmlGetLastError()))
--        xmlResetError(Xerr);
-+      if (xmlGetLastError())
-+        xmlResetLastError();
- 
-       Ctxp = NULL;
-       } // endif Ctxp
-@@ -590,6 +588,7 @@ void LIBXMLDOC::CloseDoc(PGLOBAL g, PFBLOCK xp)
- /******************************************************************/
- xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp)
-   {
-+  const xmlError *xerr;
-   xmlNodeSetPtr nl;
- 
-   if (trace(1))
-@@ -649,11 +648,11 @@ xmlNodeSetPtr LIBXMLDOC::GetNodeList(PGLOBAL g, xmlNodePtr np, char *xp)
-     } else
-       xmlXPathFreeObject(Xop);            // Caused node not found
- 
--    if ((Xerr = xmlGetLastError())) {
--      strcpy(g->Message, Xerr->message);
--      xmlResetError(Xerr);
-+    if ((xerr = xmlGetLastError())) {
-+      strcpy(g->Message, xerr->message);
-+      xmlResetLastError();
-       return NULL;
--      } // endif Xerr
-+      } // endif xerr
- 
-     } // endif Xop
- 
-@@ -1079,7 +1078,7 @@ void XML2NODE::AddText(PGLOBAL g, PCSZ txtp)
- /******************************************************************/
- void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
-   {
--  xmlErrorPtr xerr;
-+  const xmlError *xerr;
- 
-   if (trace(1))
-     htrc("DeleteChild: node=%p\n", dnp);
-@@ -1122,7 +1121,7 @@ void XML2NODE::DeleteChild(PGLOBAL g, PXNODE dnp)
-   if (trace(1))
-     htrc("DeleteChild: errmsg=%-.256s\n", xerr->message);
- 
--  xmlResetError(xerr);
-+  xmlResetLastError();
-   } // end of DeleteChild
- 
- /* -------------------- class XML2NODELIST ---------------------- */
--- 
-2.42.0
-
diff --git a/pkgs/servers/web-apps/kavita/default.nix b/pkgs/servers/web-apps/kavita/default.nix
index 1adbbecec3bbd..0225e2a346b80 100644
--- a/pkgs/servers/web-apps/kavita/default.nix
+++ b/pkgs/servers/web-apps/kavita/default.nix
@@ -1,23 +1,22 @@
-{ lib
-, stdenvNoCC
-, fetchFromGitHub
-, buildDotnetModule
-, buildNpmPackage
-, dotnetCorePackages
-, nixosTests
+{
+  lib,
+  stdenvNoCC,
+  fetchFromGitHub,
+  buildDotnetModule,
+  buildNpmPackage,
+  dotnetCorePackages,
+  nixosTests,
 }:
 
 stdenvNoCC.mkDerivation (finalAttrs: {
   pname = "kavita";
-  version = "0.8.2";
+  version = "0.8.3.2";
 
   src = fetchFromGitHub {
     owner = "kareadita";
     repo = "kavita";
-    # commit immediately following the v${version} tag
-    # for correct version reporting
-    rev = "44c046176e54fa81e3420a1a40dcd9871e0a45f1";
-    hash = "sha256-cHX6nzajFqygdFF9y4KEAMv0tdNx9xFbpOoVNo8uafs=";
+    rev = "v${finalAttrs.version}";
+    hash = "sha256-8ZE3zlWX8DxLYUFj3AA04cIJTUWYgnNM+5FZhGmlRz8=";
   };
 
   backend = buildDotnetModule {
@@ -49,7 +48,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     dotnet-runtime = dotnetCorePackages.aspnetcore_8_0;
   };
 
-  frontend =  buildNpmPackage {
+  frontend = buildNpmPackage {
     pname = "kavita-frontend";
     inherit (finalAttrs) version src;
 
@@ -58,7 +57,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     npmBuildScript = "prod";
     npmFlags = [ "--legacy-peer-deps" ];
     npmRebuildFlags = [ "--ignore-scripts" ]; # Prevent playwright from trying to install browsers
-    npmDepsHash = "sha256-H53lwRr43MQWBbwc8N0GikAOkN2N0CwyiY8eGHveNFc=";
+    npmDepsHash = "sha256-EB4B6BHiRi6A4nhj2dR+3q1MZKcfcYUuo4ls4WMJEUI=";
   };
 
   dontBuild = true;
@@ -75,7 +74,9 @@ stdenvNoCC.mkDerivation (finalAttrs: {
   '';
 
   passthru = {
-    tests = { inherit (nixosTests) kavita; };
+    tests = {
+      inherit (nixosTests) kavita;
+    };
     updateScript = ./update.sh;
   };
 
@@ -85,7 +86,10 @@ stdenvNoCC.mkDerivation (finalAttrs: {
     changelog = "https://github.com/kareadita/kavita/releases/tag/${finalAttrs.src.rev}";
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ misterio77 nevivurn ];
+    maintainers = with lib.maintainers; [
+      misterio77
+      nevivurn
+    ];
     mainProgram = "kavita";
   };
 })
diff --git a/pkgs/servers/web-apps/kavita/nuget-deps.nix b/pkgs/servers/web-apps/kavita/nuget-deps.nix
index 77fa4d46c88a5..085e615b19d2a 100644
--- a/pkgs/servers/web-apps/kavita/nuget-deps.nix
+++ b/pkgs/servers/web-apps/kavita/nuget-deps.nix
@@ -25,18 +25,18 @@
   (fetchNuGet { pname = "Hangfire.NetCore"; version = "1.8.14"; hash = "sha256-AcBAONay/nnNrGy0Hjt1UA7rxzIeTm0rQgZO+AJpQbM="; })
   (fetchNuGet { pname = "Hangfire.SqlServer"; version = "1.8.14"; hash = "sha256-OkKb2D2kKN9ESrSwFH1up9/KC4qZHblGiuLLwMWojfE="; })
   (fetchNuGet { pname = "Hangfire.Storage.SQLite"; version = "0.4.2"; hash = "sha256-//40m/V+kgcDrKJ7/YfX1upOK9ZQEG/Bpbk7c5PmQuk="; })
-  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.61"; hash = "sha256-exRJTP7mHNt31CKaejKSSkKPm74ratfnpGl50AqZwlY="; })
+  (fetchNuGet { pname = "HtmlAgilityPack"; version = "1.11.64"; hash = "sha256-tj0yh2B2st0k4DABKA/LFh7lH3c07soEfxwH8AL7PSY="; })
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.14.1"; hash = "sha256-EXvojddPu+9JKgOG9NSQgUTfWq1RpOYw7adxDPKDJ6o="; })
-  (fetchNuGet { pname = "MailKit"; version = "4.7.0"; hash = "sha256-9KcpzvO9MKAlxCh2B2XOBWbPfQ8TRo27gxuSJpB57vs="; })
+  (fetchNuGet { pname = "MailKit"; version = "4.7.1.1"; hash = "sha256-g9VnuGYTPNUa6woEO/gVbxNfaidHgGtoQw2qOgYLK0o="; })
   (fetchNuGet { pname = "MarkdownDeep.NET.Core"; version = "1.5.0.4"; hash = "sha256-NO//QjqAcE4yDmQARbThyp8fdFrE2U0Bed5XToOG+jI="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.Abstractions"; version = "2.2.0"; hash = "sha256-0JcJYAoU+AEM0dWaXk2qnqxrVM0Ak9/ntCU1MC90R24="; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.JwtBearer"; version = "8.0.6"; hash = "sha256-rUg3keud5JjMtyncxNc2/8Sey2bMTth/AFjeketJR88="; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.OpenIdConnect"; version = "8.0.6"; hash = "sha256-tTPB/xKJA9BJiwcrBhcV+kwqxyumew2RXDlicn85fgE="; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.JwtBearer"; version = "8.0.8"; hash = "sha256-HnRXaASyL3Q3tA++0C4JiIhUSTeFtEX+acybs8uiXZ8="; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Authentication.OpenIdConnect"; version = "8.0.8"; hash = "sha256-7Nbhyn29No/p2/nqFc+C41J1mnU5DBYUrnVSxbod+QM="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "2.2.0"; hash = "sha256-PaMYICjQ0rprUv53Uza/jQvvWTcbPjGLMMp12utF+NY="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization.Policy"; version = "2.2.0"; hash = "sha256-onFYB+jtCbGyfZsIglReCPRdDMmwah2EDMhJN4uBP7Q="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "2.2.0"; hash = "sha256-MoieWAe7zT/0a7PAn3gMKO8YpHTbOtiGIwF/sFAmieY="; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "8.0.6"; hash = "sha256-8+2aRr6mWkdzcGEpIAA9mwI+HPAxqZek8MtNS50mPJQ="; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.KeyDerivation"; version = "8.0.6"; hash = "sha256-5ss60ArZhhZCml464QwlRdvRdyBWIR8cmCZfiPt05vo="; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.Internal"; version = "8.0.8"; hash = "sha256-VS+6L2gvDAIS51kpAamt8FHDbiIwYBpBh2ADvKO3uRU="; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Cryptography.KeyDerivation"; version = "8.0.8"; hash = "sha256-nwzIcerY8JKBkkJgw2ozTmGRyXrVkP6BnMYbDYNLe24="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Abstractions"; version = "2.2.0"; hash = "sha256-GzqYrTqCCVy41AOfmgIRY1kkqxekn5T0gFC7tUMxcxA="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Hosting.Server.Abstractions"; version = "2.2.0"; hash = "sha256-8PnZFCkMwAeEHySmmjJOnQvOyx2199PesYHBnfka51s="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http"; version = "2.2.0"; hash = "sha256-+ARZomTXSD1m/PR3TWwifXb67cQtoqDVWEqfoq5Tmbk="; })
@@ -45,7 +45,7 @@
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "1.1.0"; hash = "sha256-PooDjJHsIcZkL2IOp530pJr4GLGlre2sIdboNRrAcHQ="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Extensions"; version = "2.2.0"; hash = "sha256-1rXxGQnkNR+SiNMtDShYoQVGOZbvu4P4ZtWj5Wq4D4U="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Features"; version = "2.2.0"; hash = "sha256-odvntHm669YtViNG5fJIxU4B+akA2SL8//DvYCLCNHc="; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.Identity.EntityFrameworkCore"; version = "8.0.6"; hash = "sha256-8Jc28VhEkWgW0dE5riY/Ye7w6vlkIQ44dduLBx1p/s4="; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.Identity.EntityFrameworkCore"; version = "8.0.8"; hash = "sha256-fgnUFp18Uop3gpfs/jLFEf/leDJoWtECVvEX5ZN9cyw="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Routing"; version = "2.2.0"; hash = "sha256-mvsF973Cm48XUB6lPBiGp7U7vkfBjB3oILdnIQUwe4o="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Routing.Abstractions"; version = "2.2.0"; hash = "sha256-nqJjxKXkdPAY1XvQjIRNW2y855Xi+LAX1S5AncPnPDU="; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.SignalR"; version = "1.1.0"; hash = "sha256-VCTxQAWRKBk640FhkGu4XUcfWXWSV8x4jEfezDoM4Jo="; })
@@ -62,14 +62,14 @@
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "4.5.0"; hash = "sha256-WM7AXJYHagaPx2waj2E32gG0qXq6Kx4Zhiq7Ym3WXPI="; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; hash = "sha256-0huoqR2CJ3Z9Q2peaKD09TV3E6saYSqDGZ290K8CrH8="; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; hash = "sha256-Enknv2RsFF68lEPdrf5M+BpV1kHoLTVRApKUwuk/pj0="; })
-  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.6"; hash = "sha256-MgUBbb0LDM1ixm8pBfBrSTVjNoGFn6NQMD36mirELmo="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.6"; hash = "sha256-T9Pz6bCGULBEYjzdUBd1KXSAnw1c4VljSkwgbTE2MmE="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.6"; hash = "sha256-RdcIA9WUJnHyAFdlpBPs5qUusKMUH9uLFGusKBWDCX8="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.6"; hash = "sha256-aTWfaOL0MfWYBbR+1Q1g+sxzmcjA4Q/OBFnVZDQqKJ8="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "8.0.6"; hash = "sha256-svQdeAv19bCM/RQwWFA6wFssrXecqazqs5ctbdZCBgQ="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "8.0.6"; hash = "sha256-l2fkzSq3Tb15Uq7a879Bihat+Y7rijDwsrs/MDiApdw="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "8.0.6"; hash = "sha256-kb+8eSHhmaxJ5OXYSFTHtKYaQ2TV+WJ5nfZMP+XXsto="; })
-  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "8.0.6"; hash = "sha256-4rVgUuCdBUvQyEnadrieZ1RxgwGAfuRCj9kkWM24NKA="; })
+  (fetchNuGet { pname = "Microsoft.Data.Sqlite.Core"; version = "8.0.8"; hash = "sha256-5qV38l8ZeCZTE5f5+f5XFNzUCuTurqDti2qxobeYPXk="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore"; version = "8.0.8"; hash = "sha256-w4NJ3K5ot/oZO5xIGcVLE7n4x/Jnmz0/VYfumnACcuc="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Abstractions"; version = "8.0.8"; hash = "sha256-93QnvBG9lz9TuWx4o1yvEvWMq2k3jD7G77yI8pl8hz8="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Analyzers"; version = "8.0.8"; hash = "sha256-xjqccaSQW7pJinwWPv2eLuVA2vchIJcRroYVTbywTnQ="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Design"; version = "8.0.8"; hash = "sha256-Bxfg9/w3/bUwsWgASf5TAeL/7ECBDpkCUytT+bKwrx0="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Relational"; version = "8.0.8"; hash = "sha256-ZdhJ4yUuxo1NIMz/qCrDKIFvYGAHhDCNsAVy+0lm/Kk="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite"; version = "8.0.8"; hash = "sha256-i9YQkY0U64ronI8zvEDhbFNJt3QQTZ470Ysnx2ZxiJ4="; })
+  (fetchNuGet { pname = "Microsoft.EntityFrameworkCore.Sqlite.Core"; version = "8.0.8"; hash = "sha256-TI77E3xSNZexiEbh/z5uVgG76cLZVn8KP7Dzh8sRciU="; })
   (fetchNuGet { pname = "Microsoft.Extensions.ApiDescription.Server"; version = "6.0.5"; hash = "sha256-RJjBWz+UHxkQE2s7CeGYdTZ218mCufrxl0eBykZdIt4="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "8.0.0"; hash = "sha256-xGpKrywQvU1Wm/WolYIxgHYEFfgkNGeJ+GGc5DT3phI="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "8.0.0"; hash = "sha256-RUQe2VgOATM9JkZ/wGm9mreKoCmOS4pPyvyJWBqMaC8="; })
@@ -93,7 +93,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "6.0.0"; hash = "sha256-SZke0jNKIqJvvukdta+MgIlGsrP2EdPkkS8lfLg7Ju4="; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "8.0.0"; hash = "sha256-75KzEGWjbRELczJpCiJub+ltNUMMbz5A/1KQU+5dgP8="; })
   (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "3.1.6"; hash = "sha256-TKEE5GJmn1wLKuiF6Wd+Q7jpIlq9gSvlWvTVopCyoo4="; })
-  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "8.0.0"; hash = "sha256-qkCdwemqdZY/yIW5Xmh7Exv74XuE39T8aHGHCofoVgo="; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyModel"; version = "8.0.1"; hash = "sha256-m8daXRK1Qn9y2c8SmtWu9ysLHwFJtEWiUQoAnMalw7s="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics"; version = "8.0.0"; hash = "sha256-fBLlb9xAfTgZb1cpBxFs/9eA+BlBvF8Xg0DMkBqdHD4="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Diagnostics.Abstractions"; version = "8.0.0"; hash = "sha256-USD5uZOaahMqi6u7owNWx/LR4EDrOwqPrAAim7iRpJY="; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Abstractions"; version = "2.2.0"; hash = "sha256-pLAxP15+PncMiRrUT5bBAhWg7lC6/dfQk5TLTpZzA7k="; })
@@ -105,8 +105,8 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "2.2.0"; hash = "sha256-YZcyKXL6jOpyGrDbFLu46vncfUw2FuqhclMdbEPuh/U="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "3.0.0"; hash = "sha256-iUMCRR9uHSoub48MboewTxokP5QwrC47X5t+C+JUMo4="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Hosting.Abstractions"; version = "8.0.0"; hash = "sha256-0JBx+wwt5p1SPfO4m49KxNOXPAzAU0A+8tEc/itvpQE="; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Identity.Core"; version = "8.0.6"; hash = "sha256-0cquYLpXjFMdd2VQrsr54LrbQ723jbIwoLOhO04wTnM="; })
-  (fetchNuGet { pname = "Microsoft.Extensions.Identity.Stores"; version = "8.0.6"; hash = "sha256-/HmTyyTMpY5xpgjwU9GO8uTIefTaTztFagZKEqXX6iY="; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Identity.Core"; version = "8.0.8"; hash = "sha256-Gu8lyqKUANMq7oea6WQHCieCN3AFDFbRM5ClmS096Zk="; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Identity.Stores"; version = "8.0.8"; hash = "sha256-kh0GfO507LMSDZPNPNoMVBSfDpip2wXCewUDi6KsURg="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.0.0"; hash = "sha256-Bg3bFJPjQRJnPvlEc5v7lzwRaUTzKwXDtz81GjCTfMo="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; hash = "sha256-8WsZKRGfXW5MsXkMmNVf6slrkw+cR005czkOP2KUqTk="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "8.0.0"; hash = "sha256-Meh0Z0X7KyOEG4l0RWBcuHHihcABcvCyfUXgasmQ91o="; })
@@ -134,14 +134,14 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; hash = "sha256-AgvysszpQ11AiTBJFkvSy8JnwIWTj15Pfek7T7ThUc4="; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "8.0.0"; hash = "sha256-FU8qj3DR8bDdc1c+WeGZx/PCZeqqndweZM9epcpXjSo="; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.1.2"; hash = "sha256-QN2btwsc8XnOp8RxwSY4ntzpqFIrWRZg6ZZEGBZ6TQY="; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "7.6.2"; hash = "sha256-Ipd8+JFpj44vqouRGO8YvxzVyjKOeFXczTeKguxdcgs="; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "7.6.2"; hash = "sha256-lHzkMQIlbSwmetyGLbtuptHZP+HgG8n2aLtBDqDr1S4="; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Abstractions"; version = "8.0.2"; hash = "sha256-j37WWYrYgINKVn5eWhytGad7k2GwQPCemumJXU7cHsw="; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.JsonWebTokens"; version = "8.0.2"; hash = "sha256-siKloYOZKBRV//apM/O+A+KwhAWTZ0ZnnCI7Pq+pxMs="; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.1.2"; hash = "sha256-6M7Y1u2cBVsO/dP+qrgkMLisXbZgMgyWoRs5Uq/QJ/o="; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "7.6.2"; hash = "sha256-hNIbOZ6leANvh+i1I2ZXS35+yXUmhTlyomkA8PbF++w="; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "8.0.2"; hash = "sha256-Ref5E5JXHXDAdog/Yix25fsYO7R4eCHP8L/GIJz70p8="; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Protocols"; version = "7.1.2"; hash = "sha256-6OXP0vQ6bQ3Xvj3I73eqng6NqqMC4htWKuM8cchZhWI="; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Protocols.OpenIdConnect"; version = "7.1.2"; hash = "sha256-cAwwCti+/ycdjqNy8PrBNEeuF7u5gYtCX8vBb2qIKRs="; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.1.2"; hash = "sha256-qf8y8KCo1ysrK+jCrnR+ARHwlfMWPXLxe7a41FVg4OA="; })
-  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "7.6.2"; hash = "sha256-P0lN2+Die2ftnJh43A3X3CR207vvzfCCJjlow6yweVs="; })
+  (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "8.0.2"; hash = "sha256-VM5Tw4lS1XxVajmA8PB4yn8J+Abi388U//5//0aNOHo="; })
   (fetchNuGet { pname = "Microsoft.IO.RecyclableMemoryStream"; version = "3.0.1"; hash = "sha256-unFg/5EcU/XKJbob4GtQC43Ydgi5VjeBGs7hfhj4EYo="; })
   (fetchNuGet { pname = "Microsoft.Net.Http.Headers"; version = "2.2.0"; hash = "sha256-pb8AoacSvy8hGNGodU6Lhv1ooWtUSCZwjmwd89PM1HA="; })
   (fetchNuGet { pname = "Microsoft.NETCore.Jit"; version = "1.0.2"; hash = "sha256-T92T+bmdXfpAe73OKFTYXGJW1gTHuwcryBSgV7mwSkk="; })
@@ -158,23 +158,23 @@
   (fetchNuGet { pname = "Microsoft.OpenApi"; version = "1.6.14"; hash = "sha256-dSJUic2orPGfYVgto9DieRckbtLpPyxHtf+RJ2tmKPM="; })
   (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; hash = "sha256-mBNDmPXNTW54XLnPAUwBRvkIORFM7/j0D0I2SyQPDEg="; })
   (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "8.0.0"; hash = "sha256-UcxurEamYD+Bua0PbPNMYAZaRulMrov8CfbJGIgTaRQ="; })
-  (fetchNuGet { pname = "MimeKit"; version = "4.7.0"; hash = "sha256-bdBpES930ZgPaFrXJuNkW3vRryMygwXpE5dNyW1xOS0="; })
+  (fetchNuGet { pname = "MimeKit"; version = "4.7.1"; hash = "sha256-yTUqWAFU1v8jo70D09A+l8tsc+pr6IMOORD9L8EDz9o="; })
   (fetchNuGet { pname = "MimeTypeMapOfficial"; version = "1.0.17"; hash = "sha256-HuQRDUDjBlAKzbnCWvxkXp7tf2bCdd/evox8964grdA="; })
   (fetchNuGet { pname = "Mono.TextTemplating"; version = "2.2.1"; hash = "sha256-4TYsfc8q74P8FuDwkIWPO+VYY0mh4Hs4ZL8v0lMaBsY="; })
   (fetchNuGet { pname = "Nager.ArticleNumber"; version = "1.0.7"; hash = "sha256-Th3BIABiOo0vsgqznr6C6WhVdGDFalso/rAfUYDI0NE="; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; hash = "sha256-iNan1ix7RtncGWC9AjAZ2sk70DoxOsmEOgQ10fXm4Pw="; })
   (fetchNuGet { pname = "NetVips"; version = "2.4.1"; hash = "sha256-Un1ZACxSjadaUIzmUimGshXDal8tJAq1CBwrgrNiwMk="; })
-  (fetchNuGet { pname = "NetVips.Native"; version = "8.15.2"; hash = "sha256-ak8dJNNOGJURiUVourVL0Qn8rTA4H5yzrKWfcUt2z0o="; })
-  (fetchNuGet { pname = "NetVips.Native.linux-arm"; version = "8.15.2"; hash = "sha256-Xv+EBcwNYeUXv5Z9OHDY+8xw9haW24WQCp0t+eYWjN0="; })
-  (fetchNuGet { pname = "NetVips.Native.linux-arm64"; version = "8.15.2"; hash = "sha256-PZCj5MESL+Da0pu0Lx4OpysD1m45LZVPQo3dWLsLjYc="; })
-  (fetchNuGet { pname = "NetVips.Native.linux-musl-arm64"; version = "8.15.2"; hash = "sha256-A8TYMh6L9z3gDjTyyFd9WNjU0BuxOT5Ag34EW9wazJk="; })
-  (fetchNuGet { pname = "NetVips.Native.linux-musl-x64"; version = "8.15.2"; hash = "sha256-2oUm+8OHyK1zHWCoIVXfPu+T/xmq5yTN4H048LrT9kc="; })
-  (fetchNuGet { pname = "NetVips.Native.linux-x64"; version = "8.15.2"; hash = "sha256-vTnL2ERyu8/UwfTeCtLZR0stmVx4Qyyki/yAEE537Cc="; })
-  (fetchNuGet { pname = "NetVips.Native.osx-arm64"; version = "8.15.2"; hash = "sha256-eXE7j851WlLGJWc9Kbg/eP3HxKrM8b7ujwy/r3IBUxE="; })
-  (fetchNuGet { pname = "NetVips.Native.osx-x64"; version = "8.15.2"; hash = "sha256-VRS7vWj9GYHWnyE4qjc7XnxhiwsTmqx1hfnc7WO4SIA="; })
-  (fetchNuGet { pname = "NetVips.Native.win-arm64"; version = "8.15.2"; hash = "sha256-zhLnFqPsf/+cA5JDT+7eFWaldM+mnMEgzS3ijSuC73k="; })
-  (fetchNuGet { pname = "NetVips.Native.win-x64"; version = "8.15.2"; hash = "sha256-73NkRF3um0AEO2PMQLpFb0IvGgBihYdY7ccfBg4vHXk="; })
-  (fetchNuGet { pname = "NetVips.Native.win-x86"; version = "8.15.2"; hash = "sha256-fTgnpFaq9uVx2OEOW7WuUdHHCguMeUp90KDIsNvi4iI="; })
+  (fetchNuGet { pname = "NetVips.Native"; version = "8.15.3"; hash = "sha256-MW+so2f7+IwnRIHN5u8g/B4InETKLsDgSte2qq7B+bU="; })
+  (fetchNuGet { pname = "NetVips.Native.linux-arm"; version = "8.15.3"; hash = "sha256-+m86lUEBWxbPT/sKBCFPorTkO0WMtRgaI0Ab+x4kUr4="; })
+  (fetchNuGet { pname = "NetVips.Native.linux-arm64"; version = "8.15.3"; hash = "sha256-GSX/tcblN9LZLXXXKsTqjJYwHRsQ0ol4AuC5rmBtA44="; })
+  (fetchNuGet { pname = "NetVips.Native.linux-musl-arm64"; version = "8.15.3"; hash = "sha256-pOq07bd9L3H5GdSkLSlSB/ViElUF6r87oNixWoq/WzM="; })
+  (fetchNuGet { pname = "NetVips.Native.linux-musl-x64"; version = "8.15.3"; hash = "sha256-1JdsDxKwY+tk6OSCt1PhX3wXV9noZgQp27rKsQElESQ="; })
+  (fetchNuGet { pname = "NetVips.Native.linux-x64"; version = "8.15.3"; hash = "sha256-TQoRwZ8CHi0+06dqEr9SLv7JOttIVGiUzc/LLRMtGGU="; })
+  (fetchNuGet { pname = "NetVips.Native.osx-arm64"; version = "8.15.3"; hash = "sha256-uMSH4OOgv/6PoXVvJw44JMiqytKBcOWDrjqz3coJ3sE="; })
+  (fetchNuGet { pname = "NetVips.Native.osx-x64"; version = "8.15.3"; hash = "sha256-rwQqUqgvYeNvE/S518Uw2JeL9+qaXOnhqmdVUb3ez/E="; })
+  (fetchNuGet { pname = "NetVips.Native.win-arm64"; version = "8.15.3"; hash = "sha256-dlcl9vAmu5B0K6zy0WsZQ1Q3DYrgZELIXEYIDQs8m8g="; })
+  (fetchNuGet { pname = "NetVips.Native.win-x64"; version = "8.15.3"; hash = "sha256-nRaI7ZaWpR5LWNYEBXMNfdij1nxQcDYTK4liz8T6we0="; })
+  (fetchNuGet { pname = "NetVips.Native.win-x86"; version = "8.15.3"; hash = "sha256-34+2bMn8PXNoag39r8kCOYG/vJxcmB6/Ay6ytZTswuA="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.1"; hash = "sha256-lbR7rpS/EXgJ8TqQspuIIqAsiorrZb1oOK4HFw+QyPw="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "11.0.2"; hash = "sha256-YhlAbGfwoxQzxb3Hef4iyV9eGdPQJJNd2GgSR0jsBJ0="; })
   (fetchNuGet { pname = "Newtonsoft.Json"; version = "12.0.2"; hash = "sha256-BW7sXT2LKpP3ylsCbTTZ1f6Mg1sR4yL68aJVHaJcTnA="; })
@@ -222,22 +222,22 @@
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; hash = "sha256-c5tXWhE/fYbJVl9rXs0uHh3pTsg44YD1dJvyOA0WoMs="; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; hash = "sha256-l8S9gt6dk3qYG6HYonHtdlYtBKyPb29uQ6NDjmrt3V4="; })
   (fetchNuGet { pname = "Scrutor"; version = "3.3.0"; hash = "sha256-cYd6xuCn8cniuHWhiWMZRYZrYUjOvAz2wlEvOM5drmE="; })
-  (fetchNuGet { pname = "Serilog"; version = "4.0.0"; hash = "sha256-j8hQ5TdL1TjfdGiBO9PyHJFMMPvATHWN1dtrrUZZlNw="; })
-  (fetchNuGet { pname = "Serilog.AspNetCore"; version = "8.0.1"; hash = "sha256-a07P+0co6QuLuUw09PvvpLf9gix88Nw3dACsnSRcuW4="; })
+  (fetchNuGet { pname = "Serilog"; version = "4.0.1"; hash = "sha256-yenpr50Qf+nq1nrqyg3TKJqOroSyIKHke/9nfkA3wYg="; })
+  (fetchNuGet { pname = "Serilog.AspNetCore"; version = "8.0.2"; hash = "sha256-cRZHG2bqrESOxPVxq2v+mHx+oZBzZEPksrleGVXO1p0="; })
   (fetchNuGet { pname = "Serilog.Enrichers.Thread"; version = "4.0.0"; hash = "sha256-lo+3ohNHKe/hTq9vGbk29p/OWcNlcyJToGL6EpCJQm8="; })
   (fetchNuGet { pname = "Serilog.Extensions.Hosting"; version = "8.0.0"; hash = "sha256-OEVkEQoONawJF+SXeyqqgU0OGp9ubtt9aXT+rC25j4E="; })
   (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "3.0.1"; hash = "sha256-KtHMMnepmEpOlHrIGlUkK6Vq1L0iBBnFGavbUtvxOBk="; })
   (fetchNuGet { pname = "Serilog.Extensions.Logging"; version = "8.0.0"; hash = "sha256-GoWxCpkdahMvYd7ZrhwBxxTyjHGcs9ENNHJCp0la6iA="; })
   (fetchNuGet { pname = "Serilog.Formatting.Compact"; version = "2.0.0"; hash = "sha256-c3STGleyMijY4QnxPuAz/NkJs1r+TZAPjlmAKLF4+3g="; })
-  (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "8.0.1"; hash = "sha256-UqaNQPN5devzd8czUWu6D7zWJs/pUVsU5PJQRnyT4uw="; })
+  (fetchNuGet { pname = "Serilog.Settings.Configuration"; version = "8.0.2"; hash = "sha256-iHRQt6vDk85/6HpMXiJluAwhkjgwEnL3IKavfDgFX0k="; })
   (fetchNuGet { pname = "Serilog.Sinks.AspNetCore.SignalR"; version = "0.4.0"; hash = "sha256-KkyrLNMsoBGMJN7C8NNGhGVxFDYzfvxlX66i3NLYkmo="; })
   (fetchNuGet { pname = "Serilog.Sinks.Console"; version = "6.0.0"; hash = "sha256-QH8ykDkLssJ99Fgl+ZBFBr+RQRl0wRTkeccQuuGLyro="; })
   (fetchNuGet { pname = "Serilog.Sinks.Debug"; version = "2.0.0"; hash = "sha256-/PLVAE33lTdUEXdahkI5ddFiGZufWnvfsOodQsFB8sQ="; })
   (fetchNuGet { pname = "Serilog.Sinks.File"; version = "6.0.0"; hash = "sha256-KQmlUpG9ovRpNqKhKe6rz3XMLUjkBqjyQhEm2hV5Sow="; })
   (fetchNuGet { pname = "Serilog.Sinks.SignalR.Core"; version = "0.1.2"; hash = "sha256-7j9SK++4U7Q6f6ofPWsaH9xQii/jBK864u/kHYwxyJk="; })
   (fetchNuGet { pname = "SharpCompress"; version = "0.37.2"; hash = "sha256-IP7/ssqWKT85YwLKrLGACHo0sgp7sMe603X+o485sYo="; })
-  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "3.1.4"; hash = "sha256-zOqHVIInvJiqmx4JF+8USYvdKAGRZVUqQpdncrrjRjM="; })
-  (fetchNuGet { pname = "SonarAnalyzer.CSharp"; version = "9.28.0.94264"; hash = "sha256-lG8+16cWHYNhO0MFjUHv0zQGj5mipRmUr57z3CaO1wk="; })
+  (fetchNuGet { pname = "SixLabors.ImageSharp"; version = "3.1.5"; hash = "sha256-3UehX9T+I81nfgv2dTHlpoPgYzXFk7kHr1mmlQOCBfw="; })
+  (fetchNuGet { pname = "SonarAnalyzer.CSharp"; version = "9.32.0.97167"; hash = "sha256-F8f9YjBZekwIowIm6LKfjowqmCyhLUuTFQIcjEEVDPg="; })
   (fetchNuGet { pname = "sqlite-net-pcl"; version = "1.8.116"; hash = "sha256-XlD0ycLkpMeFkZ9NCktC2ldYzD2NyJarSv5h6e4gekA="; })
   (fetchNuGet { pname = "SQLitePCLRaw.bundle_e_sqlite3"; version = "2.1.6"; hash = "sha256-dZD/bZsYXjOu46ZH5Y/wgh0uhHOqIxC+S+0ecKhr718="; })
   (fetchNuGet { pname = "SQLitePCLRaw.bundle_green"; version = "2.0.4"; hash = "sha256-QjDI47nPUXx75rMABeSYefB6gw6xgrgTjYY6Uq/1J4U="; })
@@ -247,14 +247,14 @@
   (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.1.6"; hash = "sha256-uHt5d+SFUkSd6WD7Tg0J3e8eVoxy/FM/t4PAkc9PJT0="; })
   (fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.4"; hash = "sha256-0rzyURehoQsyDxW8Yj477TJLNcItBsJVwKBeGidKmSA="; })
   (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.1.6"; hash = "sha256-zHc/YZsd72eXlI8ba1tv58HZWUIiyjJaxq2CCP1hQe8="; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.6.2"; hash = "sha256-kKz+NiXNfmrvrtbzsqnW1ItflNib3rymr3rf9yI5B1M="; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "6.7.3"; hash = "sha256-pt1lBEN6Yk1QfqcgLD8Z2vE3tXUeJreQ2lRfjtMASCU="; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.Filters"; version = "8.0.2"; hash = "sha256-RCFdFvCzUYS850axoGaprr0heFyBFCIu9jzusXJ0YAA="; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.Filters.Abstractions"; version = "8.0.2"; hash = "sha256-oe6KYmrvaAKu0JpAwxpIiyxSaqfRg2VAyc/KKQX6xFI="; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "5.0.0"; hash = "sha256-TnAjQpCdwSH3rm1m3ptdoOGS4/9a8OOH3srAatG2gYw="; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.6.2"; hash = "sha256-HqMmHMZXYHlRMoT3vIZF8iwhYmfknQmi3N8VmyfwI0k="; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "6.7.3"; hash = "sha256-aVQ9NuqiW0EFhLwz2LMa15hWTQzmzyS3huuA42rbJSM="; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "5.0.0"; hash = "sha256-JGMmhhq6OdscsGsnSM6182ZkyWiSdr0ERmNZvJV4XAM="; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.6.2"; hash = "sha256-km+bNoRDakEBa2dIjtxK0V6YVvm9hEpdi8xWQ8TJigI="; })
-  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.6.2"; hash = "sha256-ED24tUcwiOkAIMQVQeQFths296yf3lL/Z1sVizQTEHA="; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "6.7.3"; hash = "sha256-K2Ig2cp8Cl5tLuPhSGz5ewW1W6A1JC9rfSfVSDNdLuY="; })
+  (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerUI"; version = "6.7.3"; hash = "sha256-OLcFaBuRyBhukVE4LiJm1kkAAjZtzfhGjRFEHHbI1X4="; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; hash = "sha256-yg95LNQOwFlA1tWxXdQkVyJqT4AnoDc+ACmrNvzGiZg="; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; hash = "sha256-XqZWb4Kd04960h4U9seivjKseGA/YEIpdplfHYHQ9jk="; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.5.0"; hash = "sha256-THw2znu+KibfJRfD7cE3nRYHsm7Fyn5pjOOZVonFjvs="; })
@@ -281,17 +281,17 @@
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; hash = "sha256-vSBqTbmWXylvRa37aWyktym+gOpsvH43mwr6A962k6U="; })
   (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; hash = "sha256-gVOv1SK6Ape0FQhCVlNOd9cvQKBvMxRX9K0JPVi8w0Y="; })
   (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; hash = "sha256-hCETZpHHGVhPYvb4C0fh4zs+8zv4GPoixagkLZjpa9Q="; })
-  (fetchNuGet { pname = "System.Drawing.Common"; version = "8.0.6"; hash = "sha256-dHrc4lCnhmBU3j+bdmgyjNK2pZsbfBRL1zz38lVyQvM="; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "8.0.8"; hash = "sha256-u/u0US7c0dfB8TmIdN+AI2GKrWUguuEmEKMGx7NLIKE="; })
   (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; hash = "sha256-qWqFVxuXioesVftv2RVJZOnmojUvRjb7cS3Oh3oTit4="; })
-  (fetchNuGet { pname = "System.Formats.Asn1"; version = "8.0.0"; hash = "sha256-AVMl6N3SG2AqAcQHFruf2QDQeQIC3CICxID+Sh0vBxI="; })
+  (fetchNuGet { pname = "System.Formats.Asn1"; version = "8.0.1"; hash = "sha256-may/Wg+esmm1N14kQTG4ESMBi+GQKPp0ZrrBo/o6OXM="; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; hash = "sha256-rbSgc2PIEc2c2rN6LK3qCREAX3DqA2Nq1WcLrZYsDBw="; })
   (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; hash = "sha256-caL0pRmFSEsaoeZeWN5BTQtGrAtaQPwFi8YOZPZG5rI="; })
   (fetchNuGet { pname = "System.Globalization.Calendars"; version = "4.3.0"; hash = "sha256-uNOD0EOVFgnS2fMKvMiEtI9aOw00+Pfy/H+qucAQlPc="; })
   (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; hash = "sha256-mmJWA27T0GRVuFP9/sj+4TrR4GJWrzNIk2PDrbr7RQk="; })
-  (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "7.6.2"; hash = "sha256-RL7l7Xfi9a7w8v1DOTxrOFLrNVUkXWoCcE2YdCN6Q+Y="; })
+  (fetchNuGet { pname = "System.IdentityModel.Tokens.Jwt"; version = "8.0.2"; hash = "sha256-SQA6LrcReEQIGz/flaXD7gDlAyu30XbQKEVimpZSFuU="; })
   (fetchNuGet { pname = "System.IO"; version = "4.1.0"; hash = "sha256-V6oyQFwWb8NvGxAwvzWnhPxy9dKOfj/XBM3tEC5aHrw="; })
   (fetchNuGet { pname = "System.IO"; version = "4.3.0"; hash = "sha256-ruynQHekFP5wPrDiVyhNiRIXeZ/I9NpjK5pU+HPDiRY="; })
-  (fetchNuGet { pname = "System.IO.Abstractions"; version = "21.0.22"; hash = "sha256-UTdB/kD39zeXjUxdgQbXSxS/yyzDtc2rLre2+pLoQWk="; })
+  (fetchNuGet { pname = "System.IO.Abstractions"; version = "21.0.29"; hash = "sha256-91e2/Bd4ZgANw19mKkTdxAy2tv7NutyG0lQTKhMiEpo="; })
   (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; hash = "sha256-f5PrQlQgj5Xj2ZnHxXW8XiOivaBvfqDao9Sb6AVinyA="; })
   (fetchNuGet { pname = "System.IO.Compression.ZipFile"; version = "4.3.0"; hash = "sha256-WQl+JgWs+GaRMeiahTFUbrhlXIHapzcpTFXbRvAtvvs="; })
   (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; hash = "sha256-4VKXFgcGYCTWVXjAlniAVq0dO3o5s8KHylg2wg2/7k0="; })
@@ -368,6 +368,7 @@
   (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "8.0.0"; hash = "sha256-IUQkQkV9po1LC0QsqrilqwNzPvnc+4eVvq+hCvq8fvE="; })
   (fetchNuGet { pname = "System.Text.Json"; version = "4.7.2"; hash = "sha256-xA8PZwxX9iOJvPbfdi7LWjM2RMVJ7hmtEqS9JvgNsoM="; })
   (fetchNuGet { pname = "System.Text.Json"; version = "8.0.0"; hash = "sha256-XFcCHMW1u2/WujlWNHaIWkbW1wn8W4kI0QdrwPtWmow="; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "8.0.4"; hash = "sha256-g5oT7fbXxQ9Iah1nMCr4UUX/a2l+EVjJyTrw3FTbIaI="; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; hash = "sha256-x6OQN6MCN7S0fJ6EFTfv4rczdUWjwuWE9QQ0P6fbh9c="; })
   (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; hash = "sha256-VLCk1D1kcN2wbAe3d0YQM/PqCsPHOuqlBY1yd2Yo+K0="; })
   (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; hash = "sha256-mob1Zv3qLQhQ1/xOLXZmYqpniNUMCfn02n8ZkaAhqac="; })
@@ -385,9 +386,9 @@
   (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; hash = "sha256-QQ8KgU0lu4F5Unh+TbechO//zaAGZ4MfgvW72Cn1hzA="; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; hash = "sha256-KPz1kxe0RUBM+aoktJ/f9p51GudMERU8Pmwm//HdlFg="; })
   (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; hash = "sha256-rWtdcmcuElNOSzCehflyKwHkDRpiOhJJs8CeQ0l1CCI="; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "21.0.22"; hash = "sha256-900+hyDm/wCd7iD5hnPJue/In/ZcA3NlGNk9kHWLoX0="; })
-  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "21.0.22"; hash = "sha256-xDe16iGy2i0SyYnlauFxZMTUx44PM+kas+jRtagDV50="; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions"; version = "21.0.29"; hash = "sha256-OFpu9RcDRPLYntQyesBevoG1XxyH96ukHOH0uXqO5ls="; })
+  (fetchNuGet { pname = "TestableIO.System.IO.Abstractions.Wrappers"; version = "21.0.29"; hash = "sha256-2q1HzbyRPIm6VKYzZzZnkXBJzV8S+HBtT6Lej1pv84Y="; })
   (fetchNuGet { pname = "VersOne.Epub"; version = "3.3.2"; hash = "sha256-jzkD4HDgFMevH8FRYml7UHEwMt7BWG+VpinIPlioIUo="; })
-  (fetchNuGet { pname = "xunit.assert"; version = "2.8.1"; hash = "sha256-PzTY1UeDK4t22o3GjAV1qV/zsXe/N4yOQsFu5l8Zu/A="; })
+  (fetchNuGet { pname = "xunit.assert"; version = "2.9.0"; hash = "sha256-3GUZ0loDa/3WDXRuBQdghsKXE/bZrCBJ5Bopr43SuVA="; })
   (fetchNuGet { pname = "ZstdSharp.Port"; version = "0.8.0"; hash = "sha256-nQkUIDqpgy7ZAtRWyMXQflYnWdPUcbIxIblOINO2O5k="; })
 ]
diff --git a/pkgs/servers/web-apps/wiki-js/default.nix b/pkgs/servers/web-apps/wiki-js/default.nix
index 796e61848efb0..5816e1dd91bef 100644
--- a/pkgs/servers/web-apps/wiki-js/default.nix
+++ b/pkgs/servers/web-apps/wiki-js/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wiki-js";
-  version = "2.5.303";
+  version = "2.5.304";
 
   src = fetchurl {
     url = "https://github.com/Requarks/wiki/releases/download/v${version}/${pname}.tar.gz";
-    sha256 = "sha256-Jpv4D+ldGPvJz+8cwNhrmC+Ii5dG0UOTC5JIWPwUzvk=";
+    sha256 = "sha256-w89+X3sqZPlX7EuK/g2oATHqlpx1br/Njh81vZt8zYM=";
   };
 
   sourceRoot = ".";
diff --git a/pkgs/tools/admin/balena-cli/default.nix b/pkgs/tools/admin/balena-cli/default.nix
index bb326f1f3aebf..936cfaec1e989 100644
--- a/pkgs/tools/admin/balena-cli/default.nix
+++ b/pkgs/tools/admin/balena-cli/default.nix
@@ -19,16 +19,16 @@ let
   };
 in buildNpmPackage' rec {
   pname = "balena-cli";
-  version = "19.0.3";
+  version = "19.0.12";
 
   src = fetchFromGitHub {
     owner = "balena-io";
     repo = "balena-cli";
     rev = "v${version}";
-    hash = "sha256-6odzj7/twhSJFxX2kbKbEOjzyZHjrg6Dd8d3LDtSzNU=";
+    hash = "sha256-/C83s66vTq60FLfKPb27RBGfBC295qs5WWej9Yz4Cak=";
   };
 
-  npmDepsHash = "sha256-IWd3E6bjy5cQ4VsDV/zHyehxxINUsDEy3pKVfSWVpKU=";
+  npmDepsHash = "sha256-CdbJqMbBYzy9TfhlXVMJgGr3pLVMX4naRs/rGz96bYo=";
 
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix
index 57164bd0dca63..b47be23c03ae1 100644
--- a/pkgs/tools/admin/credhub-cli/default.nix
+++ b/pkgs/tools/admin/credhub-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "credhub-cli";
-  version = "2.9.37";
+  version = "2.9.38";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry-incubator";
     repo = "credhub-cli";
     rev = version;
-    sha256 = "sha256-BW6QMxBuiBmCE7ujpPc2sGEz0jkhEo0cPoa184Yx6/Q=";
+    sha256 = "sha256-xSjT+h85/ZknwTTLUhC9GWrCRN9VHMQBM6WuHX3ldq4=";
   };
 
   # these tests require network access that we're not going to give them
diff --git a/pkgs/tools/backup/wal-e/default.nix b/pkgs/tools/backup/wal-e/default.nix
deleted file mode 100644
index f1dda5da28093..0000000000000
--- a/pkgs/tools/backup/wal-e/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, lzop, postgresql, pv }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "wal-e";
-  version = "1.1.1";
-
-  namePrefix = "";
-
-  src = fetchFromGitHub {
-    owner = "wal-e";
-    repo = "wal-e";
-    rev = "v${version}";
-    hash = "sha256-I6suHkAYzDtlNFNPH4SziY93Ryp+NTHkCBuojDvv+U4=";
-  };
-
-  # needs tox
-  doCheck = false;
-
-  propagatedBuildInputs = (with python3Packages; [
-    boto
-    gevent
-    google-cloud-storage
-  ]) ++ [
-    postgresql
-    lzop
-    pv
-  ];
-
-  meta = {
-    description = "Postgres WAL-shipping disaster recovery and replication toolkit";
-    mainProgram = "wal-e";
-    homepage = "https://github.com/wal-e/wal-e";
-    maintainers = [ ];
-    license = lib.licenses.bsd3;
-    platforms = lib.platforms.linux;
-  };
-}
diff --git a/pkgs/tools/filesystems/garage/default.nix b/pkgs/tools/filesystems/garage/default.nix
index 962685c2d537e..2430536656dc4 100644
--- a/pkgs/tools/filesystems/garage/default.nix
+++ b/pkgs/tools/filesystems/garage/default.nix
@@ -11,7 +11,7 @@
 , nixosTests
 }:
 let
-  generic = { version, sha256, cargoHash, cargoPatches ? [], eol ? false, broken ? false }: rustPlatform.buildRustPackage {
+  generic = { version, hash, cargoHash, cargoPatches ? [], eol ? false, broken ? false }: rustPlatform.buildRustPackage {
     pname = "garage";
     inherit version;
 
@@ -20,7 +20,7 @@ let
       owner = "Deuxfleurs";
       repo = "garage";
       rev = "v${version}";
-      inherit sha256;
+      inherit hash;
     };
 
     postPatch = ''
@@ -96,33 +96,32 @@ rec {
 
   garage_0_8_7 = generic {
     version = "0.8.7";
-    sha256 = "sha256-2QGbR6YvMQeMxN3n1MMJ5qfBcEJ5hjXARUOfEn+m4Jc=";
+    hash = "sha256-2QGbR6YvMQeMxN3n1MMJ5qfBcEJ5hjXARUOfEn+m4Jc=";
     cargoHash = "sha256-1cGlJP/RRgxt3GGMN1c+7Y5lLHJyvHEnpLsR35R5FfI=";
     cargoPatches = [ ./update-time-0.8.patch ];
     broken = stdenv.isDarwin;
   };
 
-  garage_0_8 = garage_0_8_7;
-
   garage_0_9_4 = generic {
     version = "0.9.4";
-    sha256 = "sha256-2ZaxenwaVGYYUjUJaGgnGpZNQprQV9+Jns2sXM6cowk=";
+    hash = "sha256-2ZaxenwaVGYYUjUJaGgnGpZNQprQV9+Jns2sXM6cowk=";
     cargoHash = "sha256-1Hrip4R5dr31czOcFMGW4ZvVfVwvdd7LkwukwNpS3o4=";
     cargoPatches = [ ./update-time.patch ];
     broken = stdenv.isDarwin;
   };
 
-  garage_1_0_0 = generic {
-    version = "1.0.0";
-    sha256 = "sha256-5W5cXylFCrDup+HOOUVPWBJUSphOp8szgtpvRIv82b8=";
-    cargoHash = "sha256-zol9P01bwlvl1Wap4EekgVpC45izNCt2uKs7x+EEA/E=";
-    cargoPatches = [ ./update-time.patch ];
+  garage_1_0_1 = generic {
+    version = "1.0.1";
+    hash = "sha256-f6N2asycN04I6U5XQ5LEAqYu/v5jYZiFCxZ8YQ32XyM=";
+    cargoHash = "sha256-jpc/vaygC5WNSkVA3P01mCRk9Nx/CUumE893tHWoe34=";
     broken = stdenv.isDarwin;
   };
 
+  garage_0_8 = garage_0_8_7;
+
   garage_0_9 = garage_0_9_4;
 
-  garage_1_x = garage_1_0_0;
+  garage_1_x = garage_1_0_1;
 
   garage = garage_1_x;
 }
diff --git a/pkgs/tools/misc/backdown/default.nix b/pkgs/tools/misc/backdown/default.nix
index f75388ea8677d..78ad5be3f31ea 100644
--- a/pkgs/tools/misc/backdown/default.nix
+++ b/pkgs/tools/misc/backdown/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "backdown";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "Canop";
     repo = "backdown";
     rev = "v${version}";
-    hash = "sha256-w9EdDSGqmHRLXwx5qFo0BngKATKtQsieMt6dPgfOrQ0=";
+    hash = "sha256-3+XmMRZz3SHF1sL+/CUvu4uQ2scE4ACpcC0r4nWhdkM=";
   };
 
-  cargoHash = "sha256-BOwhXq/xVuk3KylL3KeIkiIG3SXVASFiYkUgKJhMzuU=";
+  cargoHash = "sha256-+SxXOpSBuVVdX2HmJ4vF45uf5bvRtPdwaXUb9kq+lK0=";
 
   meta = with lib; {
     description = "File deduplicator";
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index 08ff99cbb5e65..6272fdc8914d7 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.14.3";
+  version = "1.14.4";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-uYQO+PSvBJN1GYtycpVi1h9bD8RNoVC+R+WKJy+qDMc=";
+    sha256 = "sha256-jrLlhpPWsc1aOEH36W6MbikAj1nAX8CinHKG+iRk+18=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/pkgs/tools/misc/cyclonedx-python/default.nix b/pkgs/tools/misc/cyclonedx-python/default.nix
index 102151e2d70f0..fe37119359519 100644
--- a/pkgs/tools/misc/cyclonedx-python/default.nix
+++ b/pkgs/tools/misc/cyclonedx-python/default.nix
@@ -6,14 +6,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "cyclonedx-python";
-  version = "4.5.0";
+  version = "4.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "CycloneDX";
     repo = "cyclonedx-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+XeMRREDX1+v+qOeYiHh7uhadfueYYOxspLY3q1NL6s=";
+    hash = "sha256-EcCxw3SppuGUgN7AIU9NhpRw7dLDhTHHT5emGOgkDFU=";
   };
 
   build-system = with python3Packages; [ poetry-core ];
diff --git a/pkgs/tools/misc/kargo/default.nix b/pkgs/tools/misc/kargo/default.nix
deleted file mode 100644
index 15310fb9350a8..0000000000000
--- a/pkgs/tools/misc/kargo/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ lib, fetchurl, python3Packages }:
-
-with python3Packages;
-
-buildPythonApplication rec {
-  version = "0.4.8";
-  pname = "kargo";
-
-  src = fetchurl {
-    url = "mirror://pypi/k/kargo/${pname}-${version}.tar.gz";
-    sha256 = "1iq3vrmglag9gpsir03yz7556m0bz99nwb2mf594378cqzbr6db3";
-  };
-
-  propagatedBuildInputs = [
-    ansible-core
-    boto
-    cffi
-    cryptography
-    libcloud
-    markupsafe
-    netaddr
-    pyasn1
-    requests
-    setuptools
-  ];
-
-  checkPhase = ''
-    HOME=$TMPDIR $out/bin/kargo -v
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/kubespray/kargo-cli";
-    description = "Tool helps to deploy a kubernetes cluster with Ansible";
-    platforms = platforms.all;
-    license = licenses.gpl3;
-    maintainers = [ ];
-    mainProgram = "kargo";
-  };
-}
diff --git a/pkgs/tools/misc/moar/default.nix b/pkgs/tools/misc/moar/default.nix
index b42a2eea71de3..ee5505215f20c 100644
--- a/pkgs/tools/misc/moar/default.nix
+++ b/pkgs/tools/misc/moar/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "moar";
-  version = "1.27.0";
+  version = "1.27.2";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-nuBLO+7AUa2e9WC95kami77si+LrhigGu1ngAoFwjqY=";
+    hash = "sha256-ZWAQrf4Y/Qse02T5Yt7byGXZheH1y7RvBsPP2xiF5Kw=";
   };
 
-  vendorHash = "sha256-1u/2OlMX2FuZaxWnpU4n5r/4xKe+rK++GoCJiSq/BdE=";
+  vendorHash = "sha256-Orgh0X/HPfaKvliUvTllhk72LkQ/O3Eh9N/38Cj4Rew=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/misc/pokeget-rs/default.nix b/pkgs/tools/misc/pokeget-rs/default.nix
index 42e00b9e6117f..08f84c9a78c9b 100644
--- a/pkgs/tools/misc/pokeget-rs/default.nix
+++ b/pkgs/tools/misc/pokeget-rs/default.nix
@@ -5,17 +5,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pokeget-rs";
-  version = "1.6.2";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "talwat";
     repo = "pokeget-rs";
     rev = version;
-    hash = "sha256-Epet0CG4p7ruKHYVx0rX7KeOAe9kCer6Y8bguOY9SUs=";
+    hash = "sha256-0dss+ZJ1hhQGpWySWhyF+T1T+G3BlnKfSosgCJa8MPE=";
     fetchSubmodules = true;
   };
 
-  cargoHash = "sha256-gakrHutB6KBYcSZce/MDDnHK6VRPHU2B2xwtmUi4ZWY=";
+  cargoHash = "sha256-VYF2uhgxUFH/VAy/ttQOULRFFiPRf0D+0WfGlQyYDGc=";
 
   meta = with lib; {
     description = "Better rust version of pokeget";
diff --git a/pkgs/tools/misc/sshx/default.nix b/pkgs/tools/misc/sshx/default.nix
index 9ae65dcaee1ce..1daddeb8182a7 100644
--- a/pkgs/tools/misc/sshx/default.nix
+++ b/pkgs/tools/misc/sshx/default.nix
@@ -8,13 +8,13 @@
 , buildNpmPackage
 }:
 let
-  version = "unstable-2023-11-23";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "ekzhang";
     repo = "sshx";
-    rev = "2677f7e1fa3b369132cc7f27f6028a04b92ba5cf";
-    hash = "sha256-9fo8hNUzJr4gse0J2tw7j+alqE82+y8McADzTkxryWk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RIQRX4sXlMl73Opi6hK2WD/erdAMNrm40IasHasikuw=";
   };
 
   mkSshxPackage = { pname, cargoHash, ... }@args:
@@ -26,14 +26,17 @@ let
         cargoHash;
 
       nativeBuildInputs = [ protobuf ];
+
       buildInputs = lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
 
       cargoBuildFlags = [ "--package" pname ];
+
       cargoTestFlags = cargoBuildFlags;
 
       meta = {
         description = "Fast, collaborative live terminal sharing over the web";
         homepage = "https://github.com/ekzhang/sshx";
+        changelog = "https://github.com/ekzhang/sshx/releases/tag/v${version}";
         license = lib.licenses.mit;
         maintainers = with lib.maintainers; [ pinpox kranzes ];
         mainProgram = pname;
@@ -43,17 +46,17 @@ in
 {
   sshx = mkSshxPackage {
     pname = "sshx";
-    cargoHash = "sha256-dA5Aen/qANW8si75pj/RsBknvOo3KDyU5UISAmmcfRE=";
+    cargoHash = "sha256-PMSKhlHSjXKh/Jxvl2z+c1zDDyuVPzQapvdCdcuaFYc=";
   };
 
   sshx-server = mkSshxPackage rec {
     pname = "sshx-server";
-    cargoHash = "sha256-1GRWCMXsOzqvORgtwfuywV4wLyX3r4nURhM3Dl5V9Ss=";
+    cargoHash = "sha256-ySsTjNoI/nuz2qtZ4M2Fd9zy239+E61hUCq1r/ahgsA=";
 
     postPatch = ''
       substituteInPlace crates/sshx-server/src/web.rs \
-        --replace 'ServeDir::new("build")' 'ServeDir::new("${passthru.web.outPath}")' \
-        --replace 'ServeFile::new("build/spa.html")' 'ServeFile::new("${passthru.web.outPath}/spa.html")'
+        --replace-fail 'ServeDir::new("build")' 'ServeDir::new("${passthru.web.outPath}")' \
+        --replace-fail 'ServeFile::new("build/spa.html")' 'ServeFile::new("${passthru.web.outPath}/spa.html")'
     '';
 
     passthru.web = buildNpmPackage {
@@ -65,7 +68,7 @@ in
 
       postPatch = ''
         substituteInPlace vite.config.ts \
-          --replace 'execSync("git rev-parse --short HEAD").toString().trim()' '"${src.rev}"'
+          --replace-fail 'execSync("git rev-parse --short HEAD").toString().trim()' '"${src.rev}"'
       '';
 
       npmDepsHash = "sha256-bKePCxo6+n0EG+4tbbMimPedJ0Hu1O8yZsgspmhobOs=";
diff --git a/pkgs/tools/networking/minio-client/default.nix b/pkgs/tools/networking/minio-client/default.nix
index b56f0785497d2..4b804d0c58d22 100644
--- a/pkgs/tools/networking/minio-client/default.nix
+++ b/pkgs/tools/networking/minio-client/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2024-09-09T07-53-10Z";
+  version = "2024-09-16T17-43-14Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-K0FuG7c8sD4ingJH/al7TBoTCHKGad7I2RYheTjqAR0=";
+    sha256 = "sha256-j9NEeTUP/pkEhywhNasQQzTwUBcUwq+KVEGGB1hzVw0=";
   };
 
   vendorHash = "sha256-KNnYxE3kt/eemnhsRf29SZX0Q+ECzdMFVgcmd7uCsyY=";
diff --git a/pkgs/tools/networking/rabtap/default.nix b/pkgs/tools/networking/rabtap/default.nix
index d2570cdc21aa6..05f552ea16e66 100644
--- a/pkgs/tools/networking/rabtap/default.nix
+++ b/pkgs/tools/networking/rabtap/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "rabtap";
-  version = "1.42";
+  version = "1.43";
 
   src = fetchFromGitHub {
     owner = "jandelgado";
     repo = "rabtap";
     rev = "v${version}";
-    sha256 = "sha256-+e8HHd2j8M2EJzfCQtohdlp+24JFZ1kA2/t+VSqFDAI=";
+    sha256 = "sha256-OUpDk6nfVbz/KP7vZeZV2JfbCzh/KcuxG015/uxYuEI=";
   };
 
-  vendorHash = "sha256-uRlFzhHtpZSie4Fmtj9YUPn+c7+Gvimlk1q8CcXFYmg=";
+  vendorHash = "sha256-V7AkqmEbwuW2Ni9b00Zd22ugk9ScGWf5wauHcQwG7b0=";
 
   meta = with lib; {
     description = "RabbitMQ wire tap and swiss army knife";
diff --git a/pkgs/tools/networking/shadowsocks-rust/default.nix b/pkgs/tools/networking/shadowsocks-rust/default.nix
index d9c834e0820a9..01b42fc57b976 100644
--- a/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.20.4";
+  version = "1.21.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    hash = "sha256-UDr1/5PlK395CnWbp3eDTniltZYrFZ6raVBiqsVaCZs=";
+    hash = "sha256-B4RufyxqcKd5FJulKRV+33sos+cYrL2/QPmKEYw3aTU=";
   };
 
-  cargoHash = "sha256-xrD0vImCZwaAaoVWC/Wlj6Gvm0COwmINJdlBlud9+7Y=";
+  cargoHash = "sha256-2uYLrYFuzvaOZxw2hN4DcrEbwW5rnXxqKoI2q6yZaGU=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/pkgs/tools/networking/v2ray/default.nix b/pkgs/tools/networking/v2ray/default.nix
index 021d6a7085a03..b9cb17c1ab950 100644
--- a/pkgs/tools/networking/v2ray/default.nix
+++ b/pkgs/tools/networking/v2ray/default.nix
@@ -6,18 +6,18 @@
 
 buildGoModule rec {
   pname = "v2ray-core";
-  version = "5.17.1";
+  version = "5.19.0";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "v2ray-core";
     rev = "v${version}";
-    hash = "sha256-22Jvt64RS1BVHU6y2hIW8jcyzXo/36ogyAfFBbQXtvI=";
+    hash = "sha256-07VhbxrSG911GD+AT9/d5fSUm3SBl/tbvYKCOtIzpVQ=";
   };
 
   # `nix-update` doesn't support `vendorHash` yet.
   # https://github.com/Mic92/nix-update/pull/95
-  vendorHash = "sha256-yUVQ3H4m9gyyMFQY2k3gCx/EVKGf0fGZmJ52NW7vTW8=";
+  vendorHash = "sha256-3OCV4QH4HHJtienFy6w1bdOo6yKL5eGdT/B7SPSnLvg=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/tools/package-management/nix/README.md b/pkgs/tools/package-management/nix/README.md
new file mode 100644
index 0000000000000..0105b504e9b0e
--- /dev/null
+++ b/pkgs/tools/package-management/nix/README.md
@@ -0,0 +1,35 @@
+# Steps for Testing New Releases
+
+## Patch Releases or Updating `nixVersions.{latest,git}`
+
+Branch to merge into: **master** or **release-$nixos-version**
+
+Build the affected Nix packages and run their tests on the following platforms: **x86_64-linux**, **aarch64-linux**, **x86_64-darwin**, and **aarch64-darwin**.
+If you lack the necessary hardware for these platforms, you may need to ask others for assistance with the builds.
+Alternatively, you can request access to the Nix community builder for all platforms [here](https://github.com/NixOS/aarch64-build-box) and [here](https://nix-community.org/community-builder/).
+
+To build all dependent packages, use:
+
+```
+nix-review pr <your-pull-request>
+```
+
+And to build all important NixOS tests, run:
+
+```
+# Replace $version with the actual Nix version
+nix-build nixVersions.nix_$version.tests
+```
+
+Be sure to also update the `nix-fallback-paths` whenever you do a patch release for `nixVersions.stable`
+
+```
+# Replace $version with the actual Nix version
+curl https://releases.nixos.org/nix/nix-$version/fallback-paths.nix > nixos/modules/installer/tools/nix-fallback-paths.nix
+```
+
+## Major Version Bumps
+
+If you're updating `nixVersions.stable`, follow all the steps mentioned above, but use the **staging** branch for your pull request (or **staging-next** after coordinating with the people in matrix `#staging:nixos.org`)
+This is necessary because, at the end of the staging-next cycle, the NixOS tests are built through the [staging-next-small](https://hydra.nixos.org/jobset/nixos/staging-next-small) jobset.
+Especially nixos installer test are important to look at here.
diff --git a/pkgs/tools/package-management/nix/common.nix b/pkgs/tools/package-management/nix/common.nix
index 58923e44b48df..a6f9f3c5b5946 100644
--- a/pkgs/tools/package-management/nix/common.nix
+++ b/pkgs/tools/package-management/nix/common.nix
@@ -263,14 +263,6 @@ self = stdenv.mkDerivation {
     perl-bindings = perl.pkgs.toPerlModule (callPackage ./nix-perl.nix { nix = self; inherit Security; });
 
     tests = {
-      nixi686 = pkgsi686Linux.nixVersions.${self_attribute_name};
-      nixStatic = pkgsStatic.nixVersions.${self_attribute_name};
-
-      # Basic smoke test that needs to pass when upgrading nix.
-      # Note that this test does only test the nixVersions.stable attribute.
-      misc = nixosTests.nix-misc.default;
-      upgrade = nixosTests.nix-upgrade;
-
       srcVersion = runCommand "nix-src-version" {
         inherit version;
       } ''
@@ -291,6 +283,16 @@ self = stdenv.mkDerivation {
         inherit lib pkgs;
         nix = self;
       };
+    } // lib.optionalAttrs stdenv.isLinux {
+      nixStatic = pkgsStatic.nixVersions.${self_attribute_name};
+
+      # Basic smoke tests that needs to pass when upgrading nix.
+      # Note that this test does only test the nixVersions.stable attribute.
+      misc = nixosTests.nix-misc.default;
+      upgrade = nixosTests.nix-upgrade;
+      simpleUefiSystemdBoot = nixosTests.installer.simpleUefiSystemdBoot;
+    } // lib.optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
+      nixi686 = pkgsi686Linux.nixVersions.${self_attribute_name};
     };
   };
 
diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix
index 38cd370d064a7..ab059abf912f7 100644
--- a/pkgs/tools/package-management/nix/default.nix
+++ b/pkgs/tools/package-management/nix/default.nix
@@ -265,6 +265,7 @@ in lib.makeExtensible (self: ({
     else
       nix;
 
+  # Read ./README.md before bumping a major release
   stable = addFallbackPathsCheck self.nix_2_18;
 } // lib.optionalAttrs config.allowAliases (
   lib.listToAttrs (map (
diff --git a/pkgs/tools/security/kubernetes-polaris/default.nix b/pkgs/tools/security/kubernetes-polaris/default.nix
index 508601c109a39..6030c40b552b2 100644
--- a/pkgs/tools/security/kubernetes-polaris/default.nix
+++ b/pkgs/tools/security/kubernetes-polaris/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kubernetes-polaris";
-  version = "9.3.0";
+  version = "9.4.0";
 
   src = fetchFromGitHub {
     owner = "FairwindsOps";
     repo = "polaris";
     rev = version;
-    sha256 = "sha256-qJAhxwVM/tYdCWLL1snUYjXGfgdcHkBFrI9xBg1/EXU=";
+    sha256 = "sha256-Vw+4/GVuTM4KioZnFk2RH6rmXD6zQO29NepAr2TwHjI=";
   };
 
-  vendorHash = "sha256-6sxzRI22xiZOQds20iU5OsU+JqcNB2wOUrOZrOH1Sa4=";
+  vendorHash = "sha256-X0GPKR6l1v5312hOmelrcqp4KT3LwsGkvKoqUfEM0uU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/ldeep/default.nix b/pkgs/tools/security/ldeep/default.nix
index b8e75978e2d30..8a832892b5605 100644
--- a/pkgs/tools/security/ldeep/default.nix
+++ b/pkgs/tools/security/ldeep/default.nix
@@ -6,14 +6,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "ldeep";
-  version = "1.0.65";
+  version = "1.0.66";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "franc-pentest";
     repo = "ldeep";
     rev = "refs/tags/${version}";
-    hash = "sha256-SbsHc6gSHPmtDWHR+fJAcvWZMxae/Ufc4XB6cvoPTbE=";
+    hash = "sha256-zXXTeuEgcGaMkJGWwWQ6DpKPEZp6fjy5i4jRr4AvApQ=";
   };
 
   pythonRelaxDeps = [
diff --git a/pkgs/tools/security/ssh-to-age/default.nix b/pkgs/tools/security/ssh-to-age/default.nix
index 4cf19ea2dafe9..b65ba77ff2c1d 100644
--- a/pkgs/tools/security/ssh-to-age/default.nix
+++ b/pkgs/tools/security/ssh-to-age/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ssh-to-age";
-  version = "1.1.8";
+  version = "1.1.9";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "ssh-to-age";
     rev = version;
-    sha256 = "sha256-wGtNaejzAOgOuYDEKz6xMCaoaHsiDuQZj0KKpcejphE=";
+    sha256 = "sha256-cEEFz/iVhvfo8CffC9wkIRnF26xL+roaqKsLmUgfUiA=";
   };
 
-  vendorHash = "sha256-w/REcFeH58DTQwgotxSBVR4y7aQ9rBDX2U0A4vJno7s=";
+  vendorHash = "sha256-FH+etKil0oiiB5tvDYS2nu1HG4yZTWZuRhtYnbq4Os4=";
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index ab699f8f02b77..6c12b20a613f5 100644
--- a/pkgs/tools/security/sslscan/default.nix
+++ b/pkgs/tools/security/sslscan/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sslscan";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = "refs/tags/${version}";
-    hash = "sha256-we55Oo9sIZ1FQn94xejlCKwlZBDMrQs/1f++blXTTUM=";
+    hash = "sha256-K0OJvb9jym7P6ehtV5M/edq4ZKwacn8D5IC4PyttqZY=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index d38b018128fad..66745ccf86a85 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.3.2";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-kjSyIgLTObTOKMG5dk49XmWPXZpCWbLdpkmAsJcFliA=";
+    hash = "sha256-A5hOBxj8tKlkHd8zDHfDoU6fIu8gDpt3/usbiDk0/G0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/text/crowdin-cli/default.nix b/pkgs/tools/text/crowdin-cli/default.nix
index 1a1b70c9513e0..5c46c1efef09a 100644
--- a/pkgs/tools/text/crowdin-cli/default.nix
+++ b/pkgs/tools/text/crowdin-cli/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "crowdin-cli";
-  version = "4.1.2";
+  version = "4.2.0";
 
   src = fetchurl {
     url = "https://github.com/crowdin/${pname}/releases/download/${version}/${pname}.zip";
-    hash = "sha256-D0wx570pU1FuyoQ62ZPN1v9jC9tRrJuuQet8D8w2v+M=";
+    hash = "sha256-158zbgYw4FP/vQVsSs9tt9VcisBWpRn/D4ORiM24PYY=";
   };
 
   nativeBuildInputs = [ installShellFiles makeWrapper unzip ];
diff --git a/pkgs/tools/text/mdbook-mermaid/default.nix b/pkgs/tools/text/mdbook-mermaid/default.nix
index 52211b2737108..0f2137a3976a8 100644
--- a/pkgs/tools/text/mdbook-mermaid/default.nix
+++ b/pkgs/tools/text/mdbook-mermaid/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook-mermaid";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "badboy";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qyt5N6Fito++5lpjDXlzupmguue9kc409IpaDkIRgxw=";
+    hash = "sha256-elDKxtGMLka9Ss5CNnzw32ndxTUliNUgPXp7e4KUmBo=";
   };
 
-  cargoHash = "sha256-ji38ZNOZ+SDL7+9dvaRIA38EsqMqYWpSmZntexJqcMU=";
+  cargoHash = "sha256-BnbllOsidqDEfKs0pd6AzFjzo51PKm9uFSwmOGTW3ug=";
 
   buildInputs = lib.optionals stdenv.isDarwin [
     CoreServices
diff --git a/pkgs/tools/text/riffdiff/default.nix b/pkgs/tools/text/riffdiff/default.nix
index 1356dc64d79bd..6dcf1d84af148 100644
--- a/pkgs/tools/text/riffdiff/default.nix
+++ b/pkgs/tools/text/riffdiff/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "riffdiff";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "walles";
     repo = "riff";
     rev = version;
-    hash = "sha256-UjuJTA+MP5EItLD2z/THeh+6dJ2byIrOBqQfUiAWSvk=";
+    hash = "sha256-Vbze2WSrZOboLFcsnRYbfsWz6gbMEszDWEMQUNZAzLY=";
   };
 
-  cargoHash = "sha256-2J+7uwDzoviytbPQ+B36/oJwysBtbiJXKU7zW5vCCEU=";
+  cargoHash = "sha256-/R2RSsNRpCI/LTXlF0UtdIjWrBDJaEOASTeAtyNwS0M=";
 
   meta = with lib; {
     description = "Diff filter highlighting which line parts have changed";
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index b00cc4898cc30..d327a66542d6e 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -55,7 +55,7 @@ let
       aliases;
 in
 
-mapAliases ({
+mapAliases {
   # Added 2018-07-16 preserve, reason: forceSystem should not be used directly in Nixpkgs.
   forceSystem = system: _:
     (import self.path { localSystem = { inherit system; }; });
@@ -756,6 +756,7 @@ mapAliases ({
   kube3d = k3d; # Added 2022-0705
   kafkacat = kcat; # Added 2021-10-07
   kak-lsp = kakoune-lsp; # Added 2024-04-01
+  kargo = throw "kargo was removed as it is deprecated upstream and depends on the removed boto package"; # Added 2024-09-22
   kdbplus = throw "'kdbplus' has been removed from nixpkgs"; # Added 2024-05-06
   kdeconnect = plasma5Packages.kdeconnect-kde; # Added 2020-10-28
   keepassx = throw "KeePassX is no longer actively developed. Please consider KeePassXC as a maintained alternative."; # Added 2023-02-17
@@ -858,16 +859,10 @@ mapAliases ({
   linux-rt_6_1 = linuxKernel.kernels.linux_rt_6_1;
   linuxPackages_4_14 = linuxKernel.packages.linux_4_14;
   linuxPackages_4_19 = linuxKernel.packages.linux_4_19;
-  linuxPackages_4_9 = linuxKernel.packages.linux_4_9;
+  linuxPackages_5_4 = linuxKernel.packages.linux_5_4;
   linuxPackages_5_10 = linuxKernel.packages.linux_5_10;
   linuxPackages_5_15 = linuxKernel.packages.linux_5_15;
-  linuxPackages_5_18 = linuxKernel.packages.linux_5_18;
-  linuxPackages_5_19 = linuxKernel.packages.linux_5_19;
-  linuxPackages_5_4 = linuxKernel.packages.linux_5_4;
-  linuxPackages_6_0 = linuxKernel.packages.linux_6_0;
   linuxPackages_6_1 = linuxKernel.packages.linux_6_1;
-  linuxPackages_6_2 = linuxKernel.packages.linux_6_2;
-  linuxPackages_6_3 = linuxKernel.packages.linux_6_3;
   linuxPackages_6_4 = linuxKernel.packages.linux_6_4;
   linuxPackages_6_5 = linuxKernel.packages.linux_6_5;
   linuxPackages_6_6 = linuxKernel.packages.linux_6_6;
@@ -888,16 +883,10 @@ mapAliases ({
   linuxPackages_rt_6_1 = linuxKernel.packages.linux_rt_6_1;
   linux_4_14 = linuxKernel.kernels.linux_4_14;
   linux_4_19 = linuxKernel.kernels.linux_4_19;
-  linux_4_9 = linuxKernel.kernels.linux_4_9;
+  linux_5_4 = linuxKernel.kernels.linux_5_4;
   linux_5_10 = linuxKernel.kernels.linux_5_10;
   linux_5_15 = linuxKernel.kernels.linux_5_15;
-  linux_5_18 = linuxKernel.kernels.linux_5_18;
-  linux_5_19 = linuxKernel.kernels.linux_5_19;
-  linux_5_4 = linuxKernel.kernels.linux_5_4;
-  linux_6_0 = linuxKernel.kernels.linux_6_0;
   linux_6_1 = linuxKernel.kernels.linux_6_1;
-  linux_6_2 = linuxKernel.kernels.linux_6_2;
-  linux_6_3 = linuxKernel.kernels.linux_6_3;
   linux_6_4 = linuxKernel.kernels.linux_6_4;
   linux_6_5 = linuxKernel.kernels.linux_6_5;
   linux_6_6 = linuxKernel.kernels.linux_6_6;
@@ -980,6 +969,7 @@ mapAliases ({
   mailman-rss = throw "The mailman-rss package was dropped since it was unmaintained."; # Added 2024-06-21
   mariadb_104 = throw "mariadb_104 has been removed from nixpkgs, please switch to another version like mariadb_106"; # Added 2023-09-11
   mariadb_1010 = throw "mariadb_1010 has been removed from nixpkgs, please switch to another version like mariadb_1011"; # Added 2023-11-14
+  mariadb_110 = throw "mariadb_110 has been removed from nixpkgs, please switch to another version like mariadb_114"; # Added 2024-08-15
   mariadb-client = hiPrio mariadb.client; #added 2019.07.28
   markdown-pp = throw "markdown-pp was removed from nixpkgs, because the upstream archived it on 2021-09-02"; # Added 2023-07-22
   markmind = throw "markmind has been removed from nixpkgs, because it depended on an old version of electron"; # Added 2023-09-12
@@ -1558,6 +1548,7 @@ mapAliases ({
   tightvnc = throw "'tightvnc' has been removed as the version 1.3 is not maintained upstream anymore and is insecure"; # Added 2024-08-22
   tixati = throw "'tixati' has been removed from nixpkgs as it is unfree and unmaintained"; # Added 2023-03-17
   tkcvs = tkrev; # Added 2022-03-07
+  toil = throw "toil was removed as it was broken and requires obsolete versions of libraries"; # Added 2024-09-22
   tokodon = plasma5Packages.tokodon;
   tokyo-night-gtk = tokyonight-gtk-theme; # Added 2024-01-28
   tomcat_connectors = apacheHttpdPackages.mod_jk; # Added 2024-06-07
@@ -1620,6 +1611,7 @@ mapAliases ({
   ### V ###
 
   v4l_utils = throw "'v4l_utils' has been renamed to/replaced by 'v4l-utils'"; # Converted to throw 2023-09-10
+  validphys2 = throw "validphys2 has been removed, since it has a broken dependency that was removed"; # Added 2024-08-21
   vamp = { vampSDK = vamp-plugin-sdk; }; # Added 2020-03-26
   vaapiIntel = intel-vaapi-driver; # Added 2023-05-31
   vaapiVdpau = libva-vdpau-driver; # Added 2024-06-05
@@ -1651,6 +1643,7 @@ mapAliases ({
 
   ### W ###
   wakatime = wakatime-cli; # 2024-05-30
+  wal_e = throw "wal_e was removed as it is unmaintained upstream and depends on the removed boto package; upstream recommends using wal-g or pgbackrest"; # Added 2024-09-22
   waybar-hyprland = throw "waybar-hyprland has been removed: hyprland support is now built into waybar by default."; # Added 2023-08-21
   wayfireApplications-unwrapped = throw ''
     'wayfireApplications-unwrapped.wayfire' has been renamed to/replaced by 'wayfire'
@@ -1821,4 +1814,4 @@ mapAliases ({
     purple-facebook
     ;
 
-})
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 43b103ea11fae..757459aa5645a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1341,7 +1341,7 @@ with pkgs;
 
   desktopToDarwinBundle = makeSetupHook {
     name = "desktop-to-darwin-bundle-hook";
-    propagatedBuildInputs = [ writeDarwinBundle librsvg imagemagick python3Packages.icnsutil ];
+    propagatedBuildInputs = [ writeDarwinBundle librsvg imagemagick (onlyBin python3Packages.icnsutil) ];
   } ../build-support/setup-hooks/desktop-to-darwin-bundle.sh;
 
   keepBuildTree = makeSetupHook {
@@ -2545,8 +2545,6 @@ with pkgs;
     inherit (darwin.apple_sdk_11_0.frameworks) AudioUnit Carbon Cocoa;
   };
 
-  dynamips = callPackage ../applications/emulators/dynamips { };
-
   fceux = libsForQt5.callPackage ../applications/emulators/fceux { };
 
   firebird-emu = libsForQt5.callPackage ../applications/emulators/firebird-emu { };
@@ -3532,7 +3530,7 @@ with pkgs;
 
   ecdsautils = callPackage ../tools/security/ecdsautils { };
 
-  echidna = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage (../tools/security/echidna) { });
+  echidna = haskell.lib.compose.justStaticExecutables (haskellPackages.callPackage ../tools/security/echidna { });
 
   sedutil = callPackage ../tools/security/sedutil { };
 
@@ -6213,8 +6211,6 @@ with pkgs;
 
   byzanz = callPackage ../applications/video/byzanz { };
 
-  algolia-cli = callPackage ../development/tools/algolia-cli { };
-
   anydesk = callPackage ../applications/networking/remote/anydesk { };
 
   anystyle-cli = callPackage ../tools/misc/anystyle-cli { };
@@ -7614,9 +7610,9 @@ with pkgs;
 
   fingerprintx = callPackage ../tools/security/fingerprintx { };
 
-  bsd-fingerd = bsd-finger.override({
+  bsd-fingerd = bsd-finger.override {
     buildProduct = "daemon";
-  });
+  };
 
   iprange = callPackage ../applications/networking/firehol/iprange.nix { };
 
@@ -7853,7 +7849,7 @@ with pkgs;
     garage
       garage_0_8 garage_0_9
       garage_0_8_7 garage_0_9_4
-      garage_1_0_0 garage_1_x;
+      garage_1_0_1 garage_1_x;
 
   garmintools = callPackage ../development/libraries/garmintools { };
 
@@ -8559,9 +8555,9 @@ with pkgs;
 
   hfsprogs = callPackage ../tools/filesystems/hfsprogs { };
 
-  highlight = callPackage ../tools/text/highlight ({
+  highlight = callPackage ../tools/text/highlight {
     lua = lua5;
-  });
+  };
 
   hockeypuck = callPackage ../servers/hockeypuck/server.nix { };
 
@@ -9038,8 +9034,6 @@ with pkgs;
 
   k2pdfopt = callPackage ../applications/misc/k2pdfopt { };
 
-  kargo = callPackage ../tools/misc/kargo { };
-
   kazam = callPackage ../applications/video/kazam { };
 
   kalibrate-rtl = callPackage ../applications/radio/kalibrate-rtl { };
@@ -11319,12 +11313,6 @@ with pkgs;
 
   pk2cmd = callPackage ../tools/misc/pk2cmd { };
 
-  plantuml = callPackage ../tools/misc/plantuml { };
-
-  plantuml-c4 = callPackage ../tools/misc/plantuml/plantuml-c4.nix { };
-
-  plantuml-server = callPackage ../tools/misc/plantuml-server { };
-
   plan9port = darwin.apple_sdk_11_0.callPackage ../tools/system/plan9port {
     inherit (darwin.apple_sdk_11_0.frameworks) Carbon Cocoa IOKit Metal QuartzCore;
     inherit (darwin) DarwinTools;
@@ -13582,8 +13570,6 @@ with pkgs;
 
   wego = callPackage ../applications/misc/wego { };
 
-  wal_e = callPackage ../tools/backup/wal-e { };
-
   wander = callPackage ../tools/admin/wander { };
 
   watchexec = callPackage ../tools/misc/watchexec {
@@ -15437,12 +15423,12 @@ with pkgs;
       stdenv.targetPlatform));
   in pkgs.${"llvmPackages_${minSupported}"};
 
-  llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 ({
+  llvmPackages_12 = recurseIntoAttrs (callPackage ../development/compilers/llvm/12 {
     inherit (stdenvAdapters) overrideCC;
     buildLlvmTools = buildPackages.llvmPackages_12.tools;
     targetLlvmLibraries = targetPackages.llvmPackages_12.libraries or llvmPackages_12.libraries;
     targetLlvm = targetPackages.llvmPackages_12.llvm or llvmPackages_12.llvm;
-  }));
+  });
 
   inherit (rec {
     llvmPackagesSet = recurseIntoAttrs (callPackages ../development/compilers/llvm { });
@@ -16433,7 +16419,7 @@ with pkgs;
   luarocks-nix = luaPackages.luarocks-nix;
 
   luarocks-packages-updater = callPackage ../by-name/lu/luarocks-packages-updater/package.nix {
-    pluginupdate = ../../maintainers/scripts/pluginupdate.py;
+    pluginupdate = ../../maintainers/scripts/pluginupdate-py;
   };
 
   luau = callPackage ../development/interpreters/luau { };
@@ -16946,8 +16932,6 @@ with pkgs;
 
   actiona = libsForQt5.callPackage ../applications/misc/actiona { };
 
-  actionlint = callPackage ../development/tools/analysis/actionlint { };
-
   adreaper = callPackage ../tools/security/adreaper { };
 
   aeron = callPackage ../servers/aeron { };
@@ -17141,7 +17125,9 @@ with pkgs;
     electron_28-bin
     electron_29-bin
     electron_30-bin
-    electron_31-bin;
+    electron_31-bin
+    electron_32-bin
+    ;
 
   inherit (callPackages ../development/tools/electron/chromedriver { })
     electron-chromedriver_29
@@ -17155,9 +17141,10 @@ with pkgs;
   electron_29 = electron_29-bin;
   electron_30 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_30 then electron-source.electron_30 else electron_30-bin;
   electron_31 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_31 then electron-source.electron_31 else electron_31-bin;
-  electron = electron_31;
-  electron-bin = electron_31-bin;
-  electron-chromedriver = electron-chromedriver_31;
+  electron_32 = if lib.meta.availableOn stdenv.hostPlatform electron-source.electron_32 then electron-source.electron_32 else electron_32-bin;
+  electron = electron_32;
+  electron-bin = electron_32-bin;
+  electron-chromedriver = electron-chromedriver_32;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -18628,16 +18615,12 @@ with pkgs;
 
   sloc = nodePackages.sloc;
 
-  smatch = callPackage ../development/tools/analysis/smatch { };
-
   smc = callPackage ../tools/misc/smc { };
 
   snakemake = callPackage ../applications/science/misc/snakemake { };
 
   snore = callPackage ../tools/misc/snore { };
 
-  snyk = callPackage ../development/tools/analysis/snyk { };
-
   snzip = callPackage ../tools/archivers/snzip { };
 
   snowman = qt5.callPackage ../development/tools/analysis/snowman { };
@@ -18710,8 +18693,6 @@ with pkgs;
 
   strace-analyzer = callPackage ../development/tools/misc/strace-analyzer { };
 
-  stylelint = callPackage ../development/tools/analysis/stylelint { };
-
   stylua = callPackage ../development/tools/stylua { };
 
   summon = callPackage ../development/tools/summon { };
@@ -18813,8 +18794,6 @@ with pkgs;
 
   todoist-electron = callPackage ../applications/misc/todoist-electron { };
 
-  toil = callPackage ../applications/science/misc/toil { };
-
   travis = callPackage ../development/tools/misc/travis { };
 
   tree-sitter = makeOverridable (callPackage ../development/tools/parsing/tree-sitter) {
@@ -25047,7 +25026,7 @@ with pkgs;
     mariadb_105
     mariadb_106
     mariadb_1011
-    mariadb_110
+    mariadb_114
   ;
   mariadb = mariadb_1011;
   mariadb-embedded = mariadb.override { withEmbedded = true; };
@@ -26170,8 +26149,6 @@ with pkgs;
   # hardened kernels
   linuxPackages_hardened = linuxKernel.packages.linux_hardened;
   linux_hardened = linuxPackages_hardened.kernel;
-  linuxPackages_4_19_hardened = linuxKernel.packages.linux_4_19_hardened;
-  linux_4_19_hardened = linuxPackages_4_19_hardened.kernel;
   linuxPackages_5_4_hardened = linuxKernel.packages.linux_5_4_hardened;
   linux_5_4_hardened = linuxKernel.kernels.linux_5_4_hardened;
   linuxPackages_5_10_hardened = linuxKernel.packages.linux_5_10_hardened;
@@ -36704,8 +36681,6 @@ with pkgs;
 
   shtns = callPackage ../applications/science/physics/shtns { };
 
-  validphys2 = with python3Packages; toPythonApplication validphys2;
-
   xfitter = callPackage ../applications/science/physics/xfitter { };
 
   xflr5 = libsForQt5.callPackage ../applications/science/physics/xflr5 { };
@@ -37834,7 +37809,7 @@ with pkgs;
     # Not recommended; too fragile
     nixops_unstable_full;
 
-  # Useful with ofborg, e.g. commit prefix `nixops_unstablePlugins.nixops-aws: ...` to trigger automatically.
+  # Useful with ofborg, e.g. commit prefix `nixops_unstablePlugins.nixops-digitalocean: ...` to trigger automatically.
   nixops_unstablePlugins = recurseIntoAttrs nixops_unstable_minimal.availablePlugins;
 
   /*
@@ -37916,7 +37891,7 @@ with pkgs;
   /*
     A NixOS/home-manager/arion/... module that sets the `pkgs` module argument.
    */
-  pkgsModule = { lib, options, ... }: {
+  pkgsModule = { options, ... }: {
     config =
       if options?nixpkgs.pkgs then {
         # legacy / nixpkgs.nix style
@@ -38517,9 +38492,7 @@ with pkgs;
 
   vimUtils = callPackage ../applications/editors/vim/plugins/vim-utils.nix { };
 
-  vimPlugins = recurseIntoAttrs (callPackage ../applications/editors/vim/plugins {
-    luaPackages = lua51Packages;
-  });
+  vimPlugins = recurseIntoAttrs (callPackage ../applications/editors/vim/plugins { });
 
   vimb-unwrapped = callPackage ../applications/networking/browsers/vimb { };
   vimb = wrapFirefox vimb-unwrapped { };
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 8e78e3fe75e79..792a26d97313c 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchzip
+{ lib, stdenv, fetchurl, fetchzip
 , callPackage, newScope, recurseIntoAttrs, ocamlPackages_4_05, ocamlPackages_4_09
 , ocamlPackages_4_10, ocamlPackages_4_12, ocamlPackages_4_14
 , fetchpatch, makeWrapper, coq2html
@@ -11,7 +11,7 @@ let
       coqPackages = self // { __attrsFailEvaluation = true; recurseForDerivations = false; };
 
       metaFetch = import ../build-support/coq/meta-fetch/default.nix
-        {inherit lib stdenv fetchzip; };
+        {inherit lib stdenv fetchzip fetchurl; };
       mkCoqDerivation = lib.makeOverridable (callPackage ../build-support/coq {});
 
       contribs = recurseIntoAttrs
diff --git a/pkgs/top-level/emilua-plugins.nix b/pkgs/top-level/emilua-plugins.nix
index eb220d4b3ab7f..9706ef5ce9a8d 100644
--- a/pkgs/top-level/emilua-plugins.nix
+++ b/pkgs/top-level/emilua-plugins.nix
@@ -9,6 +9,12 @@ emilua:
 (lib.makeScope newScope (self: {
   inherit emilua;
   beast = self.callPackage ../development/emilua-plugins/beast { };
+  botan = self.callPackage ../development/emilua-plugins/botan {
+    inherit (pkgs) botan3;
+  };
   qt5 = self.callPackage ../development/emilua-plugins/qt5 { };
   qt6 = self.callPackage ../development/emilua-plugins/qt6 { };
+  secp256k1 = self.callPackage ../development/emilua-plugins/secp256k1 {
+    inherit (pkgs) secp256k1;
+  };
 }))
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index cbcee495efd83..3c00a5693a58b 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -26,6 +26,10 @@ let
     linux = kernel;
   };
 
+  markBroken = drv: drv.overrideAttrs ({ meta ? {}, ... }: {
+    meta = meta // { broken = true; };
+  });
+
   # Hardened Linux
   hardenedKernelFor = kernel': overrides:
     let
@@ -97,15 +101,6 @@ in {
       rpiVersion = 4;
     };
 
-    linux_4_19 = callPackage ../os-specific/linux/kernel/mainline.nix {
-      branch = "4.19";
-      kernelPatches =
-        [ kernelPatches.bridge_stp_helper
-          kernelPatches.request_key_helper
-          kernelPatches.modinst_arg_list_too_long
-        ];
-    };
-
     linux_5_4 = callPackage ../os-specific/linux/kernel/mainline.nix {
       branch = "5.4";
       kernelPatches = [
@@ -268,27 +263,18 @@ in {
 
     linux_hardened = hardenedKernelFor packageAliases.linux_default.kernel { };
 
-    linux_4_19_hardened = hardenedKernelFor kernels.linux_4_19 {
+    linux_5_4_hardened = markBroken (hardenedKernelFor kernels.linux_5_4 {
       stdenv = gcc10Stdenv;
       buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
-    };
-    linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 {
-      stdenv = gcc10Stdenv;
-      buildPackages = buildPackages // { stdenv = buildPackages.gcc10Stdenv; };
-    };
+    });
     linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
     linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
     linux_6_1_hardened = hardenedKernelFor kernels.linux_6_1 { };
     linux_6_6_hardened = hardenedKernelFor kernels.linux_6_6 { };
 
   } // lib.optionalAttrs config.allowAliases {
-    linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11";
     linux_4_14 = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
-    linux_5_18 = throw "linux 5.18 was removed because it has reached its end of life upstream";
-    linux_5_19 = throw "linux 5.19 was removed because it has reached its end of life upstream";
-    linux_6_0 = throw "linux 6.0 was removed because it has reached its end of life upstream";
-    linux_6_2 = throw "linux 6.2 was removed because it has reached its end of life upstream";
-    linux_6_3 = throw "linux 6.3 was removed because it has reached its end of life upstream";
+    linux_4_19 = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
     linux_6_4 = throw "linux 6.4 was removed because it has reached its end of life upstream";
     linux_6_5 = throw "linux 6.5 was removed because it has reached its end of life upstream";
     linux_6_7 = throw "linux 6.7 was removed because it has reached its end of life upstream";
@@ -297,9 +283,10 @@ in {
 
     linux_xanmod_tt = throw "linux_xanmod_tt was removed because upstream no longer offers this option";
 
-    linux_5_18_hardened = throw "linux 5.18 was removed because it has reached its end of life upstream";
-    linux_5_19_hardened = throw "linux 5.19 was removed because it has reached its end of life upstream";
-    linux_6_0_hardened = throw "linux 6.0 was removed because it has reached its end of life upstream";
+    linux_4_14_hardened = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
+    linux_4_19_hardened = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
+    linux_6_4_hardened = throw "linux 6.4 was removed because it has reached its end of life upstream";
+    linux_6_5_hardened = throw "linux 6.5 was removed because it has reached its end of life upstream";
     linux_6_7_hardened = throw "linux 6.7 was removed because it has reached its end of life upstream";
     linux_6_8_hardened = throw "linux 6.8 was removed because it has reached its end of life upstream";
     linux_6_9_hardened = throw "linux 6.9 was removed because it has reached its end of life upstream";
@@ -630,7 +617,6 @@ in {
 
   vanillaPackages = {
     # recurse to build modules for the kernels
-    linux_4_19 = recurseIntoAttrs (packagesFor kernels.linux_4_19);
     linux_5_4 = recurseIntoAttrs (packagesFor kernels.linux_5_4);
     linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
     linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
@@ -639,13 +625,8 @@ in {
     linux_6_10 = recurseIntoAttrs (packagesFor kernels.linux_6_10);
     linux_6_11 = recurseIntoAttrs (packagesFor kernels.linux_6_11);
   } // lib.optionalAttrs config.allowAliases {
-    linux_4_9 = throw "linux 4.9 was removed because it will reach its end of life within 22.11"; # Added 2022-11-08
     linux_4_14 = throw "linux 4.14 was removed because it will reach its end of life within 23.11"; # Added 2023-10-11
-    linux_5_18 = throw "linux 5.18 was removed because it reached its end of life upstream"; # Added 2022-09-17
-    linux_5_19 = throw "linux 5.19 was removed because it reached its end of life upstream"; # Added 2022-11-01
-    linux_6_0 = throw "linux 6.0 was removed because it reached its end of life upstream"; # Added 2023-01-20
-    linux_6_2 = throw "linux 6.2 was removed because it reached its end of life upstream"; # Added 2023-05-26
-    linux_6_3 = throw "linux 6.3 was removed because it reached its end of life upstream"; # Added 2023-07-22
+    linux_4_19 = throw "linux 4.19 was removed because it will reach its end of life within 24.11"; # Added 2024-09-21
     linux_6_4 = throw "linux 6.4 was removed because it reached its end of life upstream"; # Added 2023-10-02
     linux_6_5 = throw "linux 6.5 was removed because it reached its end of life upstream"; # Added 2024-02-28
     linux_6_7 = throw "linux 6.7 was removed because it reached its end of life upstream"; # Added 2024-04-04
@@ -676,7 +657,6 @@ in {
 
     linux_hardened = recurseIntoAttrs (packagesFor kernels.linux_hardened);
 
-    linux_4_19_hardened = recurseIntoAttrs (packagesFor kernels.linux_4_19_hardened);
     linux_5_4_hardened = recurseIntoAttrs (packagesFor kernels.linux_5_4_hardened);
     linux_5_10_hardened = recurseIntoAttrs (packagesFor kernels.linux_5_10_hardened);
     linux_5_15_hardened = recurseIntoAttrs (packagesFor kernels.linux_5_15_hardened);
@@ -694,9 +674,10 @@ in {
     linux_latest_libre = recurseIntoAttrs (packagesFor kernels.linux_latest_libre);
     __recurseIntoDerivationForReleaseJobs = true;
   } // lib.optionalAttrs config.allowAliases {
-    linux_5_18_hardened = throw "linux 5.18 was removed because it has reached its end of life upstream";
-    linux_5_19_hardened = throw "linux 5.19 was removed because it has reached its end of life upstream";
-    linux_6_0_hardened = throw "linux 6.0 was removed because it has reached its end of life upstream";
+    linux_4_14_hardened = throw "linux 4.14 was removed because it will reach its end of life within 23.11";
+    linux_4_19_hardened = throw "linux 4.19 was removed because it will reach its end of life within 24.11";
+    linux_6_4_hardened = throw "linux 6.4 was removed because it has reached its end of life upstream";
+    linux_6_5_hardened = throw "linux 6.5 was removed because it has reached its end of life upstream";
     linux_6_7_hardened = throw "linux 6.7 was removed because it has reached its end of life upstream";
     linux_6_8_hardened = throw "linux 6.8 was removed because it has reached its end of life upstream";
     linux_6_9_hardened = throw "linux 6.9 was removed because it has reached its end of life upstream";
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 058c372bd52b1..3baab5aeb1966 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -12136,6 +12136,7 @@ with self; {
     };
     buildInputs = [ ModuleBuildTiny TestNeeds ];
     propagatedBuildInputs = [ HTTPMessage ];
+    __darwinAllowLocalNetworking = true;
     meta = {
       description = "Simple http server class";
       homepage = "https://github.com/libwww-perl/HTTP-Daemon";
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index 3bcb357458f85..9fd21df75e73b 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -73,8 +73,10 @@ mapAliases ({
   bedup = throw "bedup was removed because it was broken and abandoned upstream"; # added 2023-02-04
   bip_utils = bip-utils; # 2023-10-08
   bitcoin-price-api = throw "bitcoin-price-api has been removed, it was using setuptools 2to3 translation feautre, which has been removed in setuptools 58"; # added 2022-02-15
+  blessings = throw "blessings has been removed in favor of blessed, as it was unmaintained"; # added 2024-08-20
   BlinkStick = blinkstick; # added 2023-02-19
   blockdiagcontrib-cisco = throw "blockdiagcontrib-cisco is not compatible with blockdiag 2.0.0 and has been removed."; # added 2020-11-29
+  boto = throw "boto was removed as it is deprecated upstream, had not been updated since 2018, and failed to build; please use boto3 and botocore"; # Added 2024-09-22
   bsblan = python-bsblan; # added 2022-11-04
   btchip = btchip-python; # added 2023-03-03
   buildbot = throw "use pkgs.buildbot instead"; # added 2022-04-07
@@ -219,6 +221,7 @@ mapAliases ({
   fritzprofiles = throw "fritzprofiles was removed from nixpkgs, because it was removed as dependency of home-assistant for which it was pacakged."; # added 2024-01-05
   garages-amsterdam = throw "garages-amsterdam has been renamed odp-amsterdam."; # added 2023-01-04
   garminconnect-ha = garminconnect; # added 2022-02-05
+  gcs-oauth2-boto-plugin = throw "gcs-oauth2-boto-plugin was removed as it depends on the removed boto package"; # Added 2024-09-22
   gdtoolkit = throw "gdtoolkit has been promoted to a top-level attribute name: `pkgs.gdtoolkit`"; # added 2023-02-15
   GeoIP = geoip; # added 2023-02-19
   gigalixir = throw "gigalixir has been promoted to a top-level attribute name: `pkgs.gigalixir`"; # Added 2022-10-02
@@ -278,6 +281,7 @@ mapAliases ({
   jsonschema_3 = throw "jsonschema 3 is neither the latest version nor needed inside nixpkgs anymore"; # added 2023-06-28
   jupyter_client = jupyter-client; # added 2021-10-15
   jupyter_console = jupyter-console; # added  2023-07-31
+  jupyter-contrib-nbextensions = throw "jupyter-contrib-nbextensions has been removed, as it does not work with Jupyter Notebook 7"; # added 2024-09-22
   jupyter_core = jupyter-core; # added 2023-01-05
   jupyter_server = jupyter-server; # added 2023-01-05
   jupyter-server-ydoc = jupyter-collaboration; # added 2023-07-18
@@ -332,6 +336,7 @@ mapAliases ({
   mrkd = throw "mrkd has been promoted to a top-level attribute name: `pkgs.mrkd`"; # added 2023-08-01
   multi_key_dict = multi-key-dict; # added 2023-11-05
   mutmut = throw "mutmut has been promoted to a top-level attribute name: `pkgs.mutmut`"; # added 2022-10-02
+  n3fit = throw "n3fit has been removed since it relies on a dependency that was removed"; # added 2024-08-24
   nbmerge = throw "nbmerge has moved to pkgs.nbmerge"; # added 2024-07-05
   mypy-boto3-alexaforbusiness = throw "mypy-boto3-alexaforbusiness was removed because it is unmaintained"; # added 2024-09-04
   mypy-boto3-backupstorage = throw "mypy-boto3-backupstorage was removed because it is unmaintained"; # added 2024-09-04
@@ -395,6 +400,8 @@ mapAliases ({
   prometheus_client = prometheus-client; # added 2021-06-10
   prompt_toolkit = prompt-toolkit; # added 2021-07-22
   protonup = protonup-ng; # Added 2022-11-06
+  proton-vpn-network-manager-openvpn = throw "proton-vpn-network-manager-openvpn functionality was integrated in the proton-vpn-network-manager module"; # added 2024-09-20
+  proton-vpn-network-manager-wireguard = throw "proton-vpn-network-manager-wireguard functionality was integrated in the proton-vpn-network-manager module"; # added 2024-09-20
   proxy_tools = proxy-tools; # added 2023-11-05
   pur = throw "pur has been renamed to pkgs.pur"; # added 2021-11-08
   pushbullet = pushbullet-py;  # Added 2022-10-15
@@ -519,6 +526,7 @@ mapAliases ({
   pyxb = throw "pyxb has been removed, its last release was in 2017 and it has finally been archived in April 2023."; # added 2024-01-05
   pyzufall =  throw "pyzufall was removed, because it is no longer maintained"; # added 2024-05-14
   qasm2image = throw "qasm2image is no longer maintained (since November 2018), and is not compatible with the latest pythonPackages.qiskit versions."; # added 2020-12-09
+  qds-sdk = throw "qds-sdk was removed as it is unmaintained upstream and depends on the removed boto package"; # Added 2024-09-22
   qds_sdk = qds-sdk; # added 2023-10-21
   Quandl = quandl; # added 2023-02-19
   querystring_parser = querystring-parser; # added 2024-01-07
@@ -535,6 +543,7 @@ mapAliases ({
   recursivePthLoader = recursive-pth-loader; # added 2024-01-07
   rednose = throw "rednose is no longer maintained (since February 2018)"; # added 2023-08-06
   repeated_test = repeated-test; # added 2022-11-15
+  reportengine = throw "reportengine has been removed, since it is unmaintained and broken"; # added 2024-08-21
   repoze_lru = repoze-lru; # added 2023-11-11
   repoze_sphinx_autointerface = repoze-sphinx-autointerface; # added 2023-11-11
   repoze_who = repoze-who; # added 2023-11-11
@@ -548,6 +557,7 @@ mapAliases ({
   rig = throw "rig has been removed because it was pinned to python 2.7 and 3.5, failed to build and is otherwise unmaintained"; # added 2022-11-28
   rl-coach = "rl-coach was removed because the project is discontinued and was archived by upstream"; # added 2023-05-03
   roboschool = throw "roboschool is deprecated in favor of PyBullet and has been removed"; # added 2022-01-15
+  ronin = throw "ronin has been removed because it was unmaintained since 2018"; # added 2024-08-21
   ROPGadget = ropgadget; # added 2021-07-06
   rotate-backups = throw "rotate-backups was removed in favor of the top-level rotate-backups"; # added 2021-07-01
   ruamel_base = ruamel-base; # added 2021-11-01
@@ -640,6 +650,7 @@ mapAliases ({
   urwid-mitmproxy-mitmproxy = throw "urwid-mitmproxy has been removed because mitmproxy no longer uses it"; # Added 2024-07-26
   uuid = throw "uuid is a Python standard module"; # added 2024-04-18
   validictory = throw "validictory has been removed, since it abandoned"; # added 2023-07-07
+  validphys2 = throw "validphys2 has been removed, since it had a broken dependency that was removed"; # added 2023-07-07
   vega_datasets = vega-datasets; # added 2023-11-04
   ViennaRNA = viennarna; # added 2023-08-23
   virtual-display = throw "virtual-display has been renamed to PyVirtualDisplay"; # added 2023-01-07
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index a9231aecd6e8e..091be094c5b24 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1689,8 +1689,6 @@ self: super: with self; {
 
   blessed = callPackage ../development/python-modules/blessed { };
 
-  blessings = callPackage ../development/python-modules/blessings { };
-
   blinker = callPackage ../development/python-modules/blinker { };
 
   blinkpy = callPackage ../development/python-modules/blinkpy { };
@@ -1790,8 +1788,6 @@ self: super: with self; {
 
   boto3-stubs = callPackage ../development/python-modules/boto3-stubs { };
 
-  boto = callPackage ../development/python-modules/boto { };
-
   botocore = callPackage ../development/python-modules/botocore { };
 
   botocore-stubs = callPackage ../development/python-modules/botocore-stubs { };
@@ -2054,8 +2050,6 @@ self: super: with self; {
 
   cattrs = callPackage ../development/python-modules/cattrs { };
 
-  cbeams = callPackage ../misc/cbeams { };
-
   cbor2 = callPackage ../development/python-modules/cbor2 { };
 
   cbor = callPackage ../development/python-modules/cbor { };
@@ -4873,8 +4867,6 @@ self: super: with self; {
 
   gcovr = callPackage ../development/python-modules/gcovr { };
 
-  gcs-oauth2-boto-plugin = callPackage ../development/python-modules/gcs-oauth2-boto-plugin { };
-
   gcsa = callPackage ../development/python-modules/gcsa { };
 
   gcsfs = callPackage ../development/python-modules/gcsfs { };
@@ -6554,8 +6546,6 @@ self: super: with self; {
 
   jupyter-contrib-core = callPackage ../development/python-modules/jupyter-contrib-core { };
 
-  jupyter-contrib-nbextensions = callPackage ../development/python-modules/jupyter-contrib-nbextensions { };
-
   jupyter-console = callPackage ../development/python-modules/jupyter-console { };
 
   jupyter-core = callPackage ../development/python-modules/jupyter-core { };
@@ -6888,6 +6878,8 @@ self: super: with self; {
 
   latexify-py = callPackage ../development/python-modules/latexify-py { };
 
+  latexrestricted = callPackage ../development/python-modules/latexrestricted { };
+
   launchpadlib = callPackage ../development/python-modules/launchpadlib { };
 
   laundrify-aio = callPackage ../development/python-modules/laundrify-aio { };
@@ -7820,6 +7812,8 @@ self: super: with self; {
 
   meteofrance-api = callPackage ../development/python-modules/meteofrance-api { };
 
+  meteoswiss-async = callPackage ../development/python-modules/meteoswiss-async { };
+
   methodtools = callPackage ../development/python-modules/methodtools { };
 
   mezzanine = callPackage ../development/python-modules/mezzanine { };
@@ -8659,8 +8653,6 @@ self: super: with self; {
 
   myuplink = callPackage ../development/python-modules/myuplink { };
 
-  n3fit = callPackage ../development/python-modules/n3fit { };
-
   nad-receiver = callPackage ../development/python-modules/nad-receiver { };
 
   nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
@@ -10656,10 +10648,6 @@ self: super: with self; {
 
   proton-vpn-network-manager = callPackage ../development/python-modules/proton-vpn-network-manager { };
 
-  proton-vpn-network-manager-openvpn = callPackage ../development/python-modules/proton-vpn-network-manager-openvpn { };
-
-  proton-vpn-network-manager-wireguard = callPackage ../development/python-modules/proton-vpn-network-manager-wireguard { };
-
   proton-vpn-session = callPackage ../development/python-modules/proton-vpn-session { };
 
   protonup-ng = callPackage ../development/python-modules/protonup-ng { };
@@ -13145,6 +13133,8 @@ self: super: with self; {
 
   qcs-api-client = callPackage ../development/python-modules/qcs-api-client { };
 
+  qcs-api-client-common = callPackage ../development/python-modules/qcs-api-client-common { };
+
   qcs-sdk-python = callPackage ../development/python-modules/qcs-sdk-python { };
 
   qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
@@ -13153,8 +13143,6 @@ self: super: with self; {
 
   qdrant-client = callPackage ../development/python-modules/qdrant-client { };
 
-  qds-sdk = callPackage ../development/python-modules/qds-sdk { };
-
   qgrid = callPackage ../development/python-modules/qgrid { };
 
   qemu = callPackage ../development/python-modules/qemu {
@@ -13471,8 +13459,6 @@ self: super: with self; {
 
   repocheck = callPackage ../development/python-modules/repocheck { };
 
-  reportengine = callPackage ../development/python-modules/reportengine { };
-
   reportlab = callPackage ../development/python-modules/reportlab { };
 
   reportlab-qrcode = callPackage ../development/python-modules/reportlab-qrcode { };
@@ -13717,8 +13703,6 @@ self: super: with self; {
 
   roonapi = callPackage ../development/python-modules/roonapi { };
 
-  ronin = callPackage ../development/python-modules/ronin { };
-
   rope = callPackage ../development/python-modules/rope { };
 
   ropgadget = callPackage ../development/python-modules/ropgadget { };
@@ -17033,8 +17017,6 @@ self: super: with self; {
 
   validobj = callPackage ../development/python-modules/validobj { };
 
-  validphys2 = callPackage ../development/python-modules/validphys2 { };
-
   vallox-websocket-api = callPackage ../development/python-modules/vallox-websocket-api { };
 
   vapoursynth = callPackage ../development/python-modules/vapoursynth {